我想请求以下一些帮助。我得到的错误是:
警告:无法修改标头信息 - 已由
发送的标头这是我正在使用的代码:
<?php
if (isset($_GET['success']) === true && empty($_GET['success']) === true)
{
echo 'Your details have been updated!';
}
else
{
if (empty($_POST) === false && empty($errors) === true)
{
$newevent = array(
'title' => $_POST['title'],
'discription' => $_POST['discription'],
'event_date' => $_POST['event_date'],
'time' => $_POST['time'],
'contact_name' => $_POST['contact_name'],
'contact_num' => $_POST['contact_num'],
'username' => $_POST['username']
);
new_event($session_user_id, $newevent);
header('Location: settings.php?success');
exit();
} else if (empty($errors) === false) {
echo output_errors($errors);
}
}
?>
这是new_event函数:
function new_event($user_id, $newevent) {
$event = array();
array_walk($newevent, 'array_sanitize');
foreach($newevent as $field=>$data) {
$event[] = '`' . $field . '` = \'' . $data . '\'';
}
mysql_query("UPDATE `event` SET " . implode(', ', $event) . " WHERE `username` = $user_id");
}
非常感谢任何帮助,我已经看了好几年了。
非常感谢
答案 0 :(得分:0)
在页面顶部使用此功能
<?php
ob_start("ob_gzhandler");
?>
答案 1 :(得分:0)
如果可能,请尝试避免使用header
,如果它仅用于触发其他服务器请求。它会产生更多的等待时间和乒乓,干扰browser.back
等。尝试找到一种方法来执行settings.php?成功而不需要其他HTTP。
header()
仅在以前没有输出单个简单字符时才有效。您可以在脚本开头ob_start
开始,并在每个预期输出之前ob_end_clean
,{尤其是header()
之前。{{1}}。