我在尝试将变量从一个页面传递到另一个页面时遇到问题(php) 我有第1页,当你访问它时自动加载第2页(使用jquery)。 为了使第2页正常工作,我需要传递2个变量,所以这是我的方法:
on Page 1:
session_start();
$_SESSION['username'] = $username;
$_SESSION['user_id'] = $user_id;
on Page 2:
session_start();
$username = $_SESSION['username'];
$user_id = $_SESSION['user_id'] ;
在第一次加载时,它不起作用。如果我刷新,一切都很好。 如果我去另一台计算机或清除当前浏览器的缓存,我会遇到同样的问题,在第一次加载时,它不起作用。一切都很好。
错误日志消息:
[01-Oct-2012 20:02:59] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /public_html/php/info.php:1) in /public_html/php/info.php on line 26
有没有人知道这个问题的原因是什么?
答案 0 :(得分:0)
经典headers already sent
错误*(如评论中所示)。问题是,在通过session_start()
或常规HTML(以及其他可能的输出方法)输出内容之后,您正在调用echo
。
将您的session_start()
来电转移到两个/所有页面的脚本顶部,这样可以解决您的问题。
*正如我所说,headers already sent
错误是因为您在发送标头之前将数据输出到页面。在Web应用程序中,您必须在输出任何数据/内容之前首先发送所有标头(包括会话标头)。
答案 1 :(得分:0)
会话处理需要Cookie(一些例外情况,具体取决于您的服务器配置)。在发送任何其他信息之前,cookie会在标题中发送。
您看到的错误消息告诉您在执行session_start()之前发送了一些内容;
通常的嫌疑人之一是在第一行打开PHP标签(&lt;?php)之前有空白行。
See this question了解详情。