-1

我有代码:

$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()

4

3 回答 3

1

请尝试此代码

  $search = $_REQUEST['search'];

  $_SESSION['ss_search']=$search;

  echo $_SESSION['ss_search'];

试试这个,让我知道。

于 2013-08-12T08:59:27.220 回答
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']在不检查是否设置的情况下使用,导致它生成未定义的索引通知。所以 now$_REQUEST['search']仅在设置时才被调用,另一个原因是如果您将表单输入字段上的默认值设置为 1,并且当您刷新页面并允许它重新发送表单时,它可能会发送默认值你的表格。

于 2013-08-12T09:18:14.560 回答
0

我不确定,但尝试删除(不)!从 if 语句。它对我有用。

改变

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

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

如果您遇到任何问题,请告诉我。

于 2013-08-12T08:57:38.223 回答