Salut ç vous tous ! =)
Alors j'ai fini le tuto "Gestion d'un espace membre en PHP" et je me suis attaqué au "Gestion d'un compte membre (refactorisation)"
Que je suis allé jusqu'au bout avec l'aide d'un membre de ce forum qui l'a beaucoup aider ^^
Alors j'ai un problème avec un code en PHP qui permet de reinitualiser le mot de passe. quand je l'essaie chez moi j'ai le message d'erreur suivant ;
Notice: Undefined variable: pdo in /home/tutovjcg/public_html/AUTRES/SouloufXYZ/membres/account.php on line 12
Fatal error: Uncaught Error: Call to a member function prepare() on null in /home/tutovjcg/public_html/AUTRES/SouloufXYZ/membres/account.php on line 12
Voici le code utilis"
<?php
require 'inc/bootstrap.php';
App::getAuth()->restrict();
if(!empty($_POST)){
if(empty($_POST['password']) || $_POST['password'] != $_POST['password_confirm']){
$_SESSION['flash']['danger'] = "Les mots de passes ne correspondent pas";
}else{
$user_id = $_SESSION['auth']->id;
$password= password_hash($_POST['password'], PASSWORD_BCRYPT);
require_once 'inc/db.php';
$pdo ->prepare('UPDATE users SET password = ? WHERE id = ?')->execute([$password, $user_id]);
$_SESSION['flash']['success'] = "Ton mot de passe a bien été mis à jour ;-)";
}
}
require 'inc/header.php';
?>
<h1>Bonjour <?= $_SESSION['auth']->username; ?></h1>
<form action="" method="post">
<div class="form-group">
<input class="form-control" type="password" name="password" placeholder="Changer de mot de passe"/>
</div>
<div class="form-group">
<input class="form-control" type="password" name="password_confirm" placeholder="Confirmation du mot de passe"/>
</div>
<button class="btn btn-primary">Changer mon mot de passe</button>
</form>
<?php require 'inc/footer.php'; ?>
```Pourriez-vous m'aider s'il vous plait ?
Merci d'avance
Bonsoir.
Tout simplement parce que tu n'as pas bien suivi le tutoriel, car dans le tutoriel, il n'inclue pas un fichier pour la connexion à la base de données et c'est visible sur la description même du tutoriel, pour récupérer la connexion à la base de données, il te faut faire :
$pdo = App::getDatabase();