pull/25/head
Leni BEAULATON 4 months ago
parent 7ed6fa3ba3
commit ce29030d46

@ -67,6 +67,15 @@ function editFieldPassWd(id) {
var pElement = document.getElementById(id);// Récupérer l'élément <p> via son identifiant
pElement.innerHTML = '';// Effacer le contenu actuel de <p> pour insérer les inputs
// Créer le champ de saisie pour le mot de passe à changer
var inputOldPass = document.createElement('input');
inputOldPass.type = 'password';
inputOldPass.placeholder = 'Mot de passe actuel'; // Un placeholder pour indiquer la fonction du champ
inputOldPass.classList.add('changeValue'); // Ajouter une classe CSS pour styliser l'input
inputOldPass.setAttribute('id', 'oldPassword'); // Ajouter un ID pour la gestion
inputOldPass.classList.add('inputPasswd'); // Ajouter une classe au input
inputOldPass.name='oldPasswd';
// Créer le champ de saisie pour le nouveau mot de passe
var inputNewPass = document.createElement('input');
inputNewPass.type = 'password';
@ -92,11 +101,16 @@ function editFieldPassWd(id) {
saveButton.classList.add('saveButtonPasswd'); // Ajouter une classe au bouton
saveButton.type="submit";
// Ajouter les deux champs de saisie et le bouton dans l'élément <p>
// Ajouter les champs de saisie et le bouton dans l'élément <p>
pElement.appendChild(inputOldPass);
pElement.appendChild(document.createElement('br')); // Saut de ligne pour espacer les champs
pElement.appendChild(inputNewPass);
pElement.appendChild(document.createElement('br')); // Saut de ligne pour espacer les champs
pElement.appendChild(inputConfirmPass);
pElement.appendChild(document.createElement('br')); // Saut de ligne pour espacer
pElement.appendChild(saveButton);
inputNewPass.focus();// Mettre le focus sur le premier champ de saisie

@ -230,6 +230,7 @@ class UserControler {
$newImage = $_POST['image'] ?? null;
$newPseudo = $_POST['pseudo'] ?? null;
$newEmail = $_POST['email'] ?? null;
$oldPasswd = $_POST['oldPasswd']?? null;
$newMdpFirst = $_POST['passwdFirst'] ?? null;
$newMdpSecond = $_POST['passwdSecond'] ?? null;
@ -260,16 +261,29 @@ class UserControler {
//Modif le mot de passe
else if($newMdpFirst && $newMdpSecond){
if($newMdpFirst == $newMdpSecond){
$option = ['cost' => 12];
$newPassWd = password_hash($newMdpFirst, PASSWORD_BCRYPT, $option);
$user = $this-> uMod->setPassWd($_SESSION['user'], $newPassWd);
if(!$oldPasswd){
$_SESSION['error_message'] = "Veuillez taper votre ancien mot de passe";
header("Location: ". $racine."/profil");
}
else{
$_SESSION['error_message'] = "Les mots de passe ne correspondent pas";
else if(!$this->uMod->isPassWd($_SESSION['user'], $oldPasswd)){
$_SESSION['error_message'] = "Votre ancien mot de passe est incorrect";
header("Location: ". $racine."/profil");
}
else{
if($newMdpFirst == $newMdpSecond){
$option = ['cost' => 12];
$newPassWd = password_hash($newMdpFirst, PASSWORD_BCRYPT, $option);
$user = $this-> uMod->setPassWd($_SESSION['user'], $newPassWd);
}
else{
$_SESSION['error_message'] = "Les mots de passe ne correspondent pas";
header("Location: ". $racine."/profil");
}
}
}
//Modif l'image

@ -89,6 +89,9 @@ Class UserGateway extends Gateway{
return $this->co->getResults();
}
// ===================== CHECK FUNCTION =====================
public function IsExisteUsername(string $username): bool {
$query = 'SELECT COUNT(*) as count FROM Users WHERE username = :username';
$this->co->executeQuery($query, array(':username' => array($username, PDO::PARAM_STR)));
@ -105,6 +108,16 @@ Class UserGateway extends Gateway{
return $results[0]['count'] > 0; // retourne true si "count" > 0)
}
public function getPasswordHash(string $username): ?string {
$query = 'SELECT password FROM Users WHERE username = :username';
$this->co->executeQuery($query, array(':username' => array($username, PDO::PARAM_STR)));
$results = $this->co->getResults();
// Si un utilisateur est trouvé, retourner le hash du mot de passe, sinon null
return $results ? $results[0]['password'] : null;
}
// ===================== UPDATE FUNCTION =====================
//Update Username

@ -84,6 +84,13 @@
return $this->gateway->IsExisteEmail($email);
}
public function isPassWd(string $username, string $passWd): bool {
$hash = $this->gateway->getPasswordHash($username);
return $hash !== null && password_verify($passWd, $hash);
}
public function setUsername(string $username, string $newUsername): string {
@ -128,7 +135,6 @@
}
public function isFavorite(?string $username, int $idq): bool {
if($_SESSION["user"] == NULL){
return false;

Loading…
Cancel
Save