Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Установить время жизни cookie

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
webog
Отправлено: 05 Марта, 2014 - 16:34:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Приветствую!

Подскажите пожалуйста, как задать время жизни cookie?

Устанавливаю куки так:

CODE (javascript):
скопировать код в буфер обмена
  1. <script language="javascript">
  2.  
  3. if (document.cookie.indexOf('_visited=1') == -1) {
  4.  
  5.  
  6. $(document).ready(function() {
  7.  
  8. код...
  9.  
  10. });
  11.  
  12.  
  13. document.cookie = '_visited=1; path=/';
  14. }
  15.  
  16. </script>


Куда время можно прилепить то?

Вот нашел в интернете:

CODE (javascript):
скопировать код в буфер обмена
  1. date = new Date();
  2. date.setHours(date.getHours() + 1);
  3. setCookie('name', 'value', date.toUTCString());


Заранее спасибо!


-----
Hello!
 
 Top
EuGen Администратор
Отправлено: 05 Марта, 2014 - 16:37:12
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




stackoverflow пишет:

CODE (javascript):
скопировать код в буфер обмена
  1. function writeCookie (key, value, days) {
  2.     var date = new Date();
  3.  
  4.     // Default at 365 days.
  5.     days = days || 365;
  6.  
  7.     // Get unix milliseconds at current time plus number of days
  8.     date.setTime(+ date + (days * 86400000)); //24 * 60 * 60 * 1000
  9.  
  10.     window.document.cookie = key + "=" + value + "; expires=" + date.toGMTString() + "; path=/";
  11.  
  12.     return value;
  13. };


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
webog
Отправлено: 05 Марта, 2014 - 16:45:27
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


EuGen, какие данные будут записываться в куки?


-----
Hello!
 
 Top
IllusionMH
Отправлено: 05 Марта, 2014 - 16:58:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




webog, какие хотите. Посмотрите на сгенерированную в строку и подставьте свои данные.
 
 Top
webog
Отправлено: 05 Марта, 2014 - 17:48:04
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


CODE (javascript):
скопировать код в буфер обмена
  1. // Default at 365 days.
  2.     days = days || 365;


Друзья, как 12 часов поставить?

hours ?


-----
Hello!
 
 Top
IllusionMH
Отправлено: 05 Марта, 2014 - 17:51:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




webog, замените кол-во дней на кол-во часов, и множитель для кол-ва милисекунд в сутках на кол-во милисекунд в часу.
 
 Top
webog
Отправлено: 05 Марта, 2014 - 17:57:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


days = hours || 1*86400*3600;

Получается так?


-----
Hello!
 
 Top
IllusionMH
Отправлено: 05 Марта, 2014 - 17:58:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




webog, напрягите извилины
CODE (javascript):
скопировать код в буфер обмена
  1. // Get unix milliseconds at current time plus number of days
  2.     date.setTime(+ date + (days * 86400000)); //24 * 60 * 60 * 1000


тут должны быть часы и кол-во миллисекунд в часе.

(Отредактировано автором: 05 Марта, 2014 - 18:00:20)

 
 Top
webog
Отправлено: 05 Марта, 2014 - 19:11:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


IllusionMH,

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. // Get unix milliseconds at current time plus number of days
  3.     date.setTime(+ date + (hours * 3600000)); //1 * 60 * 60 * 1000
  4.  


Получается так?


-----
Hello!
 
 Top
IllusionMH
Отправлено: 05 Марта, 2014 - 19:15:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




webog, ага.
 
 Top
webog
Отправлено: 05 Марта, 2014 - 19:18:23
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


IllusionMH пишет:
webog, ага.


Плюсанул, спасибо, тестирую!
(Добавление)
CODE (javascript):
скопировать код в буфер обмена
  1. function writeCookie (key, value, days) {
  2.     var date = new Date();
  3.  
  4.     // Default at 365 days.
  5.     days = days || 365;
  6.  
  7.    // Get unix milliseconds at current time plus number of days
  8.     date.setTime(+ date + (hours * 3600000)); //1 * 60 * 60 * 1000
  9.  
  10.     window.document.cookie = key + "=" + value + "; expires=" + date.toGMTString() + "; path=/";
  11.  
  12.     return value;
  13.         };


