Php会话错误未定义索引

时间:2015-01-08 11:20:45

标签: php session indexing undefined

session_start();

if (isset($_POST['username'] , $_POST['password'])) {

    $extractabout = $db->prepare("SELECT * FROM user WHERE username = :username && password = :password");

    $extractabout->execute([
        'username' => $_POST['username'],
        'password' => $_POST['password']
    ]);

    $infos = $extractabout->rowCount() ? $extractabout : [] ;

    foreach ($infos as $info) {
        if(!empty($info['username']) && !empty($info['password']) && !empty($info['id']) && !empty('role')) {
            $_SESSION['username'] == $info['username'];
            $_SESSION['password'] == $info['password'];         
        }

    }

    if(isset($_SESSION['username'], $_SESSION['password'], $_SESSION['user_id'], $_SESSION['role'])) {
        header("Location: test.php");
    }   

}

?>

当我将$_SESSION['username']的值$info['username']给予{<1}}时,我出错了。

  

未定义的索引:用户名
  未确定索引:密码

3 个答案:

答案 0 :(得分:3)

您没有分配值,您只需使用一个=,请使用此功能:

$_SESSION['username'] = $info['username'];
$_SESSION['password'] = $info['password']; 

此外,我会在每个标题后添加exit();,以确保脚本停止执行!

header("Location: test.php");
exit();

答案 1 :(得分:1)

使用=在会话中分配值而不是==(比较)。

!empty('role')我认为!empty($info['role'])

是什么
if(!empty($info['username']) && !empty($info['password']) && !empty($info['id']) && !empty($info['role'])) {
        $_SESSION['username'] = $info['username'];
        $_SESSION['password'] = $info['password'];                     
}

答案 2 :(得分:-1)

您的代码中存在语法错误,更正的是:

if(!empty($info['username']) && !empty($info['password']) && !empty($info['id']) && !empty($info['role'])) {
    $_SESSION['username'] = $info['username'];
    $_SESSION['password'] = $info['password']; 
}