Сессии не распознаются при прохождении через flash / uploadify - PullRequest
1 голос
/ 15 января 2011

Я пишу приложение, которое использует сеансы на основе файлов cookie для аутентификации. Все было хорошо, пока я не попытался интегрировать плагин uploadify jQuery в мой сайт. Мне нужно загрузить файл для отправки файлов в мой файл upload.php. Когда я проверяю наличие любых известных переменных сеанса в этом upload.php сценарии, я ничего не получаю. Я попытался print_r($_SESSION) и получил пустой массив.

Я не уверен, является ли это проблемой с моим кодом сессий php или с моим кодом загрузки jquery. Я немного новичок в обоих.

/**  INSIDE JQUERY **/
$('.fileUploadify').uploadify({
    'scriptData': {'filesUploaded':'1','PHPSESSID' : <?php echo json_encode(session_id()); ?>},
    ...


/**  UPLOAD.PHP **/
if(isset($_REQUEST['PHPSESSID'])) 
    session_id($_REQUEST['PHPSESSID']);

if(!isset($_GET['logout']) && isset($_SESSION['user']) && $_SESSION['ipadd'] == $_SERVER['REMOTE_ADDR']) {
    define('USERHASH',$_SESSION['user']);
    require_once('lib/ez_sql_core.php');
    require_once('lib/ez_sql_sqlite.php');
    require_once('lib/functions.php');
    $db = new ezSQL_sqlite('./'.USERHASH.'/','fileInformationBase.sqlite');
    $mdb = new ezSQL_sqlite('./','fileServMain.sqlite');

    $stats = $mdb->get_row("SELECT ID,bandwidthUsage,lastLogin,...
} else die('No no no');

upload.php возвращает «Нет, нет, нет» каждый раз. Я проверил идентификатор сеанса, и он правильно отправляет файл upload.php.

На моих обычных заголовках страниц у меня нет этой проблемы, когда я просто начинаю раздел авторизации с session_start(), а затем с той же строкой if(isset($_SESSION['user']) && $_SESSION['ipadd] ...) {, которая работает как положено. <ч />

Редактировать

Это сгенерированный код для скрипта jQuery выше

 'scriptData': {'filesUploaded':'1','PHPSESSID' :"m3vgn7j6a7nd3ckppnio1ln3e1" }

И добавление echo $_REQUEST['PHPSESSID'] в скрипт upload.php выводит

'sjojolnjtcutbomceh50os3kg4'

Ответы [ 2 ]

0 голосов
/ 15 января 2011

Каким-то образом сеансы, которые видела вспышка, были старыми значениями.Я не знаю, кэшированы ли они или как.В любом случае мне пришлось «очистить» систему, удалив все куки-файлы SESSION и начав заново.Затем он подобрал правильные значения.Надеюсь, это спасет кого-то в будущем.

0 голосов
/ 15 января 2011

Если вы говорите своему плагину отправлять идентификатор сеанса через обычный параметр GET / POST, он должен быть включен на сервере.Вы должны сначала отладить это, просмотрев сетевые запросы, сделанные из вашего браузера (аддон Firefox + FireBug - хороший выбор), чтобы увидеть, достигает ли ваш идентификатор сессии сервер.

Если это так, рассмотрите .htaccess с:

php_flag        session.use_trans_sid           on       
php_flag        session.use_only_cookies        off  
...