Php 来自多个表的用户身份验证

Php 来自多个表的用户身份验证,php,mysql,Php,Mysql,我有一个登录屏幕,可以验证我的web应用程序上的“用户”。但我也希望对“客户”重复使用相同的登录名。它是一种电子商务类型的web应用程序。我使用PHP和MYSQL主要是使用一个表进行登录验证。下面是我当前验证“用户”的代码: 只需简单地演示登录,即可将编码部分留在您的计算机上。在用户表中创建列用户类型 方法1:- $Sql = "SELECT * FROM users WHERE email = '".$user_name."' AND password = '".$password."'";

我有一个登录屏幕,可以验证我的web应用程序上的“用户”。但我也希望对“客户”重复使用相同的登录名。它是一种电子商务类型的web应用程序。我使用PHP和MYSQL主要是使用一个表进行登录验证。下面是我当前验证“用户”的代码:


只需简单地演示登录,即可将编码部分留在您的计算机上。在用户表中创建列用户类型

方法1:-

$Sql = "SELECT * FROM users WHERE email = '".$user_name."' AND password = '".$password."'";


if($sql['user_type']=="customer"){

$sql2 = "select * from customers";
}
现在使用会话存储客户字段

您还可以重定向到不同的页面

if( $user == 1){ //check if user or password is correct from query


 if($user_type == "customer"){ //check usertype

    header("Location:/application/app.php"); //if normal user redirect to app.php

    }else{

    header("Location:/administration/admin.php"); //if admin user redirect to admin.php

    }
}


为什么不使用公共键连接这两个表,然后继续操作呢?有一个
类型
列,它是一个enum、int或varchar,并在其中设置类型。通过这种方式,您可以区分用户类型,并将其全部放在一个表中。通常,您有一个用户表,其中包含用户的核心信息(id、类型、用户名、密码、创建、更新),然后您将“其他”信息(名称、dob[…])存储在另一个表中,并通过用户id将其链接起来。但是,就目前情况而言,您的问题过于广泛/主要基于观点。嘿,Rahul和Script47。。。请注意我的编辑。希望问题现在更清楚。。。请不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。表示了解的语句。即使是这样也不安全!我们不要教/传播草率和危险的编码实践。如果你在没有准备好陈述的情况下发布了答案。另外,你的意思是,如果有人在使用PHP5.6,而他的整个项目都是旧版本的PHP。我会首先告诉他们,请更新您的整个项目的PDO或MYSQLI,然后我会回答他们?我不应该回答他们的问题和疑问,但我必须告诉他们,请更新到新版本的PHP?我不应该解决他们的问题,但需要为他们创造一个新的问题。我不应该听从他们的逻辑,我应该听从他们的错误?不,你必须向用户演示(或警告)SQL注入。版本5.6允许PDO和MySQLi准备语句,所以这与版本无关。顺便说一句,那不是我的downvote@JayBlanchard很抱歉,我没有警告他们版本问题,但这与他们的问题无关。我不想偏离主题,你可以警告他们。我确实在评论中警告过他们。一个好的答案也会有类似的警告,不仅对OP,而且对未来的访问者也会有类似的警告。
if( $user == 1){ //check if user or password is correct from query


 if($user_type == "customer"){ //check usertype

    header("Location:/application/app.php"); //if normal user redirect to app.php

    }else{

    header("Location:/administration/admin.php"); //if admin user redirect to admin.php

    }
}