0% ont trouvé ce document utile (0 vote)
28 vues54 pages

MVC + Cookie Reset API

Ce document explique comment se connecter à une base de données MySQL en utilisant PDO en PHP, en abordant la gestion des erreurs et la fermeture de la connexion. Il couvre également les opérations de base de données telles que l'insertion, la mise à jour, la suppression et la sélection de données, ainsi que l'utilisation de requêtes préparées pour sécuriser les interactions avec la base de données. Enfin, il traite de la gestion des sessions et des cookies pour sécuriser les données des utilisateurs.

Transféré par

Anas
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
28 vues54 pages

MVC + Cookie Reset API

Ce document explique comment se connecter à une base de données MySQL en utilisant PDO en PHP, en abordant la gestion des erreurs et la fermeture de la connexion. Il couvre également les opérations de base de données telles que l'insertion, la mise à jour, la suppression et la sélection de données, ainsi que l'utilisation de requêtes préparées pour sécuriser les interactions avec la base de données. Enfin, il traite de la gestion des sessions et des cookies pour sécuriser les données des utilisateurs.

Transféré par

Anas
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Écrire des scripts d’accès aux données

Connexion à une base de données MySQL avec PDO

Introduction
 On appelle base de données une collection de données stockées dans des
fichiers particuliers ;
 Les bases de données vont nous permettre de stocker de grandes quantités
de données sans date d’expiration. Nous allons ensuite pouvoir manipuler
ces données ;
 Le langage des bases de données est le SQL. C’est un langage de requêtes
qui va nous permettre d’accéder aux bases de données et de les manipuler ;
 Nous n’allons pas pouvoir communiquer directement en SQL avec nos
bases de données. Pour se faire, nous devrons utiliser un système de gestion
de bases de données comme le MySQL ;
Écrire des scripts d’accès aux données
Connexion à une base de données MySQL avec PDO

 le MySQL va nous servir à envoyer nos requêtes écrites en SQL standard à


nos bases de données.
 Nous allons pouvoir envoyer nos requêtes SQL via le MySQL de deux
façons :
 soit dans nos fichiers de code PHP,
 soit en passant par l’interface phpMyAdmin qui est un logiciel
également codé en PHP;
 Nous allons utiliser phpMyAdmin lorsque nous voudrons effectuer des
actions manuelles directes sur nos bases de données. Dès que les appels à la
base de données seront conditionnés par l’utilisateur, il faudra plutôt utiliser
nos fichiers de code PHP.
Écrire des scripts d’accès aux données
Connexion à une base de données MySQL avec PDO

Se connecter à une base de données MySQL en PHP


 Pour pouvoir manipuler nos bases de données MySQL en PHP (sans passer
par phpMyAdmin), nous allons déjà devoir nous connecter à MySQL.
 Pour cela, le PHP met à notre disposition deux API (Application
Programming Interface) :
 L’extension MySQLi ;
 L’extension PDO (PHP Data Objects).
 Pour se connecter en utilisant PDO, nous allons devoir instancier la
classe PDO en passant au constructeur la source de la base de données
(serveur + nom de la base de données) ainsi qu’un nom d’utilisateur et un
mot de passe.
Écrire des scripts d’accès aux données
Connexion à une base de données MySQL avec PDO

 Notez également qu’avec PDO il est véritablement indispensable que votre


script gère et capture les exceptions (erreurs) qui peuvent survenir durant la
connexion à la base de données. Nous utilisons la méthode setAttribute() en
lui passant deux arguments
PDO::ATTR_ERRMODE et PDO::ERRMODE_EXCEPTION.
 Une fois la connexion à la base de données ouverte, celle-ci reste active
jusqu’à la fin de l’exécution de votre script.
 Pour fermer la connexion avant cela, nous allons devoir utiliser différentes
méthodes selon la méthode d’ouverture choisie.
Écrire des scripts d’accès aux données
Connexion à une base de données MySQL avec PDO

