Captcha

Fermé
poky17 Messages postés 53 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 30 mars 2008 - 3 sept. 2007 à 10:14
poky17 Messages postés 53 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 30 mars 2008 - 6 sept. 2007 à 22:40
Bonsoir à tous,

J'avais rédigé ce message il y a quelques jours, mais je m'aperçois que je n'avais pas donné le bon lien, alors je rectifie.
Ras le bol d'être envahie par des messages non désirés sur mon site pour un formulaire.
Alors, j'ai trouvé cryptograph.
L'installation s'est bien déroulée, j'ai suivi les consignes.
Mais, en fait ça ne fonctionne pas.
Il prend les messages même si le code n'est pas rentré.
A savoir dans mon formulaire, tous les champs sont obligatoires.
A mon avis, c'est pas grand chose et ça doit se mélanger avec le code de mon formulaire, mais là je cale.
Pour l'aide je vous donne le lien www.cryptographp.com
Et voici, un bout de mon code.
Merci à tous de votre aide précieuse.
On n'est jamais déçu ici...
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>';
}
}

?>

<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>
<form action="crypt/verifier.php" method="post">
<table>
<tr><td><?php dsp_crypt(0,1); ?></td></tr>
<tr><td>Recopier le code:<input type="text" name="code"></td></tr>
<tr><td><input type="submit" name="submit" value="Valider"></td></tr>
<tr><td><input type="reset" value="Annuler" name="reset"></td></tr>
</table>
</form>

4 réponses

gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 335
3 sept. 2007 à 10:32
bizarre... j'avais répondu au post précédent, mais la réponse n'y apparait pas. mystere de ccm.

je refais exactement la meme réponse que précédemment :

tu as deux post action dans la meme page !!
l'un qui dirige vers self, l'autre vers le verifieur... donc forcément, le mail est envoyé/ les données sont introduites dans la base, puisque l'un des deux n'a pas de vérifieur !

<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> 
<form action="crypt/verifier.php" method="post"> 
<table> 
<tr><td><?php dsp_crypt(0,1); ?></td></tr> 
<tr><td>Recopier le code:<input type="text" name="code"></td></tr> 
<tr><td><input type="submit" name="submit" value="Valider"></td></tr> 
<tr><td><input type="reset" value="Annuler" name="reset"></td></tr> 
</table> 
</form>


au passage, tu ouvres deux forms, et tu n'en fermes qu'un.

tout doit etre envoyé a verifier.php et non pas a self !! et c'est verifier, qui s'il est juste, doit insérer les données! donc toute ta partie de vérif des données dans self, et de requete d'insertion n'a pas lieu d'etre !
0
poky17 Messages postés 53 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 30 mars 2008
6 sept. 2007 à 00:21
Bonsoir,

Merci beaucoup pour tous ces précieux conseils, ça devrait le faire.
Dès que j'ai un peu de temps, je me penche sur tout ça et je te tiens au courant.
Merci encore.
Poky
0
poky17 Messages postés 53 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 30 mars 2008
6 sept. 2007 à 10:00
Bonjour,

Bon, alors des nouvelles toutes fraîches !!!
ça va un peu mieux, j'ai essayé sur un formulaire de contact.
Les infos sont renvoyées sur une page qui s'appelle traitement.php, j'ai donc tout mis dedans.
Alors, maintenant, si le code est absent ou incorrect, il affiche le message correspondant, mais il valide le formulaire quoi qu'il arrive.
D'ailleurs, il doit y avoir une erreur quelque part, car les champs obligatoires s'ils ne sont pas remplis, on le signale, mais ça valide aussi.
Je vous fournis l'extrait de code de traitement.php.
Merci à tous.
Poky

<!-- content -->
<div id="content">
<h1>Fomulaire validé</h1>
<div class="text">
<p align="center"> Votre message a bien été envoyé et sera traité très prochainement.</>
<p align="center">Merci de votre visite.</p>
<?php

// vérification des champs
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['email']))
$message .= "Votre email<br/>";
if (empty($_POST['tel']))
$message .= "Votre téléphone<br/>";
if (empty($_POST['comments']))
$message .= "Votre message<br/>";



if (strlen($message) > strlen($msg_erreur)) {

echo $message;


} else


// Informations d'entête du mail:
$headers ="MIME-Version: 1.0\r\n";
$headers .='From: Formulaire InfoBulle';
$headers .='Reply-To: contact@info-bulle.net' ." \r\n";
$headers .='Content-Type: text/plain; ';
$headers .='charset="iso-8859-1"'."\r\n";
$headers .="Content-Transfer-Encoding: 8bit\r\n";
$headers .='X-Mailer:PHP/' . phpversion() . "\r\n";

// sujet du mail
$sujet = "Formulaire du site";
// corps du mail
$message ="\n Civilité : $civilite \n Nom : $nom \n Adresse : $adresse \n Email : $email \n Tél : $tel \n Commentaires : $comments";
$retval = mail("contact@info-bulle.net",$sujet,$message,$headers);

if (chk_crypt($_POST['code']))
echo "<a><font color='#009700'>=> Bravo, vous avez saisi le bon code !</font></a>" ;
else echo "<a><font color='#FF0000'>=> Erreur, le code est incorrect</font></a>" ;

?>
0
poky17 Messages postés 53 Date d'inscription lundi 26 mars 2007 Statut Membre Dernière intervention 30 mars 2008
6 sept. 2007 à 22:40
Bonsoir,

Un peu étonnée que personne n'ait répondu depuis ce matin, c'est pas le genre de CCM, alors peut-être est-ce comme l'autre fois, message non affiché.
Sinon, je patiente pas d'inquiétude...
Mais, vous nous avez telleemnt habitué à du rapido !!!!
Merci à tous.
Pokt
0