vérification

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : vérification

Re: vérification

par Jibe » 27 mai 2011, 14:39

Je vais essayer ton code Maskime, merci.

Silen.S.Sin le nombre de champs à remplir n'est pas fixe. Il dépend d'une autre donnée (que je n'ai pas mis dans la page), c'est pour ca que je le déclare comme un tableau.
L'utilisateur peut avoir a remplir 4 champs, 10 champs, ...

Re: vérification

par Silen.S.Sin » 27 mai 2011, 14:33

Une question, combien à tu de champs à vérifier?

Re: vérification

par Maskime » 27 mai 2011, 14:28

Hello,

Tu peux faire un truc comme ça :
<?php
if(isset($_POST['eval']) && !empty($_POST['eval']) && is_array($_POST['eval'])){
	$eval = $_POST['eval'];
	$evalQuery = array();
	$elementsInError = array();
	$templateQuery = "UPDATE l_met_scomp SET precedent=##VALEUR## WHERE id=##ELEMENT##";
	$toReplace = array("##VALEUR##", "##ELEMENT##");
	$hasError = false;
	foreach($eval as $element => $valeur){
		if(strlen($valeur) > 0 && trim($valeur) != ''){
			$replacements = array($valeur, $element);
			$sQuery = str_replace($toReplace, $replacements, $templateQuery);
			$evalQuery[] = $sQuery;
		}else{
			$elementsInError[] = $element;
			$hasError = true;
		}
	}
	if(!$hasError){
		foreach($evalQuery as $query){
			$bdd->exec($query);
		}
		header("Location: niveau_fct.php");
	}else{
		$elementList = implode(", ", $elementsInError);
		echo "Les éléments suivant n'ont pas été complétés : " . $elementList . "<br />";
		echo '<a href="' . $_SERVER['HTTP_REFERER'] . '">Cliquez ici pour revenir sur la page précédente</a>';
	}
}
?>
Maintenant en faisant comme ça, l'utilisateur qui clique sur le lien "Cliquez ici pour revenir sur la page précédente", retournera bien sur la page précédente, mais le formulaire n'aura pas les valeurs qu'il aura renseigné avant...

Egalement à noter que ce script est sensible à l'injection SQL et que l'utilisateur doit abligatoirement avoir saisi un chiffre, s'il saisi une chaîne de caractères ça plantera...

Re: vérification

par Jibe » 27 mai 2011, 14:07

Oui je cherche juste à faire une vérification que tous les champs soient remplis et que ce soit avec une valeur comprise entre 1 et 5. Si c'est le cas alors la requête s’exécute et on met à jour la table, sinon on affiche un message d'erreur et on revient à la page précédente.

Re: vérification

par Silen.S.Sin » 27 mai 2011, 13:21

Bonjour, je ne comprend pas bien ton code.
Que cherche tu réellement à faire? Juste vérifier avant l'envoi que cette case est remplis par un chiffre de 1 à 5?

Moi personnellement juste pour 1 à 5 je ne vérifierais pas... je mettrais soit des boutons radio, soit un select.

vérification

par Jibe » 27 mai 2011, 12:43

Bonjour,

Je fais appel à vos connaissances PHP pour un problème qui est surement tout bête mais auquel je ne trouve pas de solution:

Voilà la ligne pour laquelle l'utilisateur doit rentrer des notes:
<td><input type="text" name="eval[<?php echo $donnees['id'];?>]" id="eval[<?php echo $donnees['id'];?>]" size="2" maxlength="1" tabindex="5"/></td>
Voilà ensuite la page qui fait le traitement:
if (!empty($_POST['eval']))
 {
  $eval=$_POST['eval'];
				
  foreach($eval as $element => $valeur)
   {
	// On se connecte à MySQL
						
	$bdd->exec('UPDATE l_met_scomp SET precedent='.$valeur.' WHERE id='.$element.'');
						
	header("Location: niveau_fct.php");
					
  }
 }
 else
 {
	echo 'Vous devez respecter la règle de saisie, remplir tous les champs et nombre entre 1 et 5';
 }
Ma requête s’exécute et les données s'enregistrent. Le problème que j'ai c'est que je ne sais pas comment faire la vérification que l'ensemble des champs aient été remplis et que l'utilisateur a bien saisi des nombres compris entre 1 et 5.

Merci