Проблема со скриптом для работы с куками.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Проблема со скриптом для работы с куками. - 2007-05-10 12:01:40.380000
|
|
|
ХAКEP
Сообщений: 97
Оценки: 0
Присоединился: 2005-06-19 20:44:27
|
Вот мой скрипт: function getCookieVal (offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (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 getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
var currentQuest = GetCookie('currentQuest');
if (currentQuest == "1")
{counter();}
function counter()
{
var currentQuest1 = '1';
pathname = location.pathname;
myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
var largeExpDate = new Date ();
largeExpDate.setTime(largeExpDate.getTime() + (7 * 24 * 45 * 45));
SetCookie('currentQuest1',currentQuest1,largeExpDate,myDomain);
function SetCookie (name, value){ var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); }
}
var currentQuest1 = GetCookie('currentQuest1');
if (currentQuest1 == "1")
{counter();}
function counter()
{
var test1 = '1';
pathname = location.pathname;
myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/';
var largeExpDate = new Date ();
largeExpDate.setTime(largeExpDate.getTime() + (7 * 24 * 45 * 45));
SetCookie('test1',test1,largeExpDate,myDomain);
function SetCookie (name, value){ var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); }
}
var test1 = GetCookie('test1');
if (test1 == "1")
document.location.href="www.xakep.ru"; Поясню что оне должен делать: Во первых должен проверить наличие кука currentQuest , если он есть и равен '1' то создать кук currentQuest1 равный '1' , затем проверяем наличие кука currentQuest1 равного '1' и при этом условии создаём кук test1 и задаём ему значение '1' , и наконец проверяем наличие кука test1 равного '1', если он есть то редиректим юзера на нуюную нам страницу. Всё бы хорошо, но в скрипте какая-то ошибка и он не работает, я просто не особо смыслю в JavaScript и поэтому когда я собирал его по кусочкам наверняка запорол какой-нить из них. Кто может ПОМОГИТЕ! Всем обратившим внимание спасибо!
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-12 13:40:20.113333
|
|
|
ХAКEP
Сообщений: 97
Оценки: 0
Присоединился: 2005-06-19 20:44:27
|
Но возник ещё один вопросик: Есть кука answers , значения в которой записаны так: "значение"|"значение"… Я хотел бы знать как проверить наличие любого значения (оно меняеться всё время). Например есть три значения 3|-10|9 , а мне нужно знать не то какое значение там записано, но то что их три. Можно ли это как-то осуществить?
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-12 16:48:32.086666
|
|
|
AdReNaL1Ne
Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
|
quote:
ORIGINAL: ХAКEP Но возник ещё один вопросик: Есть кука answers , значения в которой записаны так: "значение"|"значение"… Я хотел бы знать как проверить наличие любого значения (оно меняеться всё время). Например есть три значения 3|-10|9 , а мне нужно знать не то какое значение там записано, но то что их три. Можно ли это как-то осуществить? s = answers.split("|"); num = s.length;
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-13 15:55:36.306666
|
|
|
ХAКEP
Сообщений: 97
Оценки: 0
Присоединился: 2005-06-19 20:44:27
|
[PHP]function getCookieVal (offset) { var endstr = document.соokie.indexOf (";", offset); if (endstr == -1) endstr = document.соokie.length; return unescape(document.соokie.substring(offset, endstr)); } function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.соokie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.соokie.substring(i, j) == arg) return getCookieVal (j); i = document.соokie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function SetCookie (name, value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.соokie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } function counter() { var currentQuest1 = '1'; var largeExpDate = new Date (); largeExpDate.setTime(largeExpDate.getTime() + (7 * 24 * 45 * 45)); SetCookie('currentQuest1',currentQuest1); } var currentQuest=GetCookie('currentQuest'); if(currentQuest=="1")SetCookie('currentQuest1',"1"); function Testum(str) { s=str.split("|"); return s.length; } var a=GetCookie('answers'); var c=GetCookie('currentQuest1'); if(a=="1",c=="1")SetCookie('test1',"a"); var test1 = GetCookie('test1'); if (test1 == "1") document.location="../../../../../testum/content/chapter1/section/paragraph1/test2.html?access=true";[/PHP] В итоге получился вот такой код. Но в кук test1 записываеться почему-то не цифра а сама переменная "a", а почему не знаю. И ещё вопрос можно-ли делать две проверки разом: "var a=GetCookie('answers'); var c=GetCookie('currentQuest1'); if(a=="1",c=="1")SetCookie('test1',"a");" или ошибка заключаеться именно в этом?
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-13 15:57:48.916666
|
|
|
ХAКEP
Сообщений: 97
Оценки: 0
Присоединился: 2005-06-19 20:44:27
|
function getCookieVal (offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (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 getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}
function counter()
{
var currentQuest1 = '1';
var largeExpDate = new Date ();
largeExpDate.setTime(largeExpDate.getTime() + (7 * 24 * 45 * 45));
SetCookie('currentQuest1',currentQuest1);
}
var currentQuest=GetCookie('currentQuest');
if(currentQuest=="1")SetCookie('currentQuest1',"1");
function Testum(str)
{
s=str.split("|");
return s.length;
}
var a=GetCookie('answers');
var c=GetCookie('currentQuest1');
if(a=="1",c=="1")SetCookie('test1',"a");
var test1 = GetCookie('test1');
if (test1 == "1") document.location="../../../../../testum/content/chapter1/section/paragraph1/test2.html?access=true"; В итоге получился вот такой код. Но в кук test1 записываеться почему-то не цифра а сама переменная "a", а почему не знаю. И ещё вопрос можно-ли делать две проверки разом: "var a=GetCookie('answers'); var c=GetCookie('currentQuest1'); if(a=="1",c=="1")SetCookie('test1',"a");" или ошибка заключаеться именно в этом?
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-13 21:00:46.190000
|
|
|
AdReNaL1Ne
Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
|
quote:
if(a=="1",c=="1") [sm=ai.gif][sm=an.gif] quote:
SetCookie('test1',"a");" [sm=an.gif][sm=an.gif]
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-14 20:51:50.306666
|
|
|
ХAКEP
Сообщений: 97
Оценки: 0
Присоединился: 2005-06-19 20:44:27
|
Ну вот всё сразу прояснилось :).
|
|
|
RE: Проблема со скриптом для работы с куками. - 2007-05-15 20:35:16.953333
|
|
|
AdReNaL1Ne
Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
|
[sm=bi.gif]
|
|
|
|
|