基本登录脚本使用PHP和MySQL查询
尝试写一张支票的登录脚本来查看这个用户名可用。基本登录脚本使用PHP和MySQL查询
会写这个查询的最好方法是检查
如果isset(!_ POST [])的两个值(Nick和传递)
然后连接到数据库
WHERE MySQL的数据库中usernick要求,如果存在usernick
评估是否isset($ ID),看看用户名
返回用户ID取
,并用它来继续创建条目
这是否逻辑听起来像一个方法来检查的登录,而无需使用过多的代码
抱歉没有张贴的代码,它是另一台计算机上并且此计算机通过我的工作管理员锁定了下来...
此外,有另一种方式,如果在数据库中存在的值来评价?
例如,而不是将$ id设置为mysql数据库的返回值,我可以ping通mysql数据库的信息,并让它返回一个布尔结果,所以我不放出任何用户信息。
谢谢, 马特
你可以这样做:
SELECT NULL FROM <Table> WHERE <Conditions>
当你运行你的查询,如果你得到一个行/列,那么你的条件得到满足,如果你得到0行,那么他们不这样做(所以不管你正在寻找不存在)。
正如鲍里斯所提到的,不要忘了净化你的投入!
什么这个查询是应该做的,是一个NULL值返回行,如果你在你的标准找什么是满足。也就是说,例如你做:
SELECT NULL FROM Users WHERE Name = 'something';
,你会得到:
| NULL |
1 row(s) returned.
这意味着,与该名称的用户存在,另一方面,你会得到:
0 rows returned.
这意味着它不存在。
在PHP中,你可以很容易地使用mysql_num_rows($ result)来测试这个,如果你得到0行,那么你的用户不存在。
这当然是唯一有用的,如果你只是测试的东西的存在,如果你真的需要的信息,你需要做一个正常的查询。
你可以只SELECT username WHERE username LIKE $username
(不要忘了消毒和过滤$username
之前在查询中使用它)。
然后使用$result = mysql_fetch_array($query);
和count($result)
;
如果count($result)
是等于0或为空,然后,有在数据库中没有这样的用户名。
试试这个。
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * from <table name> WHERE username = $username AND password = $password", $connection);
$row = mysql_fetch_array($result);
if(mysql_num_rows($row) == 1) //assuming username, password pair is unique
echo "Login Successful";
else
echo "Login Unsuccessful";
好吧,我通过SQL壳试过你的方法,看看它会返回... 什么是真正回到了查询?这个WHERE评估的行数是否为真? 啊,我忘了提及,我正在离开卫生设施,直到我写得更好......出于某种原因,它让我困惑于所有额外的代码,这更具可读性。 当我完成我的项目写作时,我将清理用户输入。 – Matt 2010-05-25 22:13:26
让我编辑答案。 – 2010-05-25 22:17:17
你完全回答了我的问题,谢谢你和鲍里斯!:) – Matt 2010-05-25 22:38:24