Variablenübergabe via URL funktioniert nicht

Variablenübergabe via URL funktioniert nicht

am 05.10.2004 09:40:22 von ingo.stoecker

Hallo,

ich habe das WAMP-System FOXSERV unter WinXP Prof. installiert. Eigentlich
funktionieren PHP & Co. recht gut. Jedoch klappt die Übergabe per URL nicht.
Wenn ich das gleiche Script online bei 1&1 teste geht es, also kann man von
Fehlern in der Programmierung absehen. Das Script lautet wie folgt:

if ($spielzug=="1")
include ('spielzuege/block-center.inc');
if ($spielzug=="2")
include ('spielzuege/block-fluegel.inc');
if ($spielzug=="3")
include ('spielzuege/block-mittel.inc');
if ($spielzug=="4")
include ('spielzuege/trailer-oben.inc');
if ($spielzug=="5")
include ('spielzuege/trailer-unten.inc');
?>

Für die Links benutze ich einfach "dateiname.php?spielzug=1" '(Beispiel).

Woran kann es legen, das FOXSERV mein Script nicht richtig ausführt, aber
1&1 alles richtig macht. Muss ich irgendwelche Konfigurationen modifizieren?


--
MfG,

Ingo Stöcker

www.kobe8.de
www.svwassmannsdorf.de
www.asbh-potsdam.de
www.ihrkuechenpartner.com

Re: Variablenübergabe via URL funktioniert nicht

am 05.10.2004 09:47:52 von Johannes Vogel

Hallo Ingo

Ingo Stöcker wrote:
> ich habe das WAMP-System FOXSERV unter WinXP Prof. installiert. Eigentlich
> funktionieren PHP & Co. recht gut. Jedoch klappt die Übergabe per URL nicht.

Siehe register_globals. Benutze aber statt der Konfigurationsmöglich-
keit, lieber generell die Superglobals $_GET und $_POST.

11.20. Warum funktionieren meine Formulare nicht?
http://www.dclp-faq.de/q/q-formular-register-globals.html

> Wenn ich das gleiche Script online bei 1&1 teste geht es, also kann man von
> Fehlern in der Programmierung absehen. Das Script lautet wie folgt:
> > if ($spielzug=="1")
> include ('spielzuege/block-center.inc');
> if ($spielzug=="2")
> include ('spielzuege/block-fluegel.inc');
> if ($spielzug=="3")
> include ('spielzuege/block-mittel.inc');
> if ($spielzug=="4")
> include ('spielzuege/trailer-oben.inc');
> if ($spielzug=="5")
> include ('spielzuege/trailer-unten.inc');
> ?>
> Für die Links benutze ich einfach "dateiname.php?spielzug=1"
> (Beispiel).

Statt diesen merkwürdigen if() solltest du wohl eher auf switch() wechseln.

HTH, Johannes

Re: Variablenübergabe via URL funktioniert nicht

am 05.10.2004 09:55:09 von Tobias Kutzler

Ingo Stöcker schrieb:
> Hallo,
>
> ich habe das WAMP-System FOXSERV unter WinXP Prof. installiert. Eigentlich
> funktionieren PHP & Co. recht gut. Jedoch klappt die Übergabe per URL nicht.
> Wenn ich das gleiche Script online bei 1&1 teste geht es, also kann man von
> Fehlern in der Programmierung absehen. Das Script lautet wie folgt:

Sagen wir es mal so: Es ist eine Kombination aus Konfiguration und
Programmierfehler...

Schau mal hier:
11.20. Warum funktionieren meine Formulare nicht?
http://www.dclp-faq.de/q/q-formular-register-globals.html

1&1 hat (glücklicherweise) die Konfiguration so eingestellt, dass es
sicherer ist. (sprich register_globals = off). Auf Deinem Rechner ist
wahrscheinlich register_globals auf on. Daher funktioniert auch das von
Dir gepostete Skript zu Hause und eben bei 1&1 nicht.

