Tobias Kloth: Parameterweitergabe

Beitrag lesen

Hallo Kall,

In SID steht höchst warscheinlich die Session ID.

nein, das steht der Name und die id der Session in der Form "name=id" drin
siehe http://de3.php.net/manual/de/ref.session.php#session.constants

header("Location: register2.php?nic=nic#top".SID);
So kann das garnicht funktionieren, da:

  1. das "$" vor dem Variablennamen fehlt.
  2. "#top" fälschlicherweise vor SID steht.

3. weil das kein gültiger header ist (hinter "Location:" gehört eine ganze url, nicht nur der Dateiname (auch wenn es so meist auch funktioniert))

Sofern in der php.ini der Wert "register_globals" auf "On" gesetzt ist, werden die globalen Arrays $_GET, $_POST, $_SESSION, usw. automatisch Registriert.

auf $_GET, $_POST, $_SESSION, $_SERVER, $_ENV, $_COOKIE, $_REQUEST und $_FILES kannst du immer zugreifen - egal wie register_globals steht.

Die Reihenfolge wird dadurch jedoch wieder durch einen Wert in der php.ini bestimmt (d.h., gibt es in $_GET und in $_SESSION eine Variable "blabla", mit je unterschiedlichen Werten, bestimmt die Einstellung, welcher nun registriert wird).

weißt du zufällig wie die Einstellung heißt? Ich wusste garnicht, das es so eine Einstellung gibt.

Ist "register_globals" deaktiviert, stehen die Variablen in den Arrays:

die stehen immer da drin :-)

und in neueren PHP Versionen (ab 4.3.1 denke ich):

knapp daneben ist auch vorbei: ab 4.1.0 :-)

Grüße aus Nürnberg
Tobias

--
Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|