Si on utilise PDO, il faudra détruire l’objet représentant la connexion et effacer toutes


ses références. Nous pouvons faire cela en assignant la valeur NULL à la variable
gérant l’objet.
Écrire des scripts d’accès aux données
Connexion à une base de données MySQL avec PDO

 Sur la page d’accueil de phpMyAdmin, vous pouvez soit cliquer sur


« Nouvelle base de données » dans la colonne de gauche, soit sur l’onglet
« Bases de données en haut ».

 Une fois arrivé ici, renseignez le nom de la base de données que vous
souhaitez créer (on peut par exemple l’appeler « pdodb2 ») et cliquez sur «
créer ».
Écrire des scripts d’accès aux données
Connexion à une base de données MySQL avec PDO

 phpMyAdmin crée la BD et vous amène sur une page vous permettant déjà
de créer une première table. Vous pouvez revenir sur cette même page en
cliquant sur le nom de la base de données créée dans la liste des bases à
gauche de votre page.
Écrire des scripts d’accès aux données
Insérer des données dans une table
 Pour insérer des données dans une table, nous allons utiliser l’instruction
SQL INSERT INTO suivie du nom de la table dans laquelle on souhaite insérer une
nouvelle entrée avec sa structure puis le mot clef VALUES avec les différentes
valeurs à insérer.
INSERT INTO nom_de_table (nom_colonne1, nom_colonne2,
nom_colonne3, …)
VALUES (valeur1, valeur2, valeur3, …)
Écrire des scripts d’accès aux données
Insérer des données dans une table
 Nous pouvons ajouter les méthodes beginTransaction(), commit() et rollBack() dans
notre code.

 La méthode beginTransaction() permet de démarrer ce qu’on appelle une transaction


et de désactiver le mode autocommit. Concrètement, cela signifie que toutes les
manipulations faites sur la base de données ne seront pas appliquées tant qu’on ne
mettra pas fin à la transaction en appelant commit().

 La méthode commit() sert donc à valider une transaction, c’est-à-dire à valider


l’application d’une ou d’un ensemble de requêtes SQL. Cette méthode va aussi
replacer la connexion en mode autocommit.

 La méthode rollBack() sert à annuler une transaction si l’on s’aperçoit d’une erreur.
Cette méthode restaure le mode autocommit après son exécution.
Écrire des scripts d’accès aux données
Insérer des données dans une table
Écrire des scripts d’accès aux données
Modifier les données d’une table MySQL

 Nous allons utiliser l’instruction SQL UPDATE suivie du nom de la table

pour mettre à jour des données dans une table.

 Cette instruction va toujours être accompagnée de SET qui va nous servir à

préciser la colonne à mettre à jour ainsi que la nouvelle valeur pour la

colonne.
Écrire des scripts d’accès aux données
Supprimer les données d’une table MySQL

 Pour supprimer des données d’une table, nous allons utiliser l’instruction

SQL DELETE FROM. Pour préciser quelles entrées doivent être

supprimées, nous allons accompagner DELETE FROM d’une

clause WHERE nous permettant de cibler des données en particulier dans

notre table.
Écrire des scripts d’accès aux données
Sélectionner les données d’une table MySQL

 Pour sélectionner des données dans une base de données, nous allons

utiliser l’instruction SQL SELECT… FROM


Écrire des scripts d’accès aux données
Sélectionner les données d’une table MySQL
 Une fois les valeurs sélectionnées, nous utilisons la méthode fetchAll() qui
est une méthode de la classe PDOStatement qui va retourner un tableau
contenant toutes les lignes de résultats.
 Ici, nous passons un argument (facultatif) à fetchAll() qui est le «
