0

最近サーバーを移動したので、PHP の連絡先フォームが少し歪んでいます。

お問い合わせフォームとしては問題なく機能しますが、リダイレクト機能はなくなります。

リダイレクト ページで次のエラーが表示されます。

警告: ヘッダー情報を変更できません - 20 行目の /home/content/73/11511973/html/contact.php で既に送信されたヘッダー (/home/content/73/11511973/html/contact.php:14 で開始された出力)

ここに私のcontact.phpコードがあります:

<?php

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: Order/Enquiry';
    $to = 'crookedcartoon@gmail.com'; 
    $subject = "From: ".$_POST['name'];

    $body = "From: $name\nE-Mail: $email\n\nMessage:\n\n $message";

if ($_POST['submit']) {
    if (mail ($to, $subject, $body, $from)) { 
        echo '<p><center><br><img src="images/cat.jpg"><br><br><br><font size="4" face="Tw Cen MT">Your message has been sent! You will now be redirected to the home page.<br><br>Thank you for your message!</font></center></p>';
    } else { 
        echo '<p><center><br><img src="images/cat.jpg"><br><br><br><font size="4" face="Tw Cen MT">Something went wrong, go back and try again! You will now be redirected to the home page.</font></center></p</p>'; 
    }
}

header('Refresh: 3; url=index.html')

?>

そして、これが私のウェブサイトで、ページが完全に動作しています。

www.crookedcartoon.co.uk/contact.html

ありがとう - アレックス

4

4 に答える 4

0

の前に何も出力してはなりませんheader()

リダイレクトの前にすべての出力を削除します。

于 2013-07-30T18:13:37.947 に答える
0

出力が書き込まれる前にのみヘッダー関数を使用できます。基本的にスクリプトの冒頭で

if ($_POST['submit']) {
    if (mail ($to, $subject, $body, $from)) { 
        header();
    } else { 
        echo '<p><center><br><img src="images/cat.jpg"><br><br><br><font size="4" face="Tw Cen MT">Something went wrong, go back and try again! You will now be redirected to the home page.</font></center></p</p>'; 
    }
}
于 2013-07-30T18:13:50.000 に答える
0

PHPでは、使用echo()する前に使用していますheader()。ページにコンテンツを出力すると、事実上 HTTP ヘッダーが閉じられます。関数を再度使用しようとするとheader()、コンテンツの前にヘッダーを送信する必要があるため、そのメッセージがエラーとして表示されます。

meta-refresh実際にページのコンテンツを数秒間表示させたい場合は、ページの HTML ヘッダーでa を使用できます。

<meta http-equiv="refresh" content="3;url=/index.html">
于 2013-07-30T18:14:50.003 に答える