Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2007, 12h45   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 47
Points : 3
Points : 3
Par défaut vérification de formulaire

bonjour
j'ai ecri un script pour verifier un formulaire (logi,; password) mais auccune verification ne se fait tout est enregistrer dans la base mais meme si le champs n'est pas rempli.

quelqu'un pouura m'aider.merci

voici mon script:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
 
<?php
include("connexion.php");
 
$nom=trim(addslashes(strip_tags($_POST['nom'])));
$prenom=trim(addslashes(strip_tags($_POST['prenom'])));
$code_postale=trim(addslashes(strip_tags($_POST['code_postale'])));
$ville=trim(addslashes(strip_tags($_POST['ville'])));
$pays=trim(addslashes(strip_tags($_POST['pays'])));
$login=trim(addslashes(strip_tags($_POST['login'])));
$password1=trim(addslashes(strip_tags($_POST['password1'])));
$password2=trim(addslashes(strip_tags($_POST['password2'])));
 
if(strlen($nom)==0 || strlen($prenom)==0 || strlen($code_postale)==0|| strlen($ville)==0 || strlen($pays)==0)
    {
	 if(strlen($_POST['login'])<6)
	   {
	 echo"votre login est trop court et doit comporter 6 caractères"."<br>";
	   }
	   if(strlen($_POST['password1'])<6 && strlen($_POST['password2'])<6)
	   {
	    echo"votre password doit etre composé de 6 caractères"."<br>";
		}
		if($_POST['password1']!=$_POST['password2'])
		{
		  echo"vos password ne sont pas identiques"."<br>";
		  }
		  $sql="select login FROM client WHERE login='".addslashes($_POST['login'])."'";
		  $req=mysql_query($sql);
		  $result=mysql_num_rows($req);
		  if($result!=0)
		  {
		    echo"votre login est dejà utilisé";
			}
 
	}
else {
      $sql="INSERT INTO client(nom,prenom,code_postale,ville,pays,login,password1, password2) VALUES('".$nom."','".$prenom."', '".$code_postale."', '".$ville."', '".$pays."', '".$login."', '".$password1."','".$password2."')";
	 $req=mysql_query($sql);
	 }
?>
<html>
<head>
<title>inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
  <table border="0" cellspacing="0" cellpadding="0" align="center">
          <tr valign="top">
		    <td width="337"><br><br><br>
          <b>merci vos donnée ont été bien enrégistrer!!!.</b>
   </td>
		  </tr>
     </table>
</body>
</html>
car00x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 13h12   #2
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Tu imbriques tes tests dans ta première condition, et cette condition correspond à un champ vide.
Si aucun des champs testés n'est vide, tu passes donc dans le premier else et tu insères.

Tes vérifications supplémentaires (après celles des champs vides) doivent donc se trouver dans ton else
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 13h20   #3
Membre à l'essai
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 21
Points : 21
donc dans un premier temps, tes echo se font avant le début de la page html
tu ouvre ta page html après tes vérifications alors que tes echo devrait être dans le corp de la page html (contenue entre les balises <body> et <.body>).

ensuite après ce traitement :
Code :
1
2
3
4
5
6
7
8
$nom=trim(addslashes(strip_tags($_POST['nom'])));
$prenom=trim(addslashes(strip_tags($_POST['prenom'])));
$code_postale=trim(addslashes(strip_tags($_POST['code_postale'])));
$ville=trim(addslashes(strip_tags($_POST['ville'])));
$pays=trim(addslashes(strip_tags($_POST['pays'])));
$login=trim(addslashes(strip_tags($_POST['login'])));
$password1=trim(addslashes(strip_tags($_POST['password1'])));
$password2=trim(addslashes(strip_tags($_POST['password2'])));
tu es sur que tu obtiens des string vide si la valeur passer en post était null?
ensuite dans ta vérification, il y a un petit soucis. tu fais les autres test que si une des valeurs est vide alors qu'il faudrait le faire que si tu n'as pas de valeur vide. Essaye avec quelque chose dans ce genre là :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<html>
<head>
<title>inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
<?php
include("connexion.php");
if(strlen($nom)==0 || strlen($prenom)==0 || strlen($code_postale)==0|| strlen($ville)==0 || strlen($pays)==0)
{
      if (tout les condition de validité)
      {
             requète sql
             message de confirmation 
      }
      else
      {
            if (une condition)
            {
                    message de l'erreur correspondante
            }
            if (une autre condition)
            {
                    message de l'erreur correspondante
            }
      }
 
}
else
{
    echo "veuillez remplir tout les champs";
}
 
?>
</body>
</html>
azraelster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 13h21   #4
Invité de passage
 
Inscription : septembre 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 47
Points : 3
Points : 3
Par défaut verification de formuliare

merci, donc le code devrait etre de la sorte:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
include("connexion.php");
 
