Page 1 of 1

$PHP_SELF ="" bei aufruf aus Funktion!

Posted: 2004-03-18 10:51
by helling3r
Hallo Leute, ich habe das Problem, dass $PHP_SELF="" zurückgibt, was eigentlich nicht sein dürfte.
Zum Hintergrund: ich benutze Linux-Apache mit php4_modul.
folgende Dateistruktur habe ich angelegt, weils ein größeres Projekt wird:

/projekt/ Stammverzeichniss
/projekt/lib/ Meine Librarys, PHP-Klassen und Funktionen
/projekt/prog/ die eigentlichen Programmdateien, also DocumentRoot
/projekt/templates/ template-verzeichniss

okay, ich habe also eine setup.lib im /lib/ verzeichniss liegen, dort wird eine klasse definiert, die wiederum eine loginfunktion aufruft.

diese loginfunktion nutzt zur ausgabe templates; in dem logintemplate liegt eine templatevariable {$self_url}, die von der Loginfunktion gefüllt wird.
diese soll je nach programmdatei ausm DocumentRoot mit der richtigen url gefüllt werden.

--> und hier setzt das problem ein:
$PHP_SELF liefert nul!
leigt das daran, dass die funktionen, die $PHP_SELF benutzen NICHT im DocumentRoot liegen, sondern inkludiert werden?

oder habe ich irgendeine einstellung übersehen??

Re: $PHP_SELF ="" bei aufruf aus Funktion!

Posted: 2004-03-18 11:12
by 丨-丨4rp3r
Hallo,

evtl. hast du das Umgebungsarray $_SERVER bzw. $PHP_SELF in der Funktion nicht global gesetzt.
Schau evtl. mal in der phpinfo nach, ob dort $PHP_SELF einen Wert zurückliefert.
Falls nicht, liegt es an der PHP Version/Einstellung. Ansonsten setz $PHP_SELF in der Funktion, Klasse global.

Re: $PHP_SELF ="" bei aufruf aus Funktion!

Posted: 2004-03-18 11:20
by suntzu
Besser ist es, anstelle von $PHP_SELF direkt $_SERVER['PHP_SELF'] zu nutezn da $_SERVER ein superglobal ist.

Re: $PHP_SELF ="" bei aufruf aus Funktion!

Posted: 2004-03-18 11:47
by helling3r
okay, daran wirds liegen. danke! :)
ich dachte bisher immer, dass $PHP_SELF superglobal ist, habs anscheinend mit $_SERVER verwechselt!
danke nochmal für die hilfe, ich werds heute ausprobieren!
:-D