错误未在登录表单中输出 [英] error not outputting in login form
问题描述
我的代码是
$query = "USE `davidedwardcakes`";
$result = mysql_query($query, $connect);
if(!isset($result)){echo 'no' . mysql_error();}
$query = "SELECT * FROM `users` WHERE uname = '$uname'";
$result2 = mysql_query($query, $connect);
if(!$result2){echo 'wrong username or password' . mysql_error(); var_dump($result2);}
while($row = mysql_fetch_array($result2))
{echo $row['uname'] . $row['pass']; var_dump($result2);}
echo 'submited';
我正在尝试创建一个登录表单,但是每当我使用空白表单执行它时,我都没有得到任何错误输出.请帮忙.
I am trying to create a login form but i do not get any error output whenever i execute it with blank forms. Help please.
推荐答案
这是因为如果 $uname
为空字符串,查询仍然会成功运行.它只会有一个零行结果集.因此,您在何处执行此操作:
It is because the query will still run successfully if $uname
is an empty string. It will just have a zero-row result set. As such, where you do this:
if(!$result2){echo 'wrong username or password' . mysql_error(); var_dump($result2);}
$result2
将有一个真值,您在条件中的代码将不会执行.
$result2
will have a truthy value and your code in the conditional will not execute.
您应该检查 mysql_num_rows()
以确定您是否有一个非空的结果集.
You should check mysql_num_rows()
to determine if you have a non-empty result set.
顺便说一句,没有理由运行实际的mysql_query()
来选择要使用的数据库.mysql_select_db()
可用于此目的.
By the way, there is no reason to run an actual mysql_query()
to select the DB to use. mysql_select_db()
can be used for this purpose.
话虽如此,您应该使用 mysqli
或 PDO
而不是 mysql
.
That being said, you should be using mysqli
or PDO
instead of mysql
.
这篇关于错误未在登录表单中输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!