用于登录的会话变量在第一次尝试时未传递到重定向页面

时间:2013-01-14 15:09:47

标签: php session authentication

嗨我的管理部分有一个登录系统我遇到问题,问题是用户第一次尝试登录时,$ _SESSION没有传递到目标页面, 在第二次尝试它工作正常,这是在登录页面上调用

$membership = new Membership();
if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
$response = $membership->validate_User($_POST['username'], $_POST['pwd']);

}

在班级成员中

function validate_user($un, $pwd) {

    $ensure_credentials =  $this->verify_Username_and_Pass($un, $pwd);

    if($ensure_credentials) {
        $_SESSION['status'] = 'authorized';
        $_SESSION['id'] = $ensure_credentials;

        header("location: ambassadorUpdate.php");
        die;
    } else return "Please enter a correct username and password";

}   

我已经检查了代码,当我没有发送到ambassadorUpdate并且SESSION设置但是如果我使用标题重定向到页面然后第一次SESSION不是 两个页面都有一个session_start,

当所有页面都在同一个文件夹中时,代码运行正常,但是当我将它们组织在一个单独的管理文件夹中时,我遇到了这个问题,但所有文件都被正确包含,

任何想法都非常感谢非常感谢

2 个答案:

答案 0 :(得分:0)

尝试修改:

$membership = new Membership();
if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
$response = $membership->validate_User($_POST['username'], $_POST['pwd']);
}

if ($response == true){
    header("location: ambassadorUpdate.php");
} else echo "Please enter a correct username and password";

在班级成员中

function validate_user($un, $pwd) {

    $ensure_credentials =  $this->verify_Username_and_Pass($un, $pwd);

    if($ensure_credentials) {
        echo 'workied';
        $_SESSION['status'] = 'authorized';
        $_SESSION['id'] = $ensure_credentials;
        echo $_SESSION['status'] . $_SESSION['id'];
        return = true;
    } else return false;
}   

答案 1 :(得分:0)

我无法创建评论,所以我写了一个答案。 你检查session_start() in ambassadorUpdate.php了吗?您的浏览器是否接受cookie? 如果没有,则使用"location: ambassadorUpdate.php".?SID或使用session_name()=session_id()代替SID

是有用的

希望这会有所帮助。