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 :: Куки

 PHP.SU

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


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

> Без описания
JoyStick
Отправлено: 13 Января, 2012 - 10:45:43
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012  


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




Собственно такая проблема, есть скирипт на попап, все работает, все клево, но есть проблемка, он записывает в куки значение 1, и потом проверяет если оно равно 1, то окно не появляется. Так вот суть проблемы в том, что когда браузер закрываешь, то оно не сохр куки, так как не стоит срок их действия. Собственно вопрос, как выставить время хранения куки.

Вот скрипт

CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/javascript">
  2. var block_id = '#adSite';
  3. var top_offset = 100;
  4. var tid = null;
  5. function setCookie(name, value, expires, path, domain, secure) {
  6.         document.cookie = name + "=" + escape(value) +
  7.         ((expires) ? "; expires=" + expires : "") +
  8.         ((path) ? "; path=" + path : "") +
  9.         ((domain) ? "; domain=" + domain : "navigatorway.com") +
  10.         ((secure) ? "; secure" : "");
  11. }
  12. function getCookie(name) {
  13.         var cookie = " " + document.cookie;
  14.         var search = " " + name + "=";
  15.         var setStr = null;
  16.         var offset = 0;
  17.         var end = 0;
  18.         if (cookie.length > 0) {
  19.                 offset = cookie.indexOf(search);
  20.                 if (offset != -1) {
  21.                         offset += search.length;
  22.                         end = cookie.indexOf(";", offset)
  23.                         if (end == -1) {
  24.                                 end = cookie.length;
  25.                         }
  26.                         setStr = unescape(cookie.substring(offset, end));
  27.                 }
  28.         }
  29.         return(setStr);
  30. }
  31. function blockPop() {
  32.         $(block_id).slideUp("normal");
  33.         $(window).unbind("scroll");
  34.         setCookie('pop', '1');
  35. }
  36. document.onkeypress = func;
  37. function func(event) {
  38.         if (window.event) event = window.event;
  39.         var key = event.keyCode ? event.keyCode : event.which ? event.which : null;
  40.         if( (event.ctrlKey) && ( (key == 0xA) || (key == 0xD) ) ) {
  41.                 setCookie('pop', '');
  42.                 showPop();
  43.         }
  44. }
  45. function showPop() {
  46.         var pop = getCookie('pop');
  47.         if (pop) return;
  48.         setTimeout(function() {
  49.                 var win_scrl = $(document).scrollTop();
  50.                 var top = parseInt(top_offset + win_scrl);
  51.                 $(block_id).css('top', top + 'px').slideDown("normal", function() {
  52.                         $(block_id + ' #close_bnt').unbind("click").click(function() {
  53.                                 blockPop();
  54.                         });
  55.                         $(window).scroll(function() {
  56.                                 win_scrl = $(document).scrollTop();
  57.                                 top = parseInt(top_offset + win_scrl);
  58.                                 $(block_id).css('top', top + 'px');
  59.                         });
  60.                 });
  61.         }, 15000);
  62. }
  63. $(document).ready(function() {
  64.         showPop();
  65. });
  66. </script>
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Января, 2012 - 11:21:46
Post Id



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


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


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




У Вас подключена jQuery?
Если да, могу предложить маленький плагин jquery.cookie.js

Работа с ним :

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.cookie("the_cookie", "the_value", {
  3.   expires: 7, // Время жизни в днях
  4.   path: "/",  // Видимость для дирректорий
  5.   domain: "jquery.com", // Видимость для домена
  6.   secure: true // Безопасность
  7. });
  8.  


Удаление:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $.cookie("the_cookie", null);
  3.  

(Отредактировано автором: 13 Января, 2012 - 21:44:55)

 
 Top
JoyStick
Отправлено: 13 Января, 2012 - 11:31:35
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012  


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




armancho7777777 пишет:
У Вас подключена jQuery?
Если да, могу предложить маленький плагин jquery.cookie.js

Работа с ним :

Да подкл, но что то все равно не работает...
 
 Top
Zuldek
Отправлено: 13 Января, 2012 - 11:43:57
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


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




уберите параметр expires
либо укажите в нем время хранения куки
http://php.su/functions/?setcookie
 
 Top
JoyStick
Отправлено: 13 Января, 2012 - 12:35:38
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012  


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




Zuldek пишет:
уберите параметр expires
либо укажите в нем время хранения куки
http://php.su/functions/?setcookie


спс, разобрался)
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Января, 2012 - 14:08:10
Post Id



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


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


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




JoyStick пишет:
Да подкл, но что то все равно не работает...

Так вы сначало подключите плагин jquery.cookie.js))
И, кстати, он короче вашего кода в 2 раза)

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. jQuery.cookie = function(name, value, options) {
  3.     if (typeof value != 'undefined') {
  4.         options = options || {};
  5.         if (value === null) {
  6.             value = '';
  7.             options.expires = -1;
  8.         }
  9.         var expires = '';
  10.         if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
  11.             var date;
  12.             if (typeof options.expires == 'number') {
  13.                 date = new Date();
  14.                 date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
  15.             } else {
  16.                 date = options.expires;
  17.             }
  18.             expires = '; expires=' + date.toUTCString();
  19.         }
  20.         var path = options.path ? '; path=' + (options.path) : '';
  21.         var domain = options.domain ? '; domain=' + (options.domain) : '';
  22.         var secure = options.secure ? '; secure' : '';
  23.         document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
  24.     } else {
  25.         var cookieValue = null;
  26.         if (document.cookie && document.cookie != '') {
  27.             var cookies = document.cookie.split(';');
  28.             for (var i = 0; i < cookies.length; i++) {
  29.                 var cookie = jQuery.trim(cookies[i]);
  30.                 if (cookie.substring(0, name.length + 1) == (name + '=')) {
  31.                     cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
  32.                     break;
  33.                 }
  34.             }
  35.         }
  36.         return cookieValue;
  37.     }
  38. };
  39.  

(Отредактировано автором: 13 Января, 2012 - 14:15:41)

 
 Top
JoyStick
Отправлено: 13 Января, 2012 - 15:20:05
Post Id


Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2012  


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




CODE (javascript):
скопировать код в буфер обмена
  1. function blockPop() {
  2.         $(block_id).slideUp("normal");
  3.         $(window).unbind("scroll");
  4.         setCookie('pop', '1', [color=red]'1-Jan-13 01:12:40 GMT'[/color]);


Вот добавил, то что выделено цветом, все гуд, НО в ИЕ не работает... Вылетает окно постоянно...
 
 Top
armancho7777777 Супермодератор
Отправлено: 13 Января, 2012 - 21:35:13
Post Id



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


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


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




Блин, вам дали код короче Вашего в 2 раза, и рабочий.
Вам что, свободное время некуда девать?)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB