2016-05-26 4 views
1

私はちょうどコーディングを始め、Dreamweaverを使ってウェブページをまとめています。私はフォームから実行され、htmlページのボタンを送信する私の電子メールコーディングでPHPページを作成しました。私は毎日ブランクの電子メールを毎日受け取ります。これは明らかに、検証コードを追加する必要があることを意味します。コーディングを追加しようとしましたが、問題は解決しません。フォームは空白のままでも依然として送信されます。PHPで電子メールの投稿を検証するにはどうすればよいですか?

以下は私の現在のコーディングです。

<?php 
 

 
if(!filter_var($_POST['CustomerEmail'], FILTER_VALIDATE_EMAIL)) { $valerrors[] = "The email address you supplied is invalid." ;} 
 
$customeremail=$_POST['CustomerEmail']; 
 
$email='[email protected]'; 
 
$custfirst=$_POST['CustomerFirstName']; 
 
$custlast=$_POST['CustomerLastName']; 
 
$custphone=$_POST['CustomerNumber']; 
 
$custaddress=$_POST['CustomerAddress']; 
 
$custcity=$_POST['CustomerCity']; 
 
$custstate=$_POST['CustomerState']; 
 
$custrequest=$_POST['CustomerService']; 
 

 
$subject='Service Request'; 
 

 
$body = <<<EOD 
 
<br><hr><br> 
 
Email: $customeremail <br> 
 
First Name: $custfirst <br> 
 
Last Name: $custlast <br> 
 
Phone: $custphone <br> 
 
Address: $custaddress <br> 
 
City: $custcity <br> 
 
State: $custstate <br> 
 
Request: $custrequest <br> 
 
EOD; 
 

 

 

 
$headers = "From: $customeremail\r\n"; 
 
$headers .= "Content-type: text/html\r\n"; 
 
$Send = mail($email, $subject, $body, $headers); 
 
$confirmation = <<<EOD 
 
<html>"Thanks for Submitting."</html> 
 
EOD; 
 
echo"$confirmation"; 
 

 

 

 
?>

それは私が間違った場所にif文を配置することだということが可能です。誰かが自分のコーディングを修正して、確認ページが読み込まれず、顧客の電子メールが空白のままになっても電子メールが送信されないようにすることはできますか? http://php.net/manual/en/function.filter-var.php

答えて

0

すべてのユーザー入力に同様の検証を適用します。

0

あなたが最初に$valerrors = [];を初期化などの条件を使用できます:あなたがすべきことを

if (empty($valerrors)) { 
    $headers = "From: $customeremail\r\n"; 
    $headers .= "Content-type: text/html\r\n"; 
    $Send = mail($email, $subject, $body, $headers); 
    $confirmation = <<<EOD 
    <html>"Thanks for Submitting."</html> 
    EOD; 
} 

注意あなたがこの

if (filter_var('[email protected]', FILTER_VALIDATE_EMAIL)) { 
    echo 'VALID'; 
} else { 
    echo 'NOT VALID'; 
} 

はこちらをご覧のようにチェックする必要があり

0

私はuはあなたの形式でメールを入力する「必要」属性を追加することができると思うのHTML

<input type="email" name="CustomerEmail" required> 

ので、HTMLは文句を言わないあなたはありがとうござい値

+1

を提供するまで、あなたが提出することができます!これまでのところ、これは助けになりました。私はそのような単純なコマンドをどう見落としたか分かりません。私はこれが私が毎日続けている自動メールを止めるかどうか分からない。私は待たなければならない。再度、感謝します。 – DViera

関連する問題