[英]ERR_TOO_MANY_REDIRECTS for localhost
我為登錄屏幕創建了兩個單獨的文件。 一個是 loginpage.php 其中 html 代碼在那里,另一個是 login.php 包含后端代碼。 兩個代碼都運行良好,並且給出了正確的 output。 但是現在它不起作用,每當我嘗試加載頁面時,它都會顯示此錯誤-
此頁面無法正常工作 localhost 將您重定向了太多次。 嘗試清除您的 cookies。 ERR_TOO_MANY_REDIRECTS。
我幾乎嘗試過清除 cookies 和緩存文件、更改代理服務器設置、運行 cmd 命令等所有操作。
重新安裝 xampp。
但它仍然顯示相同的東西,我無法在我的代碼中找到問題。
起初我使用警報消息顯示所有錯誤。 但是我也已經更改並將其存儲在數組中並以表格形式顯示。 請幫忙
LOGINPAGE.PHP
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Task Manager | Log in</title>
<!-- Google Font: Source Sans Pro -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
<!-- Font Awesome -->
<link rel="stylesheet" href="../plugins/fontawesome-free/css/all.min.css">
<!-- icheck bootstrap -->
<link rel="stylesheet" href="../plugins/icheck-bootstrap/icheck-bootstrap.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="../dist/css/adminlte.min.css">
</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-logo">
<p><b>Task Manager</b></p>
</div>
<div id="box">
<!-- /.login-logo -->
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Sign in to start your session</p>
<form action="login.php" method="post" id="login-form">
<div class="input-group mb-3">
<input type="email" class="form-control" placeholder="EmailID" id="email" name="email" required>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user-alt"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" placeholder="Password" id="password" name="password" required>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="form-group">
<select class="form-control select2bs4" name="role" id="role">
<option selected="selected">-select role-</option>
<option>ADMIN</option>
<option>EMPLOYEE</option>
</select>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-success btn-block" id="btn_submit" name="btn_submit" >Sign In</button>
</div>
<!-- /.col -->
</div>
</form>
<p class="mb-1">
<br/>
<a href="forgotpassword.html">I forgot my password</a>
</p>
</div>
<div id="error">
<?php
include 'login.php';
if(empty($errormsg))
{
foreach($errormsg as $value)
{
echo "$value";
}
}
?>
</div>
<!-- /.login-card-body -->
</div>
</div>
</div>`
<!-- /.login-box -->
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js" type="text/javascript"></script>
<!-- Bootstrap 4 -->
<script src="../plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="../dist/js/adminlte.min.js"></script>
</body>
</html>
這是登錄屏幕的后端代碼
LOGIN.PHP
<?php
include('db_connection.php');
session_start();
if (!(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] != '')) {
header("location:loginpage.php");
}
if(isset($_SESSION["employee_login"])){
header("location:employee_dash.php");
}
if(isset($_POST['btn_submit']))
{
$email=$_POST['email'];
$password=md5($_POST['password']);
$role=strtolower($_POST['role']);
if(empty($email)){
$errormsg[]="Please enter email";
} else if(empty($password)){
$errormsg[]="Please enter password";
} else if(empty($role)){
$errormsg[]="Please select a role";
} else if($email && $password && $role) {
try {
$query="SELECT email,password,role FROM `employee` WHERE email=? && password=? && role=?";
$stmt = mysqli_prepare($conn,$query);
mysqli_stmt_bind_param($stmt,'sss',$email,$password,$role);
mysqli_stmt_bind_result($stmt,$email,$password,$role);
mysqli_stmt_execute($stmt);
$result=mysqli_stmt_get_result($stmt);
while($row = mysqli_fetch_assoc($result)) {
$dbemail=$row['email'];
$dbpassword=$row['password'];
$dbrole=$row['role'];
}
if(mysqli_num_rows($result)>0) {
if($email==$dbemail && $password==$dbpassword && $role==$dbrole) {
switch($dbrole) {
case "admin":
$_SESSION["admin_login"]=$email;
header("refresh:1;dashboard.php");
break;
case "employee":
$_SESSION["employee_login"]=$email;
header("refresh:1;employee_dash.php");
break;
default:
$errormsg[]="Invalid Role";
}
} else {
$errormsg[]="Wrong Email or Password or Role";
}
} else {
$errormsg[]="Records Not Found";
}
} catch(Exception $e) {
echo $e->errorMessage();
mysqli_stmt_close($stmt);
}
} else {
$errormsg[]="Enter the crendentials";
}
}
?>
您正在從同一頁面重定向到loginpage.php
而不會首先破壞您的 session,然后它將繼續從loginpage
重定向到loginpage
作為無限循環。
嘗試檢查 session 是否已填充並銷毀它,而不是:
if (!(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] != ''))
{
header("location:loginpage.php");
}
您銷毀任何 session 已經退出,如:
if (!(isset($_SESSION['admin_login']) && $_SESSION['admin_login'] != ''))
{
session_destroy();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.