【发布时间】:2023-04-07 12:01:02
【问题描述】:
我的会话有问题。
我得到了错误
警告:session_start():无法发送会话缓存限制器
我在 2 页中有此代码
if (!isset($_SESSION)) {
ini_set('session.gc_maxlifetime', 3*24*60*60);
session_set_cookie_params(3*24*60*60);
session_start();
}
我只能找到没有进行 isset 检查的人的实例,所以我不知道为什么会发生这种情况:(
我检查了空格,我的 php 标签在两个文件的第 1 行。
这是加载具有上述代码的 dbmgmt 的第一页。我需要两个文件中的会话代码,因为创建会话的页面并不总是包含 dbmgt。
<?php
if (!isset($_SESSION)) {
ini_set('session.gc_maxlifetime', 3*24*60*60);
session_set_cookie_params(3*24*60*60);
session_start();
}
require("dbmgmt.php");
?>
【问题讨论】:
-
确保它高于页面可能发送的任何 HTML 代码。
-
绝对在任何 HTML 或空格之前。
-
你能把这段代码放在一个独立的.php页面中,然后just调用这段代码来确定吗?在此之前是否还有其他错误输出?
-
实际上,这证实了在
session_start()之前发送肯定有 输出。毕竟,这就是产生错误的地方。