name: inverse layout: true class: center, middle, inverse --- # Developpement Web - CM 7 ## Inès de Courchelle  --- layout: false # Aujourd'hui ## Le plan 1. Les sessions 2. Assembler des pages 3. Ecrire/lire dans un fichier
--- # Aujourd'hui ## Le plan 1. .under[Les sessions] 2. Assembler des pages 3. Ecrire/lire dans un fichier
--- # Problématique ## GET/POST - Le passage de variables d'un formulaire se fait d'une page 1 à une page 2 - Certaines variables doivent être dispo tout le temps : login, panier, status ... ## Illustration
--- # Problématique ## Démonstration
Demo 1
--- # Problématique ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Problématique ## Démonstration #### Ça ne marche pas !
--- # Les sessions ## Définition - Tableau de variables stocké côté serveur - Durée de vie : 30 min (paramétrable dans le fichier de configuration php.ini) - Le nom du tableau ```php $_SESSION[] ``` ## À quoi ça sert ? - Garder en mémoire des données sur plusieurs pages - Associer des données à des utilisateurs - ... --- # Les sessions ## Illustrations
demo 2
--- # Youpi ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Démonstration ## Mise en garde - ne pas oublier le session_start() en haut - ne pas oublier à la deconnexion d'effacer le tableau de session
--- # Deconnexion ## Exemple #### deconnexion.php ```php ``` --- # Les sessions ## Illustrations
demo 3
--- # Deconnexion ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Les sessions ## L'histoire des connexions direct sur l'url !!
demo 4
--- # Fail ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # La solution ## Vérifier la variable de SESSIOn à chaque fois #### À chaque fois en haut de chaque fichier ```php ```
demo 5
--- # Sécurity ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Aujourd'hui ## Le plan 1. Les sessions 2. .under[Assembler des pages] 3. Ecrire dans un fichier
--- # Assembler des pages ## Comment ? Avec des includes ## Pourquoi ? - Diminuer la redondance de code - Assembler des pages côté serveur --- # Assembler des pages ## L'exemple classique
--- # Assembler des pages ## Page d'accueil
--- # Assembler des pages ## Page des notes
--- # Assembler des pages ## Page de l'Edt
--- # Assembler des pages ## C'est toujours la même
--- # Assembler des pages ## Solution
#### Création de 2 fichiers - haut.php : qui contiendra la partie du haut de chaque page - bas.php : qui contiendra la partie basse de chaque page --- # Assembler des pages ## Les différents fichiers
--- # Assembler des pages ## Le code ##### haut.php ```php
Mon site web
Accueil
Messagerie
Edt
Notes
Deconnexion
``` --- # Assembler des pages ## Le code ##### accueil.php ```php
Bienvenue
je suis l'accueil de la page
ceci est mon contenu
``` --- # Assembler des pages ## Le code ##### bas.php ```php
Contact
À propos
Mentions Legales
``` --- # Assembler des pages ## Avantages - Ajouter des pages facilement - Modifier le menu à un seul endroit même si on rajoute des pages
--- # Assembler des pages ## La demo
demo 6
--- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Aujourd'hui ## Le plan 1. Les sessions 2. Assembler des pages 3. .under[Ecrire/lire dans un fichier]
--- # Comment lire dans un fichier ? ## Plusieurs solutions - Lire/Ecrire dans un fichier classique - Lire/Ecrire dans un CSV
--- # Lire dans un fichier ## Le code ```php ```
demo 7
--- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Lire dans un fichier ## Mise en garde - Attention : vérifier qu'on ait les droits de lecture - Mais comment ? - ... - ZEN soyons Zen !
```bash ls -a chmod +r helloworld.txt ``` --- # Ecrire dans un fichier ## Le code ```php ```
demo 8
--- # Ecrire dans un fichier ## Mise en garde - Attention : vérifier qu'on ait les droits d'écriture - Mais comment ? - ... - ZEN soyons Zen !
```bash ls -l chmod +w helloworld.txt ``` --- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Mais ... ## C'est moyen - On va utiliser le format CSV - C'est partie !
--- # Fichier CSV ## Définition - Extension de fichier permettant de représenter des tableurs au format texte - Une colonne est séparé par une , ou un ; - Une ligne est un retour à la ligne dans le fichier ## Parallèle .pull-left[ .under[Mon Tableau] | id | appelation | prix | quantité | | -- | -- | -- | -- | | 0 | Switch | 300 | 5 | | 1 | PS5 | 500 | 2 | | 2 | XBox | 400 | 3 | | 3 | PS4 | 300 | 5 | | 4 | Wii | 50 | 10 | | 5 | GameBoy | 10 | 1 | ] .pull-right[ .under[Mon Fichier] ```bash id;appelation;prix;quantité 0;Switch;300;5 1;PS5;500;2 2;XBox;400;3 3;PS4;300;5 4;Wii;50;10 5;GameBoy;10;1 ``` ] --- # PHP/CSV ## Lire dans un CSV ```php $num champs à la ligne $row:
\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "
\n"; } } fclose($handle); } ?> ``` #### Attention - L'exemple je ne suis pas allée le chercher bien loin - C'est
ici dans la doc
--- # PHP/CSV ## Lire dans un CSV ```php $num champs à la ligne $row:
\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "
\n"; } } fclose($handle); } ?> ``` ## On va le décortiquer !
--- # PHP/CSV ## Lire dans un CSV
--- # PHP/CSV ## Lire dans un CSV
--- # PHP/CSV ## Lire dans un CSV
--- # PHP/CSV ## Lire dans un CSV
--- # PHP/CSV ## Lire dans un CSV
--- # PHP/CSV ## Lire dans un CSV
--- # PHP/CSV ## L'exemple complet
demo 9
--- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # PHP/CSV ## Ecrire dans un CSV ```php ``` ## La doc ! - Je ne suis pas allée très loin ! - Il y en a
ici
- Ou encore
là
--- # PHP/CSV ## Écrire dans un fichier
--- # PHP/CSV ## Écrire dans un fichier
--- # PHP/CSV ## Démonstration
demo 10
--- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # PHP/CSV ## Les différents modes | mode | Description | | --- | ---- | | 'r' | Ouvre en lecture seule, et place le pointeur de fichier au début du fichier. | | 'r+' | Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier. | | 'w' | Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer. | | 'w+' | Ouvre en lecture et écriture ; le comportement est le même que pour 'w'. | | 'a' | Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. | | 'a+' | Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer. | | ... | ... | ## Encore - L'exemple je ne suis pas allée le chercher bien loin - C'est
ici dans la doc
--- # Des exemples ## Les Tutos/docs -
Way to learn
-
doc 1
-
doc 2
--- # Utilité dans notre cas ## Dans les exemples précédents - Il n'y a qu'un pseudo - Il n'y a qu'un mdp ## Maintenant #### Login.csv ```bash 01;ines;poneyDu64 02;cr7;ballonOr 03;kiki;real<3 04;zelda;link<3 ``` --- # Le sénario ## Illustration
--- # Le sénario ## Zoom
--- # La vérification ## accueil.php ```php ``` --- # Démonstration
demo 11
--- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Niveau Sécu ## Problèmatique - c'est moyen - le mdp est en clair sur le serveur ## Solution - cripter le mdp - il y a des sites ## Exemples de sites -
site 1
-
site 2
-
site 3
--- # Sécurité ## Login.csv ```bash 01;ines;1611292af9e5d66e2d9f8eb8ddc9af1c 02;cr7;99c71caeb8b8c2e3d71cbd1bc91c16ae 03;kiki;a6ae12dcf166725ec76a45a168c08664 04;zelda;dfa6a79fe4813eff5bbb236497fd28b8 ```
--- # Sécurité ## accueil.php ```php ``` .under[ne pas oublier d'encoder en md5 le mdp de l'utilisateur] --- # Le sénario ## Illustrations
demo 12
--- # Exemple ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Modifier un CSV ## COMMENT ? On va partir sur un exemple. ## joueurs.csv Nous considérons le fichier csv suivant : ```csv Rank,team,MP,W,D,L,Points 1,Chelsea,14,12,1,1,37 2,Manchester Utd,15,11,2,2,35 3,Manchester City,15,11,2,2,35 4,Arsenal,14,10,2,2,32 5,Aston Villa,15,8,2,5,26 6,Everton,14,6,2,6,20 7,West Ham,15,5,1,9,16 8,Liverpool,14,4,2,8,14 9,Reading,15,3,1,11,10 10,Tottenham,14,3,0,11,9 11,Brighton,13,2,2,9,8 12,Leicester City WFC,14,2,1,11,7 ``` --- # Modifier un CSV ## nous souhaitons Rajouter un match joué à Aston Villa #### Avant ```csv 5,Aston Villa,15,8,2,5,26 ``` #### Après ```csv 5,Aston Villa,16,9,2,5,29 ```
--- # Modifier un csv ## Solution 1 ```php ``` --- # Modifier un csv ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Enregistrer dans un dictionnaire ## le code ```php ``` --- # Enregistrer dans un dictionnaire ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.