/php/apache - switch funtioniert lokal nicht mehr
AnalphaBestie
- webserver
gute nacht an alle.
ich habe mich nun endlich dazu entschlossen mir nen lokalen webserver zuzulegen.. habe auch alles soweit eingerichtet - siche noch viel falsch dabei ( kann jemand nen paar urls zu guten tutorials "schreiben" / apache / php / mysql / und lokaler emalsever ( wamp ? ) )
naja auf jeden fall läuft die PHP version ( 4.2.3 ) irgendwie anders als bei meinem provider ;)
switch ($site) {
case news:
include "news/news.php";
break;
case writenews:
include "news/newsa.php";
break;
dieses switsch habe ich um dateien zu includen, online funzt es - lokal nicht...
so sieht der link aus: <a href="?site=viewforum&inc=forum">
ich habe auch schon _versucht_ die phpinfo() ausgabe zu vergleichen... aber sich habe ich da was übersehen... sonst würde es ja gehen...
Suchfunktion ist leider down, deswegen freue ich mich über hilfe ;)
Mfg AnalphaBestie
Moin!
switch ($site) {
case news:
include "news/news.php";
break;
case writenews:
include "news/newsa.php";
break;
dieses switsch habe ich um dateien zu includen, online funzt es - lokal nicht...
so sieht der link aus: <a href="?site=viewforum&inc=forum">
ich habe auch schon _versucht_ die phpinfo() ausgabe zu vergleichen... aber sich habe ich da was übersehen... sonst würde es ja gehen...
Hast du dir mal (so ganz banal gefragt) den Inhalt der Variablen $site ausgeben lassen? Wahrscheinlich nicht, denn dann hättest du gemerkt, dass diese Variable leer ist.
Die Ausgabe von phpinfo(INFO_VARIABLES); zeigt dir, welche Werte aus externen Quellen (GET, POST, COOKIE, SERVER, ENV) das Skript erhält. Wenn die Option "register_globals=off" ist, dann werden nicht mehr automatisch globale Variablen mit dem Namen z.B. der URL-Parameter angelegt. Das ist ein Sicherheitsfeature, um das Einschmuggeln von Variablenwerten in schlecht geschriebene (und dafür anfällige) Skripte zu unterbinden.
Greife deshalb nicht auf $site (und $inc - dein URL-Parameter deutet sowas an) zu, sondern auf $_GET['site'] und $_GET['inc']. Du kannst per Suchen/Ersetzen deine Skripte schnell durchgehen und mußt nur bei den Stellen, in denen die Variablen innerhalb von doppelten Anführungszeichen stehen, die neue Variable noch in geschweifte Klammern setzen. Danach sollte dein Skript wieder funktionieren.
Entscheidend ist auch, ob dein Provider noch eine PHP-Version 4.0.x benutzt. Diese kennt die Hashes $_GET, $_POST etc. noch nicht, sondern nennt sie $HTTP_GET_VARS, $HTTP_POST_VARS und so weiter. Siehe auch http://www.php.net/manual/de/print/language.variables.predefined.php
- Sven Rautenberg
tach.
danke das hat geholfen !
Mfg Analpha