fetch_style ». La valeur FETCH_ASSOC va faire que le tableau retourné
sera un tableau multidimensionnels contenant des tableaux indexés avec le
nom des colonnes dont on récupère les données en index.
Écrire des scripts d’accès aux données
Sélectionner les données d’une table MySQL
Écrire des scripts d’accès aux données
Les requêtes MySQL préparées avec PDO
 Les requêtes préparées correspondent à une façon de créer et d’exécuter nos
requêtes selon trois étapes : une étape de préparation, une étape de
compilation et finalement une dernière étape d’exécution.
 Préparer ses requêtes comporte des avantages notables notamment dans le
cas où l’on doit insérer des données envoyées par les utilisateurs.
 Tout d’abord, une première phase de préparation dans laquelle nous allons
créer un Template ou schéma de requête, en ne précisant pas les valeurs
réelles dans notre requête mais en utilisant plutôt des marqueurs nommés
(sous le forme :nom) ou des marqueurs interrogatifs (sous la forme ?).
Écrire des scripts d’accès aux données
Les requêtes MySQL préparées avec PDO
 Une fois le template créé, la base de données va analyser, compiler, faire
des optimisations sur notre template de requête SQL et va stocker le
résultat sans l’exécuter.

 Finalement, nous allons lier des valeurs à nos marqueurs et la base de


données va exécuter la requête. Nous allons pouvoir réutiliser notre
template autant de fois que l’on souhaite en liant de nouvelles valeurs à
chaque fois.

 Pour exécuter une requête préparée, nous allons cette fois-ci devoir
utiliser la méthode execute() et non plus exec() comme on utilisait depuis
le début de cette partie.
Écrire des scripts d’accès aux données
Les requêtes MySQL préparées avec PDO
 En utilisant des marqueurs dans nos requêtes préparées, nous allons avoir
deux grandes options pour exécuter la méthode execute() :

 On va pouvoir lui passer un tableau de valeurs de paramètres (uniquement


en entrée);
Écrire des scripts d’accès aux données
Les requêtes MySQL préparées avec PDO

Avec execute(array) et des marqueurs nommés


Écrire des scripts d’accès aux données
Les requêtes MySQL préparées avec PDO
Avec execute(array) et des marqueurs interrogatifs
Écrire des scripts d’accès aux données
Exercice d’applications
 Créer une table stagiaire contenant les colonnes : id, cin, nom, prénom, age;
 Créer un menu contenant les options suivantes:Ajouter | Modifier | Supprimer | Lister
 En cliquant sur Ajouter vous serez rediriger vers la page [Link] qui contient un
formulaire permettant suite au clique sur le bouton ajouter d’ajouter les données
saisi à la BD et lister les données de la table stagiaire dans un tableau html;
 En cliquant sur Modifier vous serez rediriger vers la page [Link] qui contient
un formulaire permettant suite au clique sur le bouton modifier de modifier la ligne
correspondant au cin saisi par les données saisi et lister les données de la table
stagiaire dans un tableau html;
 En cliquant sur Supprimer vous serez rediriger vers la page [Link] qui
contient un formulaire permettant suite au clique sur le bouton supprimer de
supprimer la ligne correspondant au cin et lister les données de la table stagiaire
dans un tableau html;
Écrire des scripts d’accès aux données
Les requêtes MySQL préparées avec PDO
Écrire des scripts d’accès aux données
Récupération des résultats
Constantes PDO
 PDO::FETCH_ASSOC (int) :Spécifie que la méthode de récupération doit retourner
chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont
retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de
multiples colonnes avec le même nom, PDO::FETCH_ASSOC retourne une seule valeur
par nom de colonne.
 PDO::FETCH_NAMED (int) : Spécifie que la méthode de récupération doit retourner
chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont
retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de
multiples colonnes avec le même nom, PDO::FETCH_NAMED retourne un tableau de
valeurs par nom de colonne.
 PDO::FETCH_COLUMN (int): Spécifie que la méthode de récupération doit retourner
