gelöst URL aus Adresszeile lesen
Hallo,
Ich möchte mir PHP die URL aus der Adresszeile auslesen. Nicht die komplette URL, sondern nur den Dateinamen des aktuellen Skriptes. Allerdings mit GET-Parametern. Das hat folgenden Sinn: Bei der Seite, an der ich gerade arbeite, gibt es ein Loginsystem. Wenn man eingeloggt ist, erscheint ein Link zum ausloggen. Er verweist auf index.php?section=startpage&content=dealout. Klickt man auf ihn, ist man ausgeloggt und bekommt eine entsprechende Meldung. Der Link zum ausloggen ist aber noch vorhanden, da er bevor die Session "zerstört" wird ausgegeben wird. Ich möchte mit einer IF-Schleife überprüfen, ob die Auslog-Seite aufgerufen wurde, und nur wenn das nicht der Fall ist den Link anzeigen.
Das habe ich schon probiert:
-> Die Ausgabe dieser Variable ist aber nur das Stammverzeichnis und der Dateiname ohne Parameter
-> Die Ausgabe dieser Variable ist aber nur das Wörtchen 'Array'.
Was habe ich für möglichkeiten, um dieses Problem zu lösen?
DeeDee0815
Ich möchte mir PHP die URL aus der Adresszeile auslesen. Nicht die komplette URL, sondern nur den Dateinamen des aktuellen Skriptes. Allerdings mit GET-Parametern. Das hat folgenden Sinn: Bei der Seite, an der ich gerade arbeite, gibt es ein Loginsystem. Wenn man eingeloggt ist, erscheint ein Link zum ausloggen. Er verweist auf index.php?section=startpage&content=dealout. Klickt man auf ihn, ist man ausgeloggt und bekommt eine entsprechende Meldung. Der Link zum ausloggen ist aber noch vorhanden, da er bevor die Session "zerstört" wird ausgegeben wird. Ich möchte mit einer IF-Schleife überprüfen, ob die Auslog-Seite aufgerufen wurde, und nur wenn das nicht der Fall ist den Link anzeigen.
Das habe ich schon probiert:
if(isset($_SESSION['blablabla']) AND trim($_SERVER['PHP_SELF']) != ("index.php?section=startpage&content=dealout")) [echo("<div style=\"float:right;text-align:right;padding:10px;\"><a class=\"link\" href=\"index.php?section=startpage&content=dealout\">Sitzung beenden</a></div>\n");]
-> Die Ausgabe dieser Variable ist aber nur das Stammverzeichnis und der Dateiname ohne Parameter
if(isset($_SESSION['blablabla']) AND trim($_SERVER['argv']) != ("index.php?section=startpage&content=dealout")) [
-> Die Ausgabe dieser Variable ist aber nur das Wörtchen 'Array'.
Was habe ich für möglichkeiten, um dieses Problem zu lösen?
DeeDee0815
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35388
Url: https://administrator.de/contentid/35388
Ausgedruckt am: 25.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar
@DeeDee0815
Hi,
der Scriptname wird z.B. in $_SERVER["SCRIPT_NAME"] gespeichert.
Leg' mal eine Datei an mit dem Inhalt phpinfo();.
Wenn du diese Datei aufrufst, werden dir unten alle Servervariablen
aufgelistet und noch mehr.
Gruß
Günni
Hi,
der Scriptname wird z.B. in $_SERVER["SCRIPT_NAME"] gespeichert.
Leg' mal eine Datei an mit dem Inhalt phpinfo();.
Wenn du diese Datei aufrufst, werden dir unten alle Servervariablen
aufgelistet und noch mehr.
Gruß
Günni
Hi,
warum machst du es so kompliziert. Wenn jemand eingeloggt ist oder nicht, siehst du doch an einer Datenbank oder einer Session Variable, je nach deiner Umsetzung.
Wenn er erfolgreich eingeloggt wurde, setzt du eine Session Variable, wenn er ausgeloggt wurde löscht du diese. Somit weisst du, wann er eingeloggt ist oder nicht.
Ich handhabe es so, dass ich die session_start() Variable in der Datenbank ablege und in einer Session Variable. Bei jeden Aufruf einer Internen Seite, wird geprüft ob diese Variable mit dem Usereintrag in der Datenbank übereinstimmt, wenn nicht gleich mal löschen. Bei jeder Prüfung wird in der DB ein Timestamp gesetzt und erneuert. Ist der Timestamp älter als xxx-Sekunden, wird der User ausgeloggt.
mfg
Thomas
warum machst du es so kompliziert. Wenn jemand eingeloggt ist oder nicht, siehst du doch an einer Datenbank oder einer Session Variable, je nach deiner Umsetzung.
Wenn er erfolgreich eingeloggt wurde, setzt du eine Session Variable, wenn er ausgeloggt wurde löscht du diese. Somit weisst du, wann er eingeloggt ist oder nicht.
Ich handhabe es so, dass ich die session_start() Variable in der Datenbank ablege und in einer Session Variable. Bei jeden Aufruf einer Internen Seite, wird geprüft ob diese Variable mit dem Usereintrag in der Datenbank übereinstimmt, wenn nicht gleich mal löschen. Bei jeder Prüfung wird in der DB ein Timestamp gesetzt und erneuert. Ist der Timestamp älter als xxx-Sekunden, wird der User ausgeloggt.
mfg
Thomas
Hallo,
nachträglich nochmal: Das ganze erreicht man mit $_SERVER["REQUEST_URI"], also z. B. default.php?section=article&id=123
Gruß,
Ahnenforscher
nachträglich nochmal: Das ganze erreicht man mit $_SERVER["REQUEST_URI"], also z. B. default.php?section=article&id=123
Gruß,
Ahnenforscher