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

PostgreSQL Discussion :

Fonction pl/pgsql et utilisation de pgcrypto


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Fonction pl/pgsql et utilisation de pgcrypto
    Bonjour, j'essaye d'écrire une fonction qui permet de vérifier la validité du mot de passe au niveau de postgre et non à celui de php, mais j'ai une erreur lorsque je tente de créer cette fonction:
    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
    CREATE OR REPLACE FUNCTION valPass(VARCHAR, TEXT) RETURNS BOOLEAN AS '
        DECLARE
            userToLog ALIAS FOR $1;
            pass ALIAS FOR $2;
            passHash TEXT;
        BEGIN
            passHash := SELECT crypt(pass, gen_salt('bf'));
     
            IF (passHash = SELECT pass FROM login WHERE user = userToLog) THEN
                RETURN true;
            ELSE
                RETURN false;
            END IF;
        END;
    ' LANGUAGE 'plpgsql';
    J'obtiens l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERREUR:  erreur de syntaxe sur ou près de « bf »
    LINE 7:         passHash := SELECT crypt(pass, gen_salt('bf'));
    Je precise que pgcrypto est installé et fonctionnel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select crypt('pass', gen_salt('bf'))
    donne: crypt
    $2a$06$ahMgc9nqlkVipyNonFZ6yu/l5vQdYeY.eeoOhBT6DcmU2BMuEbD4e

    Merci d'avance.

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Bonjour
    Essayez (\'bf\') ou (\"bf\") ???
    Des (quot) inclus dans des (quot) ' '' ' je ne pense pas que cela fonctionne
    Cordialement

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    C'etait effectivement ça le problème. J'avais complètement oublié les simples quotes qui encadrent la définition de la fonction.
    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/01/2012, 22h23
  2. retourner un count() par une fonction PL/pgSQL ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 22/05/2007, 14h12
  3. Réponses: 6
    Dernier message: 24/04/2007, 17h17
  4. [Mail] fonction mail : problème d'utilisation
    Par leclone dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2007, 17h02
  5. appel de fonction pl/pgsql
    Par gballou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/11/2005, 12h53

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