php - 登录更新用户角色,但如果查询匹配则不继续重定向或设置页面

标签 php jquery html css mysqli

我有两个表

1] Signup_users [名字,email_id,密码,user_role]

2] add_business [姓名、电子邮件、地址、电话、位置]

我需要的是当用户登录时,如果 Email id两个表 匹配,更新 user_role'customer' else if not matched with both a table update as a 'user' ,

但我的情况发生了什么,**

it's all working i can login and user_role is updated, but not working redirecting pages as per login , for that i need to logout then again login then it's work well .

所以我想要的是,如果我同时登录更新 user_role,如果查询匹配则根据 user_role 转到定义的页面,但是当我注销并再次登录时重定向页面工作然后它工作。请寻找最后一个 更新查询 请帮忙

对不起,如果没有给你英语。

<?php  include ('../database_connection/db_connection.php'); ?>
<?php session_start(); ?>

<?php

//Log in SCRIPT for User Sign in

if(isset($_POST['login_submit'])){

$email_username =  $_POST['sign_in_email'];
$password = $_POST['sign_in_password'];

$email_username = mysqli_real_escape_string($connection,$email_username);
$password = mysqli_real_escape_string ($connection,$password);

$username_get = "SELECT * FROM signup_users WHERE email_id = '{$email_username}'";
$username_connection = mysqli_query($connection,$username_get);

if(!$username_connection){
die("MYSQLI_ERROR". mysqli_error($connection));
 }




while($row = mysqli_fetch_array($username_connection)){

$db_user_id = $row['user_id'];
$db_full_name = $row['full_name'];
$db_email_id = $row['email_id'];
$db_password = $row['password'];
$db_user_role = $row['user_role'];

}
if($email_username !== $db_email_id && $password !== $db_password)
{
   header("LOCATION: index.php");
}
  else if($email_username == $db_email_id && $password == $db_password  &&  $db_user_role == 'customer'){

$_SESSION['user_id'] = $db_user_id; 
$_SESSION['full_name'] = $db_full_name; 
$_SESSION['email_id'] = $db_email_id; 
$_SESSION['password'] = $db_password; 
    $_SESSION['user_role'] = $db_user_role;

 header("LOCATION: ../dashboard/dashboard_overview.php");

}
else {
header("LOCATION: index.php");
}

$select_two_tables_email = "SELECT signup_users.email_id  , addbusiness.email  FROM signup_users inner join addbusiness on  signup_users.email_id = addbusiness.email AND signup_users.email_id = '{$email_username}' AND addbusiness.email = '{$email_username}'  ";
$select_two_table_query = mysqli_query($connection,$select_two_tables_email);


if(mysqli_num_rows($select_two_table_query) == $select_two_table_query)
{

$update_query_email  = "UPDATE signup_users SET user_role = 'customer' WHERE  email_id = '{$email_username}' ";
$select_query_mysqli = mysqli_query($connection,$update_query_email);
         }
else if(mysqli_num_rows($select_two_table_query)!== $select_two_table_query){
$update_query_email_id  = "UPDATE signup_users SET user_role = 'user' WHERE  email_id = '{$email_username}' ";
$select_query_mysqli = mysqli_query($connection,$update_query_email_id);

}
else{
$update_query_email_blank  = "UPDATE signup_users SET user_role = 'blank' WHERE  email_id = '{$email_username}' ";
$select_query_blank = mysqli_query($connection,$update_query_email_blank);

}  


} 



?>

最佳答案

我保留了在 else 条件下更新用户 Angular 色的代码,您可以在其中检查用户 Angular 色是否已经是“客户”。如果您将 Angular 色更新为“客户”,那么您将被重定向到仪表板,否则将重定向到索引页面。希望这有帮助..

    <?php  include ('../database_connection/db_connection.php'); ?>
    <?php session_start(); ?>

    <?php

    //Log in SCRIPT for User Sign in

    if(isset($_POST['login_submit'])){

    $email_username =  $_POST['sign_in_email'];
    $password = $_POST['sign_in_password'];

    $email_username = mysqli_real_escape_string($connection,$email_username);
    $password = mysqli_real_escape_string ($connection,$password);

    $username_get = "SELECT * FROM signup_users WHERE email_id = '{$email_username}'";
    $username_connection = mysqli_query($connection,$username_get);

    if(!$username_connection){
    die("MYSQLI_ERROR". mysqli_error($connection));
     }

    while($row = mysqli_fetch_array($username_connection)){
        $db_user_id = $row['user_id'];
        $db_full_name = $row['full_name'];
        $db_email_id = $row['email_id'];
        $db_password = $row['password'];
        $db_user_role = $row['user_role'];
    }
    if($email_username !== $db_email_id && $password !== $db_password)
    {
       header("LOCATION: index.php");
    }
    else if($email_username == $db_email_id && $password == $db_password  &&  $db_user_role == 'customer'){

        $_SESSION['user_id'] = $db_user_id; 
        $_SESSION['full_name'] = $db_full_name; 
        $_SESSION['email_id'] = $db_email_id; 
        $_SESSION['password'] = $db_password; 
        $_SESSION['user_role'] = $db_user_role;

        header("LOCATION: ../dashboard/dashboard_overview.php");

    }
    else {
        $select_two_tables_email = "SELECT signup_users.email_id  , addbusiness.email  FROM signup_users inner join addbusiness on  signup_users.email_id = addbusiness.email AND signup_users.email_id = '{$email_username}' AND addbusiness.email = '{$email_username}'  ";
        $select_two_table_query = mysqli_query($connection,$select_two_tables_email);

        if(mysqli_num_rows($select_two_table_query) == $select_two_table_query)
        {
            $update_query_email  = "UPDATE signup_users SET user_role = 'customer' WHERE  email_id = '{$email_username}' ";
            $select_query_mysqli = mysqli_query($connection,$update_query_email);

            $_SESSION['user_id'] = $db_user_id; 
            $_SESSION['full_name'] = $db_full_name; 
            $_SESSION['email_id'] = $db_email_id; 
            $_SESSION['password'] = $db_password; 
            $_SESSION['user_role'] = $db_user_role;

            header("LOCATION: ../dashboard/dashboard_overview.php");
        }
        else if(mysqli_num_rows($select_two_table_query)!== $select_two_table_query){
            $update_query_email_id  = "UPDATE signup_users SET user_role = 'user' WHERE  email_id = '{$email_username}' ";
            $select_query_mysqli = mysqli_query($connection,$update_query_email_id);
            header("LOCATION: index.php");
        }
        else{
            $update_query_email_blank  = "UPDATE signup_users SET user_role = 'blank' WHERE  email_id = '{$email_username}' ";
            $select_query_blank = mysqli_query($connection,$update_query_email_blank);
            header("LOCATION: index.php");
        }              

    }

    } 

    ?>

关于php - 登录更新用户角色,但如果查询匹配则不继续重定向或设置页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47170737/

相关文章:

configuration - 在 php.ini 中创建任意值

php - 如何在不删除键且不重置键的情况下删除数组的空值

javascript - jquery .next 找不到同级

jquery - AppMobi后台问题

html - 使用 xpath 抓取 ruby​​ nokogiri HTML 表格

javascript - 单击 anchor 链接返回 NULL 作为偏移量

php - 计算 mySQL 中的值

php 说有些结果不是未定义的,有些是

jquery - 使用 jQuery 清除启用多选的 <select> 上的所有选择的快速方法?

html - 为什么我的 CSS 布局与原始模板不同?