验证后将我重定向到登录页

dojqjjoe  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(328)

我在我的页面上设置了一个验证检查,这样它就只能通过登录来访问,但问题是,登录后标头会将其重定向到登录页面,这意味着它无法通过登录检查。我正在输入正确的凭据,并且我已经开始了会话,但是仍然不知道出了什么问题。我真的很感谢你的帮助。
登录.php

<?php
session_start();
include("dbConnection.php");
if(isset($_POST['username']) && isset($_POST['pass']))
{
$username = $_POST['username'];
$password = $_POST['pass'];

$query = mysql_query(" SELECT * FROM login WHERE username='$username' and password='$password'");
if($username == 'alex' && $password == 'lion'){
header('Location: alex.php' );
exit();
}
?>

<form class="login100-form validate-form" method="POST">
<span class="login100-form-title p-b-37">
Sign In
</span>

<div class="wrap-input100 validate-input m-b-20" data-validate="Enter username or email">
<input class="input100" type="text" name="username" placeholder="username or email">
<span class="focus-input100"></span>
</div>

<div class="wrap-input100 validate-input m-b-25" data-validate = "Enter password">
<input class="input100" type="password" name="pass" placeholder="password">
<span class="focus-input100"></span>
</div>

<div class="container-login100-form-btn">
<button class="login100-form-btn">
Sign In
</button>
<?php if(isset($_GET['error'])==true){
echo'<strong><p align ="center" id="wrong" color ="red">Wrong Username or Password !!</p></strong>';
}?>
</div>

亚历克斯.php

<?php
  ob_start();
  include("dbConnection.php");
 if(!isset($_SESSION['username'])){
   header("location:login.php");
}
  ?>
wr98u20j

wr98u20j1#

在你的第二个房间里 if block ,您没有为设置值 $_SESSION['username'] 需要在alex.php中使用它来进一步验证登录。
刚好在…之后:

if($username == 'alex' && $password == 'lion'){

插入以下语句: $_SESSION['username'] = $username; .
在alex.php中,您需要 session_start(); 作为你的第一个陈述 $_SESSION['username'] 易于接近。
同样在alex.php中,使用以下代码,以便如果referer页面不是login.php,它将重定向到login.php。
刚好在…之后:

ob_start();

添加:

if(basename($_SERVER['HTTP_REFERER']) != 'login.php'){
   header('Location: login.php' );
   exit();
}
9q78igpj

9q78igpj2#

第一个问题是必须在“alex.php”文件中启动会话。在代码顶部添加以下行。

session_start();

第二个问题是,您正在验证用户是否使用变量$\u session['username']登录,但在成功验证之后,您没有在“login.php”文件中设置$\u session['username']。
所以你的代码必须是这样的:

if($username == 'alex' && $password == 'lion'){
    $_SESSION['username'] = 'alex';
    header('Location: alex.php' );
    exit();
}

在注销函数中,不要忘记取消设置会话变量

unset($_SESSION['username']);

相关问题