uniquement une seule colonne demandée depuis la prochaine ligne du jeu de résultats.
Sécuriser les données
Utilisation des sessions et des cookies
 Un cookie est un petit fichier texte qui ne peut contenir qu’une quantité limitée
de données.

 Les cookies vont être stockés sur les ordinateurs de vos visiteurs. Ainsi, à tout
moment, un utilisateur peut lui même supprimer les cookies de son ordinateur.

 De plus, les cookies vont toujours avoir une durée de vie limitée. On pourra
définir la date d’expiration d’un cookie.

 Ainsi, dès qu’un utilisateur connu demande à accéder à une page de notre site,
les cookies vont également automatiquement être envoyées dans la requête de
l’utilisateur. Cela va nous permettre de l’identifier et de lui proposer une page
personnalisée.
Sécuriser les données
Utilisation des sessions et des cookies
Créer un cookie en PHP

 Pour créer un cookie en PHP, nous allons utiliser la fonction setcookie().

 Une particularité notable de cette fonction est qu’il va falloir l’appeler avant
d’écrire tout code HTML pour qu’elle fonctionne puisque les cookies
doivent être envoyés avant toute autre sortie. Pour information, cette
restriction provient du protocole HTTP et non pas de PHP.

 Cette fonction peut accepter jusqu’à sept valeurs en arguments. Cependant,


seul la première (le nom du cookie créé) est obligatoire.

 La syntaxe de base de setcookie() est la suivante :


Sécuriser les données
Utilisation des sessions et des cookies
 < code>setcookie(name, value, expire, path, domain, secure, httponly).
 Les paramètres ont la signification suivante :
Sécuriser les données
Utilisation des sessions et des cookies

Récupérer la valeur d’un cookie

 Pour récupérer la valeur d’un cookie, nous allons utiliser la variable

superglobale $_COOKIE.

 Cette superglobale est un tableau associatif qui utilise les noms des cookies

en clefs et associe leurs valeurs en valeurs du tableau.

 On va donc pouvoir accéder à la valeur d’un cookie en particulier en

renseignant le nom du cookie en clef de ce tableau.


Sécuriser les données
Utilisation des sessions et des cookies
Sécuriser les données
Utilisation des sessions et des cookies

Modifier la valeur d’un cookie ou supprimer un cookie


 Pour modifier la valeur d’un cookie, nous allons appeler à nouveau la
fonction setcookie() en lui passant le nom du cookie dont on souhaite
changer la valeur et changer l’argument de type valeur passé à la fonction
avec la nouvelle valeur souhaitée.

 Pour supprimer un cookie, nous allons encore appeler setcookie() en lui


passant le nom du cookie qu’on souhaite supprimer et allons cette fois-ci
définir une date d’expiration se situant dans le passé pour le cookie en
question.
Sécuriser les données
Utilisation des sessions et des cookies
Sécuriser les données
Utilisation des sessions et des cookies
 conserver des variables de page en pages
(rendre des variables accéssibles dans plusieurs pages)
Sécuriser les données
Utilisation des sessions et des cookies
Bonne solution :Les sessions
 C’est un moyen qui permet de conserver les informations de façon simple
et de les réutiliser dans toutes les pages d’un site pour un même visiteur.
 Aucun autre visiteur n’a accès à ces données.
 Un des grands intérêts des sessions est qu’on va pouvoir conserver des
informations pour un utilisateur lorsqu’il navigue d’une page à une autre.
De plus, les informations de session ne vont cette fois-ci pas être stockées
sur les ordinateurs de vos visiteurs à la différence des cookies mais plutôt
côté serveur ce qui fait que les sessions vont pouvoir être beaucoup plus
sûres que les cookies.
 Notez toutefois que le but des sessions n’est pas de conserver des
informations indéfiniment mais simplement durant une « session ».
Sécuriser les données
Utilisation des sessions et des cookies
 Une fois un visiteur arrive sur votre site. On demande à créer une session
