首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MYSQLi查询仅访问第一行上的用户

问PHP MYSQLi查询仅访问第一行上的用户
EN

Stack Overflow用户
提问于 2014-12-25 08:20:59
回答 2查看 81关注 0票数 2

按照上面的链接顺序,给出一个基于用户名和密码的web登录系统的示例,该系统使用PHP、JavaScript和MySQL数据库开发。按照上面的链接顺序,给出一个基于用户名和密码的web登录系统的示例,该系统使用PHP、JavaScript和MySQL数据库开发。

按照上面的链接顺序,给出一个基于用户名和密码的web登录系统的示例,该系统使用PHP、JavaScript和MySQL数据库开发。

EN

回答 2

Stack Overflow用户

发布于 2014-12-25 08:28:11

您只测试了表user的第一行。当您使用if语句进行测试时,返回的第一行要么是试图登录的用户,要么不是。

相反,您可以执行以下操作:

代码语言:javascript
复制
function user_exists($username) {

    $username = sanitize($username);
    $query = mysqli_query($_POST['x'], "SELECT * FROM users where username ='".$username."'");
    $row = mysqli_fetch_array($query);
    if(count($row)>0) {
        return true;
    }
    else return false;       
}

这将查找具有给定用户名的所有行。当然,测试密码或其他东西将依赖于实际迭代获取的数组,而不仅仅是检查计数。

票数 1
EN

Stack Overflow用户

发布于 2014-12-27 00:15:17

多亏了你们,我昨天终于做到了。它工作得很好,但是需要在涉及到的其他函数中重复(这就是失败的原因),是的,我忘记了我的错误报告被关闭了,这让我自己的生活变得更加困难:

代码语言:javascript
复制
function user_exists($username) {

    $username = sanitize($username);
    $query = mysqli_query($_POST['x'], "SELECT `username` FROM `users` WHERE `username` = '$username'");

    while($row = mysqli_fetch_assoc($query)){
        $rows[] = $row;
    }
    if (count($rows) > 0) {
        return true;} else return false;
}

对登录函数执行相同的操作:

代码语言:javascript
复制
function login($username, $password){
    $username = sanitize($username);
    $password = md5($password);
    $query = mysqli_query($_POST['x'], "SELECT `userid` FROM `users` WHERE `username` = '$username' AND `password` = '$password'");
    while($row = mysqli_fetch_array($query)){
        $rows[] = $row;
    }
    if(count($rows) > 0) {
        $userid = user_id_from_username($username);
        return $userid; }  else return false; 

再次感谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27643288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档