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 :: Cookies и AJAX-запросы к php-скриптам

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: асинхронно вызванный php-скрипт не видит cookies
Virtual1387
Отправлено: 11 Апреля, 2011 - 10:46:07
Post Id


Новичок


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


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




Всем привет!

Есть набор скриптов региcтрации/авторизации на php и javascript (jquery). Идея была в том, что бы организовать все с помощью ajax-запросов без перезагрузок страницы в браузере, но я столкнулся со следующей проблемой с кукис в финальной части авторизации:

По клику по кнопке Log In вызывается функция js, которая делает асинхронный запрос к файлу functions/login.php. Тот в свою очередь проверяет соответствие пары логин - хеш_пароль с тем, что хранится в БД. Если все ок, то заносит в кукисы id пользователя и временный хеш, который так же заносится в БД. Здесь все работает ок.

При загрузке основной старицы index.php (а в дальнейшем и при различных действиях пользователя), в определенном месте вызывается js-функция построения/обновления панели пользователя, которая, в свою очередь, асинхронно вызывает php-скрипт functions/getpanel.php. В этом скрипте есть обращение к php-функции isLogged(), которая расположена в functions/functions.php, и в которой проверяется наличие установленных cookies (isset($_COOKIE['id'] и т.д.) и прочие необходимые соответствия.

Если вызывать getpanel.php инклудом в теле index.php, то все ок, если вызывать так, как описано выше, то все плохо – такое ощущение, что асинхронно вызванный скрипт просто не видит кукис, хотя они есть точно (проверено) Недовольство, огорчение

Вопросы:

- WTF???
- как вы обычно делаете авторизацию/регистрацию без перезагрузок
- изначально при асинхронном вызове php-скрипта кукисы не хотели устанавливаться, вопрос решался прописываением path в setcookie, может быть isset'у тоже надо как-то указать path?
 
 Top
SAD
Отправлено: 11 Апреля, 2011 - 10:59:35
Post Id



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


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


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




прописывайте путь сохранения печенек в корень везде

(Отредактировано автором: 11 Апреля, 2011 - 10:59:46)

 
 Top
Virtual1387
Отправлено: 11 Апреля, 2011 - 11:34:30
Post Id


Новичок


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


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




SAD пишет:
прописывайте путь сохранения печенек в корень везде


Путь сохранения в setcookie везде прописан вот так - "/". и они там сохраняются, Web Developer в FireFox их видит.
 
 Top
SAD
Отправлено: 11 Апреля, 2011 - 11:40:26
Post Id



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


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


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




[]
(Добавление)
я вообще в сессиях храню данные, никакой мороки с путями

(Отредактировано автором: 11 Апреля, 2011 - 11:40:51)

 
 Top
Virtual1387
Отправлено: 11 Апреля, 2011 - 11:45:46
Post Id


Новичок


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


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




SAD пишет:
[]
(Добавление)
я вообще в сессиях храню данные, никакой мороки с путями


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

Спасибо.
 
 Top
SAD
Отправлено: 11 Апреля, 2011 - 12:00:14
Post Id



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


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


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




Virtual1387 пишет:
На сколько я понимаю, сессия умирает после закрытия страницы в браузере,

по умолчанию да, но время жизни сессии можно задавать

(Отредактировано автором: 11 Апреля, 2011 - 12:00:44)

 
 Top
Virtual1387
Отправлено: 11 Апреля, 2011 - 12:08:52
Post Id


Новичок


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


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




SAD пишет:
Virtual1387 пишет:
На сколько я понимаю, сессия умирает после закрытия страницы в браузере,

по умолчанию да, но время жизни сессии можно задавать


Спасибо,

посмотрим, может есть альтернативные решения у кого-нибудь?
 
 Top
Virtual1387
Отправлено: 11 Апреля, 2011 - 18:05:19
Post Id


Новичок


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


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




вопрос все еще актуален!
 
 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