Include("")

Tags:    php

Har en fejl naar jeg proever at include det her.

<?php include("ahead.inc"); ?>

<?php
$lol = strip_tags($_GET['side']);
if($lol == "members"){
include("amembers.php");
} else {;
include("news.php");
}
?>

<?php include("afoot.inc"); ?>

hvis jeg i broseren skriver index.php?side=members saa virker det fint. Men hvis den er blank skriver den:
Notice: Undefined index: side in c:\\webserver\\easyphp\\www\\aog\\index.php on line 4
NEWS(NEWS er det der staar i news.php)
nogen der kan hjaelpe ?



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hej Thomas

Din fejl ligger højst sansynligt i at du har et ; for meget.

} else {; <-- der skal den ikke være

Prøv og fjern den også se om det ikke skulle havde hjulpet

Hilsen
Gamborg



Har en fejl naar jeg proever at include det her.

<?php include("ahead.inc"); ?>

<?php
$lol = strip_tags($_GET['side']);
if($lol == "members"){
include("amembers.php");
} else {;
include("news.php");
}
?>

<?php include("afoot.inc"); ?>

hvis jeg i broseren skriver index.php?side=members saa virker det fint. Men hvis den er blank skriver den:
Notice: Undefined index: side in c:\\webserver\\easyphp\\www\\aog\\index.php on line 4
NEWS(NEWS er det der staar i news.php)
nogen der kan hjaelpe ?


Først så undre jeg mig lidt over at du starter og slutter dine php tags så mange gange ???

Når til problemet, det opstår højst sandsynligt fordi, når din ?side=etellerandet ikker er givet, så er der ikke noget indhold til din strip_tags()
Når der er et parametre i funktionen skal dette altid gives med, medmindre det parametre er sat til optional.
Til løsningen, så ville jeg mene at denne kode virker, lidt slam kode, men det skulle funke

Fold kodeboks ind/udKode 


Når du plusser med "", vil det hvis dit tag "side" ikke er givet, bare være en tom streng. Du kan evt. lave det med betingelser, gør det mere omstændigt, men mindre slamkode :)




Den brokker sig over at du prøver at bruge en variabel, der ikke eksisterer. Du kan vælge bare at slå fejlbeskeder af typen "Notice" fra, lige som det er i standardopsætningen, men det vil jeg ikke anbefale.

I stedet for at bruge:

$lol = strip_tags($_GET['side']);

kan du bruge:

$lol = strip_tags(isset($_GET['side']) ? $_GET['side'] : '');

eller

if (isset($_GET['side'])) {
$lol = strip_tags($_GET['side']);
} else {
$lol = '';
}

Jeg forstår i øvrigt ikke hvorfor du bruger strip_tags. Du bruger jo en if-sætning til at include med, og det skulle jeg mene er nok sikkerhedsmæssigt.



Godt du lige saa det ;) Men det var desvaerre ikke fejlen :(



Tak for hjaelpe Jesper :), Ved ikke hvorfor jeg bruger strip_tags(). Tror bare det en vane. Men det virker fint nu :)
Og ogsaa tak til de andre der proevede :)



Indlæg senest redigeret d. 23.09.2006 16:25 af Bruger #8208




t