以下のサイト様を参考にreCAPTCHAの実装をしたところフォームアクションの出力先にて403エラーが発生します。
原因のお分かりの方いらっしゃったらご指摘お願い致します。
〜追記〜
フォーム
UTF
1<!DOCTYPE html> 2<html lang="ja"> 3<meta charset="utf-8"> 4<head> 5<title>会員登録</title> 6<link rel="stylesheet" href="style.css"> 7 8<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css"> 9 10 <script src="https://www.google.com/recaptcha/api.js"></script> 11 <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script> 12 13</head> 14<body> 15<div align="right"> 16<a href="index.php">トップページ</a><br> 17</div> 18<center> 19<h1>仮会員登録</h1> 20</center> 21<Hr Align="center" Width="500" Size="5" Color="000000"> 22 23 24<div class="col-xs-6 col-xs-offset-3"> 25<h2>仮メールの送信</h2> 26 27<form action="registration_mail_check.php" method="post"> 28 29<p>メールアドレス:<input type="text" name="mail" size="50"></p><br> 30 31<input type="hidden" name="token" value="<?=$token?>"> 32<center> 33<div class="g-recaptcha" data-callback="clearcall" data-sitekey="サイトキー"></div> 34</center> 35<input type="submit" value="登録する" name="button" class="recaptcha btn-attention-block-large" disabled> 36</form> 37 38 <script type="text/javascript"> 39 function clearcall(code) { 40 if(code !== ""){ 41 $(':submit[name=button]').removeAttr("disabled"); 42 } 43 } 44 </script> 45 46</div> 47</body> 48</html>
出力先
UTF
1session_start(); 2header("Content-type: text/html; charset=utf-8"); 3 4//クリックジャッキング対策 5header('X-FRAME-OPTIONS: SAMEORIGIN'); 6//データベース接続 7require_once("db.php"); 8$dbh = db_connect(); 9//エラーメッセージの初期化 10$errors = array(); 11 12$recaptcha = htmlspecialchars($_POST["g-recaptcha-response"],ENT_QUOTES,'UTF-8'); 13if(isset($recaptcha)){ 14 $captcha = $recaptcha; 15}else{ 16 $captcha = ""; 17 echo "captchaエラー"; 18 exit; 19} 20$secretKey = "シークレットキー"; 21$resp = @file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secretKey}&response={$captcha}"); 22$resp_result = json_decode($resp,true); 23if(intval($resp_result["success"]) !== 1) { 24//認証失敗時の処理をここに書く 25 header("Location: registration_mail_form.php"); 26 exit; 27}else{ 28//認証成功時の処理をここに書く 29//以下 データベース登録、メール送どなど 30} 31?>
回答1件
あなたの回答
tips
プレビュー