1

嗨,我的管理部分有一个登录系统,但我遇到了问题,问题是用户第一次尝试登录时,$_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,

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

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

4

2 回答 2

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;
}   
于 2013-01-14T15:24:58.183 回答
0

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

希望这可以帮助。

于 2013-01-14T15:52:22.443 回答