| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Sessions & Cookies |
| Автор: SneG0K 15.3.2008, 04:00 | ||
| Доброго времени суток. Не работают куки и не регистрируется сессия. Есть следующий алгоритм: Пользователь зашел на сайт->Идентифицировался->Словил куку->И все Делаю так. Выбираю записи из БД, переадресовываю инфу другому скрипту с идентификатором сессии, а он должен установить куку,а кука просто не устанавливается. Вот код скрипта
В итоге сессия не регестрируется, кука не устанавливается Что я не так делаю??? |
| Автор: ksnk 15.3.2008, 10:09 |
| Может, еще раз почитать документацию? Сессия для скрипта, который обрабатывается PHP - это идентификатор, по которому строится имя сессионного файла. Этот идентификатор находится в куке, если есть возможность, или в адресной строке, если куки отключены. Кука или параметр адресной строки по умолчанию называются PHPSESSID. Добавлено через 7 минут и 28 секунд session_destroy(); вот про это следует почитать в документации ;-) |
| Автор: SneG0K 15.3.2008, 18:10 |
| Так, обьясню по подробней. Скрипту передается два параметра (sid и think). В параметре sid передается идентефикатор сессии, а в параметре think передается числовое значение, если оно равно 0, то кука должна установится лиш на один сеанс с броузером, а если оно равно 1, то кука устанавливается на месяц. Вот для этого у меня и есть switch..case. Теперь дальше, сказав, что кука не создается, я тестировал этот код на "ослике" (Internet Explorer). Заходил в папку \Documents and Settings\*****\cookies , но там вообще пусто. Кука не создалась, аналогично она и не считывается $_COOKIE['user']. Так же и с сессиями. Файл сессии во временном каталоге сервера создается, но он абсолютно пустой. и сессия не считывается. точнее возвращает пустое значение. Так, что я все проверил и перепроверил. Может у меня в настройках php.ini что-то не так. Хотя я не знаю. |
| Автор: Feldmarschall 15.3.2008, 18:45 | ||
| Ты, видимо, не очень внимательно читал то, что тебе пишут. Да. Не то что невнимательно - ты вообще не читал. повторяю ещё раз. Может в настройках php.ini что-то не так. Может. Но чтобы что-то исправлять в настройках, надо сначала понять, что именно не работает. Какую конкретно настройку исправлять. Чтобы узнать, что конкретно не работает, надо проверить работу своего кода. А тв проверил только на словах. А на деле, ни на один из вопросов, которые я задал (а, на самом деле, ты должен был задать сам себе) ты не ответил. Повторяю вопросы: 1. Проверил ли ты, работают ли куки вообще, с помощью обновления страницы с кодом
2. Что у тебя находится в переменной $session? 3. Выполняется ли вообще ветка с установкой куки? Доложи, пожалуйста, по пунктам. И не бодрым рапортом "Все проверил!", не сделав при этом вообще ничего. Помни - ты это делаешь не для меня. А для себя. Поэтому реально выполни все, что написано, и четко опиши - как именно проверял ,и что в результате получил. |
| Автор: SneG0K 16.3.2008, 03:28 | ||
| Итак докладываю: 1)Пробовал устанавливать куку, через твой скрипт. заходил через оперу, ослика. Везде результат глух!!! В ослике даже файл куки не создается 2)Пробую зарегестрировать сессию так:
3)Ветка с установкой куки работает, но сама кука не устанавливается!!! В временной папке, где должны хранится идентификаторы сессии, создается файл, ток он пустой. |
| Автор: awers 16.3.2008, 04:05 |
| omg! SneG0K, причем же тут браузер. Покажи php.ini, покажи код на котором тестируешь (от <? до ?>, расскажи КАК тестируешь, а там получиш совет. |
| Автор: Feldmarschall 16.3.2008, 04:34 | ||
Ну, это я опечатался, а ты даже не посмотрел. разумеется, надо
Что я тебе писал про session_register и session_destroy? Вообще-то, я давал линк на статью/учебник. но ты же вообще не читаешь, что тебе пишут :( И где ответ на вопрос что у тебя находится в переменной $session? |
| Автор: SneG0K 16.3.2008, 10:35 |
| Feldmarschall, твою ошибку я заметил! И исправил! И все твои посты я читаю! Внимательно читаю. Тот код первый который попался мне под руку! Повторяю еще раз, что в переменную $session будет передаваться идентификатор сессии! Короче, спасибо за помощь. Лучше, с таким отношением, я пойду почитаю еще какие-либо маны! |
| Автор: Feldmarschall 16.3.2008, 12:35 |
| Проверь ещё раз, пожалуйста. Действительно ли скрипт, содержащий ровно эти 4 строчки <? setcookie("user","test",0); echo $_COOKIE["user"]; ?> при обновлении страницы ничего не выводит на экран? |
| Автор: SneG0K 16.3.2008, 18:32 |
| Проверил. С таким содержанием. Перегружал винду, перегружал сервер - ничего! Просто не работает и все. |
| Автор: Sannis 16.3.2008, 18:36 |
| Вы этот скрипт один раз запускали, или всё-таки перегружали страницу? |
| Автор: SneG0K 16.3.2008, 19:06 |
| Перезагружал страницу по несколько раз |
| Автор: ksnk 16.3.2008, 19:20 |
| SneG0K, Можно начать с броузера. Скачать и поставить http://www.mozilla-europe.org/ru/products/firefox/, затем поставить ему https://addons.mozilla.org/ru/firefox/addon/3829 Затем "инструменты"->"Live Http Headers" , прейти в соседнюю вкладку и ввести адрес скрипта. Перегрузить его 2 раза (кнопкой релоад). Перейти во вкладку "live http headers" и сбросить сюда результат... |
| Автор: SneG0K 16.3.2008, 19:27 |
| Оооо... Кстати очень вовремя Добавлено через 2 минуты и 43 секунды Ыы.. а у мну нет фаерфокса. и походу она ловит только заголовки HTTP, мож уже что-то для полного отлова пакета? Добавлено через 6 минут и 9 секунд Ладно, счас скачаю лиса и скажу... Не стоит ругаться |
| Автор: Canarat 16.3.2008, 19:33 |
| SneG0K, а скачать и поставить сложно? И cookies устанавливаются именно заголовком Set-Cookie, который кроме как HTTP-заголовком ничем другим не является |
| Автор: SneG0K 17.3.2008, 21:36 |
| Все разобрался |