Всем привет!
Есть набор скриптов реги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?
|