неверная ошибка: неверный реферер для Recaptcha - PullRequest
0 голосов
/ 16 января 2012

Он закодирован как php и работает на моем локальном хосте, но не на реальном сервере: |Изображение recaptcha не появляется, поскольку оно проходит через сервер.ТАК вместо изображения, это дает мне следующее утверждение: НЕВЕРНАЯ ОШИБКА: НЕВЕРНЫЙ РЕФЕР.

код для SIGN_UP.php

<form name="form1" method="post" action="signup_ac.php">
<?php
require_once('recaptchalib.php');
$publickey = "6LcM0csSAAAAADwL24ky6_v0ZBO1l1ZzMqRVsJ7W"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<table width="600" height="347" border="0" cellpadding="0" cellspacing="4">
<tr>
  <td width="191" height="30" bgcolor="#DDDDDD">E-mail</td>
  <td width="25" bgcolor="#DDDDDD" align="center">:</td>
  <td width="368" bgcolor="#DDDDDD"><input name="email_add" type="text" id="email_add" onBlur="MM_validateForm('email_add','','RisEmail','password','','R','contact_name','','R','company_name','','R','phone_num','','R','date_created','','R','time_created','','R','address','','R');return document.MM_returnValue" size="50"></td>
</tr>
<tr>
<td height="30" bgcolor="#DDDDDD">Password</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="password" type="text" id="password" size="50"></td>
</tr>
<tr>
<td height="31" bgcolor="#DDDDDD">Your Name</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="contact_name" type = "text" id="contact_name" size="50"></td>
</tr>
<tr>
<td height="31" bgcolor="#DDDDDD" onfocus="MM_validateForm('email_add','','RisEmail','password','','R','phone_num','','R');return document.MM_returnValue">Company Name</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="company_name" type="text" id="company_name" size="50"></td>
</tr>
<tr>
<td height="31" bgcolor="#DDDDDD">Address</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><textarea name="address" cols="50" rows="5" id="address"></textarea></td>
</tr>
<td height="35" bgcolor="#DDDDDD">Phone Number</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="phone_num" type="text" id="phone_num" size="50"></td>
</tr>
<td height="31" bgcolor="#DDDDDD">Fax</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="fax" type="text" id="fax" size="50"></td>
</tr>
<td height="36" bgcolor="#DDDDDD">Date Created</td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="date_created" type="text" id="date_created" size="50"></td>
</tr>
<td height="29" bgcolor="#DDDDDD"><p>Time Created</p>
  <p> (hh : mm)am/pm</p></td>
<td bgcolor="#DDDDDD" align="center">:</td>
<td bgcolor="#DDDDDD"><input name="time_created" type="text" id="time_created" size="50"></td>
</tr>

<tr>
<td height="31">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;
  <div align="right">
    <input type="reset" name="Reset" value="Reset">
    <input type="submit" name="Submit" value="Submit" />
  </div></td>
</tr>
</table>
</form>

**Then SIGNUP_AC.php CODE to PRocess the code which is suppose to run after the SUGNUP.php is submitted. and then verify the user through Email that they provided during registeration:**
<?

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

  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 {
    // Your code here to handle a successful verification

            $host="localhost"; // Host name 
            $username="root"; // Mysql username 
            $password=""; // Mysql password 
            $db_name="purchase_try"; // Database name 
            //$tbl_name="temp_members_db"; // Table name 

            // Connect to server and select database.
            mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
            mysql_select_db("$db_name")or die("cannot select DB");

            // table name 
            //$tbl_name= "temp_members_db";

            // Random confirmation code 
            //$confirm_code = md5(uniqid(rand()));

// values sent from form 
$email_add      =   $_POST['email_add'];
$password       =   $_POST['password'];
$contact_name   =   $_POST['contact_name'];
$company_name   =   $_POST['company_name'];
$address        =   $_POST['address'];
$phone_num      =   $_POST['phone_num'];
$fax            =   $_POST['fax'];
$date_created   =   $_POST['date_created'];
$time_created   =   $_POST['time_created'];         

            // Insert data into database 
            $sql="INSERT INTO temp_members_db(confirm_code,
                                                 email_add,
                                                 password, 
                                                 company_name,
                                                 contact_name, 
                                                 address,
                                                 phone_num,
                                                 fax_num,
                                                 date_created,
                                                 time_created)
                                                            VALUES('".$confirm_code."',
                                                                    '".$email_add."', 
                                                                     '".$password."',
                                                                     '".$company_name."', 
                                                                     '".$contact_name."'
                                                                     '".$address."',
                                                                     '".$phone_num."',
                                                                     '".$fax."',
                                                                     '".$date_created."',
                                                                      '".$time_created."')";

            $result =   mysql_query($sql);

            if($result){
            echo "Successful";

            }

            else {
            echo "ERROR";
            }

            // close connection 
            mysql_close();

            // if suceesfully inserted data into database, send confirmation link to email 
            if($result){

            // ---------------- SEND MAIL FORM ----------------

            // send e-mail to ...
            $to =   $email_add;

            // Your subject
            $subject    =   "Your confirmation link here";

            // From
            $header =   "from: your name <noreply@testing>";

            // Your message

            $message    =   "Your Comfirmation link \r\n";
            $message    .=  "Click on this link to activate your account \r\n";
            $message    .=  "http://www.yourweb.com/confirmation.php?passkey=$confirm_code";

            // send email
            $sentmail = mail($to,$subject,$message,$header);

            }

            // if not found 
            else {
            echo "Not found your email in our database";
            }

            // if your email succesfully sent
            if($sentmail){
            header('location: register_confirm_mssg.php');
            }
            else {
            header('location: email_notsent.php');
            }

  }


?>

Ответы [ 2 ]

1 голос
/ 16 января 2012

Обычно эта ошибка возникает потому, что, когда вы получаете пару ключей от Google API, вы указываете доменное имя там.При этом, чтобы использовать эти ключи в вашей локальной системе, вы будете вводить домен как «localhost».Но эта пара ключей не будет работать при развертывании этого приложения на любом сервере.

Итак, чтобы приложение работало на удаленном хосте, вы должны получить пару ключей из google api с именем доменагде вы собираетесь развернуть свое приложение.И используйте их в своем приложении.

Надеюсь, это поможет.

0 голосов
/ 19 июля 2013

Недопустимая ошибка реферера может быть из-за открытых и закрытых ключей, созданных для localhost, а не для вашего фактического сервера. Вы должны создать новые ключи, зарегистрировавшись в http://recaptcha.net

...