Php 登录页面上的会话重定向循环解决建议

Php 登录页面上的会话重定向循环解决建议,php,Php,我希望将上面的所有代码都放在header.php中,我将其包括在内 标题的前几行有: <?php session_start(); if(!isset($_SESSION["loggedin"])){ header("Location: login.php"); exit;} ?> 在会话开始之前 在登录页面中,您可以检查用户是否已登录,并将其重定向到正确的页面 <?php if( userIsLoggedIn ){ //redirect to main page pa

我希望将上面的所有代码都放在header.php中,我将其包括在内

标题的前几行有:

<?php session_start();
if(!isset($_SESSION["loggedin"])){
header("Location: login.php");
exit;}
?>

在会话开始之前

在登录页面中,您可以检查用户是否已登录,并将其重定向到正确的页面

<?php
 if( userIsLoggedIn ){
  //redirect to main page page or logout them forcefully
 }
?>

//your login form can go here
您可以包装代码

if(!isset($_SESSION["loggedin"])){
header("Location: login.php");
exit;}
在功能中,例如:

function ensureLoggedIn()
{
  if (!isset($_SESSION["loggedin"]))
  {
    header("Location: login.php");
    exit;
  }
}
然后从需要身份验证的所有页面调用此函数

例如,如果用户未登录,则在secretpage.php上调用此函数将重定向到login.php


Login.php不应具有此功能。

在Login.php中包含标题之前,请执行以下操作:

$logging_in = true;
然后,修改标题

if(!isset($_SESSION["loggedin"])){


在对代码进行降级表决之前,有人能告诉我代码有什么问题吗?您可以使用session_start启动会话,但不要在登录文件上的函数中运行代码。将函数is_logged_包含在头文件中。然后,只在需要身份验证时从主文件调用该函数。并启动会话\u start调用,而不管对该函数的调用如何。您的想法是正确的,也许您可以更正它,因此它在语法上是正确的?此外,函数的名称有点误导,类似ensureLoggedIn的内容会更多地说明函数的功能,但它不会返回指示用户是否登录的值。有了这些更正,我投你一票。
if(!isset($_SESSION["loggedin"])){
if(!isset($_SESSION["loggedin"]) && !isset($logging_in))