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.