dakub

Bonjour,

Je suis reparti du code de Nicwalle dans sa video pour créer un blog, j'ai juste voulu modifier le sha1 (par un password_hash) qui n'est plus conseillé aujourd'hui mais la vérification sur le password ne veut pas marcher et je ne m'en sors pas étant encore débutant, j'aimerai un petit aiguillage !

La partie login.php est la même :

<?php
// Vérification en cas de tentative de connexion
if(isset($_POST['submit'])){
// création de variable et du tableau errors
$email = htmlspecialchars(trim($_POST['email']));
$hash = password_hash(htmlspecialchars(trim($_POST['password'])), PASSWORD_DEFAULT);
$password = password_verify(htmlspecialchars(trim($_POST['password'])), $hash);
$pwdhash = password_hash($password, PASSWORD_DEFAULT);
$errors = [];
// Vérification si champs remplis
if(empty($email) || empty($password)){
$errors['empty'] = "Tous les champs n'ont pas été remplis!";
// Vérification si correspondance
}else if (is_admin($email, $password) == 0){
$errors['exist'] = "Cet administrateur n'existe pas";
}
// Affichage erreurs
if(!empty($errors)){
?>
<div class="card red">
<div class="card-content white-text">
<?php
var_dump($email, $password);
foreach($errors as $error){
echo $error."<br/>";
}
?>
</div>
</div>
<?php
}else{
// Ok, renvoi vers la page de gestion
$_SESSION['admin'] = $email;
header("Location:index.php?page=dashboard");
}

}


?>

Le problème se situe plutôt au niveau du login.func.php je suppose :

<?php

// comparaison infos entrées et bdd pour connexion admin
function is_admin($email, $password)
{

global $db;
$a = [
'email' => $email,
'password' => $password
];
$sql = "SELECT * FROM admins WHERE email = :email AND password = :password";
$req = $db->prepare($sql);
$req->execute($a);
$exist = $req->rowCount($sql);
return $exist;
}
J'ai bien tenté avec un password_verify pour la variable $password mais rien n'y fait

Le 31/05/2018 à 11:02
dakub

Problème résolu.

Le 01/06/2018 à 17:43
meziane

bonjour vous pouvez donnez la solution

Le 21/08/2021 à 16:38
Connectez-vous pour pouvoir répondre