2017-08-08 19 views
0

愚かな質問を申し訳ありませんが(私はちょうど始めています)、PHPスクリプトの電話フィールドが私が受け取る電子メールに表示されない理由をよく理解できません。私はフィールドフィールドを空にしていればエラーメッセージがうまくいきますが、実行した場合、受信したメールにはフィールドが含まれません。ここでメールスクリプトはすべてのフィールドを送信しません

は、PHPのメールスクリプトは次のとおりです。事前に

<?php 

require('email_config.php'); 

// sender information 
$name = trim($_POST['name']); 
$phone = trim($_POST['phone']); 
$email = trim($_POST['email']); 
$message = trim($_POST['message']); 
$error = ""; 

// check sender information 
$pattern = "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$^"; 

if(!preg_match_all($pattern, $email, $out)) { 
    $error = $invalid_email; // for invalid email 
} 

if(!$email) { 
    $error = $invalid_email; // for empty email field 
} 

if (!$phone) { 
    $error = $invalid_phone; // for empty phone field 
} 

if(!$message) { 
    $error = $invalid_message; // for empty message field 
} 

if (!$name) { 
    $error = $invalid_name; // for empty name field 
} 

// email header 

$headers = "From: ".$name." <".$email.">\r\nReply-To: ".$email.""; 

if (!$error){ 

    // sending email 
    $sent = mail($to_email,$subject,$message,$headers); 

    if ($sent) { 
      // if message sent successfully 
      echo "SEND"; 
     } else { 
      // error message 
      echo $sending_error; 
     } 
} else { 
    echo $error; // error message 
} 
?> 

ありがとう!

+4

をより多くを学ぶために? – Machavity

+0

その電子メール正規表現は、 'example + address @ gmail.com'や' example @ some.museum'のような完全に有効なアドレスを大量に拒否します。 – tadman

+1

うん、 '$ phone'は' $ message'の一部にはなりません –

答えて

1

は、メッセージに電話機を追加スキップのように、あなたのメッセージ この

$message = trim($_POST['message']).' \n Phone: '.trim($_POST['phone']); 

のようなものでなければなりませんルックスあなたはので、私は新しい行の特殊文字/ Nを使用プラン・テキストの電子メールで送信されているように思えます。

`$のphone`はどこでも使用されていないので、たぶん特別な文字列の文字について http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single

関連する問題