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
Форумы портала PHP.SU :: Версия для печати :: setcookie работает но не всегда
Форумы портала PHP.SU » » Если скрипт не работает » setcookie работает но не всегда

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

1. mordor590 - 27 Сентября, 2014 - 15:55:14 - перейти к сообщению
Ситуация сложилась таким образом:
Есть скрипт авторизации пользователей который ставит куки.
Вот его кусок:
PHP:
скопировать код в буфер обмена
  1.  
  2. setcookie("access",$utype_cipher_encrypt,time()+60*60*24*30,"/","domain.ru",0);
  3. setcookie("hash",$user_hash_encrypt,time()+60*60*24*30,"/","domain.ru",0);
  4. setcookie("id",$user_id_encrypt,time()+60*60*24*30,"/","domain.ru",0);
  5.  

Работала эта штука везде и всегда, но прихожу значит к клиенту, а авторизация никак не идет. Сначала не придал значения, но у друга точно такая же ситуация проверил еще на 10-15 компьютерах. Единственный фактор который объединяет двоих у кого не работает скрипт это ADSL модем через который они получают интернет. Единственное что у них ставиться куки только Access а остальных два параметра нет.

Подскажите хотя-бы в какую сторону копать как связано ADSL и cookie?
2. Tyoma5891 - 27 Сентября, 2014 - 20:32:41 - перейти к сообщению
куки устанавливает браузер по запросу сервера, причем здесь адсл модем(если у вас уже установлено интернет соединение)?
3. mordor590 - 27 Сентября, 2014 - 22:21:01 - перейти к сообщению
Если бы я знал причем. Это лишь то что я смог найти общего между двумя компьютерами на которых не работает скрипт. Работает везде... Кроме тех у кого Adsl соединение.... Я вообще ума не приложу как к этой задачке подступиться....
4. OrmaJever - 27 Сентября, 2014 - 23:42:43 - перейти к сообщению
Что бы делал я
1) Попробовать с нескольких компьютеров и узнать куки не ставятся вовсе или ставятся но не у всех. Если не ставятся вовсе то проблема в скрипте и нужно тестить уже там.
2) Если же куки ставятся но не у всех то у тех у кого не ставятся нужно смотреть ответ от сервера, через панель разработчика. Если же в заголовках от сервера куки не приходят нужно опять же смотреть сервер.
3) Если же от сервера кука пришла, но в браузере не показывается то нужно смотреть
а) настройки браузера
б) проверять домен и путь куда она ставиться. У меня были странности что кука установленная на 127.0.0.1 была видна и работала на localhost и внешем ip.
5. dcc0 - 28 Сентября, 2014 - 00:00:54 - перейти к сообщению
Немного фантастики:
Что если через ADSL соединение устанавливается через какой-нибудь хитрый прокси-сервер, с какими-нибудь специфическими правилами?
6. mordor590 - 28 Сентября, 2014 - 09:32:58 - перейти к сообщению
1) Скрипт ставит 3 cookie(приводил пример в первом посте) год полтора никаких вообще проблем небыло и тут бац у клиента не работает. Перевернул перекрутил весь комп единственное что привлекло внимание - модем. К другу с таким же модемом и оператором интернета прихожу таже беда. Ставится из трех тока один параметр Access.
2) Через панель разработчика в хроме смотрел ставится только одна хотя должны все 3... Можно чуть подробнее где и что там можно еще посмотреть.
Единственно вопрос: указывать в функции отправки кук надо: "domain.ru" или ".domain.ru" ?

Ухищрения с прокси очень маловероятны...
7. dcc0 - 28 Сентября, 2014 - 11:29:29 - перейти к сообщению
Если есть возможность, я бы порылся в настройках ADSL-модема, хотя бы одного.
Конечно, казалось бы вещи, не связанные, но у самого был когда ADSL - и странности с ним бывали.
Если работа модема на несколько компов, я бы попробовал отрубить nat и поставить режим для одного - bridge. Т.е. правильно ли вообще настроны модемы в целом dhcpd, dns, nat

P.S.
DNS relay у человека работает некорректно
http://forum[dot]avalon[dot]ru/yaf_posts[dot][dot][dot]r--NAT--DNS[dot]aspx

P.P.S.
Хоть и не по теме, не отправлялись вложения - неправильно выставлено MTU
http://www[dot]adslclub[dot]ru/new/man/spec/mtu
8. OrmaJever - 28 Сентября, 2014 - 12:01:49 - перейти к сообщению
mordor590 пишет:
Можно чуть подробнее где и что там можно еще посмотреть.

Вкладка "Сеть" - Выбираем саму страницу - Вкладка Headers - Внизу блок Response headers и там будет Set-Сookie, и вот в этом блоке нужно смотреть установил ли сервер куку. Грубо говоря если там в списке нужной куки нет то проблема в сервере (либо как сказали выше по пути к клиенту, в прокси например) если есть то проблема в браузере
9. mordor590 - 28 Сентября, 2014 - 23:06:13 - перейти к сообщению
В том то и дело что - скрипт ставит три штуки (Access,Id,Hash). А ставится только 1 параметр-Access. =/ почему остальные то не ставятся???
Решил еще на своем компе проверить парочку примеров на эту тему(с мыслями что касячит сервер)
Выполняю скрипт на своем компе:
PHP:
скопировать код в буфер обмена
  1. setcookie("Test1","Value1");
  2. setcookie("Test2","Value2",time()+3600);
  3. setcookie("Test3","Value3",time()+3600, "/");
  4. setcookie("Test4","Value4",time()+3600, "/", ".domain.ru");
  5. setcookie("Test5","Value5",time()+3600, "/", ".domain.ru", 1);
  6. setcookie("Test6","Value6",time()+3600, "/", ".domain.ru", 0);

Естественно ставятся Test1,Test2,Test3,Test4,Test6

Выполняю второй:
PHP:
скопировать код в буфер обмена
  1. header("Set-Cookie: Test7=Value7; expires=Wed, 19 Sep 15 14:39:58 GMT");
  2. header("Set-Cookie: Test8=Value8; expires=Wed, 19 Sep 15 14:39:58 GMT");
  3. header("Set-Cookie: Test9=Value9; expires=Wed, 19 Sep 15 14:39:58 GMT");

Ставится только Test9

Это может быть как то связано?
(Добавление)
А если запустить скрипт:
PHP:
скопировать код в буфер обмена
  1. setcookie("Test1","Value1");
  2. setcookie("Test2","Value2",time()+3600);
  3. setcookie("Test3","Value3",time()+3600, "/");
  4. setcookie("Test4","Value4",time()+3600, "/", ".domain.ru");
  5. setcookie("Test5","Value5",time()+3600, "/", ".domain.ru", 1);
  6. setcookie("Test6","Value6",time()+3600, "/", ".domain.ru", 0);
  7. header("Set-Cookie: Test7=Value7; expires=Wed, 19 Sep 15 14:39:58 GMT");
  8. header("Set-Cookie: Test8=Value8; expires=Wed, 19 Sep 15 14:39:58 GMT");
  9. header("Set-Cookie: Test9=Value9; expires=Wed, 19 Sep 15 14:39:58 GMT");

То самое интересное что в Chrome ставится только: Test4,Test6,Test7,Test8,Test9
А в FireFox: Test4,Test5,Test6,Test7,Test8,Test9

Сервер CentOS , php как cgi

 

Powered by ExBB FM 1.0 RC1