簡體   English   中英

本地主機的 ERR_TOO_MANY_REDIRECTS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM