function sec_session_start() {
$session_name = 'exon_id_sessfval';
$secure = false;
$httponly = true;
ini_set('session.use_only_cookies', 1);
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_name($session_name);
session_start();
session_regenerate_id();
}
上面的以下代码在与 session_start() 相关时会生成一个已发送警告的标头,即使我在第一行使用 ob_start() 来尝试忽略该问题。
它在如下页面上调用:
<?php
include('./inc/sessions.php');
sec_session_start();
header("Location: index.php");
有什么建议吗?当然,标头包含在逻辑运算符中以检查用户是否已登录,但它不输出任何内容。回溯到 session_start() 所以我认为它与仅 cookie 的会话有关。
警告:session_start():无法发送会话缓存限制器 - 标头已发送(输出开始于 /customers/b/2/5/edited.com/httpd.www/beta/login.php:1)在 /customers/b/ 2/5/edited.com/httpd.www/beta/inc/sessions.inc.php 第 11 行
警告:session_regenerate_id():无法重新生成会话 ID - 标头已在第 12 行的 /customers/b/2/5/edited.com/httpd.www/beta/inc/sessions.inc.php 中发送
警告:无法修改标头信息 - 标头已由 /customers/b/2/5/ 中的(输出开始于 /customers/b/2/5/edited.com/httpd.www/beta/login.php:1)发送在第 13 行edited.com/httpd.www/beta/login.php