Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 31-07-2012 15:23:11

sencha-dev2
Membre
Lieu: Centre France
Date d'inscription: 25-07-2012
Messages: 12

Zend || PHP : Probleme

Résolu !

Bonjour,

Je suis actuellement en train de développer une application à but commercial avec Zend Framework, en combinaison avec Sencha Framework.

Il s'avère que j'ai un problème lors d'un script de modification, l'une des données présentes sur mon formulaire n'étant pas transmise en POST. Toutefois, il n'y a pour cela aucune raison d'après les développeurs Sencha.

Aussi, j'obtiens une erreur assez étrange :

Notice : Array to string conversion in C:\wamp\www\Zend\library\Zend\Db\Statement\Pdo.php on line 228

L'erreur en question semble donc se trouver à la troisième ligne du bloc suivant :

Code:

[lang=php]
try {
    if ($params !== null) {
        return $this->_stmt->execute($params);
    } else {
        return $this->_stmt->execute();
    }
} catch (PDOException $e) {
    require_once 'Zend/Db/Statement/Exception.php';
    throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);
}

J'ai creusé quelque peu (en ouvrant le fichier dont est issu ce code dans chrome) et ai obtenu ces deux erreurs :

Warning: require_once(Zend/Db/Statement.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in C:\wamp\www\Zend\library\Zend\Db\Statement\Pdo.php on line 26

Fatal error: require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'Zend/Db/Statement.php' (include_path='.;C:\php\pear') in C:\wamp\www\Zend\library\Zend\Db\Statement\Pdo.php on line 26

Il semblerait donc que ce soit la ligne suivante qui pose problème :

Code:

[lang=php]require_once 'Zend/Db/Statement.php';

Pourtant ce fichier se trouve juste au-dessus dans l'arborescence. J'avoue être totalement perdu, d'autant que je n'ai jamais fait de PHP en POO auparavant. Si vous pouviez m'aider, je vous en serais fortement reconnaissant.

Merci d'avance à tous les Zenders ! big_smile

Dernière modification par sencha-dev2 (02-08-2012 12:31:23)


I love Developping smile

Un développeur, un objectif, mille façons de faire, toutes inconnues big_smile
Sench@Dev

Hors ligne

 

#2 01-08-2012 00:42:49

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Zend || PHP : Probleme

Bonjour,

L'include path du fichier php.ini doit contenir le chemin du dossier 'library'.
include_path='.;C:\chemin\dossier\library;C:\php\pear'

Dernière modification par us2rn4m2 (01-08-2012 00:43:59)

Hors ligne

 

#3 01-08-2012 08:55:15

sencha-dev2
Membre
Lieu: Centre France
Date d'inscription: 25-07-2012
Messages: 12

Re: Zend || PHP : Probleme

Merci de votre réponse rapide. Toutefois, après avoir effectué la modification suivante dans php.ini, l'erreur reste la même...

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;C:\wamp\www\Zend\library;C:\php\pear"

; C'est ici que j'ai modifié quelque chose : include_path = ".;c:\php\includes" doit être commenté et à la place de l'include path windows au dessus

Aussi, pourriez vous être plus précis quant à la modification que je dois effectuer ? J'avoue ne pas être très à l'aise avec les fichiers de configuration sad

Le PHP.ini que j'ai modifié est celui accessible par le menu de WAMP.


_______________________________________________________________________________


De Plus, pour être plus clair, voilà l'erreur que me retourne la requête dans l'inspection de la preview :

Code:

[lang=html]

<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Array to string conversion in C:\wamp\www\Zend\library\Zend\Db\Statement\Pdo.php on line <i>228</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0005</td><td bgcolor='#eeeeec' align='right'>704824</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\Zend\public\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0407</td><td bgcolor='#eeeeec' align='right'>6400104</td><td bgcolor='#eeeeec'>Zend_Application->run(  )</td><td title='C:\wamp\www\Zend\public\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>28</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>3</td><td bgcolor='#eeeeec' align='center'>0.0407</td><td bgcolor='#eeeeec' align='right'>6400104</td><td bgcolor='#eeeeec'>Bootstrap->run(  )</td><td title='C:\wamp\www\Zend\library\Zend\Application.php' bgcolor='#eeeeec'>..\Application.php<b>:</b>366</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>4</td><td bgcolor='#eeeeec' align='center'>0.0409</td><td bgcolor='#eeeeec' align='right'>6413584</td><td bgcolor='#eeeeec'>Zend_Application_Bootstrap_Bootstrap->run(  )</td><td title='C:\wamp\www\Zend\application\Bootstrap.php' bgcolor='#eeeeec'>..\Bootstrap.php<b>:</b>9</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>5</td><td bgcolor='#eeeeec' align='center'>0.0410</td><td bgcolor='#eeeeec' align='right'>6413680</td><td bgcolor='#eeeeec'>Zend_Controller_Front->dispatch(  )</td><td title='C:\wamp\www\Zend\library\Zend\Application\Bootstrap\Bootstrap.php' bgcolor='#eeeeec'>..\Bootstrap.php<b>:</b>97</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>6</td><td bgcolor='#eeeeec' align='center'>0.0495</td><td bgcolor='#eeeeec' align='right'>7323472</td><td bgcolor='#eeeeec'>Zend_Controller_Dispatcher_Standard->dispatch(  )</td><td title='C:\wamp\www\Zend\library\Zend\Controller\Front.php' bgcolor='#eeeeec'>..\Front.php<b>:</b>954</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>7</td><td bgcolor='#eeeeec' align='center'>0.0574</td><td bgcolor='#eeeeec' align='right'>7806928</td><td bgcolor='#eeeeec'>Zend_Controller_Action->dispatch(  )</td><td title='C:\wamp\www\Zend\library\Zend\Controller\Dispatcher\Standard.php' bgcolor='#eeeeec'>..\Standard.php<b>:</b>295</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>8</td><td bgcolor='#eeeeec' align='center'>0.0575</td><td bgcolor='#eeeeec' align='right'>7812496</td><td bgcolor='#eeeeec'>StructureController->modifierStructureAction(  )</td><td title='C:\wamp\www\Zend\library\Zend\Controller\Action.php' bgcolor='#eeeeec'>..\Action.php<b>:</b>516</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>9</td><td bgcolor='#eeeeec' align='center'>0.1129</td><td bgcolor='#eeeeec' align='right'>8882648</td><td bgcolor='#eeeeec'>Model_Structure->modifierStructure(  )</td><td title='C:\wamp\www\Zend\application\controllers\StructureController.php' bgcolor='#eeeeec'>..\StructureController.php<b>:</b>69</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>10</td><td bgcolor='#eeeeec' align='center'>0.1129</td><td bgcolor='#eeeeec' align='right'>8883432</td><td bgcolor='#eeeeec'>Zend_Db_Table_Abstract->update(  )</td><td title='C:\wamp\www\Zend\application\models\Structure.php' bgcolor='#eeeeec'>..\Structure.php<b>:</b>20</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>11</td><td bgcolor='#eeeeec' align='center'>0.1129</td><td bgcolor='#eeeeec' align='right'>8883512</td><td bgcolor='#eeeeec'>Zend_Db_Adapter_Abstract->update(  )</td><td title='C:\wamp\www\Zend\library\Zend\Db\Table\Abstract.php' bgcolor='#eeeeec'>..\Abstract.php<b>:</b>1132</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>12</td><td bgcolor='#eeeeec' align='center'>0.1130</td><td bgcolor='#eeeeec' align='right'>8885168</td><td bgcolor='#eeeeec'>Zend_Db_Adapter_Pdo_Abstract->query(  )</td><td title='C:\wamp\www\Zend\library\Zend\Db\Adapter\Abstract.php' bgcolor='#eeeeec'>..\Abstract.php<b>:</b>634</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>13</td><td bgcolor='#eeeeec' align='center'>0.1130</td><td bgcolor='#eeeeec' align='right'>8885216</td><td bgcolor='#eeeeec'>Zend_Db_Adapter_Abstract->query(  )</td><td title='C:\wamp\www\Zend\library\Zend\Db\Adapter\Pdo\Abstract.php' bgcolor='#eeeeec'>..\Abstract.php<b>:</b>238</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>14</td><td bgcolor='#eeeeec' align='center'>0.1132</td><td bgcolor='#eeeeec' align='right'>8890736</td><td bgcolor='#eeeeec'>Zend_Db_Statement->execute(  )</td><td title='C:\wamp\www\Zend\library\Zend\Db\Adapter\Abstract.php' bgcolor='#eeeeec'>..\Abstract.php<b>:</b>479</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>15</td><td bgcolor='#eeeeec' align='center'>0.1132</td><td bgcolor='#eeeeec' align='right'>8890736</td><td bgcolor='#eeeeec'>Zend_Db_Statement_Pdo->_execute(  )</td><td title='C:\wamp\www\Zend\library\Zend\Db\Statement.php' bgcolor='#eeeeec'>..\Statement.php<b>:</b>300</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>16</td><td bgcolor='#eeeeec' align='center'>0.1132</td><td bgcolor='#eeeeec' align='right'>8890784</td><td bgcolor='#eeeeec'>PDOStatement->execute(  )</td><td title='C:\wamp\www\Zend\library\Zend\Db\Statement\Pdo.php' bgcolor='#eeeeec'>..\Pdo.php<b>:</b>228</td></tr>
</table></font>

J'espère que cela vous parlera plus qu'à moi, car une telle erreur est muette de sens à mes yeux...

Dernière modification par sencha-dev2 (01-08-2012 10:28:10)


I love Developping smile

Un développeur, un objectif, mille façons de faire, toutes inconnues big_smile
Sench@Dev

Hors ligne

 

#4 01-08-2012 13:40:17

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Zend || PHP : Probleme

Dans le fichier Stucture.php (C:\wamp\www\Zend\application\models\Structure.php) vous devez y voir la function execute() .
Ca devrait se presenter sous cette forme:
$stmt->execute($params) ou $dbTable->execute($params) ou $db->execute($params) etc...
(en fait c'est update() qui de toute facon retournera un execute(). Je m'etais focaliser sur la partie droite du compte rendu du debug)

Voyez la variable $params et bien l'erreur vient d'ici.
La variable $params doit etre initialisee avec un array et celui-ci doit se presenter sous la forme 'array(valeur, valeur, etc...)' or dans votre cas il ne l'est pas.

Good:
$params = array('valeur', 'valeur' etc..);

Bad:
$params = array(array('valeur', 'valeur', etc...));

Dernière modification par us2rn4m2 (01-08-2012 23:10:46)

Hors ligne

 

#5 01-08-2012 13:55:02

sencha-dev2
Membre
Lieu: Centre France
Date d'inscription: 25-07-2012
Messages: 12

Re: Zend || PHP : Probleme

En l'occurrence, c'est une fonction update :

Code:

[lang=php]
function modifierStructure($idTiers, $sigle, $raisonSociale, $SIRET=null)
{
    $data = array('sigle'=>$sigle, 'raisonSociale'=>$raisonSociale, 'SIRET'=>$SIRET);
            
    $this->update($data, array('"idTiers"=?'=>$idTiers));
}

C'est la fonction que j'appelle au moment où ça plante, donc peut-être ai-je mal écrit le update...

Néanmoins je crois me souvenir de cette syntaxe comme la syntaxe normale.


I love Developping smile

Un développeur, un objectif, mille façons de faire, toutes inconnues big_smile
Sench@Dev

Hors ligne

 

#6 01-08-2012 16:59:10

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Zend || PHP : Probleme

Ce que je ferais ca serait d'aller dans le fichier 'C:\wamp\www\Zend\library\Zend\Db\Statement\Pdo.php'
ligne 224 j'y ajouterais les 2 lignes en gras puis lancer l'application histoire de voir a quoi ressemble le contenu de $params puisque l'erreur se situe a cette endroit.

    public function _execute(array $params = null)
    {
      var_dump($params);
      exit();


        try {
            if ($params !== null) {
                return $this->_stmt->execute($params);
            } else {
                return $this->_stmt->execute();
            }
        } catch (PDOException $e) {
            require_once 'Zend/Db/Statement/Exception.php';
            throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);
        }
    }

