cryptographp

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : cryptographp

par dogmongo » 10 mars 2007, 01:31

Tiens si ca peu t'aider j'arrivai pas à dormir ca ma occupé
tu as juste à manipuler les variables que tu veux récuperer de ton formulaire, pour l'instant je t'ai mis sujet mail et message.
<?php include "../crypt/functions.php"; ?> 
<?php
$email_webmaster = "[email protected]";

if (isset($_POST["envoyer"])){
$etat = "erreur";
if (isset($_POST["prenom"])) {
$_POST["prenom"]=trim(stripslashes($_POST["prenom"]));
}
if (isset($_POST["tel1"])) {
$_POST["tel1"]=trim(stripslashes($_POST["tel1"]));
}
if (isset($_POST["tel2"])) {
$_POST["tel2"]=trim(stripslashes($_POST["tel2"]));
}
if (isset($_POST["dateresa"])) {
$_POST["dateresa"]=trim(stripslashes($_POST["dateresa"]));
}
if (isset($_POST["sonmail"])) {
$_POST["sonmail"]=trim(stripslashes($_POST["sonmail"]));
}
if (isset($_POST["ville"])) {
$_POST["ville"]=trim(stripslashes($_POST["ville"]));
}
if (isset($_POST["nbre"])) {
$_POST["nbre"]=trim(stripslashes($_POST["nbre"]));
}
if (isset($_POST["sujet"])) {
$_POST["sujet"]=trim(stripslashes($_POST["sujet"]));
}
if (isset($_POST["commentaire"])) {
$_POST["commentaire"]=trim(stripslashes($_POST["commentaire"]));
}


if (empty($_POST["sonmail"])) {
$erreur="Saisissez votre adresse email...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["sonmail"])){

$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["commentaire"])) {

$erreur="Saisissez un message...";
}
elseif (empty($_POST["code"])) {

$erreur="Saisissez le code de verification...";
}

else { 

if (chk_crypt($_POST['code'])) 

$etat="ok";
else $erreur="Code de verification non valide ...";
}
}

else {

$etat="attente";
}

?>
  <?php
