我在其他论坛上经常阅读,他们说错误是在session_start之前有空格,但是我非常确定没有,我的文件是编码的UTF8没有BOM,因此白空间问题应该没问题,并且它在本地完美运行(我使用easyphp)。不过,只要我把它放在网上,它就会让我遇到这些问题。任何人都可以提供帮助吗?他们在网上告诉这两行错误:
警告:session_start()[function.session-start]:无法发送会话 缓存限制器 - 已发送的标头
这是我的代码:
<?php
session_start();
?>
答案 0 :(得分:0)
警告意味着已经发送了HTTP标头,并且不再修改它们。您必须确保在session_start
之前不发送任何内容。把它放在你的第一个PHP脚本之上,在任何echo
或HTML之前,你会没事的。
答案 1 :(得分:0)
您的代码肯定存在错误 - 您有一个附加到while循环的else条件,也许您错误地发布了它,但为什么有两个session_start()调用?假设这是一页!
<?php
session_start();
$uname=$_SESSION['name'];
?>
<?php
/*session_start();*/
$servername = "68.178.143.40";
$username = "applicant123";
$password = "Applicant@123";
$dbname = "applicant123";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
$uname=$_SESSION['name'];
$sql = "SELECT * FROM consultant WHERE username='uname' ";
$result = $conn->query( $sql );
if ( $result->num_rows > 0 ) {
/* Here is a problem - there should be no "else" */
/*
while( $row = $result->fetch_assoc() ) {
} else {
echo "0 results";
}
*/
while( $row = $result->fetch_assoc() ) {
/* do stuff with recordset */
}
$conn->close();
?>