Dernière modification par us2rn4m2 (01-08-2012 17:31:53)

Hors ligne

 

#7 01-08-2012 17:30:31

sencha-dev2
Membre
Lieu: Centre France
Date d'inscription: 25-07-2012
Messages: 12

Re: Zend || PHP : Probleme

Merci, j'essaie tout de suite !

-----------------------------------

Euh, alors voilà ce que ça me donne :


Uncaught Ext.Error: You're trying to decode an invalid JSON String:
    <pre class='xdebug-var-dump' dir='ltr'>
       <b>array</b> <i>(size=0)</i>
       <i><font color='#888a85'>empty</font></i>
    </pre>                                                     ext-all-debug.js:6092
Ext.Error.Ext.extend.statics.raise                     ext-all-debug.js:6092
me.decode                                                    ext-all-debug.js:6264
Ext.Ajax.request.success                                Connexion.js:77
Ext.apply.callback                                          ext-all-debug.js:6422
Ext.define.onComplete                                   ext-all-debug.js:37290
Ext.define.onStateChange                              ext-all-debug.js:37251
(anonymous function)                                    ext-all-debug.js:1815

A savoir que le fichier connexion.js fonctionne très bien en temps normal. Le voilà dans le doute, c'est un controller Sencha.

Code:

[lang=javascript]
var utilisateur;

Ext.define('Infologis.controller.Connexion', {
    extend: 'Ext.app.Controller',
    
    views: [
        'menuPrincipal',
        'PageConnexion',
        'Beneficiaire.rechercheBeneficiaire'
    ],
    
    init: function() {
        this.control({
            'viewport[id="menuPrincipalId"]':
            {
                render: this.controleConnexion
            },
            
            'combobox[id="comboOptionsUtilisateurHeader"]':
            {
                select: this.selectOption
            },
            
            'button[name="validConnect"]':
            {
                click: this.validForm
            },
            
            'textfield[id="mdpPageConnexion"]':
            {
                keyup: this.getChar
            },
            
            'textfield[id="loginPageConnexion"]':
            {
                keyup: this.getChar
            },
            
            'button[id="boutonLancementRechercheHeader"]':
            {
                click: this.rechercherHeader
            },
            
            'textfield[id="saisieRechercheHeader"]':
            {
                keyup: this.getChar
            },
            
            'textfield[id="champRecherche"]':
            {
                keyup: this.onTextfieldKeyup
            },
            
            'checkbox[id="act"]':
            {
                change: this.onTextfieldKeyup
            }
        });
    },
    
    controleConnexion: function() {
        Ext.Ajax.request({
            url: 'utilisateur/verifier-session',
            success: function(response) {
                var sessionOuiNon = Ext.JSON.decode(response.responseText);
                if (sessionOuiNon != false) {
                    Ext.Ajax.request({
                        url: 'utilisateur/get-info-session',
                        success: function(reponse) {
                            var infoSess = Ext.decode(reponse.responseText);
                            Ext.Ajax.request({
                                url: 'utilisateur/get-utilisateur',
                                params: {
                                    'idUtilisateur': infoSess['id']
                                },
                                success: function(data) {
                                    var util = Ext.decode(data.responseText);
                                    utilisateur = util.prenom + ' ' + util.nom;
                                    Ext.getCmp('comboOptionsUtilisateurHeader').store.add({opt: 'util', option: utilisateur});
                                    Ext.getCmp('comboOptionsUtilisateurHeader').emptyText = utilisateur;
                                    Ext.getCmp('comboOptionsUtilisateurHeader').setValue('util');
                                    Ext.getCmp('comboOptionsUtilisateurHeader').expand();
                                    Ext.getCmp('comboOptionsUtilisateurHeader').collapse();
                                    Ext.getCmp('saisieRechercheHeader').focus(true, 1);
                                    if (Ext.getCmp('comboOptionsUtilisateurHeader').store.getAt(3) != null) {
                                        Ext.getCmp('comboOptionsUtilisateurHeader').store.remove(3);
                                    }
                                }
                            });
                        }
                    });
                } else {
                    var widget = Ext.widget('PageConnexion');
                    widget.show();
                    widget.child('form textfield[id="loginPageConnexion"]').focus(true, 100);
                }
            }
        });
    },
    
    selectOption: function(cbo, rec) {
        if(rec[0].data.opt == 'logout') {
            Ext.Ajax.request({
                url: 'utilisateur/detruire-session'
            });
            cbo.store.removeAt(2);
            location.reload();
        }
    },
    
    validForm: function() {
        // requete de controle puis décision erreur ou autorisation d'accès
        var log = Ext.getCmp('loginPageConnexion').getValue();
        var mdp = Ext.getCmp('mdpPageConnexion').getValue();
        if (log.length < 3 || mdp == "") {
            Ext.getCmp('msgErreurConnexion').show();
        } else {
            Ext.getCmp('msgErreurConnexion').hide();
            Ext.Ajax.request({
                url: 'utilisateur/verifier-connexion',
                method: 'POST',
                params: {
                    'login': log,
                    'mdp': mdp
                },
                success: function(response) {
                    var res = Ext.JSON.decode(response.responseText);
                    if (res['bool']) {
                        Ext.Ajax.request({
                            url: 'utilisateur/enregistrer-session',
                            params: {
                                'login': res['login'],
                                'mdp': res['mdp'],
                                'id': res['id']
                            },
                            method: 'POST'
                        });
                        Ext.getCmp('menuPrincipalId').fireEvent('render');
                        Ext.getCmp('formConnexion').close();
                        Ext.getCmp('msgErreurConnexion').hide();
                        Ext.Ajax.request({
                            url: 'utilisateur/get-info-session',
                            success: function(reponse) {
                                var infoSess = Ext.decode(reponse.responseText);
                                Ext.Ajax.request({
                                    url: 'utilisateur/get-utilisateur',
                                    params: {
                                        'idUtilisateur': infoSess['id']
                                    },
                                    success: function(data) {
                                        var util = Ext.JSON.decode(data.responseText);
                                        utilisateur = util.prenom + ' ' + util.nom;
                                        Ext.getCmp('comboOptionsUtilisateurHeader').emptyText = utilisateur;
                                        Ext.getCmp('comboOptionsUtilisateurHeader').focus(true, 1);
                                        Ext.getCmp('comboOptionsUtilisateurHeader').setValue('util');
                                        Ext.getCmp('comboOptionsUtilisateurHeader').expand();
                                        if (Ext.getCmp('comboOptionsUtilisateurHeader').store.getAt(3) != null) {
                                            Ext.getCmp('comboOptionsUtilisateurHeader').store.removeAt(3);
                                        }
                                    }
                                });
                            }
                        });
                    } else {
                        Ext.getCmp('msgErreurConnexion').show();
                    }
                },
                failure: function() {
                    alert('La connexion au serveur a echoue. Veuillez contacter l\'administrateur du site.');
                }
            });
        }
    },
    
    getChar: function(obj, e) {
        if(e.getCharCode() == 13 && (obj == Ext.getCmp('loginPageConnexion') || obj == Ext.getCmp('mdpPageConnexion'))) {
            this.validForm();
        }
        if(obj.value == "" && (obj == Ext.getCmp('loginPageConnexion') || obj == Ext.getCmp('mdpPageConnexion'))) {
            Ext.getCmp('msgErreurConnexion').hide();
        }
        if(e.getCharCode() == 13 && obj == Ext.getCmp('saisieRechercheHeader')) {
            this.rechercherHeader();
        }
    },
    
    rechercherHeader: function() {
        if(Ext.getCmp('boutonParametresRechercheHeader').hasCls('image-beneficiaires') && Ext.getCmp('saisieRechercheHeader').getRawValue() != '') {
            if(!Ext.getCmp('rechercheBeneficiaire'))
            {
                Ext.getCmp('centre').add(Ext.widget('rechercheBeneficiaire'));
            }
            Ext.getCmp('centre').setActiveTab('rechercheBeneficiaire');
            Ext.getCmp('champRecherche').setValue(Ext.getCmp('saisieRechercheHeader').value);
            Ext.getCmp('champRecherche').fireEvent('keyup');
            Ext.getCmp('champRecherche').focus();
        }
    },
    
    onTextfieldKeyup: function(textfield, e, options) {
        var r= Ext.getCmp('champRecherche').getValue();
        
        Ext.getCmp('result').store.removeAll();
        
        if(r!="" && r.length>1)
        {
            Ext.Ajax.request({
                url: 'beneficiaire/recherche',
                params: {
                    tri : Ext.getCmp('choix').getValue(), 
                    param : r
                },
                timeout: 3000,
                method: 'POST',
                success: function(xhr) {
                    var res=eval('('+xhr.responseText+')');
                    for (var p in res){
                        Ext.getCmp('result').store.insert(p,{'idBeneficiaire':res[p].idBeneficiaire,'nom':res[p].nomPers,'prenom':res[p].prenom,'commune':res[p].nomComm,'tel':res[p].numero});
                    }
                }
            });
        }
    }
});

