doushi1957 2015-11-13 19:29
浏览 74

我的简单登录系统出错。 试图从数据库中读取

I have this error "Warning: mysql_result(): user_id not found in MySQL result index 13 in C:\xampp\htdocs\core\functions\users.php on line 14"

I think i don't know how to read from my Database, it looks like

this

Here is my users code

<?php
    function user_exists($username){
            $username = sanitize($username);
            return (mysql_result(mysql_query("SELECT COUNT(`uID`) FROM `user` WHERE `uUserName` = '$username'"), 0) == 1) ? true : false;
    }

    function user_active($username){
            $username = sanitize($username);
            return (mysql_result(mysql_query("SELECT COUNT(`uID`) FROM `user` WHERE `uUserName` = '$username' AND `uActive` = 1"), 0) == 1) ? true : false;
    }

    function user_id_from_username($username){
            $username = sanitize($username);
            return mysql_result(mysql_query("SELECT `uID` FROM `user` WHERE `uUserName` = '$username'"), 0, 'user_id');
    }

    function login($username,$password){
            $user_id = user_id_from_username($username);

            $username = sanitize($username);
            $password = md5($password);

            return (mysql_result(mysql_query("SELECT COUNT(`uID`) FROM `user` WHERE `uUserName` = '$username' AND `uPassword` = '$password'"), 0) == 1) ? $user_id : false;
    }

?>

This is my login system code

if(empty($_POST) === false){
        $username = $_POST['username'];
        $password = $_POST['password'];

        if(empty($username) === true || empty($password) === true){
                $errors[] = 'You need to enter a Username and Password';
        } else if(user_exists($username) == false){
                $errors[] = 'We cannot find that Username, have you registered?';

        } else if(user_active($username) === false){
                $errors[] = 'You have not activated your account.';
        } 
        else {
                $login = login($username,$password);
                if($login === false){
                        $errors[] = 'The username or password is incorrect';
                } else {
                        echo 'ok';
                }
        }

        print_r($errors);

}
  • 写回答

2条回答 默认 最新

  • drxd54816 2015-11-13 20:06
    关注

    Currently the only problem that I see is your user_id_from_username function.

    You're trying to set an offset to a field that doesn't exist and mysql doesn't find it. So it's throwing an error:

    function user_id_from_username($username){
            $username = sanitize($username);
            return mysql_result(mysql_query("SELECT `uID` FROM `user` WHERE `uUserName` = '$username'"), 0, 'uID');
    }
    

    Try the above or leave off the uID since it's not a mandatory but rather an optional parameter.

    Insert obligatory, you should be using mysqli instead of mysql at this point if your PHP version supports it.

    评论

报告相同问题?

悬赏问题

  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