Captcha et livre d'or

poky17 Messages postés 53 Statut Membre -  
poky17 Messages postés 53 Statut Membre -
Bonjour,

Alors, je suis toujours avec mes Captcha, j'ai déjà posté à ce propos pour un formulaire de contact, en attendant une solution, je vous expose un autre problème.
Je dirais même que la mise en place d'un code obligatoire à taper est plus important. En effet, je me retrouve chaque jour avec des tonnes de messages non désirés déposés sur le site. Je suis obligée de les supprimer à partir de la base de données et ça devient vraiment pénible.
En fait, c'est une sorte de livre d'or où les gens peuvent me déposer un commentaire.
En gros, si les champs ne sont pas remplis, pas de problème, un message le signale.
Si les champs sont remplis, là, ça marche, ça affiche le message, mais par contre, le code obligatoire à taper n'est pas pris en compte du tout. Du coup, tous les messages passent.

Voici le code, sûrement un truc mal positionné... Merci à tous pour votre aide précieuse.
A bientôt.
Poky

<!-- content -->
<div id="content">
<h1>Témoignages soutien scolaire</h1>
<div class="text">
<center><p>Vous avez pris des cours particuliers avec Christelle, votre témoignage est important, merci pour votre contribution.</p>
<p>Les plus petits auront besoin de l'aide de maman ou papa.</p>
<p>Les plus grands, éviter le langage SMS et les fautes d'orthographe...</p>
<p>N'oubliez pas d'indiquer votre <strong>classe</strong> et la <strong>matière enseignée.</strong></p></center>
<?php

// Inclusion du fichier infos_sql.php

include 'infos_sql.php';

// Test du champ caché posted.

if($_POST['posted'])
{

// Si tous les champs sont remplis.

if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
{

// On nettoie les données (sauts de ligne en trop…).

$pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
$email = trim(addslashes($_POST['email']));
$message = trim(ucfirst(addslashes($_POST['message'])));

// On définit la requête d’insertion.

$insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";

// On exécute l’insertion des données dans la table.

$query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());

// On affiche un message de remerciement au visiteur.

echo '<script language="JavaScript">';
echo 'alert("Merci pour votre message !");';
echo '</script>';

}
// sinon on affiche un message d’erreur et on redirige.
else
{
echo '<script language="Javascript">';
echo 'alert("Remplissez chaque champ svp !");';
echo 'javascript:history.back(1);';
echo '</script>';
}
}

?>

<form action="<?php echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="posted" value="1">
<p><strong>Prénom :</strong></p>
<input type="text" name="pseudo" size="46">
<p><strong>e-mail : (votre adresse sera masquée sur le site)</strong></p>
<input type="text" name="email" size="46">
<p><strong>Message :</strong></p>
<textarea rows="10" name="message" cols="40">

6 réponses

s.spark Messages postés 2528 Statut Contributeur 618
 
Salut,

Ton champ hidden n'a rien d'extraordinaire, ce n'est pas un capcha, d'ailleurs je ne vois pas pourquoi ça le serait.
0
poky17 Messages postés 53 Statut Membre
 
Merci pour ta réponse, mais ça ne me donne pas plus d'explications sur mon problème.
Merci encore.
Poky.
0
s.spark Messages postés 2528 Statut Contributeur 618
 
Ba si ça veut dire trouve un captcha, car ça n'en est pas un, google est ton ami, il existe des 10n de captcha acceptable, plus ou moins accessible, à toi de choisir.

Regarde ces discutions à ce sujet :
https://forum.alsacreations.com/topic-6-15022-1-Captcha-une-fatalite-.html
https://forum.alsacreations.com/topic.php?fid=20&tid=20597
0
poky17 Messages postés 53 Statut Membre
 
Bonsoir,

Toujours en train de me battre pour les messages indésirables, merci s.spark pour ta réponse.
J'ai peut-être trouvé un truc plus simple.
Mais le code provoque une erreur.
Voici le message

Parse error: parse error, unexpected ')', expecting ']' in d:\www\info-bulle.net\htdocs\guestbook.php on line 149

C'est cette ligne de code :

{

if(!empty($_POST['verif')&&$_POST['verif']=='12')

{

Merci à tous.J'ai bien essayé de bidouiller () et [], mais ça ne va pas.
Poky
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
s.spark Messages postés 2528 Statut Contributeur 618
 
Tu ne vois rien de bizarre :/
$_POST['verif']
0
poky17 Messages postés 53 Statut Membre
 
Bonsoir,

Oui, c'est ok, j'ai trouvé l'erreur, par contre, maintenant, mon message est validé sans tenir compte de la réponse à la question. Ce qui ne sert donc à rien.
Le code est sûrement mal placé.
Voici le code.
Merci à tous.
Poky

<?php

// Inclusion du fichier infos_sql.php

include 'infos_sql.php';

// Test du champ caché posted.

if($_POST['posted'])
{

// Si tous les champs sont remplis.

if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['message']))
{

// On nettoie les données (sauts de ligne en trop…).

$pseudo = trim(ucfirst(addslashes($_POST['pseudo'])));
$email = trim(addslashes($_POST['email']));
$message = trim(ucfirst(addslashes($_POST['message'])));

// On définit la requête d’insertion.

$insert = "INSERT INTO guestbook VALUES('','$pseudo','$email','$message','$date')";

// On exécute l’insertion des données dans la table.

$query = mysql_query($insert) OR die("Impossible d’ajouter le message<br>".mysql_error());

// On affiche un message de remerciement au visiteur.

echo '<script language="JavaScript">';
echo 'alert("Merci pour votre message !");';
echo '</script>';

}
// sinon on affiche un message d’erreur et on redirige.
else
{
echo '<script language="Javascript">';
echo 'alert("Remplissez chaque champ svp !");';
echo 'javascript:history.back(1);';
echo '</script>';
}
}

if(!empty($_POST))

{

if(!empty($_POST['verif'])&&$_POST['verif']=='12')

{

// on traite le formulaire

}

else

{

// Répondez à la question svp

}

}

else

{

echo '<form method="post" action="#">

// les champs du formualire + celui-ci :

<form action="<?php echo $PHP_SELF; ?>" method="POST">
<input type="hidden" name="posted" value="1">
<p><strong>Prénom :</strong></p>
<input type="text" name="pseudo" size="46">
<p><strong>e-mail : (votre adresse sera masquée sur le site)</strong></p>
<input type="text" name="email" size="46">
<p><strong>Message :</strong></p>
<textarea rows="10" name="message" cols="40"></textarea>
<br><br>

Question : combien font 3 multiplié par 4 ?

<input type="text" name="verif" />

<input type="submit" value="Poster votre message" />

</form>';

}

?>

<center>
<p>Les champs marqués de (*) sont obligatoires.</p></center>
<p>Toutes les informations personnelles que vous nous transmettez resteront strictement confidentielles et ne seront en aucun cas divulguées à des tiers. Conformément à la loi n° 78-17 du 06 janvier 1978 « Informatique et Libertés » vous disposez d'un droit d'opposition et de rectification de vos données personnelles.</p>
<?php

// On vérifie à quel endroit dans la table on récupère les messages.

if(!$start) {$start=0;}

// On effectue une requête de recherche et de sélection des messages.
$rec = mysql_query("SELECT * FROM guestbook ORDER BY id DESC LIMIT ".$start.",".$nb);

// On extrait les données une à une à l’aide d’une boucle While() ;

while ($row = mysql_fetch_assoc($rec))
{

?>
0