Mysqli登录准备语句


Mysqli login prepared statements

好吧,我已经做了一个注册系统,但当我试图做登录系统时,它不起作用。当用户使用正确的用户名和密码登录时,它会发布"你现在登录了",但当我刷新网站时,它说我需要登录。我必须问我如何检查用户是否登录了excipel。如果用户登录了,那么回声这个,如果不是,那么回声那个。。

这是我的代码:

session_start();
            require 'inc/connect.php';
            if(isset($_POST['name'], $_POST['password'])){
                if(!empty($_POST['name'])){
                    if(!empty($_POST['password'])){

                        $username = $_POST['name'];
                        $password = $_POST['password'];
                        $user = $_SESSION['name'];
                        // KRYPTERING
                        $md5 = md5($password);
                        $sha1 = sha1($md5);
                        $crypt = crypt($sha1, 'st');
                        $md51 = md5($crypt);
                        $sha12 = sha1($md51);
                        $crypt1 = crypt($sha12, 'st');
                        $kode = base64_encode($crypt1);
                        $check = $mysqli->prepare("SELECT username, password FROM user WHERE username=? && password=?");
                        $check->bind_param("ss", $username, $kode);
                        $check->execute();
                        $check->bind_result($username, $kode);
                        $print = $check->fetch();
                        $check->close();
                        if ($print)
                            echo "You are now logged in!";
                        else
                            echo "Username / Password was incorrect!";
                    } else
                        echo "You need something!";
                } else
                    echo "You need something!";
            }

您需要在成功登录时将用户名放入会话中,在页面顶部进行检查,并在已设置用户名时重定向到其他用户名。

session_start();
            require 'inc/connect.php';
if(isset($_SESSION['username']))
{
  //already logged in, redirect
  header('Location: otherpage.php');
  exit;
}
            if(isset($_POST['name'], $_POST['password'])){
                if(!empty($_POST['name'])){
                    if(!empty($_POST['password'])){

                        $username = $_POST['name'];
                        $password = $_POST['password'];
                        $user = $_SESSION['name'];
                        // KRYPTERING
                        $md5 = md5($password);
                        $sha1 = sha1($md5);
                        $crypt = crypt($sha1, 'st');
                        $md51 = md5($crypt);
                        $sha12 = sha1($md51);
                        $crypt1 = crypt($sha12, 'st');
                        $kode = base64_encode($crypt1);
                        $check = $mysqli->prepare("SELECT username, password FROM user WHERE username=? && password=?");
                        $check->bind_param("ss", $username, $kode);
                        $check->execute();
                        $check->bind_result($username, $kode);
                        $print = $check->fetch();
                        $check->close();
                        if ($print)
                        {
                            //redirect to different page for the message
                            //echo "You are now logged in!";
                            $_SESSION['username'] = $username;
                             header('Location: otherpage.php');
                             exit;
                        }
                        else
                            echo "Username / Password was incorrect!";
                    } else
                        echo "You need something!";
                } else
                    echo "You need something!";
            }

然后在其他页面中,你会想要这样的东西:

session_start();
if(!isset($_SESSION['username']))
{
  //not logged in, redirect to login form
  header('Location: login_form.php');
  exit;
}