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

MkFramework Discussion :

plugin_valid : Récupération des champs


Sujet :

MkFramework

  1. #1
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut plugin_valid : Récupération des champs
    Salut,

    Je rencontre un problème avec le plugin de validation de champs.

    J'ai dans ma vue le champ suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><th>Identifiant Véhicule</th><td><?php echo $oForm->getInputText('numBus',array('class'=>'form-control','value'=>"1234",'maxlength'=>"4")) ?></td></tr>
    Que je vérifie lors de la validation avec la règle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oPluginValid->matchExpression('numBus','/[0-9]{2,4}/','Ce champ n\'est pas au bon format');
    pourtant j'obtient toujours "Ce champ n'est pas au bon format".

    J'ai donc modifié la fonction matchExpression du plugi_check afin qu'elle me montre ce qu'elle reçoit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	public function matchExpression($uValueA,$sExpression,$sErrorMsg='KO matchExpression'){
    		print_r($_POST);
                    echo 'expression : '. $sExpression;
                    echo 'Value : ' . $uValueA;
                    if(preg_match($sExpression,$uValueA)){
     
    			return true;
    		}
                    die();
    		$this->sErrorMsg=$sErrorMsg;
    		return false;
    	}
    pour le résultat suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [nameFile] => fzefzef [numBus] => 4568 [token] => 1577440276####de1270b09ad5df2363faf9f996d3436e42c8ac46 ) expression : /[0-9]{2,4}/Value :
    Autre truc sans incidence la valeur value de getInputText n'est pas retranscrite dans le code HTML de la vue...

    Une idée sur l'origine du problème ?
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Bonjour,
    Je viens d'essayer avec les 2 templates : normal et SC et je n'ai pas trouvé de soucis

    voici les deux projets en piece jointes

    sur le projet SC le check est fait dans la partie business, et dans le normal dans la classe model

    je me demande dans votre cas, si ce n'est pas que l'objet n'est pas chargé avant la vérfication ce qui expliquerait la valeur vide pour le champ..
    Fichiers attachés Fichiers attachés
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Salut,

    J'ai trouvé mon erreur, j'effectuais un test de cohérence de champs avant l'étape du save().

    C'est corrigé et cela fonctionne.

    J'ai toutefois besoin de conseils toujours dans les checks, car mon formulaire comprends :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="fileRP" accept=".db">
    Au début j'avais un check construit comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oPluginValid->isNotEmpty('fileRP','Ce champ ne doit pas &ecirc;tre vide');
    Bien entendu fileRP était toujours vide car jamais transmis dans le $_POST, j'ai donc modifié pour devenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oPluginValid->isNotEmpty('pathFile','Ce champ ne doit pas &ecirc;tre vide');
    et cela fonctionne. Seul bémol si parcourir n'a pas de fichier je n'ai pas le message associé au champ fileRP.

    Une idée ?
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    J'ai essayé la chose suivante:

    dans la boucle d'upload (que vous avez si vous avez générér via le mkf

    il y a un check isValid sur le plugin_upload, j'ai ajouté sur le else une creation du plugin de check + un check isNotEmpty sur le champ (name du input type file) pour forcer a retourner l'erreur associé au chmap parcourir

    Code php : 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
     
    		$tColumnUpload=array('path');
    		if($tColumnUpload){
    			foreach($tColumnUpload as $sColumnUpload){
    				$oPluginUpload=new plugin_upload($sColumnUpload);
    				if($oPluginUpload->isValid()){
    					$sNewFileName=_root::getConfigVar('path.upload').$sColumnUpload.'_'.date('Ymdhis');
     
    					$oPluginUpload->saveAs($sNewFileName);
    					$oImages->$sColumnUpload=$oPluginUpload->getPath();
    				}else{
    					$oPluginValid=new plugin_valid(array($sColumnUpload=>''));
     
    					$oPluginValid->isNotEmpty($sColumnUpload,'Le champ ne doit pas etre vide');
    					return $oPluginValid->getListError();
    				}
    			}
    		}

    mon formulaire pour info:

    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
     
    <?php 
    $oForm=new plugin_form($this->oImages);
    $oForm->setMessage($this->tMessage);
    ?>
    <form action="" method="POST"  enctype="multipart/form-data">
     
    <table class="tb_new">
     
    	<tr>
    		<th>path</th>
    		<td><?php echo $oForm->getInputUpload('path') ?></td>
    	</tr>
     
     
    	<tr>
    		<th></th>
    		<td>
    			<p>
    				<input type="submit" value="Ajouter" /> <a href="<?php echo $this->getLink('images::list')?>">Annuler</a>
    			</p>
    		</td>
    	</tr>
    </table>
     
    <?php echo $oForm->getToken('token',$this->token)?>
     
    </form>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Merci ! cela fonctionne.

    J'avais palier au problème de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if(_root::getRequest()->isPost() and isset($_FILES['fileRP'])){
    Ce qui n’empêchait de trouver une autre approche.
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !


    Albert Einstein

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/01/2007, 17h48
  2. Réponses: 5
    Dernier message: 30/10/2006, 14h03
  3. récupération des champ d'une db afin de crée des alias
    Par Legenyes dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/07/2006, 12h02
  4. [Tableaux] récupération des champs par $_POST
    Par jeanfrancois dans le forum Langage
    Réponses: 3
    Dernier message: 11/05/2006, 18h22
  5. Récupération des champs d'un form dans un autre
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 22/06/2004, 11h31

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