grousso

recaptcha

Feb 22nd, 2021 (edited)
1,390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 9.69 KB | None | 0 0
  1. //your website's form
  2. <form action="https://mydomain/verify-recaptcha.php" method="post" name="Leads"><input name="publicid" type="hidden" value="" />
  3. <p> </p>
  4. <p> </p>
  5. <p><label>Firstname</label></p>
  6. <p><input name="firstname" type="text" value="" /><label></label></p>
  7. <p><label>Lastname</label></p>
  8. <p><input name="lastname" required="true" type="text" value="" /></p>
  9. <p><label>Phone</label></p>
  10. <p><input name="phone" type="text" value="" /></p>
  11. <p><label>Company</label></p>
  12. <p><input name="company" required="true" type="text" value="" /></p>
  13. <p><label>Email</label></p>
  14. <p><input name="email" required="true" type="email" value="" /></p>
  15. <p><script src="https://www.google.com/recaptcha/api.js"></script></p>
  16. <div class="g-recaptcha" data-sitekey="YOUR RECAPTCHA SITE KEY HERE"> </div>
  17. <p><input type="submit" value="Submit" /></p>
  18. </form>
  19.  
  20.  
  21.  
  22.  
  23. //Make a second file for example https://mydomain/verify-recaptcha.php and paste
  24.  
  25. <?php
  26.  
  27.     $response = $_POST["g-recaptcha-response"];
  28.     $url = 'https://www.google.com/recaptcha/api/siteverify';
  29.     $data = array(
  30.         'secret' => 'YOUR RECAPTCHA SECRET KEY HERE',
  31.         'response' => $_POST["g-recaptcha-response"]
  32.     );
  33.     $options = array(
  34.         'http' => array (
  35.             'method' => 'POST',
  36.             'content' => http_build_query($data)
  37.         )
  38.     );
  39.     $context  = stream_context_create($options);
  40.     $verify = file_get_contents($url, false, $context);
  41.     $captcha_success=json_decode($verify);
  42.     if ($captcha_success->success==false) {
  43.    
  44.     header("Location: https://mydomain/capcha-try-again/");
  45.        
  46.     } else if ($captcha_success->success==true) {
  47.         //echo "<p>You are not not a bot!</p>";
  48.     }
  49.  
  50. ?>
  51.  
  52. //for 7.2 version paste here your vtiger autogenerated webform code up to <table><tbody> tag
  53.  
  54.  
  55.    
  56.  
  57. //Your <table><tbody> tag should be  this
  58.  
  59.    
  60. <table><tbody>
  61.  
  62. <input type="hidden" name="firstname" data-label="" value="<?php echo $_POST['firstname'];?>"></td></tr>
  63. <input type="hidden" name="phone" data-label="" value="<?php echo $_POST['phone'];?>"></td></tr>
  64. <input type="hidden" name="lastname" data-label="" value="<?php echo $_POST['lastname'];?>" required=""></td></tr>
  65. <input type="hidden" name="company" data-label="" value="<?php echo $_POST['company'];?>"></td></tr>
  66. <input type="hidden" name="email" data-label="" value="<?php echo $_POST['email'];?>"></td></tr></tbody></table>
  67. <input type="submit" style="height: 0px; width: 0px; border: none; padding: 0px;" hidefocus="true" /></form>
  68.  
  69.  
  70. <script  type="text/javascript">window.onload = function() { var N=navigator.appName, ua=navigator.userAgent, tem;var M=ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];M=M? [M[1], M[2]]: [N, navigator.appVersion, "-?"];var browserName = M[0];var form = document.getElementById("__vtigerWebForm"), inputs = form.elements; form.onsubmit = function() { var required = [], att, val; for (var i = 0; i < inputs.length; i++) { att = inputs[i].getAttribute("required"); val = inputs[i].value; type = inputs[i].type; if(type == "email") {if(val != "") {var elemLabel = inputs[i].getAttribute("label");var emailFilter = /^[_/a-zA-Z0-9]+([!"#$%&()*+,./:;<=>?\^_`{|}~-]?[a-zA-Z0-9/_/-])*@[a-zA-Z0-9]+([\_\-\.]?[a-zA-Z0-9]+)*\.([\-\_]?[a-zA-Z0-9])+(\.?[a-zA-Z0-9]+)?$/;var illegalChars= /[\(\)\<\>\,\;\:\"\[\]]/ ;if (!emailFilter.test(val)) {alert("For "+ elemLabel +" field please enter valid email address"); return false;} else if (val.match(illegalChars)) {alert(elemLabel +" field contains illegal characters");return false;}}}if (att != null) { if (val.replace(/^\s+|\s+$/g, "") == "") { required.push(inputs[i].getAttribute("label")); } } } if (required.length > 0) { alert("The following fields are required: " + required.join()); return false; } var numberTypeInputs = document.querySelectorAll("input[type=number]");for (var i = 0; i < numberTypeInputs.length; i++) { val = numberTypeInputs[i].value;var elemLabel = numberTypeInputs[i].getAttribute("label");var elemDataType = numberTypeInputs[i].getAttribute("datatype");if(val != "") {if(elemDataType == "double") {var numRegex = /^[+-]?\d+(\.\d+)?$/;}else{var numRegex = /^[+-]?\d+$/;}if (!numRegex.test(val)) {alert("For "+ elemLabel +" field please enter valid number"); return false;}}}var dateTypeInputs = document.querySelectorAll("input[type=date]");for (var i = 0; i < dateTypeInputs.length; i++) {dateVal = dateTypeInputs[i].value;var elemLabel = dateTypeInputs[i].getAttribute("label");if(dateVal != "") {var dateRegex = /^[1-9][0-9]{3}-(0[1-9]|1[0-2]|[1-9]{1})-(0[1-9]|[1-2][0-9]|3[0-1]|[1-9]{1})$/;if(!dateRegex.test(dateVal)) {alert("For "+ elemLabel +" field please enter valid date in required format"); return false;}}}var inputElems = document.getElementsByTagName("input");var totalFileSize = 0;for(var i = 0; i < inputElems.length; i++) {if(inputElems[i].type.toLowerCase() === "file") {var file = inputElems[i].files[0];if(typeof file !== "undefined") {var totalFileSize = totalFileSize + file.size;}}}if(totalFileSize > 52428800) {alert("Maximum allowed file size including all files is 50MB.");return false;}}; document.forms[0].submit();}</script>
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77. Full example of https://mydomain/verify-recaptcha.php content
  78.  
  79.  
  80.  
  81. <?php
  82.     $response = $_POST["g-recaptcha-response"];
  83.     $url = 'https://www.google.com/recaptcha/api/siteverify';
  84.     $data = array(
  85.         'secret' => 'YOUR RECAPTCHA SECRET',   // <= There your google recaptcha secret
  86.         'response' => $_POST["g-recaptcha-response"]
  87.     );
  88.     $options = array(
  89.         'http' => array (
  90.             'method' => 'POST',
  91.             'content' => http_build_query($data)
  92.         )
  93.     );
  94.     $context  = stream_context_create($options);
  95.     $verify = file_get_contents($url, false, $context);
  96.     $captcha_success=json_decode($verify);
  97.     if ($captcha_success->success==false) {
  98.    
  99.     header("Location: https://your-domain/capcha-try-again-page/"); // <=  change make a simple go back page
  100.        
  101.     } else if ($captcha_success->success==true) {
  102.        
  103.     }
  104.  
  105. ?>
  106.    
  107. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><form id="__vtigerWebForm" name="Leads" action="https://MYCRMDOMAIN.ORG/modules/Webforms/capture.php" method="post" accept-charset="utf-8" enctype="multipart/form-data"><input type="hidden" name="__vtrftk" value="sid:HERE SOME TEXT,HERE SOME TEXT TOO AFTER THE COMMA"><input type="hidden" name="publicid" value="HERE WEBFORMS PUBLIC ID"><input type="hidden" name="urlencodeenable" value="1"><input type="hidden" name="name" value="Leads">
  108.  
  109. <table><tbody>
  110.  
  111. <input type="hidden" name="firstname" data-label="" value="<?php echo $_POST['firstname'];?>"></td></tr>
  112. <input type="hidden" name="phone" data-label="" value="<?php echo $_POST['phone'];?>"></td></tr>
  113. <input type="hidden" name="lastname" data-label="" value="<?php echo $_POST['lastname'];?>" required=""></td></tr>
  114. <input type="hidden" name="company" data-label="" value="<?php echo $_POST['company'];?>"></td></tr>
  115. <input type="hidden" name="email" data-label="" value="<?php echo $_POST['email'];?>"></td></tr></tbody></table>
  116. <input type="submit" style="height: 0px; width: 0px; border: none; padding: 0px;" hidefocus="true" /></form>
  117.  
  118.  
  119. <script  type="text/javascript">window.onload = function() { var N=navigator.appName, ua=navigator.userAgent, tem;var M=ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];M=M? [M[1], M[2]]: [N, navigator.appVersion, "-?"];var browserName = M[0];var form = document.getElementById("__vtigerWebForm"), inputs = form.elements; form.onsubmit = function() { var required = [], att, val; for (var i = 0; i < inputs.length; i++) { att = inputs[i].getAttribute("required"); val = inputs[i].value; type = inputs[i].type; if(type == "email") {if(val != "") {var elemLabel = inputs[i].getAttribute("label");var emailFilter = /^[_/a-zA-Z0-9]+([!"#$%&()*+,./:;<=>?\^_`{|}~-]?[a-zA-Z0-9/_/-])*@[a-zA-Z0-9]+([\_\-\.]?[a-zA-Z0-9]+)*\.([\-\_]?[a-zA-Z0-9])+(\.?[a-zA-Z0-9]+)?$/;var illegalChars= /[\(\)\<\>\,\;\:\"\[\]]/ ;if (!emailFilter.test(val)) {alert("For "+ elemLabel +" field please enter valid email address"); return false;} else if (val.match(illegalChars)) {alert(elemLabel +" field contains illegal characters");return false;}}}if (att != null) { if (val.replace(/^\s+|\s+$/g, "") == "") { required.push(inputs[i].getAttribute("label")); } } } if (required.length > 0) { alert("The following fields are required: " + required.join()); return false; } var numberTypeInputs = document.querySelectorAll("input[type=number]");for (var i = 0; i < numberTypeInputs.length; i++) { val = numberTypeInputs[i].value;var elemLabel = numberTypeInputs[i].getAttribute("label");var elemDataType = numberTypeInputs[i].getAttribute("datatype");if(val != "") {if(elemDataType == "double") {var numRegex = /^[+-]?\d+(\.\d+)?$/;}else{var numRegex = /^[+-]?\d+$/;}if (!numRegex.test(val)) {alert("For "+ elemLabel +" field please enter valid number"); return false;}}}var dateTypeInputs = document.querySelectorAll("input[type=date]");for (var i = 0; i < dateTypeInputs.length; i++) {dateVal = dateTypeInputs[i].value;var elemLabel = dateTypeInputs[i].getAttribute("label");if(dateVal != "") {var dateRegex = /^[1-9][0-9]{3}-(0[1-9]|1[0-2]|[1-9]{1})-(0[1-9]|[1-2][0-9]|3[0-1]|[1-9]{1})$/;if(!dateRegex.test(dateVal)) {alert("For "+ elemLabel +" field please enter valid date in required format"); return false;}}}var inputElems = document.getElementsByTagName("input");var totalFileSize = 0;for(var i = 0; i < inputElems.length; i++) {if(inputElems[i].type.toLowerCase() === "file") {var file = inputElems[i].files[0];if(typeof file !== "undefined") {var totalFileSize = totalFileSize + file.size;}}}if(totalFileSize > 52428800) {alert("Maximum allowed file size including all files is 50MB.");return false;}}; document.forms[0].submit();}</script>
  120.  
  121.  
  122.  
Add Comment
Please, Sign In to add comment