-
Cookies
Ragazzi ho un problema non indifferente: non so usare i cookies!
Ho creato un login con il check "ricordami" e fin qui tutto ok... peccato che quando clicco su logout non mi faccia il logout!
Io ho uasto questo codice:
Codice:
<?
session_start();
if(isset($_COOKIE['my'])){
setcookie("my"); /*questo crea un cookie con lo stesso nome
ma che scade subito*/
header("Location: ../");
}
/*e qui il funzionamento nel caso il login sia stato fatto senza spuntare il checkbox*/
if($_SESSION['autorizzato'] == 1){
$_SESSION['autorizzato'] = 0;
header("Location: ../");
}
?>
peccato che così php mi crei un nuovo cookie che scade e mi lasci quello vecchio con la sua bella data di scadenza parecchio lontana al posto di sovrascrivere...
Mi rendo conto che è una domanda banale perchè questo script è uno dei più usati del web ma.... DOVE SBAGLIOOOOOO!?!?
-
Confondi cookie e sessioni.
Il codice dev'esssere lo stesso in entrambi i casi, ma nel secondo devi specificare la durata di vita del cookie.
PS: dovresti anche memorizzare un qualche valore per essere sicuro che il cookie venga salvato.
Ciao!
-
nono aspetta non ho capito! Il cookie lo salva perchè ho guardato nell'elenco dell'explorer e ci sono. Non ho caito come confondo sessioni e cookie... lascia stare la parte in cui setto la variabile nella sessione! Io voglio solo capire come cancellare un cookie... non mi potresti scrivere una riga di codice da sostituire alla mia?
Codice:
if(isset($_COOKIE['my'])){
// setcookie("my");
/*Qui cosa scrivo?*/
header("Location: ../");
}
-
secondo la documentazione di setcookie (che andrebbe letta)
Codice PHP:
setcookie ("my", "", time() - 3600);
come l'hai scritta tu setta un cookie di nome "my" con valore nullo che scade quando chiudi il browser
-
Per salvare un cookie temporaneo:
Codice PHP:
setcookie('my','my');
Per salvare un cookie duraturo:
Codice PHP:
setcookie('my','my',time()+3600); // 3600=1 ora
Per cancellare un cookie:
Codice PHP:
setcookie('my','',time()-86400); // 86400 = 24h, giusto per essere sicuri
Ciao!
-
Uffa... ho letto la documentazione e avevo già provato i vostri codici ma nada... vabbé, riproverò fin che nn capisco dv sbaglio :S
Grazie cmq ragazzi!
EDIT: ragazzi ho risolto! il problema era la path! Io avevo creato i cookie inizali impostandoli per tutto il dominio mentre quando li cancellavo non passavo il parametro path :S
Codice PHP:
<?
//Così lo creavo
if($row['username']==$i_uname){
if($row['pwd']==$i_pwd){
if(isset($_POST['rem'])){
setcookie("my", "1", time()+60*60*24*360, "/");
}else{
$_SESSION['autorizzato']=1;
}
header("Location: ../admin.php");
break;
}
else{
header("Location: ../admin_login.php?err=1");
break;
}
}
//... e così lo cancello!
if(isset($_COOKIE['my'])){
setcookie("my","",time()-3600*24, /* Eccolo qui il mio errore!! */ "/" /*Bastava dirgli di creare nel percorso giusto!*/);
// echo "cookie scritto";
header("Location: ../");
}
?>