ciao non mi funziona il logout, questo è lo script:
e questo è il link per far eseguire il logout:<?
function logout() {
session_unset();
session_destroy();
header("Location: ../index.php");
}
?>
sapete dov'è l'errore?
ciao non mi funziona il logout, questo è lo script:
e questo è il link per far eseguire il logout:<?
function logout() {
session_unset();
session_destroy();
header("Location: ../index.php");
}
?>
sapete dov'è l'errore?
da cosa vedi che non funziona? hai fatto un print dell'array di sessione?
Il codice che hai postato è poco per analizzare la situazione. faccio quindi solo delle ipotesi:
1) il link dovrebbe essere del tipo
2) all'inizio della pagina index devi scrivere
3) nella funzione logout, se usi le sessioni per la validazione e se usi $_SESSION, al posto diCodice PHP:
if (isset($_GET['action']) && $_GET['action']=='logout') {
logout();
}
userei piuttostoCodice PHP:
session_unset();
Codice PHP:
unset($_SESSION['nomevariabilecheusi']);
Se il browser non viene chiuso la sessione viene ripristinata con lo stesso session_id, ma il file di sessione sara' vuoto.Codice PHP:
<?php
function logout() {
session_start();
session_destroy();
$_SESSION = array();
header("Location: ../index.php");
}
?>
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
ho provato così però non mi funziona:
dove sbaglio?<?
if (isset($_GET['action']) && $_GET['action']=='logout') {
logout();
}
function logout() {
unset($_SESSION['logout']);
session_destroy();
header("Location: index.php");
}
?>
a non leggere tutte le risposte.Originariamente inviato da prinzart
ho provato così però non mi funziona:
dove sbaglio?
non metti session_start() e non sei membro della sessione.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Giusto... session_start()!
Non è poi che quella che vedi è solo la copia cache della pagina?
Anzi no, mi correggo, la sessione potrebbe servirgli per altre cose oltre all'autenticazione, quindi perchè fargliela togliere!
E' anche vero però che se fosse come dico io, dovrebbe mettere session_start() all'inizio della pagina e non dentro la funzione logout()![]()
scusa piero non avevo visto la tua risposta![]()
comunque ho mischiato i vostri 2 script e ora funziona, non so se ho fatto un papocchio, cos'è che posso cancellare?
<?
if (isset($_GET['action']) && $_GET['action']=='logout') {
logout();
}
function logout() {
session_start();
unset($_SESSION['logout']);
session_destroy();
$_SESSION = array();
header("Location: index.php");
}
?>
unset($_SESSION['logout']);
questo non serve... poco dopo macelli tutto con:
$_SESSION = array();
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.