2010-03-29 4 views
0

J'ai un problème avec mes cookies et je n'arrive pas à comprendre. Fondamentalement, je l'ai mis en place afin qu'il vérifie pour le cookie pour voir si l'utilisateur est connecté, puis affiche un message de bienvenue ou un lien de connexion . Cela fonctionne - sauf qu'au lieu de renvoyer le nom des personnes dans le message de bienvenue il est simplement vide où le nom devrait être. Le cookie est là, avec toutes les informations appropriées .. je ne sais pas ce que je fais mal.problème d'obtention d'informations à partir d'un cookie avec javascript

var itm = new Array(); 
itm[0] = findCookie("ui"); 
if (itm[0] == null) { 
document.write("<h2><a href='logreg.html'>Log In or Sign Up</a></h2>"); 
} 
else { 
var c1 = itm[0].indexOf(","); 
var c2 = itm[0].indexOf(",",c1); 
var c3 = itm[0].indexOf(",",c2); 
var gname = itm[0].substring(c2,c3); 
document.write("<h2>Welcome "+gname+"!</h2>"); 
           } 

La fonction findCookie est ..

function findCookie(val){ 
     var cookie = null; 
     var findVal = val + "="; 
     var dc = document.cookie; 
     if (dc.length > 0) 
    { 
      var start = dc.indexOf(findVal); 
      if (start >= 0) 
     { 
        start += findVal.length; 
        lastVal = dc.indexOf(";", start); 
        if (lastVal == -1) 
       { 
          lastVal = dc.length; 
       } 
        cookie = (dc.substring(start, lastVal)); 
      } 
     else 
     { 
      return cookie; 
     } 
     } 
     return cookie; 
} 
+0

Sans savoir ce que la valeur du cookie typique ressemble il est difficile de dire ... Votre problème le plus probable est dans ces lignes: .indexOf (« ») var = c1 itm [0] ; var c2 = itm [0] .indexOf (",", c1); var c3 = itm [0] .indexOf (",", c2); var gname = itm [0] .substring (c2, c3); findCookie renvoie-t-il une valeur de cookie avec des virgules? Sinon, il retournera toujours une chaîne vide. – enduro

+0

Oui - Je peux voir le cookie avec toutes les valeurs, les virgules, etc. - c'est là. – Jason

Répondre

0

Peu importe - j'oublié d'ajouter le +1 après qu'il trouve l'index de la virgule ou bien il se contente de lire le numéro d'index pour chaque être la même ...