我有两个表:用户登录详细信息(用户名,通过)用户详细信息(电子邮件,用户名*)
-粗体为PK,星号为FK
我正在尝试用sql语句创建一个放弃的密码PHP页面。用户将输入他们的电子邮件地址,sql语句将在Userdetails中检查电子邮件是否正确。然后,Userdetails中的用户名将与Userlogintails匹配,以查找密码。我需要两份声明吗?
感谢
否(您不需要2条语句),您可以使用SQL JOIN(例如)来实现这一点
SELECT b.pass FROM
userdetails a
LEFT JOIN
userlogindetails b
ON a.username = b.username
WHERE a.email = <put user input here, use a parameterized query>
SQL JOIN:
http://www.w3schools.com/sql/sql_join.asp
正如其他人所指出的,您不应该将密码存储在数据库中。根据您的特定安全需求,您需要决定这是否是个好主意。这里讨论了用于存储的密码+盐散列技术:
https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet