【发布时间】:2018-11-12 12:24:27
【问题描述】:
我有一个登录屏幕,可以在我的网络应用程序上验证“用户”。但我也想为“客户”重复使用相同的登录名。它是一种电子商务类型的 Web 应用程序。我主要使用 PHP 和 MYSQL 使用一张表进行登录身份验证。以下是我当前用于验证“用户”的代码:
//Query statement for selecting details from database
$Sql = "SELECT * FROM users WHERE email = '".$user_name."' AND password = '".$password."'";
【问题讨论】:
-
为什么不用公共键加入这两个表并继续你正在做的事情
-
有一个
type列,它是一个枚举、int 或 varchar,并在其中设置类型。通过这种方式,您可以区分用户类型并将其全部放在一个表中。通常,您有一个用户表,其中包含用户的核心信息(id、类型、用户名、密码、创建、更新),然后将“其他”信息(名称、dob [...])存储在另一个表链接中他们通过用户 ID。 但是,就目前而言,您的问题过于宽泛/主要基于意见。 -
嘿 Rahul 和 Script47... 请注意我的编辑。希望问题现在更清楚......请告知
-
永远不要存储纯文本密码!请使用 PHP 的built-in functions 来处理密码安全问题。如果您使用的 PHP 版本低于 5.5,您可以使用
password_hash()compatibility pack。 在散列之前不需要escape passwords 或对它们使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。