Bonjour,
je vais vous faire part d'un problème qui me perturbe depuis 2 jours et dont je ne trouve pas ma solution.
J'ai créé un formulaire de login avec le champ "login" et "password".
Le formulaire fonctionne, les validators m'indiquent les bonnes erreurs après plusieurs tests.
Mon soucis vient de la comparaison du mot de passe avec le login. J'utilise comme table celle de phpBB3 vu que le site est développé en parallèle avec phpBB.
Leur mot de passe est crypté avec un salt, j'ai donc copié leur fonction d'encryption de mot de passe pour encrypter le mot de passe du formulaire pour ensuite le comparer à celui de la base de données. Les fonctions copiées sont :
Pour distinguer mes 2 mots de passe, j'utilise des variables significatives
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function phpbb_hash($password) {...code de la fonction...} function phpbb_check_hash($password, $hash){...code de la fonction...} function _hash_gensalt_private($input, &$itoa64, $iteration_count_log2 = 6){...code de la fonction...} function _hash_encode64($input, $count, &$itoa64){...code de la fonction...} function _hash_crypt_private($password, $setting, &$itoa64){...code de la fonction...}
Je teste la comparaison de ces deux variables avec la fonction phpbb_check_hash
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $mdpFormulaire=$values['pass']; $mdpBDD=$membre->getUserPassword();
Seulement, quand je rentre le login et le mot de passe, je tombe sur cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (phpbb_check_hash($mdpFormulaire,$mdpBDD)==1) { // Login correct } else { // Login incorrect }
Pourtant, cette fonction est définie juste au dessus... Je ne comprends pas d'ou vient l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fatal error: Call to undefined function phpbb_check_hash() in /home/website/lanup/lib/form/LoginForm.class.php on line 194
Pour pas me bloquer à ce niveau la, j'ai commenté la condition pour que toutes les logins passent sans comparer le mdp et pouvoir établir les sessions et les acl de mon application. Tout fonctionne sauf cette comparaison.
Si quelqu'un a déjà rencontré un tel problème, je serai ravi de l'entendre m'éclairer ^^
Merci de m'avoir lu,
Thony alias l'Hardy
EDIT : J'ai même tenté de faire la vérification du mot de passe via le contrôleur et non directement dans le fichier formulaire en y déplacant les fonctions également, mais j'ai la même erreur
Partager