Ce code me sert avant tout à gérer le module de connexion et certaines fonctionnalités du menu principal de l'application. Dès l'affichage, l'évènement "render" du "viewport" se déclenche pour vérifier si il y a une session en cours ou non, à l'aide de Zend, puis détermine s'il entame une procédure de création de session ou non.

Dès que "render" se lance, l'erreur au dessus apparaît dans ma console, sans toutefois faire planter le menu principal. Mais le module de connexion et l'examen de session échoue. (j'imagine néanmoins que cela est dû à l'instruction exit(); dans le code)

Merci d'avance pour cotre interprétation : ça fait trois jours que je patauge sur cette erreur et je ne peux plus développer correctement tant qu'elle n'est pas réglée... Je n'arrive plus à rien, aussi merci encore et d'avance pour votre aide, us2rn4m2.

Dernière modification par sencha-dev2 (01-08-2012 17:43:48)


I love Developping smile

Un développeur, un objectif, mille façons de faire, toutes inconnues big_smile
Sench@Dev

Hors ligne

 

#8 01-08-2012 21:07:18

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Zend || PHP : Probleme

D'apres ce que je comprends:
Le message "You're trying to decode an invalid JSON String: array (size 0) empty"  provient de la class Ext.Error et il est declenche si la string fournie a la function this.decode() a un format json invalid et dans votre cas la dite string en question est un array() vide." ;
   
