Controle données formulaire

Fermé
Sunsea - 9 juin 2004 à 10:36
layork Messages postés 361 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 6 avril 2009 - 9 juin 2004 à 15:50
Bonjour,

Dans un formulaire j'ai un champ de 3 caractères qui doit etre obligatoirement rempli. j'ai une page PHP qui fait les traitements de mon formulaire (insertion des données dans une base MySql) mais je voudrai indiquer de bien remplir ce champ si ce n'est pas fait.

J'ai essayé de faire avec un if mais je n' y arrive pas.

Merci pour votre aide... voici le code actuel qu ine fonctionne pas
if ($reponse="")
{


print("Veuillez remplir le champ trigramme");
}
else
{

print("Champ trigramme ok");
}

22 réponses

flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 10:39
Le plus simple est de faire une fonction JavaScript qui vérifie que ce champ soit rempli et qui empêche la soumission du formulaire le cas échéant, sur la page du formulaire.


.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
Ok mais comment faire cela? Car le javascript.....
0
Comment as tu récupéré des données ?
Peut tu mettre ton code des deux pages pour voir un peu plus clair! =)

Flipody
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 10:43
Prends exemple sur ce post :

http://www.commentcamarche.net/forum/affich-793474-controle-de-champs-mailto#1

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0

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

Posez votre question
Voici le code de mon fichier html :

<form name="sondage" method="post" action="http://******/****/****/sondage.php">
<table width="60%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="texte"><p> </p>
<p align="center" class="boutonaccueil">Que souhaitez vous effectuer comme sorties?</p>
<p> </p></td>
</tr>
<tr>
<td class="texte"><div align="center"></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="texte">Trigramme : </td>
<td><input name="auteur" type="text" size="3" maxlength="3"></td>
</tr>
<tr>
<td width="31%" class="texte">Souhait : </td>
<td width="69%"><p>
<textarea name="reponse" id="reponse"></textarea>
</p>
<p><span class="pied">(255 caractères maximum) </span></p></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="99"><div align="center">
<br>
<p><input type="submit" Value="Valider"></p>


<p align="left"> </p>
</div>
</td>
</tr>
</table>
</form>

et mon fichier php qui recupere cela :

<?php
if ($reponse="")
{


print("Veuillez remplir le champ trigramme");
}
else
{

print("Champ trigramme ok");
}
// utilisation du fichier librairie contenant les différentes fonctions
include("../librairies/librairiebdd.php");

// utilisation de la fonction pour ouvrir la BDD
$link=OuvreBase("***");

// requete SQL d'enregistrement du sondage
$requete="INSERT INTO sondage(idsond,auteur,reponse) VALUES('','".$_POST['auteur']."','".$_POST['reponse']."')";
$resultat=mysql_query($requete);

// fermeture de la BDD
FermeBase($link);

?>
0
Hum oui je pense ke flokocha a raison, il serai plus judicieux d'effectuer le controle dans la page html au moment ou tu clique sur le bouton submit, de plus le code en javascript n'est pas trop lourd. Parce que si tu controle dans la page php, dans le cas ou l'utilisateur n'aurai pas saisi, il faudrai lui faire retourner a la page html pour qu'il recommence je suppose, dc ca c'est plutot lourd!

Flipody
0
Cela fonctionne sauf que lorsque le champ est vide j'ai bien le message qui s'affiche mais la redirection vers ma page php se fait qand meme!! C'est un peu embetant! :-)
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 11:04
Tu as bien repris la deuxième solution du message que je t'ai donné et pas la première ?

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 11:08
Ah oui pardon, j'ai fait un oubli sur le message que je t'ai donné !

Il faut en réalité écrire :
onSubmit="return verifForm(this.form)"

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
Ouais je viens de tesetr avec la deuxième solution et des que je clique sur le bouton ok de la fenettre alert ca me redirige vers ma page....


<SCRIPT LANGUAGE="JavaScript">
function verifForm(formulaire)
{
if(sondage.auteur.value == "")
alert('Vous avez oublié de saisir votre trigramme !');
else
return true;
}
</script>
<form name="sondage" method="post" action="http://*****/pages/voyages/sondage.php" onSubmit="return verifForm(this.form)">
0
C'est normal dans la mesure ou sur le click submit l'action du formulaire se lance, essai ce code :

dans ta balise <head>
<SCRIPT LANGUAGE="JavaScript">
function verifForm()
{
if(sondage.auteur.value == "")
alert('Vous avez oublié de saisir votre trigramme !');
else
sondage.go.click();
}
</script>

dans ta balise <body>
<form name="sondage" method="post" action="http://*****/pages/voyages/sondage.php">
<input type="text" name="auteur" size="20"> //ici c'est ta zone de texte a vérifier
<input type="button" value="Ok" name="bouton" onClick="verifForm()"> //ici le bouton sur lequel d'effectue le controle
<input type="submit" name=go style="visibility:hidden;"> //ici le bouton (caché) qui s'executera si le controle est bon et qui lancera ta page php
</form>

