2012-01-26 12 views
5

Esto es lo que espero sea una pregunta rápida ...Todas Las cookies

Estoy tratando de establecer una cookie que se puede utilizar en todo el sitio. Estoy creando un sitio de generación de prospectos. Quiero que los usuarios completen un formulario para acceder a información exclusiva. Una vez que completan el formulario, tienen acceso a la información.

Estoy soltando una cookie cuando el usuario envía el formulario para que puedan ir directamente al contenido la próxima vez que visiten el sitio. El formulario que completan está en la barra lateral de cada página del sitio. Cuando el usuario completa el formulario en una página, no debe verlo en CUALQUIER página del sitio.

Todo funciona, excepto el bit de todo el sitio. Creo que el problema es en este trozo de código:

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"); 
} 

Pero aquí está por debajo del código completo. ¡MUCHAS GRACIAS!

<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

¡Bienvenido a stackoverflow! Si cree que una respuesta responde a su pregunta, márquela como respondida haciendo clic en la casilla de verificación verde. – vidstige

Respuesta

10

debe especificar una amplia ruta de sitio, si no se proporciona la ruta:

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

Puede depurar las galletas usando Firebug, simplemente echar un vistazo a las cookies creadas.

+1

¡Muchas gracias! ¡He estado trabajando en mi cerebro tratando de hacer esto! – Ash

Cuestiones relacionadas