Sven Rautenberg: $PHP_SELF macht was genau?

Beitrag lesen

Moin!

Ich dachte immer, dass $PHP_SELF den eigenen Dateinamen ausgibt.

Falsch gedacht.

Wenn ich jetzt aber eine Datei 'test1.php' und per include() 'test2.php' einbinde, bekomme ich, wenn ich in 'test2.php' mir $PHP_SELF ausgeben lasse, 'test1.php' zurückgeliefert.

Logisch. $PHP_SELF bzw. genauer $_SERVER['PHP_SELF'] ist eine vom Server (deswegen steht sie in $_SERVER) gesetzte Variable, die den vom Browser aufgerufenen Skriptnamen enthält. Ähnliche Informationen findest du z.B. in $_SERVER['SCRIPT_NAME'], $_SERVER['SCRIPT_URL'] und $_SERVER['REQUEST_URI'] - je nach tatsächlicher Konfiguration des Servers.

Und da beim Includen die einmal gesetzten Informationen nicht geändert werden, sondern lediglich der Quelltext der zweiten Datei dem der ersten Datei hinzugefügt wird, ist das Verhalten absolut korrekt.

PHP_SELF ist gut für sich selbst aufrufende Formulare geeignet, oder für auf sich selbst zeigende Links - ändert man den Skriptnamen, ändern sich auch die Formularziele und Links automatisch mit.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|