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

Zend_Db PHP Discussion :

[Zend_Auth] + PDO_MSSQL : problème d'authentification


Sujet :

Zend_Db PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut [Zend_Auth] + PDO_MSSQL : problème d'authentification
    Bonjour à tous , je rencontre quelques problèmes à réaliser une authentification avec Zend_Auth (1.0.1) sous Microsoft SQL 2000.

    Aucun problème lors de l'utilisation de pdo_mysql en revanche avec pdo_mssql j'obtiens un message du genre :

    "Uncaught exception 'Zend_Auth_Adapter_Exception' with message 'The supplied parameters to Zend_Auth_Adapter_DbTable failed to produce a valid sql statement, please check table and column names for validity"
    J'ai alors regardé le code source du fichier DbTable.php afin de voir la requête générée automatiquement par cette classe lors d'une authentification et on trouve ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT `nomTable`.*, `password` = 'test' AS zend_auth_credential_match FROM `nomTable` WHERE (`username` = 'test')"
    Cette syntaxe est tout à fait comprise par Mysql mais par SQL Server.

    Dois-je faire quelque chose du coté base de donnée ou est-ce un problème de config ou tout simplement un bug du FrameWork ?

    J’espère que quelqu'un pourra me répondre car je dois avouer que cela me dépasse. Merci d'avance

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Si tu envoies cette requête directement à MS SQL Server, quelle réponse as-tu ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    Salut Yogui, lorsque j'execute cette requête directement coté SQL Server j'obtiens la réponse suivante :

    -> Syntaxe incorrecte vers le mot clé 'AS'.

    Je rappel que cette requete est automatiquement générée par Zend et que j'ai du bidouiller les sources pour pouvoir l'afficher.

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Alors c'est sans doute un bug de l'API

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    Ok donc tu en viens à la même conclusion que moi

    Faut il faire une demande auprès de nos confrères développeur de chez Zend ?

    Si oui comment faire ?

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Il faut sans doute faire un rapport de bug et éventuellement proposer une solution. Je t'avoue ne pas m'être penché sur la question...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    J'ai signalé le bug sur la DevZone mais toujours pas de réponse de leur part.
    En fouillant un peu plus, je m’aperçoit que le plantage vient au moment suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ## class Zend_Auth_Adapter_DbTable ##
    try {
                $resultIdentities = $this->_zendDb->fetchAll(str_replace('"','',$dbSelect->__toString()));
            } catch (Exception $e) {
     
    ############################
    Le fetchAll() ne revoit rien donc le test part directement dans le catch.
    Quelqu'un aurait il une solution à proposer pour remédier à cela ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    Oups désoler, le str_replace() était un essai pour voir si cela ne venait pas des quote_identifier, il ne faut pas en tenir compte

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    J'ai réussi faire une modification dans la classe pour que l'authentification soit acceptée et maintenant j'ai le message suivant :

    Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'A table must have a primary key, but none was found' in J:\www\test\library\Zend\Db\Table\Abstract.php:640 Stack trace: #0 J:\www\test\library\Zend\Db\Table\Abstract.php(529): Zend_Db_Table_Abstract->_setupPrimaryKey() #1 J:\www\test\library\Zend\Db\Table\Abstract.php(264): Zend_Db_Table_Abstract->_setup() #2 J:\www\test\application\controllers\IndexController.php(21): Zend_Db_Table_Abstract->__construct() #3 ........
    Quelqu'un a-t-il déjà rencontré ce message ou sais comment le régler ? Merci d'avance

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    On dirait qu'il te manque une clef primaire. C'est ce que dit le message d'erreur, qui me semble très explicite au passage

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 74
    Points : 43
    Points
    43
    Par défaut
    Lol oui jusque là j'avais compris mais je ne vois aucune methode qui permette d'indiquer la clé primaire dans la classe.
    Ma table a bien une clé primaire de déclarée mais comment l'indiquer à la classe. De plus je ne pense pas avoir vu quelque part qu'il était nécéssaire dans déclarer une durant la procedure d'authentification.

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par Yogui Voir le message
    Alors c'est sans doute un bug de l'API
    (bis)

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    il faudrait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected $_primary = 'my_key';
    ?

  14. #14
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    C'est exactement ça et il serait bon de lire la documentation plutôt que de systématiquement demander de l'aide tu ne progressera pas sinon et ça t'aurais fait gagner du temps pour ce deuxième problème.

    En ce qui concerne ton problème avec ms server.
    Zend supporte tout à fait ce SGBD, j'ai déjà travaillé sous postgresql, mysql et et ms server sans rencontrer le moindre problème.

    Tu as configurer au moins ton application pour dire d'utiliser le connecteur adéquat?

    Si tu as es doutes sur ce que je dis je t'invite à regarder http://framework.zend.com/manual/fr/...b.adapter.html

Discussions similaires

  1. Problème d'authentification / réécriture URL
    Par arN34 dans le forum Apache
    Réponses: 4
    Dernier message: 30/09/2006, 15h24
  2. [Cookies] problème d'authentification
    Par WELCOMSMAIL dans le forum Langage
    Réponses: 12
    Dernier message: 31/07/2006, 17h30
  3. [LDAP] Problème d'authentification via PHP
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 21/07/2006, 09h45
  4. [Tomcat] Problème d'authentification au Proxy
    Par Tangi29 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 12/06/2006, 10h39

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