|
|
|
|
Bonjour!
Je voudrais vérifier que le formulaire a été rempli au complet et sil nest pas rempli au complet un message saffiche pour avertir qu'il faut qu'il remplisse tout les champs... mais je n'ai vraiment aucune idée comment faire! j'essais toute sorte de chose, mais je n'y arrive pas.
Voici ce que j'ai comme code dans ma page:
<?php
if (($_POST["nom"])&&($_POST["mdp"])&&($_POST["userfile"])) {
$nom = $_POST["nom"];
$mdp = $_POST["mdp"];
$userfile = $_POST["userfile"];
/*
... code qui verifie si le mot de passe et lusager correspond, puis upload le fichier choisi
*/
} else {
}
?>
<html>
<head>
<title>Formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form1" method="post" enctype="multipart/form-data" action="formulaire.php">
<p>Nom d'usager :
<input name="usager" type="text" id="usager" size="30">
<br>
Mot de passe :
<input name="mdp" type="text" id="mdp" size="30">
</p>
Envoyer ce fichier :
<input name="userfile" type="file" value="">
<p>
<input name="connecter" type="submit" id="connecter" value="Se connecter">
</p>
</form>
<?php
if ($_GET['error']) {
print 'vous devez remplir tous les champs svp';
}
?>
</body>
</html>
note: je crée mes page dans dreamweaver. Si j'affiche cette page, rien ne se passe! le formulaire ne s'affiche pas! la page reste blanch et je ne sais meme pas si elle est télécharger vraiment! Y a-t-il un moyen de savoir ou peut etre nos erreurs???
Merci de m'aider! Je suis littéralement bloquer....
D_d.
Salut,
|
Ecoute je commence a faire du php alors je comprend pas trop encore toute la logique derrière tout ça... j'ai appris l'asp alors je suis un peu melangée...
|
Voila une ptite fonction javascript qui devrait résoudre ton soucis
<script language='JavaScript'> Rajouter dans ton form l'event <FORM .....onSubmit="valider_formulaire(this)"> |
Lorsque le bouton est clicker est-ce que la page se reload?
|
@omar :
onSubmit="valider_formulaire(this)"> l'évent onSubmit intercepte la validation du formulaire. Si tu retourne true il poursuit. Si tu retourne false il ne valide pas le formulaire. @D_d : Soit la fonction retourne true et ta page est reloader à toi de faire ton traitement dans l'intervalle. ta vérif bdd koi ^^ Soit elle te retourne false dans ce cas ta page est pas chargée et cela t'affiche un message. Test tu verras par toi-même, c'est easy à mettre en place :) |
Une autre idée me vient à l'esprit (vu que tu as dit qu'on pouvait faire la verif en asp):
<form ..... action="formulaire.php"> 2) Tu rajoutes un champ hidden à ton formulaire pour savoir si il a déja été validé une fois: <input type="hidden" name="flag" value="1"> 3) Tu fais une test en php
Voila, ca t'evite le javascript qui, il faut l'admettre n'est pas tres fiable (il suffit de recopier ta page en enlevant le javascript pour pouvoir faire un submit avec un champ vide...). Remarque: J'ai utilisé $champ1, $flag etc... par flemme et par habitude mais sur certains serveurs apache (le serveur qui fait marcher le php, comme IIS pour asp) il faut utiliser: $_POST($flag)si t'es en post,$_GET($flag)si t'es en get. |
Répondre à D_d.
|
Voila ton script au complet avec la solution que je te proposai.
<? |
Répondre à isa
|
Voici un Bout de code qui contient un form qui est valider et soumis seulement si la fonction soumForm renvoie true.
<script>
/*-------------------------------------------------
validerInputTxt
valider le texte contenu dans l'input de l'appelant
parametre
appelant : celui qui appele la méthode ( this de l'élement )
retour : vrai si valide sinon faux
---------------------------------------------------*/
function validerInputTxt( Appelant ){
var expReguliere = new RegExp( Appelant.getAttribute( "exp" ) );
if( expReguliere.test( Appelant.value ) )
{
Appelant.style.background = "url( image/okSign.gif ) no-repeat right center ";
return true;
}
Appelant.style.background = "url( image/errorSign.gif ) no-repeat right center ";
return false;
}
/*-------------------------------------------------
validerConfMotPasse
valider le texte contenu dans l'input de confirmation de mot de passe de l'appelant
parametre
appelant : celui qui appele la méthode ( this de l'élement )
retour : vrai si valide sinon faux
---------------------------------------------------*/
function validerConfMotPasse( Appelant ){
if(document.getElementById("idMotpasse").value == Appelant.value ){
Appelant.style.background = "url( image/okSign.gif ) no-repeat right center ";
return true;
}
Appelant.style.background = "url( image/errorSign.gif ) no-repeat right center ";
return false;
}
/*-------------------------------------------------
soumForm
valider tous les champs du formulaire d'inscription
parametre
appelant : celui qui appele la méthode ( this de l'élement )
retour : vrai si valide sinon faux
---------------------------------------------------*/
function soumForm( Appelant ){
var expReguliere = new RegExp( document.getElementById("idNom").getAttribute("exp") );
var tabInput = Appelant.getElementsByTagName( "input" );
for(var i =0 ; i < tab.length ; i ++){
// SI c'est un input qui a un id ET cette id n'est PAS idConfirmmotpasse ET le texte de l'input est PAS valide
if(document.getElementById( tab[i].id ) != "" && document.getElementById( tab[i].id )!= "idConfirmmotpasse" && ! validerInputTxt( document.getElementById( tab[i].id ) ) ){
alert(" Le champ : "+tab[i].name+" est invalide." );
return false;
// SINON SI c'est l'input de confirmation de mot de passe ET que le mot de passe est PAS valide
}else if(document.getElementById( tab[i].id ) == "idConfirmmotpasse" && validerConfMotPasse( document.getElementById( tab[i].id ) ) ){
alert(" Le champ : "+tab[i].name+" est invalide." );
return false;
}
}// fin for
return true;
}</script>
<form action="index.php?bla" method="get" id="formInscription" onsubmit="return soumForm(this)">
<h3>Informations membres</h3>
<fieldset>
<label class="field-nomutilisateur">Nom d'utilisateur *<input id="idNomutilisateur" type="text" name="nom utilisateur" maxlength="48" value="" onblur="validerInputTxt(this);" exp="^(\w+|\w+[\-]*\w+)$" /></label>
<label class="field-motpasse">Mot de passe ( 8 caractères ) *<input id="idMotpasse" type="password" name="mot passe" maxlength="8" value="" onblur="validerInputTxt(this);" exp="^\w{8}$" /></label>
</fieldset> <label class="field-motpasse">Confirmer votre mot de passe *<input id="idConfirmmotpasse" type="password" name="Confirmer votre mot de passe" maxlength="8" value="" onblur="validerConfMotPasse(this);" /></label>
<h3>Informations personnelles</h3>
<fieldset>
<label class="field-prenom">Prénom *<input id="idPrenom" type="text" name="prenom" maxlength="74" value="" onblur="validerInputTxt(this);" exp="^(\w+|\w+[\w*\s*[\-]*\w*]*)$" /></label>
<label class="field-nom">Nom *<input id="idNom" type="text" name="nom" maxlength="74" value="<?php if(isset($_GET["nom"])){echo($_GET["nom"]);}?>" onblur="validerInputTxt(this);" exp="^(\w+|\w+[\w*\s*[\-]*\w*]*)$" /></label>
<label class="field-noCivique">Adresse *<input id="idNoCivique" type="text" name="noCivique" maxlength="24" value="" onblur="validerInputTxt(this);" exp="^[1-9](\d*|\d*[\-]?\w*)$" /></label>
<label class="field-rue">Rue *<input id="idRue" type="text" name="rue" maxlength="99" value="" onblur="validerInputTxt(this);" exp="^(\w+|\w+[\w*\s*[\-]*\w*]*)$" /></label>
<label class="field-ville">Ville *<input id="idVille" type="text" name="ville" maxlength="99" value="" onblur="validerInputTxt(this);" exp="^(\w+|\w+[\w*\s*[\-]*\w*]*)$"/></label>
<label class="field-province">Prov. *<select id="idProvince" name="province">
<option value="Alberta" >AB</option>
<option value="Colombie-Britannique" >BC</option>
<option value="Manitoba" >MB</option>
<option value="Nouveau-Brunswick" >NB</option>
<option value="Terre-Neuve-et-Labrador" >NL</option>
<option value="Territoires du Nord-Ouest" >NT</option>
<option value="Nouvelle-Écosse" >NS</option>
<option value="Nunavut" >NU</option>
<option value="Ontario" >ON</option>
<option value="Île-du-Prince-Édouard" >PE</option>
<option value="Québec" selected="selected">QC</option>
<option value="Saskatchewan" >SK</option>
<option value="Yukon" >YT</option>
</select></label>
<label class="field-codePostal">Code postal *<input id="idCodePostal" type="text" name="codePostal" maxlength="7" value="" onblur="validerInputTxt(this);" exp="^([^\d\W_])\d([^\d\W_])[ ]?\d([^\d\W_])\d$" /></label><br style="clear: left;" />
<label class="field-email">Courriel *<input id="idCourriel" type="text" name="courriel" maxlength="99" value="" onblur="validerInputTxt(this);" exp="^([a-zA-Z0-9]+(([\.\-\_]?[a-zA-Z0-9]+)+)?)\@(([a-zA-Z0-9]+[\.\-\_])+[a-zA-Z]{2,4})$" /></label>
<label class="field-phone">Téléphone<input id="idPhone" type="text" name="phone" maxlength="20" value="" onblur="validerInputTxt(this);" exp="^(\d{3}[\. -]?){2}\d{4}$" /></label>
</fieldset>
<fieldset>
<label>Cliquez soumetre !</label>
<input id="idBtnSubm" type="submit" name="submit" value="Soumettre" />
<input type="hidden" value="inscription" name="onglet" />
<input type="hidden" name="submitted" value="TRUE" />
</fieldset>
</form> |
Bonjour,
|