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

时间:2018-09-23 02:37:53

标签: php html mysql session

我在页面上进行了验证检查,以便只能通过登录访问它,但是问题是,登录标头后将其重定向到登录页面,这意味着登录检查失败。我输入了正确的凭据,并且我已经开始了会话,但是仍然不知道出了什么问题。非常感谢您的帮助。

login.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>

alex.php

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

2 个答案:

答案 0 :(得分:1)

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

session_start();

第二个问题是,您正在使用变量 $ _ SESSION ['username'] 验证用户是否已登录。 但是,在成功验证之后,您无需在“ login.php”文件中设置 $ _ SESSION ['用户名']

所以您的代码必须是这样的:

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

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

unset($_SESSION['username']);

答案 1 :(得分:1)

在第二个if block中,您没有为$_SESSION['username']设置值,而alex.php需要此值来进一步验证登录名。

紧接着:

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

插入以下语句:

$_SESSION['username'] = $username;

在alex.php中,您需要做session_start();作为访问$_SESSION['username']的第一条语句。

再次在alex.php中,使用以下代码,以便如果引荐来源者页面不是login.php,它将重定向到login.php。

紧接着:

ob_start();

添加:

if(basename($_SERVER['HTTP_REFERER']) != 'login.php'){
   header('Location: login.php' );
   exit();
}
相关问题