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