我不能在同一个PHP文件中设置会话和cookie吗?
如果我在设置会话后设置了cookie,告诉我标题已经发送,我收到错误消息。
如果我在cookie之后设置会话,我什么也得不到,但似乎不能正常工作。
答案 0 :(得分:4)
简短回答是肯定的 - 您可以在同一个PHP文件中设置SESSION和COOKIE数据。
答案越长:
在您的情况下,您可能已经发送标题和/或开始将数据输出到您设置SESSION数据的同一位置的客户端。
有关详细信息,请参阅the PHP manual: Cookies。特别引用:
“Cookie是HTTP标头的一部分,因此必须在将任何输出发送到浏览器之前调用setcookie()。这与header()具有相同的限制。您可以使用输出缓冲函数来延迟脚本输出,直到您决定是否设置任何cookie或发送任何标题。“
如果您需要进一步的帮助 - 请尝试插入您遇到问题的示例代码/页面。
答案 1 :(得分:2)
您始终可以在同一页面上设置Cookie会话。但是,您应该始终在生成任何输出之前启动会话或设置cookie。您获得的错误消息是因为您在开始会话(即session_start())或设置cookie之前回显出一个HTML或字符串块(即setcookie()函数)。
有关更详细的说明,请参阅以下内容中的“说明”部分: http://php.net/manual/en/function.setcookie.php
和'注释'部分: http://php.net/manual/en/function.session-start.php