http://docs.sencha.com/touch/2-0/source/JSON.html
   
    this.decode = function() {
        var dc;
        return function(json, safe) {
            if (!dc) {
                // setup decoding function on first access
                dc = isNative() ? JSON.parse : doDecode;
            }
            try {
                return dc(json);
            } catch (e) {
                if (safe === true) {
                    return null;
                }
                Ext.Error.raise({
                    sourceClass: "Ext.JSON",
                    sourceMethod: "decode",
                    msg: "You're trying to decode an invalid JSON String: " + json
                });
            }
        };
    }();   
   
Ces informations ne correspondent pas a celles que j'attendais.
Refaite le test mais cette fois avec:
echo '<pre>';
print_r($params);
echo '</pre>';

var_dump(gettype($params));

exit();

En tout cas c'est sur, $params n'est pas conforme !

Dernière modification par us2rn4m2 (02-08-2012 05:52:33)

Hors ligne

 

#9 02-08-2012 08:39:25

sencha-dev2
Membre
Lieu: Centre France
Date d'inscription: 25-07-2012
Messages: 12

Re: Zend || PHP : Probleme

Merci encore pour votre aide. Après exécution, au moment de créer la session, l'erreur suivante est renvoyée :


Uncaught Ext.Error: You're trying to decode an invalid JSON String: <pre>Array
(
)
</pre><pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'array'</font> <i>(length=5)</i>
</pre>