pour lui. PHP génère alors un numéro unique. Ce numéro est souvent très
gros et écrit en hexadécimal1,par exemple : a02bbffc6198e6e,
0cc2715047bc3766f.
 Une fois la session générée, on peut créer une infinité de variables de
session pour nos besoins. Par exemple, on peut créer une variable
$_SESSION[’nom’] qui contient le nom du visiteur, $_SESSION[’prenom’]
qui contient le prénom, etc. Le serveur conserve ces variables même lorsque
la page PHP a fini d’être générée.
 Lorsque le visiteur se déconnecte de votre site, la session est fermée et
PHP« oublie » alors toutes les variables de session que vous avez créées.
Sécuriser les données
Utilisation des sessions et des cookies
Utilisation en php
 session_start() : pour démarrer(pour la premiere fois) ou récupérer une session. Vous
devez appeler cette fonction au tout début de chacune des pages où vous avez besoin
des variables de session.

 unset() : pour désinscrire une variable de session spécifique, désactivez simplement


la clé correspondante du Tableau $_SESSION :
Sécuriser les données
Utilisation des sessions et des cookies
 session_destroy() : ferme la session du visiteur. Cette fonction est
automatiquement appelée lorsque le visiteur ne charge plus de page de votre
site pendant plusieurs minutes (c’est le timeout), mais vous pouvez aussi
créer une page « Déconnexion »si le visiteur souhaite se déconnecter
manuellement.
Sécuriser les données
Utilisation des sessions et des cookies
Sécuriser les données
Sécurisation des données

 Exemples d’attaques
Sécuriser les données
Utilisation des sessions et des cookies
Sécuriser les données
Utilisation des sessions et des cookies

Vous devez effectuer des recherches sur les différents types d'attaques et
comprendre comment sécuriser notre code.
Développer des sites dynamiques en MVC
Présentation du MVC
 MVC (Modèle-Vue-Contrôleur) est un modèle de conception, il est donc
indépendant du langage de programmation. Il met l'accent sur la séparation
entre la logique métier et l'affichage du logiciel.

 Les modèles et les contrôleurs sont généralement des classes.

 Les vues sont généralement des Templates HTML.


Développer des sites dynamiques en MVC
Présentation du MVC
Avantages

 Meilleure organisation du code.

 Possibilité de réutiliser le code.

 Meilleure gestion de temps pour la maintenance et l’évolution du site.

 Plus de facilité pour les tests unitaires.

 Conception claire et efficace


Développer des sites dynamiques en MVC
Présentation du MVC
Frameworks MVC pour PHP
L’utilisation de Framework peut s’avérer d’un grand avantage au développeur.
Il permet de faciliter le travail et réduire le temps de réalisation tout en
profitant des avantages qu’offre l’architecture.
Exemples de frameworks utilisant l’architecture MVC
• Lavarel : [Link]
• Lumen : [Link]
• Symfony : [Link]
• Cake PHP : [Link]
• Zend Framework : [Link]
Développer des sites dynamiques en MVC
Présentation du MVC
Architecture MVC
Développer des sites dynamiques en MVC
Présentation du MVC
Contrôleur
Développer des sites dynamiques en MVC
Présentation du MVC
Développer des sites dynamiques en MVC
Présentation du MVC
Vue
Découvrir les Web services et les API REST
Introduction aux Web services
 Un Web Service est une application qui permet d’échanger des données
avec d’autres applications web. Même si ces dernières sont construites dans
des langages de programmation différents. Parmi les Web Services les plus
connus on peut citer SOAP, REST ou HTTP. Elles sont utilisées
généralement sur des infrastructure cloud, en cloud public, privé ou en
cloud hybride !
Découvrir les Web services et les API REST
Introduction aux Web services
Le fonctionnement d’un Web Service

 Un Web Service fonctionne de la manière suivante :

1. Le client (en général un utilisateur sur un ordinateur ou un support


équivalent) effectue une requête dans un des langages suivants : XML, JSON
ou HTTP.

