Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Setcokie в Javascript Нужна помошь Срочно =) |

15.07.2009, 20:57
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 42
Провел на форуме: 293979
Репутация:
18
|
|
Setcokie в Javascript Нужна помошь Срочно =)
Всем привет, заранее буду признателен за помошь.
Вобщем мне нужно было задать временные куксы, для теста время жизни взял 10 секунд.
На php реализовал это следующим образом:
PHP код:
setcookie("temporary","blablalbla",time()+10);
Все хорошо, все работает. Но только в том случае!, КОгда Время на сервере такое е же как и у пользователя на компе. В противном случае будет задан пирожок с неправильным временем жизни.
Чтобы узнать время пользователя пришлось воспользовался javascript. В яваскрипте есть функция gettime - аналог time на php.
Передать переменную из явы в пхп можно (на сколько мне известно) 3 способами:
1. гет запрос
2 пост запрос
3 установить куки
Первые два варианта сразу отбрасываю, т к они требуют обновления страница, остается 3. Гораздо легче задать куки через яву. Собственно тут я и столкнулся спроблемой.
Ниже приведу код:
PHP код:
<SCRIPT LANGUAGE="JavaScript">
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
setCookie("foo", "bar", "Mon, 01-Jan-2010 00:00:00 GMT", "/");
</SCRIPT>
В данном примере в переменной время (expires) нужно указать точное число, а мне же нужно чтобы куки устанавливалось на определенное колиичетсво секунд. Как это сделано в php time()+ секунды. В этом вся и загвостка. Моих знаний не хватает. Буду признателен за помош
|
|
|

15.07.2009, 21:17
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 42
Провел на форуме: 293979
Репутация:
18
|
|
ап ап ап =(((
|
|
|

15.07.2009, 21:33
|
|
Новичок
Регистрация: 31.03.2009
Сообщений: 14
Провел на форуме: 97409
Репутация:
6
|
|
PHP код:
<html>
<head></head>
<body>
<SCRIPT LANGUAGE="JavaScript">
var d = new Date( (new Date()).getTime() + 10000 );
document.write(d.toString());
</SCRIPT>
</body>
</html>
в d будет хранитсья текущая дата клиента + 10 секунд. (getTime() в милисекундах).
|
|
|

15.07.2009, 21:56
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 42
Провел на форуме: 293979
Репутация:
18
|
|
А СПАСИБО ВЕРИ МАЧ =) ЩАС БУДУ ПРОБОВАТЬ
|
|
|

15.07.2009, 22:27
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 42
Провел на форуме: 293979
Репутация:
18
|
|
чувствуя себя нубом, не могу все совсместить воедино... Нелюблю я яву...может кто поможет?
я делаю так:
PHP код:
<SCRIPT LANGUAGE="JavaScript">
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var d = new Date( (new Date()).getTime() + 10000 );
setCookie("test111", "bar", "d.toString()", "/");
</SCRIPT>
кукис задается но без времени
|
|
|

15.07.2009, 22:38
|
|
Новичок
Регистрация: 31.03.2009
Сообщений: 14
Провел на форуме: 97409
Репутация:
6
|
|
а так:
PHP код:
<SCRIPT LANGUAGE="JavaScript">
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var d = new Date( (new Date()).getTime() + 10000 );
setCookie("test111", "bar", d.toString(), "/");
</SCRIPT>
|
|
|

15.07.2009, 22:43
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 42
Провел на форуме: 293979
Репутация:
18
|
|
http://i043.radikal.ru/0907/1c/3bb54faaf3f0.jpg Аналагично, время не задается пачемуТО
Последний раз редактировалось Whois; 15.07.2009 в 22:45..
|
|
|

15.07.2009, 22:56
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
Чтобы узнать время пользователя пришлось воспользовался javascript. В яваскрипте есть функция gettime - аналог time на php.
Передать переменную из явы в пхп можно (на сколько мне известно) 3 способами:
1. гет запрос
2 пост запрос
3 установить куки
Первые два варианта сразу отбрасываю, т к они требуют обновления страница
AJAX не рулед?
JS выставлять куки - извращение
|
|
|

15.07.2009, 22:59
|
|
Banned
Регистрация: 05.05.2009
Сообщений: 42
Провел на форуме: 293979
Репутация:
18
|
|
рулед все.... покажите мне готовое решение... Я сам знаю много способов но силен только в php.... Так что обращаюсь за помощью к вам
|
|
|

15.07.2009, 23:00
|
|
Новичок
Регистрация: 31.03.2009
Сообщений: 14
Провел на форуме: 97409
Репутация:
6
|
|
d.toString() я тебе для примера сверху написал, чтобы просто на экран дату вывести, плюс ты ее в кавычки зачем-то заслал.
Видимо проблема с форматом даты в котором выводит ее toString(), возможно этот момент броузро-зависим, проверил щас твой код на FireFox'e, в линуксе, все работает и дата задается.
Попробуй поэксперементируй, вместо toString(): toGMTString(), toLocaleString(), toUTCString(). Вообще посравнивай как твоя опера дату распечатывает. Я так понял
"Mon, 01-Jan-2010 00:00:00 GMT"
с таким вариантом все работает, посмотри насколько toString() от него отличается? Возможно в разных броузерах и вывод будет разный (или даже в разны ОС), и возможно прибется форматировать эту строку вручную строковыми функциями.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|