所以,我正在创建一个应用程序(新会话),并试图使用会话创建一个简单的错误处理语句。PHP会话不能按预期工作
为了简化事情,让我描述基础知识。
- 用户输入查询页面上的1
- 用户按下提交
- 页2被装载如果查询被设置为检查查询
- 的值,它被运行,并且被显示在结果第3页
- 如果为空但是,错误被捕获,并设置用户被重定向回第1页
我关心的是最后一步,我不能让它工作出于某种原因。
下面是代码与错误:
页1S相关代码:
<?php
session_start();
$ERROR = $_SESSION['error'];
if($ERROR) {
echo $ERROR;
}
?>
而且第2页:
<?
session_start();
---------------- And as we go down the file a bit ----------------
if(trim($getQuery == "")){
$ERROR = "no search criteria entered";
$_SESSION['error'] = $ERROR;
if(!isset($_SESSION['error'])) {
die("the session error was not set for some reason");
}
$url = "localhost:8000/mysite"; //index.php is page 1 in this case so I just redirect to the parent directory as index is loaded by default obviously in that case
header("Location:" . $url);
}
?>
$ getQuery是在查询中捕捉到的值如第1页的方框中所示,并通过后期方法发送到第2页,这可以自然地假设。
但是,当我在查询框中输入任何内容,然后发送查询,页面刷新(因为它应该在2页意识到查询是空的,头的位置重新加载页面),但没有显示任何错误,它应该考虑我在第2页检查它是否已设置。
任何想法?
干杯, - SD
你有PHPSESSID的Cookie在你的浏览器设置? –
它看起来像你有一个'''在错误的地方。你有'if(trim($ getQuery ==“”))',但我认为你想'if(trim($ getQuery)==“”) – Sean
@Sean为什么你更喜欢使用这种方法而不是OP目前使用? –