2016-06-02 30 views
15

Sono un programmatore noob quindi mi scuso in anticipo per eventuali errori evidenti. Ho passato la settimana passata a creare una banca dati di prodotto come una cosa. Ho anche il punto in cui posso aggiungere prodotti utilizzando un modulo, visualizzare tutti i prodotti aggiunti, ecc. Sto utilizzando sessioni create tramite i dati di input del modulo. Sto facendo fatica a includere ottenere una pagina di prodotto di eliminazione funzionante, ho provato a utilizzare unset per cancellare la variabile ma non riesco a farlo funzionare troppo.Variabile sessione Unset PHP

pagine di prodotto Aggiungi che imposta la variabile di sessione:

$_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. 

Qualsiasi punto nella giusta direzione, sarà apprezzato!

+3

'unset ($ _ SESSION [ 'Prodotti']);' è sufficiente – Thamilan

+1

e per cancellare l'uso di tutte le sessioni session_unset(); –

+0

Dandogli un po 'di pensiero penso che avrei bisogno di fare di più che disinserire la variabile di sessione. Avrei bisogno di cancellare l'intero array per quel prodotto dalla mia pagina di elenco dei prodotti. Il mio male – boothprod

risposta

25

È possibile variabile di sessione impostata usando:

  1. session_unset - libera tutte le variabili di sessione (è uguale a utilizzare: $_SESSION = array();)
  2. unset($_SESSION['Products']); - Unset indice solo i prodotti presenti variabile di sessione. (Ricordate: Devi usare come una funzione, non come è stato utilizzato)
  3. session_destroy - distrugge tutti i dati registrati in una sessione

Per conoscere la differenza tra l'utilizzo session_unset e session_destroy, leggere questo SO answer. Questo aiuta.

2

Se si desidera cancellare completamente la sessione è possibile utilizzare questo:

session_unset(); 
session_destroy(); 

In realtà entrambi non sono accessori adatti, ma non fa male.

Se si desidera cancellare solo una parte specifica penso che avete bisogno di questo:

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

a seconda di che cosa avete bisogno.

1

unset è una funzione, non un operatore. Usalo come unset($_SESSION['key']); per rimuovere la chiave di sessione. Tuttavia, è possibile utilizzare anche session_destroy();. (Assicurarsi di avviare la sessione con session_start();)

+0

'unset' è * non * una funzione, ma un linguaggio costruttivo – PeeHaa

4

Unset è una funzione. Pertanto devi inviare quale variabile deve essere distrutta.

unset($var); 

Nel tuo caso

unset ($_SESSION["products"]); 

Se è necessario reimpostare variabile di sessione intero basta chiamare

session_destroy(); 
+0

Nitpicking qui:' unset' è un costrutto linguistico e * non * una funzione. – PeeHaa

+0

Sì. È un costrutto linguistico. Ma lo stesso manuale php categorizza come una funzione di gestione variabile. www.php.net/manual/en/ref.var.php. In ogni modo ho solo bisogno di evidenziare il fatto che il nome della variabile dovrebbe essere passato ad esso. –

+0

Sì, ma la differenza è lì. Non è una funzione. – PeeHaa