Salut!

Bon, vous commencez à me connaître! Aujourd'hui j'aurais besoin d'une aide pour mon formulaire...

Le problème, c'est même si le formulaire est vide, une fois que l'on clique sur valider, l'inscription s'effectue. Bien entendu, j'ai une chiée de données vides dans ma DB et ça ne va pas!

Voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!D:/Perl/bin
use DBI;
use CGI;
my $cgi = CGI::new();
use strict;
 
 
 
    #print "content-type:text/html\n\n";
    my $noerror='true';
 
    #CONNECTION à la DB
 
    my $path="dbi:mysql:dbname=form_competence";
    my $user='root';
    my $pswd='*****';
    my $connexion=DBI->connect($path,$user,$pswd) or die ('Erreur de connexion...');
 
    #PREPARATION tableau associatif de cgi()
 
    my %data =();
    %data= ("can_prenom"=>$cgi->param('prenom'),
            "can_nom"=>$cgi->param('nom'),
            "can_sexe"=>$cgi->param('sexe'),
            "can_ddn"=>$cgi->param('can_an').'-'.$cgi->param('can_mois').'-'.$cgi->param('can_jour'),
            "can_adresse"=>$cgi->param('adress'),
            "can_cp"=>$cgi->param('cp'),
            "can_loc"=>$cgi->param('location'),
            "can_pays"=>$cgi->param('pays'),
            "can_email"=>$cgi->param('mail'),
            "can_tel"=>$cgi->param('phone'),
            "can_gsm"=>$cgi->param('gsm'),
            "can_fax"=>$cgi->param('fax'),
            "can_login"=>$cgi->param('login'),
            "can_pwd"=>$cgi->param('pswd2'),
            "can_pwd2"=>$cgi->param('pswd'),
            );
 
 
    #l'user rempli le formulaire...
    #VERIFICATION de la validité de l'inscription
 
 
    if ($data{can_pswd} ne $data{can_pswd2}){
        die "Les mots de passe sont différents";
        $noerror='false';
    }
 
    if (($data{can_nom}!~ /^[A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ\sa-zàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿß\-]+$/)){
        print 'Problème au niveau du nom'."\r"."<br/>";
        $noerror='false';
    }
 
    if (($data{can_prenom}!~/^[A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ\sa-zàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿß\-]+$/)){
        print 'Problème au niveau du prénom'."\r"."<br/>";
        $noerror='false';
    }
 
    if (($data{can_loc}!~/^[A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ\sa-zàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿß\-]+$/)){
        print 'Problème au niveau du nom de la ville'."\r"."<br/>";
        $noerror='false';
    }
 
    if (($data{can_pays}!~/^[A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØŒŠþÙÚÛÜÝŸ\sa-zàáâãäåæçèéêëìíîïðñòóôõöøœšÞùúûüýÿß\-]+$/)){
        print 'Problème au niveau du pays'."\r"."<br/>";
        $noerror='false';
    }
 
    if ($data{can_email}!~/^[^@]+@(([\w\-]+\.){1,4}[a-zA-z]{2,4}$|([0-1]?[0-9]?[0-9]|2[0-4][0-9]|2[0-5][0-5])((\.)([0-1]?[0-9]?[0-9]|2[0-4][0-9]|2[0-5][0-5])){3})/){
        print 'Problème au niveau de l\'adresse e-mail'."\r"."<br/>";
        $noerror='false';
    }
 
    if ($data{can_tel}=~/[^0-9]/){
        print 'Problème au niveau du numéro de téléphone'."\r"."<br/>";
        $noerror='false';
    }
    if ($data{can_fax}=~/[^0-9]/){
        print 'Problème au niveau du numéro de fax'."\r"."<br/>";
        $noerror='false';
    }
 
    if ($data{can_gsm}=~/[^0-9]/){
        print 'Problème au niveau du numéro de gsm'."\r"."<br/>";
        $noerror='false';
    }
 
    if ($data{can_cp}=~/[^0-9]/){
        print 'Problème au niveau du code postal'."\r"."<br/>";
        $noerror='false';
    }
 
    if ($noerror=='true'){
 
        #CREATION requête
 
        my $query=( "INSERT INTO candidats (    
                                        can_nom,
                                        can_prenom,
                                        can_sexe,
                                        can_adresse,
                                        can_ddn,
                                        can_cp,
                                        can_loc,
                                        can_pays,
                                        can_email,
                                        can_tel,
                                        can_fax,
                                        can_gsm,
                                        can_login,
                                        can_pwd)
 
                                    VALUES    (
                                            '$data{can_nom}',
                                            '$data{can_prenom}',
                                            '$data{can_sexe}',
                                            '$data{can_adresse}',
                                            '$data{can_ddn}',
                                            '$data{can_cp}',
                                            '$data{can_loc}',
                                            '$data{can_pays}',
                                            '$data{can_email}',
                                            '$data{can_tel}',
                                            '$data{can_fax}',
                                            '$data{can_gsm}',
                                            '$data{can_login}',
                                            '$data{can_pswd2}');
                                            ");
 
        #EXECUTION requête (CREATION nouvel user)
 
        $connexion->do($query);
 
        #print "content-type:text/html\n\n";
        #print $query;
 
        print $cgi->redirect("location:/rst406/labo1/gestion_cpte.html\n\n");
 
    }
En fait même si $noerreor='false' il effectue quand même la requête et tout le reste... Pourtant, c'est pas compliqué, je l'ai mis dans un 'if' ça devrait suffire non?? Franchement, je sais pas d'où ça peut venir...

J'attends votre aide!! Merci d'avance...