condition avant validation

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 : condition avant validation

Re: condition avant validation

par cris84100 » 05 janv. 2014, 17:05

Bonjour et merci de vos réponses.

Merci également de classer en résolut le sujet..

Re: condition avant validation

par sirakawa » 03 janv. 2014, 22:10

Une fois de plus Internet Explorer est à la traine.
Mais ce n'est le navigateur qye d'yne partie des internautes utilisant Winquelque chose et pas le premier voir:
http://gs.statcounter.com/#browser-ww-m ... 201312-bar
ou
http://www.w3counter.com/globalstats.php
1) Le fait que ça ne fonctionne pas signifie simplement que ce champ peut rester vide lors de l'envoi du formulaire. Or j'ai dit que ça simplifiait les tests pas que ça les supprimait.
2) Idem pour le type email pour lequel je signale aussi l'existence d filter_var

Re: condition avant validation

par niuxe » 03 janv. 2014, 21:49

houlà attention !

l'attribut required fonctionne à partir de IE9 de mémoire. Tandis que l'attribut email, faut attendre IE10. ;)

Re: condition avant validation

par sirakawa » 03 janv. 2014, 17:54

De même tu as un type = "email" qui évite bien des soucis.
Pour le reste il faut se fier à filter_var dans le code PHP

Re: condition avant validation

par cris84100 » 03 janv. 2014, 17:40

bonjour,

effectivement, je connaissais pas !

je vais utiliser ça c'est plutôt pas mal, merci

si toutefois quelqu'un a une idée en php, je prends

Re: condition avant validation

par sirakawa » 03 janv. 2014, 17:33

Il est plus simple de modifier le formulaire:
<input type ="text" required ="required" name = "login" />

condition avant validation

par cris84100 » 03 janv. 2014, 15:58

Bonjour à tous,

j'ai un formulaire de changement de mot de passe sur lequel je voudrais rajouter la condition de vérification de remplissage de tous les champs.
Si un champ manque, j'affiche une erreur idem pour tout les champs, le formulaire ne sera pas envoyé.
Je vous joins mon code :
Un grand merci pour votre aide...
<?php

if(!empty($_POST['ancien_mot_passe']) && !empty($_POST['nouveau1_mot_passe']) && !empty($_POST['nouveau2_mot_passe']))//chagement de mot de passe
	{
	
		//sécurisation des variables
		$ancien_mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['ancien_mot_passe']));
		$nouveau1_mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['nouveau1_mot_passe']));
		$nouveau2_mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['nouveau2_mot_passe']));
		
		//vérification de l'exactitude de l'ancien mot de passe
		$sql_infos = mysql_query('SELECT mot_passe FROM '.$prefix.'membres WHERE id='.$_SESSION[$prefix.'id']);
        	$donnees = mysql_fetch_array($sql_infos);
		$ancien_mot_passe_hash = md5($ancien_mot_passe);
		
		if ($ancien_mot_passe_hash == $donnees['mot_passe']) //vérification par mesure de sécurité
		{
			if ($nouveau1_mot_passe == $nouveau2_mot_passe) //si les deux mots de passe sont bons, alors on change de mot de passe
			{
				$mot_passe = md5($nouveau1_mot_passe);
				mysql_query('UPDATE '.$prefix."membres SET mot_passe='".$mot_passe."' WHERE id='".$_SESSION[$prefix.'id']."'")or die(mysql_error());
				echo stop($lang['mot_pass_change'],'modifier_profil.php');
				
				mail("".$_POST['email']."","Changement de mot de passe","Cher(e) ".$_POST['pseudo'].",\n\nVous venez de changer votre mot de passe.\n\nVotre nouveau mote de passe de connexion est le suivante :\n\nMot de passe : ".$_POST['nouveau1_mot_passe']."\n\nConnectez vous maintenant sur http://www..\n\n","From: Espace membre <[email protected]>\r\n");
			}
			else
			{
				echo stop($lang['nouveau_mot_passe_different'], 'modifier_profil.php?action=modifier_mot_passe');
			}
		}
		else
		{
			//on indique qu'il y a eu une tentative de changement de mot de passe qui n'a pas marchée, et on décrémente le compteur
			if (isset($_SESSION[$prefix.'mot_passe_erreur']))
			{
				$_SESSION[$prefix.'mot_passe_erreur'] = $_SESSION[$prefix.'mot_passe_erreur'] - 1 ;
			}
			else
			{
				$_SESSION[$prefix.'mot_passe_erreur'] = 3 ;
			}
			
			//on informe le membre du nombre de tentatives restantes où l'on le déconnecte
			if ($_SESSION[$prefix.'mot_passe_erreur'] > 0)
			{
				echo stop($lang['erreur'].' : '.$lang['bad_password'].'<br />'.$lang['il_ne_vous_reste_que'].' '.$_SESSION[$prefix.'mot_passe_erreur'].' '.$lang['tentatives_avant_d_etre_deconnecte'].'.', 'modifier_profil.php?action=modifier_mot_passe');
			}
			else
			{
				echo stop($lang['erreur'].' : '.$lang['bad_password'].'<br />'.$lang['desole_mais_vous_avez_ete_deconnecte'], 'index.php');
				
				//On détruit la session
				session_destroy();
				//Destruction des cookies.
				if (isset($_COOKIE[$prefix.'pseudo'],$_COOKIE[$prefix.'mot_passe']))
				{
					setcookie($prefix.'pseudo','',0);
					setcookie($prefix.'mot_passe','',0);
				}
			}
		}
	}
?>