2012-04-22 10 views
2

私の簡単なPHPの電子メールの連絡フォームの作業に問題があります。エラーは生成されず返されますが、メールは受信されません。簡単な連絡フォームのためのデバッグPHP

これは私のフォームhttp://bitstream.ca/beta2/contact.html

であると私は(もちろん私の正しい電子メールで)

を使用していますPHPは、誰もが以下のフォームのコードでエラーをすべて見ることができますか? 一般的なデバッグ手順は何ですか? ありがとうございます!

<?php 
$errors = ''; 
$myemail = '[email protected]';//<-----Put Your email address here. 
if(empty($_POST['name']) || 
    empty($_POST['email']) || 
    empty($_POST['message'])) 
{ 
    $errors .= "\n Error: all fields are required"; 
} 

$name = $_POST['name']; 
$email_address = $_POST['email']; 
$message = $_POST['message']; 

if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z {2,3})$/i", $email_address)) 
    { 
    $errors .= "\n Error: Invalid email address"; 
    } 
    if(empty($errors)) 
    { 
    header('Location: contact-form-thank-you.html'); 
    } 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
<title>Contact form handler</title> 
</head> 
<body> 
<!-- This page is displayed only if there is some error --> 
<?php 
    echo nl2br($errors); 
?> 
</body> 
</html> 
+2

オムを試すことができます...私は、任意の実際の 'メール()'の呼び出しが表示されませんそれはあなたが電子メールを受け取っていない理由です... – stealthyninja

+1

よく..電子メールを送信するはずのmail()関数(または同様の)への呼び出しはどこですか? –

答えて

0

あなたは

<?php 
$errors = array(); 
$myemail = '[email protected]'; // <-----Put Your email address here. 
$name = $_POST ['name']; 
$to = $_POST ['email']; 
$message = $_POST ['message']; 
$subject = "Sample Email"; 
$headers = "From: $myemail" . "\r\n" . "Reply-To: $myemail" . "\r\n" . 'X-Mailer: PHP/' . phpversion(); 

if (empty ($_POST ['name']) || empty ($_POST ['email']) || empty ($_POST ['message'])) { 
    $errors [] = "Error: all fields are required"; 
} 

if (! preg_match ("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z {2,3})$/i", $to)) { 
    $errors [] = "Error: Invalid email address"; 
} 

if (count ($errors) == 0) { 
    if (@mail ($to, $subject, $message, $headers)) { 
     $errors [] = "Can't send Email"; 
    } 
    header ('Location: contact-form-thank-you.html'); 
} 
?> 
<!DOCTYPE HTML> 
<html> 
<head> 
<title>Contact form handler</title> 
</head> 
<body> 
    <!-- This page is displayed only if there is some error --> 
<?php 
echo implode ("<br />", $errors); 
?> 
</body> 
</html> 
+0

これは完全に正しいわけではありませんが、if(@mail($件名、$件名、$メッセージ、$ヘッダ)){ –

0

実際にメールを送信するには、mail()関数(または他の郵送用PEARクラスなど)への呼び出しを追加する必要があります。ここを見て:http://php.net/manual/en/function.mail.php

0

をごif声明betwinこれを挿入します。

if(empty($errors)) { 
    mail($email,$subject,$message,$headers); 
    header('Location: contact-form-thank-you.html'); 
} 
関連する問題