0

私はphpについて何も知りませんが、少しの助けと調査で、Swift Mailerで機能する連絡先フォームを設定することができました. メッセージは問題なく送信されていますが、メッセージを送信した後、人々を thank_you.html ページにリダイレクトしたいと考えています。できることはすべて試しましたが、うまくいきません。私たちを手伝ってくれますか?コードは次のとおりです。

<?php

include("Swift/lib/swift_required.php"); 
$host = 'xxxxxx.xxxxxx@gmail.com';
$password = 'xxxxx'; 
$subject = "zapytanie ze strony"; 
$body = "Zglaszajacy: ".$_POST["fullname"]."\r\n";
$body .= "Telefon: ".$_POST["phone"]."\r\n";
$body .= "E-mail: ".$_POST["email"]."\r\n";
$body .= "Tresc: ".$_POST["description"]."\r\n";

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl') 
->setUsername($host)
->setPassword($password);

$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance($subject)
->setFrom(array($host => 'Klient')) 
->setTo(array('xxxxxxx@xxxx.gmail.com'=> 'xxxxxx'))
->setBody($body);

$result = $mailer->send($message); 
if ($result) 
{ 
    header('Location: http://www.xxxxx.org/thank_you.html'); 
}
echo $result;


?>

私はその部分を自分で追加しました:

if ($result) 
{ 
    header('Location: http://www.xxxxx.org/thank_you.html'); 
}

そしてそれは機能しません。メールは送信されますが、フォームで何も起こりません。それはただそこにとどまります。これで私を完全な素人のように扱ってください;)

4

1 に答える 1

0

のphpドキュメントからheader()

実際の出力が送信される前に、通常の HTML タグ、ファイル内の空白行、または PHP から header() を呼び出す必要があることに注意してください。include 関数、require 関数、または別のファイル アクセス関数を含むコードを読み取り、header() が呼び出される前に出力されるスペースまたは空の行があることは、非常に一般的なエラーです。単一の PHP/HTML ファイルを使用する場合にも、同じ問題が存在します。

への呼び出しに到達する前に、コードまたは含まれている迅速なメーラー コードによって空白が出力されている可能性がありますheader

ob_start()コードの最初で使用してから、最後で使用してみてくださいob_end_flush()

于 2012-06-24T11:27:55.940 に答える