Modex Web Dominique Rossin

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Présentation du Stage en Entreprise
Scripts PHP Interaction avec MySQL Insert, Select, ….
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 11 Patrick Reuter.
Créer une base de données MySQL
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Conception de Site Webs Interactifs Cours 10 Patrick Reuter
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.
Xavier Tannier Yann Jacob Sécurite Web.
MySQL et PHP.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Jérôme CUTRONA PHP et bases de données Jérôme CUTRONA 01:07:51 Programmation Web
PHP Interface base de données
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Procédure de commande des ressources
Développement d’applications web
CPI/BTS 2 Programmation Web Introduction au PHP
L’utilisation des bases de données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
Le langage PHP 5.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les instructions PHP pour l'accès à une base de données MySql
Xavier Tannier Sécurite Web.
L’utilisation des bases de données
Développement dapplications web Authentification, session.
Manipulation de formulaires en Javascript
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
MySQL Création des sites dynamiques
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
MODEX WEB DOMINIQUE ROSSIN Mysql. La semaine passée index.php?page=contact Page autorisée ? Redirection NON
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Comment stocke-t-on des données sur un site web ?
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Analyse et Conception de Systèmes Informatiques (ACSI)
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
Lyda tourisme Process en PHP. Objectif Il s’agit de construire un segment de process dans un système d’information touristique.
Surveiller et résoudre le conflit de verrouillage
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Institut Supérieur d’Informatique
Acquisition d’information sur internet
Module 7 : Utilisation de requêtes élaborées
 Formulaires HTML : traiter les entrées utilisateur
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Conception de Site Webs Interactifs Cours 9 Patrick Reuter
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
Types de données composites
Séance /10/2004 SGBD - Approches & Principes.
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
Cours n°2 Implémentation et exploitation
Le Langage de Manipulation de Données LMD Module 6.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Développement d’applications Web
Transcription de la présentation:

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

PHP La semaine passée ? Mysql C:\xampp\htdocs\index.php http://www.polytechnique.fr/index.php index.php OUTPUT de PHP index.php Mysql PHP

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 *

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

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é

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

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

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

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’

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

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

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.

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

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.

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

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

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

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

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; ?>

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

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

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") ; ?>

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