正确设置会话

时间:2018-12-05 14:09:03

标签: php session unset

我试图使用会话变量将错误消息传递到另一页。在处理程序页面上,以以下方式初始化会话:

function sess() {
    $index = $_POST['name'];
    $_SESSION['error'] = ($index == '') ? 'name cannot be empty' : $index . " is a good name";
    header("Location: http://website-name.com/form");
}; sess();

在另一页上是这样的:

if(isset($_SESSION['error'])) {
    echo $_SESSION['error']; unset($_SESSION['error']);
};

现在,如果表单提交的字段为空,则错误name cannot be empty将成为会话的值。之后,如果设置了名称,则会话的值不会更改,但仍返回name cannot be empty

我检查了是否在函数中调用了会话这一事实。不知道!但在线发现了一种使用session_unset取消所有变量的方法。但这实际上是我要取消设置的一个会话变量,并且发现了类似session_unset($_SESSION['error'])的内容。但是,使用它并不会取消所有会话的设置,但是在函数中不会$_SESSION['error']进行设置,除非我使用unset($_SESSION['error'])不会终止设置的第一个会话。

那么实际上出了什么问题? unset_session()unset()有何不同?与函数内部有什么关系?据我所知,$_SESSION[]是一个全局变量,就像$GLOBALS[]一样,可以在任何范围内访问。

0 个答案:

没有答案