2015-12-17 4 views
-1

Comment puis-je faire de ce hash le mot de passe saisi par l'utilisateur lors de son inscription sur le site? J'ai déjà le journal de travail avec $ hash qui fonctionne bien quand je l'ai testé avec un mot de passe $ hash saisi manuellement, mais je ne peux pas obtenir ce formulaire pour créer les mots de passe cryptés.

<?php 
if(isset($_POST['emailaddress'],$_POST['password'],$_POST['name'])){ 
    $result= $pdo->prepare('INSERT INTO user (emailaddress, password, name) 
         VALUES(:emailaddress, :password, :name)'); 
    $hash = password_hash(password, PASSWORD_DEFAULT); 
    unset($_POST['submit']); 
    $result->execute($_POST); 
    header("Location:admin.php"); 
} 
+3

Vous ne passez '$ _POST 'et jamais' $ hash'. Quelque chose comme 'execute (array (': emailaddress' => $ _POST ['emailaddress'], ': password' => $ hash, ...))' devrait fonctionner – kero

+0

password_hash (mot de passe, PASSWORD_DEFAULT); -> password_hash ($ _ POST ['mot de passe'], PASSWORD_DEFAULT); – Progrock

+0

[Ce n'est pas un chiffrement] (https://paragonie.com/blog/2015/08/you-wouldnt-base64-a-password-cryptography-decoded)! –

Répondre

0

Ajouter $hash dans la $_POST avant d'exécuter la requête

$_POST['password'] = $hash; 
$result->execute($_POST); 

Mieux encore est ce que kingkero a commenté, de cette façon vous évitez les valeurs non désirées dans le $_POST