Bonjour, je suis en train de créer un livre d'or pour mon site avec un système de CAPTCHA. Livre d'or fonction mais c'est au niveau du CAPTCHA que ça coince, j'ai ce message d `erreur qui s'affiche :
Notice: Undefined index: captcha in C:\Program Files\EasyPHP 2.0b1\www\mythologie_2.1\avis\livreor.php on line 77
Erreur de saisie : Veuillez taper un code valide, cliquez ici <livreor.php> pour revenir à la page précédente
Est-ce que quelqu'un peut m'aider ? Le code source de mon livre d'or et le suivant :
<?php
// On initialise la session
session_start();
?>
<?php
/* on vérifie que la code est toujours mémorisé en session et qu'il fait 6 caractères */
if(!isset($_SESSION['textCaptcha']) || strlen($_SESSION['textCaptcha']) != 6) die("Erreur ! Cliquer <a href='livreor.php'>ici</a> pour revenir au formulaire");
// on vérifie que la code entré est valide
if(($_SESSION['textCaptcha']) != ($_POST['captcha'])) die("Erreur de saisie : Veuillez taper un code valide, cliquez <a href='livreor.php'>ici</a> pour revenir à la page précédente<br />");
//--------------Etape 1---------------------------
//si un message est envoyé, on l'enregistre
//-----------------------------------------------
if(isset($_POST['pseudo']) AND isset($_POST['message']))
{
$pseudo=mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message=nl2br($message); //Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br/>
//On peut enfin enregistrer
mysql_query("INSERT INTO livreor VALUES ('','".$pseudo."','".$message."')");
}
//----------------Etape 2 -------------------------------
//On écrit les liens vers chacune des pages
//-------------------------------------------------------
//On met dans la variable le nombre de message qu'on veut par page
$nombreDeMessagesParPage=10;//Essayer de changer le nombre pour voir
//On récupère le nompbre total de mesages
$retour=mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees=mysql_fetch_array($retour);
$totalDesMessages=$donnees['nb_messages'];
//On calcule le nombre de page à créer
$nombreDePages=ceil($totalDesMessages/$nombreDeMessagesParPage);
//Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page:';
for ($i=1; $i<=$nombreDePages; $i++)
{
echo'<a href="livreor.php?page='.$i.'">'.$i.'</a>';
}
?>
</p><?php
//------------Etape 3-------------------------------
//Maintenant on va afficher les messages
//--------------------------------------------------
if(isset($_GET['page']))
{
$page=$_GET['page'];//On récupère le numéro de la page indiqué dans l'adresse livre.php
}
else
{
$page=1;//On se met sur la page 1 par défaut
}
//On calcule le numéro du premier message qu'on prend ans LIMIT
$premierMessageAafficher=($page-1)*$nombreDeMessagesParPage;
$reponse=mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT '.$premierMessageAafficher.','.$nombreDeMessagesParPage);
while($donnees=mysql_fetch_array($reponse))
{
echo'<p><strong>'.$donnees['pseudo'].'</strong> a écrit : <br />'.$donnees['message'].'</p>';
}
mysql_close();//On ferme la base de données
?><?php
// on détruit les variables de session, pour le captcha, désormais inutiles
session_unset();
session_destroy();
?>