PHP会话变量未传递到下一页

时间:2013-01-27 08:10:11

标签: php session-variables

我正在使用此代码来检索php会话变量。

session_start();
$username = $_SESSION['username1'];
$password = $_SESSION['password1'];
echo $username;

当我执行它时,我收到以下错误。

  

警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从/home/practice/public_html/wp-content/themes/twentytwelve/header.php:13开始)在/home/practice/public_html/wp-content/plugins/php-execution-plugin/includes/class.php_execution.php(273):第2行的eval()代码

如果我删除session_start(),我就不会收到错误。

但在这两种情况下,都不会检索会话变量并且命令echo $username; 没有任何表现。

3 个答案:

答案 0 :(得分:1)

您在session_start();之前的页面上输出了一些内容。确保session_start();出现在任何echo / print语句或HTML之前。

您的脚本正在header.php的第13行输出内容。如果不在脚本的第一行,请放置session_start();

删除session_start();时,未尝试进行会话检索,问题(导致错误)消失。 PHP并不关心您尝试输出的变量不存在。这就是PHP的方式(虽然它会产生Notice)。

答案 1 :(得分:0)

错误消息已告诉您,您在session_start调用之前输出了一些内容:

output started at /home/practice/public_html/wp-content/themes/twentytwelve/header.php:13

输出位于第13行的header.php文件中。

您必须在发送任何输出到客户端之前启动会话。

答案 2 :(得分:0)

我不会在wordpress安装中使用会话。代码太脏了,无法依赖“无输出”。

你不能在wordpress中使用用户表作为凭证和身份验证方法吗?