私のウェブサイトでは、お問い合わせフォームを使用しているため、多くの問題が発生します。私はすでにmail()
exim4を使用して64ビットDebianでPHP関数を実際に動作させることにある程度の時間を費やしましたが、ついにそれを実行し、メールが送信されます。
今、私は別の問題を経験していますが、それを解決する方法がわかりません。まず第一に、コード。
<?php
$your_email = 'blahblah@gmail.com';
session_start();
$errors = '';
$name = '';
$visitor_email = '';
$user_message = '';
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$user_message = $_POST['message'];
///------------Do Validations-------------
if (empty($name) || empty($visitor_email)) {
$errors .= "\n Name and Email are required fields. ";
}
if (IsInjected($visitor_email)) {
$errors .= "\n Bad email value!";
}
if (empty($_SESSION['6_letters_code']) || strcmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0) {
//Note: the captcha code is compared case insensitively.
//if you want case sensitive match, update the check above to
// strcmp()
$errors .= "\n The captcha code does not match!";
}
if (empty($errors)) {
//send the email
$to = $your_email;
$subject = "New form submission";
$from = $your_email;
$body = "A user $name submitted the contact form:\n" . "Name: $name\n" . "Email: $visitor_email \n" . "Message: \n " . "$user_message\n";
$headers = "From: $from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
if (mail($to, $subject, $body, $headers)) {
header('Location: http://www.lolstreamgallery.net/thank-you.html');
} else {
$errors .= "\n E-Mail coulnd be sent!";
}
}
}
問題は、ヘッダーリダイレクトが機能していないことです。はmail()
機能するので、ヘッダーを実行する必要があります。ファイルをローカルでテストすると、リダイレクトが発生します。
お問い合わせフォームをテストしたい場合は、ここで行うことができます。
ファイルコード全体は次のとおりです。
EDIT2:
現在、リダイレクトを機能させたIan Brindleyの関数を使用していますが、ヘッダー関数は使用していません。ヘッダーの前に出力があるようです。