Отправка сообщения






Добро пожаловать!

Проблема FancyUpload с сессиями в PHP

Недавно столкнулся с задачей работы FancyUpload и сессиями в PHP. В некоторых ситуациях нам необходимо проверить сессионные переменные. Всё бы вроде понятно, на странице размещаем форму загрузки, а в коде обработчика делаем проверку, и вроде ID сессии запрошенной страницы и запросов AJAX со страницы должны быть идентичными. Однако при загрузке скрипт отвечающий на AJAX-запросы стартует новую сессию, соответственно идентификатор сессии получается другой. Решением которым воспользоваться делюсь тут. Итак, т.к. AJAX запрос в FancyUpload производиться методом GET, соответственно, в качестве дополнительного параметра нам можно отправить значение ID сессии. При инициализации FancyUpload делаем следующее:

url: 'fancyupload3/script.php?sid=<?php echo session_id(); ?>',

Для тех, кому не приходилось с этим сталкиваться, отмечу, что по умолчанию ID сессии передаются автоматически браузером в виде cookies-значения PHPSESSID. Здесь же мы будем передавать переменную сессии в запросе, и устанавливать её вручную.
В скрипте-обработчике устанавливает значение параметра сессии, таким методом:

if (!isset($_GET['sid'])) die; # прекращаем выполнение если не передан параметр
session_id($_GET['sid']); # задаем ID сессии

Ну вот, собственно всё.

Добавил: htmaker, 16.06.2014 г.
 
плохослабосойдетхорошоотлично (Еще не оценили)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Комментарии

  • Загрузка...

Наверх