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