2016-06-01 23 views
1

私はPHPの面で全く新しい初心者です。事は、空の入力が私の電子メールに送信されるのを防ぐ方法を知らないということです。私は1つの入力フォームを持っており、私はそれを検証したいと思います。私は本当に解決策を探しましたが、残念ながらそれは機能しません。私は誰かが私を助けることができるといいです私も(私は別の質問で見た何かを、私が推測働いていない)、これを使用しています私のフォーム(html&php)で空の入力を防ぐ方法

<form id="emailListing" class="form-horizontal" action="index.php" method="POST" enctype="multipart/form-data" name="sentMessage" data-fv-framework="bootstrap" data-fv-icon-valid="glyphicon glyphicon-ok" data-fv-icon-invalid="glyphicon glyphicon-remove" data-fv-icon-validating="glyphicon glyphicon-refresh"> 
    <div class="form-group"> 
    <div class="col-xs-8 col-lg-9"> 
     <input id="email" class="form-control" name="email" type="email" placeholder="メールアドレス" data-fv-emailaddress-message="This is not a valid email" /> 
    </div> 
    <input id="submit" name="submit" type="submit" value="Submit" class="btn btn-default col-xs-4 col-lg-3"> 
    </div> 
</form> 

<?php 
if (isset($_POST["submit"])) { 
    $email = $_POST['email']; 
    $from = 'Felipe Felix'; 
    $to = '[email protected]'; 
    $subject = 'My email listing'; 

    $body = "E-mail: $email"; 

    if (mail ($to, $subject, $body, $from)) { 
    header("Location: index.html/success.html"); 
    } else { 
    header("Location: index/error.html"); 
    } 
} 
?> 

そして、私のHTML:私はここに私のコードを入れます

<script> 
    $(document).ready(function() { 
    $('#emailListing').formValidation(); 
    }); 
</script> 

答えて

0

あなたは空のフィールドに、クライアント側とサーバー側の両方を再確認することができます

クライアント側をsubmis前にjqueryのを使用してシオン:提出から後のPHPによる

$(document).ready(function() { 
    $("#emailListing").on('submit', function(e) { 
     e.preventDefault(); //to prevent submit before check 

     if ($("#email").val()!=''){ 
      $("#emailListing").submit(); 
     } 
     else 
     { 
     alert('Please fill email field'); 
     } 
    }); 
}); 

サーバ側:空ではない必要があり、あなたの入力 - (HTML5機能)にしてrequired='required'のみrequired属性を持っている必要があり、HTMLページの

if (!empty($_POST[email])){ 
// Do something 
} 
+0

こんにちは、アリ。私は、入力なしでメッセージを送信しようとしているときにエラーのメッセージが表示されています。これは大丈夫です!しかし、今私が有効な電子メールを入力した場合、何も起こりません。たぶん私はPHPで何かを見逃しています。あなたの提案を使用して私の投稿を更新するつもりです。 –

+0

私はあなたの質問を前のバージョンに戻し、新しい質問をして他の人に役立つように答えます。次に新しい質問のリンクを投稿してください。 –

+0

さて、それをやりました。同じ問題で新しい質問をするのは良い考えだとは思わない。 –

2

フォームを送信し、あなたはフロントエンドでjQueryのバリデータにしたい場合は、多くのプラグインを持つことができますが、あなたはカントーを含める必要が

<input id="email" class="form-control" name="email" type="email" placeholder="メールアドレス" data-fv-emailaddress-message="This is not a valid email" required /> 

のようにそれを使用しながら、あなただけ

<?php 
if (isset($_POST["submit"])) { 
    $email = $_POST['email']; 
    if(empty($email)) 
    { 
     header("Location: index/error.html"); 
    } 
    $from = 'Felipe Felix'; 
    $to = '[email protected]'; 
    $subject = 'My email listing'; 

    $body = "E-mail: $email"; 

    if (mail ($to, $subject, $body, $from)) { 
     header("Location: index.html/success.html"); 
    } else { 
     header("Location: index/error.html"); 
    } 
} 
?> 
+0

こんにちはVeshraj、あなたの返信ありがとう!残念ながら、それは働かなかった。私は答えを送った他の人によって送られた返答で私の質問を編集した。彼の答えで、私は空の入力のエラーメッセージを見ることができましたが、今は電子メールを送信できません。おそらくあなたはどこにエラーがあるか知っていますか? –

1

これを試してみてください。..

<?php 
     if (isset($_POST["submit"])) { 
     $email = $_POST['email']; 
     $from = 'Felipe Felix'; 
     $to = '[email protected]'; 
     $subject = 'Contact'; 
$body = "E-mail: $email"; 

if ($_POST['email']){ 
    if (mail ($to, $subject, $body, $from)) { 
    header("Location: index.html"); 
} 
else { 
    header("Location: index.html"); 
    } 
    } 
else{  
header("Location: index/error.html"); 
} 
} 
?> 
+0

こんにちは@abhishek!私の質問に時間を費やしてくれてありがとう。私はまだ空のメッセージを送信することができましたが、私はあなたの提案を使用して、エラーメッセージを正しく取得することができました。私は別の解決策を見つけ、すぐにここに掲載します。 –

0

ものが提案、他のユーザーのいくつかを試した後、あるに必要な検証のためのバックエンドでのHTMLページ内のSEコード<script>タグを使用して、あなたがそれを入力すると電子メールアドレスを送信するフォームになりますが、たとえ空にしてもそれを送信します(エラーページが来て、buは電子メールを送信します)。だから、私は別の方法を試して、それは働いた!私のフォームでは、ユーザーが空の入力を送信するのを防ぎ、ユーザーが有効な電子メールアドレスを送信した場合にフィードバックを返します。構文で100%正しいのかどうかわかりませんが、エラーは出ません。サポートいただきありがとうございます!

JS

PHP

<?php 
if (isset($_POST["submit"])) { 
    $email = $_POST['email']; 
    $from = 'Me'; 
    $to = '[email protected]'; 
    $subject = 'My Subject'; 
    $body = "E-mail Address: $email"; 

    if ($_POST['email']){ 
    if (mail ($to, $subject, $body, $from)) { 
     header("Location: http://website.com/success.html"); 
    } 
    else{ 
     header("Location: http://website.com/error.html"); 
    } 
    } 
    else{ 
    header("Location: http://website.com/error.html"); 
    } 
} 
?> 

HTML(私は、ブートストラップを使用しています、なぜすべてのこれらのクラスそれはだ)

<form id="emailListing" class="form-horizontal" action="index.php" method="POST" enctype="multipart/form-data" name="sentMessage" onsubmit="return validateForm()"> 
    <div class="form-group"> 
    <div class="col-xs-8 col-lg-9"> 
     <input id="email" class="form-control" name="email" type="email" placeholder="E-mail Address" /> 
    </div> 
    <input id="submit" name="submit" type="submit" value="Subscribe" class="btn btn-default col-xs-4 col-lg-3"> 
    </div> 
</form> 

:私はここに私のコードを入れます

<script> function validateForm() { var x = document.forms["sentMessage"]["email"].value; if (x == null || x == "") { alert("メールアドレスを入力してください"); return false; } } </script> 
関連する問題