php将多个用户登录后重定向到多个页面

标签 php mysql

我创建了一个具有多个用户的登录名。我已连接 phpMyAdmin 数据库并且单用户登录工作正常。使用login.php代码,它不会重定向到预期的页面。dbconnect.php正在工作。

login.php

<?php

require('dbconnect.php');

 if(isset($_POST['uname']) && isset($_POST['pw'])){

    $email=$_POST['uname'];
    $pw=$_POST['pw'];

if ($stmt = mysql_query("SELECT role FROM register WHERE 'email'= ? and 'pw'= ? ")) {
    /* bind parameters for username and password */
    $stmt->bind_param('ss', $email, $pw);


    /* execute query */
    $stmt->execute();

    // If result matched $myusername and $mypassword, table row must be 1 row
    if ($stmt->affected_rows == 1) {
        // bind the result to a variable
        $stmt->bind_result($role);
        $stmt->fetch();


        switch( $role ){

            case 'admin':
                header("location:admin.php");
                exit();

            case 'trackcoordinator':
                header("location:trackco.php");
                exit();

            case 'reviewer':
                header("location:reviewer.php");
                exit();

            case 'author':
                header("location:sub.php");
                exit();

            default:
                echo "Wrong Username or Password";
        }

    }

    $stmt->close();
}
}

//$db->close();

?>

这是寄存器表。并且正在从该数据中获取登录过程的数据:

enter image description here

最佳答案

正如 @Mikey 指出的,您将 mysql_querymysqli 的语句准备和绑定(bind)混合在一起。而且您还滥用了查询中的引号。

假设您的 dbconnect.php 如下所示

<?php
$db= new mysqli('localhost', 'my_user', 'my_password', 'world');
?>

那么你的login.php第10行(if语句)应该是这样的

if ($stmt = $db->prepare("SELECT role FROM register WHERE email = ? and pw = ? ")) { // You can either use backquotes (`email`) or no quotes

那你应该没问题。

关于php将多个用户登录后重定向到多个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40505269/

相关文章:

javascript - 使用 javascript 从数据库显示

javascript - 将 JSON 字符串传递给 Perl CGI

php - 点击插入按钮后保留的数据

php - MySQL 查询与 PHP MySQL 查询

php - 从 ajax 调用 PHP 脚本时发生内部服务器错误

php - 如何将当前日期与存储在 MySQL 数据库中的日期进行比较?

java - 正在使用 query.getResultList();方法对性能有严重影响?

mysql - 在触发器中获取更新的字段名称和值

php - 页脚没有显示我想要的方式

php - 如何在 PHP (Java)Doc 中标记数组值类型?