Bonjour

j'essaye de créer un capchca basé sur la vision d'une image choisit aléatoirement. Dans un premier temps je créé mon formulaire est le nombre aléatoire. (form.php)

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
 
<?php
//je créé mon nombre alétoire parmis mes 4 images
function random($car) {
$string = "";
$chaine = "1234";
srand((double)microtime()*1000000);
for($i=0; $i<$car; $i++) {
$string .= $chaine[rand()%strlen($chaine)];
}
return $string;
}
 
$chaine = random(1); ?>
 
 
<form action="record_form.php?chaine=<?php echo $chaine; ?>" method="post">
<textarea name="message" cols="" rows=""></textarea><br />
<img src="/essence/capchca_img/<?php echo $chaine; ?>.gif" /> Que voyez-vous? <input name="id" type="text" maxlength="20" /><br />
<input name="bouton" type="submit" />
</form>
dans un deuxième temps je vérifie le formulaire record_form.php

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
 
<?php
//je récupère les variables de chaine.php
$message = $_POST["message"];
$chaine = $_POST["chaine"];
$id = $_POST["id"];
 
		//je me connecte et je sélectionne ma base
		$db = mysql_connect('localhost', 'root', ''); 
		mysql_select_db('capchca',$db);
 
		//ma requête
		$sql = "SELECT id FROM data where img = '$id'";
 
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
 
		$data = mysql_fetch_assoc($req);
 
		// je vérifie la concordance de chaine et d'id dans ma base mysql
		if($data['id'] != $id) { 
		echo 'mauvais';
    	exit;
  		}
 
		// Si ça passe j'enregistre le message dans ma table
		else {
		$recording_message = "INSERT INTO message (texte) VALUES ('$message')";
		mysql_query($recording_message) or die('eh merde dans l\'enregistrement');
		echo 'Le message est dans la boite';
		mysql_close();
		}
?>
Le problème (sinon ça ne serait pas drôle ... ) c'est que record_form.php ne trouve pas $chaine . Je pense que mon problème vient de form.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<form action="record_form.php?chaine=<?php echo $chaine; ?>"
Pourtant , j'ai vu le conseil de Kerod, qui fait la même chose

Citation Envoyé par Kerod Voir le message
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
<form action="authentifie.php?log=<?php echo $login; ?>">....</form>
sinon j'ai trouvé ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<form method="post" action="record_form.php?">
<input type="hidden" name="dir" value="<? echo $chaine; ?>" />
</form>

Qu'en pensez-vous? merci pour vos conseils