Сей код не работает.
Может и работает, но не для моей задачи.

Нужно что бы окно не вылетало при обновлении страници в браузере.
Зашли на сайт - вылете окно - записалось в куки - время жизни куки час.

Может сюда примотать нужно?

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. if (document.cookie.indexOf('_visited=1') == -1) {
  3.  
  4. код...
  5.  
  6. document.cookie = '_visited=1; path=/';
  7. }
  8.  


-----
Hello!
 
 Top
webog
Отправлено: 07 Марта, 2014 - 16:27:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


Подыму тему. Т.к. актуальна.

Еще трабл со скролом. Окно не вылетело, а при скролинге вылетает.

(Отредактировано автором: 07 Марта, 2014 - 16:30:05)



-----
Hello!
 
 Top
IllusionMH
Отправлено: 07 Марта, 2014 - 16:42:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




webog, ну так на закрытие окна вешайте обработчик. который запишет правильную куку с временем истечения. А то у вас как писалось ваша строка, так и пишется. Функцию где используете которая часы подставляет?
 
 Top
webog
Отправлено: 07 Марта, 2014 - 17:26:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


IllusionMH, простите ради бога, но в яве не силен. Можно еще раз?


-----
Hello!
 
 Top
webog
Отправлено: 11 Марта, 2014 - 14:11:02
Post Id


Частый гость


Покинул форум
Сообщений всего: 242
Дата рег-ции: Нояб. 2011  


Помог: 0 раз(а)

[+]


CODE (javascript):
скопировать код в буфер обмена
  1. <script language="javascript">
  2.  
  3. if (document.cookie.indexOf('_visited=1') == -1) {
  4.  
  5. $(document).ready(function() {
  6.  
  7. <!-- ========Cookie========= -->
  8. function writeCookie (key, value, days) {
  9.     var date = new Date();
  10.  
  11.     // Default at 365 days.
  12.     days = days || 1;
  13.  
  14.    // Get unix milliseconds at current time plus number of days
  15.     date.setTime(+ date + (hours * 3600000)); //1 * 60 * 60 * 1000
  16.  
  17.     window.document.cookie = key + "=" + value + "; expires=" + date.toGMTString() + "; path=/";
  18.  
  19.     return value;
  20.         };
  21. <!-- ========/Cookie========= -->
  22.  
  23.  
  24. <!-- ========OTKR========= -->
  25.  
  26. setTimeout(function(){
  27.     $('#sliderBox').slideTo({
  28.         transition:300,
  29.         top:'center',
  30.         left:'center',
  31.         inside:window
  32.     });
  33.   $('#background').height($(document).height());
  34.  
  35.     jQuery(window).resize(function() {
  36.         $('#sliderBox').stop().slideTo({
  37.             transition:300,
  38.             top:'center',
  39.             left:'center',
  40.             inside:window
  41.         });
  42.     });
  43.     },15000);
  44. <!-- ========/OTKR========= -->
  45.  
  46.  
  47. <!-- ========ZAKR========= -->
  48. setTimeout(function(){$("#sliderBox").slideTo({
  49.             transition:-100,
  50.             top:-15000
  51.             });
  52.             $('#background').fadeOut(500);
  53.             closeWelcomeBox = true;
  54.             },25000);
  55. <!-- ========/ZAKR========= -->
  56.  
  57.     var closeWelcomeBox;
  58.  
  59.     $(window).scroll(function(){
  60.         if(!closeWelcomeBox){
  61.             $('#sliderBox').stop().slideTo({
  62.                 transition:300,
  63.                 top:'center',
  64.                 left:'center',
  65.                 inside:window
  66.             });
  67.         }
  68.     });
  69.  
  70.  
  71.     $("#closeWelcomeBox").click(function(){
  72.         $('#sliderBox').stop().slideTo({
  73.             transition:500,
  74.             top:-15000
  75.             });
  76.             $('#background').fadeOut(500);
  77.         closeWelcomeBox = true;
  78.     });
  79.  
  80. });
  81.  
  82.         writeCookie ('_visited=1', value, days);
  83. }
  84.  
  85. </script>


Сейчас вот так вот! Окошко вылетает по времени, залетает. Все ок!

Но куки не пишет.


-----
Hello!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB