Php 如何避免已发送的标题并更改与cookie相关的设置
我正在尝试创建一个函数来安全地为我的脚本启动一个新会话,并修改cookie设置 这就是功能:Php 如何避免已发送的标题并更改与cookie相关的设置,php,session,header,Php,Session,Header,我正在尝试创建一个函数来安全地为我的脚本启动一个新会话,并修改cookie设置 这就是功能: public function sessionStart($sessID, $noCache) { session_start(); if($noCache) { header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
public function sessionStart($sessID, $noCache)
{
session_start();
if($noCache)
{
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
}
// **PREVENTING SESSION HIJACKING**
// Prevents javascript XSS attacks aimed to steal the session ID
ini_set('session.cookie_httponly', 1);
// **PREVENTING SESSION FIXATION**
// Session ID cannot be passed through URLs
ini_set('session.use_only_cookies', 1);
// Uses a secure connection (HTTPS) if possible
ini_set('session.cookie_secure', 1);
session_name($sessID);
// Finally start a new session.
}
我尝试了“谷歌”向我展示的所有内容,但我仍然在标题上有以下错误:
Cannot modify header information - headers already sent
有没有办法让我的功能发挥作用
亲切的问候 此错误通常是由于代码中重复了
会话\u start()
确保每个脚本只启动一次会话。实现这一点的一种方法是安装一个echo/logging系统,这样您就可以看到函数被点击了多少次
请参见此处:
另外,在session\u start()
之前设置ini\u集([…])
也是一个好主意,这样您就可以确保它在运行时的行为符合预期