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 :

Problème d'adaptation d"un ssript de validation


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Problème d'adaptation d"un ssript de validation
    Bonjour,
    J'ai un souci dans l'adaption d'un script de validation de formulaire que je ne trouve pas forcément bien écrit et il y a un statement que je crois comprendre et quand je l'adapte à une sauce + PHP académique, le conportement en est complétement modifié !

    Il y un fichier index qui instancie une classe (en ligne 42)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $val = new MyValidation($rules, $messages ,$debug=true);
    Dans celle-ci, on trouve:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class MyValidation extends MoosValidation {
    	private $debug ;
    	private $onstVal ;
    	
    	public function MyValidation($rules, $messages ,$debug) {					
    		$this->debug = $debug ;
    		
    	L24	parent::__construct($rules, $messages ,$debug);
    //  	 L25	$this->InstVal = new MoosValidation($rules, $messages ,$debug);
    	}
    Je considère que la [U]ligne 24/U] est le constructeur.....
    Que je souhaite remplacer par la ligne suivante en commentaire (L25)

    Je mettrais les sources en pièces attachées/

    Dans le 1er cas, pas de modif du constructeur, le script s'exécute OK (heureusement encore....) càd que puisque je n'ai pas remplit le formulaire, j'ai un message d'erreur par champ.

    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
    MossValidation Instanciared
    
    Array
    (
        [name] => Array
            (
                [message] => Field Name is empty!
            )
    
        [age] => Array
            (
                [message] => Wrong data in field Age!
            )
    
        [birthday] => Array
            (
                [message] => Birthday date  not valid!
            )
    
        [email] => Array
            (
                [message] => E-mail not valid!
            )
    
        [password] => Array
            (
                [message] => Passwords do not match or to short!
            )
    
    )
    
        * Name: [hugo]
        * Age:
        * E-mail:
        * Birthday: [0000-00-00]
        * Password:
        * Password confirm:
    Dans le 2ième cas, je n'ai plus cette liste d'erreur mais la liste des champs transmis, donc le formulaire a été exécuté et j'ai (simulé) une transmission de champs vides !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    MossValidation Instanciare
    
    All data sent!
    
    Array
    (
    )
    
        * Name: [hugo]
        * Age:
        * E-mail:
        * Birthday: [0000-00-00]
        * Password:
        * Password confirm:

    Là, je ne comprends plus et j'en appelle à votre aide

    Vous trouver
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    que je ne trouve pas forcément bien écrit
    Et concrètement c'est quoi le problème dans le fait d'appeler le constructeur de la classe mère ? Parce que en l'état la ligne 24 est on ne peut plus correcte.

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Appel d ela classe mère
    Grunk,

    La syntaxe originale est correcte, celle que je souhaite mettre l'est aussi... (Enfin je pense)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le code en ligne 25 est'il correct ?

    Si oui, alors d'où viennent les différences d'exécution ?

    Le fait est que les résultats obtenus sont complétemens différents (voir ceux-ci dans le post original) et je ne vois pas d'où cela peut venir....

    Esteban

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Tu place ton instance de MoosValidation dans $this->InstVal qui n'est défini nul part , ca risque déjà de poser problème.

    Ensuite quand on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent::__construct($rules, $messages ,$debug);
    Toutes les méthodes de la classe mère son accessible via $this->

    Quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->InstVal = new MoosValidation($rules, $messages ,$debug);
    Toutes les méthodes de la classe mère son accessible via $this->InstVal-> donc si tu n'a pas changer les références , c'est normal que cela ne marche pas.

    Mais ce que tu fait ligne 25 est de la composition et n'as plus rien à voir avec la notion d'héritage qu'introduit parent::

  5. #5
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Appel de la classe mère
    Merci Grunk,

    Faute de frappe déjà....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class MyValidation extends MoosValidation {
    	private $debug ;
    	private $onstVal ;
    	
    	public function MyValidation($rules, $messages ,$debug) {					
    		$this->debug = $debug ; 		
                    $this->instVal = new MoosValidation($rules, $messages ,$debug);
    Et tu as raison pour ce qui est du $this, je ne vais pas me risquer à changer le code.....

    Je viens de faire un check, il n'y a pas un seul $this dans le fichier 'mère' mais une bonne série dans le fichier instancié (je suppose que tu parles de celui-là quand tu parles de $this)

    Autant je comprenais ton objection, autant maintenant, je ne comprends plus
    Merci Grunk, ce n'est pas le 1er merci......

    Il me faudra .+ pour assouvir ma soif..... il fait torride ici dans le Gard !

Discussions similaires

  1. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  2. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  3. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  4. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40
  5. [C#] Petit problème avec Adapter et DataGrid
    Par Floyd dans le forum Windows Forms
    Réponses: 11
    Dernier message: 02/04/2006, 14h02

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