2017-05-29 4 views
0

私は2つのほぼ同じphp関数を持っていますが、どちらも機能していますが、何らかの理由でヘッダーは最初のものでのみ実行されます。なぜこれが起こっているのか分かりません。私は同様にタイトルのついた投稿を見たことがあるが、誰も解決していない、または私が持っている問題と同じではないので、この質問を削除しないでください。私はクローズドPHPタグを削除しようとしましたが、あなたが想像することのできるすべてのものを試しましたが、葉巻はありませんでした。コードはエコーの仕事としてコードの最後で実行されているので、exit()も実行されます。何らかの理由でヘッダーが正しく動作しません。どんな助けでも大歓迎です。私は何かを試してみるでしょう。また、私はこれが動作するために必要な理由は、ページが更新されたときにフォームを再送信しないようにするためです。私はこれが続くことはあまりないので、私に質問することが自由であることを知っています。改変とPHPヘッダーの問題は重複した関数では無効になる

function setComments($conn){ 
if (isset($_POST['commentsubmit'])) { 

    $uid = $_POST['uid']; 
    $date = $_POST['date']; 
    $message = mysqli_real_escape_string($conn, $_POST['message']); 

    $sql = "INSERT INTO comments (uid, date, message) values('$uid','$date', '$message')"; 


    $result = mysqli_query($conn,$sql); 
    header("Location: videos.php"); 

} 

}

重複コード。

function setComments2($conn){ 

if (isset($_POST['commentsubmit2'])) { 

    $uid = $_POST['uid']; 
    $date = $_POST['date']; 
    $message = mysqli_real_escape_string($conn, $_POST['message']); 

    $sql = "INSERT INTO comments2 (uid, date, message) values('$uid','$date','$message')"; 

    $result = mysqli_query($conn,$sql); 
    header("Location: home.html"); 

} 

}

+0

これらの機能を備えたスクリプトに対して、videos.phpとhome.htmlは同じパスレベルですか? (1つは他のディレクトリとは別のディレクトリに存在しないことを意味します) –

+0

ええ、私は家にいたのと同じディレクトリにありますので、ヘッダーがページを更新することなく動作しているかどうかを視覚的に確認できます。私はvideos.phpで試してみましたが、まだ動作しませんでした。 – moderategamer

+0

これらの関数(header()呼び出し)は他のコードの後に​​ありますか? PHP.netはこう言っています: "実際の出力が通常のHTMLタグ、ファイルの空白行、またはPHPから送られる前にheader()を呼び出さなければならないことを覚えておいてください。includeを使ってコードを読むのは、関数やその他のファイルアクセス関数を必要とし、header()が呼び出される前に出力される空白や空行があります。単一のPHP/HTMLファイルを使用する場合にも同じ問題があります。 –

答えて

0

ヘッダ関数呼び出しは、他のコードの後に​​位置していました。

「)(そのヘッダを覚えて任意の実際の出力が送ら 、いずれかの通常のHTMLタグによって、ファイル内の空白行、またはPHPからである前と呼ばれている必要があります

PHP.netは、これは言います。 関数、または別のファイルアクセス関数をインクルードまたは必要とするコードを読み取って、header()が呼び出される前に空白または空の 行が出力されるのは非常に一般的なエラーです。同じ問題 が存在する単一のPHP/HTMLファイルです。 "

関連する問題