Créez un répertoire TP4 dans public_html et copiez-y les 7 fichiers suivant du TP3 :
adduser.phpauthenticate.phpbdd.phpsignin.phpsignout.phpsignup.phpwelcome.phpCet exercice vous propose :
Cet exercice propose d'ajouter la fonctionnalité de changement de mot de passe avec deux nouveaux fichiers : la vue formpassword.php et le contrôleur changepassword.php.
formpassword.php contenant un formulaire avec deux champs : un nouveau mot de passe et sa confirmation. Ce formulaire a pour cible changepassword.php.signin.php.changepassword.php qui :
POSTformpassword.phpwelcome.phpformpassword.php.formpassword.php sur la page welcome.php, et réciproquement.Note : Pensez à mettre à jour la variable de session
message.
deleteuser.php sur la page welcome.php.deleteuser.php qui :
signin.php.welcome.php.Note : Pensez à mettre à jour la variable de session
message.
Cet exercice va vous permettre de créer une classe User faisant le lien entre votre BDD et le reste de votre code.
models.models le fichier bdd.php.models le fichier MyPDO.php.models un fichier User.php qui contient la déclaration de la classe User avec :
$_login et $_password avec leurs getters/settersUSER_TABLE contenant le nom de la table des utilisateurs à utiliser dans les champs FROM des requêtes SQLnullDans la classe User, écrivez une méthode publique exists, sans paramètre, qui effectue les étapes du fichier authenticate.php relatives à la BDD, c'est-à-dire :
$_login de la classeAttention : pour accéder à l'objet PDO, utilisez la méthode statique pdo() de la classe MyPDO.
Modifiez le fichier authenticate.php en remplaçant tout ce qui concerne les requêtes vers la BDD par :
User à partir des variables récupérées en POSTexists pour vérifier si l'utilisateur existe dans la BDD.Note 1 : "Try-catchez" toutes les exceptions pouvant être déclenchées par l'appel à la méthode
exists().Note 2 : Utilisez à bon escient l'attribut
USER_TABLE.
Dans la classe User, écrivez une méthode publique create, sans paramètre, qui effectue les étapes du fichier adduser.php relatives à la BDD, c'est-à-dire :
$thisModifiez le fichier adduser.php en remplaçant tout ce qui concerne les requêtes vers la BDD par :
User à partir des variables récupérées en POSTcreate pour insérer l'utilisateur dans la BDD.Dans la classe User, écrivez une méthode publique changePassword, avec un mot de passe en paramètre, qui effectue les étapes du fichier changepassword.php relatives à la BDD, c'est-à-dire :
$this avec celui passé en paramètre$_password avec le nouveau mot de passe sinonModifiez le fichier changepassword.php en remplaçant tout ce qui concerne les requêtes vers la BDD par :
User à partir de son loginchangePassword pour modifier le mot de passe de l'utilisateur dans la BDD.User, écrivez une méthode publique delete qui effectue les étapes du fichier deleteuser.php relatives à la BDD, c'est-à-dire :
$thisdeleteuser.php en remplaçant tout ce qui concerne les requêtes vers la BDD par :
User à partir de son logindelete pour supprimer l'utilisateur de la BDD.controlers et views au même niveau que models.