if ($etat!="ok"){
if ($etat=="erreur"){

echo "<p><strong>".$erreur."</strong></p>\n"; 

}
?>
<h1>Formulaire de r&eacute;servation : </h1> 

<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?<?PHP echo SID; ?>">

<table id="formulaire" width="524" border=0 cellpadding=2 cellspacing=0> 
<tr><td width="210" align="left"><br> 
Votre nom / Your name</td><td width="84"><br /><br>
        <input type="text" size="40" name="prenom" id="prenom" value="<?php
if (!empty($_POST["prenom"])) { 

echo htmlspecialchars($_POST["prenom"],ENT_QUOTES);
}
?>" />
        *</td>
      <td width="146"></td> 
     <td width="84"></td> 
    </tr> 
<tr><td align="left"><br />Téléphone :<br />Telephone :</td>
      <td> 
        <input type="text" size="40" name="tel1" id="tel1" value="<?php
if (!empty($_POST["tel1"])) { 

echo htmlspecialchars($_POST["tel1"],ENT_QUOTES);
}
?>" />
        *</td>
      <td align="right">Courriel / E-mail</td> 
<td>
<input type="text" size="40" name="sonmail" id="sonmail" value="<?php
if (!empty($_POST["sonmail"])) { 

echo htmlspecialchars($_POST["sonmail"],ENT_QUOTES);
}
?>" /></td></tr> 
<tr><td align="left"><br />Cellulaire :<br /> 
          Mobile phone :</td> 
      <td> 
        <input type="text" size="40" name="tel2" id="tel2" value="<?php
if (!empty($_POST["tel2"])) { 

echo htmlspecialchars($_POST["tel2"],ENT_QUOTES);
}
?>" /></td><td align="right"><br />Ville / Town :</td> 
      <td> 
        <input type="text" size="40" name="ville" id="ville" value="<?php
if (!empty($_POST["ville"])) { 

echo htmlspecialchars($_POST["ville"],ENT_QUOTES);
}
?>" /></td></tr> 
<tr><td align="left"><br /> 
          Date de réservation :</td> 
      <td> <input type="text" size="40" name="dateresa" id="dateresa" value="<?php
if (!empty($_POST["dateresa"])) { 

echo htmlspecialchars($_POST["dateresa"],ENT_QUOTES);
}
?>" /></td>
      <td align="right"><br />Nombre de personnes :</td> 
<td><input type="text" size="40" name="nbre" id="nbre" value="<?php
if (!empty($_POST["nbre"])) { 

echo htmlspecialchars($_POST["nbre"],ENT_QUOTES);
}
?>" /></td></tr> 
<tr> <td  align="left"><br />Sujet / Subject :</td> 
      <td colspan="3"> 
        <input type="text" size="40" name="sujet" id="sujet" value="<?php
if (!empty($_POST["sujet"])) { 

echo htmlspecialchars($_POST["sujet"],ENT_QUOTES);
}
?>" /></td></tr> 
<tr><td valign="top"  align="left"><br />Votre message :<br />Your message :</td> 
<td colspan="3">
        <textarea name="commentaire" id="commentaire" cols="40" rows="5"><?php
if (isset($_POST["commentaire"])) { 

echo htmlspecialchars($_POST["commentaire"],ENT_QUOTES);
}
?>
</textarea>
        <br></td></tr> 

***<tr> 
<td colspan="4" align="center"><?php dsp_crypt(0,1); ?></td></tr> 
<tr> 
      <td width="100%" colspan="4" align="center">Veuillez saisir le code que 
        vous voyez sur l'image ci-dessus<br /> 
        Please, note the code which you can see on the image above<br> 
        <input type="text" name="code"> 
      </td> 
    </tr>*** 

<tr><td colspan="4"><p align="center"><font face="Verdana" size="2">
          <input type="submit" name="envoyer" value="Envoyer" />
          <input type=reset value='Recommencer'>
          </font></td></tr> 
</table></form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["sonmail"]." <".$_POST["sonmail"].">\n";
$entete .= "Return-Path: ". $email_webmaster . "\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$_POST["sujet"],$_POST["commentaire"],$entete)){ 
// mail envoyé
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
}
else { 
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>

par dogmongo » 10 mars 2007, 00:49

Juste une question
Tu ne met pas un nom à ton bouton submit ?

name="envoyer"

et pourquoi utiliser 2 fichiers pour traiter ca ?

par christ2 » 07 mars 2007, 20:30

Eh bien oui, il me semble bien avoir tout lu.
J'ai remplacé verifier.php par envoi.php
et inscrit le code qui doit se trouver dans verifier.php dans envoi.php

mais ça ne fonctionne pas.
Je n'arrive pas à intégrer le code

Code : Tout sélectionner

<?php if (chk_crypt($_POST['code'])) echo "Bravo"; else echo "Erreur"; ?>
dans envoi.php pour que ça fonctionne correctement.
Il y a forcément quelque chose que je ne fais pas bien, et c'est là où je demande votre aide.

par jojolapine » 07 mars 2007, 19:26

es-tu sur davoir lu tout ce qui ce trouve içi: http://www.cryptographp.com/index.php?page=33

par christ2 » 07 mars 2007, 19:09

Bonjour Titerm,

C'est effectivement un début, sauf que ça ne me vérifie pas le code au cas où la personne aurait rentré un code erroné.
et c'est bien ça que je ne sais pas faire.
Merci quand meme :)

par titerm » 06 mars 2007, 09:08

Si tu veux refuser la validation du formulaire car le code captcha n'est pas renseigné, il faut compléter ta liste de vérif dans envoie en testant $_POST['code']

if(empty($prenom) OR empty($sonmail) OR empty($sujet) OR empty($commentaire) or empty($_POST['code']))
   { 
...
blablabla
...
if(empty($_POST['code'])) { print '<p align="center">Vous n\'avez pas saisie  le code captcha.</p>'; } 
}

cryptographp

par christ2 » 06 mars 2007, 00:06

Bonjour

