Cours 4 - Gestion Membres

Conception de Sites Web dynamiques 2024-2025

Architecture Client-Serveur avec connexion BDD

Programme

  • Calendrier TD/Cours

  • Calendrier projets CSWD

  • Dangers sur Internet

  • Rappel TD6

  • Gestion de membres sur un site web communautaire

  • Méthodologie et messages d’erreurs

Calendrier TDs/Cours

  • TD cette semaine : Gestion de membres (td7)

  • TD restants :

    • td8 Variables de sessions

    • td9 préparation d’un plus grand projet

    • td10 Téléversement de fichiers, p.ex. images

    • td11 : JavaScript

    • td12 : css framework bootstrap

    • td13 : Wordpress CMS (SGC),

    • td14 : Github

    • sondages/votes/accompagnement projet

Projet

Calendrier :

  • Formation de groupes et réflexions sur sujets à choisir (en cours)

  • Inscription de votre projet (avant le mercredi 19 mars 2024, 23h59)

  • Dépôt de votre description fonctionnelle (avant le mercredi 1 avril 2024, 23h59)

  • Rendu final de projet (fin avril ou début mai, 23h59)

Méthodologie et messages d’erreurs

  1. Testez au fur et à mesure

  2. Messages d’erreurs : pas de panique, lisez-les !

  3. Affichez le codes source du navigateur

  • interprétation de deux code sources :
    1. PHP (+html) -> html pur
    1. html pur –> affichage du navigateur

Méthodologie et messages d’erreurs

  • Messages d’erreurs : pas de panique, lisez-les !
  • Au CREMI (ou wampserver), aperçu :
  • Sur MAMP, aperçu :

Méthodologie et messages d’erreurs

Dangers sur Internet

  • hameçonnage
  • ransomware
  • vols d’identité
  • SQL injection
  • fakes

Rappel Cours3 et TD6

Architecture Client-Serveur avec connexion BDD

BDD : Tables

Exemple : Table commentaire

Conventions des noms des tables dans CSWD

  • minuscules
  • pas de caractères spéciaux
  • singulier
  • pour chaque table, renseignez quelques enregistrements

MySQL

Les instructions les plus courantes pour manipuler les données des tables MySQL :

Commande SQL Explication Opération CRUD
INSERT Permet d’ajouter un ou plusieurs enregistrements. (Create)
SELECT Permet de récupérer un ou plusieurs enregistrements. (Read)
UPDATE Permet de modifier un ou plusieurs enregistrements. (Update)
DELETE Permet d’effacer un ou plusieurs enregistrements. (Delete)

CRUD : Read

Instruction MySQL : SELECT :

<?php
// inclure la connexion à la base de données
require_once "connexion_base.php";

$requete  = "SELECT * FROM commentaire;        ";
$reponse = $pdo->prepare($requete);
$reponse->execute();

// récupérer tous les enregistrements dans un tableau
$enregistrements = $reponse->fetchAll();

// connaitre le nombre d'enregistrements
$nombreReponses = count($enregistrements);

Parcourir les éléments :

// parcourir le tableau des enregistrements
for ($i=0; $i<count($enregistrements); $i++)
{
    echo $enregistrements[$i]['nom'];
    echo $enregistrements[$i]['texte'];
    echo $enregistrements[$i]['date'];
} 
?>

Gestion de membres sur un site web communautaire

  • RGPD

  • Encodages mot de passe

RGPD - Le règlement général sur la protection des données

Règlement de l’Union européenne qui est le texte de référence pour la protection des données à caractère personnel

  • Applicable depuis le 25 mai 2018.
  • Objectifs :
    • Accroître la protection des personnes concernées par un traitement de leurs données à caractère personnel
    • Responsabiliser les acteurs de ce traitement.

–> redonner aux citoyens le contrôle de leurs données personnelles, tout en simplifiant l’environnement réglementaire des entreprises

RGPD - Le règlement général sur la protection des données

Principes :

  • Cadre harmonisé dans l’Union européenne
  • Application extraterritoriale (acteurs non UE sont concernés pour les données relatives à l’UE)
  • Le consentement « explicite » et « positif » (p.ex. case non pré-coché)
  • Le droit à l’effacement
  • Le droit à la portabilité des données personnelles
  • Le profilage
  • Les principes de « protection des données dès la conception » et de « sécurité par défaut »
  • Les notifications en cas de fuite de données
  • La possibilité de désigner un délégué à la protection des données

RGPD : Exemple - Consentement pour collecte de données

  • Action pour donner le consentement (« En soumettant ce formulaire »)
  • Rappeler qui consente : (« Je »)
  • Utiliser un verbe d’accorder/accepter/consentir (« accepte »)
  • Repose sur quoi : (« informations saisies »)
  • Rappeler quoi faire : (« utilisées, exploitées, traitées »)
  • Rappeler l’objectif : (« pour permettre de m’authentifier dans le cadre du TD9 »)

RGPD : Exemple - Consentement pour collecte de données

Exemple 2 : Les principes de « protection des données dès la conception »

  • Exemple : Chiffrement des mots de passe
  • Techniquement en PHP : Chiffrement avec la fonction password_hash, vérification avec la fonction password_verify

RGPD

RGPD

<?php
$motdepasse_crypte = password_hash($motdepasse, PASSWORD_DEFAULT);

// exécuter une requete MySQL de type INSERT
$requete="INSERT INTO membre (pseudo,motdepasse,nom,prenom,email,dateinscrit) 
                      VALUES (   ?,      ?,       ?,     ?,  ?,      NOW())";
$reponse=$pdo->prepare($requete);
$reponse->execute(array($pseudo, $motdepasse_crypte, $nom, $prenom, $email));
?>

RGPD