Eine Variable aus dem $_SERVER['QUERY_STRING'] löschen
Marc
- php
Hallo,
ich schreibe gerade an einer Logout Funktion für meine HP. Dabei wird mit dem Link 'Logout' auch die Varaible $env übergeben, deren Inhalt $_SERVER['QUERY_STRING'] ist (logout.php?env=<?php echo $_SERVER['QUERY_STRING'] ?>). Auf diese Weise will ich erreichen, das der User nach dem Logout wieder auf genau die Seite zurück kommt (per header), auf der er zuvor war (die angezeigte Seite wird bei mir über mehrere Variablen in der URL definiert und dann per PHP ausgegeben). Das ganze ist auch kein Problem. Mein Problem ist, das $_SERVER['QUERY_STRING'] auch die SessionID enthält, die der User beim Login bekommen hat, da diese ja auch per URL mitgeschleift wird. Kann ich diese SessionID irgendwie aus der Variable $env rauslöschen, bevor ich den User wieder weiter leite?
Grüsse
Marc
Halihallo Marc
ich schreibe gerade an einer Logout Funktion für meine HP. Dabei wird mit dem Link 'Logout' auch die Varaible $env übergeben, deren Inhalt $_SERVER['QUERY_STRING'] ist (logout.php?env=<?php echo $_SERVER['QUERY_STRING'] ?>). Auf diese Weise will ich erreichen, das der User nach dem Logout wieder auf genau die Seite zurück kommt (per header), auf der er zuvor war (die angezeigte Seite wird bei mir über mehrere Variablen in der URL definiert und dann per PHP ausgegeben). Das ganze ist auch kein Problem. Mein Problem ist, das $_SERVER['QUERY_STRING'] auch die SessionID enthält, die der User beim Login bekommen hat, da diese ja auch per URL mitgeschleift wird. Kann ich diese SessionID irgendwie aus der Variable $env rauslöschen, bevor ich den User wieder weiter leite?
Die Session _sollte_ beim Logout gelöscht oder deaktiviert werden.
Warum übergibst du alle Variablen? - Du brauchst doch nur die Information über die
zuletzt besuchte Seite. Und warum den ganzen Querystring über eine Variable env
übergeben? - Häng ihn doch einfach an logout.php an, denn der Querystring _ist_ eben
das, was nach dem '?' kommt.
Viele Grüsse
Philipp
Hiho,
Die Session _sollte_ beim Logout gelöscht oder deaktiviert werden.
Wird sie ja auch. Ich möchte nur diese SessionID "Leiche" nicht wieder mit zurück geben,
Warum übergibst du alle Variablen?
Weil die zuletzt besuchte Seite über mehrere Variablen bestimmt wird. Zuerst gibt es die Variable pid, die bestimmt welches PHP Script eingebunden wird. Aber all diese eingebunden Scripte haben auch noch einmal Steuervariablen (zum bsp. sec für die section in einer galerie und page für die page in der selben). Und diese Steuervariablen varieren von Seite zu Seite. Halt so wie sie gebraucht werden. Und da leigt mein Problem. Wenn jemans z.b. in Galerie section 1 unterseite 3 ist und ich nur die pid übergeben würde würde ich ihn wieder zurück auf die Hauptseite der Galerie werfen.
Und warum den ganzen Querystring über eine Variable env
Weil ich den Query String ja irgendwie in die logout.php bringen muss. Wie die Variable heisst ist ja erst mal zweitrangig.
übergeben? - Häng ihn doch einfach an logout.php an, denn der Querystring _ist_ eben
das, was nach dem '?' kommt.
Dagegen habe ich mich entschieden, weil ich auch per POST zugriff auf den logout brauche und da dann so oder so ne neue Variable definieren muss um das alles da rüber zu bekommen.
Grüsse
Marc
Halihallo Marc
Warum übergibst du alle Variablen?
Weil die zuletzt besuchte Seite über mehrere Variablen bestimmt wird. Zuerst gibt es die Variable pid, die bestimmt welches PHP Script eingebunden wird. Aber all diese eingebunden Scripte haben auch noch einmal Steuervariablen (zum bsp. sec für die section in einer galerie und page für die page in der selben). Und diese Steuervariablen varieren von Seite zu Seite. Halt so wie sie gebraucht werden. Und da leigt mein Problem. Wenn jemans z.b. in Galerie section 1 unterseite 3 ist und ich nur die pid übergeben würde würde ich ihn wieder zurück auf die Hauptseite der Galerie werfen.
OK. Die saubere Lösung wäre, die relevanten Parameter auszulesen und dann das Parameter-
Anhänsel zu logout.php entsprechend zu generieren.
---
Zurück zum Problem. In $_GET (für dich relevant) oder $_POST findest du ein assoziatives
Array der Parameter. Über foreach ( $variablen_name as key $_GET ) kannst du über die
Variablennamen iterieren und einen neuen Parameteranhänsel generieren (falls
$variablen_name 'SessionID' o.ä. entspricht wird diese einfach ausgelassen).
Viele Grüsse
Philipp
Halihallo Marc
Zurück zum Problem. In $_GET (für dich relevant) oder $_POST findest du ein assoziatives
Array der Parameter. Über foreach ( $variablen_name as key $_GET ) kannst du über die
Variablennamen iterieren und einen neuen Parameteranhänsel generieren (falls
$variablen_name 'SessionID' o.ä. entspricht wird diese einfach ausgelassen).
entschuldige:
foreach ($_GET as $key => $value) {
echo "Variablenname: $key; Wert: $value\n";
}
sollte es heissen...
Viele Grüsse
Philipp