Je ne comprends pas, car jusqu'à maintenant, cela fonctionnait parfaitement. A cette étape du programme, le code s'exécutait sans problème. Ce n'est qu'au moment de modifier une structure que le code plantait. Tandis que la création d'une structure se déroulait sans le moindre accroc. J'avoue que ce problème me laisse pantois...

Si vous y comprenez quelque chose, je vous remercie par avance de votre aide. Mon cerveau semble griller ='(

Je vais continuer mes recherches de mon côté en attendant une éventuelle réponse de votre part, merci encore.


I love Developping smile

Un développeur, un objectif, mille façons de faire, toutes inconnues big_smile
Sench@Dev

Hors ligne

 

#10 02-08-2012 11:56:30

us2rn4m2
Membre
Date d'inscription: 07-05-2011
Messages: 104

Re: Zend || PHP : Probleme

Bon j'crois qu'il faut rester simple. Si a la sortie $params ne contient pas l'array() + les valeurs attendues c'est qu'a l'entree les valeurs n'etaient pas valides ou n'avaient pas un format valide.

L'entree c'est celle la -> l'intruction: $this->update($data, array('"idTiers"=?'=>$idTiers)); qui se trouve dans Structure.php.

C'est reparti pour les var_dump() !

Dans Structure.php:
var_dump($data);
var_dump($idTiers);

