Php 包含会话超时不工作的文件
expired.php包含与我的//检查会话超时相同的编码,如有任何帮助,将不胜感激。谢谢 已编辑以包含my database.php 保持 在每个页面的顶部,然后不要在页面内使用它或包含页面 如果您仍然希望在页面中使用session_start(),请如下使用:Php 包含会话超时不工作的文件,php,Php,expired.php包含与我的//检查会话超时相同的编码,如有任何帮助,将不胜感激。谢谢 已编辑以包含my database.php 保持 在每个页面的顶部,然后不要在页面内使用它或包含页面 如果您仍然希望在页面中使用session_start(),请如下使用: session_start(); require("database.php"); if(empty($_SESSION['user'])) { header("Location: login.php"); d
session_start();
require("database.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
require("expired.php");
您可以告诉php.ini抛出哪种类型的错误,搜索“错误报告”并读取规则。警告不会停止代码的执行。您的第一个示例(示例1)和第二个示例(示例2)不会获得相同的效果,因为代码顺序不同 示例1和示例3的代码顺序相同,因此应该导致相同的行为 当然,你可以争论session_start()(把它放在哪里等),但这不是你真正的问题 示例1:
if(!session_start()){
session_start();
}
require("database.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
//check session timeout
$now = time();
$limit = $now - 60 * 1;
if (isset ($_SESSION['last_activity']) && $_SESSION['last_activity'] < $limit)
{
$_SESSION = array();
header('Location: login.php');
exit;
}
else {
$_SESSION['last_activity'] = $now;
}
require("database.php");
require("expired.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
示例3:
if(!session_start()){
session_start();
}
require("database.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
//check session timeout
$now = time();
$limit = $now - 60 * 1;
if (isset ($_SESSION['last_activity']) && $_SESSION['last_activity'] < $limit)
{
$_SESSION = array();
header('Location: login.php');
exit;
}
else {
$_SESSION['last_activity'] = $now;
}
require("database.php");
require("expired.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
如果会话未启动,则
$\u会话
不应存在。顺便说一下,session\u start()
成功时返回TRUE
,失败时返回FALSE
记住这一点,你应该这样写:
session_start();
require("database.php");
if(empty($_SESSION['user']))
{
header("Location: login.php");
die("Redirecting to login.php");
}
require("expired.php");
然后,您可以在需要的地方包含此部分。是否在每个页面上调用
session\u start()
?require(“database.php”)包含我的数据库信息,并在页面末尾调用session start,如下所示。如果(!isset($_SESSION)){SESSION_start();}@SalehinSuhaimi-SESSION_start()应该位于php脚本的顶部(我将跳过isset()-部分)。只需在database.phpand顶部设置一个session_start(),您可能不需要为session_start
设置if,如果我错了,请纠正我,但我的想法是这样的。在每个页面上,我都需要访问数据库,因此我将在每个页面的顶部调用database.php。在页面末尾,如果会话尚未设置,它将启动会话。从技术上讲,这与在每页的顶部开始会话是一样的。我需要isset函数,因为我在1 index.php中包含了2-3文件,所以它将在…中给我一个忽略会话_start()。。。。我还在学习,对不起。你是说如果(!session_start())?