2016-06-01 16 views
-1

残念ながら、他の質問では残念ながらその一部が似ているように見えますが、回答を見つけることができませんでした。私はphpmailerを初めて使っていますが、以下のコードを使用してsmtpを通してメールを正常に送信できました。しかし、私はフィールドを空にして電子メールを送信しないようにしたいが、それを行うための適切なsintaxを見つけることができません。フィールドが空であるか、フィールドを必要とするようにする方法については、 (私はクライアント側の検証を行う方法を知っていますが、サーバー側は問題です)。以下を参照してください:phpmailerフィールドが空であるかどうかを確認する方法sintax

<?php 
if(isset($_POST['submit'])) { 
$message= 
'Name: '.$_POST['name'].'<br /> 
Subject: '.$_POST['subject'].'<br /> 
Email: '.$_POST['email'].'<br /> 
Message: '.$_POST['message'].''; 
require "PHPMailer-master/class.phpmailer.php";  
$mail = new PHPMailer();  
require "smtp.php"; 
$mail->SetFrom($_POST['email'], $_POST['name']); 
$mail->AddReplyTo($_POST['email'], $_POST['name']); 
$mail->Subject = "Message from www"; 
$mail->MsgHTML($message); 
$mail->AddAddress("[email protected]", " First receipient"); 
$mail->AddCC("[email protected]", "Second receipient"); 
$result = $mail->Send(); 
$message = $result ? '<div class="alert alert-success" role="alert"> Message has been sent ! </div>': '<div class="alert alert-danger" role="alert"><strong>Error!</strong> !</div>'; 
unset($mail); 
} 
?> 

答えて

1

if文にいくつかのチェックを付けるだけで済みます。 empty()はあなたがフィールドが満たされていることを確認し、有効にするために、あなたのif文の前にいくつかの検証を行うと、そうでない場合は、エラーをスローすることができ、空をチェックするための素晴らしいヌル、または0フィールド

if(isset($_POST['submit']) 
    && !empty($_POST['name']) 
    && !empty($_POST['subject']) 
    && !empty($_POST['email']) 
    && !empty($_POST['message'])) { 

です。

+0

ありがとうございました。完璧に動作します。 – Aleksandar

0

@anyberが示唆していることに従ってください。私はちょうどフォローアップし、あなたのコードに基づいて、これは私たちの連絡先のように見えるようにしたいと思います。

フォームに入力されたメールにfromを設定したくない場合は、そのメールアドレスに変更する必要があります。から他人のメールを送信元に設定すると、多くの問題が発生する可能性があります。そのユーザーにDMARCや他の認証方法が有効になっている場合は、このリソースをご覧ください。

+0

コメントとsuugestionをありがとうが、確かめるために、$ mail-> SetFrom($ _ POST ['email']、$ _POST ['name']);を参照してください。 ? – Aleksandar

+0

はい、 '$ mail-> SetFrom( 'あなたのEメールアドレス'、 'あなたの名前')に変更してください;そして、件名の行で 'CU - あなたが望むものは何でも'これで始まります。お問い合わせフォーム。 – Henry

+0

ありがとうございますが、私はあなたが意味することを理解していません "次に、件名に" CU "で始める – Aleksandar

関連する問題