Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP не видит cookie
 
 автор: seletsky   (14.05.2009 в 11:57)   письмо автору
 
 

Добрый день, ломаю голову уже не один час...
Дело в том, что, есть рабочий скрипт авторизации, и он успешно работал до определенного момента, но почему то даже без моего вмешательства он отказался работать. После ввода логина с паролем скрипт удачно проверяет достоверность и наступает пора ставить куку, условие просто, если кука встала делаем обновления в базе и переходим на сайт, если нет то переходим и пишем об ошибке.
Скрипт срабатывает, устанавливает Куку, обновляет базу и переходит.... Утилиты для браузеров куку видят все значения верные, сравниваю с записью в базе все идентично, отсюда ясно все сработало, а банальный <? echo $_COOKIE['name']; ?> не пашет.... в следствии это не могу получить инфу из куки.. что это может быть?? Подскажите плз. сам пишу уже не первый год, а такая штука первый раз. Я уже в скрипте после установки куки прописал ее отображение, все равно тишина...

  Ответить  
 
 автор: Valick   (14.05.2009 в 12:09)   письмо автору
 
   для: seletsky   (14.05.2009 в 11:57)
 

Перенаправление страницы на саму себя не убирали?
Куку вы можете увидеть только после второго посещения, сразу после установки вы её не достаните никак....

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 12:18)   письмо автору
 
   для: Valick   (14.05.2009 в 12:09)
 

Да даже и не в этом деле после успешной авторизации скрипт хеадером отправляет на главную страницу, но там тоже ничего не видит.

А по сути программирование то идет в реальном времени, и скрипт после установки куки может отобразить ее содержимое, все равно что записать значение в переменную...

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 12:19)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 12:18)
 

Может но не отображает, а плагин к ФайрФоркс показывает эту куку без проблем....

  Ответить  
 
 автор: Valick   (14.05.2009 в 12:50)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 12:18)
 

А по сути программирование то идет в реальном времени, и скрипт после установки куки может отобразить ее содержимое, все равно что записать значение в переменную...
нет

  Ответить  
 
 автор: Valick   (14.05.2009 в 12:52)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 12:18)
 

Попробуйте для начала перенаправить на туже страницу

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 12:55)   письмо автору
 
   для: Valick   (14.05.2009 в 12:52)
 

пробовал, толку нет.

  Ответить  
 
 автор: Valick   (14.05.2009 в 13:03)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 12:55)
 

Дайте кусок кода от начала до установки куки

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 13:28)   письмо автору
 
   для: Valick   (14.05.2009 в 13:03)
 

скрипт сам по себе богат кодом, потому как используется индивидуальная авторизация с собственной системой шифрования, там все выполняется нормально потому как конечные данные всегда отображаются, вот момент установки куки.


$time=time()+300;
if (setcookie("isuid","data",$time,"","name.domain.ru",1)) mysql_query("записываем все данные полученные выше"); else header("Location: http://".$_SERVER['SERVER_NAME']."?profile&cookie");
header("Location: http://"name.domain.ru");


типо того, и еще раз повторюсь что плагины к браузерам для работы с куки видят работу скрипта! т.е. уставноленные куки, а пхп нет! проверяю наличие куки с http://name.domain.ru

  Ответить  
 
 автор: Valick   (14.05.2009 в 13:52)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 13:28)
 

стоп, так вы устанавливаете куки на домене 2 уровня и пытаетесь рассмотреть их на домене 3 уровня?

  Ответить  
 
 автор: SeletSKY   (14.05.2009 в 14:16)   письмо автору
 
   для: Valick   (14.05.2009 в 13:52)
 

нет конечно, в том же примере видно куда уходит после установки, адрес тот же.

  Ответить  
 
 автор: Valick   (14.05.2009 в 16:27)   письмо автору
 
   для: SeletSKY   (14.05.2009 в 14:16)
 

Если это всё происходит на сервере, то отображение ошибок скорее всего отключено.
Вспомните, воэможно Вы редактировали какой-нибудь подключаемый до установки куки файл. Кука отправляется вместе с заголовком, а посему должна устанавливаться до любого вывода в браузер. Иногда "косяки" со стороны редактора который сохраняет код со спец символами, они то и летят в браузер "по перёд батьки"))
Хотя вы говорите чтто в браузере куку видно, но можт это какая нить старая печенюшка.
Просто я не знаю что там у Вас поэтому перебераю все возможные варианты.

  Ответить  
 
 автор: SeletSKY   (15.05.2009 в 05:47)   письмо автору
 
   для: Valick   (14.05.2009 в 16:27)
 

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

1). Когда то при установки куки, я в конце поставил единицу (безопасная установка), все работало, но потом успешно перестало, убрал и все заработало сново.. природу этого феномена до сих пор не понял.. потому как куки ставились но не видились сайтом... Все заработало, но криво, логонился через раз, в FireFox и тоже нашел причину.

2). Косяк сам FireFox, при установки новой куки в своем хранилище, он вместо удаления куки setcookie("name") не заменяет уже существующую, а создает еще одну. Т.е. получается уже две печеньки с одним и тем же именем. При следующей попытке логиниться, авторизация происходит и он создает третью куку, уже с актуальными данными. И теперь ИНОГДА, не всегда, а время от времени бывает что пустая кука перекрывает новую и скрипт сайта не видит актуальную куку в следствии думает что авторизации небыло... Выход простой т.к. у пустой куки срок годности до выключения браузера, выключаем его, запускаем заново и опана! Сайт видит актуальную куку и все нормально.

  Ответить  
 
 автор: Волки   (14.05.2009 в 13:33)   письмо автору
 
   для: Valick   (14.05.2009 в 13:03)
 

Аналогичная ситуация встретилась (отвалилась авторизация на сессиях, просто тупо не залогиниться),
на 99% уверен что абонент работает в опере (как и я).
Подозреваю что это чисто оперный глюк, проявился при переходе на самую свежую версию.

В общем починилось добавкой:
session_start();
setcookie("PHPSESSID", session_id() );

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования