多个select php,关于php:SQL Select语句,有2个表

本问题已经有最佳答案,请猛点这里访问。

我有两个表:

Userlogindetails(用户名,密码)

用户详细信息(电子邮件,用户名*)

-大胆为PK,星号为FK

我正在尝试使用sql语句来制作一个忘记密码的PHP页面。

用户将输入其电子邮件地址,并且sql语句将在Userdetails中检查电子邮件是否正确。

然后,Userdetails中的用户名将与Userlogindetails匹配以找到密码。

我需要两个陈述吗?

谢谢

首先,您需要摆脱"与Userlogindetails匹配的`以找到密码"。除非要建立密码库,否则切勿存储密码。

如果用户和他们的登录名之间存在一对一的关系(由于这里没有其他字段,所以似乎存在这种关系),为什么不简单地拥有一个表呢?

@GolezTrol存储密码是典型的做法。但是,如果您的意思是永远不要存储纯文本/未加密的密码,那我会同意的。密码应始终受某种形式的哈希/加密存储。

@MikeBrant散列,不加密。两者之间有很大差异。加密意味着您可以对其进行解密。除了试图找到匹配的(不一定是您的)密码外,没有任何其他事情。您不应该存储密码,无论是否加密。只需存储一个散列,让用户忘记密码就可以设置一个新密码。

是的Adobe最近刚刚被烧毁,因为他们使用了加密功能,而不是对slashdot.org/story/13/11/05/1655225/

否(您不需要2条语句),可以使用SQL JOIN完成此操作,例如

SELECT b.pass FROM

userdetails a

LEFT JOIN

userlogindetails b

ON a.username = b.username

WHERE a.email =

SQL联接:

http://www.w3schools.com/sql/sql_join.asp

正如其他人指出的那样,您不应在数据库中存储密码。 根据您的特定安全需求,您需要确定这是否是一个好主意。 此处讨论了用于存储的密码+盐哈希算法:

https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值