Jump to content

Google recaptcha problem trying to integrate into my own system


justin7410

Recommended Posts

Hey guys,

 

i was trying to add google recaptcha to my login register system, for a spam defense and just to give it a more professional feel.

 

i already have my own conditional in my own system to make sure an email is not already used or to make sure a password is a certain length, etc.... 

 

i now want to add the existing code from google and add an additional conditional to make it flow as one.

 

my issue

 

so i followed the directions from goodle developers and when implementing the code by itself on a test page, i encounter no problems. i get the proper pass and fail, depending on what security code is entered.

 

when i move that same logic into my already created system i then get a consistent failure with no pass.

 

i am utterly confused as to why this is happening, if you guys can give me any suggestions that would be great.

 

my code

 

TEST PAGE .. WORKS FINE

<?php

include('include/init.php');
include('include/header.php');


require_once 'recaptchalib.php';
$privatekey = "6Lf5AeASAAAAAO5DJ1GcIAiwd8kkNbVBgrDrandom";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);


  if (!$resp->is_valid) {
echo 'FAILURE';
  } else {
echo 'SUCCESS'; // Your code here to handle a successful verification
  }

?>
   <tr>
   <form method='post' action='test.php' id='test'>
    <td class="register_td_left2"><span class="">Security Code:</span></td>
    <td valign="middle" style="padding-left:2px"> <?php
          require_once 'recaptchalib.php';
          $publickey = "6Lf5AeASAAAAAPue6LLdUDttmPDc-NbRHcnrandom"; // you got this from the signup page
          echo recaptcha_get_html($publickey);
        ?></td>
    <input type='submit' value='Submit'></input> 
</form> 
    </tr>
Register page i try to implement the same logic
 
require_once 'recaptchalib.php';
$privatekey = "6Lf5AeASAAAAAO5DJ1GcIAiwd8kkNbVBgrandom";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);


