【发布时间】:2012-05-19 14:23:56
【问题描述】:
我有一个包含登录信息的网站,当用户登录时,我希望它在主页上显示一条消息并继续进行会话。
我收到错误消息:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by..
和
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
当我未登录时,它会显示错误,但一旦我登录并返回页面,它就会消失,但不显示“您已登录!”就像它应该...
这是我检查数据库是否匹配后的身份验证代码:
if ($result["userName"] == $_POST[txtUsername] && $result["password"] ==$_POST[txtPassword])
{
?>
<script type="text/javascript">;
alert("successfully logged in, <?php echo $result['userName'];?>!");
window.location.href='http://manning3.jcu.edu.au/~jc192699/index.html';
</script>
<?php
session_start();
$_SESSION["access"] = 'granted';
}
而我的 index.php 中的代码似乎会导致错误:
<?php
session_start();
if ($_SESSION["access"] == 'granted'){
?>
<p>You are logged in!</p>
<?php
}
else{
?>
<p>You are not logged in!</p>
<?php
}
?>
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
在您的代码中某处,一个松散的空间(通常在文件末尾)导致在您调用
session_start之前触发输出。检查右栏中的无数相关问题以获取更多查看位置... -
无论你如何处理会话,session_start() 必须是你要做的第一件事。
-
感谢您的帮助!现在错误已经消失了,但我还是有问题...登录并返回索引页面后,系统没有显示“您已登录!”。有什么线索吗?
标签: php