php сессия не разрушается при обновлении - PullRequest
0 голосов
/ 21 января 2010

Я делаю опрос из 10 вопросов с одним вопросом на точку. я сделал сеанс для передачи значений между вопросами. Я обнаружил, что значения сеанса не разрушаются даже при обновлении страницы. Есть ли обходной путь или я делаю что-то не так?

просто чтобы прояснить ситуацию, вот код:

session_start(); 
//  $_SESSION['score'] = $score;
    $_SESSION['qnum'] = isset($_SESSION['qnum']) ? $_SESSION['qnum']+1 : 1;

    if ($_SESSION['qnum'] < 10){
        $_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score;
    }
    else if ($_SESSION['qnum'] == 10){
        $_SESSION['total'] = isset($_SESSION['total']) ? $_SESSION['total']+$score : $score;
        echo "finished";
    }

    echo $_SESSION['qnum'];
    echo '\n';
    echo $_SESSION['total'];

Ответы [ 4 ]

5 голосов
/ 21 января 2010

$ _ Переменные SESSION будут оставаться до тех пор, пока вы не завершите сеанс или не удалите () переменную сеанса.

Чтобы завершить сеанс, попробуйте следующий код:

$_SESSION = array();
session_unset();
session_destroy();

Чтобы удалить переменную сеанса, используйте:

unset($_SESSION['variablename']);
2 голосов
/ 21 января 2010

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

0 голосов
/ 21 января 2010

Скрытые переменные могут быть лучшим инструментом для ваших целей. Переменные сеанса по своей природе созданы так, чтобы они сохранялись в течение всего приложения сеанс .

0 голосов
/ 21 января 2010

В этом вся прелесть и концепция переменности сеанса, которая не будет разрушать до тех пор, пока вы не уничтожите или не уничтожите ее. В чем проблема, ваш код полностью исправлен. Вы сохраняете номер вопроса и общий балл как переменную сеанса, а балл - как локальный. Просто сделайте одну вещь в конце Викторины, уничтожьте сеанс с помощью sesion_destroy ()

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