if (empty($_POST) === false) {


$required_fields = array('register_email','register_username','password','confirm_pass','gender','month','date','year','country');
foreach($_POST as $key => $value){
if (empty($value) && in_array($key, $required_fields) === true) {
$errors[] = '* All fields are required!';
break 1;


}
}


if (empty($errors) === true) {
if (user_exists($_POST['register_username']) === true) {
$errors[] = 'Sorry, the username \'' . $_POST['register_username'] . '\' has already been taken. Please choose another username.';
}
if (preg_match("/\\s/", $_POST['register_username']) == true) {
$errors[] = 'Sorry your username must not contain any spaces!';
}
if (strlen($_POST['password']) < 6 ){ 
$errors[] = 'Your Password must be a minimal 6 characters long';
}
if ($_POST['password'] !== $_POST['confirm_pass']) {
$errors[] = 'Your Passwords do not match, please make sure both passwords are the same!';
}
if (filter_var($_POST['register_email'], FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'A valid email adress is required';
}
if(email_exists($_POST['register_email']) === true){
$errors[] = 'The email you provided is already in use. If you are having trouble remembering your user info click <a href="#">here</a>';
         }
if (!$resp->is_valid) {
$errors[] = 'You need to enter a valid security code';
} 


}


} <form name="register" action="register.php" method="post">


 <tr>
    <td class="register_td_left2"><span class="">Security Code:</span></td>
    <td valign="middle" style="padding-left:2px"> <?php
          require_once 'recaptchalib.php';
          $publickey = "6Lf5AeASAAAAAPue6LLdUDttmPDc-NbRandom"; // you got this from the signup page
          echo recaptcha_get_html($publickey);
        ?></td>
</tr> 

</form>

 

i left out most of the form , just to save some reading time for you guys. figure its of no importance.

 

again i am puzzled as to why this doesnt work for me on this page, yet on the test page it works fine.

 

please i have been stuck on this for far to long for such a simple thing.

 

thanks.

Notice: Undefined index: recaptcha_challenge_field in /home/justin/public_html/register.php on line 10

Notice: Undefined index: recaptcha_response_field in /home/justin/public_html/register.php on line 11
Array
(
[register_email] => [email protected]
[register_username] => anti4000
[password] => justin
[confirm_pass] => justin
[gender] => f
[month] => 1
[date] => 1
[year] => 2016
[country] => AF
[agreement] => agree
[register] => Register my FREE account
)


<tr>
<td class="register_td_left2"><span class="">Security Code:</span></td>
<td valign="middle" style="padding-left:2px">
<input id="recaptcha" name="recaptcha"


<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6Lf5AeASAAAAAPue6LLdUDttmPDc-NbRHcn4RCh5"></script>


<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=6Lf5AeASAAAAAPue6LLdUDttmPDc-NbRHcn4RCh5" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>>


</td>
</tr>

I'm gonna toss this out there. but is the domain different on 2nd implementation than the first?

I know when i've integrated recaptcha, i've used a key combo for a specific test domain, and then moved it into a new domain and then it fails.

Fix of course is to generate a new key that's global, or generate a new key for the specific domain in question.

i'm pretty sure that since the recaptcha signup process makes it clear you are doing something specific to a domain, that the OP would have mentioned if he had switched where he was trying to run his code.

 


 

the most likely cause is still -

 


it's likely that your form is invalid html and isn't submitting the the expected data.

 

 

have you validated your form page at - validator.w3.org ? the recaptcha is sensitive to having valid <table> tags within your form (not around the form.)

i'm pretty sure that since the recaptcha signup process makes it clear you are doing something specific to a domain, that the OP would have mentioned if he had switched where he was trying to run his code.

 


 

the most likely cause is still -

 

 

 

 

have you validated your form page at - validator.w3.org ? the recaptcha is sensitive to having valid <table> tags within your form (not around the form.)

i tried using validator, but i was met with an error telling me that the page i am submitting can not be read due to the server i am working on not being compatible with the service.

 

i agree with your assessment of the issue, when looking at my form, the form tags are inside the table tags though.

 

is there something i just am not seeing ?

 

here is my complete form :

<table style="margin-left:10px; margin-top:10px; margin-bottom:10px;">

<form name="register" action="register.php" method="post">

    <tbody><tr>
    <td class="register_td_left"><span class="">Email Address:</span></td>
    <td class="register_td_right" colspan="2"><input type="email" name="register_email" size="35" maxlength="50" value=""></td>
    </tr>
    <tr><td class="register_td_left"></td><td class="extra_data" colspan="2"><font color="#FFCC00" style="background-color:#000000; text-decoration:blink;"><b> Validation Required </b></font></td></tr>

    <tr>
     <td class="register_td_left"><span class="">Username:</span></td>
<td class="register_td_right" colspan="2"><input type="text" name="register_username" size="35" maxlength="15" value=""></td>
    </tr>
    <tr>
     <td class="register_td_left"></td>
        <td class="extra_data" colspan="2">Your username can only contain letters A-Z or numbers 0-9</td>
    </tr>

    <tr>
<td class="register_td_left"><span class="">Password:</span></td>
<td class="register_td_right" colspan="2"><input type="password" name="password" size="35" maxlength="15" class="password"></td>
    </tr>

    <tr>
<td class="register_td_left"><span class="">Confirm Pass:</span></td>
<td class="register_td_right" colspan="2"><input type="password" name="confirm_pass" size="35" maxlength="15"></td>
    </tr>
    <tr>
  <tr>
     <td class="register_td_left"></td>
        <td class="extra_data" colspan="2">Your password must be more than 6 characters A-Z or 0-9</td>
    </tr>


    <tr>
<td class="register_td_left"><span class="">Gender:</span></td>
    <td class="register_td_right" colspan="2">
<input id="male" name="gender" type="radio" value="m"><label for="male"> Male</label>   
<input id="female" name="gender" type="radio" value="f"><label for="female"> Female</label> 
    </td>
    </tr>
    <tr>
     <td class="register_td_left"></td><td class="extra_data2" colspan="2"> </td>
</tr>
<tr>
     <td class="register_td_left"></td><td class="extra_data2" colspan="2"> </td>
</tr>
     <tr>
<td class="register_td_left"><span class="">Date of Birth:</span></td>
    <td class="register_td_right" colspan="2"><select name="month" id="month" style="width:100px"><option value="">---</option><option value="1">January</option><option value="2">February</option><option value="3">March</option><option value="4">April</option><option value="5">May</option><option value="6">June</option><option value="7">July</option><option value="8">August</option><option value="9">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select><select name="date" id="date" style="width:45px"><option value="">---</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select><select name="year" id="reg-year" style="width:60px"><option value="">---</option><option value="2016">2016</option><option value="2015">2015</option><option value="2014">2014</option><option value="2013">2013</option><option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option><option value="1979">1979</option><option value="1978">1978</option><option value="1977">1977</option><option value="1976">1976</option><option value="1975">1975</option><option value="1974">1974</option><option value="1973">1973</option><option value="1972">1972</option><option value="1971">1971</option><option value="1970">1970</option><option value="1969">1969</option><option value="1968">1968</option><option value="1967">1967</option><option value="1966">1966</option><option value="1965">1965</option><option value="1964">1964</option><option value="1963">1963</option><option value="1962">1962</option><option value="1961">1961</option><option value="1960">1960</option><option value="1959">1959</option><option value="1958">1958</option><option value="1957">1957</option><option value="1956">1956</option><option value="1955">1955</option><option value="1954">1954</option><option value="1953">1953</option><option value="1952">1952</option><option value="1951">1951</option><option value="1950">1950</option><option value="1949">1949</option><option value="1948">1948</option><option value="1947">1947</option><option value="1946">1946</option><option value="1945">1945</option><option value="1944">1944</option><option value="1943">1943</option><option value="1942">1942</option><option value="1941">1941</option><option value="1940">1940</option><option value="1939">1939</option><option value="1938">1938</option><option value="1937">1937</option><option value="1936">1936</option><option value="1935">1935</option><option value="1934">1934</option><option value="1933">1933</option><option value="1932">1932</option><option value="1931">1931</option><option value="1930">1930</option><option value="1929">1929</option><option value="1928">1928</option><option value="1927">1927</option><option value="1926">1926</option><option value="1925">1925</option><option value="1924">1924</option><option value="1923">1923</option><option value="1922">1922</option><option value="1921">1921</option><option value="1920">1920</option><option value="1919">1919</option><option value="1918">1918</option><option value="1917">1917</option><option value="1916">1916</option><option value="1915">1915</option><option value="1914">1914</option><option value="1913">1913</option><option value="1912">1912</option><option value="1911">1911</option><option value="1910">1910</option><option value="1909">1909</option><option value="1908">1908</option><option value="1907">1907</option><option value="1906">1906</option><option value="1905">1905</option><option value="1904">1904</option><option value="1903">1903</option><option value="1902">1902</option><option value="1901">1901</option><option value="1900">1900</option><option value="1899">1899</option><option value="1898">1898</option><option value="1897">1897</option><option value="1896">1896</option></select></td>
    </tr>
<tr>
     <td class="register_td_left"></td><td class="extra_data2" colspan="2"> </td>
</tr>

    <tr>
<td class="register_td_left"><span class="">Country:</span></td>
     <td class="register_td_right" colspan="2">
<div><select name="country" style="width:250px;">
<option value="" selected = "selected">---</option>
<option value="AF">Afghanistan</option>
<option value="AL">Albania</option>
<option value="DZ">Algeria</option>
<option value="AS">American Samoa</option>
<option value="AD">Andorra</option>
<option value="AO">Angola</option>
<option value="AI">Anguilla</option>
<option value="AQ">Antarctica</option>
<option value="AG">Antigua and Barbuda</option>
<option value="AR">Argentina</option>
<option value="AM">Armenia</option>
<option value="AW">Aruba</option>
<option value="AU">Australia</option>
<option value="AT">Austria</option>
<option value="AZ">Azerbaijan</option>
<option value="BS">Bahamas</option>
<option value="BH">Bahrain</option>
<option value="BD">Bangladesh</option>
<option value="BB">Barbados</option>
<option value="BY">Belarus</option>
<option value="BE">Belgium</option>
<option value="BZ">Belize</option>
<option value="BJ">Benin</option>
<option value="BM">Bermuda</option>
<option value="BT">Bhutan</option>
<option value="BO">Bolivia</option>
<option value="BA">Bosnia and Herzegovina</option>
<option value="BW">Botswana</option>
<option value="BV">Bouvet Island</option>
<option value="BR">Brazil</option>
<option value="IO">British Indian Ocean Territory</option>
<option value="BN">Brunei Darussalam</option>
<option value="BG">Bulgaria</option>
<option value="BF">Burkina Faso</option>
<option value="BI">Burundi</option>
<option value="KH">Cambodia</option>
<option value="CM">Cameroon</option>
<option value="CA">Canada</option>
<option value="CV">Cape Verde</option>
<option value="KY">Cayman Islands</option>
<option value="CF">Central African Republic</option>
<option value="TD">Chad</option>
<option value="CL">Chile</option>
<option value="CN">China</option>
<option value="CX">Christmas Island</option>
<option value="CC">Cocos (Keeling) Islands</option>
<option value="CO">Colombia</option>
<option value="KM">Comoros</option>
<option value="CG">Congo</option>
<option value="CD">Congo, the Democratic Republic of the</option>
<option value="CK">Cook Islands</option>
<option value="CR">Costa Rica</option>
<option value="CI">Cote D'Ivoire</option>
<option value="HR">Croatia</option>
<option value="CU">Cuba</option>
<option value="CY">Cyprus</option>
<option value="CZ">Czech Republic</option>
<option value="DK">Denmark</option>
<option value="DJ">Djibouti</option>
<option value="DM">Dominica</option>
<option value="DO">Dominican Republic</option>
<option value="EC">Ecuador</option>
<option value="EG">Egypt</option>
<option value="SV">El Salvador</option>
<option value="GQ">Equatorial Guinea</option>
<option value="ER">Eritrea</option>
<option value="EE">Estonia</option>
<option value="ET">Ethiopia</option>
<option value="FK">Falkland Islands (Malvinas)</option>
<option value="FO">Faroe Islands</option>
<option value="FJ">Fiji</option>
<option value="FI">Finland</option>
<option value="FR">France</option>
<option value="GF">French Guiana</option>
<option value="PF">French Polynesia</option>
<option value="TF">French Southern Territories</option>
<option value="GA">Gabon</option>
<option value="GM">Gambia</option>
<option value="GE">Georgia</option>
<option value="DE">Germany</option>
<option value="GH">Ghana</option>
<option value="GI">Gibraltar</option>
<option value="GR">Greece</option>
<option value="GL">Greenland</option>
<option value="GD">Grenada</option>
<option value="GP">Guadeloupe</option>
<option value="GU">Guam</option>
<option value="GT">Guatemala</option>
<option value="GN">Guinea</option>
<option value="GW">Guinea-Bissau</option>
<option value="GY">Guyana</option>
<option value="HT">Haiti</option>
<option value="HM">Heard Island and Mcdonald Islands</option>
<option value="VA">Holy See (Vatican City State)</option>
<option value="HN">Honduras</option>
<option value="HK">Hong Kong</option>
<option value="HU">Hungary</option>
<option value="IS">Iceland</option>
<option value="IN">India</option>
<option value="ID">Indonesia</option>
<option value="IR">Iran</option>
<option value="IQ">Iraq</option>
<option value="IE">Ireland</option>
<option value="IL">Israel</option>
<option value="IT">Italy</option>
<option value="JM">Jamaica</option>
<option value="JP">Japan</option>
<option value="JO">Jordan</option>
<option value="KZ">Kazakhstan</option>
<option value="KE">Kenya</option>
<option value="KI">Kiribati</option>
<option value="KP">Korea, Democratic People's Republic of</option>
<option value="KR">Korea, Republic of</option>
<option value="KW">Kuwait</option>
<option value="KG">Kyrgyzstan</option>
<option value="LA">Lao People's Democratic Republic</option>
<option value="LV">Latvia</option>
<option value="LB">Lebanon</option>
<option value="LS">Lesotho</option>
<option value="LR">Liberia</option>
<option value="LY">Libyan Arab Jamahiriya</option>
<option value="LI">Liechtenstein</option>
<option value="LT">Lithuania</option>
<option value="LU">Luxembourg</option>
<option value="MO">Macao</option>
<option value="MK">Macedonia, the Former Yugoslav Republic of</option>
<option value="MG">Madagascar</option>
<option value="MW">Malawi</option>
<option value="MY">Malaysia</option>
<option value="MV">Maldives</option>
<option value="ML">Mali</option>
<option value="MT">Malta</option>
<option value="MH">Marshall Islands</option>
<option value="MQ">Martinique</option>
<option value="MR">Mauritania</option>
<option value="MU">Mauritius</option>
<option value="YT">Mayotte</option>
<option value="MX">Mexico</option>
<option value="FM">Micronesia, Federated States of</option>
<option value="MD">Moldova, Republic of</option>
<option value="MC">Monaco</option>
<option value="MN">Mongolia</option>
<option value="MS">Montserrat</option>
<option value="MA">Morocco</option>
<option value="MZ">Mozambique</option>
<option value="MM">Myanmar</option>
<option value="NA">Namibia</option>
<option value="NR">Nauru</option>
<option value="NP">Nepal</option>
<option value="NL">Netherlands</option>
<option value="AN">Netherlands Antilles</option>
<option value="NC">New Caledonia</option>
<option value="NZ">New Zealand</option>
<option value="NI">Nicaragua</option>
<option value="NE">Niger</option>
<option value="NG">Nigeria</option>
<option value="NU">Niue</option>
<option value="NF">Norfolk Island</option>
<option value="MP">Northern Mariana Islands</option>
<option value="NO">Norway</option>
<option value="OM">Oman</option>
<option value="PK">Pakistan</option>
<option value="PW">Palau</option>
<option value="PS">Palestinian Territory, Occupied</option>
<option value="PA">Panama</option>
<option value="PG">Papua New Guinea</option>
<option value="PY">Paraguay</option>
<option value="PE">Peru</option>
<option value="PH">Philippines</option>
<option value="PN">Pitcairn</option>
<option value="PL">Poland</option>
<option value="PT">Portugal</option>
<option value="PR">Puerto Rico</option>
<option value="QA">Qatar</option>
<option value="RE">Reunion</option>
<option value="RO">Romania</option>
<option value="RU">Russian Federation</option>
<option value="RW">Rwanda</option>
<option value="SH">Saint Helena</option>
<option value="KN">Saint Kitts and Nevis</option>
<option value="LC">Saint Lucia</option>
<option value="PM">Saint Pierre and Miquelon</option>
<option value="VC">Saint Vincent and the Grenadines</option>
<option value="WS">Samoa</option>
<option value="SM">San Marino</option>
<option value="ST">Sao Tome and Principe</option>
<option value="SA">Saudi Arabia</option>
<option value="SN">Senegal</option>
<option value="CS">Serbia and Montenegro</option>
<option value="SC">Seychelles</option>
<option value="SL">Sierra Leone</option>
<option value="SG">Singapore</option>
<option value="SK">Slovakia</option>
<option value="SI">Slovenia</option>
<option value="SB">Solomon Islands</option>
<option value="SO">Somalia</option>
<option value="ZA">South Africa</option>
<option value="GS">South Georgia and the South Sandwich Islands</option>
<option value="ES">Spain</option>
<option value="LK">Sri Lanka</option>
<option value="SD">Sudan</option>
<option value="SR">Suriname</option>
<option value="SJ">Svalbard and Jan Mayen</option>
<option value="SZ">Swaziland</option>
<option value="SE">Sweden</option>
<option value="CH">Switzerland</option>
<option value="SY">Syrian Arab Republic</option>
<option value="TW">Taiwan</option>
<option value="TJ">Tajikistan</option>
<option value="TZ">Tanzania, United Republic of</option>
<option value="TH">Thailand</option>
<option value="TL">Timor-Leste</option>
<option value="TG">Togo</option>
<option value="TK">Tokelau</option>
<option value="TO">Tonga</option>
<option value="TT">Trinidad and Tobago</option>
<option value="TN">Tunisia</option>
<option value="TR">Turkey</option>
<option value="TM">Turkmenistan</option>
<option value="TC">Turks and Caicos Islands</option>
<option value="TV">Tuvalu</option>
<option value="UG">Uganda</option>
<option value="UA">Ukraine</option>
<option value="AE">United Arab Emirates</option>
<option value="GB">United Kingdom</option>
<option value="US">United States</option>
<option value="UM">United States Minor Outlying Islands</option>
<option value="UY">Uruguay</option>
<option value="UZ">Uzbekistan</option>
<option value="VU">Vanuatu</option>
<option value="VE">Venezuela</option>
<option value="VN">Viet Nam</option>
<option value="VG">Virgin Islands, British</option>
<option value="VI">Virgin Islands, U.s.</option>
<option value="WF">Wallis and Futuna</option>
<option value="EH">Western Sahara</option>
<option value="YE">Yemen</option>
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabwe</option>
</select></div><br> </td>
    </tr>

 <tr>
    <td class="register_td_left2"><span class="">Security Code:</span></td>
    <td valign="middle" style="padding-left:2px">  

<?php
          require_once 'recaptchalib.php';
          $publickey = "6Lf5AeASAAAAAPue6LLdUDttmPDc-NbRHcn4RCh5"; // you got this from the signup page
          echo recaptcha_get_html($publickey);
        ?>

</td>
</tr> 

<tr>
    <td class="register_td_left"></td><td class="extra_data2" colspan="2">
    <input id="agreement" type="checkbox" name="agreement" checked="unchecked" value="agree">
    <label for="agreement"> - <span class="">I agree to the </span></label><a href="/terms_of_use.php" target="_blank">terms of use</a>.
    </td>
    </tr> 

    <tr><td class="register_td_left"></td><td class="extra_data2" colspan="2"><input class="register-button" type="submit" name="register" value="Register my FREE account"></td></tr>
    </tbody></form></table>

try it with the <table></table> tags inside the <form></form> tags.

 

mac_gyver,

 

you are the man! . that was it.

 

i really appreciate the feedback and suggestions, i dont think i would have ever guessed that was the problem.

 

much props to you sir

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.