2015-10-26 2 views
0

У меня возникли проблемы с настройкой recaptha с моими ограниченными знаниями PHP. Мне удалось заставить его работать по существу, но я обнаружил, что знаю, что данные моей формы не отправляются.Данные формы PHP не отправляются с recaptcha

Вот PHP, как он стоит:

<?php 
$sendToEmail="[email protected]";  

$yourname = $_POST["yourname"]; 
$timecall = $_POST["timecall"]; 
$email=$_POST["email"]; 
$phone=$_POST["phone"]; 
$message=$_POST["message"];  


$content = "Time to Call : " . $timecall . "<br>"; 
$content .= "Name : " . $yourname . "<br>"; 
$content .= "Email : " . $email . "<br>"; 
$content .= "Phone : " . $phone . "<br>"; 
$content .= "Message : ". $message ."<br>";  


$senderEmailId = "Reply-To: $email"; 
$senderEmailId = "From: $email\r\n"; 
$senderEmailId .= "Content-type: text/html\r\n"; 
$subject ="New Enquiry from the website";  

    if(isset($_POST['ContactButton'])) {  

      $url = 'https://www.google.com/recaptcha/api/siteverify'; 
      $privatekey = "--private-key--";  

      $response = file_get_contents($url."?secret=".$privatekey."&response=".$_POST[g-recaptcha-response]."&remoteip=".$_SERVER['REMOTE_ADDR']);  

     $data = json_decode($response);  

     if (isset($data->success) AND $data->success==true) {  

//// True- what happens when user is verified  

    header("Location:thankyou.php?CaptchaPass=True");  


     }else{  

    header("Location:thankyou.php?CaptchaFail=True"); 

     } 
} 
?>  

Спасибо заранее!

ответ

1

PHP 101: строки ключей массива, которые не цитируются, рассматриваются как неопределенные константы. У вас есть:

$_POST[g-recaptcha-response] 

, который обрабатывается/выполняется как

$_POST[g minus recaptcha minus response] 
$_POST[0 minus 0 minus 0] 
$_POST[0] 

Если вы позволили параметры отладки РНР (error_reporting, display_errors), вы бы получили предупреждения об этом. Эти настройки никогда не должны быть отключены на сервере отладки/разработки.

Попробуйте

$_POST['g-recaptcha-response'] 
     ^--------------------^ 

вместо этого. Обратите внимание на цитаты.

Смежные вопросы