我有两个表
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/