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>';

まさにこれに関する素晴らしい答えがあります

于 2013-04-15T09:34:09.363 に答える