如果会话重定向到主页

if session redirect to homepage

if(!$_SESSION['username']) {


     $ip = $db->real_escape_string(VisitorIP());
         $username = $db->real_escape_string($_POST['username']);
         $password = $db->real_escape_string($_POST['password']);
     $salt = "****";
     $password = md5($password . $salt);
         $result = $db->query("SELECT * FROM TABLE WHERE username='$username' and password='$password'");
         $count = mysqli_num_rows($result);
        if ($count == 1){
            $bannedq = $db->query("SELECT banned FROM TABLE WHERE username='$username' AND password='$password'");
            $banned = $bannedq->fetch_row();
            if($banned[0] == "1") {
            $failedLogin="1";
            $message = 'You are banned and you cannot login';
            } else {
                                $ip = $db->real_escape_string(VisitorIP());
                $db->query("UPDATE h_users SET lastlogin=now(), lastip = '$ip' WHERE username='$username'");
                                header("Location: home");
                session_start();
                $_SESSION['username'] = $username;
                $_SESSION['password'] = $password;

                $failedLogin = "1";
                $message   = 'Username or Password WRONG!';
                }
            }
} else {
header("location: home");
}

你好程序员, 我正在尝试在我的网站上设置登录系统。到目前为止它工作正常但是当会话设置并且用户现在被重定向到主页如果他进入登录屏幕并且会话设置我希望他重定向到主页并且不再看到登录屏幕。 但是我添加了这部分之后:

if(!$_SESSION['username']) {

没用

你必须把你的 session 开始并在你使用它之前把它放在那里,所以在你的 if 语句之前写这个:

session_start();
if(!$_SESSION['username']) {
//...

并在此处删除此:

/...
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
/...

(另外我会在每个 header 之后添加一个 die();exit();,它确保在 header 之后不会执行任何内容)

好的,谢谢你们的帮助 <3 <3 我将代码更改为此,一切正常

session_start();
if(!isset($_SESSION['username'])) {
 if(isset($_POST['username']) && isset($_POST['password'])) {
     $ip = $db->real_escape_string(VisitorIP());
         $username = $db->real_escape_string($_POST['username']);
         $password = $db->real_escape_string($_POST['password']);
     $salt = "ho073";
     $password = md5($password . $salt);
         $result = $db->query("SELECT * FROM TABLE WHERE username='$username' and password='$password'");
         $count = mysqli_num_rows($result);
        if ($count == 1){
            $bannedq = $db->query("SELECT banned FROM TABLE WHERE username='$username' AND password='$password'");
            $banned = $bannedq->fetch_row();
            if($banned[0] == "1") {
            $failedLogin="1";
            $message = 'You are banned and you cannot login';
            } else {
                                $ip = $db->real_escape_string(VisitorIP());
                $db->query("UPDATE TABLE SET lastlogin=now(), lastip = '$ip' WHERE username='$username'");
                                header("Location: home");
                $_SESSION['username'] = $username;
                $failedLogin = "1";
                $message   = 'Username or Password WRONG!';
                }
            }
    }
        include'templates/login.html';
} else {
header("location: home");
die();
}

非常爱你<3