La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Modex Web Dominique Rossin

Présentations similaires


Présentation au sujet: "Modex Web Dominique Rossin"— Transcription de la présentation:

1 Modex Web Dominique Rossin
Mysql et Sessions PHP Modex Web Dominique Rossin

2 PHP La semaine passée ? Mysql C:\xampp\htdocs\index.php
index.php OUTPUT de PHP index.php Mysql PHP

3 Recherche des contacts de rossin
Détruire des données Recherche des contacts de rossin Id login1 login2 1 serre euler 2 desprez 3 morain 4 rossin 5 SELECT * FROM ‘contact‘ WHERE (login1 = ’rossin’) OR (login2 = ’rossin’) DELETE FROM ‘contact‘ WHERE (login1 = ’rossin’) OR (login2 = ’rossin’) DELETE  SELECT *

4 Mise à jour d’un enregistrement
Solution 1 DELETE INSERT On veut changer l’age de Olivier Serre id prenom nom Age 1 olivier serre 20 2 Leonhard Euler 302 3 Baptiste Desprez 15 4 François Morain 12 Id p1 p2 1 2 3 4

5 Exemple id prenom nom age 2 Leonhard Euler 302 3 Baptiste Desprez 15 4
On détruit l’enregistrement DELETE FROM `table_nom` WHERE `nom`=‘serre’ AND `prenom`=‘olivier’ id prenom nom age 2 Leonhard Euler 302 3 Baptiste Desprez 15 4 François Morain 12 Id p1 p2 1 2 3 4 On réinsère le nouveau INSERT INTO`table_nom` (`prenom`,`nom`,age `) VALUES (‘olivier’, ‘serre’,’30’) id prenom nom age 2 Leonhard Euler 302 3 Baptiste Desprez 15 4 François Morain 12 5 Olivier Serre 30 Id p1 p2 1 2 3 4 PB : id a changé

6 Patch INSERT INTO`table_nom` (`id`,`prenom`,`nom`,age `) VALUES (‘1’,‘olivier’, ‘serre’,’30’) id prenom nom age 2 Leonhard Euler 302 3 Baptiste Desprez 15 4 François Morain 12 1 Olivier Serre 30 Id p1 p2 1 2 3 4 OK

7 Problème : retour en arrière
On détruit l’enregistrement DELETE FROM `table_nom` WHERE `nom`=‘serre’ AND `prenom`=‘olivier’ id prenom nom age 2 Leonhard Euler 302 3 Baptiste Desprez 15 4 François Morain 12 Id p1 p2 1 2 3 4 INCOHERENCE

8 Bonne solution : UPDATE
UPDATE `table_nom` SET `age`=’30’ WHERE `id`=‘1’ UPDATE `table_nom`  Quelle table SET `age`=’30’  Quelle modif WHERE `id`=‘1’ Quels enregistrements

9 Exemple : Mots de passe Changement de mot de passe. 2 opérations:
login prenom nom age mdp serre olivier 30 aigle euler Leonhard Euler 302 lemme desprez Baptiste Desprez 15 prez morain François Morain 12 ouichef Changement de mot de passe. 2 opérations: Vérification de l’ancien mot de passe Modification du mot de passe UPDATE `tableLogin` SET `mdp`=‘groupir’ WHERE `login`=‘morain’ AND `mdp`=‘ouichef’

10 Opération réussie ? Connaitre le nombre de lignes qui ont changé
mysql_query(‘’UPDATE ……..’’); if (mysql_affected_rows()==1) … Bonne méthode : les transactions et le système de verrou

11 Concurrence Effacement d’un utilisateur (ex : serre)
id prenom nom Age 1 olivier serre 20 2 Leonhard Euler 302 3 Baptiste Desprez 15 4 François Morain 12 Id p1 p2 1 2 3 4 Action sur 2 tables 2 opérations DELETE sont nécessaires

12 LOCK des tables LOCK TABLES `personnes`,`contact` WRITE
DELETE from `personnes` WHERE ... DELETE from `contact` WHERE ... UNLOCK TABLES Entre LOCK et UNLOCK personne ne peut toucher aux tables.

13 Système de réservation
Réservation de places Gestion d’un panier On doit réserver des éléments pour une certaine durée de temps TIMESTAMP : Tampon de temps

14 TimeStamp Champ DATETIME ou TIMESTAMP
On stocke NOW() lors de la réservation Pour vérifier la disponibilité on vérifie le délai depuis le TIMESTAMP.

15 Retour sur PHP < ?php $var = 3 ; var_dump(isset($var)) ; unset($var) ; $var = NULL ; ?> TRUE FALSE FALSE

16 Clés de tableaux < ?php $search_array = array(’premier’ => null, ’second’=> 4); isset($search_array[’premier’]) ; array_key_exists(’premier’, $search_array) ; ?> FALSE TRUE

17 Sessions Une session permet de garder des informations d’une visite à l’autre d’un utilisateur On peut garder des informations entre les pages Les variables se transmettent sous forme de tableau $_SESSION Il est toujours possible de pirater une session Ajout de cryptographie

18 Comment ? On commence par session_start() avant tout code HTML.
On travaille ensuite avec les tableau $_SESSION vu comme un tableau persistent

19 Exemple Pas d’espace <?php session_start(); if (isset($_GET[’reset’])) unset($_SESSION[’count’]); if (isset($_SESSION[’count’])) $_SESSION[’count’]++; else $_SESSION[’count’] = 0; $sess = $_SESSION[’count’]; echo <<<END <html> <body> <a href="index.php">retour $sess</a> <a href="index.php?reset=1">reset</a> </body> </html> END; ?>

20 Utilisation Connexion des utilisateurs: <?php session_start();
if ($_POST[‘action’]==‘login’ && estUtilisateurValide()) { $_SESSION[‘login’] = …; } if (array_key_exists(‘login’,$_SESSION)) echo ‘’Bonjour ‘’.$_SESSION[‘login’]; ?>

21 La face cachée des sessions
A chaque session est associé un identifiant ou SID Le SID est un identifiant unique Le SID est transmis de manière transparente de page en page Soit utilisation de cookie, soit via l’URL Un SID n’est valable que pendant la visite du site et 30 min environ après

22 Détruire une session <?php session_start() ; //destruction de toutes les variable de sessions session_unset() ; //destruction de la session session_destroy() ; // redirection header("Location: index.php") ; ?>

23 CNIL Dans le cas d’enregistrement d’un utilisateur et d’un mail.
Déclaration à la CNIL Envoi d’un mail de vérification mail(destinataire, objet, contenu) Possibilité de désinscription


Télécharger ppt "Modex Web Dominique Rossin"

Présentations similaires


Annonces Google