Php:会话无法正常工作

时间:2013-08-12 08:41:52

标签: 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()

3 个答案:

答案 0 :(得分:1)

请尝试此代码

  $search = $_REQUEST['search'];

  $_SESSION['ss_search']=$search;

  echo $_SESSION['ss_search'];

试试这个并告诉我。

答案 1 :(得分:0)

我不确定但是尝试删除(NOT)!来自if语句。它对我有用。

变化

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

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

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

答案 2 :(得分: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,并且当您刷新页面并允许它重新发送表单时,它可能是发送表单的默认值。