我试图在PHP中启动一个会话,以存储有关用户ID (将在mySQL DB中使用)的数据。
然而,当我启动会话时,我会得到以下错误:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /Applications/MAMP/blah) in /Applications/MAMP/blah on line 38
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /Applications/MAMP/blah) in /Applications/MAMP/blah on line 38
我理解错误是说它不能启动会话,因为页面已经提交,或者“标头已经发送”,但是我非常困惑,因为它引用的行第38行是启动会话的行:
Line 38: session_start();
那么,它怎么能说标题已经由这一行发送了,这就是错误吗?
下面是我的代码的一个简短的部分。值得注意的是,有一部分HTML是通过AJAX使用jQuery加载进来的,是吗?
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<div class="wrapper">
<div id="quiz-section">
// This part is where the HTML content loads via AJAX
</div>
</div>
<!-- Below PHP looks at the referral i.e how the user landed on this page -->
<?php
session_start();
require 'connect.php';
if (!mysqli_query($con,"INSERT INTO entries (referral) VALUES ('$ref')")){
echo("Error description: " . mysqli_error($con));
return false;
}
$_SESSION["sessionID"] = mysqli_insert_id($con);
mysqli_close($con);
?>
</body>
<script>
// some jQuery here to load in the HTML content to the AJAX pane
</script>
</html>
发布于 2015-02-06 05:31:39
在session_start()
之前输出HTML。将PHP代码置于HTML代码之上。
https://stackoverflow.com/questions/28366881
复制