php - 如果用户名和密码正确,则开始 session

标签 php mysql authentication membership

我正在开发一个基本的登录系统,允许在 MySQL 数据库中存储用户注册/登录。我有它,所以人们可以注册,它将用户名和散列密码存储在数据库中。当有人登录时,它会显示成功消息或错误消息,具体取决于用户名和密码是否匹配。

我的问题出在登录功能上。我需要创建用户 session 并将他们重定向到网站的仅登录部分,而不是显示当前存在的成功消息。我不确定该怎么做...

这是我的代码:

登录/注册功能

function login($username, $password) {
    $userpass = sha1($password);
    $result = mysqli_query($con, "SELECT * FROM members WHERE username='$username' AND password='$userpass'");
    while($row = mysqli_fetch_array($result)) {
        $success = true;
    }
    if($success == true) {
        echo 'Success!';
    } else {
        echo '<div class="alert alert-danger">Oops! It looks like your username and/or password are incorrect. Please try again.</div>';
    }
} // END LOGIN FUNCTION

function register($username, $password) {
    $userpass = sha1($password);

    // Check if Username Exists
    $result = mysqli_query($con,"SELECT * FROM members WHERE username='$username'");
    while($row = mysqli_fetch_array($result)) {
        $userexist = 1;
    }
    if($userexist > 0) {
        echo '<div class="alert alert-danger">Sorry, it looks like that username is already taken.</div>';
    } else {
        $newmember = "INSERT INTO members SET username='$username', password='$userpass'";
        if(mysqli_query($con,$newmember)) {
            echo '<div class="alert alert-success">Congrats! You can now log in using your username and password</div>';
        }
    }
}

最佳答案

这样想

function login($username, $password) {
    $userpass = sha1($password);
    $result = mysqli_query($con, "SELECT * FROM members WHERE username='$username' AND password='$userpass'");
    while($row = mysqli_fetch_array($result)) {
        $success = true;
    }
    if($success == true) {
        $_SESSION['username']= $username; 
        //redirect to home page
    } else {
        echo '<div class="alert alert-danger">Oops! It looks like your username and/or password are incorrect. Please try again.</div>';
    }
} // END LOGIN FUNCTION

关于php - 如果用户名和密码正确,则开始 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18381581/

相关文章:

PHP:生成 json 的替代方法?

php - Varnish 503 错误不会消失并且是随机的

mysql - 使用附加主键将行从一个表复制到另一个表

Android HttpClient 身份验证总是返回 401 代码

php - 登录时重定向

javascript - 如何根据 php 条件隐藏和显示 html 表中的列

php - Laravel 至少有一个字段是有效的

mysql - 从具有简单输出的许多表中检索数据

mysql - SQL加载数据并发infile

PHP Telnet/SSH 动态登录