$PHP_SELF ="" bei aufruf aus Funktion!

Bash, Shell, PHP, Python, Perl, CGI
helling3r
Posts: 25
Joined: 2004-03-04 16:34

$PHP_SELF ="" bei aufruf aus Funktion!

Post 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??
丨-丨4rp3r
Posts: 16
Joined: 2003-12-07 15:53

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

Post 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.
suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

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

Post by suntzu »

Besser ist es, anstelle von $PHP_SELF direkt $_SERVER['PHP_SELF'] zu nutezn da $_SERVER ein superglobal ist.
helling3r
Posts: 25
Joined: 2004-03-04 16:34

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

Post 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