我试图用PHP创建一个简单的搜索页面。
该页面有一些$ SESSION变量,这些变量已从Previous页面传递过来。
当我到达页面时(搜索前),页面如下所示:my-page.php
我将此会话变量从上一页传递到my-page.php:
$_SESSION["phone"] = $Cphone ;
$CUphone = $_SESSION["phone"];
echo $CUphone;
到目前为止,一切正常,我在my-page.php上得到了正确的回复$CUphone
。
现在,my-page.php上有一个简单的搜索表单,所以如果我愿意,我可以搜索mysql数据库。
喜欢这样:
<form action="my-page.php" method="GET">
<input type="text" name="search" placeholder="Search"/>
</form>
当我使用上面的表单进行搜索时,我也按预期正确地得到了结果......页面将变为
my-page.php?search=SOMETHING
并且搜索功能也完美无缺....
但问题将从这里开始(我搜索的时候)......
如果echo $CUphone;
变为my-page.php
..
my-page.php?search=SOMETHING
这意味着我放松了会话,因为$CUphone
存储在会话中,如上所述。
有没有办法让会话保持在my-page.php?search=something
?
任何建议都将不胜感激。
答案 0 :(得分:4)
您需要在设置会话变量时添加条件。
session_start();
if($Cphone) {
$_SESSION["phone"] = $Cphone;
} else {
echo "phone number does not exist";
}
if($_SESSION["phone"]) {
$CUphone = $_SESSION["phone"];
} else {
echo "session does not exist";
}
除非有充分理由更改会话变量,否则最好只设置一次会话变量。这是一个非常基本的建议,不了解您的应用程序。但最好让你的病情尽可能具体。
答案 1 :(得分:0)
我认为您需要检查会话是否已设置。
//That variable should be set an not empty
if (isset($Cphone) && !empty($Cphone)){
$_SESSION["phone"] = $Cphone ;
//To check first if the session is set or not
if(isset($_SESSION['phone'])){
$CUphone = $_SESSION["phone"];
echo $CUphone;
}
}else{
echo 'session not set';
}
在这种情况下,您将获得跟踪错误,该错误来自变量或它将起作用。