Vous n'êtes pas identifié(e).
Bonjour à tous,
Une variable à la sortie de mon code reste invariablement nulle, peu importe mes différentes tentatives.
Je récupère des variables HTML qui sont injectés dans le fichier php qui lui en exporte via JSON.
Voici mon code php dans ses grandes lignes :
$success = true;
$error1 = false;
$error2 = false;
// ReCAPTCHA
// grab recaptcha library
require_once "recaptchalib.php";
// foreach ($_POST as $key => $value) {
// echo '<p><strong>' . $key.':</strong> '.$value.'</p>';
// }
// your secret key
$secret = "***_***";
// empty response
$response = null;
// check secret key
$reCaptcha = new ReCaptcha($secret);
// if submitted check response
if ($_POST["g-recaptcha-response"])
{
$response = $reCaptcha->verifyResponse
(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'dest1@mon.site,dest2@mon.site';
// objet du message
$objet = 'Contact depuis le site le ***';
// formulaire envoyé, on récupère tous les champs.
$firstnameint = (isset($_POST['firstname'])) ? Rec($_POST['firstname']) : '';
$lastnameint = (isset($_POST['lastname'])) ? Rec($_POST['lastname']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$usrtelint = (isset($_POST['usrtel'])) ? Rec($_POST['usrtel']) : '';
$people = (isset($_POST['people'])) ? Rec($_POST['people']) : '';
$messageint = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
$copieint = (isset($_POST['copie'])) ? Rec($_POST['copie']) : '';
// traitement du numéro de téléphone et aux variables
$firstname = htmlspecialchars($firstnameint);
$lastname = htmlspecialchars($lastnameint);
$usrtel = htmlspecialchars($usrtelint);
$message = htmlspecialchars($messageint);
$copie = htmlspecialchars($copieint);
if (isset($_POST['submit']))
{
if ($response != null && $response->success)
{
if (($firstname != '') && ($lastname != '') && ($email != '') && ($usrtel != '') && ($people != '') && ($message != '') && ($copie != ''))
{
// les 6 variables sont remplies, on génère puis envoie le mail
$headers = 'MIME-Version: 1.0' . "\n" .
$headers .= 'From:'.$firstname.' '.$lastname.' <'.$email.'>' . "\n" .
$headers .= 'Reply-To:'.$email. "\n" .
$headers .= 'Content-Type: text/html; charset="utf-8"; DelSp="Yes"; format=flowed' . "\n" .
$headers .= 'X-Mailer:PHP/'.phpversion().
$headers .= 'Content-Transfer-Encoding: 7bit' . "\r\n" ;
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.";".$email;
}
else
{
$cible = $destinataire;
};
// formatage du corps de l'email
$msg = '<div style="width: 100%; text-align: left; color: #00002b; font-weight: bold"> Message de '.$firstname.' '.
$lastname.'<br />E-mail : '.$email.' et numéro de téléphone : '.$usrtel.'<br /> nombre de personne(s) : '.$people.
'<br /> Message : '.$message.'</div>';
// Envoi du mail
$num_emails = 0;
$tmp = explode(";", $cible);
foreach($tmp as $email_destinataire)
{
if (mail($email_destinataire, $objet, $msg, $headers))
$num_emails++;
}
if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
{
// message sent
// Votre message a bien été envoyé !
}
else
{
// message not sent
// L'envoi du mail a échoué, veuillez réessayer, s'il vous plaît
$error1 = true;
};
}
else
{
// one of 7 variables (at least) is empty ...
// Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur
$error2 = true;
};
}
else
{
// recaptcha is false
// Problème d'authentification par le Recaptcha
$success = false;
};
}; // fin du if (!isset($_POST['envoi']))
$array['success'] = $success;
$array['error1'] = $error1;
$array['error2'] = $error2;
$array['response'] = $response;
$array['email'] = $email;
$array['destinataire'] = $destinataire;
$array['cible'] = $cible;
$finalArray=json_encode($array);
echo $finalArray;
?>
Les variables que je récupère via JS sont les suivantes :
DataOut:{"success":true,"error1":false,"error2":false,"response":"success":true,"errorCodes":null},"email":"exp@gmail.com","destinataire":"'dest1@mon.site,dest2@mon.site","cible":null}, quand je coche le Recaptcha et :
{"success":true,"error1":false,"error2":false,"response":null},"email":"exp@gmail.com","destinataire":"'dest1@mon.site,dest2@mon.site","cible":null}, quand je ne coche pas le Recaptcha.
Est-ce que quelqu'un aurait une solution pour résoudre cette problématique ? Car du coup le fichier.php n'envoie pas les emails...
Je vous remercie par avance pour votre aide.
PS :
Je rajoute ici le formulaire :
et le script qui exploite les variables envoyées par le serveur après le traitement du fichier php:
Dernière modification par Falakiko (23-11-2017 21:02:16)
Hors ligne