Securiser un formulaire avec une equation

aboura -  
 aboura -
s'il vous plait j'ai un formulaire php que je veux sécurisée parce que ce formulaire ajoute dans ma base de donnèes les informations donnèes par l'utilisateur
je veux donc le sécurisé contre les spam et pour le faire je veux ajouter un champs qui permet de donner des équations de mathematique simple et un champs qui permet à l'utilisateur d'introduire le resultat si le resultat est valide ça marche et les donnèes sont enregistrèes si non le formulaire n'est pas validé

mais le problème que je ne sais pas comment le faire
donc merci de m'aider
A voir également:

1 réponse

macgawel Messages postés 676 Statut Membre 89
 
Bonjour.

Un petit exemple vite fait :
<?php
// On crée un tableau qui contient les fonctions à utiliser et l'affichage correspondant
$operation = array('plus'=>'add','moins'=>'minus','fois'=>'mult');
// On crée un tableau qui contient les chiffres de 0 à 9
$c = array();
for ($i =0; $i < 10; $i++) {
	$c[] = $i;
}

// On déclare les différentes fonctions à utiliser
function add($a,$b) {
	return $a+$b;
}
function minus($a, $b) {
	$a -= $b;
	return $a;
}
function mult($a, $b) {
	$a *= $b;
	return $a;
}

// captcha() => Création du Captcha
function captcha() {
	global $operation;
	global $c;
// On récupère des éléments aléatoires des différents tableaux
	$resultat = array_rand($c); // Un chiffre
	$resultat .= " ".array_rand($operation); // Une opération
	$resultat .= " ".array_rand($c); // Un chiffre
	return $formule;	
}

// Fonction qui calcule le résultat attendu
function ResoudreCaptcha($formule) {
	global $operation;
	// On récupère la formule dans un tableau
	$test = explode(' ',$formule);
// On effectue l'opération sur les deux chiffres
	return $operation[$test[1]]($test[0], $test[2]);
}

// Si le formulaire a été envoyé
if (isset($_POST['captcha'])) {
// ... On récupère le résultat attendu
	$attente = ResoudreCaptcha($_POST['formule']);
	echo '<h4>La formule demandée était :</h4>';
	echo $_POST['formule'].'<br />';
	echo 'Le résultat attendu est : '.$attente.'<br />';
	echo 'Vous avez saisi '.$_POST['captcha'].'<br />';
// On compare le résultat envoyé au résultat attendu
	if ($attente == $_POST['captcha']){
		echo 'OK';
	}
	else {
		echo 'KO';
	}
}
?>
<html>
<body>
<form id="formulaire" action="The%20name%20of%20the%20site%20-%20Lui.php" method="post">
<input type="hidden" id="formule" name="formule" value="<?php
$captcha = captcha();
echo $captcha.'" />'.$captcha.' = ?<br />';
?>
<input type="texte" id='captcha'name='captcha' value="" />
<input type="submit" name="Enregistrer" value="Enregistrer" />
</form>
</body></html>
0
aboura
 
merci bien pour votre reponse je vais l'essayer
0