Problème de CAPTCHA en PHP

Fermé
Derrick - 15 déc. 2011 à 11:02
 Derrick - 23 déc. 2011 à 17:03
Bonjour,


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 */

echo '<form method="post" action="livreor.php" id="livreor">
<h1>Livre d\'or</h1>
<h2>Vous pouvez laisser un message ici</h2>
<p>
Pseudo : <input type="text" name="pseudo" />
<br />
Message : <br />
<textarea name="message" rows="8" cols="35"></textarea><br />

<p class="formulaire">Veuillez les caractères suivant dans le champ ci-dessous : <img src="fct_captcha.inc.php" alt="Image Captcha" /> </p>
<p class="formulaire">
<input name="captcha" type="text" id="captcha" size="6" maxlength="6" /><br />
<span class="actualiser">(Si le code n\'apparait pas, veuillez cliquer sur le bouton "Actualiser" de votre navigateur internet)</span>

<input type="submit" value="Envoyer" />
</p>
</form><p class="pages">';?>
<?php

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 />");

?>
<?php
mysql_connect("localhost", "hos_test", "eequahn7");
mysql_select_db("hos_test");

//--------------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=mysql_real_escape_string(htmlspecialchars($_POST['message']));

$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();
?>

Merci d'avance

2 réponses

dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
15 déc. 2011 à 12:55
Salut... tous ça ne forme qu'un seul fichier??? si y a plusieurs fichier tu peux les indiquer??
0
Personne ne peut m'aider?
0