2. Cette requête est transmise à un serveur distant via les protocoles SOAP,
REST ou HTTP.

3. La réponse est ensuite délivrée sous le même format que sa demande :


XML, JSON ou HTTP.
Découvrir les Web services et les API REST
Introduction aux Web services
Un Web Service a plusieurs avantages :
 Les services web permettent d’accéder à des fonctionnalités via internet
 Le client peut recevoir des informations d’un serveur distant sans être obligé
de stocker toutes les données sur sa machine.
 Le serveur distant peut être interrogé par un grand nombre de client de
manière simultanée.
 Les services Web utilisent des standards et protocoles ouverts, ce qui permet
une grand compatibilité entre les services.
 Les informations échangées peuvent être chiffrées. C’est le cas en utilisant
la technologie SSL présente dans le protocole HTTPS qui est devenue la
norme pour les sites web depuis quelques années.
Inconvénients
 Un service web a toujours besoin d’un réseau (internet, intranet, …) pour
fonctionner.
Découvrir les Web services et les API REST
Manipulation de REST API
 Une API (interface de programmation d'application) est un ensemble de
définitions et de protocoles qui facilite la création et l'intégration de logiciels
d'applications. l’API est l’intermédiaire permettant à deux systèmes
informatiques totalement indépendants d’interagir entre eux, de manière
automatique, sans intervention humaine. Elle est parfois considérée comme un
contrat entre un fournisseur d'informations et un utilisateur d'informations, qui
permet de définir le contenu demandé au consommateur (l'appel) et le contenu
demandé au producteur(la réponse). Par exemple, l'API conçue pour un service
de météo peut demander à l'utilisateur de fournir un code postal et au producteur
de renvoyer une réponse en deux parties : la première concernant la température
maximale et la seconde la température minimale.
Découvrir les Web services et les API REST
Manipulation de REST API
Avantages des APIs

 Elle permet de pouvoir interagir avec un système sans se soucier de sa


complexité et de son fonctionnement. ...

 Une API est souvent spécialisée dans un domaine et sur un use case
particulier ce qui simplifie son utilisation, sa compréhension et sa
sécurisation.

 Les API constituent un moyen simplifié de connecter votre propre


infrastructure au travers du développement d'applications cloud-native.

 Elles vous permettent également de partager vos données avec vos


clients et d'autres utilisateurs externes.
Découvrir les Web services et les API REST
Manipulation de REST API
l'API REST
 Roy Fielding a défini REST comme un style architectural et une
méthodologie fréquemment utilisés dans le développement de services
Internet. La forme complète de l'API REST est l'interface de programmation
d'applications de transfert d'état représentationnelle, plus communément
appelée service Web API REST. Par exemple, lorsqu'un développeur
demande à l'API Twitter de récupérer l'objet d'un utilisateur (une ressource),
l'API renvoie l'état de cet utilisateur, son nom, ses abonnés et les
publications partagées sur Twitter. Cela est possible grâce aux projets
d'intégration d'API. Cette représentation d'état peut être au format JSON,
XML ou HTML.
Découvrir les Web services et les API REST
Manipulation de REST API
Comment fonctionne une API REST
 REST détermine la structure d'un API. Les développeurs s'obligent à un
ensemble de règles spécifiques lors de la conception d'une API. Par exemple,
une loi stipule qu'un lien vers une URL doit renvoyer certaines informations.
 Chaque URL est connue sous le nom de demande (request), tandis que les
données renvoyées sont appelées réponse (response).
 L'API REST décompose une transaction pour générer une séquence de petits
composants. Chaque composant aborde un aspect fondamental spécifique d'une
transaction. Cette modularité en fait une approche de développement flexible.
 Une API REST exploite les méthodes HTTP
Découvrir les Web services et les API REST
Manipulation de SOAP

Vous aimerez peut-être aussi