Php 将表单值与数据库中的所有值匹配
所以我的研究让我遇到了这个小问题。(我进入php已经整整一个月了,如果我不太清楚,我很抱歉) 我有一个由用户名和密码组成的小表单Php 将表单值与数据库中的所有值匹配,php,Php,所以我的研究让我遇到了这个小问题。(我进入php已经整整一个月了,如果我不太清楚,我很抱歉) 我有一个由用户名和密码组成的小表单 <form method="post" action="proc.php"> <table> <tr> <td>Username:</td> <td><input type="text" name="user
<form method="post" action="proc.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="user" id="user"></td>
</tr>
<tr>
<td>password:</td>
<td><input type="text" name="password" id="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="submit"></td>
</tr>
</table>
</form>
为了测试我的while循环…(因为我是新lol),当我这样做时:
$nums = array(1,2,3,4,5);
for($i=0; $i<6; $i++){
if($nums[0] < 6 ) echo $i . '<br/>';
}
你知道为什么它没有检查所有的价值观吗?我肯定我错过了什么,哈哈
任何提示、建议等,我都将不胜感激。
谢谢你
somdow.您应该限制结果,而不是返回所有帐户
$dbq = "SELECT * FROM accounts WHERE username = '$name';";
然后查看返回的结果是否为空,如果不是,则根据查询返回的密码检查密码
编辑:
嘿,我不会因为你不应该做OP可能不知道他能做的事情而被击败,因为我比他更清楚。。。。因此,如果要将输入的文本放入查询中,那么还应该检查SQL注入。(希望通过添加更多内容和复制以前的答案,我可能会获得更多的投票。)而不是返回所有帐户,您应该限制结果
$dbq = "SELECT * FROM accounts WHERE username = '$name';";
然后查看返回的结果是否为空,如果不是,则根据查询返回的密码检查密码
编辑:
嘿,我不会因为你不应该做OP可能不知道他能做的事情而被击败,因为我比他更清楚。。。。因此,如果要将输入的文本放入查询中,那么还应该检查SQL注入。(希望通过添加更多内容和复制以前的答案,我可能会获得更多的投票。)您不需要(也不应该)从数据库表中获取所有数据,并迭代所有结果以进行此类检查。为什么?
- 这既慢又耗资源
- 不太安全
- 数据库引擎更好地搜索数据库中的内容(它们是为完成此类任务而设计的)
- 在大型数据库中,您可能会为PHP脚本执行填充所有允许的内存(这将返回错误)
$query = "SELECT user_id FROM accounts WHERE username = :username";
您不需要(也不应该)从数据库表中获取所有数据并迭代所有结果来进行此类检查。为什么?
- 这既慢又耗资源
- 不太安全
- 数据库引擎更好地搜索数据库中的内容(它们是为完成此类任务而设计的)
- 在大型数据库中,您可能会为PHP脚本执行填充所有允许的内存(这将返回错误)
$query = "SELECT user_id FROM accounts WHERE username = :username";
客户端筛选。。。啊。。。您应该仔细阅读SQL查询中的子句。除非我遗漏了什么,否则简单的
WHERE username='$username'
不适合您吗?客户端筛选。。。啊。。。您应该仔细阅读SQL查询中的子句。除非我遗漏了什么,否则简单的WHERE username='$username'
不适合您吗?