Exercice 19 - Modification et suppression de client
Table des matières
Mise en situation
Vous devez maintenant utiliser PDO pour faire les demandes CRUD suivantes en bas:
Modalités
- Exercice en équipe de deux
- Réaliser durant les cours
- Durée approximative de 60 à 80 minutes
- Le fichier de remise est un fichier zip
- Remis les deux personnes sur Léa dans exercice 19
À faire (étapes)
Étape 0
Regardez la vidéo de démonstration de ce qu'il y a à faire
Étape 1
En utilisant les fichiers de votre projet et avec la base de données fournie ecommerce
- Faites une copie du fichier pages/inscription.php et renommez-le pages/profil.php
- Le fichier s'appelle peut-être un autre nom, mais c'est le fichier où vous pouvez créer un nouvel utilisateur!
- Le profil doit apparaître dans le menu du site lorsque l'usager est connecté (ajouter un lien vers la page 'profil')
- Indice: faire un if avec $estConnecte comme pour le panier
- Le profil n'est pas disponible si l'usager n'est pas connecté (redirection si on accède à 'profil' à la main)
// Lors de la connexion je cérer deux variables de session if(!isset($_SESSION["estConnecte"]) || !isset($_SESSION["usager"])){ header('Location: /'); exit(); }
- Faire un peu de ménage dans le fichier profil.php (exemple titre, etc.)
- Le formulaire doit rester là, mais avec un peu de modifications:
<form id="frm_profile" method="post" class="need-validation" novalidate> <input type="hidden" name="hid_profile" id="hid_profile">
- RAPPEL: need-validation doit être renommé needs-validation pour activer la validation Bootstrap!
- Les validations client aussi doivent rester!
- La validation du code postal doit être modifiée pour fonctionner avec le format en BD A9A9A9
pattern="[A-Z][0-9][A-Z][0-9][A-Z][0-9]"
- La validation du code postal doit être modifiée pour fonctionner avec le format en BD A9A9A9
- Enlever la section de la case à cocher, car c'est pour l'inscription
- Le formulaire doit rester là, mais avec un peu de modifications:
Étape 2
- Faire une fonction de mise à jour nommée updateClient() de client à partir de l'exemple du code du cours 19 et de la fonction createClient existante.
- Pour avoir les informations préremplis dans le formulaire, vous devez aller chercher les infos du client dans la BD avec un read et mettre les infos dans une variable $client
EXPERT: Faites une requête qui n'ira pas chercher le mot de passe (sécurité)! - Avec ces infos, vous devez faire les "value" de chaque élément de formulaire (sauf le mot de passe):
<input type="text" class="form-control" id="txt_prenom" name="txt_prenom" required value="<?php echo $client['prenom']; ?>">
- Mettez à disabled le champ d'usager et ne doit pas être capable de le modifier!
- Pour le textarea vous allez devoir faire différemment:
<textarea class="form-control" id="txt_adresse" name="txt_adresse" required><?php echo $client['adresse']; ?></textarea>
EXPERT: Faire que la liste déroulante de province soit correctement sélectionnée!
- Vous devez ajouter l'ID du client à modifier dans le formulaire (je vous recommande de faire un champ caché):
<input type="hidden" name="txt_id" id="txt_id" value="<?php echo $client['id']; ?>">
- Faire une fonction de validation de formulaire à partir de celle que vous aviez fait pour l'inscription
- Modifier la validation du code postal, car elle n'a pas le bon format
- Enlever la validation du nom d'usager (il est disabled)
- Enlever la validation de la case à cocher
- Ajouter la validation de l'ID
- EXPERT: Faire que si le courriel est déjà en BD, on affiche l'erreur que le courriel existe déjà!
- Si tout est valide côté serveur, on lance la fonction de mise à jour!
- Aller vérifier que l'usager est à jour dans la BD.
Étape 3
- Créer un lien en bas complètement du formulaire avec le texte suivant: "Supprimer mon profil"
- Le lien doit mener à une page d'action nommée delete-client.php qui sera dans le dossier actions
- Cette page ne contient que:
- Le code de vérification que l'on est bien connecté
- Pour avoir l"id de l'usager, vous devez aller chercher les infos du client dans la BD avec un read et mettre les infos dans une variable $client
- L'appel d'une fonction qui reçoit l'ID du compte à supprimer
- Destruction de la session AU COMPLET
- Une redirection vers l'accueil
Étape 4
- Envoyez-moi les fichiers zippés tout le monde dans *exercice 19 sur Léa