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
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. 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
    1. aboura
       
      merci bien pour votre reponse je vais l'essayer
      0