IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Une fonction dans une class formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    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 : 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
     
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'res check form data:<b>'.$this->check_FormData($champs, $method=array(), $eMsg).'</b><br>';
    n'affiche rien

    merci pour votre aide

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    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 : 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
     
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    si je laisse vide le message d'erreur correspondant s'affiche, si je mets des mots par exemple 'test test' il affiche 'nooooooooooooon'

  4. #4
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    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.
    Je ne réponds pas aux questions techniques en MP.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    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?

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    quand je rempli la fonction sendData par des donnees ca marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if($this->check_FormData('nom', 'min'=>5, 'Message erreur')){
    je l'ai remplace par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if($this->check_FormData($this->champs, $this->method=array(), $this->eMsg)){
    et ca marche pas

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 11h18
  2. Réponses: 2
    Dernier message: 03/04/2013, 21h06
  3. récupérer une variable d'une fonction dans une classe
    Par free_dom dans le forum Général Python
    Réponses: 20
    Dernier message: 08/07/2009, 13h35
  4. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 20h05
  5. Response.Redirect dans une fonction dans une classe
    Par jpower dans le forum ASP.NET
    Réponses: 14
    Dernier message: 24/08/2007, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo