1

我正在尝试在标头函数中的 URL 中传递变量。index2.php?ID=<?=$objResult["ID"];?>我知道如果它不在标头函数中,我可以这样做 。但是,如果我尝试在标头函数中执行此操作,我的整个脚本就会崩溃。我也试过这个:

header("Refresh: 5;url=index2.php?ID=".$objResult["ID"]."");

但这给出了以下错误:

警告:无法修改标头信息 - 标头已由第 33 行 /var/www/Mail/index.php 中的(输出开始于 /var/www/Mail/index.php:25)发送

(第 33 行是标题行)

我的整个代码是这样的:

<?php
if($_POST)
{
    mysql_connect('localhost','root','root');
    mysql_select_db('NAW') or die (mysql_error());

    $Naam              =    $_POST['naam'];
    $Email             =    $_POST['email'];
    $Soort             =    $_POST['soort'];

    $sql = mysql_query("INSERT INTO Klant (Naam, Email, Soort) VALUES ('".$Naam."', '".$Email."', '".$Soort."')") or die (mysql_error());

    if ($sql === false) {

        die (mysql_error());

    }

    else {

        echo ''.$Naam.' is in de database toegevoegd.<br><br>';

    }

    $strSQL         = ("SELECT * FROM Klant WHERE Naam='".$Naam."'");
    $objQuery       = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
    $objResult      = mysql_fetch_array($objQuery);  

    header("Refresh: 5;url=index2.php?ID=".$objResult["ID"]."");


    if($sql){ return 1; } else { return 0; }

}
?>

如果有人能告诉我我做错了什么,将我推向正确的方向,那就太好了!

笔记:

我知道我不应该因为 sql 注入而使用 mysql_* 但是因为这段代码永远不会在线并且只在本地使用这不是问题

4

1 回答 1

5

如果已经输出到页面,则无法发送标题,您拥有:

echo ''.$Naam.' is in de database toegevoegd.<br><br>';

关于这一点有一个很好的答案,here

于 2013-04-15T09:34:09.363 回答