| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > PHP, AJAX - сессии или переменные, или что? |
| Автор: Win MK 32 24.5.2009, 22:42 | ||||
| Почему при создания AJAX-запроса к скрипту edit.php (пользовался статьей Дина на этом сайте), он не способен увидеить сессии? Браузер-то один! А скрипт говорит, что массив сессий пустой. Из-за этого не могу проверить авторизацию в админке перед выполнением приказа AJAX. Причем вариант сделать на главной странице админки проверку авторизации и занесение константы а потом последующую проверку - тоже не катит почему-то. Я растроен :'(
P.S. Подозреваю, что и куки тоже он не сможет прочитать. Ну раз AJAX считает себя другим web-браузером(правильно ли я выразился?). |
| Автор: bars80080 24.5.2009, 22:54 |
| а причём здесь константы? сессии - это массив $_SESSION и стартуется он через session_start(); |
| Автор: Win MK 32 24.5.2009, 23:19 |
Точно! Я забыл, что для чтения сессий надо сначала их стартовать :( Спасибо. Вопрос решен. P.S. Константы при том, что я хотел их использовать, коли нельзя считать сессии. А кстати нельзя общие константы иметь для обычного скрипта и для вызываемого через AJAX (как в моем случае)? |
| Автор: ksnk 24.5.2009, 23:29 |
| Win MK 32, Надеюсь, решение окажется не таким простым, как говорит bars80080, иначе остальной мой текст лишается смысла Случаи странного взаимодействия сессии и Ajax'а как правило бывают, когда куки на клиенте не включены. В этом случае работает включенный use_trans_sid, который добавляет ко всем ссылкам страницы сессионный идентификатор. Правда он не может модифицировать еще и Ajax запросы и, как правило, приходится выколупывать этот идентификатор из location'а и вставлять вручную в адрес запроса. |
| Автор: Win MK 32 24.5.2009, 23:59 |
| ksnk, к сожалению bars80080 все правильно подсказал Но вопрос с константами по прежнему открыт. |
| Автор: bars80080 25.5.2009, 00:31 |
| никакие переменные или константы между запросами не передаются. под идентификатором сессий сохраняется всего один массив $_SESSION. если в начале скрипта стоит session_start(), то скрипт запрашивает браузер на наличие сессионного идентификатора (сохраняемый в куки), и если он есть и ему соответствует сохранённый на сервере, то возвращается сохранённый под ним массив только $_SESSION |
| Автор: skyboy 25.5.2009, 08:12 | ||
ну, ты пиши однозначнее. сервер у клиента ничего не запрашивает. клиент сам вместе с фофч запросом в заголовках отправляет все связанные с данным доменом кукисы. а после session_start () происходит поиск в полученных заголовках Cookie:.... подходящих на роль идентификатора сессии. |