Veröffentlicht 18. März 200421 j Hallo Leute, ich habe das Problem, dass $SELF_PHP="" 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??
18. März 200421 j ah, daran wirds liegen... ich habe vergessen, dass $PHP_SELF nicht superglobal ist, daher kanns auch nicht übernommen werden......... ich werds mal testen! danke
19. März 200421 j // dass sollte so nicht gehen! function testfunc() { global $_SERVER; echo $_SERVER["PHP_SELF"]; } // so sollte es gehen function testfunc() { echo $_SERVER["PHP_SELF"]; } [/PHP] Ich hab die Erfahrung gemacht, wenn man SuperGlobale veriaben per z.b. "global $_SERVER" für ne Funktion rannholt, dass die Arrays dann leer sind! Dies liegt wohl daran dass sie ja schon vorher von PHP aus global verfügbar sind. ob das bei $_SERVER auch so ist weiss ich nicht, ich hatte das Problem vor kurzem mit $_POST und $_GET.
19. März 200421 j Ja, die superglobals sollte man nicht mit dem Schlüsselwort "global" einbinden, man kann wirklich von überall auf sie zugreifen. Wahrscheinlich entsteht sonst der gleiche Effekt wie bei kills.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.