Notice: Undefined index: captcha on line 28
Undefined index: captcha_reponse on line 31
Undefined index: on line 34
Warning: in_array() expects parameter 2 to be array, null given on line 34
Voici le php
<?php
# Liste des questions avec leurs différentes réponses possibles
$liste_questions = array(
'question1' => array(
'question' => "Quelle est la couleur du cheval blanc ?",
'reponse' => array('blanc', 'blanche', 'neige', 'clair')
),
'question2' => array(
'question' => "Combien font deux + quatre ?",
'reponse' => array('6', 'six')
)
);
# Activation des sessions (pour que PHP charge la session de l'utilisateur, via le cookie PHPSESSID)
# à placer impérativement avant tout affichage, car cette fonction a besoin d'envoyer des headers HTTP
# Sélection d'une question à poser au hasard
$id_question_posee = array_rand($liste_questions);
# Mémorisation de la question posée à l'utilisateur dans la session
$_SESSION['captcha']['id_question_posee'] = $id_question_posee;
# Activation des sessions (pour que PHP charge la session de l'utilisateur, via le cookie PHPSESSID)
# à placer impérativement avant tout affichage, car cette fonction a besoin d'envoyer des headers HTTP
session_start();
# On récupère l'identifiant (clé) de la question posée dans la session
$id_question_posee = $_SESSION['captcha']['id_question_posee'];
# On récupère la réponse de l'utlisateur
$reponse_utilisateur = $_POST['captcha_reponse'];
# Vérification de la réponse : si la réponse de l'utilisateur n'est pas dans la liste des réponses exactes, on affiche un message d'erreur
if( !in_array($reponse_utilisateur, $liste_questions[$id_question_posee]['reponse']) ){
echo "Vous avez répondu $reponse_utilisateur à la question captcha, ce n'est pas une bonne réponse. Traitement annulé";
die();
}
$selectedcall = 'None';
// On parcours notre tableaux pour récupérer la valeur des checkbox
foreach ($_POST['call'] as $call) {
$selectedcall = $call;
}
if (isset($_POST['call'])) {
$selectedcall = implode(', ', $_POST['call']);
}
if(isset($_POST['mailform']))
{
if(!empty($_POST['name']) AND !empty($_POST['email']) AND !empty($_POST['phone']) AND !empty($_POST['ville']) AND !empty($_POST['b']) AND !empty($_POST['message']))
{
$header="MIME-Version: 1.0\r\n";
$header.='From:""<>'."\n";
$header.='Content-Type:text/html; charset="uft-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message='
</div>
</body>
</html>
s
", $message, $header);
$msg="Votre message a bien été envoyé !";
}
else
{
$msg="Tous les champs doivent être complétés !";
}
}
?>
Exemple d'input de mon formulaire
<input type="text" class="form-control" name="name" placeholder="Votre Nom ou celui de votre entreprise"value="<?php if(isset($_POST['name'])) { echo $_POST['name']; } ?>"/>
</div>
et la partie HTML qui affiche la captcha
Question : <?php echo $liste_questions[$id_question_posee]['question']; ?>
Réponse : <input type="text" name="captcha_reponse" value="" />
<div class="col-xs-12" style="margin-top: 10px; text-align: center"><button type="submit" class="btn btn-primary" name="mailform">Envoyez</button></div>
</form>
Merci de votre aide