PHP appel de fonction non définie hash_equals()
quelqu'un peut m'aider à sortir de ce problème?
j'obtiens une erreur de"call of undefined function hash_equals()
'
voici mon code:
$username = 'Admin';
$password = 'sample1Pasword';
$dbh = new PDO('mysql:host=localhost;dbname=test', $USER, $PASSWORD);
$sth = $dbh->prepare('
SELECT
hash
FROM users
WHERE
username = :username
LIMIT 1
');
$sth->bindParam(':username', $username);
$sth->execute();
$user = $sth->fetch(PDO::FETCH_OBJ);
//Hashing the password with its hash as the salt returns the same hash
if ( hash_equals($user->hash, crypt($password, $user->hash)) ) {
//Ok!
}else{
//user not found
}
Je ne sais pas ce qu'il se passe, je recherche juste pour cette fonction, mais il givin me un problème à la place.
désolé pour mon mauvais anglais. Merci!!!!
- Quelle est votre version de php?
Vous devez vous connecter pour publier un commentaire.
Dans php.net docs, on peut trouver une fonction de remplacement pour les anciennes versions de php :
Sinon, vous pouvez utiliser cette bibliothèque : https://github.com/ircmaxell/password_compat
hash_equals
n'est pas présent dans password_compatDe la documentation:
Si vous avez une version antérieure à la version 5.6.0, alors vous n'aurez pas cette fonction intégrée.
Utilisation
phpinfo()
et vérifiez votre version de PHP. Les versions antérieures à PHP 5.6 n'ont pashash_equals
fonction intégrée. La mise à niveau vers la dernière version de PHP (ou au moins à 5.6) pour utiliser cette fonction.Ce est probablement mieux vous besoin d'une petite table appelée le dos avec 2 colonnes (
ip text
,recent_datetime datetime
) et vous devriez CERTAINEMENT indicerecent_datetime
. Et ajouter votre propre moteur sql. Je n'ai pas de pré-préparer la base de déclarations. Il est lisible et considérons qu'il est du pseudo-code si vous le souhaitez. Donc calmer. Vous vie n'aura pas de fin. Je doute beaucoup que vous pouvez injecter l'adresse ip du serveur variables, et si vous le pouvez Zend sont des muppets. De toute façon je m'éloigne du sujet.Vous obtiendrez une authentification marteau de la protection de ce qui est assez ok.
Solution de prise de Facebook sdk:
https://github.com/facebook/php-graph-sdk/blob/5.x/src/Facebook/polyfills.php