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 12/08/2011, 02h14   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Par défaut Une fonction dans une class formulaire

bonjour,

j'ai une fonction dans une class formulaire qui retourne toujours false, meme si les donnees sont bien rempli:

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
public function check_FormData($champs, $method=array(), $eMsg){
 
         $this->champs = $champs;
         $this->method = $method;
         $this->eMsg = $eMsg;
 
         //echo $this->champs.'<br>';
         //echo $this->method.'<br>';
         //echo $this->eMsg.'<br>';
 
            if(is_array($this->method))
            {
            foreach($this->method as $km=>$vm)
            {
           //     echo 'km: '.$km.' vm: '.$vm;
 
                switch($km)
            {
                case 'min':
                    if(mb_strlen($_POST[$this->champs], 'utf-8') < $vm)
                        {
                            echo 'message erreur min: '.$this->eMsg.'<br>';
                            return FALSE;    
                        }
                        else
                        {
                            return TRUE;    
                        }
 
 
                break;
 
                case 'max':
                    if(mb_strlen($_POST[$this->champs], 'utf-8') > $vm)
                        {
                            echo 'message erreur max: '.$this->eMsg.'<br>';
                            return FALSE;    
                        }
                        else
                        {
                            return TRUE;    
                        }
 
 
                break;
 
                /*
                case 'regex':
                //echo $this->eMsg;
                break;
                */
 
            }
 
 
            }
            }
            else
            {
                echo 'defaut de method';
            }
 
	} // end check fields
 
 
 	public function sendData() {
 
        echo 'res check form data: <b>'.$this->check_FormData($champs, $method=array(), $eMsg).'</b><br>';
 
		if(($this->check_FormData($champs, $method=array(), $eMsg)) === TRUE){
				echo 'ouiiiiiiiiiiiiiiiiiiii Greatz';
 
				} else {
					echo 'nooooooooooooon';
					}
				}
 
// utilisation:
 
if(isset($_POST['Send'])){ //form_example
 
              $f->check_FormData('MyName', array('min'=>5), 'message min');
              $f->check_FormData('MyName', array('max'=>10), 'message max');
              $f->check_FormData('MyName', array('regex'=>'[pattern]'), 'message regex');
 
              echo $f->sendData();
       }
le resultat de:

Code :
echo 'res check form data:<b>'.$this->check_FormData($champs, $method=array(), $eMsg).'</b><br>';
n'affiche rien

merci pour votre aide
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 09h56   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 773
Points : 2 332
Points : 2 332
Citation:
Envoyé par isitien Voir le message
bonjour,

j'ai une fonction dans une class formulaire qui retourne toujours false, meme si les donnees sont bien rempli:

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
public function check_FormData($champs, $method=array(), $eMsg){
 
         $this->champs = $champs;
         $this->method = $method;
         $this->eMsg = $eMsg;
 
         //echo $this->champs.'<br>';
         //echo $this->method.'<br>';
         //echo $this->eMsg.'<br>';
 
            if(is_array($this->method))
            {
            foreach($this->method as $km=>$vm)
            {
           //     echo 'km: '.$km.' vm: '.$vm;
 
                switch($km)
            {
                case 'min':
                    if(mb_strlen($_POST[$this->champs], 'utf-8') < $vm)
                        {
                            echo 'message erreur min: '.$this->eMsg.'<br>';
                            return FALSE;    
                        }
                        else
                        {
                            return TRUE;    
                        }
 
 
                break;
 
                case 'max':
                    if(mb_strlen($_POST[$this->champs], 'utf-8') > $vm)
                        {
                            echo 'message erreur max: '.$this->eMsg.'<br>';
                            return FALSE;    
                        }
                        else
                        {
                            return TRUE;    
                        }
 
 
                break;
 
                /*
                case 'regex':
                //echo $this->eMsg;
                break;
                */
 
            }
 
 
            }
            }
            else
            {
                echo 'defaut de method';
            }
 
	} // end check fields
 
 
 	public function sendData() {
 
        echo 'res check form data: <b>'.$this->check_FormData($champs, $method=array(), $eMsg).'</b><br>';
 
		if(($this->check_FormData($champs, $method=array(), $eMsg)) === TRUE){
				echo 'ouiiiiiiiiiiiiiiiiiiii Greatz';
 
				} else {
					echo 'nooooooooooooon';
					}
				}
 
