登录问题我可以使用任何用户名和密码登录

亚历山大·耶雷米奇

我的登录系统有问题我可以使用任何用户名和密码登录我不知道如何解决

如果有人可以提供帮助,我将不胜感激

这是我的登录系统

function userLog() {
    global $connect;
    if(isset($_POST['userLog'])) {
        $username = trim(protect($_POST['username']));
        $password = trim(protect($_POST['password']));

        if(empty($username)) {
            $_SESSION['message'] = '';
            header('Location: index.php');
            exit();
        } elseif (empty($password)) {
            $_SESSION['message'] = '';
            header('Location: index.php');
            exit();     
        }
        $userSQL = "SELECT * FROM users WHERE username = :username";
        $userLog = $connect->prepare($userSQL);
        $userLog->bindValue(':username', $username);
        $userLog->execute();
        $userLog->fetchAll();

        #PLACE FOR SELECT DATA FROM SQL TO IMPORT TO SESSION
        $sql = "SELECT * FROM users";
        $stm = $connect->prepare($sql);
        $stm->execute();
        $row = $stm->fetch();
        ####################################################

        if($userLog) {
            $_SESSION['user_id']  = $row['user_id'];#id(mysql)
            $_SESSION['username'] = $row['username'];#user(mysql)
            $_SESSION['email']    = $row['email'];#email(mysql)
            $_SESSION['f_name']   = $row['first_name'];#fname(mysql)
            $_SESSION['l_name']   = $row['last_name'];#lname(mysql)

            header('Location: index.php');
            exit();
        } else {

        }
    }
}

抱歉英语不好

下载

我无法深入创建一个类!你需要检查课程。

我只是尽可能多地更正了您的代码,我使用了 bindParam 而不是 bindValue。

我希望你正在使用 pdo,它表明你是 :) 请session_start();在其他一切之前放在你的页面顶部。

function userLog() {
    global $connect;
    if(isset($_POST['userLog'])) {
        $username = trim($_POST['username']);
        $password = trim($_POST['password']);

        if(empty($username)) {
            $_SESSION['message'] = 'Enter username';
            header('Location: index.php');
            exit();
        } elseif (empty($password)) {
            $_SESSION['message'] = 'Enter password';
            header('Location: index.php');
            exit();     
        }else{
            $sql = "SELECT * FROM users WHERE username = :username";
            if($stmt = $connect->prepare($sql)){
                $stmt->bindParam(':username', $param_username, PDO::PARAM_STR);
                $param_username = $username;
                if($stmt->execute()){
                    $row = $stmt->fetch();
                    if($row['username'] === 1){
                        $hashed_password = $row['password'];
                        $email = $row['email'];
                        $name = $row['f_name'];
                        $lastname = $row['l_name'];
                        $id = intval($row['user_id']);
                        if(password_verify($password, $hashed_password)){
                            session_regenerate_id();
                            $_SESSION["loggedin"] = true;
                            $_SESSION['user_id'] = $id; 
                            $_SESSION['username'] = $username; 
                            $_SESSION['email'] = $email; 
                            $_SESSION['f_name'] = $name; 
                            $_SESSION['l_name'] = $lastname;    

                            header('Location: index.php');
                            exit();                             
                        }else{
                            $_SESSION['message'] = 'wrong password';
                        }
                    }else{
                        $_SESSION['message'] = 'wrong username';
                    }
                }else{
                    $_SESSION['message'] = 'User not found';
                }
            }else{
                $_SESSION['message'] = 'Something went wrong';
            }
        }
    }
}

我让你重定向到你的错误页面

更新:这是一个简单的类示例,搜索创建类的正确方法。

class userLog {
/** @var object $connect Copy of PDO connection */
private $connect;
/** @var object of the logged in user */
private $user;
/** @var string error msg */
private $msg;

    public function __construct($connect) {
        $this->connect = $connect;
    }  

    public function login($username,$password){
        $stmt = $this->connect->prepare('SELECT * FROM users WHERE username = ? ');
        $stmt->execute([$username]);
        $user = $stmt->fetch();
        if(password_verify($password,$user['password'])){
                $this->user = $user;
                session_regenerate_id();
                $_SESSION['user']['user_id'] = $user['user_id'];
                $_SESSION['user']['fname'] = $user['fname'];
                $_SESSION['user']['lname'] = $user['lname'];
                $_SESSION['user']['email'] = $user['email'];
                return true;
        }else{
            $this->msg = 'Invalid login information';
            //you can change ajax response to session error
            return false;
        } 
    }
}

仍然: $handle = new userLog($connect);

注意这个函数需要ajax来返回响应。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以使用任何用户名和密码登录到Firebird 3数据库

我可以使用我的用户名和密码登录到 github,但不能使用 HTTPs 向他们推送代码

我的登录用户名和密码是什么?

我有一个登录问题 用户名和密码是正确的

PHP登录“无效的用户名和密码”使用MySQL

不使用密码和用户名登录

登录系统,输入用户名和密码后登录

当您可以使用一个用户名和密码登录多个工作站时,这叫什么

是否可以使用WIF客户端从客户端传递用户名和密码来登录ADFS联合身份验证?

如何识别用户名和密码字段以使用Selenium和Python登录到USPS.com

我正在尝试使用bash脚本自动登录npm,但我不知道在请求时ti如何输入用户名和密码。是否可以?

curl 使用用户名密码和登录按钮登录网站

当我使用正确的用户名和密码时,我的php登录系统未重定向

什么是Grafana登录页面默认的用户名和密码?

ssh登录和git pull询问用户名/密码

登录时QuickFixJ Initiator设置用户名和密码

PHP登录“无效的用户名和密码”

简单的用户名和密码登录 Python 3

带有用户名和密码的登录页面

Cake php无法登录“错误的用户名和密码”

输入正确的用户名和密码后无法登录

尝试连接到 somee.com 数据库时是否使用我的登录用户名和密码?

如何使我的Spring Boot应用程序使用给定的用户名和密码登录到keycloak?

为什么这个登录程序在我第一次正确输入用户名和密码时可以登录?

SqlConnection 使用 Dynamics GP 用户名和密码 -- 用户登录失败

如何使用2或3个用户名和密码以用户形式创建登录名?

Amazon Cognito使用用户名和密码登录用户

我可以在 nifi 处理器或任何组件中读取登录的用户名吗?

我的登录功能无法匹配数据库中存储的用户名和密码