Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema con i cookies

  1. #1

    Problema con i cookies

    Ciao ragazzi, ho la necessità di far mantenere un testo inserito dall'utente (tramite form) per 30 giorni e che questo testo resti visibile su ogni pagina del sito. Ho pensato di gestire la cosa tramite cookies ma non ci sono riuscito. Posto il codice:


    HTML
    codice:
    <body onload="verificaCookie()">
    <a href="JavaScript:window.alert(document.cookie.split(';').join(''))">Tutti i cookies</a>	//restituisce tutti i cookies
    <div id="div_form">
    	<form id="myform" method="post" action="#" onsubmit="send()">
    			<input id="myinput" type="text" name="myinput" size="20" maxlength="30" value="Messaggio..."/>				
    			<input type="button" value="Send" onclick="send()"/>
    		</div>
    		<div id="msg"><p id="mgs_view"></p></div>
    	</form>
    </div>
    </body>

    JAVASCRIPT
    codice:
    if(!navigator.cookieEnabled) {
        alert("Non hai i cookie abilitati.");
    }
    
    
    function scriviCookie(nomeCookie,valoreCookie,durataCookie){
      var scadenza = new Date();
      var adesso = new Date();
      scadenza.setTime(adesso.getTime() + (parseInt(durataCookie) * 60000));
      document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    }
    
    
    function leggiCookie(nomeCookie){
      if (document.cookie.length > 0){
        var inizio = document.cookie.indexOf(nomeCookie + "=");
        if (inizio != -1){
          inizio = inizio + nomeCookie.length + 1;
          var fine = document.cookie.indexOf(";",inizio);
          if (fine == -1) fine = document.cookie.length;
          return unescape(document.cookie.substring(inizio,fine));
        }
        else{
           return "";
        }
      }
      return "";
    }
    
    
    function verificaCookie(){
        var res = leggiCookie("testo");
        if(res != ""){
            document.getElementById("div_form").innerHTML = res + "";
        }
    }
    
    
    function send() {
    	var testo = document.getElementById("myinput").value; 	
    	scriviCookie("testo", testo, 30);
    	document.getElementById("mgs_view").innerHTML = testo;
    }

    Facendo in questo modo non funziona, eppure i cookies sono abilitati. Con Chrome proprio non va, mentre con Firefox noto che il cookie me lo salva ma non mi mostra il testo..
    Aiuto

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Documento HTML</title>
    <script type="text/javascript">
    function readText () {
        return document.cookie.replace(/(?:(?:^|.*;\s*)usertext\s*\=\s*([^;]*).*$)|^.*$/, "$1");
    }
    
    function writeText (sTxt) {
        document.cookie = "usertext=" + sTxt + "; expires=" + (new Date(Date.now() + /* 30 giorni in millisecondi: */ 2592e6)).toGMTString() + "; path=/";
    }
    
    onload = function () {
        document.tuoForm.testo.value = readText();
    };
    </script>
    </head>
    
    <body>
    
    <form name="tuoForm">
        <p><input type="button" value="Salva testo per 30 giorni da ora" onclick="writeText(this.form.testo.value);" /></p>
        <p><textarea name="testo" cols="40" rows="15"></textarea></p>
    </form>
    
    
    </body>
    </html>
    Ultima modifica di carlomarx; 18-11-2013 a 01:14
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.