0

わかりました、ここで我慢してください。

HTMLフォームコードを次のように設定しました...

<script type="text/javascript">
     var RecaptchaOptions = {
        theme : 'clean'
     };
</script>                                   
<form method="post" action="signup-form-1.php">
    <label for="Name">Name:</label><br />
    <input type="text" name="Name" id="Name" placeholder="Your Name" required="required" /><br /><br />

    <label for="Email">Email Address:</label><br />
    <input type="email" name="Email" id="Email" placeholder="Your E-mail address" required="required" /><br /><br />

     <label for="Phone">Phone Number</label>
    <input type="tel" name="Phone" id="tel" placeholder="Numbers and Hyphens allowed" required="required" /><br /><br />

    <!--<label for="Subject">Phone Number:</label><br />
    <input type="text" name="Subject" id="Subject" /><br /><br />-->

    <label for="Age">Age:</label><br />
    <input type="text" name="Age" id="Age" placeholder="How Old Are You?" required="required" /><br /><br />

    <label for="InterestedIn">What Tournament are you interested in?</label><br /><br />
        <input type="checkbox" name="InterestedIn[]" value="op1"><p class="check1">option 1</p>
        <input type="checkbox" name="InterestedIn[]" value="op2"><p class="check1">option 2</p>
        <input type="checkbox" name="InterestedIn[]" value="op3"><p class="check1">option 3</p>
        <input type="checkbox" name="InterestedIn[]" value="op4"><p class="check1">option 4</p>


    <label for="Message">Message:</label><br />
    <textarea name="Message" rows="20" cols="20" id="Message" placeholder="Additional Information"></textarea><br /><br />

    <script type="text/javascript" src="http://api.recaptcha.net/challenge?k=recaptcha key 1"></script>
    <noscript>
        <iframe src="http://api.recaptcha.net/noscript?k=recaptcha key 2" height="300" width="500" frameborder="0" title="CAPTCHA test"></iframe>
        <br />
        <label for="tswcaptcha">Copy and paste the code provided in above box here:</label><br />
        <textarea name="recaptcha_challenge_field" id="tswcaptcha" rows="3" cols="40"></textarea>
        <input type="hidden" name="recaptcha_response_field" value="manual_challenge" />
    </noscript>

    <input type="submit" name="submit" value="Submit" class="submit-button" />
    <input type="reset" name="reset" value="Reset" class="reset-button" />

</form>

私の recaptcha が表示され、単語を入力でき、公開鍵と秘密鍵を適切な場所に置き、すべてを取得できます。ここまでは順調ですね。

私のPHPコードは次のようになります....

<?php


$EmailFrom = Trim(stripslashes($_POST['Name'])); 
$EmailTo = "my.email@mail.com";
$Subject = 'Custom Subject Line here';
$Name = Trim(stripslashes($_POST['Name'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Phone = Trim(stripslashes($_POST['Phone'])); 
$Age = Trim(stripslashes($_POST['Age'])); 
$Message = Trim(stripslashes($_POST['Message'])); 
$InterestedIn = Trim(stripslashes($_POST['InterestedIn'])); 


// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Phone: ";
$Body .= $Phone;
$Body .= "\n";
$Body .= "Age: ";
$Body .= $Age;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";
$Body .= "InterestedIn: ";
$Body .= implode(", ", $_POST['InterestedIn']);
$Body .= "\n";


// send email 
$success = mail($EmailTo, $Subject, $Body, "From: $Name");



// redirect to success page 
if ($success){
  print "<meta http-

equiv=\"refresh\" content=\"0;URL=signup-thanks.htm\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=signup-error.htm\">";
}

?>

PHP がデータを解析し、電子メール形式で送信するようになりました。私はそれを受け取ることができ、コンマで区切られたチェックボックスのオプションも取得できます。そこにあるものはすべて問題ありません。

私が抱えている唯一の問題は、recaptcha が記入されていない場合でも、フォームが送信されることです。PHP ファイルの recaptcha を検証する必要があることを理解しています。問題は、それを行う方法がわからないことです。

私はこの時点で Web 開発の学生にすぎず、これまでに試したことのないことを試しています。BASIC コンタクト フォームと基本的な PHP は示されていますが、チェックボックス、内破、または検証はまだ扱っていません。これまでのところ、すべて自分で考え出しました。

誰かが私のコードを見て、PHP ファイルに検証関数を配置する方法を教えてください。詳細と仕様は大歓迎です。

過去数日間、この情報を自分で検索してみましたが、まだ理解できません。見つけた回答を自分のニーズに合わせて変更することはまだできません. まだ勉強してる。しかし、私はこれを行う必要があり、あなたの助けは大歓迎です.

熱心なn00bに同情してくれる親切な魂はいますか?

4

2 に答える 2

0

requiredHTML 側でこの問題を解決するには、 attrを使用できます。

例 :

<input type="hidden" name="recaptcha_response_field" value="manual_challenge" required/>

PHP 側でこの問題を解決するには、isset およびその他の文字列コントロールを使用できます。

例 :

if(isset($_GET['recaptcha_response_field']) && $_GET['recaptcha_response_field'] != "" && strlen($_GET['recaptcha_response_field']) > 5)
于 2013-09-30T20:14:49.683 に答える