2011-06-24 7 views
0

私はisset($ a)がilustrationのためだけであることを知っています。私はこのコードを適用すると、絶対に何もしません(ページをリフレッシュします)。だから私はそれを検証するのですか?このケースでreCAPCHAを検証するにはどうすればよいですか?

<?php 
if (isset($a)) { 

// entering data in database 

if($result = mysql_query($sql ,$db)) { 
// some code here 

} else { 
echo "ERROR: ".mysql_error(); 
} 
} else { 
?> 
<form method='post' action='' name='form' id='form' enctype='multipart/form-data'> 
<?php 
require_once('recaptchalib.php'); 
// Get a key from https://www.google.com/recaptcha/admin/create 
$publickey = "mypublickey"; 
$privatekey = "myprivatekey"; 

# the response from reCAPTCHA 
$resp = null; 
# the error code from reCAPTCHA, if any 
$error = null; 

# was there a reCAPTCHA response? 
if ($_POST["recaptcha_response_field"]) { 
     $resp = recaptcha_check_answer ($privatekey, 
             $_SERVER["REMOTE_ADDR"], 
             $_POST["recaptcha_challenge_field"], 
             $_POST["recaptcha_response_field"]); 

if ($resp->is_valid) { 
$a = ''; 
     } else { 
       # set the error code so that we can display it 
       $error = $resp->error; 
     } 
} 
echo recaptcha_get_html($publickey, $error); 
?> 
<input type="submit" id='button2' name="Submit" value="Submit it!" class="button2"> 

</form> 
<?php 
} 
?> 

答えて

3

まず第一に:フォームが送信された天気を、あなたは$_SERVER -arrayのREQUEST_METHODキーをチェックすることができ確認します。 PHP.netによると、これはページにアクセスするために使用されたリクエストメソッドを示します。 「GET」、「HEAD」、「POST」、「PUT」のようなものである。したがって、次の行はこのトリックを行います:if ($_SERVER['REQUEST_METHOD'] == 'POST') {

第2に、reCAPTCHA Developer Guildeは、キャプチャイメージを表示し、キャプチャが正しく埋め込まれているかどうかを正確に示す方法を説明しています。コードサンプルを少し修正したので、どのように進めるべきかを知ることができます。厳しいテストされていない!

<?php 
/* Require the recaptcha library, file-globally */ 
require_once('recaptchalib.php'); 

/* Get a key from https://www.google.com/recaptcha/admin/create */ 
$publickey = "mypublickey"; 
$privatekey = "myprivatekey"; 

/* Check wether the form was submitted */ 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

    /* Check wether the captcha was correct */ 
    $resp = recaptcha_check_answer($privatekey, $_SERVER['REMOTE_ADDR'], $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field']); 

    /* Was it ? */ 
    if (! $resp->is_valid) { 

     /* What happens when the CAPTCHA was entered incorrectly */ 
     die("The reCAPTCHA wasn't entered correctly. Go back and try it again. (reCAPTCHA said: " . $resp->error . ")"); 

    } else { 

     /* Entering data in database */ 
     if ($result = mysql_query($sql, $db)) { 

      /* Some code here */ 

     } else { 

      echo "ERROR: ".mysql_error(); 

     } 

    } 

/* The form isn't posted yet, so we show the form */ 
} else { 

    ?> 

    <form method='post' action='' name='form' id='form' enctype='multipart/form-data'> 
     <?php 
     /* This is all we need to display the recaptcha */ 
     echo recaptcha_get_html($publickey); 
     ?> 
     <input type="submit" id='button2' name="Submit" value="Submit it!" class="button2"> 
    </form> 

    <?php 
} 
?> 
+0

ありがとう – faq

関連する問題