2.9K
08 ноября 2010 года
zeboton
2 / / 31.01.2003
Есть сайт, написанный на PHP. На этом сайте у авторизованных пользователей есть возможность загружать на сервер картинки. Картинки загружаются при помощи SWFUpload 2. Всё работало как часы, но недавно пользователи начали жаловаться, что картинки не загружаются. Начал разбираться и оказалось, что в файле, которому SWFUpload передаёт загружаемую картинку, пусть он будет называться upload.php, происходят странные вещи. В upload.php в POST параметрах передаются нужные для сохранения данные, а также PHPSESSID. Далее upload.php, используя полученный PHPSESSID пытается стартануть сессию ( session_id( $_POST['PHPSESSID'] ); session_start(); ). Вот в этом моменте и начается веселье. Сессия стартует, но пустая! Причём через раз она действительно очищается и пользователь, находящийся на сайте, вылетает. На остальном сайте сессия стартуется через COOKIE и работает отлично. В файл upload.php COOKIE не передаются, так как он вызывается из Flash.
Кто знает что делать и куда копать?
Не могу вспомнить чтобы что-нибудь менял на сервере. Последнее что делал на нём — устанавливал задачу на автозапуск php-скрипта в cron.
Лог того, что происходит в файле upload.php:
http://pastebin.com/aKGSaFQV
Конфигурация сервера: Ubuntu Server / Apache 2 / PHP Version 5.2.6-3ubuntu4.6