2013-08-12 3 views
-1

У меня есть код:Php: Сессия не работает должным образом

$search = $_REQUEST['search']; 

if(!isset($_REQUEST['search'])){ 
    if(is_null($_SESSION['ss_search'])) 
     $search = 0; 
    else 
     $search = $_SESSION['ss_search']; 
} 

$_SESSION['ss_search']=$search; 

echo $_SESSION['ss_search']; 

во-первых, я ввожу номер 1 и представить обратный браузер 1. Затем я ввожу номер 2 и представить, браузер возврата 2, но я обновить браузер, это возвращение 1. Я не знаю, почему сессия хранит значение 2, но при обновлении оно возвращает старое значение. я использовал session_start() сверху.

+0

Вы не очень понятны. Какой метод вы используете для публикации своей формы? Вы отлаживаете '$ _REQUEST ['search']' каждое обновление? – Rikesh

+0

i используя почтовый метод? моя проблема в том, почему сессия хранит новое значение, но возвращает старое значение. – rocky

ответ

0

Я не уверен, но пытаюсь удалить (НЕ)! из оператора if. Это сработало для меня.

изменение

if(!isset($_REQUEST['search'])){ 

в

if(isset($_REQUEST['search'])){ 

Пожалуйста, дайте мне знать, если вы сталкиваетесь с любой проблемой.

+0

нет, если (! Isset ($ _ REQUEST ['search'])) просто проверьте, что я отправил, если я не отправлю пример, я обновляю браузер. поэтому я думаю, что код правильный – rocky

1

Пожалуйста, попробуйте этот код

$search = $_REQUEST['search']; 

    $_SESSION['ss_search']=$search; 

    echo $_SESSION['ss_search']; 

Попробуйте это и дайте мне знать.

+0

совсем такой же мой код – rocky

+0

Обновление вашей страницы означает, что вы ее не отправляете? Вы пробовали вышеуказанный код? –

+0

Я отредактировал код, пожалуйста, проверьте –

0

Я проверил ваш код и изменить его следующим образом:

$search =""; 
if(!isset($_REQUEST['search'])){ 
if(is_null($_SESSION['ss_search'])) 
    $search = 0; 
else 
    $search = $_SESSION['ss_search']; 
}else{ 
$search=$_REQUEST['search']; 
} 

$_SESSION['ss_search']=$search; 

echo $_SESSION['ss_search']; 

с помощью $_REQUEST['search'] без проверки, если он установлен, потому что для создания индекса неопределенную уведомления. поэтому теперь $_REQUEST['search'] вызывается только тогда, когда он установлен. Другая причина заключается в том, что вы установили значение по умолчанию в поле ввода формы равным 1, а когда вы обновляете страницу и разрешаете ей повторно отправить форму, она может отправить значение по умолчанию вашей формы.

+0

о, это все еще ошибка – rocky

Смежные вопросы