标头重定向的代码出错

时间:2011-10-14 22:04:46

标签: php mysql http-post post-redirect-get

我有template.php文件,它包含在每个页面中,所以现在我想在每个页面添加注释表单,我已经将表单添加到template.php,只有我遇到的问题是刷新导致DB中的重复条目经过一些研究后我发现了POST REDIRECT GET方法,所以在template.php中我把表单操作放到了addcomment.php中,在addcomment.php中我使用了以下代码:

    <?php
require_once("appvars.php");
require_once("connectvars.php");
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() === 1){
  $_POST = array_map( 'stripslashes', $_POST );
  $_GET = array_map( 'stripslashes', $_GET );
  $_COOKIE = array_map( 'stripslashes', $_COOKIE );
}
if (isset($_POST['commentsubmit']))
{
$type=mysqli_real_escape_string($dbc,trim($_POST['type']));
$name=mysqli_real_escape_string($dbc,trim($_POST['username']));
$email=mysqli_real_escape_string($dbc,trim($_POST['useremail']));
$subject=mysqli_real_escape_string($dbc,trim($_POST['subject']));
$comment=mysqli_real_escape_string($dbc,trim($_POST['usercomment']));
$link=mysqli_real_escape_string($dbc,trim($_POST['link']));
$query = "INSERT INTO comments (`type`,`name`,`email`,`subject`,`comment`,`date`,`link`) VALUES         ('$type','$name','$email','$subject','$comment',NOW(),'$link')";
$result=mysqli_query($dbc, $query) or die('error query'); 


 header("Location: $link", 302);
   exit();
}
?>

我收到此错误:

  

警告:无法修改标题信息 - 第22行/home/animalsw/public_html/addcomment.php中已经发送的标题(/home/animalsw/public_html/addcomment.php:1上的输出)

以及如何检查查询是否正常工作。

2 个答案:

答案 0 :(得分:3)

<?php之前删除这些空格并且它会起作用(假设您在包含的文件中没有输出)

  

以及如何检查查询是否正常工作。

你已经检查过了。如果查询失败,则会触发or die('error query');

答案 1 :(得分:0)

要添加到genesis所说的内容,请确保require_once(“appvars.php”); require_once(“connectvars.php”)不回显任何数据。一旦开始输出某些内容,您将收到该错误,因为当您输出正文时,您将发送标题。