IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Formulaire avec captcha et recuperation dans email


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Formulaire avec captcha et recuperation dans email
    Bonjour,j'aide un ami (enfin j 'essaie) à développer un formulaire avec captcha puis récuperation du formulaire dans email.

    j 'y arrive sans problème SANS le captcha

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action=formmail.php method="post">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $TO = "myemail@yahoo.fr";
     
    $h = "From: " . $TO;
     
    $message = "";
     
    while (list($key, $val) = each($HTTP_POST_VARS)) {
    $message .= "$key : $val\n";
    }
     
    mail($TO, $subject, $message, $h);
     
    Header("Location: ..../ok.html");
     
    ?>
    J ai récupéré un captcha qui fonctionne très bien. Cependant là ou l affaire se corse, c'est quand je dois récupérer les données dans l 'email !!!

    voila le code captcha que j ai récupéré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    <?php
    #
    # Editer ces variables
    #
    # répertoire des images sous la forme a.gif, b.gif, 1.gif, etc.
    $rep_lettres = "captcha/";
    # nombre de caractères (repris dans maxlength)
    $nbrchars = 4;
    # fichier de redirection, affichant la confirmation
    $confirmation = "formmail.php";
    #
    # fin de l'édition
    #
    session_start();
    $imagecode = "";
    $erreur = ""; # toutes erreurs formulaire
     
    # le formulaire a été envoyé on vérifie la correspondance
    if($_POST && $_POST['vateuf'] != $_SESSION['code']) {
    	$erreur = "Les caractères ne correspondent pas !";
    	$_POST['vateuf'] = "";
    }
     
    # pas de session code ou demande d'un nouveau code
    # implémentation des sessions (si le répertoire existe)
    if((!$_SESSION['code'] || $_GET['newcode']) && $dossier = @opendir($rep_lettres)) {
    	# si un nouveau code a été demandé on efface la session
    	if($_GET['newcode']) $_SESSION['code'] = "";
    	while ($fichier = @readdir($dossier)) {
    		if( $fichier == "." || $fichier == ".." || is_dir($fichier) ) continue;
    		# on implémente le tableau $alphabet des fichiers/caractères
    		$alphabet[] = $fichier;
    	}
    	@closedir($dossier);
    	$nbrimg = count($alphabet)-1;
    	# tirage au sort des $nbrchars caractères composant le code
    	for($i=0; $i<$nbrchars; $i++)
    		$lettre[] = rand(0,$nbrimg);
    	# implémentation de l'image $imagecode affichée,
    	# de la session 'code' contenant la série de caractères à comparer
    	# et des $nbrchars sessions préfixées par 'img_'
    	$i=0;
    	foreach($lettre as $val) {
    		$imagecode .= "<img src='$rep_lettres$alphabet[$val]' alt=''>";
    		$_SESSION['code'] .= basename($alphabet[$val],'.gif');
    		$_SESSION['img_'.$i] = $alphabet[$val];
    		$i++;
    	}
    # composition de l'image $imagecode si la session est implémentée
    } elseif($_SESSION['code']) {
    	for($i=0; $i<$nbrchars; $i++)
    		$imagecode .= "<img src='".$rep_lettres.$_SESSION['img_'.$i]."' alt=''>";
    }
     
    if($_POST && !strlen($erreur)) {
     
    	# pas d'erreur de code : traitement des éléments de formulaire...
     
    	# ... une fois tout vérifié et mail envoyé on efface la session
    	$_SESSION['code'] = "";
    	# redirection vers $confirmation où l'on affiche un message
    	# grâce à la variable $_GET['mailok']
    	@header('Location: '.$confirmation.'?mailok=1');
    	exit;
     
    }
    ?>
    <!-- formulaire simplifié -->
    <!-- script développé par Pierre Pesty http://dev.ppan.net -->
    <form action="<?= $_SERVER['PHP_SELF']?>" method="post">
    <? if(strlen($erreur)) { ?>
    <? echo "$erreur\n"?>
    <? } ?>
    <br/>
    <tr><td class="style5">Nom:</td>
    <td class="style1" style="width: 231px">
    <input type=text name=nom size=30 class="style2" value="Votre Nom"></td></tr>
     
    <br/>
    <? if($imagecode) { ?><br/>
    <? echo "$imagecode\n"?><input type="text" name="vateuf" size="<?=$nbrchars?>" maxlength="<?= $nbrchars?>" value="<?= htmlentities($_POST['vateuf'],ENT_QUOTES)?>">
     <br/>Recopiez les caractères à gauche SVP <a href="<?= $_SERVER['PHP_SELF']."?newcode=1"?>">Nouveau</a>
    <? } ?>
    <br/><input type="submit" value="Envoyer">
    </form>
    j ai mis a la ligne 10 "formmail.php".
    En faisant ça, je suis bien obligé de remplir le captcha, je reçoit bien l email, mais sans aucun contenu !

    Maintenant si j essaie de mettre :
    ligne 10, un fichier ok.html (de confirmation)
    ligne 70 action"formmail.php"
    cela me renvoie toute mes infos, mais le captcha ne fonctionne plus !

    En résumé soit le captcha fonctionne mais je ne recoit pas les données rentrées, soit je recois les données mais je ne suis pas obliger de remplir le captcha !

    J aimerai savoir si je suis sur la bonne voix et si quelqu un à une solution a me proposer !!

    cordialement, Hoyoko

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Re coucou, j ai oublié de préciser que je suis au début de mon apprentissage php !

    Mon problème semble se situer dans la récuperation de mes données :

    formmail.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while (list($key, $val) = each($HTTP_POST_VARS)) {
    $message .= "$key : $val\n";}
    lorsque le captcha est bien intégré dans le formulaire, mon email ne recoit plus les réponses du formulaire !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    au final je ne me suis pas embêté, j ai trouvé une solution simple et efficace !

    j ai télécharger "securimage" qui est GRATUIT et qui fournit toute une suite de fichier déjà prêts à l emploi ! Juste besoin d éditer le fichier php avec ses propres infos et c est parti !

    mon problème est donc résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire avec captcha et vérification email correct
    Par hersir dans le forum Zend_Form
    Réponses: 2
    Dernier message: 08/12/2009, 17h09
  2. Réponses: 4
    Dernier message: 27/01/2009, 18h14
  3. formulaire avec champs de texte dans une boucle
    Par sssmix dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/04/2008, 16h03
  4. Réponses: 7
    Dernier message: 14/01/2008, 12h12
  5. Réponses: 2
    Dernier message: 23/08/2007, 20h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo