Установка файла cookie для всего сайта - PullRequest
6 голосов
/ 26 января 2012

Вот, что я надеюсь, это быстрый вопрос ...

Я пытаюсь установить cookie-файл, который можно использовать по всему сайту. Я создаю сайт типа ведущего поколения. Я хочу, чтобы пользователи заполняли форму, чтобы получить доступ к эксклюзивной информации. Как только они заполняют форму, они получают доступ к информации.

Я удаляю cookie, когда пользователь отправляет форму, чтобы они могли сразу перейти к контенту при следующем посещении сайта. Форма, которую они заполняют, находится на боковой панели каждой страницы сайта. Когда пользователь заполняет форму на одной странице, он не должен видеть ее на ЛЮБОЙ странице сайта.

Все работает, кроме бита для сидения. Я думаю, что проблема в этом кусочке кода:

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

Но вот полный код ниже. ОГРОМНОЕ СПАСИБО!

<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> 

1 Ответ

11 голосов
/ 26 января 2012

Вы должны указать полный путь к сайту, если путь не указан:

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

Вы можете отлаживать куки, используя Firebug, просто посмотрите на установленные куки.

...