Bon courage
Flipody
0
layork Messages postés 361 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 6 avril 2009 11
9 juin 2004 à 14:12
salut, je suis dans le meme cas que le posteur du mess, et en fait e me demandai un truc
comment l'utilisateur va valider, si le bouton est hidden???
<input type="submit" name=go style="visibility:hidden;">


l'informatique ca rend fou!!!!!
0
c'est la qu'il y a l'astuce, en fait il y a deux boutons ! un premier visible qui exectue la fonction javascript et un deuxieme invisible qui est juste la pour lancer l'action du formulaire et ainsi recupere les données PHP ensuite sans pb. Ce bouton submit est executé dans la fonction

Flipody
0
Wahou!! Merci beaucoup ...ca marche niquel je vais faire ca pour ma zone de texte du coup!!!!

Pourrais tu m'expliquer cette ligne de code :
<input type="submit" name=go style="visibility:hidden;">

Et sinon je souhaite qu'une seule personne puisse voter. Il faut que j'utilise l'IP privée de chaque poste mais je crois qu'avec du java c possible et plus simple qu'avec du php....Connais tu ce domaine?
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 14:00
La variable $_SERVER["REMOTE_ADDR"] te donne l'IP du client.

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 14:02
Ah pardon j'avais pas vu que tu voulais le faire en Java.


.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
<input type="submit" name=go style="visibility:hidden;">
Cette ligne de code est un bouton du formulaire, c'est le bouton submit qui lance ta page php si ton controle est bon, seulement, on ne veut pas le voir donc on rajoute un style pour le rendre invisible (visibility:hidden;)
Il est exécuté si tu regarde bien dans la fonction Javascript par : sondage.go.click();

Sinon pour récupérer l'adresse ip , en javascript je ne l'ai jamais fais, mais il me semble que c'est un peu plus compliqué qu'en PHP. Car en PHP il n'y a qu'une ligne com l'a di flokocha : echo "IP : $REMOTE_ADDR";

Flipody
0
layork Messages postés 361 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 6 avril 2009 11
9 juin 2004 à 14:19
bon, j'ai pile le meme probleme, mais le truc c'est que moi ca marche po :(
j'ai "essayé" de faire comme vous l'avez indiqué, mais lorsqe je lance ma page, c'est marqué en bas "erreur sur la page"
si vous poviez meclairer ce serait cool ;)

voici mon code:

<html>
<head>
<title>Modifications</title>
<SCRIPT LANGUAGE="JavaScript">
function verifForm(formulaire){
if( formulaire.new_numprest.value == "")
alert('Le champ est vide !!!');
else
formulaire.submit();
}
</SCRIPT>

</head>
<body bgcolor="lightblue">
<img border="0" src="caliseo.jpg"><br>


<?
$bdd = "auvergnelocal";
$user = "root";
$passwd = "";
$host = "localhost";
$numsite = $_GET['site_num1'];
$site_num2 = $_GET['site_num2'];

mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");



$requete=mysql_query("SELECT * FROM `adherent` WHERE site_num1=$numsite AND site_num2=$site_num2 " );
$donnees = mysql_fetch_array ($requete)
?>


<form name=formulaire ACTION="traitement.php" METHOD="get">
<table border="3" cellspacing="6" cellpadding="5">
<tr>
<td><INPUT TYPE="Hidden" NAME="site_num1" VALUE="<? echo $numsite; ?>"></td>
<td><INPUT TYPE="Hidden" NAME="site_num2" VALUE="<? echo $site_num2; ?>"></td>
</tr>


<tr>
<td>Nom:</td>
<td><input type="texte" name="new_nm" size="20" value="<?echo($donnees['nm']);?>"></td>
</tr>

