我想知道是否有人可以帮我解决这个$ _SESSION变量问题。我想在注册页面中添加一个脚本,该页面允许已登录的用户从后端访问该页面,并将未登录的用户重定向到索引页面。目前正在发生的事情是,从外部访问的页面被重定向到完美的索引,但是从后端内部,当点击添加用户时,它保持在同一页面上。请原谅所有错误=对PHP来说还是非常新的。
require 'function.php';
session_start();
if (isset($_SESSION['authenticated']) && !empty($_SESSION['authenticated'])) {
header('Location: ../../scripts/backend_login/signup.php');
} else {
header('Location: ../../scripts/backend_login/index.php');
}
答案 0 :(得分:0)
首先确保每个需要会话变量的页面都有session_start()。
接下来,将您的代码更改为:
if (isset($_SESSION['authenticated']) {
if ($_SESSION['authenticated'] == true) {
header('Location: ../../backend_login/index.php');
} else {
header('Location: ../../backend_login/signup.php');
}
}
试试看,然后看
只有在经过身份验证的会话
的值时才会生效---- ---- EDIT
($ _SESSION [' authenticated'] == true)并不重要,只是另一个故障保护,双重确保正确的会话状态是活动的,可以在没有这个的情况下完成
答案 1 :(得分:0)
您应该在使用$ _SESSION
的每个页面上开始会话在session_start() 在其余代码之前
答案 2 :(得分:0)
我解决了自己的问题。这是解决方案。
require_once('function.php');
session_start();
if (!is_user()) {
redirect('index.php');
}
谢谢大家的帮助!