Странная проблема с PHP и сессиями - PullRequest
0 голосов
/ 27 апреля 2010

Итак, основой этой страницы является то, что я устанавливаю значение сеанса при загрузке страницы и очищаю его на любой другой странице, которую они посещают. Затем страница может сделать ajax-вызов для загрузки файла. Если значение сеанса совпадает со значением, которое я передаю через URL, я разрешаю им загрузить файл. Если нет, я возвращаю ошибку 404. У меня были некоторые странные проблемы, поэтому я удалил 404 и настроил его на отображение значений вместо того, чтобы посмотреть, что я получаю. Вот верхняя часть кода на странице:

$code = $this->_request->getParam('code');
    $confirm = $_SESSION['mp3_code'];
    echo $code."-1-".$confirm;
    if($code != $confirm)
        echo $code."-2-".$confirm;//header("HTTP/1.1 404 Not Found");
    else
    {

Вот что отображается на странице из вызова AJAX 12723430-1-12723430-2-

Как вы можете видеть, когда он повторяет первый раз, когда они существуют, затем, как только я сравниваю их, и это не удается, вы видите, что он выводит пустые значения, как будто они внезапно перестали существовать. Есть идеи?

1 Ответ

2 голосов
/ 27 апреля 2010

Крайне важно, чтобы вы вызывали session_start в верхней части любого сценария, использующего сеансы. Я думаю, что это может быть здесь.

В вашем коде это повторяет $code и $confirm. Но $confirm - пустая строка, поскольку вы фактически не извлекаете данные сеанса (почему это еще не определено), условие в большинстве случаев оценивается как ИСТИНА.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...