// utilisation:
 
if(isset($_POST['Send'])){ //form_example
 
              $f->check_FormData('MyName', array('min'=>5), 'message min');
              $f->check_FormData('MyName', array('max'=>10), 'message max');
              $f->check_FormData('MyName', array('regex'=>'[pattern]'), 'message regex');
 
              echo $f->sendData();
       }
le resultat de:

Code :
echo 'res check form data:<b>'.$this->check_FormData($champs, $method=array(), $eMsg).'</b><br>';
n'affiche rien

merci pour votre aide
Bonjour,

J'aurais tendance à dire que c'est normal que rien ne s'affiche, au vu du code que tu nous montres. Que contiennent tes variables que tu passes en paramètre ?
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 10h22   #3
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
si je laisse vide le message d'erreur correspondant s'affiche, si je mets des mots par exemple 'test test' il affiche 'nooooooooooooon'
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 13h49   #4
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 773
Points : 2 332
Points : 2 332
Citation:
Envoyé par isitien Voir le message
si je laisse vide le message d'erreur correspondant s'affiche, si je mets des mots par exemple 'test test' il affiche 'nooooooooooooon'
Si tu ne mets que des string, c'est normal, ta fonction attend un tableau en entrée.
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 15h21   #5
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
Envoyé par FirePrawn Voir le message
Si tu ne mets que des string, c'est normal, ta fonction attend un tableau en entrée.
et comment faire pour le rendre en tableau?
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 02h17   #6
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
quand je rempli la fonction sendData par des donnees ca marche:

Code :
1
2
 
if($this->check_FormData('nom', 'min'=>5, 'Message erreur')){
je l'ai remplace par:

Code :
1
2
 
if($this->check_FormData($this->champs, $this->method=array(), $this->eMsg)){
et ca marche pas
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 01h30   #7
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
un var_dump me donne un NULL:

Code :
1
2
 
var_dump($this->check_FormData($this->champs, $this->method=array(), $this->eMsg));
isitien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 11h03   #8
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 773
Points : 2 332
Points : 2 332
Ce qui, d'après le code quelques messages est plus haut, est tout à fait normal.
Tes variables ne sont instanciées nul part, elles sont vides. Comment veux-tu que ta fonction te retourne un résultat si tu lui passes des paramètres vides ?
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 21h01   #9
Membre du Club
 
Inscription : janvier 2007
Messages : 410
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 410
Points : 56
Points : 56
Citation:
Envoyé par FirePrawn Voir le message
Ce qui, d'après le code quelques messages est plus haut, est tout à fait normal.
Tes variables ne sont instanciées nul part, elles sont vides. Comment veux-tu que ta fonction te retourne un résultat si tu lui passes des paramètres vides ?
je recupere les donnees envoye par le formulaire ($_POST), je les compare avec celles de l'utilisateur, et je les verifie:

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
 
<?php
    public function check_FormData($champs, $method=array(), $eMsg){
 
         $this->champs = $champs;
         $this->method = $method;
         $this->eMsg = $eMsg;
 
         $methodArr = array('empty', 'min', 'max', 'regex');
 
            if(is_array($this->method))
            {
            foreach($this->method as $km=>$vm)
            {              
                switch($km)
            {
                case 'min':
                    if(mb_strlen($_POST[$this->champs], 'utf-8') < $vm)
                        {
                            echo 'message erreur min: '.$this->eMsg.'<br>';
                            return TRUE;   
                        }
                                   return TRUE;    
                    break;
            } // end switch
            } // end foreach
            } // end if
            else
            {
                echo 'defaut de method';
            }
            //return TRUE;
            } // end check_FormData
 
 
 	public function sendData() {
 
        if($this->check_FormData($this->champs, $this->method=array(), $this->eMsg))
        {
            echo 'ok';
            return TRUE;
        }
        else
        {
            return FALSE;
        }
 	}
 
 
if(isset($_POST['Send'])){
 
 
                $f->check_FormData('MyName', array('min'=>5), 'message min');
 
            if($f->sendData()) {
 
               echo 'oui, tout va bien'; 
              }
              else
              {
                echo 'des erreurs ont ete <br>';
              }
 
}
?>
isitien 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 11h11.


 
 
 
 
Partenaires

Hébergement Web