$nom=trim(addslashes(strip_tags($_POST['nom'])));
$prenom=trim(addslashes(strip_tags($_POST['prenom'])));
$code_postale=trim(addslashes(strip_tags($_POST['code_postale'])));
$ville=trim(addslashes(strip_tags($_POST['ville'])));
$pays=trim(addslashes(strip_tags($_POST['pays'])));
$login=trim(addslashes(strip_tags($_POST['login'])));
$password1=trim(addslashes(strip_tags($_POST['password1'])));
$password2=trim(addslashes(strip_tags($_POST['password2'])));
 
if(strlen($nom)==0 || strlen($prenom)==0 || strlen($code_postale)==0|| strlen($ville)==0 || strlen($pays)==0)
    {
	 echo"vous devez remplir les champs vides";		
	}
else {
if(strlen($_POST['login'])<6)
	   {
	 echo"votre login est trop court et doit comporter 6 caractères"."<br>";
	   }
	   if(strlen($_POST['password1'])<6 && strlen($_POST['password2'])<6)
	   {
	    echo"votre password doit etre composé de 6 caractères"."<br>";
		}
		if($_POST['password1']!=$_POST['password2'])
		{
		  echo"vos password ne sont pas identiques"."<br>";
		  }
		  $sql="select login FROM client WHERE login='".addslashes($_POST['login'])."'";
		  $req=mysql_query($sql);
		  $result=mysql_num_rows($req);
		  if($result!=0)
		  {
		    echo"votre login est dejà utilisé";
			}
      $sql="INSERT INTO client(nom,prenom,code_postale,ville,pays,login,password) VALUES('".$nom."','".$prenom."', '".$code_postale."', '".$ville."', '".$pays."', '".$login."', '".$password."')";
	 $req=mysql_query($sql);
	 }
?>
car00x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 13h30   #5
Membre à l'essai
 
Inscription : novembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 26
Points : 21
Points : 21
dans ton code là, ta requète se fait quand même si le nom est trop court mais tu affiche quand même qu'il est trop court. Pareil pour les autres conditions.
azraelster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 14h40   #6
Invité de passage
 
Inscription : septembre 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 47
Points : 3
Points : 3
Par défaut verification de formulaire

j'ai essayé ton code mais le problème c'est que malgré que les champs sont remplis je recois un message que je dois remplir tous les champs et la verification ne se fait pas toujours.et auusi l'enregistrement ne se fait plus dans la base

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
<html>
<head>
<title>inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
  <table border="0" cellspacing="0" cellpading="0" align="center">
   <tr valign="top">
     <td>
 
<?php
$etat=false;
include("connexion.php");
$nom=trim(addslashes(strip_tags($_POST['nom'])));
$prenom=trim(addslashes(strip_tags($_POST['prenom'])));
$code_postale=trim(addslashes(strip_tags($_POST['code_postale'])));
$ville=trim(addslashes(strip_tags($_POST['ville'])));
$pays=trim(addslashes(strip_tags($_POST['pays'])));
$login=trim(addslashes(strip_tags($_POST['login'])));
$password1=trim(addslashes(strip_tags($_POST['password1'])));
$password2=trim(addslashes(strip_tags($_POST['password2'])));
if(strlen($nom)==0 || strlen($prenom)==0 || strlen($code_postale)==0|| strlen($ville)==0 || strlen($pays)==0)
{
      if ($etat=true)
      {
              $sql="INSERT INTO client(nom,prenom,code_postale,ville,pays,login,password) VALUES('".$nom."','".$prenom."', '".$code_postale."', '".$ville."', '".$pays."', '".$login."', '".$password."')";
	 $req=mysql_query($sql);
           echo"<b>merci vos donnée ont été bien enrégistrer!!!.</b>";
      }
      else
      {
	        $sql="select login FROM client WHERE login='".addslashes($_POST['login'])."'";
		  $req=mysql_query($sql);
		  $result=mysql_num_rows($req);
		  if($result!=0)
		    {
		    echo"votre login est dejà utilisé";
			}
 
            if (strlen($_POST['login'])<6)
            {
                    echo"votre login est trop court et doit comporter 6 caractères"."<br>";
            }
            if (strlen($_POST['password1'])<6 && strlen($_POST['password2'])<6)
            {
                 echo"votre password doit etre composé de 6 caractères"."<br>";
            }
			if($_POST['password1']!=$_POST['password2'])
			{
		  echo"vos password ne sont pas identiques"."<br>";
		    }
      }
 
}
else
{
    echo "veuillez remplir tout les champs";
}
 
?>
 </td>
	 </tr> 
  </table>
</body>
</html>
car00x est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 14h44   #7
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Ton problème ici n'est pas au niveau du langage mais au niveau algorithmique.

Pose ton problème sur le papier, en pseudo code ou autre, et la solution te viendra naturellement
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web