kostenloser Webspace werbefrei: lima-city


Sessions löschen und Browser-Zurück-Taste

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Hallo!

    Ich habe hier ein kleines Problem mit meinen Sessions und der Taste im Browser, um zur vorherherigen Seite zurückzukommen.

    Ich gehe von einer Seite A auf Seite B und speichere übergebene GET-Variablen in Sessions-Variablen (wegen Interaktionen auf Seite B). Auf Seite A werden mittels session_destroy(); die Variablen immer gelöscht.

    Leider scheint das nicht zu funktionieren, da im Browser beim Zurückjehren auf Seite A und Wechseln auf eine Seite B mit anderen GET-Parametern die Werte aus den Sessions übernommen werden.

    Dies tritt nur auf, wenn ich den Zurück-Knopf des Browsers nehme, nicht wenn ich eine direkten Link von Seite B zu Seite A verwende.

    Und es scheint nur im Safari aufzutreten.

    Sessions Seite A:
    session_start();
    session_destroy();


    Sessions Seite B:
    session_start();
    if(empty($_SESSION['ziel'])) {
    	$ziel_name = $_GET["ziel"];
    	$_SESSION['ziel'] = $ziel_name;
    }
    else {
    		$ziel_name = $_SESSION['ziel'];
    }
    
    if(empty($_SESSION['zeile'])) {
    	$ziel_zeile = $_GET["id"];
    	$_SESSION['zeile'] = $ziel_zeile;
    }
    else {
    		$ziel_zeile = $_SESSION['zeile'];
    }


    Meta-Angaben:
    <meta http-equiv="expires" content="0">
    <meta http-equiv="cache-control" content="no-cache">


    Weiß jemand eine Lösung, wie die Sessions zuverlässig kaputtgemacht werden können (außer den Safari nicht nehmen, danke, bitte) ?

    Danke im Voraus!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    Zuverlässiges Zerstören geht am besten mit dem Vorschlaghammer :-D

    Ne, Spaß bei Seite. Dass session_destroy unzuverlässig ist, das liest man irgendwie an jeder zweiten stelle, sehr komisch.... Probiers mal so:
    //Datei A
    session_start();
    //do something
    session_unset():
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] );
    session_destroy();

    Damit entfernst du die Session komplett, auch beim Browser wird der Sessioncookie, falls verwendet, entfernt. Du kannst jetzt noch, wenn du bombensicher gehen willst:
    //Datei B
    session_start();
    session_id_regenerate(true);

    Machen. Mit dem regenerate erstellst du eine neue SessionID, mit dem "true" als Parameter wird die alte Session gelöscht. Ich glaube mehr löschen geht nicht. Und wenn der Safari dann immernoch diese Daten präsent hat, dann muss ich erst noch weiter überlegen^^
    Ich hoffe das hilft.

    Liebe Grüße
  4. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Es geht beides nicht. Weder unabhängig voneinander noch beides zusammengeworfen.


    edit:
    Hab das Problem umgangen, indem ich die Prüfung von der Session weg zu den GET-Abfragen übertragen habe. So geht's im aktuellen Fall, irgendwelche Lösungsvorschläge für o.g. Problem sind aber weiterhin gern erwünscht.

    Beitrag zuletzt geändert: 16.8.2012 16:37:44 von sonok
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!