我正在尝试访问我网站的SESSION保护区域内的DOMPDF(将HTML转换为PDF的脚本)。
SESSIONs包含用户信息,当您单击按钮时,页面将刷新并以pdf格式下载该页面。这在我的笔记本电脑上的开发服务器上工作正常。但在线它说已经发送了标题。
我打印了下面的标题,并将其追溯到我的会话。是否一旦初始化SESSION标题被发送?
array(3) {
[0]=> string(38) "Expires: Thu, 19 Nov 1981 08:52:00 GMT"
[1]=> string(77) "Cache-Control: no-store, no-cache, must-revalidate,post-check=0, pre-check=0"
[2]=> string(16) "Pragma: no-cache"
}
答案 0 :(得分:1)
答案 1 :(得分:0)
有许多事情可能会导致这种情况发生,但最有可能发生的事情是,在发送标题之前,您在不知情的情况下会在屏幕上打印一些空格。
从脚本末尾删除任何不必要的close-php标记(?>)。这应该有所帮助(并且是最佳实践)。
答案 2 :(得分:0)
启动会话不会发送标头,但它会尝试设置需要与标头一起发送的cookie。您可能在已经向浏览器输出内容后调用了session_start()。
答案 3 :(得分:0)
答案可能在于PHP documentation for session_start():
如果您收到如下错误:
错误警告:session_start()[function.session-start]:“无法发送 会话cookie - 已经发送的标题(输出从......开始“
...或...
“警告:session_start(); [function.session-start]:无法发送 会话缓存限制器 - 已发送标头“。
... 确保session_start();实际上是你的最顶层 脚本,甚至在任何DOCTYPE声明之前,例如:
...