<tr>
<td>Nom de l etablissement: </td>
<td><input type="texte" name="new_etb" size="20" value="<?echo($donnees['etb']);?>"></td>
<tr>
<tr>
<td>Code postal:</td>
<td><input type="texte" name="new_cp" size="20" value="<?echo($donnees['cp']);?>"></td>
<tr>
<tr>
<td>Adresse:</td>
<td><input type="texte" name="new_ad" size="20" value="<?echo($donnees['ad']);?>"></td>
<tr>
<tr>
<td>Ville:</td>
<td><input type="texte" name="new_vl" size="20" value="<?echo($donnees['vl']);?>"></td>
<tr>
<tr>
<td>Type de liaison:</td>
<td><input type="texte" name="new_type_liaison" size="20" value="<?echo($donnees['type_liaison']);?>"></td>
<tr>
<tr>
<td>Numero de prestation:</td>
<td><input type="texte" name="new_numprest" size="20" value="<?echo($donnees['numprest']);?>"></td>
<tr>
<tr>
<td>Communauté:</td>
<td><input type="texte" name="new_communaute" size="20" value="<?echo($donnees['communaute']);?>"></td>
<tr>
<tr>
<td>IPlan:</td>
<td><input type="texte" name="new_iplan" size="20" value="<?echo($donnees['iplan']);?>"></td>
<tr>
<tr>
<td>masque lan:</td>
<td><input type="texte" name="new_masque_lan" size="20" value="<?echo($donnees['masque_lan']);?>"></td>
<tr>
<tr>
<td>ipmgmt:</td>
<td><input type="texte" name="new_ipmgmt" size="20" value="<?echo($donnees['ipmgmt']);?>"></td>
<tr>
<tr>
<td>contact:</td>
<td><input type="texte" name="new_contact" size="20" value="<?echo($donnees['contact']);?>"></td>
<tr>
<tr>
<td>tel:</td>
<td><input type="texte" name="new_tl" size="20" value="<?echo($donnees['tl']);?>"></td>
<tr>
<tr>
<td>page stat:</td>
<td><input type="texte" name="new_page_stat" size="20" value="<?echo($donnees['page_stat']);?>"></td>
<tr>
<tr>
<td>vp vc:</td>
<td><input type="texte" name="new_vp_vc" size="20" value="<?echo($donnees['vp_vc']);?>"></td>
<tr>
<tr>
<td>circuit BNC:</td>
<td><input type="texte" name="new_circuit_BNC" size="20" value="<?echo($donnees['circuit_BNC']);?>"></td>
<tr>
<tr>
<td>materiel actif:</td>
<td><input type="texte" name="new_materiel_actif" size="20" value="<?echo($donnees['materiel_actif']);?>"></td>
<tr>
<tr>
<td>serial IPSEC:</td>
<td><input type="texte" name="new_serial_IPSEC" size="20" value="<?echo($donnees['serial_IPSEC']);?>"></td>
<tr>
<tr>
<td>IPwan:</td>
<td><input type="texte" name="new_ipwan" size="20" value="<?echo($donnees['ipwan']);?>"></td>
<tr>
<tr>
<td>masque wan:</td>
<td><input type="texte" name="new_masque_wan" size="20" value="<?echo($donnees['masque_wan']);?>"></td>

<tr>
<tr>
<td>IP lan2:</td>
<td><input type="texte" name="new_iplan2" size="20" value="<?echo($donnees['iplan2']);?>"></td>
<tr>

</table>
<input type="button" value="Ok" name="bouttonok" onClick="verifForm()">
<input type="submit" name=go style="visibility:hidden;">
</form>





<?mysql_close();?>
<a href=siteman.php>Retour a la page d acceuil</a>
</body>
</html>

l'informatique ca rend fou!!!!!
0
oui il y a une toute petite erreur dans ta fonction javascript, remplace cette ligne : formulaire.submit(); par celle ci :
formulaire.go.click();

je pense que ca doit marcher.

Flipody
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 14:21
C'est normal que ça ne marche pas, tu ne passes pas d'argument à ta fonction quand tu l'appelles !

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
layork Messages postés 361 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 6 avril 2009 11
9 juin 2004 à 14:22
oui....
c'est a dire?????

l'informatique ca rend fou!!!!!
0
effectivement, dans ta fonction enleve l'argument
en fait voila ta fonction com elle doit l'etre :

<SCRIPT LANGUAGE="JavaScript">
function verifForm()
{
if( formulaire.new_numprest.value == "")
alert('Le champ est vide !!!');
else
formulaire.go.click();
}
</SCRIPT>
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 14:30
Et bien tu définis ta fonction comme ça :
function verifForm(formulaire) {...}

Ce qui signifie que cette fonction a besoin d'un argument ("formulaire") pour fonctionner.
Il faut donc qu'au moment où tu appelles ta fonction, tu lui transmettes cet argument qu'elle attend.
Or toi tu appelles cette fonction comme ça :
onClick="verifForm()"
Dans ce cas tu ne lui passes aucun argument, il faut que tu écrives
onClick="verifForm(this.form)">

Mais si tu veux obtenir quelque chose de concluant, utilise la fonction de Flipody.

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0
layork Messages postés 361 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 6 avril 2009 11
9 juin 2004 à 15:10
ba c est nikel, ca marche avec 1, mais avec plein , ca marche po :(

<SCRIPT LANGUAGE="JavaScript">
function verifForm()
{
if( formulaire.new_numprest.value == "" || formulaire.new_site_num1.value=="" || formulaire.new_site_num2.value=="" ||
formulaire.new_etb.value=="" || formulaire.new_type_liaison.value=="" || formulaire.new_numprest.value=="" ||formulaire.new_communaute.value=="" ||
formulaire.new_contact.value=="" || formulaire.new_tl.value=="" || formulaire.new_page_stat.value=="" || formulaire.new_vp_vc.value=="")
alert('Le champ est vide !!!');
else
formulaire.go.click();
}
</SCRIPT>

l'informatique ca rend fou!!!!!
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 280
9 juin 2004 à 15:12
Il faut faire attention à la syntaxe aussi ! ;)

Tu as des espaces mal placés, et certains manquent... Relis ton script !

.::: "A trop vouloir feindre de faire fi, on finit 
par faire fi de vouloir feindre." 
:::.
0