0

我所做的是创建了一个 php 代码来检查登录状态(文件名:login_status):

<?php
session_start()
// code body to check if session or cookies are set
// If not, then variable $loggedin = false, else true
// if true then redirect to profile page
// if false then redirect to login page
?>

但是,当我在任何代码上方包含此文件时include_once("login_status.php");,php 脚本会停止执行(if $loggedin == false),而不是重定向到登录页面,并且如果$loggedin == true将其重定向到个人资料页面。

我所做的是,我没有使用include_once("login_status.php");,而是简单地复制了login_status我需要的任何页面上方的代码。之后它工作正常。

我无法弄清楚 include_once 有什么不同?

然而,它确实session_start()应该在顶部,在任何事情之前。但是这include_once有什么不同吗?

4

1 回答 1

0

确实 session_start() 应该在最前面,在任何事情之前。

不是在任何事情之前,而是在任何输出之前

另外,请让自己熟悉错误报告并进行适当的设置,以便能够在屏幕上(在开发服务器上)或记录(在生产上)看到错误 - 因此,无需猜测任何内容。

在开发服务器上更改 php.ini

error_reporting = E_ALL
display_errors = On

生产

error_reporting = E_ALL
display_errors = Off
log_errors = On
于 2013-03-12T05:35:01.680 回答