han: sry Verwirrung mit sessions...

Hallo,

sry bin grad etwas verwirrt mit dem ganzen session-kram.

Also:

  • auf SeiteA wird eine session gestartet und Variable1 und Variable2 angelegt
  • auf SeiteB wird wieder die session gestartet und Variable3 angelegt

nun möchte ich auf SeiteC Variable1 und Variable2 "löschen" (unregister) und falls man nicht auf SeiteB vorbeigekommen ist und somit keine Variable3 in der session ist möchte ich die session zerstören (destroy).

Bei diesem Beispiel wäre das ganz einfach, einfach prüfen if(isset/$_SESSION['Variable3'])
aber was ist wenn ich allgemein eine session destroyen mchte aber nur wenn keine Variablen mehr gespeichert sind.
Kann ich irgendwie prüfen ob noch Variablen in der session sind?
Oder wie könnte ich das lösen?

mfg

  1. Hi han,

    Kann ich irgendwie prüfen ob noch Variablen in der session sind?
    Oder wie könnte ich das lösen?

    Du kannst prüfen, ob das array $_SESSION Inhalte hat mit empty() oder einen anderem Befehl.

    ciao
    romy

  2. echo $begrüßung;

    nun möchte ich auf SeiteC Variable1 und Variable2 "löschen" (unregister)

    "unregister" deutet darauf hin, dass du veraltete Session-Funktionen verwendest. Das Registrieren und Unregistrieren einzelner Variablen ist nicht mehr erforderlich. Öffne einfach die Session mit session_start() und greife dann auf Werte im Array $_SESSION zu - lesend, schreibend und mit unset() - und alles wird gut.

    und falls man nicht auf SeiteB vorbeigekommen ist und somit keine Variable3 in der session ist möchte ich die session zerstören (destroy).

    Das komplette Löschen einer Session inklusive Entfernen aller Spuren davon auf dem Server ist kein ganz leichtes Unterfangen. Es reicht, einfach

    $_SESSION = array();

    zu notieren, um sämtliche Session-Daten zu löschen. Session-Cookies und die Datei, in der die Session-Daten aufgehoben werden, zu löschen ist oftmals nicht nötig. Wenn doch gibt es entsprechende Anleitungen im PHP-Handbuch bzw. den User-Kommentaren.

    Bei diesem Beispiel wäre das ganz einfach, einfach prüfen if(isset/$_SESSION['Variable3'])
    aber was ist wenn ich allgemein eine session destroyen mchte aber nur wenn keine Variablen mehr gespeichert sind.
    Kann ich irgendwie prüfen ob noch Variablen in der session sind?
    Oder wie könnte ich das lösen?

    $_SESSION ist auch ein Array, auf dass sich alle auf PHP-Arrays anwendbaren Funktionen anwenden lassen. Man kann die Elemente darin mit count() zählen, mit isset() die Existenz eines oder mehrerer Einträge prüfen, mit foreach durch alle Elemente durchlaufen, einzelnen Elemente mit unset() löschen, alle durch Zuweisen eines leeren Arrays, usw. usf.

    echo "$verabschiedung $name";