Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de cookie

    9 novembre 2011 à 13:56:27

    Bonjour en fait j'ai un exo à faire,
    j'ai une page web ou je peux enregistrer plusieurs cookies
    je peux choisir de lire un cookie particulier et ensuite de supprimer un cookie particulier
    si je rentre aucun nom de cookie pour enregistrer je dois afficher une alert mettre un nom de cookie
    si je rentre aucun nom de cookie pour lire un cookie particulier ça dois m'afficher tous les cookies que j'ai
    et c'est ici que ça ne marche pas vraiment

    donc voici les fichiers

    le html :

    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title> TP7 - exo1 : Utilisation de cookies </title>
    
       <link rel="stylesheet" type="text/css" href="style/cookies.css" />
       <script type="text/javascript" src="javascript/cookies.js"></script>
      </head>
      <body>
        <div>
         <form action="">
           <table border="0" class="contenu">
           <tr>
             <td>
    	   <h3>Mémorisation du cookie</h3>
               Nom du cookie &nbsp;&nbsp;&nbsp;: <input type="text" id="nom1" /><br /><br />
               Valeur du cookie : <input type="text" id="val1" /><br /><br />
               <input class="button" type="button" value="Créer le cookie" onclick="javascript:memorisation();"/><br /><br />
    	   <hr />
    
    	   <h3>Lecture du cookie</h3>
               Nom du cookie &nbsp;&nbsp;&nbsp;: <input type="text" id="nom2" /><br /><br />
               <input class="button" type="button" value="Lire le valeur du cookie" onclick="javascript:lecture();" /><br /><br />
    	   <hr />
    
    	   <h3>Suppression du cookie</h3>
               Nom du cookie &nbsp;&nbsp;&nbsp;: <input type="text" id="nom3" /><br /><br />
               <input class="button" type="button" value="Effacer le cookie" />
             </td>
          </tr>
          </table>
         </form>
        </div>
      </body>
    </html>
    


    le css :

    body{
      background: gray;
      color: #660000;
      font-family: Arial;
      font-size: 10pt;
    }
    
    div{  
      background: #FFFFDD;
      border-style: double; 
      border-color: #990000;
    
      text-align: center;
    
      padding: 2%;
    
      width: 280px;
    
      position: absolute;
      top: 5%;
      left: 30%; 
    }
    
    .contenu{  
      width: 65%;
      text-align: left;
    }
    
    .button{  
      width: 260px; 
      text-align: center;
      font-family: System,sans-serif;
      font-size:100%; 
    }
    


    et enfin le javascript:

    //créer un cookie
    function ecrire_cookie(nom, valeur, expires) {
      document.cookie= nom + // on donne le nom du cookie
                       "=" + // on ajoute =
                       escape(valeur) + // on élimine les espaces des données du cookie en remplaçant par %20
                       ((expires==null) ? "" : ("; expires="+expires.toGMTString())); // condition si pas de temps d'expiration on met rien sinon on met la date en millisecondes
    }
    
    //lire le cookie
    function lire_cookie(nom) { // return la valeur stockée par le cookie
      var set_of_cookies = unescape(document.cookie).split(';'); //document.cookie notre cookie , unescape remplace les %20 en espace , split(';')  décompose la chaine tout les ;
      for(var i=0; i<set_of_cookies.length; i++){
        var pieces_of_cookie = set_of_cookies[i].split('='); //split('=')  décompose la chaine tout les =
        if(pieces_of_cookie[0].substring(0,1) == ' '){ // si la chaine commence par espace
          pieces_of_cookie[0]=pieces_of_cookie[0].substring(1,pieces_of_cookie[0].length); //on tire le espace
        }
        if(pieces_of_cookie[0]==nom){
          return unescape(pieces_of_cookie[1]);
        }
      }
      return "";
    }
    
    function memorisation(){
    	
    	var date=new Date();
          var test;
    	date.setMinutes(date.getMinutes()+3);
    	
    	if(document.getElementById("nom1").value!=""){
    		test+=ecrire_cookie(document.getElementById("nom1").value,document.getElementById("val1").value,date);
                document.cookie=test;
    		window.alert("le cookie :"+document.getElementById("nom1").value+".qui contient :"+document.getElementById("val1").value+".jusque :"+date.toGMTString());
    		
    	}
    	
    	if(document.getElementById("nom1").value==""){
    		window.alert("entrer un nom de cookie");
    	}
    	
    	document.getElementById("nom1").value="";
    	document.getElementById("val1").value="";
    }
    
    function lecture(){
    	var val=document.getElementById("nom2").value;
    	var v;
    	if(val!=""){
    		if((v=lire_cookie(val))!=""){
    			window.alert("nom du cookie: "+val+" .valeur du cookie: "+v);
    		}
    		else{
    			window.alert(val+" n\'existe pas");
    		}
    	}
    	if(document.getElementById("nom2").value==""){
    		window.alert("cookie \n"+document.cookie+";");
    	}
    
    	
    
    }
    


    donc en fait quand j'ajoute un cookie
    donc par exemple je mets dans nom du cookie test et dans valeur du cookie test et que je clique sur créer le cookie il mémorise mon cookie .

    et quand je fais lire la valeur du cookie et ne mettant rien dans le champ nom du cookie il m'affiche
    cookie:
    test=test;NaN;
    et c'est le NaN que je ne comprends pas. Pourquoi il me met NaN dans document.cookie alors que je ne lui met que test=test; j'ai beau chercher je comprends pas .
    en plus si jje mets dans nom du cookie test1 et dans valeur du cookie test1 et que je clique sur créer le cookie il mémorise mon cookie.
    et j'ai

    cookie:
    test=test;NaN;test1=test1;
    donc je sais pas d'où sort ce NaN
    parce que logiquement il devrait me mettre test=test;NaN;test1=test1;NaN aussi fin voila je vois pas du tout
    si vous savez merci
    • Partager sur Facebook
    • Partager sur Twitter
      9 novembre 2011 à 14:09:56

      NaN = Not a Number

      Tu lui demande d'afficher un int qui n'en n'est pas un donc il te réponds : Not A Number (NaN)
      • Partager sur Facebook
      • Partager sur Twitter
      Never Trust User Input This is the truth
        9 novembre 2011 à 15:22:59

        oui mais dans mon code je vois pas pourquoi il me met NaN normalement je devrais avoir test=test;test1=test1; je ne comprends pas comment ce NaN peut se mettre
        • Partager sur Facebook
        • Partager sur Twitter

        Problème de cookie

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown