Vérifier les champs d' un formulaire PHP [Résolu/Fermé]

Signaler
Messages postés
101
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
9 janvier 2013
-
 Raleur -
Bonjour,



Bonjour,


Voila quel que jours que je teste de vérifier les champs de mon formulaire en PhP sans avoir de résultat.

J' ai donc commencer par crée un simple teste voir se que ca donne mais ca me dis tout le temps que les champs sont vide.Je débute en PHP, j' ai mis un petit code pour voir l ip dans l' idée de l' utiliser pour le stocker, pour avoir la possibilité de bannir un membre par la suite.

Donc mon but est de vérifier le formulaire, crée un id, récupérer l' ip, marquer les erreurs de saisi dans le formulaire,J' aime bien le Java scripte pour l' effet visuel instantané seulement je pense a une double vérification JS, PHP et redirection sur la page personnel.

Merci d' avance de votre aide

Ps: je travail en local sur wampserver



Voila mon code html :

<div id="Inscription">
<br><br><br>
<center> <div id="heure">; </div></center>

<div id="titre-Inscription" >Inscription Gratuite et rapide</div>
<form method="post" action="traitement.php">
<div id="label">
<p align="right"><label for="Prénom">Prénom</label> : <input type="text" name="Prénom" id="Prénom" style="height:15px; width:110px; font-size:15px;" />
<p align="right"><label for="Nomdefamille">Nom de famille</label> : <input type="text" name="Nomdefamille" id="Nomdefamille"style="height:15px; width:110px; font-size:15px;" />
<p align="right"><label for="Votreemail">Votre email</label> : <input type="text" name="Votreemail" id="Votreemail" style="height:15px; width:110px; font-size:15px;" />
<p align="right"><label for="Répétezemail">Répétez l'email</label> : <input type="text" name="" id="Répétezemail" style="height:15px; width:110px; font-size:15px;"/>
<p align="right"><label for="Votremotdepasse">Mot de passe</label> : <input type="password" name="Votremotdepasse" id="Votremotdepasse" style="height:15px; width:110px; font-size:15px;" />
</div>

<div id="labelsexe">
<p align="center"> <label for="sexe">Vous êtes :</label>
<select name="sexe"id="sexe">
<option selected
value="Homme">Un homme<option
value="Femme">Une femme</select>
<input type="checkbox" name="charte" value="charteok" />J'accepte les<strong><a href="../../cgu.php">conditions générales</a></strong>
</div>

<div id="labelage">
<p align="center"> <label for="Datedenaissance">Date de naissance :</label><br>
<select name="jour" id="Datedenaissance">
<option selected
value="Jour">Jour<option
value="01">01<option
value="02">02<option
value="03">03<option
value="04">04<option
value="05">05<option
value="06">06<option
value="07">07<option
value="08">08<option
value="09">09<option
value="10">10<option
value="11">11<option
value="12">12<option
value="13">13<option
value="14">14<option
value="15">15<option
value="16">16<option
value="17">17<option
value="18">18<option
value="19">19<option
value="20">20<option
value="21">21<option
value="22">22<option
value="23">23<option
value="24">24<option
value="25">25<option
value="26">26<option
value="27">27<option
value="28">28<option
value="29">29<option
value="30">30<option
value="31">31</select>

<select name="mois"><option selected
value="Mois">Mois<option
value="01">01<option
value="02">02<option
value="03">03<option
value="04">04<option
value="05">05<option
value="06">06<option
value="07">07<option
value="08">08<option
value="09">09<option
value="10">10<option
value="11">11<option
value="12">12</select>

<select name="année"><option selected
value="Année">Année<option
value="2011">2011<option
value="2010">2010<option
value="2009">2009<option
value="2008">2008<option
value="2007">2007<option
value="2006">2006<option
value="2005">2005<option
value="2004">2004<option
value="2003">2003<option
value="2002">2002<option
value="2001">2001<option
value="2000">2000<option
value="1999">1999<option
value="1998">1998<option
value="1997">1997<option
value="1996">1996<option
value="1995">1995<option
value="1994">1994<option
value="1993">1993<option
value="1992">1992<option
value="1991">1991<option
value="1990">1990<option
value="1989">1989<option
value="1988">1988<option
value="1987">1987<option
value="1986">1986<option
value="1985">1985<option
value="1984">1984<option
value="1983">1983<option
value="1982">1982<option
value="1981">1981<option
value="1980">1980<option
value="1979">1979<option
value="1978">1978<option
value="1977">1977<option
value="1976">1976<option
value="1975">1975<option
value="1974">1974<option
value="1973">1973<option
value="1972">1972<option
value="1971">1971<option
value="1970">1970<option
value="1969">1969<option
value="1968">1968<option
value="1967">1967<option
value="1966">1966<option
value="1965">1965<option
value="1964">1964<option
value="1963">1963<option
value="1962">1962<option
value="1961">1961<option
value="1960">1960<option
value="1959">1959<option
value="1958">1958<option
value="1957">1957<option
value="1956">1956<option
value="1955">1955<option
value="1954">1954<option
value="1953">1953<option
value="1952">1952<option
value="1951">1951<option
value="1950">1950<option
value="1949">1949<option
value="1948">1948<option
value="1947">1947<option
value="1946">1946<option
value="1945">1945<option
value="1944">1944<option
value="1943">1943<option
value="1942">1942<option
value="1941">1941<option
value="1940">1940<option
value="1939">1939<option
value="1938">1938<option
value="1937">1937<option
value="1936">1936<option
value="1935">1935<option
value="1934">1934<option
value="1933">1933<option
value="1932">1932<option
value="1931">1931<option
value="1930">1930<option
value="1929">1929<option
value="1928">1928<option
value="1927">1927<option
value="1926">1926<option
value="1925">1925<option
value="1924">1924<option
value="1923">1923<option
value="1922">1922<option
value="1921">1921<option
value="1920">1920</select>
</div>





<div id="boutonValider">
<input type="submit" value="Valider" /> </div>
<div id="boutonReset">
<input type="reset" />
</div>
<div id="imagetel"> </div>
</div>



<HEAD>
<script language="javascript">
//<!--
function HeureCheckEJS()
{
krucial = new Date;
heure = krucial.getHours();
min = krucial.getMinutes();
sec = krucial.getSeconds();

if (sec < 10)
sec0 = "0";
else
sec0 = "";
if (min < 20)
min0 = "0";
else
min0 = "";
if (heure < 10)
heure0 = "0";
else
heure0 = "";


DinaHeure = + heure0 + heure + "h" + min0 + min + "";
which = DinaHeure
if (document.getElementById){
document.getElementById("heure").innerHTML=which;
}
setTimeout("HeureCheckEJS()", 1000)
}
window.onload = HeureCheckEJS;

//-->
</script>


Code php :

<?php

// Vérifier que le champ est rempli
if(isset($_POST['Prénom'])) $prenom=$_POST['Prénom'];
else $Prénom="";

if (empty($Prénom))
{
echo "Vous n'avez pas saisi votre Prénom";
}

if (empty($Nomdefamille))
{
echo "Vous n'avez pas saisi votre Nom de famille";
}

if (empty($Votremotdepasse))
{
echo "Vous n'avez pas saisi votre mot de passe";
}







// récupérer les champs

if(isset($_POST['Prénom'])) $prenom=$_POST['Prénom'];
else $Prénom="";



if(isset($_POST['Nomdefamille'])) $nom=$_POST['Nomdefamille'];
else $Nomdefamille="";
echo getIP();

if(isset($_POST['Votreemail'])) $email=$_POST['Votreemail'];
else $Votreemail="";






function getIP() //Permet d"avoir l"IP d"un visiteur
{
if ( isset($_SERVER["HTTP_X_FORWARDED_FOR"]) )
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else
$ip = $_SERVER["REMOTE_ADDR"];

return $ip;
}
// Affichage de l"adresse IP
echo getIP();










?>

6 réponses

Messages postés
3019
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
120
Salut et bienvenue sur CCM !

Mmmmm je pense que la première chose que tu devrais faire c'est t'assurer que tes balises HTML sont bien fermées. Les navigateurs sont intelligents aujourd'hui, ils sont donc capables de faire une partie de ce travail à ta place, mais ça peut créer des problèmes que tu ne verras jamais. Donc assure-toi que tes <p> se terminent par un </p>, que tes <option> se terminent par un </option>, et ainsi de suite. Je n'ai pas trouvé de </form> non plus dans ton HTML. Bref, vérifie tout ça.

Ensuite, petit conseil qui ne résoudra pas ton problème, je t'encourage à utiliser des "{}" quand tu travailles avec des if ou des boucles. C'est plus standard, plus clair, et ainsi la majorité des programmeurs expérimentés ne t'en voudra pas ;-)
Ça vait aussi bien en PHP qu'en JS.

Et finalement... Je regarde ton code PHP... Je l;is peut-être mal, mais j'ai l'impression que d'un côté, tu donnes une valeur à la variable $Prénom si le champ correspondant est rempli, et puis ensuite si $Prénom a une valeur, tu affiches un message d'erreur comme quoi le champ est vide. Si c'est le cas, normal que tu aies le problèmes que tu décris... :-S

Pour vérifier si tes champs sont vides sans te casser la tête, une condition de ce genre te suffit :

if (isset($_POST['champ']) && $_POST['champ'] != '') {
print 'Youpi !';
} else {
print 'Erreur.';
}

Est-ce que ça répond à ta question ? Sinon, essaie de me réexpliquer, redonne-moi le code PHP que tu crois pertinent... Pas besoin de me donner le Javascript ou même le HTML, je pense que ça devrait marcher, en autant que tu fermes tes balises.

Aussi, pour vérifier tes champs, as-tu pensé à faire un :

print_r($_POST);

lors de l'envoi du formulaire ? Ça devrait te donner l'info dont tu as besoin...
Salut, un petit script sympa pour la vérification des champs libres en javascript
<script language="JavaScript">
<!--
function couleur(obj) {
     obj.style.backgroundColor = "#FFFFFF";
}
 
function check() {
	var msg = "";
 		 
		if (document.formulaire.value != "")	{
		indexAroba = document.formulaire.email.value.indexOf('@');
		indexPoint = document.formulaire.email.value.indexOf('.');
		if ((indexAroba < 0) || (indexPoint < 0))		{
		document.formulaire.email.style.backgroundColor = "#F3C200";
			msg += "Adresse email incorrecte\n";
		}
	}
	else	{
		document.formulaire.emailclient.style.backgroundColor = "#F3C200";
		msg += "Veuillez saisir votre mail.\n";
	}
 
if (document.formulaire.nom.value == "")	{
		msg += "Veuillez saisir votre nom\n";
		document.formulaire.nom.style.backgroundColor = "#F3C200";
	}
 
	if (msg == "") return(true);
	else	{
		alert(msg);
		return(false);
	}
}
//-->
</script>


dans ton formulaire
<form method="post" action="tapage.php" name="formulaire" onSubmit="return check();">


et pour chaque champs
<input name="lenom" id="lenom" type="text" size="15" onKeyUp="javascript:couleur(this);">


et pour récupérer dans ta php
<?php
if(isset($_POST["Submit"]))
{
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$email = $_POST["email"];
}
?>


j'espère que ça peut t'aider.
ciaooo
Messages postés
101
Date d'inscription
mardi 28 décembre 2010
Statut
Membre
Dernière intervention
9 janvier 2013
2
Un grand merci a toi coeus, je vais donc commencer par normaliser mon code html.

donc si j ai bien compris je place le formulaire dans les balises <from>

Je ferme les options

<select name="année"><option selected
value="Année">Année</option>
value="2011">2011</option>
value="2010">2010</option>
value="2009">2009</option>


et je ferme les <p>

<p align="right"><label for="Prénom">Prénom</label> : <input type="text" name="Prénom" id="Prénom" style="height:15px; width:110px; font-size:15px;" /> </p>

</from>

J' ai énormément de question bon courage a vous ced :p
Messages postés
3019
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
120
En fait, pour être sûrs qu'on se comprend :

<select name="annee">
	<option selected="selected" value="Année">Année</option>
	<option value="2011">2011</option>
	<option value="2010">2010</option>
	<option value="2009">2009</option>
	<option value="2008">2008</option>
</select>


Je te conseille de ne pas utiliser de caractères accentués (é, à et compagnie) pour les "name", les "id" et les "class" dans tes balises HTML, et pas non plus pour les noms de variables en JS ou PHP. Ça peut causer problème éventuellement :-S

Bon courage, comme tu dis ! ;-)
Messages postés
3019
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
19 juin 2013
120
Je veux juste spécifier que la discussion s'est poursuivie en MP. D'autres questions ont dû être posées. Mais je pense que la question initiale a été répondue ici.
Non la question initiale était :

Vérifier les champs d' un formulaire en PHP !!!