Comparer les valeurs retournees avec celles auxquelles on doit s'attendre a ce moment meme de l'execution du script.

Apparement var_dump($params) renvoie le resultat d'une function javascript ("You're trying to decode ...."), ce que je ne trouve pas normal. Y'a peut etre un formatage a faire, voyez: http://framework.zend.com/manual/fr/zen … anced.expr

Juste une petite question, est ce que cette clé est bien ecrite:'"idTiers"=?' ca serait pas mieux comme ca 'idTiers=?'

Hors ligne

 

#11 02-08-2012 12:15:25

sencha-dev2
Membre
Lieu: Centre France
Date d'inscription: 25-07-2012
Messages: 12

Re: Zend || PHP : Probleme

Merci beaucoup ! La solution est proche, merci j'y vois plus clair. Je ne sais pas pourquoi, mais mes variables ne sont pas chargées avec les bonnes valeurs au moment du transfert. Je sais maintenant précisément quel est le problème. Merci encore, us2rn4m2, du temps que vos avez consacré à mon problème. Je posterai ici les résultats de ce que j'aurai trouvé, au cas où quelqu'un aurait le même problème que moi. Merci encore.

----------------------------------------------------------------

Lors d'une requête précédente, j'allais chercher idTiers à l'aide d'un select sur ma table. Le résultat renvoyé sous forme de tableau se présentait ainsi :

Code:

[lang=php]
donnees = array(array('idTiers'=>90));

Je récupérais donc un tableau imbriqué dans un autre, tandis que je transférais les données récupérées de donnees[0] ! Merci encore, maintenant il n'y a plus aucun problème !!

us2rn4m2 +10 ! big_smile cool

Dernière modification par sencha-dev2 (02-08-2012 12:31:06)


I love Developping smile

Un développeur, un objectif, mille façons de faire, toutes inconnues big_smile
Sench@Dev

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages