問題描述
輸入正確的詳細信息且未顯示錯誤後,登錄頁面未重定向到 index.php (Login in page not redirecting to index.php after entering correct details with no error displayed)
我正在使用 php 7 為我的網站開發登錄系統。當我使用以下代碼時,登錄頁面會重定向到 index.php
if(isset($_SESSION['username'])){
header('Location: login.php');
}
但無法重定向到 index.php 或任何頁面當我使用
if(!isset($_SESSION['username'])){
header('Location: login.php');
}
我使用 !isset 來確保用戶不會通過在瀏覽器上鍵入其 url 直接進入頁面。這是為了確保您被重定向回登錄頁面,以避免在管理面板中進行未經授權的訪問。但即使輸入了正確的詳細信息,也不會登錄。
LOGIN.PHP
<?php
ob_start();
session_start();
require_once('../inc/db.php');
if(isset($_POST['submit'])){
$username = mysqli_real_escape_string($con,strtolower($_POST['username']));
$password = mysqli_real_escape_string($con,$_POST['password']);
$check_username_query = "SELECT * FROM users WHERE username = '$username'";
$check_username_run = mysqli_query($con, $check_username_query);
if(mysqli_num_rows($check_username_run) > 0){
$row = mysqli_fetch_array($check_username_run);
$db_username = $row['username'];
$db_password = $row['password'];
$db_role = $row['role'];
$password = crypt($password, $db_password);
if($username == $db_username && $password == $db_password){
header('Location: index.php');
$_SESSION['username'] = $db_username;
$_SESSION['role'] = $db_role;
}
else{
$error = "Wrong Username or Password";
}
}
else{
$error = "Wrong Username or Password";
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf‑8">
<meta name="viewport" content="width=device‑width, initial‑scale=1, shrink‑to‑fit=no">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Jekyll v3.8.5">
<link rel="icon" href="img/circleda.png">
<title>Login | Amasiatu Admin</title>
<!‑‑ Bootstrap core CSS ‑‑>
<link href="css/animate.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
.bd‑placeholder‑img {
font‑size: 1.125rem;
text‑anchor: middle;
}
@media (min‑width: 768px) {
.bd‑placeholder‑img‑lg {
font‑size: 3.5rem;
}
}
</style>
<!‑‑ Custom styles for this template ‑‑>
<link href="login.css" rel="stylesheet">
</head>
<body class="text‑center">
<form class="form‑signin animated shake" action="" method="post">
<div class="login‑logo" style="margin: 0 auto; margin‑bottom: 18px">A</div>
<h1 class="h3 mb‑3 font‑weight‑normal">Amasiatu Login!</h1>
<label for="inputEmail" class="sr‑only">Username</label>
<input type="text" id="inputEmail" name="username" class="form‑control" placeholder="username" required autofocus>
<label for="inputPassword" class="sr‑only">Password</label>
<input type="password" id="inputPassword" name="password" class="form‑control" placeholder="Password" required>
<input type="submit" name="submit" value="Sign In" class="btn btn‑lg btn‑primary btn‑block">
<div class="checkbox ">
<label>
<?php
if(isset($error)){
echo "$error";
}
?>
</label>
</div>
<p class="mt‑5 mb‑3 text‑muted year">© 2018‑2019</p>
</form>
</body>
</html>
</code></pre>
INDEX.PHP
<?php require_once ('inc/top.php');
if(isset($_SESSION['username'])){
header('Location: login.php');
}
?>
</head>
<body>
<div id="wrapper">
<?php require_once ('inc/header.php'); ?>
<div class="container‑fluid body‑section">
<div class="row">
<div class="col‑md‑3">
<?php require_once ('inc/sidebar.php'); ?>
</div>
<div class="col‑md‑9">
<h1><i class="fas fa‑tachometer‑alt"></i> Dashboard <small style="color: #495057">Statistics Overview</small></h1><hr>
<nav aria‑label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb‑item active" aria‑current="page"><i class="fas fa‑tachometer‑alt"></i> Dashboard</li>
</ol>
</nav>
<div class="row tag‑boxes">
<div class="col‑md‑6 col‑lg‑3">
<div class="panel panel‑blue">
<div class="panel‑heading">
<div class="row">
<div class="col‑xs‑3">
<i class="fas fa‑comments fa‑5x"></i>
</div>
<div class="col‑xs‑9">
<div class="text‑right huge">11</div>
<div class="text‑right">New Comment</div>
</div>
</div>
</div>
<a href="">
<div class="panel‑footer">
<span class="float‑left">View All Comments</span>
<span class="float‑right"><i class="fas fa‑arrow‑circle‑right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col‑md‑6 col‑lg‑3">
<div class="panel panel‑red">
<div class="panel‑heading">
<div class="row">
<div class="col‑xs‑3">
<i class="fas fa‑file‑alt fa‑5x"></i>
</div>
<div class="col‑xs‑9">
<div class="text‑right huge">20</div>
<div class="text‑right">All Posts</div>
</div>
</div>
</div>
<a href="">
<div class="panel‑footer">
<span class="float‑left">View All Posts</span>
<span class="float‑right"><i class="fas fa‑arrow‑circle‑right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col‑md‑6 col‑lg‑3">
<div class="panel panel‑yellow">
<div class="panel‑heading">
<div class="row">
<div class="col‑xs‑3">
<i class="fas fa‑users fa‑5x"></i>
</div>
<div class="col‑xs‑9">
<div class="text‑right huge">41</div>
<div class="text‑right">All Users</div>
</div>
</div>
</div>
<a href="">
<div class="panel‑footer">
<span class="float‑left">View All Users</span>
<span class="float‑right"><i class="fas fa‑arrow‑circle‑right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
<div class="col‑md‑6 col‑lg‑3">
<div class="panel panel‑green">
<div class="panel‑heading">
<div class="row">
<div class="col‑xs‑3">
<i class="fas fa‑folder‑open fa‑5x"></i>
</div>
<div class="col‑xs‑9">
<div class="text‑right huge">8</div>
<div class="text‑right">All Categories</div>
</div>
</div>
</div>
<a href="">
<div class="panel‑footer">
<span class="float‑left">View All Categories</span>
<span class="float‑right"><i class="fas fa‑arrow‑circle‑right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
</div><hr>
<h3>New Users</h3>
<table class="table table‑hover table‑striped">
<thead>
<tr>
<th>SN #</th>
<th>Date</th>
<th>Name</th>
<th>Username</th>
<th>Role</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>18 Jan 2019</td>
<td>Val Amasiatu</td>
<td>Computacity</td>
<td>Admin</td>
</tr>
<tr>
<td>2</td>
<td>18 Jan 2019</td>
<td>Val Amasiatu</td>
<td>Computacity</td>
<td>Admin</td>
</tr>
<tr>
<td>3</td>
<td>18 Jan 2019</td>
<td>Val Amasiatu</td>
<td>Computacity</td>
<td>Admin</td>
</tr>
<tr>
<td>4</td>
<td>18 Jan 2019</td>
<td>Val Amasiatu</td>
<td>Computacity</td>
<td>Admin</td>
</tr>
<tr>
<td>5</td>
<td>18 Jan 2019</td>
<td>Val Amasiatu</td>
<td>Computacity</td>
<td>Admin</td>
</tr>
</tbody>
</table>
<a href="#" class="btn btn‑primary">View All Users</a><hr>
<h3>New Posts</h3>
<table class="table">
<thead>
<tr>
<th>SN #</th>
<th>Date</th>
<th>Post Title</th>
<th>Category</th>
<th>Views</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>18 Jan 2019</td>
<td>Learn Python and build a Complete Project</td>
<td>Video Tutorials</td>
<td><i class="far fa‑eye"></i> 35</td>
</tr>
<tr>
<td>2</td>
<td>18 Jan 2019</td>
<td>Learn Python and build a Complete Project</td>
<td>Video Tutorials</td>
<td><i class="far fa‑eye"></i> 35</td>
</tr>
<tr>
<td>3</td>
<td>18 Jan 2019</td>
<td>Learn Python and build a Complete Project</td>
<td>Video Tutorials</td>
<td><i class="far fa‑eye"></i> 35</td>
</tr>
<tr>
<td>4</td>
<td>18 Jan 2019</td>
<td>Learn Python and build a Complete Project</td>
<td>Video Tutorials</td>
<td><i class="far fa‑eye"></i> 35</td>
</tr>
<tr>
<td>5</td>
<td>18 Jan 2019</td>
<td>Learn Python and build a Complete Project</td>
<td>Video Tutorials</td>
<td><i class="far fa‑eye"></i> 35</td>
</tr>
</tbody>
</table>
<a href="#" class="btn btn‑primary">View All Posts</a>
</div>
</div>
</div>
<?php require_once ('inc/footer.php'); ?>
</code></pre>
參考解法
(by Amasiatu Valentine)
參考文件