Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

$PHP_SELF gibt leer zurück, wenn aus funktion heraus aufgerufen

Empfohlene Antworten

Veröffentlicht

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??

hi, versuch es mal so

$_SERVER['PHP_SELF']

ah, daran wirds liegen...

ich habe vergessen, dass $PHP_SELF nicht superglobal ist, daher kanns auch nicht übernommen werden.........

ich werds mal testen!

danke :)


// 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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.