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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Albertino
Отправлено: 28 Января, 2011 - 08:41:53
Post Id


Гость


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


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




Допистим есть сайт mysite.ru, если на сайт приходят по ссылке mysite.ru/?param1=xxx&param2=xxx, то надо задать куки(сбросить все get в в куки) и затем если user в следующий раз придет на сайт, но уже просто по ссылке mysite.ru(например, вбив адрес руками) нужно эти куки подставить в форму в action . Проблема заключается в следующем :
кокда пользователь приходит по ссылке mysite.ru/?param1=xxx&param2=xxx куки нормально задаются и сразу же видны на сайте, но когда затем приходишь на сайт введя просто адрес mysite.ru , то куки не видны, а если затем обновить страницу(F5), то куки становятся видны, можно ли сделать чтоб куки сразу были видны без обновления страницы.
 
 Top
Uchkuma
Отправлено: 28 Января, 2011 - 09:28:39
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Что значит "куки видны на сайте"?
 
 Top
Albertino
Отправлено: 28 Января, 2011 - 09:40:22
Post Id


Гость


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


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




Uchkuma пишет:
Что значит "куки видны на сайте"?

тоесть это значит, что после того как я их задал, я могу их свободно вывести с помощью
echo $_COOKIE['name']
Но когда пользователь приходит на сайт второй раз , когда уже куки заданы, то echo $_COOKIE['name'] ничего не выводит, а после обновления страницы(F5) выводит
 
 Top
Uchkuma
Отправлено: 28 Января, 2011 - 10:25:28
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Не видя кода, трудно сказать, что вы делаете не так.
 
 Top
SAD
Отправлено: 28 Января, 2011 - 10:37:16
Post Id



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


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




может срок годности истек Улыбка
 
 Top
Albertino
Отправлено: 28 Января, 2011 - 10:48:59
Post Id


Гость


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


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




SAD пишет:
может срок годности истек Улыбка

со сроком годности точно все впорядке
Uchkuma пишет:
Не видя кода, трудно сказать, что вы делаете не так.

вот код
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $sc = '';
  4. if (isset($_GET['utm_source'])){
  5.     if(!isset($_COOKIE['cpa'])){
  6.         if(setcookie('cpa', $_GET['utm_source'], time()+30*24*60*60))
  7.           setcookie($_GET['utm_source'], $_SERVER['QUERY_STRING'], time()+30*24*60*60);
  8.     }
  9. }
  10.  
  11.  
  12. ?>
  13. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  14.  
  15. <html>
  16. <head >
  17. <title></title>        
  18. <link rel="stylesheet" href="style.css">
  19. <script type="text/javascript">
  20.  
  21. </script>
  22.  
  23. </head>
  24. <?PHP
  25.  
  26. $ref="";
  27. if (isset($_GET['referer'])&&$_GET['referer']=="justin"){
  28. $ref="justin";
  29. }
  30.  
  31. $s="";
  32. if (isset($_GET['utm_source'])){
  33.     $s = "&utm_source={$_GET['utm_source']}";
  34.     $s .= "&utm_medium={$_GET['utm_medium']}";
  35.     $s .= "&utm_term={$_GET['utm_term']}";
  36.     $s .= "&utm_content={$_GET['utm_content']}";
  37.     $s .= "&utm_campaign={$_GET['utm_campaign']}";
  38. }
  39. if (isset($_COOKIE['cpa'])){
  40.     $s = "&".$_COOKIE[$_COOKIE['cpa']];
  41. }
  42. ?>
  43. <body marginheight="0" marginwidth="0" topmargin="0" bgcolor="#000000" >
  44.  
  45. <form action="http://www.mysite.ru/registration.php?ref=<?=$ref?><?=$s?>&goReg=true" method="POST" name="reg_form" onSubmit="return CheckForm(this);" style="margin: 0; padding: 0;">
  46. ...
  47. </form>
  48. ...
  49. <?
  50. if (isset($_COOKIE['cpa']))
  51.   echo $_COOKIE['cpa'];
  52. else echo "no cookie";
  53. ?>
  54. </body>
  55. </html>
  56.  
 
 Top
Uchkuma
Отправлено: 28 Января, 2011 - 11:55:16
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Попытался вникнуть в код, но он не совпадает с тем, что вы написали:
Albertino пишет:
кокда пользователь приходит по ссылке mysite.ru/?param1=xxx&param2=xxx куки нормально задаются и сразу же видны на сайте
Если при первом запросе был передан параметр 'utm_source', при условии которого устанавливается соответствующая кука, то в этом же запросе данная кука из массива $_COOKIE никак не может быть отображена! Потому что в массиве $_COOKIE содержится информация, которая пришла от браузера, а до первого запроса у браузера еще этой информации не было.

