Validation PHP (Le champs est-il vide)

Anne-Mariz Messages postés 1 Statut Membre -  
 oussama -
Bonjour,

J'ai conçu un formulaire qui se valide avec Javascript, c'est bien!! tout fonctionne ,MAIS pour mon projet je dois le faire valider en PHP aussi pour les imbéciles qui désactive le Javascript pourtant tant utilisé.

Je commence donc par tenter de vérifier si mon champs prénom est vide == donne moi une erreur, comme vous voyez ci-dessous. Le problème c'est que le message affiche avant que je transmettre avec mon bouton submit ET le message reste là quand j'inscrit quelque chose dans le champs et que j'envoie. Je suis consciente qu'il me manque peut-être un bout de code, mais quoi?

<?php
$msgerreur="";
$erreur = false;

if(empty($_POST['sprenom'])){
$erreur;
echo ( $msgerreur.'Inscrire votre nom !');
}
else{
return true;
}

?>

<form method="post" action="ok.php" onsubmit="return valider();" >


<fieldset><legend>Entrez vos coordonnés</legend>
<!--prénom-->
<br />

<label> Prénom</label> <input type="text" name="sprenom" id="sprenom"/>

<!-- je ne met pas mes autres champs, car j'aimerais bien en valider un à la fois -- >

<input type="reset" value="Réinitialiser" />


<input type="submit" value="Transmettre" onclick="resetter()"/>

<!-- Les onclick et onsubmit sont en lien avec mon JS, ne pas en tenir compte-->


Jespère avoir été précise dans l'élaboration de ma question,

Merci d'avance

Anne-Mariz


6 réponses

ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
Ne serait-ce pas une meilleure idée d'utiliser un champ caché sur le formulaire qui sera affecté par le JS. Du côté PHP tu vérifies la valeur de ce champ et si il est vide tu renvoies un message demandant à l'utilisateur d'activer Javascript.
0
ifisch Messages postés 192 Statut Membre 17
 
Si tu ne veux pas que le script php s'execute si il y a une vérification Js il te faut rajouter return false; a la fin de ton script js . (A moins que ce ne soit return true; a tester) .

En esperant t'avoir aidé !
0
lezao Messages postés 505 Statut Membre 36
 
Moi je fais ça pour bloquer une fonction avant l'envois du formulaire:

<form method="post" action="ok.php?debloque" onsubmit="return valider();" >

et ensuite :

if(isset($_POST["debloque"])){ACTION}



Pour ce qui est du fait que le messge reste apres, en php c'est dur de l'enlever, a part en faissant un rafraichissement de la page, ma solution consiste a mettre le message sous forme d'animation flash. le message aparait puis disparait.

c'est du bidouillage mais bon...
0
ifisch Messages postés 192 Statut Membre 17
 
Voila ma méthode :
	function verification() {		
		var temoin = 0; 	
		temoin = focuss("pseudo",verifPseudo("pseudo",temoin));
		if (temoin != 0) {return false;}
		if (temoin == 0) {return true;}
	}


Et si c'est true le php ne s'execute pas :)

Ca peut être utile a tout le monde ;)
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
Si on veut gérer le cas du JS désactivé, faut faire comme ça (code pas testé) :
<script type="text/javascript">
function validateForm()
{
   if (taFonctionDeValidation)
   {
      document.myForm.validation.value = 'okay';
      return true;
   }
   return false;
}
</script>
<form name="myForm" method="post" action="ok.php" onSubmit="return validateForm();">
<input type="hidden" name="validation">
<input type="submit" value="Envoyer">
</form>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
pour une vérif en php:

<?php
//return true ne sert à rien si ce n'est pas une fonction
//la page s'appelle elle même, le traitement des vides est au début
//ne mets pas onSubmit="...." dans <fomr   et onClick sur le bouton Submit 
//en procédant ainsi tu vas tous les valider lors de l'envoi

//init des variables
$msgerreur="";
$erreur = false;
$sprenom="";
$autreChamp="";
//etc..

if(isset($_POST['envoyer'])){
	//le formulaire a été posté
	if(empty($_POST['sprenom'])){
		$erreur=true;
		$msgerreur.='Inscrire votre nom !';
		echo ( $msgerreur.'Inscrire votre nom !');
	}else{
		$sprenom=$_POST['sprenom'];
	}
	//autre champ
	if($_POST['autre_champ'])){
		$erreur=true;
		$msgerreur.=' Inscrire votre ..... !';
	}else{
		$autreChamp=$_POST['autre_champ'];	
	}
	//etc..
	
	//message d'erreur eventuel
	if($erreur){
		echo $msgerreur;
	}else{
		//ton traitement si il n'y a pas d'erreur
		// ......
	
	}
}

if(!isset($_POST['envoyer']) || $errreur){
//on affiche ou ré affiche (avec ce qui est déjà saisi) le formulaire
?>

<form method="post" action="" onsubmit="return valider();" >


<fieldset><legend>Entrez vos coordonnés</legend>
<!--prénom-->
<br />

<label> Prénom</label> <input type="text" name="sprenom" id="sprenom" value="<?php echo $sprenom; ?>" />



<input type="reset" value="Réinitialiser" />


<input name="envoyer" type="submit" value="Transmettre" /> 
</form>
<?php
} //fin if
?>
0
oussama
 
insérer 'required'


<label for="email"> </label>
<input type="email" name="email" id="email" placeholder="***@***" size="30" maxlength="30" required/>
0