Frage zu $_SESSION

matzseesi

Erfahrenes Mitglied
Hi Leute

Ich muss grad so eine Art Shop programmieren und da hab ich ein kleines Problem mit den Sessions!
Ihr kennt ja den Befehl $_SESSION['variable']; wenn ich dies mache dann kann ich auf die Variable mit $variable zugreifen!

Wie kann ich diese Variable allerdings wieder löschen so dass mir die Funktion isset($variable) wieder False zurückgibt!

Wenn ich es so mache

PHP:
$_SESSION['variable']="test";
echo $variable;
session_unregister($variable);

if(isset($variable))
{ 
 echo "true";
}
else
{
 echo "false";
}

dann liefert er mir true zurück!
Wenn ich session_unset($variable) mache dann löscht er alle Variablen der Session

Wie macht ihr sowas?

Grüße Posseidon
 
Mit unset alleine Funktioniert es nicht da ja nur die Variable für die Seite gelöscht wird sie aber in der Session noch existiert!

Noch eine andere Frage: speichert ihr die Session Variablen mit session_register oder mit $_SESSION ab?
 
Zuletzt bearbeitet:
Generell ist es doch unsinn dann direkt über den Variablennamen zuzugreifen. Folgende Vorgehensweisen:
Variable zuweisen:
PHP:
$_SESSION['test'] = 'test';
Mit der Variable arbeiten und diese abrufen:
PHP:
echo $_SESSION['test'];

if ($_SESSION['test'] == 'test')
{
  // weiterer Code
}
Genau diese Session-Variable wieder löschen:
PHP:
unset ($_SESSION['test']);
 
Najo hab jetzt etwas länger in der PHP Doku gesucht und bin auf folgendes gestoßen

Eine mit $_SESSION erstellte Variable ist eine SuperGlobale Variable und kann mit unset($_SESSION['variable']); wieder gelöscht werden!

Grüße und thx fürs antworten matz
 
aber ist doch trotzdem einfacher den Variablennamen direkt also $test in deinem Fall als $_SESSION['test'] anzusprechen!

man muss sich natürlich ein Namensschema angewöhnen also alle Session Variablen mit zb $SES_test zu beginnen! usw..

Grüße Matz
 
naja ich hab mir das vorher so überlegt

die session variablen werden ja in der file am Server abgespeichert wenn ich jetzt die variable nur mit unset($variable) lösche dann ist sie für den Ablauf der Seite seite glöscht wenn ich jedoch auf eine andere Seite in der Session gehe dann kann ich die Variable wieder aufrufen.

Wenn ich sie mit unset($_SESSION['variable']) lösche dann wird sie auch aus der Session rausgenommen oder?

Naja mit der zweiten Erklärung funktionierts mit der ersten nicht

Danke für die Antworten

Grüße Matz
 
Ihr kennt ja den Befehl $_SESSION['variable']; wenn ich dies mache dann kann ich auf die Variable mit $variable zugreifen!
Wieso sollte die Referenz auf einen Variableninhalt ($_SESSION['variable']) eine andere Variablenreferenz ($variable) erzeugen?

Wenn du eine Variable einer Sitzung löschen möchtest, tust du dies einfach mit unsert($_SESSION[<Elementbezeichner>).


Übrigens erwartet die session_unregister()-Funktion ein Zeichenkette als Parameter. Und nur, wenn die Variable $variable tatsächlich den Wert variable enthielte, würde die Sitzungsvariable $_SESSION['variable'] gelöscht.
 
Hallo Leute.

Ich habe zwei Dateien (warenkorb.php und kasse.php) mit unterschiedlichen session_id().
Die Variablen welche in der Session von warenkorb.php gespeichert sind möchte ich gerne in die session von kasse.php übertragen... gibts da irgendwie ne möglichkeit dies ohne umwege zu erreichen?

inhalt der session von --> in inhalt der session der kasse?
warenkorb.php --> kasse.php
 
Zuletzt bearbeitet:
Zurück