Albertino пишет:
но когда затем приходишь на сайт введя просто адрес mysite.ru , то куки не видны, а если затем обновить страницу(F5), то куки становятся видны
Тоже несовпадение с кодом. При обновлении страницы куки могли появиться, только если до этого они в браузере не были установлены.
 
 Top
OrmaJever Модератор
Отправлено: 28 Января, 2011 - 12:11:49
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




из описания setcookie()
Цитата:
Обычные ловушки:

1. Куки будут невидимы до тех пор, пока не будет загружена следующая страница.
2. Куки обязаны быть удалены с теми же параметрами, с которыми были установлены.

(Отредактировано автором: 28 Января, 2011 - 12:12:12)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Albertino
Отправлено: 28 Января, 2011 - 14:00:38
Post Id


Гость


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


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




опишу проблему более детально:
1) я перехожу на сайт(пусть для простоты mysite.ru), например, по банеру который имеет ссылку http://mysite[dot]ru/?utm_source=tes[dot][dot][dot]utm_campaign=rus
(сайт представляет собой всего 1 страницу с формой регистрации на другой сайт)
в это время задаются куки
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_GET['utm_source'])){
  3.     if(!isset($_COOKIE['cpa'])){
  4.         if(setcookie('cpa', $_GET['utm_source'], time()+30*24*60*60))
  5.           setcookie($_GET['utm_source'], $_SERVER['QUERY_STRING'], time()+30*24*60*60);
  6.     }
  7. }
  8.  

2)далее если в следущий раз я ,например, захожу на сайт введя адрес mysite.ru в адресной строке и если куки заданы,то они должны подставиться в форму

Проблема заключается в следующем:
я в первый раз перехожу по ссылке
http://mysite.ru/?utm_source=test&utm_medium=banner&utm_term=21jan&utm_campaign=rus, следоватьльно куки задаются, если я еще раз зайду на данный сайт по тойже ссылке или даже поссылке вкоторой указан просто ?, те mysyte.ru/?, то куки выводятся на страницу.
но если же я потом просто вобью адрес mysite.ru руками , то куки на страницу не выводятся и сообщает что их нет, но стоит только обновить страницу(именно обновить, а не перйти по адрессу) так сразу куки выводятся на странуцу
 
 Top
Uchkuma
Отправлено: 28 Января, 2011 - 14:51:12
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




Вообще странно. В каком браузере тестируете? Попробуйте в других. А еще попробуйте вручную вбить адрес вместе с http.
 
 Top
OrmaJever Модератор
Отправлено: 28 Января, 2011 - 16:14:19
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Попробуйте передать 4 параметром "/" как path.
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['utm_source'])){
  2.     if(!isset($_COOKIE['cpa'])){
  3.         if(setcookie('cpa', $_GET['utm_source'], time()+30*24*60*60, '/'))
  4.           setcookie($_GET['utm_source'], $_SERVER['QUERY_STRING'], time()+30*24*60*60, '/');
  5.     }
  6. }
  7.  


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Uchkuma
Отправлено: 28 Января, 2011 - 16:32:26
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




В общем, да. Дело в путях. Такое впечатление, что когда вы заходите на сайт "вручную", то браузер устанавливает куку для одного пути, а когда через ссылку, то для другого. Т.о. получается, что во втором случае кука оказывается неустановленной. Установка пути вручную должна решить эту проблему.
 
 Top
Albertino
Отправлено: 28 Января, 2011 - 17:02:49
Post Id


Гость


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


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




Да, я тоже тоже подумал что дело в путях, только я не parth прописал, а domen, т.е.
PHP:
скопировать код в буфер обмена
  1. setcookie('cpa', $_GET['utm_source'], time()+30*24*60*60, '', 'mysite.ru')

и вроде бы работает как надо, хотя для уверенности надо прописать и parth
Всем большое спасибо Поклон
 
 Top
JustUserR
Отправлено: 29 Января, 2011 - 17:03:51
Post Id



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


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


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




Albertino пишет:
И вроде бы работает как надо, хотя для уверенности надо прописать и parth
Возможной причиной осуществления возникновения указанной ошибки может являться использование систем alias-инга и действенного перенаправления на web-сервере - в таком случае для объектов являющихся идентичных на стороне сервера по отношению к элементам ассоциации URL-адресов может не предоставляться аналочиная конфигурация на клиентской стороне - в частности указання ситуация активно может проявляться при использовании mod_rewrite или включении параметров alias-инга для базового имени виртуального хоста


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB