我有一个包含登录名的网站,当用户登录时,我希望它在主页上显示一条消息并继续进行会话。
我收到错误:
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';
}
而我的索引中的代码.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()
必须在将任何输出打印到浏览器之前调用。 由于您在启动会话之前打印了 javascript 脚本,因此已设置标头,因此无法启动会话。
看起来
您在第 1 行的 <?php
声明之前有一个空格。 这将导致标头在session_start()
之前发送,并可能导致您收到的错误。