Bei aktivierten register_globals hat man die Möglichkeit Werte an
Variablen in Skripten zu übergeben. Und das sollte natürlich nicht
gehen, da sonst bestimmte Abläufe in einem Skript "gestört" werden könnten.

Ciao,
Tobias

Re: Variablenübergabe via URL funktioniert nicht

am 05.10.2004 10:03:07 von ingo.stoecker

Hallo Tobias,

> Schau mal hier:
> 11.20. Warum funktionieren meine Formulare nicht?
> http://www.dclp-faq.de/q/q-formular-register-globals.html
>
> 1&1 hat (glücklicherweise) die Konfiguration so eingestellt, dass es
> sicherer ist. (sprich register_globals = off). Auf Deinem Rechner ist
> wahrscheinlich register_globals auf on. Daher funktioniert auch das von
> Dir gepostete Skript zu Hause und eben bei 1&1 nicht.
>
> Bei aktivierten register_globals hat man die Möglichkeit Werte an
> Variablen in Skripten zu übergeben. Und das sollte natürlich nicht
> gehen, da sonst bestimmte Abläufe in einem Skript "gestört" werden
könnten.

ich habe anscheinend mich unglücklich (undeutlich) ausgedrückt. Also das
Script funktioniert unter 1&1, aber unter FOXSERV (Apache2, PHP4, mySQL)
nicht !!!

Gruß,

Ingo #8

Re: Variablenübergabe via URL funktioniert nicht

am 05.10.2004 10:17:33 von Tobias Kutzler

Ingo Stöcker schrieb:

>
> ich habe anscheinend mich unglücklich (undeutlich) ausgedrückt. Also das
> Script funktioniert unter 1&1, aber unter FOXSERV (Apache2, PHP4, mySQL)
> nicht !!!

Dann ist Dein System zu Hause per register_globals auf off gestellt und
es geht daher nicht. Kann auch sein, dass 1&1 register_globals wegen
einiger Spezies noch auf on hat. (Ich deaktiviere dies übrigens immer
mittels eigener php.ini in meinen Pfaden)

Schau mal in der php.ini auf dem Rechner nach, auf dem FoxServ läuft.

>
> Gruß,
>
> Ingo #8
>
>
Ciao,
Tobias

Re: Variablenübergabe via URL funktioniert nicht

am 05.10.2004 10:27:09 von Johannes Vogel

Hi Ingo

Ingo Stöcker wrote:
> Noch mal hallo,
> also habe in der php.ini den entsprechenden "register_globals"-Eintrag auf
> "On" gesetzt. Leider zeigt "phpinfo" immer noch "Off" an! Was kann ich noch
> machen?

Apache neu gestartet?
Das ist aber trotzdem der falsche Weg aus dem Schlamassel. Du solltest
lieber die Superglobals $_GET und $_POST. Wiederhole ich mich?

HTH, Johannes

Re: Variablenübergabe via URL funktioniert nicht

am 05.10.2004 10:27:54 von ingo.stoecker

Noch mal hallo,

also habe in der php.ini den entsprechenden "register_globals"-Eintrag auf
"On" gesetzt. Leider zeigt "phpinfo" immer noch "Off" an! Was kann ich noch
machen?

MfG,

Kobe #8

Re: Variablenübergabevia URL funktioniert nicht

am 06.10.2004 00:07:21 von Matthias Esken

Ingo Stöcker schrieb:

> also habe in der php.ini den entsprechenden "register_globals"-Eintrag auf
> "On" gesetzt. Leider zeigt "phpinfo" immer noch "Off" an! Was kann ich noch
> machen?

Webserver neu starten.

Du solltest trotzdem deine Skripte so schreiben, dass sie mit
register_globals = off arbeiten. Wenn du die anderen Hinweise zur
Sicherheit schon jedesmal ignorierst, dann versuch ich's mal mit
folgendem:

register_globals = off ist die Defaulteinstellung. Wenn du so
programmierst, dass es damit läuft, dann musst du nie auf einem System
extra etwas umstellen.

Gruß,
Matthias