if...problem

z7-virus

Grünschnabel
hi,
ich habe ein Problem mit meiner neuen Seite...
meine seite ist so aufgebaut:
index.php:
PHP:
if($z7 =="news"){ include ("news.php"); }

news.php:
PHP:
//news und so weiter
if ($news == "admin"){
//newsadmin 
}

wenn ich nun die domain:
http://localhost/index.php?z7=news&news=admin
aufrufe gibt er mir nix an der Stelle aus(oder er gibt das aus wass davor in den news steht)...vorher ging das meiner Meinung nach.
hab ich da Tippfehler gemacht oder spielt mir der Webserver nen Streich ?
 
Zuletzt bearbeitet:
welche phpversion ??

sonst tippe ich mal ganz spontan auf unser
momentan sehr weitverbreitetes Problem der
falschen Variablenbezeichnung :

$z7 heißt ab jetzt : $HTTP_GET_VARS[z7]
bzw. bei Formularen : $HTTP_POST_VARS[]

Probier es mal damit.
 
das liegt daran, dass in den neueren versionen von php (ab 4.0 glaub ich?) die übergebenen parameter erst mit den umgebungsvariablen $HTTP_GET_VARS[] bzw. $HTTP_POST_VARS[] abgerufen werden müssen.
wenn du in den neuen versionen trotzdem noch $z7 anstelle von $HTTP_GET_VARS[z7] benutzt, instanzierst du damit eine neue variable, die zunächst mal leer ist.
 
das ganze wird noch schlimmer wenn man dann auf PHP 4.2+ umsteigt, denn dann geht's nur noch über $_POST[] oder $_GET.

Das ganze könnte man aber über einen Workaround generell aus der Welt schaffen, was aber unter Umständen wieder zu unsauberer Programmierung führt:
PHP:
        if(!empty($_GET)) {
		foreach($_GET as $k => $value) {
			${$k} = $value;
		}
	}
	if(!empty($_POST)) {
		foreach($_POST as $k => $value) {
			${$k} = $value;
		}
	}
	if(!empty($_SESSION)) {
		foreach($_SESSION as $k => $value) {
			${$k} = $value;
		}
	}

Mit diesem Code Snippet werden die Variablen aus den Array's extrahiert und in normale Varibalen umgewandelt. In deinem Fall stände so $z7 wieder automatisch zur Verfügung.

Aber wie gesagt: die andere Variante mit $HTTP_POST_VARS[z7] bzw $_POST[z7] ist sicherer und führt zu saubereren Code.

Ciao, F.o.G.
 
Cool, so einen Code habe ich schon gesucht,m denn alte Scripte nur wegen der neuen PHP Version umzuschreiben ist schon ziemlich aufwendig.
 
Zurück