-
Cancellare cookie array
allora ho creato uno script che imposta un cookie array
Codice PHP:
setcookie("dati[nome]","$nome",time()+3600*24*365);
setcookie("dati[cognome]","$cognome",time()+3600*24*365);
setcookie("dati[email]","$email",time()+3600*24*365);
setcookie("dati[telefono]","$telefono",time()+3600*24*365);
setcookie("dati[indirizzo]","$indirizzo",time()+3600*24*365);
e uno che li legge
Codice PHP:
if(isset($_COOKIE["dati"])) {
echo "Nome:".$_COOKIE["dati"]["nome"]."<br>";
echo "Cognome:".$_COOKIE["dati"]["cognome"]."<br>";
echo "Email:".$_COOKIE["dati"]["email"]."<br>";
echo "Telefono:".$_COOKIE["dati"]["telefono"]."<br>";
echo "Indirizzo:".$_COOKIE["dati"]["indirizzo"]."<br>";
echo "Per cancellare i dati clicca <a href=\"?action=cancel\">qui</a>";
}
se notate alla fine ho messo un url che da a GET action=cancel nella stessa pagina ho implementato con questo codice
Codice PHP:
if($_GET["action"] == "cancel") {
setcookie("dati[nome]","",time()-3600*24*365);
setcookie("dati[cognome]","",time()-3600*24*365);
setcookie("dati[email]","",time()-3600*24*365);
setcookie("dati[telefono]","",time()-3600*24*365);
setcookie("dati[indirizzo]","",time()-3600*24*365);
}
in teoria dovrebbe cancellare il cookie ma non funziona
potete aiutarmi?
-
Prova così:
Codice PHP:
if($_GET["action"] == "cancel") {
setcookie("dati","");
}
-
-
Sicuro? Io ho messo insieme un po' tutti i tuoi codici:
Codice PHP:
<?php
$nome = "Michelangelo";
$cognome = "***";
$email = "my@mail.it";
$telefono = "+39.3xxxxxxx";
$indirizzo = "Via...";
if($_GET["action"] == "cancel") {
setcookie("dati[nome]","",time()-3600*24*365);
setcookie("dati[cognome]","",time()-3600*24*365);
setcookie("dati[email]","",time()-3600*24*365);
setcookie("dati[telefono]","",time()-3600*24*365);
setcookie("dati[indirizzo]","",time()-3600*24*365);
}
if(empty($_GET['action'])){
setcookie("dati[nome]","$nome",time()+3600*24*365);
setcookie("dati[cognome]","$cognome",time()+3600*24*365);
setcookie("dati[email]","$email",time()+3600*24*365);
setcookie("dati[telefono]","$telefono",time()+3600*24*365);
setcookie("dati[indirizzo]","$indirizzo",time()+3600*24*365);
}
if(isset($_COOKIE["dati"])) {
echo "Nome:".$_COOKIE["dati"]["nome"]."<br>";
echo "Cognome:".$_COOKIE["dati"]["cognome"]."<br>";
echo "Email:".$_COOKIE["dati"]["email"]."<br>";
echo "Telefono:".$_COOKIE["dati"]["telefono"]."<br>";
echo "Indirizzo:".$_COOKIE["dati"]["indirizzo"]."<br>";
echo "Per cancellare i dati clicca <a href=\"?action=cancel\">qui</a>";
}
?>
Sembra che non li cancella però poi premo F5 e non si visualizza nulla, controllo i cookie manualmente e non esistono più.
-
grazie mille ma non funziona ti posto come ho fatto io lo script
Codice PHP:
<? if($_GET["action"] == "cancel") {
setcookie("dati[nome]","",time()-3600*24*365);
setcookie("dati[cognome]","",time()-3600*24*365);
setcookie("dati[email]","",time()-3600*24*365);
setcookie("dati[telefono]","",time()-3600*24*365);
setcookie("dati[indirizzo]","",time()-3600*24*365);
}
if(isset($_COOKIE["dati"])) {
echo "Nome:".$_COOKIE["dati"]["nome"]."<br>";
echo "Cognome:".$_COOKIE["dati"]["cognome"]."<br>";
echo "Email:".$_COOKIE["dati"]["email"]."<br>";
echo "Telefono:".$_COOKIE["dati"]["telefono"]."<br>";
echo "Indirizzo:".$_COOKIE["dati"]["indirizzo"]."<br>";
echo "Per cancellare i dati clicca <a href=\"?action=cancel\">qui</a>";
} else { ?>
<h3>Inserimento Dati</h3>
<form method="post" action="inserimento dati.php?action=dati">
<table width="200" border="0">
<tr>
<td width="72">Nome*:</td>
<td width="112"><input type="text" name="nome"></td>
</tr>
<tr>
<td>Cognome*:</td>
<td><input type="text" name="cognome"></td>
</tr>
<tr>
<td>e-mail*:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Telefono:</td>
<td><input type="text" name="telefono"></td>
</tr>
<tr>
<td>Indirizzo:</td>
<td><input type="text" name="indirizzo"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Invia!"></td>
</tr>
</table>
</form>
<? } ?>
forse riesci a capire cosa sbaglio
-
Ti mostro cosa mi è saltato subito all'occhio
1) inserimento dati.php?action=dati contiene uno spazio.
2) Non è specificando quando la variabile (GET) action contiene "dati" lo script cosa deve fare.
3) Hai mancato la parte dove setti i cookie.
Se poi il codice deve essere così dimmelo che cerco qualche soluzione.
-
scusa, mi sono spiegato male
le pagine sono due, questa che ho postato si chiama dati.php
ti posto il codice di inserimento dati
Codice PHP:
<?php
$action=$_GET["action"];
if($action == "firma") {
$firma=$_POST["firma"];
if($firma == null) {
echo"<div align=\"center\">Hai dimenticato il nome!</div>";
} else {
setcookie("firma", $firma,time()+3600*24*365);
$firma=strip_tags($firma);
$fp=fopen("firme.txt","a");
fputs($fp, ", $firma");
fclose($fp);
header("location: http://webeasy.altervista.org/");
}
}
if($action == "dati") {
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$indirizzo=$_POST['indirizzo'];
if($nome == null) {
header("location: http://webeasy.altervista.org?error=nome/");
}
if($cognome == null) {
header("location: http://webeasy.altervista.org?error=cognome/");
}
if($email == null) {
header("location: http://webeasy.altervista.org?error=email/");
}
setcookie("dati[nome]","$nome",time()+3600*24*365);
setcookie("dati[cognome]","$cognome",time()+3600*24*365);
setcookie("dati[email]","$email",time()+3600*24*365);
setcookie("dati[telefono]","$telefono",time()+3600*24*365);
setcookie("dati[indirizzo]","$indirizzo",time()+3600*24*365);
header("location: http://webeasy.altervista.org/");
}
?>
la parte GET firma è di un altro script
-
Codice PHP:
<?
if($_GET["action"] == "cancel") {
$dietime=3600*24*365;
setcookie("dati[nome]","",time()-$dietime);
setcookie("dati[cognome]","",time()-$dietime);
setcookie("dati[email]","",time()-$dietime;
setcookie("dati[telefono]","",time()-$dietime);
setcookie("dati[indirizzo]","",time()-$dietime);
}
?>
se funziona poi ti spiego perchè....
-
non per offendere ma è identico a quello che ho fatto io solo che passi il tempo in una variabile
comunque ho provato ma non funziona
grazie mille ad entrambi ma proprio non capisco come si possano cancellare questi cookie visto che le ho provate tutte
qualche altra idea?
-
-
non conosco il comando unset(), me lo puoi spiegare grazie
-
neanche io lo uso molto :D
http://php.net/unset
Codice PHP:
<?
unset($_COOKIE['dati']);
?>
-
no, non cancella i cookie li nasconde solo fiche non si va in un altra pagina
-
I cookie non possono essere nascosti: o ci sono o non ci sono.
Da questa tua ultima affermazione mi viene un dubbio: non è che fai settare in maniera automatica questi cookie? Ad esempio includendo qualche file...
Ciao!
-
intendo che vengono nascosti nel senso che i cookie rimangono ma invece di visualizzare le info reletive al cookie viene stampato il modulo che si ottiene quando i cookie non ci sono
-
Appunto "come quando non si sono" vuol dire che non ci sono!
Cioè che sono stati cancellati.
Ripeto la domanda di prima, visto che, così come hai descritto la cosa, sembra che avvenga una cancellazione e una creazione una di seguito all'altra.
Ciao!
-
non credo che sia possibile perche l'inserimento dei cookie avviene in un altra pagina
-
Nell'esempio che hai postato tu, no.
E comunque questo non nega la mia ipotesi, anzi, la rafforza, perchè magari includi quella pagina o altre in cui si settano questi benedetti cookie.
Dovresti fare un analisi un pochino più approfondita e pulire un po' il codice (e magari indentarlo un po') così da poterci capire di più (sia tu che noi)
ciao!
-
ok adesso ci provo
edit:non riesco a trovare errori
ma tu quando cancelli i cookie array cosa usi?