О web-разработке
и даже немного больше...

Проблема 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 сессии

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

Опубликован: 16.06.2014 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Импорт записей из Excel в WordPress
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP

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

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

Комментарии
  • Загрузка...
Друзья сайта