检查会话以指向相关页面

时间:2014-01-05 09:35:17

标签: php

我想知道是否有人可以帮我解决这个$ _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');
}

3 个答案:

答案 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');
}

谢谢大家的帮助!