我正在使用此代码来检索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;
没有任何表现。
答案 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中使用用户表作为凭证和身份验证方法吗?