PHP MySQL:输入密码和用户名后,点击登录按钮,就不会重定向到所需的页面



所以我有一个报纸供应商系统,其中有两个实体,管理员和供应商。在两人都注册到系统后,他们会被重定向到登录表单,在那里他们输入用户名和密码。我遇到的问题是,在点击登录按钮后,我没有被带到管理员和供应商应该被带到的相应页面。相反,会再次将我重定向到登录表单。任何线索都将不胜感激。非常感谢。

这是的登录表单

            <form class="user" action="loginserver.php" method="POST" style="background-color:#f1f1f1">
                <div class="form-group">
                  <label>Username</label>
                <input type="text" name="login_username" class="form-control form-control-user" placeholder="Username">
                </div>
                <div class="form-group">
                  <label>Password</label>
                <input type="password" name="login_password" class="form-control form-control-user" placeholder="Password">
                </div>
        
                <button type="submit" name="login_btn" class="btn btn-primary btn-user btn-block"> Login </button>
                <hr>
               
            </form>

登录表单的逻辑代码

<?php
session_start();
$_SESSION['vendor_id']= '$vendor_id';
$_SESSION['vendor_email']= '$vendor_email';
$_SESSION['login_username']= '$login_username';

$login_username="";
$login_password="";
$errors = array(); 
// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'news');
if (isset($_POST['login_btn'])) {
    login();
}
// LOGIN USER
function login(){
    global $db, $login_username, $errors;
    $login_password="";
    $login_username= trim($_POST['login_username']);
    $login_password=trim($_POST['login_password']);
    function e($val){
    global $db;
    return mysqli_real_escape_string($db, trim($val));
}
// grab form values
    $login_username = e($_POST['login_username']);
    $login_password = e($_POST['login_password']);
// make sure form is filled properly
    if (empty($login_username)) {
    array_push($errors, "Username is required");
}
if (empty($login_password)) {
    array_push($errors, "Password is required");
}
// attempt login if no errors on form
if (count($errors) == 0) {
    $login_password = md5($login_password);
$query = "SELECT * FROM login WHERE login_username='$login_username' AND login_password='$login_password' LIMIT 1";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) { // user found
    // check if user is admin or client
    $logged_in_user = mysqli_fetch_assoc($results);
    if ($logged_in_user['login_rank'] == 'admin') {
        $_SESSION['admin'] = $logged_in_user;
        $_SESSION['success']  = "You are now logged in";
        
        header('location: paper.php');        
    }
    elseif ($logged_in_user['login_rank'] == 'vendor')
    {
        $result = mysqli_query($db,"SELECT vendor.vendor_id from vendor inner join login on login.login_id= vendor.vendor_login_id  where login_username='$login_username'");
        $row = mysqli_fetch_array($result);
        if(is_array($row)) {
        $_SESSION["vendor_id"] = $row['vendor_id'];
        header('location: home1.php');
    }
    }
    //elseif ($logged_in_user['login_rank'] == 'schoolhead')
    //{
    //  $result = mysqli_query($db,"SELECT schoolhead.schoolhead_id from schoolhead inner join login on login.login_id= schoolhead.schoolhead_login_id where login_username='$login_username'");
     //   $row = mysqli_fetch_array($result);
    //     if(is_array($row)) {
    //    $_SESSION["schoolhead_id"] = $row[schoolhead_id];
    
        
    //  header('location: requestschool.php');
    //}
    //}
    //elseif ($logged_in_user['login_rank'] == 'manager')
    //{
    //  $result = mysqli_query($db,"SELECT childrenhomemanagers.manager_id from childrenhomemanagers inner join login on login.login_id= childrenhomemanagers.manager_login_id  where login_username='$login_username'");
    //    $row = mysqli_fetch_array($result);
    //     if(is_array($row)) {
     //   $_SESSION["manager_id"] = $row[manager_id];
    
        
    //  header('location: requestmanager.php');
    //}
    //}
}else {
    array_push($errors, "Wrong username/password combination");
}

}

很难回答这个问题,因为它没有包含足够的引用。

如果你想在PHP中重定向,你可以使用这个函数

header('Location: /desiredpage');

最新更新