I have a issue with the way ive program the captcha verification with the mail fonction.
The Captcha Success are working fine. When the captcha fail, i got the proper message into the form page, but PHP programation still let the email sent. I just need to know how can i set the mail function with the success part only.
Can anyone help me fix the reCaptcha validation?
Thank you.
Here is the PHP source code:
<?php
if (isset($_POST["submit"])) {
$url = 'https://www.google.com/recaptcha/api/siteverify';
$privatekey = "MASKED";
$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){
header('Location: appel_de_service.php?CaptchaPass=True');
}else{
header('Location: appel_de_service.php?CaptchaFail=True');
}
$to = "MASKED";
$from = $_POST['courriel'];
$from_name = $_POST['nom_responsable'];
$subject = "Reception d'un appel de service ";
$nom_compagnie = $_POST['nom_compagnie']; // required
$adresse = $_POST['adresse']; // required
$ville = $_POST['ville'];
$province = $_POST['province'];
$code_postale = $_POST['code_postale'];
$nom_responsable = $_POST['nom_responsable'];
$courriel = $_POST['courriel'];
$telephone = $_POST['telephone'];
$marque = $_POST['marque'];
$numero_modele = $_POST['numero_modele'];
$garantie = $_POST['garantie'];
$description = $_POST['description'];
$disponibilite = $_POST['disponibilite']; // required
$coordonnees = $_POST['coordonnees']; // required
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "Reply-to: $courriel";
$message = "
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<title>Appel de service (rempli sur le site internet)</title>
<style type=\"text/css\">
h1,h2,h3,h4,h5,h6 {
font-family: Cambria, \"Hoefler Text\", \"Liberation Serif\", Times, \"Times New Roman\", serif;
color: #272727;
}
</style>
</head>
<body>
<h2 style=\"font-size: 1.25em; font-family: Gotham, ʼHelvetica Neueʼ, Helvetica, Arial, sans-serif;\">Vous avez reçu une demande d'appel de service en ligne.</h2>
<table width=\"500\" border=\"1\" cellpadding=\"5\" cellspacing=\"2\">
<tbody>
<tr>
<td colspan=\"2\" align=\"left\" valign=\"middle\" bgcolor=\"#84BDEC\"><h3>Informations sur l'adresse du service</h3></td>
</tr>
<tr>
<td width=\"155\" align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Nom de la compagnie</td>
<td width=\"313\" align=\"left\" valign=\"middle\">$nom_compagnie</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Adresse</td>
<td align=\"left\" valign=\"middle\">$adresse</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Ville</td>
<td align=\"left\" valign=\"middle\">$ville</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Province</td>
<td align=\"left\" valign=\"middle\">$province</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Code postale</td>
<td align=\"left\" valign=\"middle\">$code_postale</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Nom du responsable</td>
<td align=\"left\" valign=\"middle\">$nom_responsable</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Téléphone</td>
<td align=\"left\" valign=\"middle\">$telephone</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Adresse courriel</td>
<td align=\"left\" valign=\"middle\">$courriel</td>
</tr>
</tbody>
</table>
<br>
<table width=\"500\" border=\"1\" cellpadding=\"5\" cellspacing=\"2\">
<tbody>
<tr>
<td colspan=\"2\" align=\"left\" valign=\"middle\" bgcolor=\"#84BDEC\"><h3>Informations sur le produit</h3></td>
</tr>
<tr>
<td width=\"155\" align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Marque</td>
<td width=\"313\" align=\"left\" valign=\"middle\">$marque</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Numéro de modèle</td>
<td align=\"left\" valign=\"middle\">$numero_modele</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Garantie</td>
<td align=\"left\" valign=\"middle\">$garantie</td>
</tr>
<tr bgcolor=\"#D5D5D5\">
<td colspan=\"2\" align=\"left\" valign=\"middle\">Description du problème :</td>
</tr>
<tr>
<td height=\"75\" colspan=\"2\" align=\"left\" valign=\"top\">$description</td>
</tr>
</tbody>
</table>
<br>
<table width=\"500\" border=\"1\" cellpadding=\"5\" cellspacing=\"2\">
<tbody>
<tr>
<td colspan=\"2\" align=\"left\" valign=\"middle\" bgcolor=\"#84BDEC\"><h3>Préférences pour le rendez-vous</h3></td>
</tr>
<tr>
<td width=\"155\" align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Disponibilité</td>
<td width=\"313\" align=\"left\" valign=\"middle\">$disponibilite</td>
</tr>
<tr>
<td align=\"left\" valign=\"middle\" bgcolor=\"#D5D5D5\">Coordonnées</td>
<td align=\"left\" valign=\"middle\">$coordonnees</td>
</tr>
</tbody>
</table>
</body>
</html>
";
// Always set content-type when sending HTML email
mail($to, $subject, $message, $headers);
}
?>
Resolved. The problem was the construction of the PHP if() and else() need to be after the Data collection filled into the form.
Here are the proper code :
The issue could be for many reasons. The most popular reasons thats failed the reCpatcha Google Plugin is because the way that the user validate trough ajax with jquery or javascript and php are wrong. The next code that I will show you (assuming that you already have verified an account in Goolge Recaptcha), will teach you how to validate a reCaptcha answer after you are click in a button with php, ajax and jquery. Greetings!
Download the recpatcha library from here https://mega.nz/#!qw4Snb6Z!3Mgq2UvD3PmQJ9ts9sQdHcV86Le8-wtz05IEr2b-3mw