我收到此错误:
第35行的脚本'/ home / path / to / file / php'中发生错误:无法修改标头信息-已发送的标头(输出始于/ home / path / to / file / to / header。 html:7)
我知道尝试设置Cookie时遇到错误,并且我知道setcookie之前没有任何输出...问题在那里,我必须为数据库添加包含文件连接和文件重定向。因此,我在包含文件之后添加了 setcookie 。我也尝试将 setcookie 放在包含文件上方,但这也无济于事。
我的代码
<?php # Script 2.5 - main.inc.php 2 3
// Redirect if this page was accessed directly:
if (!defined('BASE_URL')) {
// Need the BASE_URL, defined in the config file:
require('../includes/config.inc.php');
// Redirect to the index page:
$url = BASE_URL . 'index.php?p=vote';
header ("Location: $url");
exit;
}
$vote = new Vote;
//get vote and options data
$voteData = $vote->getVotes();
//if vote is submitted
if(isset($_POST['voteSubmit'])){
$votesData = array(
'vote_id' => $_POST['voteID'],
'vote_option_id' => $_POST['voteOpt']
);
//insert vote data
$voteSubmit = $vote->vote($votesData);
if($voteSubmit){
//store in $_COOKIE to signify the user has voted
setcookie($_POST['voteID'], 1, time()+60*60*24*365); //Error Occurs here
$statusMsg = 'Your vote has been submitted successfully.';
}else{
$statusMsg = 'You cannot vote more than once.';
}
}
?>
//The html form code goes here
我也尝试过
setcookie($_POST['voteID'], 1, time()+60*60*24*365, '\');
和
setcookie($_POST['voteID'], 1, time()+60*60*24*365, '\', domainName);
但是这些也不能解决我的问题。
我还创建了一个名为 test.php 的新文件,并测试了以下代码。
<?php
$cookie = 'test';
$cookie_name = "cookieName";
$cookie_value = $cookie;
setcookie($cookie_name, $cookie_value, time() + (86400 * 365));
if((isset($_COOKIE[$cookie_name])) && ($_COOKIE[$cookie_name] != "")) {
echo 'yes';
}
else{
echo 'no';
}
phpinfo();
?>
它显示是
当我在主php文件中尝试使用相同的代码时,它显示错误并打印出yes。我不知道我的代码有什么问题。
我也尝试过谷歌搜索,但没有任何运气。