Сергей К.
1649 повідомлень
#14 років тому
Сегодня столкнулся с непонятной ситуацией.
Есть файл 1.php в котором, по нажатию кнопки вызывается через AJAX файл 2.php.
В файле 2.php устанавливаю COOKIE на месяц: setcookie("notepad", $val, time()+60*60*24*30);
Все устанавливается нормально. При повторном запросе файла 2.php в куки добавляются еще какие то значение, все работает хорошо.
НО!!! При попытка получить значение этой куки в файле 1. php (который находится на том же домене что и 2.php).
Прямо мистика какая-то. Кто-то с таким сталкивался?
Роман Беляев
16382 повідомлення
#14 років тому
Путь у куки какой прописывается? В браузере куку видать?
Сергей К.
1649 повідомлень
#14 років тому
Путь не ставлю-сохраняется как для текущего домена. В браузере куки видны. И в Опере и в Мозилу.
И как уже писал, при повторном вызове через аякс, файл 2.php видит эту куки. А в 1.php никак.
Роман Беляев
16382 повідомлення
#14 років тому
Цитата ("WebDesignStudio"):
Путь не ставлю


А если поставить?
Сергей К.
1649 повідомлень
#14 років тому
Цитата ("frig"):
А если поставить?

Имеете в виду имя домена, или папку куда хранить?
Роман Беляев
16382 повідомлення
#14 років тому


path

The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain. If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
Сергей К.
1649 повідомлень
#14 років тому
Не помогает.
Сергей К.
1649 повідомлень
#14 років тому
Пипец. Заработало по ходу. setcookie("notepad", $val, time()+60*60*24*30,'/';
Но почему то не с первого раза.
Роман Беляев
16382 повідомлення
#14 років тому
Может старую не переписывало.. главное что заработало.
Артем Л.
11416 повідомлень
#14 років тому
Цитата ("WebDesignStudio"):
Пипец. Заработало по ходу. setcookie("notepad", $val, time()+60*60*24*30,'/';

Я одно время тоже сума сходил от такого, пока мне не рассказали про волшебный слеш
Удалять кстати тоже со слешем если что
Евгений Б.
5330 повідомлень
#14 років тому
Цитата ("WebDesignStudio"):
Но почему то не с первого раза.

1.php обновляется после установки 2.php куки?


Каааароче. кука идет в php из запроса. если небыло повторных запросов. то ничего и нет.
Т.е. если вы в начале файла ставите куку, то прочитать её в конце не сможете. только если обновите страницу.

Или я не так понял?
Андрей Д.
1267 повідомлень
#14 років тому
Цитата ("ArtPro"):
Или я не так понял?

Он так вас не поймёт и разговор о другом.
Вкратце лучше так: куки хранятся на стороне клиента (в браузере) и PHP скрипт их получает и отправляет только через заголовки страниц. Если вы в PHP скрипте установите заголовок, то браузер его не получит пока не попытается загрузить страницу, соответственно это не случится (браузер не загрузит заголовок с установленным значением) cookie можно считать ещё не существующей.

Всё дело было в том, что автор не устанавливал путь для доступа и браузер не возвращал в заголовках куки тк посчитал что скрипту 1.php их передавать нельзя.
Владислав М.
102 повідомлення
#14 років тому
У меня была проблема, что кука устанавливалась после второго запроса.

Было бы хорошо взглянуть на код, а то гадать долго можно
Виталий Я.
659 повідомлень
#14 років тому
Заработало вероятно потому, что перезагрузили страницу. Проверьте - удалите куку и попробуйте опять работает ли с первого раза .
Евгений Б.
5330 повідомлень
#14 років тому
Цитата ("Miller_time"):
У меня была проблема, что кука устанавливалась после второго запроса.

это как раз то, что я и Zionit описываем. Кука выставилась в первый раз, но что ы скрипт её принял - нужен второй раз ему запрос отправить с новыми куками
Сергей К.
1649 повідомлень
#14 років тому
Дело было в /.