Je viens d'installer le script cryptographp pour afficher un captcha sur un formulaire.
L'installation paraît très correct. mais en apparence seulement (pas de message d'erreur, affichage du captcha, tout est ok).
MAIS (parce qu'il y a toujours un MAIS ;) lorsque je valide l'envoi d'un message, je n'ai aucun message d'erreur qui me dise que je n'ai pas saisi le code qui apparaît sur l'image.

En fait, il faut que j'ajoute aux conditions déjà demandées (inscription du nom, du tel et du courriel) le "ckeck" du code du captcha, et c'est là il me semble que se trouve mon problème. Enfin, soit dans ma page formulaire soit ma page envoi.php (là où toutes les vérifications se font).


Puis-je vous soumettre mon code pour qu'un phpsien averti puisse éventuellement voir mon erreur ?
Merci !


Page de mon formulaire :

Code : Tout sélectionner

***<?php include "../crypt/functions.php"; ?>*** <!doctype ...../> <h1>Formulaire de r&eacute;servation : </h1> <form name="mxform" method="post" action="envoi.php"> <table id="formulaire" width="524" border=0 cellpadding=2 cellspacing=0> <tr><td width="210" align="left"><br> Votre nom / Your name</td><td width="84"><br /><br><input type=text name='prenom'>*</td><td width="146"></td> <td width="84"></td> </tr> <tr><td align="left"><br />Téléphone :<br />Telephone :</td><td><input type=text name='tel1'>*</td><td align="right">Courriel / E-mail</td> <td><input type=text name='sonmail'></td></tr> <tr><td align="left"><br />Cellulaire :<br /> Mobile phone :</td> <td><input type=text name='tel2'></td><td align="right"><br />Ville / Town :</td> <td><input type=text name='ville'></td></tr> <tr><td align="left"><br /> Date de réservation :</td> <td><input type=text name='dateresa'></td><td align="right"><br />Nombre de personnes :</td> <td><input type=text name='nbre'></td></tr> <tr> <td align="left"><br />Sujet / Subject :</td> <td colspan="3"><input type=text name='sujet'></td></tr> <tr><td valign="top" align="left"><br />Votre message :<br />Your message :</td> <td colspan="3"><textarea name='commentaire' rows=6 cols=25></textarea><br></td></tr> ***<tr> <td colspan="4" align="center"><?php dsp_crypt(0,1); ?></td></tr> <tr> <td width="100%" colspan="4" align="center">Veuillez saisir le code que vous voyez sur l'image ci-dessus<br /> Please, note the code which you can see on the image above<br> <input type="text" name="code"> </td> </tr>*** <tr><td colspan="4"><p align="center"><font face="Verdana" size="2"><input type=submit value='Envoyer'><input type=reset value='Recommencer'></font></td></tr> </table></form>

Page "envoi.php"

Code : Tout sélectionner

***<?php include "../crypt/functions.php"; ?> *** <?php include("include/header.php"); include("include/config.php"); $prenom = $_POST["prenom"]; $sonmail = $_POST["sonmail"]; $commentaire = $_POST["commentaire"]; if(empty($prenom) OR empty($sonmail) OR empty($sujet) OR empty($commentaire)) { print '<p align="center"><strong>Erreur , informations manquantes :</strong></p><br />'; if(empty($prenom)) { print '<p align="center">Vous n\'avez pas indiqué votre prénom !</p>'; } if(empty($sonmail)) { print '<p align="center">Vous n\'avez pas indiqué votre adresse courriel !</p>'; } if(empty($sujet)) { print '<p align="center">Vous n\'avez pas indiqué le sujet de votre message !</p>'; } if(empty($commentaire)) { print '<p align="center">Vous n\'avez pas écrit votre message.</p>'; } print '<p align="center"><a href="javascript:history.back()">Retour</a></p>'; include("include/footer.php"); exit; } else { $sonmail = $_POST['sonmail']; $copie = $_POST["copie"]; $point = strpos($sonmail,"."); $arobas = strpos($sonmail,"@"); if($point == '') { echo '<center><br>Votre adresse courriel est invalide<br><p align="center"><a href="javascript:history.back()">Retour</a><br>'; include("include/footer.php"); exit; } elseif($arobas == '') { echo '<center><br>Votre adresse courriel est invalide<br><p align="center"><a href="javascript:history.back()">Retour</a><br>'; include("include/footer.php"); exit; } else { if($copie == "oui" ) { Mail("$sonmail","$sujet","$m1","from: $from"); Mail("$votremail","$sujet","$m2","from: $sonmail"); echo "<p align='center'>Votre message a bien été envoyé !<br /><br />Un courriel de confirmation a été envoyé à l'adresse : $sonmail<br /><br />Nous vous répondrons dans les meilleurs délais.<br /><br /><a href='../index.php'>Retour à l'accueil</a></p><br /><br />";include("include/footer.php");exit; } else { } echo "<p align='center'>Votre message a bien été envoyé !<br /><br />Nous vous répondrons dans les meilleurs délais.<br /><br /><a href='../index.php'>Retour à l'accueil</a></p><br /><br />"; { Mail("$votremail","$sujet","$m2","from: $sonmail"); } include("include/footer.php"); } } ***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>" ;*** ?>
Entre les *** c'est le code qui est directement en rapport avec le cryptographp
Je vois bien qu'il y a un problème avec le echo qui dit BRAVO quand le code est bon et que ça doit être là que je dois lancer le envoi.php, mais je ne vois pas comment.

ah oui, normalement, le code

Code : Tout sélectionner

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>" ;
que j'ai mis dans envoi.php est dans un autre fichier.

Merci 1000 fois si vous pouviez m'éclairer sur ce point.

Chris