0

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

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

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

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

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

但是在这两种情况下,会话变量都没有被检索到,命令echo $username; 也没有显示任何东西。

4

3 回答 3

1

您在session_start();. 确保session_start();出现在任何echo/print语句或 HTML 之前。

您的脚本在第 13 行输出一些内容header.phpsession_start();如果不在脚本的第一行,请放在此之前。

当您删除session_start();会话时,不会尝试检索并且问题(导致错误)消失了。PHP 不在乎您尝试输出的变量不存在。这就是 PHP 的样子(尽管它会生成一个Notice.

于 2013-01-27T08:11:26.130 回答
0

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

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

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

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

于 2013-01-27T08:12:58.463 回答
0

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

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

于 2013-01-27T08:19:17.240 回答