2016-06-02 16 views
15

Ich bin ein Noob-Programmierer, also entschuldige ich mich im Voraus für offensichtliche Fehler. Ich habe die letzte Woche damit verbracht, eine Produktdatenbank zu erstellen. Ich habe den Punkt erreicht, an dem ich Produkte über ein Formular hinzufügen kann, alle hinzugefügten Produkte anzeigen usw. Ich verwende Sitzungen, die über die Eingabedaten des Formulars erstellt werden. Ich habe Mühe, eine Seite zum Löschen von Produkten zu integrieren. Ich habe versucht, die Variable zu deaktivieren, ohne sie zu bearbeiten.PHP Unset Session Variable

ADD Produktseite, die das Session-Variable setzt:

$_SESSION['Products'][] = $_POST; //is how i set the session on the add products page. 

unset $_SESSION['Products'][]; //is how i have tried to clear the session although it does not work. 

Jeder Punkt in der richtigen Richtung zu erkennen ist!

+3

'unset ($ _ SESSION [ 'Produkte']);' ist genug – Thamilan

+1

und um alle Sessions zu löschen session_unset(); –

+0

Wenn ich ein wenig darüber nachdenke, denke ich, dass ich mehr tun muss, als die Sitzungsvariable zu deaktivieren. Ich müsste das gesamte Array für dieses Produkt von meiner Produktlistenseite löschen. Mein schlechtes – boothprod

Antwort

25

Sie können ungesetzt Session Variable:

  1. session_unset - löscht alle Session-Variablen (Es ist gleich mit: $_SESSION = array();)
  2. unset($_SESSION['Products']); - Unset nur Produkte Index in Session-Variablen. (Denken Sie daran,: Sie haben wie eine Funktion zu verwenden, nicht wie früher)
  3. session_destroy - Zerstört alle Daten in einer Session registrierten

den Unterschied kennen zwischen der Verwendung von session_unset und session_destroy, lesen Sie diese SO answer. Das hilft.

2

Wenn Sie vollständig die Sitzung löschen möchten Sie diese verwenden können:

session_unset(); 
session_destroy(); 

Eigentlich nicht notwendig sind beide, aber es tut nicht weh.

Wenn Sie nur einen bestimmten Teil löschen möchte ich glaube, Sie dies benötigen:

unset($_SESSION['Products']); 
//or 
$_SESSION['Products'] = ""; 

je nachdem, was Sie brauchen.

1

unset ist eine Funktion, kein Operator. Verwenden Sie es wie unset($_SESSION['key']);, um diesen Sitzungsschlüssel zu deaktivieren. Sie können jedoch auch session_destroy(); verwenden. (Stellen Sie sicher, dass die Sitzung auch mit session_start(); gestartet wird)

+0

'unset' ist * nicht * eine Funktion, aber ein Sprachkonstrukt – PeeHaa

4

Unset ist eine Funktion. Sie müssen also angeben, welche Variable zerstört werden soll.

unset($var); 

In Ihrem Fall

unset ($_SESSION["products"]); 

Wenn Sie ganze Session-Variable zurücksetzen müssen nur anrufen

session_destroy(); 
+0

Hier nochmal Nicken:' unset' ist ein Sprachkonstrukt und * nicht * eine Funktion. – PeeHaa

+0

Ja. Es ist ein Sprachkonstrukt. Aber php manual kategorisiert selbst Unset als Variable Handling-Funktion. www.php.net/manual/en/ref.var.php. Irgendwie musste ich nur die Tatsache hervorheben, dass der Variablenname an ihn übergeben werden sollte. –

+0

Ja, aber der Unterschied ist da. Es ist keine Funktion. – PeeHaa