2012-01-26 16 views
5

Ecco quello che spero sia una breve domanda ...Impostazione di un cookie per sito

Sto tentando di impostare un cookie che può essere utilizzato in tutto il sito. Sto creando un sito di tipo lead generation. Voglio che gli utenti compilino un modulo per accedere a informazioni esclusive. Una volta compilato il modulo, hanno accesso alle informazioni.

Sto tagliando un cookie quando l'utente invia il modulo in modo che possano accedere direttamente al contenuto la volta successiva che visitano il sito. Il modulo che compilano si trova nella barra laterale di ogni pagina del sito. Quando l'utente compila il modulo su una pagina, non dovrebbe vederlo su QUALSIASI pagina del sito.

Tutto funziona, ad eccezione del bit di sito. Penso che il problema è in questo po 'di codice:

function set_cookie(name, value, expires, path, domain, secure){ 
if (!expires){expires = new Date()} 
document.cookie = name + "=" + escape(value) + 
((expires == null) ? "" : "; expires=" + expires.toGMTString()) + 
((path == null) ? "" : "; path=" + path) + 
((domain == null) ? "" : "; domain=" + domain) + 
((secure == null) ? "" : "; secure"); 
} 

Ma ecco il codice completo qui sotto. GRAZIE MILLE!

<script type="text/javascript"> 
<!-- 
cookie_name="landasp" 
expdays=365 

// An adaptation of Dorcht's cookie functions. 

function set_cookie(name, value, expires, path, domain, secure){ 
if (!expires){expires = new Date()} 
document.cookie = name + "=" + escape(value) + 
((expires == null) ? "" : "; expires=" + expires.toGMTString()) + 
((path == null) ? "" : "; path=" + path) + 
((domain == null) ? "" : "; domain=" + domain) + 
((secure == null) ? "" : "; secure"); 
} 

function get_cookie(name) { 
var arg = name + "="; 
var alen = arg.length; 
var clen = document.cookie.length; 
var i = 0; 
while (i < clen) { 
var j = i + alen; 
if (document.cookie.substring(i, j) == arg){ 
return get_cookie_val(j); 
} 
i = document.cookie.indexOf(" ", i) + 1; 
if (i == 0) break; 
} 
return null; 
} 

function get_cookie_val(offset){ 
var endstr = document.cookie.indexOf (";", offset); 
if (endstr == -1) 
endstr = document.cookie.length; 
return unescape(document.cookie.substring(offset, endstr)); 
} 

function delete_cookie(name,path,domain){ 
document.cookie = name + "=" + 
((path == null) ? "" : "; path=" + path) + 
((domain == null) ? "" : "; domain=" + domain) + 
"; expires=Thu, 01-Jan-00 00:00:01 GMT"; 
} 

function saving_cookie(){ 
var expdate = new Date(); 
expdate.setTime (expdate.getTime() + (expdays*24*60*60*1000*30)); //set for one month 
Data="cooked" 

set_cookie(cookie_name,Data,expdate) 
} 

function get_cookie_data(){ 
inf=get_cookie(cookie_name) 
if(!inf){ 
document.getElementById("display1").style.display="block" 
} 
else{ 
document.getElementById("display2").style.display="block" 
} 
} 

// --> 
</script> 
+0

benvenuto in stackoverflow! Se ritieni che una risposta risponda alla tua domanda, contrassegnala come risposta facendo clic sulla casella di controllo verde. – vidstige

risposta

10

è necessario specificare un ampio percorso del sito, se il percorso non è dato:

((path == null) ? "; path=/" : "; path=" + path) + 

È possibile eseguire il debug i biscotti utilizzando Firebug, basta uno sguardo ai cookie impostati.

+1

Grazie mille! Mi sto tormentando il cervello cercando di farlo! – Ash

Problemi correlati