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 :

Erreur lors de l'enregistrement dans la base de données


Sujet :

MkFramework

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut Erreur lors de l'enregistrement dans la base de données
    Bonjours,
    Je suis entrain d'essayer depuis presque toute la journée d'envoyer des infos dans la base de donnée à partir de d'un formulaire mais je n'ai toujours pas réussi. Si vous pouviez m'aider ce serait super!

    Voici mon fichier vue: new.php
    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
     
    <?php 
    $oForm=new plugin_form($this->oTasks);
    $oForm->setMessage($this->tMessage);
    ?>
     
     
    <form class="form-horizontal" action="" method="POST" >
     
    <div class="form-group">
    <?php if($this->tMessage!=''):?>
    					<div class="col-sm-10"
    						<p style="color:red"><?php echo $this->tMessage?></p>
    					</div>
    <?php endif;?>
    </div>
     
     
     
    	<div class="form-group">
    		<div class="col-sm-10">
    		Ville: 
    		<?php echo $oForm->getSelect('fk_city_id',$this->tCity,array('onChange'=>'submit()'))?>	
    		</div>
    	</div>
     
     
     
    	<div class="form-group">
     
    				<?php if($this->tLocalite):?>
    				   <div class="col-sm-10">
    				   Localité: 
    					 <?php echo $oForm->getSelect('district_id',$this->tLocalite)?>
    				  </div>
    				 <?php endif;?>
     
    	</div>
     
     
    	<div class="form-group">
    		<div class="col-sm-10"><?php echo $oForm->getInputText('adress',array('class'=>'form-control'),'Adresse') ?>
    		</div>
    	</div>
     
     
    	<div class="form-group">
    		<div class="col-sm-10"><?php echo $oForm->getInputText('name',array('class'=>'form-control'),'Titre de la tache') ?>
    		</div>
    	</div>
     
    	<div class="form-group">
    		<div class="col-sm-10"><?php echo $oForm->getInputText('description',array('class'=>'form-control'), 'Description') ?></div>
    	</div>
     
    	<div class="form-group">
    		<div class="col-sm-10"><?php echo $oForm->getInputText('amount',array('class'=>'form-control'), 'Remuneration') ?></div>
    	</div>
     
    	<div class="form-group">
    		<div class="col-sm-10"><?php echo $oForm->getInputText('deadLine',array('class'=>'form-control'),'Dead Line') ?></div>
    	</div>
     
     
     
    <?php echo $oForm->getToken('token',$this->token)?>
     
    <div class="form-group">
        <div class="col-sm-offset-1 col-sm-10">
    		<input type="submit" class="btn btn-success" value="Ajouter" /> <a class="btn btn-link" href="<?php echo $this->getLink('tasks::list')?>">Annuler</a>
    	</div>
    </div>
    </form>




    et voici mon fichier controller: main.php

    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
     
    <?php 
    class module_tasks extends abstract_module{
     
    	public function before(){
     
    		_root::getAuth()->enable();
     
    		$this->oLayout=new _layout('page');
     
    		require_once('../include/modules.php');
     
    	}
     
     
    	public function _index(){
    	    //on considere que la page par defaut est la page de listage
    	    $this->_list();
    	}
     
     
    	public function _list(){
     
    		$tTasks=model_tasks::getInstance()->findAll();
     
    		$oView=new _view('tasks::list');
    		$oView->tTasks=$tTasks;
     
     
     
    		$this->oLayout->add('main',$oView);
     
    	}
     
     
     
    	public function _new(){
    		$tMessage=$this->processSave();
     
     
     
    		$tCity=array();
    		$tLocalite=array();
     
    		//recuperation de toutes les villes
    		$tCity=model_city::getInstance()->getSelect();
    		if(_root::getParam('fk_city_id')){
    			//recuperation des localites selon la ville
    			$tLocalite=model_district::getInstance()->getSelect(_root::getParam('fk_city_id'));
    		} 
     
    		$oView=new _view('tasks::new');
     
    		$oView->tCity=$tCity;
    		$oView->tLocalite=$tLocalite;
     
    		$oPluginXsrf=new plugin_xsrf();
    		$oView->token=$oPluginXsrf->getToken();
    		$oView->tMessage=$tMessage;
     
    		$oView->oTasks=new row_tasks;
     
    		$this->oLayout->add('main',$oView);
    	}
     
     
     
    	public function _edit(){
    		$tMessage=$this->processSave();
     
    		$oTasks=model_tasks::getInstance()->findById( _root::getParam('id') );
     
    		$oView=new _view('tasks::edit');
    		$oView->oTasks=$oTasks;
    		$oView->tId=model_tasks::getInstance()->getIdTab();
     
     
     
    		$oPluginXsrf=new plugin_xsrf();
    		$oView->token=$oPluginXsrf->getToken();
    		$oView->tMessage=$tMessage;
     
    		$this->oLayout->add('main',$oView);
    	}
     
     
     
    	public function _show(){
    		$oTasks=model_tasks::getInstance()->findById( _root::getParam('id') );
     
    		$oView=new _view('tasks::show');
    		$oView->oTasks=$oTasks;
     
     
     
    		$this->oLayout->add('main',$oView);
    	}
     
     
     
    	public function _delete(){
    		$tMessage=$this->processDelete();
     
    		$oTasks=model_tasks::getInstance()->findById( _root::getParam('id') );
     
    		$oView=new _view('tasks::delete');
    		$oView->oTasks=$oTasks;
     
     
     
    		$oPluginXsrf=new plugin_xsrf();
    		$oView->token=$oPluginXsrf->getToken();
    		$oView->tMessage=$tMessage;
     
    		$this->oLayout->add('main',$oView);
    	}
     
     
     
    	private function processSave(){
    		if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    			return null;
    		}
     
    		$oPluginXsrf=new plugin_xsrf();
    		if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide
    			return array('token'=>$oPluginXsrf->getMessage() );
    		}
     
    		$iId=_root::getParam('id',null);
    		if($iId==null){
    			$oTasks=new row_tasks;	
    		}else{
    			$oTasks=model_tasks::getInstance()->findById( _root::getParam('id',null) );
    		}
     
     
     
    		$sName=_root::getParam('name');
    		$sDescription=_root::getParam('description');
    		$sAmount=_root::getParam('amount');
    		$sDeadLine=_root::getParam('deadLine');
    		$sAdresse=_root::getParam('adress');
     
    		//    Tableau a trier
    		$sLocalite=_root::getParam('district_id');
     
     
     
     
     
    		if($sLocalite==''){
    			return ("N'oublie pas la localité!");
    		}
     
    		if($sName==''){
    			return ("N'oublie pas le titre de la tache!");
    		}
     
    		if($sDescription==''){
    			return ("N'oublie pas la description!");
    		}
     
     
    		if($sAmount==''){
    			return ("N'oublie pas la rémuneration!");
    		}
     
    		if($sAmount!='' and preg_match("#[^0-9]#",$sAmount)){
    			return ("La remunération ne doit contenir que des chiffres!");
    		}
     
    		if($sDeadLine==''){
    			return ("N'oublie pas le délai!");
    		}
     
     
    		$oTasks->name=$sName;
    		$oTasks->description=$sDescription;
    		$oTasks->amount=$sAmount;
    		$oTasks->deadline=$sDeadLine;
    		$oTasks->fk_district_id=$sLocalite;
    		$oTasks->Pk_suscribers=_root::getAuth()->getAccount()->id;
     
     
     
    		if($oTasks->save()){
    			//une fois enregistre on redirige (vers la page liste)
    			_root::redirect('taches_boubs::list');
    		}else{
    			return $oTasks->getListError();
    		}
     
     
     
     
    	}
     
     
    	public function processDelete(){
    		if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    			return null;
    		}
     
    		$oPluginXsrf=new plugin_xsrf();
    		if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide
    			return array('token'=>$oPluginXsrf->getMessage() );
    		}
     
    		$oTasks=model_tasks::getInstance()->findById( _root::getParam('id',null) );
     
    		$oTasks->delete();
    		//une fois enregistre on redirige (vers la page liste)
    		_root::redirect('tasks::list');
     
    	}
     
     
    	public function after(){
    		$this->oLayout->show();
    	}
     
     
    }


    J'ai modifié le fichier plugin_form.php pour ajouter les placeholder de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function getInputText($sName,$tOption=null,$placeholder=null){
    		$sHtml=null;
    		$sHtml.='<input type="text" placeholder="'.$placeholder.'" name="'.$sName.'" value="'.$this->getValue($sName).'" '.$this->getOption($tOption).'/>';
    		$sHtml.=$this->getMessage($sName);
    		return $sHtml;
    	}

  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
    Vous avez une erreur ? vous retombez sur le meme formulaire ?

    Pouvez vous ajouter dans la vue un var_dump
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
    plugin_debug::addSpy('tMess',$this->tMessage);
    $oForm=new plugin_form($this->oTasks);
    $oForm->setMessage($this->tMessage);
    ?>
    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut Equation résolu
    Merci d'avoir répondu très rapidement, j'ai résolu problem dans la nuit... Comme je ne lache jamais l'affaire j'ai fini par y arriver.

    Je n'avais pas encore vu ton message, en fait nous utilisons un template qui utilise du javascript et je pense qu'il y'a un conflit entre le jquery et la barre de debug.
    Lorsque j'utilise le template comme layout, la barre de debud ne fonctionne plus!

    Avant de mettre cette discussion en mode [resolu] je post les fonctions new et processSave. Mais je n'ai rien modifié dans la methode new(), j'ai seulement touché la méthode processSave().

    Methode new():
    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
     
    public function _new(){
    		$tMessage=$this->processSave();
     
     
     
    		$tCity=array();
    		$tLocalite=array();
     
    		//recuperation de toutes les villes
    		$tCity=model_city::getInstance()->getSelect();
    		if(_root::getParam('fk_city_id')){
    			//recuperation des localites selon la ville
    			$tLocalite=model_district::getInstance()->getSelect(_root::getParam('fk_city_id'));
    		} 
     
     
     
    		$oView=new _view('tasks::new');
     
    		$oView->tJoinmodel_trades=model_trades::getInstance()->getSelect();
     
    		$oView->tCity=$tCity;
    		$oView->tLocalite=$tLocalite;
     
    		$oPluginXsrf=new plugin_xsrf();
    		$oView->token=$oPluginXsrf->getToken();
    		$oView->tMessage=$tMessage;
     
    		$oView->oTasks=new row_tasks;
     
     
     
    		$this->oLayout->add('main',$oView);
    	}

    Methode processSave():
    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
     
    private function processSave(){
    		if(!_root::getRequest()->isPost() ){ //si ce n'est pas une requete POST on ne soumet pas
    			return null;
    		}
     
    		$oPluginXsrf=new plugin_xsrf();
    		if(!$oPluginXsrf->checkToken( _root::getParam('token') ) ){ //on verifie que le token est valide
    			return array('token'=>$oPluginXsrf->getMessage() );
    		}
     
    		$iId=_root::getParam('id',null);
    		if($iId==null){
    			$oTasks=new row_tasks;	
    		}else{
    			$oTasks=model_tasks::getInstance()->findById( _root::getParam('id',null) );
    		}
     
     
     
     
    		$sName=_root::getParam('name');
    		$sDescription=_root::getParam('description');
    		$sAmount=_root::getParam('amount');
    		$sDeadLine=_root::getParam('deadLine');
    		$sAdresse=_root::getParam('adress');
     
    		//on recupère la localité avant les tests
    		$sLocalite=_root::getParam('district_id');
     
     
    		if($sLocalite==''){
    			return ("N'oublie pas la ville et la localité!");
    		}
     
    		if($sName==''){
    			return ("N'oublie pas le titre de la tache!");
    		}
     
    		if($sDescription==''){
    			return ("N'oublie pas la description!");
    		}
     
     
    		if($sAmount==''){
    			return ("N'oublie pas la rémuneration!");
    		}
     
    		if($sAmount!='' and preg_match("#[^0-9]#",$sAmount)){
    			return ("La remunération ne doit contenir que des chiffres!");
    		}
     
    		if($sDeadLine==''){
    			return ("N'oublie pas le délai!");
    		}
     
     
    		$oTasks->name=$sName;
    		$oTasks->description=$sDescription;
    		$oTasks->amount=$sAmount;
    		$oTasks->deadLine=$sDeadLine;
    		$oTasks->adress=$sAdresse;
    		$oTasks->fk_district_id=$sLocalite;
     
    		$oTasks->Pk_suscribers=_root::getAuth()->getAccount()->id;
    		$oTasks->fk_trades=_root::getParam('fk_trades');
     
     
     
     
    		if($oTasks->save()){
    			//une fois enregistre on redirige (vers la page liste)
    			_root::redirect('tasks::list');
    		}else{
    			return $oTasks->getListError();
    		}
     
     
     
     
    	}


    Pour résoudre le problem, cela peut etre utile pour les autres, j'ai généré à partir du builder un module crud concernant le meme model tasks. Ensuite j'ai vidé ma methode processSave, puis j'ai fait un copie/collé et adapté le code au fur et a mesure (car je n'arrivais pas à déceler ou se trouvais l'erreur)!

  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
    Pour information, il y a un moyen intégré de gérer la vérification du formulaire

    Dans la classe model_tasks, classe row_tasks
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    class row_tasks extends abstract_row{
     
    	protected $sClassModel='model_tasks';
     
     
    	/*exemple test validation*/
    	private function getCheck(){
    		$oPluginValid=new plugin_valid($this->getTab());
     
    		$oPluginValid->isNotEmpty('Pk_suscribers','N\'oublie pas la ville et la localit&eacute;!');
    		$oPluginValid->isNotEmpty('name','N\'oublie pas le titre de la tache!');
    		$oPluginValid->isNotEmpty('amount','N\'oublie pas la r&eacute;muneration!');
    		$oPluginValid->matchExpression('amount',"#[^0-9]#",'La remun&eacute;ration ne doit contenir que des chiffres!');
     
     
    		/* renseigner vos check ici
    		$oPluginValid->isEqual('champ','valeurB','Le champ n\est pas &eacute;gal &agrave; '.$valeurB);
    		$oPluginValid->isNotEqual('champ','valeurB','Le champ est &eacute;gal &agrave; '.$valeurB);
    		$oPluginValid->isUpperThan('champ','valeurB','Le champ n\est pas sup&eacute; &agrave; '.$valeurB);
    		$oPluginValid->isUpperOrEqualThan('champ','valeurB','Le champ n\est pas sup&eacute; ou &eacute;gal &agrave; '.$valeurB);
    		$oPluginValid->isLowerThan('champ','valeurB','Le champ n\est pas inf&eacute;rieur &agrave; '.$valeurB);
    		$oPluginValid->isLowerOrEqualThan('champ','valeurB','Le champ n\est pas inf&eacute;rieur ou &eacute;gal &agrave; '.$valeurB);
    		$oPluginValid->isEmpty('champ','Le champ n\'est pas vide');
    		$oPluginValid->isNotEmpty('champ','Le champ ne doit pas &ecirc;tre vide');
    		$oPluginValid->isEmailValid('champ','L\email est invalide');
    		$oPluginValid->matchExpression('champ','/[0-9]/','Le champ n\'est pas au bon format');
    		$oPluginValid->notMatchExpression('champ','/[a-zA-Z]/','Le champ ne doit pas &ecirc;tre a ce format');
    		*/
     
    		return $oPluginValid;
    	}

    En effet, au moment du save, la methode est appelé pour vérifier l'objet avant de l'envoyer en base. Si une des contrainte n'est pas respecté il renvoi un tableau, le fameux tMessage passé à la vue
    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
    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
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par imikado Voir le message
    Pour information, il y a un moyen intégré de gérer la vérification du formulaire

    Dans la classe model_tasks, classe row_tasks


    En effet, au moment du save, la methode est appelé pour vérifier l'objet avant de l'envoyer en base. Si une des contrainte n'est pas respecté il renvoi un tableau, le fameux tMessage passé à la vue
    Oui je sais mais quand j'utilise cette verification j'ai ce message d'erreur
    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
     
    Array to string conversion
    #0 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\view\new.php(12): exception_error_handler(8, 'Array to string...', 'D:\\Programs\\UwA...', 12, Array)
    #1 D:\Programs\UwAmp\www\framework\lib\framework\class_view.php(85): include('D:\\Programs\\UwA...')
    #2 D:\Programs\UwAmp\www\framework\lib\framework\class_layout.php(158): _view->show()
    #3 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\layout\page.php(98): _layout->load('main')
    #4 D:\Programs\UwAmp\www\framework\lib\framework\class_layout.php(122): include('D:\\Programs\\UwA...')
    #5 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\main.php(248): _layout->show()
    #6 D:\Programs\UwAmp\www\framework\lib\framework\class_root.php(275): module_tasks->after()
    #7 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\public\index.php(47): _root->run()
    #8 {main}
     
    Detail:
    #0 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\view\new.php (12)
    exception_error_handler( , 'Array to string conversion' , 'D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\view\new.php' , , Array ( [oForm] => plugin_form Object ( [oObject:protected] => row_tasks Object ( [sClassModel:protected] => model_tasks [_bChooseUpdate:abstract_row:private] => [_tProperty:protected] => Array ( ) [_tPropertyToUpdate:protected] => ) [tMessage:protected] => Array ( [district_id] => Array ( [0] => N'oublie pas la ville et la localité! ) [amount] => Array ( [0] => La remunération ne doit contenir que des chiffres! ) ) [isPost:protected] => 1 ) ) )
    #1 D:\Programs\UwAmp\www\framework\lib\framework\class_view.php (85)
    include( 'D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\view\new.php' )
    #2 D:\Programs\UwAmp\www\framework\lib\framework\class_layout.php (158)
    _view -> show( )
    #3 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\layout\page.php (98)
    _layout -> load( 'main' )
    #4 D:\Programs\UwAmp\www\framework\lib\framework\class_layout.php (122)
    include( 'D:\Programs\UwAmp\www\framework\data\genere\doorwaar\layout\page.php' )
    #5 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\main.php (248)
    _layout -> show( )
    #6 D:\Programs\UwAmp\www\framework\lib\framework\class_root.php (275)
    module_tasks -> after( )
    #7 D:\Programs\UwAmp\www\framework\data\genere\doorwaar\public\index.php (47)
    _root -> run( )
    #8 {main}
     
    Fichier : D:\Programs\UwAmp\www\framework\data\genere\doorwaar\module\tasks\view\new.php ligne 12
     
    Message : Array to string conversion
    Qui veut dire selon moi que le message qui est retourné est un tableau alors que la variable a affiché(tMessage) doit etre un String?!

  7. #7
    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
    Oui tMessage, comme l'indiquer la première lettre: t est un tableau
    il est passé à l'objet formulaire via un tMessage

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    $oForm=new plugin_form($this->oTasks);
    $oForm->setMessage($this->tMessage);
    ?>

    il ne doit pas etre affiché en tant que tel, c'est l'objet qui gère

    Je pense que comme vous avez prevu des if avec un retour de chaine, vous avez du mettre un echo/print de $tMessage (qu'il faut enlever)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par imikado Voir le message
    Oui tMessage, comme l'indiquer la première lettre: t est un tableau
    il est passé à l'objet formulaire via un tMessage

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    $oForm=new plugin_form($this->oTasks);
    $oForm->setMessage($this->tMessage);
    ?>

    il ne doit pas etre affiché en tant que tel, c'est l'objet qui gère

    Je pense que comme vous avez prevu des if avec un retour de chaine, vous avez du mettre un echo/print de $tMessage (qu'il faut enlever)
    Oui c'est bien ça, mais le probleme c'est que le message ne s'affiche quand je mets que ce code là. Mais lorsque je remplace le layout par le layout "bootstrap" dans un exemple (l'inscription), le message ne s'affiche pas mais en rajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plugin_debug::addSpy('tMess',$this->tMessage);
    , le Spy variables m'affiche bien l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Array
    (
        [login] => Array
            (
                [0] => Utilisateur d&eacute;j&agrave; existant
            )
     
    )
    Maintenant ce que je veux savoir c'est comment afficher cette message d'erreur alors?!

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 53
    Points : 46
    Points
    46
    Par défaut
    Sur cette image vous pouvez voir qu'il y'a bien erreur, avec le Spy variable mais l'erreur n'est affiché nulle part!
    Nom : test.jpg
Affichages : 134
Taille : 80,7 Ko

  10. #10
    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
    La on parle bien d'une autre page, car je ne vois pas le rapport entre le login et les tasks

    J'explique: c'est tres simple: getCheck fait les verifications demandées sur les champs paramétrés puis retourne un tableau des eventuelles erreurs indéxés par champ de l'objet

    Ce tableau (tMessage) est passé à la vue, chargé dans l'objet de formulaire

    Et il affiche sur chaque champ les eventuelles erreurs en cherchant par indice

    Donc ici si vous avez une erreur indexé sur "login", vous devriez avoir un champ de formulaire également nommé "login"
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

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

Discussions similaires

  1. [Forum] Erreur lors de l'enregistrement dans mon forum
    Par mflat2 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 29/06/2010, 12h22
  2. [SQL] Problème lors de l'insertion d'un enregistrement dans ma base de données.
    Par Velkan.nexus dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/10/2007, 11h59
  3. [MySQL] Erreur lors de l'insertion dans ma base de doneés
    Par ANISSS dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/11/2006, 12h47
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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