PHP登录重定向流程

标签 php mysql session redirect

你能帮我解决我的代码有问题吗?下面的代码是登录过程页面,我想将它重定向到特定页面,管理员主页或用户主页。当我运行它时,那些分配为用户的帐户将重定向到管理页面。我对那些指定为管理员的帐户没有问题,因为它会自动重定向到管理页面。

 session_start();
 $message = "";

if(count($_POST) > 0){
    $conn = mysql_connect("localhost", "root", "");
    mysql_select_db("etransmittal", $conn);
    $result = mysql_query("SELECT * FROM tbl_userlist WHERE username = '" . $_POST["userid"] . "' AND user_password = '" . $_POST["userpassword"] . "'");
    $row = mysql_fetch_array($result);

    if(is_array($row)){
        $_SESSION['userid'] = $row['userid'];
        $_SESSION['username'] = $row['username'];
        $_SESSION['userrole'] = $row['userrole_id'];
        $_SESSION['firstname'] = $row['fname'];
        $_SESSION['middlename'] = $row['mname'];
        $_SESSION['lastname'] = $row['lname'];
        $_SESSION['nbu'] = $row['nbu'];
        $_SESSION['department'] = $row['department'];
        $_SESSION['branch'] = $row['branch'];

    }
    else{
        $message = "Invalid username or password";
    }
}

/*if(isset($_SESSION['userid'])){
    header("location: admin_homepage.php");
}*/

if(isset($_SESSION['userrole']) == '1'){
    header("location: admin_homepage.php");
}

else if(isset($_SESSION['userrole']) == '2'){
    header("location: user_homepage.php");
}

最佳答案

isset — Determine if a variable is set and is not NULL

你的代码搞砸了 if 和 isset 。它被用作

if (isset($_SESSION['userrole']) && $_SESSION['userrole'] == '1') {
    header("location: admin_homepage.php");
} else if (isset($_SESSION['userrole']) && $_SESSION['userrole'] == '2') {
    header("location: user_homepage.php");
}

阅读http://php.net/manual/en/function.isset.php

http://php.net/manual/en/control-structures.if.php

Note:- mysql is deprecated instead use mysqli or PDO

你的代码对 sql 注入(inject)是开放的,阅读这个 How can I prevent SQL injection in PHP?

不要将明文密码存入数据库

http://php.net/manual/en/function.password-hash.php

http://php.net/manual/en/faq.passwords.php

关于PHP登录重定向流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084586/

相关文章:

mysql - 改进 mysql 中的文件路径搜索

mysql - 目标表不可更新

php - 为什么 Windows 需要 `utf8_decode` 文件名才能使 `file_get_contents` 工作?

javascript - 如何将php数组字符串作为参数传递给javascript函数?

php - 违反完整性约束 : 1062 Duplicate entry '25' for key 'PRIMARY'

PHP从html表单计算

php - 我可以在打字时使用 jQuery 更新 PHP session 吗?

session - golang session 变量不起作用。我做错了什么?

PHP PNG照片上传保持透明度

php - 为什么我在 PhpStorm 中收到关于此代码的 PHPDoc 警告