- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Javascript per resettare i cookie
-
Javascript per resettare i cookie
Salve a tutti,
ho un problemino con i cookie.. Ho implementato un menu accordion con la memoria (gestita tramite i cookie).
Funziona tutto molto bene, solo che ho il problema che entrando con un link diretto mi crea dei problemi.Volevo dunque sapere se conoscete un javascript che permette l'azzeramento di un cookie al click.
una cosa del genere magari:
<a href="vaiallink.php" onclick="funzionecheresetta">Vai al Link</a>così prima di andare al link mi resetta i cookie e risolvo il problema.
grazie mille!
-
@Anu said:
Funziona tutto molto bene, solo che ho il problema che entrando con un link diretto mi crea dei problemi.
Dal sintomo descritto pare di capire che il problema sia dovuto al fatto che nell'accesso diretto non sia presente il cookie. Quindi è necessario fare un controllo quando la pagina viene caricata. Questo codice didattico mostrerà dei messaggi extra (che rimuoverai successivamente) in base al tipo di accesso:
[HTML]<script type="text/javascript">
function CreaCookie() {
if (document.cookie.indexOf("nome_cookie") >= 0) {
alert("il cookie è impostato");
} else {
alert("non c'è il cookie, ora lo creo");
document.cookie = "nome_cookie=true; max-age=" + 60 * 10; // Tempo di vita del cookie in secondi
}
}
</script><body onload = CreaCookie()>
[/HTML]@Anu said:
Volevo dunque sapere se conoscete un javascript che permette l'azzeramento di un cookie al click.
una cosa del genere magari:
<a href="vaiallink.php" onclick="funzionecheresetta">Vai al Link</a>così prima di andare al link mi resetta i cookie e risolvo il problema.
grazie mille!Per resettare il cookie farei una cosa di questo tipo:
[HTML]function funzionecheresetta() {
document.cookie = 'nome_cookie=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}[/HTML]
-
Grazie mille,
e se volessi che il cookie scada dopo 5 secondi!?
Ho provato ad usare :<?php setcookie("accordion_nav", "", time()+5); //setcookie("accordion_nav"); ?>
Ma non funziona...
-
Quando si imposta il valore del cookie con la stringa vuota si istruisce il client di cancellarlo, vedi anche il codice che già avevo postato.
-
Ho provato ad includere il suo codice:
<script type="text/javascript"> function funzionecheresetta() { document.cookie = 'accordion_nav=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } </script>
ai piedi del mio foglio html, ma non funziona comunque.. non mi resetta il cookie richiesto.
-
Prova a correggere
@Anu said:
<a href="vaiallink.php" onclick="funzionecheresetta">Vai al Link</a>
con quest'altra:
<a href="vaiallink.php" onclick="funzionecheresetta**()**">Vai al Link</a>
Eventualmente cancella i cookies prima di ripetere la prova.
-
Niente, non funziona ancora
-
Posto questo codice (dovrai riadattarlo opportunamente) che almeno a me funziona su 2 browser differenti:
[HTML]<html>
<head>
<script type="text/javascript">
function CreaCookie() {
if (document.cookie.indexOf("nome_cookie") >= 0) {
alert("il cookie è impostato");
} else {
alert("non c'è il cookie, ora lo creo");
document.cookie = "nome_cookie=true; max-age=" + 60 * 10; // Tempo di vita del cookie in secondi
}
}function funzionecheresetta() {
document.cookie = 'nome_cookie=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
alert("cookie rimosso");
}
</script>
</head>
<body onload=CreaCookie()>
<a href="#" onclick="funzionecheresetta()">testo</a>
</body>
</html>[/HTML]Non so se il problema possa essere causato da una configurazione sul browser o altri motivi.
-
Grazie mille sei gentilissimo,
provo nel pomeriggio!
-
Ancora niente:
Ho messo nell'head del mio file layout.php (il file che contiene la parte alta della mia pagina dinamica)
il seguente codice:
<script type="text/javascript"> function resetcookie() { document.cookie = 'nome_cookie=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; alert("cookie rimosso"); } </script>
e poi nel file index.php (il file che contiene il corpo della mia pagina dinamica)
<ul> <li><a href="<?php echo .... ?>" onclick="resetcookie()">Pagina2</a></li> </ul>
Al click compare l'alert, però non mi resetta il cookie che ho selezionato!
Ho eliminato la funzione creacookie (testato e funziona), perchè non mi serve.