PHP - MYSQL.

Dimension: px
Commencer à balayer dès la page:

Download "PHP - MYSQL. https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/presentation-desbases-de-donnees-2"

Transcription

1 PHP - MYSQL Open Class Room SOMMAIRE Sommaire... 1 PHP - MySQL... 4 Rappels sur les base de données... 4 Présentation des SGBD... 4 Les différents SGBD... 4 Circulation de l information... 4 Exemple de requête SQL... 4 Présentation de phpmyadmin... 5 Utilisation du SGBD - phpmyadmin... 5 L interface phpmyadmin... 5 Les onglets de la zone centrale... 5 TP - test... 6 Connexion à la BD et print_r du contenu d une table... 7 Utilisation de la base de donnée en PHP... 7 Connexion à la BD : new PDO... 7 Code... 7 Explications... 7 Test... 8 Afficher le contenu d une table - 1 : query(), fetch(), print_r... 8 Exemple... 8 Explications... 8 Résultats... 9 Test... 9 Script ou fonction de connexion Paramètres de connexion $dsn : data source name $erreur : gestion des erreurs Connexion à la BD : création d un objet PDO Test Vocabulaire de Programmation orientée objet Classe Objet Méthode Exceptions Guides de style Gestion des requêtes Technique de programmation PDO et PDOStatement - $bdd, $requete, $reqsql Terminologie : $bdd - $reqsql - $requete - $ligne $bdd (PDO) query - prepare $requete (PDOStatement) - execute - fetch - closecurseur Synthèse Accès aux champs, gestion erreurs, order by, like, limit PHP MySQL page 1/25

2 Accéder aux champs Select attribut1, attribut2, Where, Order by Select like Select Order by, limit Test Requêtes variables : where realisateur =? Solution basique à éviter : risque XSS Solution avec requête préparée : where?, prepare et execute Remplacer les? par des :alias Test Déboguer : or die bdd->errorinfo() Créer le $bdd avec la gestion des erreurs (déjà vu) Exécuter la requête (query ou execute) «or die» Les limites du «or die» : confidentialité et user friendly Test Ajouter, modifier, supprimer des données dans une table Via phpmyadmin Afficher Via phpmyadmin SQL Via php - INSERT Via php DELETE Via php UPDATE Bons usages Test TD TP 1 - Création de la BD Créer la BD avec phpmyadmin correspondant au code suivant : Exporter le code de la BD créée (dump) TP 2 Connexion à la BD Installation Vérifier que ça marche! Tester des erreurs de connexion TP 3 Premier Select dans une BD Installation Vérifier que ça marche! Erreurs SQL TP 4 fonction de connexion Création de la fonction connexionbd($dbname) Test de la fonction TP 5 Premiers Select Créer la BD avec phpmyadmin Tester tous les codes TP 6 Select Variable Tester tous les codes TP 7 Insert Update Delete Tester tous les codes TP Blog Objectif Remarque Analyse de la BD Première analyse CSS Variante TP tchat Objectif Analyse de la BD Analyse du design er solution PHP MySQL page 2/25

3 Deuxième solution : 1 seul fichier Variante 1 : rafraichir les messages Variante 2 : monter et descendre dans les messages affichés TP modification d un film par son id Objectif Edition : janvier 2016 maj mars 2017 PHP MySQL page 3/25

4 PHP - MYSQL PHP-MySQL : Manuel de Référence du PHP : Manuel de Référence du SQL : Rappels sur les base de données Présentation des SGBD Les différents SGBD SGBD = super tableur excel pour faire du développement MySQL, MariaDB, PostgreSQL, Oracle, SQL server, SQLite Circulation de l information Client ßà Serveur PHP ßà Serveur MySQL Exemple de requête SQL La question en langage naturel : Je voudrais les utilisateurs parisiens avec leurs identifiants, noms et prénoms. En SQL Select id, nom, prenom from utilisateurs where ville = Paris ; Stockage dans un tableau et BD Les données du SGBD sont stockées dans des tableaux. Table des utilisateurs : Id Nom Prenom Ville 1 Liaudet Bertrand Paris 2 Lerdof Rasmus Qeqertarsuaq Relation = tableau = table = classe = ensemble = collection Tuple = ligne du tableau = élément = enregistrement = individu = objet PHP MySQL page 4/25

5 Une case du tableau = donnée = valeur = information Attribut = colonne du tableau = caractéristique = propriété = champ BD = toutes les lignes de toutes les tables Présentation de phpmyadmin Utilisation du SGBD - phpmyadmin Un SGBD est un serveur : on ne peut l utiliser qu à travers un utilisateur client : Une console Un programme PHP phpmyadmin etc. phpmyadmin va permettre de créer une BD, de créer, modifier, supprimer des tables et des tuples dans la BD. De faire tous les select qu on veut dans la BD. L interface phpmyadmin phpmyadmin permet de voir ce qui se passe dans la BD. Icones phpmyamin et Home : ramène à la page d accueil? : documentation phpmyadmin sql : documentation MySQL double flèche : pour actualiser le panneau de navigation quand on a fait des modifications dans la zone centrale Colonne à gauche : panneau de navigation Elle affiche les BD : il en existe déjà (on n y touche pas!). On choisir : sélectionner une BD ou créer une BD. Pour chaque BD, on peut regarder ses tables, en créer, regarder les attributs, en créer, etc. L information détaillée apparaît dans la zone centrale. Zone centrale Elle affiche le détail des sélections effectuées et propose des onglets et des possibilités de création, modification, suppression, affichage. Elle permettra aussi de mettre des lignes dans les tables. Les onglets de la zone centrale Structure Pour montrer la structure de la BD et des tables. PHP MySQL page 5/25

6 SQL Pour écrire des requêtes SQL. Rechercher Pour faire des recherches dans la base facilement. Insérer Pour ajouter des lignes. Exporter Pour faire une sauvegarde de la base de données. On peut importer la structure de la BD sans les données, ou les deux. Importer Pour récupérer la sauvegarde. Opérations Surtout des opérations sur les tables. TP - test PHP_TESTBD_TP1_PHPMYADMIN PHP MySQL page 6/25

7 Connexion à la BD et print_r du contenu d une table Utilisation de la base de donnée en PHP 3 jeux de fonctions (API) permettent de se connecter à la BD et de l utiliser : mysql, mysqli et PDO : Le jeu mysql est le plus ancien : mieux vaut l éviter. On peut utiliser mysqli ou PDO (PHP Data Object), et particulièrement PDO_MYSQL. L intérêt du PDO est que c est une interface d abstraction permettant l utilisation de n importe quelle BD. De plus elle est «orienté objet». On utilisera plutôt PDO_MYSQL Connexion à la BD : new PDO Code <?php $host='localhost'; $sgbdname='mysql'; $username = 'root'; $password = 'root'; $dbname='monsupersite'; $charset='utf8'; // machine du serveur de SGBD // type de SGBD // nom du user qui se connecte au SGBD // password du user sur le SGBD // BD à laquelle on accede sur le SGBD // jeu de caractères utilisé // dsn : data source name : pour le new PDO // en dur on peut écrire : // $dsn = 'mysql:host=localhost;dbname=monsupersit;charset=utf8'; // mieux vaut passer par des variables : $dsn = $sgbdname.':host='.$host.';dbname='.$dbname.';charset='.$charset; // connexion à la BD : new PDO try { $bdd = new PDO($dsn, $username, $password); echo 'Connexion réussie à '.$host. ', '.$dbname. ', '.$username. ', '.$password; } catch (PDOException $e) { //echo 'Connexion échouée : '. $e->getmessage(); die ('Connexion échouée : '. $e->getmessage() ); }?> Explications On fait un new PDO avec trois paramètres Le PDO créé on l appelle $bdd : c est la connexion à la BD. PHP MySQL page 7/25

8 $dsn (data source name) : contient des infos sur le SGBD (mysql), le serveur (host, ici : localhost), le nom de la BD, le jeu de caractères utilisé (UTF8 pour que ce soit le plus générique). $username : nom de l utilisateur qui se connecte à la BD $password : password de l utilisateur qui se connecte à la BD On utilise des variables pour rendre le code générique On utilise des variables pour rendre le code plus générique : $host : la machine du serveur de SGBD, $sgbdname : le type de SGBD, $username : le nom de l utilisateur qui se connecte sur la BD, $password : le mot de passe de cet utilisateur, $dbnam : le nom de la BD à laquelle on accède sur le SGBD. Gestion des erreurs avec try catch La structure «try» «catch» est une structure de programmation objet pour gérer les erreurs. Le die permet d arrêter proprement l exécution de la page en cas d erreur. Test PHP_TESTBD_TP2_CONNEXION Afficher le contenu d une table - 1 : query(), fetch(), print_r Exemple // on écrit la requête $reqsql='select * FROM utilisateurs'; // on récupère le résultat $requete=$bdd->query($reqsql); echo '<pre>'; print_r($requete); echo '</pre>'; // on affiche le résultat ligne par ligne while($ligne=$requete->fetch()){ echo '<pre>'; print_r($ligne); echo '</pre>'; echo '<p> nombre d éléments de $ligne : '.sizeof($ligne). '</p>'; } // on libère les tables de la requête $requete->closecursor(); // pour finir le traitement Explications On écrit le select dans $reqsql On utilise la méthode (fonction) query de $bdd (->) en passant la $reqsql en paramètre. Le résultat est dans $requete : c est un objet complexe sur lequel on peut appliquer des méthodes (des fonctions) qui contient le tableau de données du select. On affiche ce qu on peut de la réponse : en l occurrence seule la requête s affiche. On passe les lignes de la réponse en revue avec la méthode fetch(). PHP MySQL page 8/25

9 Chaque $ligne retourné par le fetch est un tableau associatif : on peut faire un print_r de $ligne. On constate alors qu on a deux accès possible à chaque donnée : par le nom du champs (id par exemple) ou par un numéro (0 pour id) : il y a donc 2 fois plus d éléments que prévu dans chaque ligne Quand on a fini de travailler, on fait un closecursor, pour libérer les tables de la requête Résultats Test PDOStatement Object ( [querystring] => SELECT * FROM utilisateurs ) Array ( [id] => 1 [0] => 1 [nom] => Liaudet [1] => Liaudet [prenom] => Bertrand [2] => Bertrand [ville] => Paris [3] => Paris ) nombre d éléments de $ligne : 8 Array ( [id] => 2 [0] => 2 [nom] => Lerdof [1] => Lerdof [prenom] => Rasmus [2] => Rasmus [ville] => Qeqertarsuaq [3] => Qeqertarsuaq ) nombre d éléments de $ligne : 8) PHP_TESTBD_TP3_SELECT PHP MySQL page 9/25

10 Script ou fonction de connexion On va se doter d un script de connexion qui sera appelée au début du script principal. Il pourra être transformé en fonction en passant le nom de la BD en paramètre par exemple. Paramètres de connexion $host='localhost'; $sgbdname='mysql'; $username = 'root'; $password = 'root'; $dbname='cinema'; $charset='utf8'; $dsn : data source name $dsn = $sgbdname.':host='.$host.';dbname='.$dbname.';charset='.$charset; $erreur : gestion des erreurs $erreur = array(pdo::attr_errmode => PDO::ERRMODE_EXCEPTION); En ajoutant le paramètre $erreur tel qu il est là dans le new PDO, on aura des messages d erreurs du SGBD, par exemple si le SELECT est mal écrit. Syntaxe : PDO ::ATTR_ERRMODE et PDO::ERRMODE_EXCEPTION sont des constantes de classe définies dans la classe PDO. On a la syntaxe : array (clé =>valeur) qui permet de définir un couple clé-valeur dans le tableau. PDO ::ATTR_ERRMODE : PDO::ERRMODE_EXCEPTION : Connexion à la BD : création d un objet PDO Test $bdd = new PDO($dsn, $username, $password, $erreur); PHP_TESTBD_TP4_FONCTION_CONNEXION Ce test est à réaliser en TP. PHP MySQL page 10/25

11 Vocabulaire de Programmation orientée objet Classe Une classe, c est un type, comme un entier, un réel, un caractère, une string ou un booléen. En général, une classe correspond à l équivalent d un tableau associatif : elle contient plus couples de clé-valeur. Les différentes clés sont appelées «attribut». En plus, on associe des fonctions à une classe : on les appelle alors «méthode». Objet Un objet c est une variable de type Classe. Quand on crée un objet avec des valeurs pour les couples clé-valeur (pour les attributs), on dit qu on instancie un objet. Ca passe par la commande «new». Méthode Les méthodes sont des fonctions qui sont attachées à une classe. Elle ne se sont utilisables que par les objets de la classe. On écrit : objet->methode() pour appeler la méthode pour l objet en question : c est comme si on avait passé l objet en paramètre de la méthode. Exceptions En cas d erreur, en programmation objet on passe par des objets de classe Exception. Ca se fait avec un «try» «catch» try : on essaie d exécuter une suite d instruction catch : si la suite d instructions exécutée à générer une erreur sous la forme d une exception, on passe dans le bloc catch Le catch précise le nom de l objet exception qu on va traiter. On peut alors accéder à des informations par la méthode getmessage() par exemple. Guides de style PHP MySQL page 11/25

12 Gestion des requêtes Technique de programmation PDO et PDOStatement - $bdd, $requete, $reqsql Pour manipuler la BD, on utilise principalement deux classes : PDO et PDOStatemenet Terminologie : $bdd - $reqsql - $requete - $ligne $bdd : un objet de la classe PDO sera appelé $bdd. C est en quelque sorte l objet qui permet l accès concret à la base de données, pour un utilisateur et une base de donnée. $reqsql : le texte de la requête sera mis dans un $reqsql. C est une simple chaine de caractères. Il ne doit pas être confondu avec le résultat de la requête : $requete. $requete : un objet de la classe PSOStatement sera appelé $requete (statement peut vouloir dire «requête». Cette $requete est un objet complexe qui contient à la fois le $reqsql et le résultat de la requête une fois celle-ci exécutée. $ligne : le résultat d un fetch() est une ligne : $ligne =$requete->fetch(). C est un tuple de la table résultant de la requête SQL. $bdd (PDO) query - prepare PDO ne contient que des méthodes (il ne contient pas d attributs). Notons Particulièrement : query : renvoie un $requete auquel est associé le $reqsql passé en paramètre et le résultat de la requête (le résultat du Select) prêt à être fetché (prêt à être parcouru). prepare : renvoie un $requete auquel est associé le $reqsql passé en paramètre. La requête n a pas été exécutée. Elle peut contenir des variables. PDO contient aussi des méthodes propres à une BD comme la gestion des transactions : commit, rollback, etc., et d autres choses. $requete (PDOStatement) - execute - fetch - closecurseur PDOStatement contient un attribut : la valeur du $ressql fourni en paramètre quand il a été créé. Il contient aussi des méthodes. Notons particulièrement : execute : permet d exécuter une une requête avec des variables. Il faut fournir en paramètre un tableau de valeurs pour les variables. fetch : permet de récupérer les lignes du résultat de la requête. closecurseur : permet de refaire un execute. Synthèse $bdd : PDO $requete : PDOStatement -> query($reqsql) : PDOStatement -> exectute() : bool -> prepare($reqsql) : PDOStatement -> fetch() : ligne -> closecursor() : bool PHP MySQL page 12/25

13 Accès aux champs, gestion erreurs, order by, like, limit Accéder aux champs $ligne est un tableau associatif. On peut donc écrire : echo '<p><strong> prenom nom </strong></p>'; while($ligne=$requete->fetch()){ echo '<p>'.$ligne[prenom]. ' '.$ligne[nom]. '</p>'; } Select attribut1, attribut2, Where, Order by $reqsql=' Select realistateur, titre, annee from films where realisateur = '\King Vidor\' order by annee '; // on precise 3 champs : realisateur, titre et annee // attention au \' // on trie par annee Select like $reqsql=' SELECT * FROM films WHERE realisateur like \'%manki%\' order by realisateur, annee '; // like % manki % : n importe quoi autour de manki // order by realisateur, annee : plusieurs realisateurs possibles // dans le resultat : j ordonne le résultat Select Order by, limit $reqsql=' Select realistateur, titre, annee from films where annee = 1960 order by annee limit 0, 10 ') ; // on prend les 10 premiers (de 1 à 10) // limit 10, 10 pour les 10 suivants // limite 20, 10 pour les 10 suivants, etc. Test PHP_TESTBD_TP5_SELECT_WHERE PHP MySQL page 13/25

14 Requêtes variables : where realisateur =? Objectif : mettre une variable dans une requête (par exemple, une information saisie par l utilisateur) Solution basique à éviter : risque XSS On pourrait mettre un $_GET dans la $reqsql : $reqsql='select where auteur=\''.$_get['realisateur']. '\'') ; A éviter!!! si le $_GET contient toto \' or \'a\'=\'a, le select renverra toute la table! Solution avec requête préparée : where?, prepare et execute $reqsql='select where realisateur =?; $requete=prepare($reqsql) $req->execute(array( $_GET['realisateur'] )); On sépare les arguments par des «,» dans le array Remplacer les? par des :alias Test Cette solution est la plus lisible et celle qu on va privilégier. $reqsql='select where realisateur= :realisateur; $req->execute(array( 'realisateur'=> $_GET['realisateur'] )); PHP_TESTBD_TP6_SELECT_VARIABLE 6 cas sont testés. Les principes des exercices sont présentés dans les exercices et affichés avec les résultats. PHP MySQL page 14/25

15 Déboguer : or die bdd->errorinfo() Créer le $bdd avec la gestion des erreurs (déjà vu) Pour afficher les détails d une erreur, on crée un $bdd avec la gestion des erreurs : $erreur = array(pdo::attr_errmode => PDO::ERRMODE_EXCEPTION); $bdd = new PDO($dsn, $username, $password, $erreur); Exécuter la requête (query ou execute) «or die» Pour avoir un message d erreur explicite sur le problème SQL, il faut ajouter un «or die» au query ou au execute. $requete=$bdd->query($reqsql) or die(print-r($bdd- >errorinfo())) ; ou $requete->execute(array( )) or die(print-r($bdd- >errorinfo())) ; Le «or die» est inutile avec une connexion en ERRMODE (ce qui est le cas avec notre fonction de connextion). Les limites du «or die» : confidentialité et user friendly Test Le «or die» peut être pratique en phase de développement. En production, il met au jour des informations qui peuvent être confidentielles et n est pas userfriendly. PHP_TESTBD_TP6_SELECT_VARIABLE TP 6 - Select GET sans faille like date v2 or die.html PHP MySQL page 15/25

16 Ajouter, modifier, supprimer des données dans une table Via phpmyadmin Afficher Interface graphique Via phpmyadmin SQL On peut entrer les commandes SQL : INSERT, UPDATE et DELETE. Le système propose un pré-remplissage des commandes. Via php - INSERT On peut entrer les commandes SQL : INSERT, UPDATE et DELETE. $reqsql=' INSERT INTO films (titre, realisateur, annee, langue, duree) VALUES (:titre, :realisateur, :annee, :langue, :duree) '; //exemple('l\'homme irrationnel','woody Allen','2015','1h35'); $requete=$bdd->prepare($reqsql) $resultat=$req-> execute(array( 'titre'=>$_get['titre'], 'realisateur'=>$_get['realisateur'], 'annee'=>$_get['annee'], 'langue'=>$_get['langue'], 'duree'=>$_get['duree'] )); // or die(print-r($bdd->errorinfo())) ; /* le or die est inutile avec la connexion en ERRMODE */ /* $resultat pour traiter les erreurs proprement, sans ERRMODE */ Via php DELETE $reqsql=' DELETE FROM films WHERE titre = :titre AND realisateur = :realisateur' ; $requete=$bdd->prepare($reqsql); $resultat=$requete->execute(array( 'titre'=>$_get['titre'], 'realisateur'=>$_get['realisateur'] )); // or die(print-r($bdd->errorinfo())) ; /* pour tester le résultat : 0 si pas de DELETE */ if($requete->rowcount() ){ // rowcount compte le nombre de delete echo '<br/>delete effectué '.$requete->rowcount(). ' fois'; } else { PHP MySQL page 16/25

17 } echo '<br/> Le DELETE a échoué'; rowcount permet de savoir combien de delete on été effectués. ATTENTION au DELETE!! Attention au delete : quand une donnée est supprimée, on ne peut pas la récupérer si on est en mode validation (autocommit) ce qui est le plus fréquent! Il faut donc faire des vérifications, par exemple : if (!isset($_get['realisateur']) or!isset($_get['titre']) or $_GET['realisateur']=='' or $_GET['titre']=='') { echo '<br/> Vous n\'avez pas saisi tous les paramètres'; } Via php UPDATE $reqsql=' UPDATE films SET duree=:duree WHERE titre = :titre AND realisateur = :realisateur '; ATTENTION à l UPDATE!! Attention à l UPDATE : quand une donnée est modifiée, on ne peut pas la récupérer si on est en mode validation (autocommit) ce qui est le plus fréquent! Bons usages Test A la place de : 'titre'=>$_get['titre'] on aura 'titre'=>$titre Les variables $titre, $realisateur, etc. seront récupérées via un $_POST ou un $_GET. PHP_TESTBD_TP7_INSERT_UPDATE_DELETE PHP MySQL page 17/25

18 TD TP 1 - Création de la BD Créer la BD avec phpmyadmin correspondant au code suivant : DROP DATABASE IF EXISTS monsupersite; CREATE DATABASE monsupersite; USE monsupersite; CREATE TABLE Utilisateurs ( id int(11) primary key AUTO_INCREMENT, nom varchar(20) NOT NULL, prenom varchar(20) NOT NULL, ville varchar(20) NOT NULL ) ENGINE=InnoDB; Insert into utilisateurs values (NULL, 'Liaudet', 'Bertrand', 'Paris'); Insert into utilisateurs values (NULL, 'Lerdof', 'Rasmus', 'Qeqertarsuaq'); On crée la table des utilisateurs avec un id, le nom, le prenom et la ville. On utilise : nom, type, taille, index, A_I, moteur de stockage. Exporter le code de la BD créée (dump) Regarder le code exporté. Comparez-le avec le code d origine. TP 2 Connexion à la BD PHP_TESTBD_TP2_CONNEXION.ZIP Installation Charger le zip ci-dessus. Faite le TP1 : vous devez avoir charger la BD du TP 1. Vérifier que ça marche! Tester le fichier de connexion php. Vérifiez que ça marche : vous devez afficher : «connexion réussie». Si ça ne marche pas, vérifiez les paramètres de connexion et faites les modifications nécessaires. Le «username» et «password» posent peut-être un problème. Tester des erreurs de connexion Changez volontairement les paramètres de connexion un par un pour voir le message d erreur correspondant. PHP MySQL page 18/25

19 TP 3 Premier Select dans une BD PHP_TESTBD_TP3_SELECT.ZIP Installation Charger le zip ci-dessus. Faites le TP1 : vous devez avoir charger la BD du TP 1. Vérifier que ça marche! Tester le fichier TP_SELECT.php Vérifiez que ça marche. S il y a un problème de connexion, vérifiez les paramètres de connexion et faites les modifications nécessaires. Le «username» et «password» posent peut-être un problème. Erreurs SQL Remplacez le «from utilisateurs» de la requête par «from utilisateur» sans «s» à utilisateur. Regardez le message d erreur quand vous testez. Que constatez-vous? TP 4 fonction de connexion PHP_TESTBD_TP4_FONCTION_CONNEXION Création de la fonction connexionbd($dbname) Le TP n est pas fourni. C est à vous de le faire. Faites une copie du TP3 Créer un fichier avec une fonction de connexion en suivant les indications du cours (cherchez «script de connexion dans ce pdf) : function connexionbd($dbname){ A la fin, la fonction retourne un $bdd : return $bdd; Dans cette fonction, le new PDO utilise un paramètre $erreur $bdd = new PDO($dsn, $username, $password, $erreur); Modifier le fichier php du TP3 pour faire appel à cette fonction. Test de la fonction 1) Testez votre programme avec la fonction et vérifiez que ça marche. 2) Remplacez le «from utilisateurs» de la requête par «from utilisateur» sans «s» à utilisateur. PHP MySQL page 19/25

20 Regardez le message d erreur quand vous testez. 3) Laissez le remplacement précédent. Dans le fichier de connexion, remplacez $erreur = array(pdo::attr_errmode => etc. par $erreur = array() : // PDO::ATTR_ERRMODE => etc. Regardez le message d erreur quand vous testez. Quelle différence faites-vous par rapport au cas précédent? 4) Retirez les modifications et vérifiez que tout marche TP 5 Premiers Select Créer la BD avec phpmyadmin Fichier : cinema.sql Tester tous les codes Tester Select 1, Select 2 et Select 3. Regardez les codes. PHP_TESTBD_TP5_SELECT_WHERE TP 6 Select Variable Tester tous les codes On travaille avec la BD cinéma du TP 5 TP 1 à 6 Tester les codes pour montrer les failles XSS et la protection contre les failles XSS. PHP_TESTBD_TP6_SELECT_VARIABLE TP 7 Insert Update Delete Tester tous les codes On travaille avec la BD cinéma du TP 5 TP 1 à 3 : regardes les codes. 1. Ajoutez un film. Vérifiez qu il est bien présent dans la BD. 2. Supprimer le film que vous venez d ajouter. Vérifiez qu il est bien absent dans la BD. 3. Rajoutez un film. Vérifiez qu il est bien présent dans la BD. 4. Modifiez l année du film que vous venez de rajouter. Vérifiez que la modification a été faite dans la BD. PHP_TESTBD_TP6_SELECT_VARIABLE PHP MySQL page 20/25

21 TP Blog Objectif Faire un blog basique : des articles avec des commentaires sur les articles. Articles : Les articles ont un titre, un contenu et une date de création. On affiche ces trois informations. Le contenu est coupé à 200 caractères ( ). Vous pouvez utilisez la BD «BD_TPblog.sql» qui est fournie en ligne. L objectif est d afficher les 5 derniers articles et de permettre d accéder aux commentaires. Commentaires : Les commentaires ont un auteur, un contenu et une date de création. L objectif est d afficher tous les commentaires et de pouvoir revenir à la page des articles. PHP MySQL page 21/25

22 Remarque Coder son propre blog n a pas d intérêt. Mieux vaut utiliser un CMS comme Wordpress ou Dotclear. C est un TP pas un projet! Analyse de la BD Une table des articles : id, titre, contenu, date de création Une table des commentaires : id, id de l article du commentaire, auteur, contenu, date de création. Vous pouvez utilisez la BD «BD_TPblog.sql» qui est fournie en ligne. Première analyse CSS On veut quelque chose de très simple (pour que ça aille vite à réaliser!) Une page d accueil avec les 5 derniers articles raccourcis et la date de publication. On l appelera tp_blog.php. Chaque article permet d accéder à l article complet avec les commentaires. commentaires.php sera la page de l article complet avec les commentaires. La page permet de revenir à la page d accueil. Variante 1 On se dote d un fichier CSS pour faire un peu de mise en page. On affichera le nombre de commentaires avec les articles PHP MySQL page 22/25

23 TP tchat Objectif Un espace de tchat : Une zone de saisie de message avec l auteur et le message et un bouton de validation. En dessous, on affiche les messages reçus. Le formulaire de saisie est centré dans la page. On ne voit s afficher que les 10 derniers messages. Analyse de la BD Il faut une table avec les messages et les auteurs. Vous pouvez utilisez les BD «BD_TPtchat.sql» et fournies en ligne. «BD_TPtchat_rempli.sql» qui sont Analyse du design On se dote d un fichier css qui gère le centrage. 1 er solution On réalise ça avec deux fichiers : Le premier contient le formulaire de saisie et l affichage des messages. Le deuxième contient le traitement du message envoyé : son insertion dans la BD. Le fichier de traitement vérifiera au moins que les deux champs ont été saisis. Le fichier de traitement renvoie automatiquement sur le formulaire : fonction header : Rappels sur le header HTML Deuxième solution : 1 seul fichier On va tout mettre dans le même fichier. PHP MySQL page 23/25

24 Il n y a pas de difficultés particulières : on fusionne les deux fichiers. Variante 1 : rafraichir les messages Imaginons qu on a effectivement deux utilisateurs qui communiquent sur le tchat. On peut simuler ça en ouvrant deux fenêtres. Le problème est quand l un écrit, l autre ne reçoit pas le message. Solution 1 : bouton d actualisation Ajouter un bouton d actualisation : quand on clique dessus, les nouveaux messages apparaissent. Solution 2 : javascript! La bonne solution serait d utiliser du javascript pour raffraichir automatiquement la page : Voir par exemple : Variante 2 : monter et descendre dans les messages affichés On va se doter de 4 boutons supplémentaires : monter, descendre, haut, bas, qui permettent de circuler dans toute la conversation. On se dote de deux variables : $debut et $nbmessages qui vont intervenir dans le LIMIT du SELECT qui va chercher les messages à afficher : LIMIT '.$debut. ', '.$nbmessages On va faire circuler la variable $debut de page en page pour pouvoir monter ou descendre : avec un type hidden dans le formulaire des boutons de circulation. Si on veut aller en haut, le $debut vaut 0 Si on veut on veut monter, le $debut est décrémenté de $nbmessages (si on n est pas déjà en haut!) Si on veut on veut descendre, le $debut est incrémenté de $nbmessages (si on n est pas déjà en bas!) Si on veut aller en bas, le $debut vaut le nombre total de messages - $nbmessages (si on n est pas déjà en bas!) PHP MySQL page 24/25

25 TP modification d un film par son id Objectif On veut avoir une page qui permet de sélectionner un film par son id et de l afficher et qui permette aussi de modifier l année et d afficher la modification. On traitera le problème dans une seule page. Pistes pour la réalisation : Dans le formulaire, on mettra deux boutons de validation : un Rechercher et un Modifier. Avant l affichage du formulaire : on testera si le $_GET ou $_POST de Rechercher est setté pour faire le travail en conséquence (faire une recherche sur l id) on testera si le $_GET ou $_POST de Modifier est setté pour faire le travail en conséquence (faire un update si les informations nécessaires ont été entrées. On aura intérêt à afficher dans le formulaire le film en court de traitement. PHP MySQL page 25/25

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

PHP. PHP et bases de données

PHP. PHP et bases de données Accés aux bases de données Une des raisons du succès de PHP Support d un grand nombre de bases - MySQL - Oracle - PostgreSQL - SQLite - Microso> Access - DBM - IBM Informix -... Accés aux bases de données

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

Les BASES de DONNEES dans WampServer

Les BASES de DONNEES dans WampServer Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

Plus en détail

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Bases de données élémentaires Maude Manouvrier

Bases de données élémentaires Maude Manouvrier Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Installation d'un serveur FTP géré par une base de données MySQL

Installation d'un serveur FTP géré par une base de données MySQL BTS INFORMATIQUE DE GESTION Option Administrateur de réseaux développement d applications COMPTE-RENDU D ACTIVITE ACTIVITE N 2 Nom et Prénom : Casanova Grégory Identification (objectif) de l activité Installation

Plus en détail

PHP et les Bases de données - Généralités

PHP et les Bases de données - Généralités PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront

Plus en détail

Configurer la supervision pour une base MS SQL Server Viadéis Services

Configurer la supervision pour une base MS SQL Server Viadéis Services Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Modélisation et Gestion des bases de données avec mysql workbench

Modélisation et Gestion des bases de données avec mysql workbench Modélisation et Gestion des bases de données avec mysql workbench par novembre 2011 Table des matières 1 Installation 3 1.1 Ecran de chargement 3 1.2 Page d accueil 3 2 Réalisation d une base de données

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Objectifs du TP : Initiation à Access

Objectifs du TP : Initiation à Access Objectifs du TP : Initiation à Access I. Introduction Microsoft Access fait partie de l ensemble Microsoft Office. C est un SGBDR (système de gestion de bases de données relationnelles) présentant une

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

SYSTÈMES D INFORMATIONS

SYSTÈMES D INFORMATIONS SYSTÈMES D INFORMATIONS Développement Modx Les systèmes de gestion de contenu Les Content Management Système (CMS) servent à simplifier le développement de sites web ainsi que la mise à jour des contenus.

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Diffusé par Le Projet Documentation OpenOffice.org OpenOffice.org Documentation Project How-To Table des matières 1. Introduction...3

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a

Plus en détail

Cours: Administration d'une Base de Données

Cours: Administration d'une Base de Données Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1

Plus en détail

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2 Sommaire I. SCENARII DE TRAITEMENTS...2 I.1 : Alimentation à partir d un fichier Access (.mdb)...2 I.1 : Vérification de l intégrité des traitements SQL sur la pyramide des ages...3 I.2 : Vérification

Plus en détail

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

1 Position du problème

1 Position du problème Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015 Benjamin Lampérier - Benoît Goyheneche RMLL 2015 - Beauvais 8 Juillet 2015 1 2 3 État des lieux On ne change rien On optimise intelligemment Avant de commencer Mettre les chaines de caractères entre simple

Plus en détail

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web NFA016 : Introduction O. Pons, S. Rosmorduc Conservatoire National des Arts & Métiers Pour naviguer sur le Web, il faut : 1. Une connexion au réseau Réseau Connexion physique (câbles,sans fils, ) à des

Plus en détail

Installation et Mise en œuvre de MySQL

Installation et Mise en œuvre de MySQL T-GSI STAGE RENOVATION - SQL.Chapitre 2 - Installation et Mise en œuvre de MySQL Olivier Mondet http://unidentified-one.net A. Pourquoi choisir MySQL? A.1. MySQL, très controversé La base de données MySQL

Plus en détail

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN E-MAILING Durée : 3J / 21H Formateur : Consultant expert en PAO et Web-marketing. Groupe de : 4 max Formation au web marketing Objectifs : Mettre en oeuvre des

Plus en détail

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

CREATION d UN SITE WEB (INTRODUCTION)

CREATION d UN SITE WEB (INTRODUCTION) CREATION d UN SITE WEB (INTRODUCTION) Environnement : World Wide Web : ordinateurs interconnectés pour l échange d informations ( de données) Langages : HTML (HyperText Markup Language) : langages pour

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES WEB & DÉVELOPPEMENT LES BASES DU WEB HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES LE LANGAGE HTML STRUCTURE D UNE PAGE En-tête et corps Syntaxe INSÉRER DES CONTENUS Texte : formatage (titre,

Plus en détail

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle Ce projet comporte trois parties sur les thèmes suivants : création de base de donnée, requêtes SQL, mise en œuvre

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec Google Analytics Donner votre appréciation du cours!

Plus en détail

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE TP N 1 : Initiation à L Access I. Introduction Microsoft Access fait partie

Plus en détail

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN

Plus en détail

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE Le responsable de la société Itaste utilise une application installée sur son poste : elle est programmée en VBA sous Microsoft Access et pourvue d une

Plus en détail

RÉALISATION D UN SITE DE RENCONTRE

RÉALISATION D UN SITE DE RENCONTRE RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

CESI Bases de données

CESI Bases de données CESI Bases de données Introduction septembre 2006 Bertrand LIAUDET EPF - BASE DE DONNÉES - septembre 2005 - page 1 PRÉSENTATION GÉNÉRALE 1. Objectifs généraux L objectif de ce document est de faire comprendre

Plus en détail

Bases de SQL. Hacks 1-6 CHAPITRE UN

Bases de SQL. Hacks 1-6 CHAPITRE UN CHAPITRE UN Bases de SQL Hacks 1-6 Même les commandes SQL les plus simples peuvent comporter des variantes curieuses ; ce chapitre vous montrera qu un programmeur astucieux peut exploiter les nombreuses

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

Page Paragraphe Modification. 18 7. Mise en page du document Le bouton "Format de page" est maintenant "Page"

Page Paragraphe Modification. 18 7. Mise en page du document Le bouton Format de page est maintenant Page AIDE AUX EXTRACTIONS COMPLÉMENTS POUR OPEN OFFICE 2 Le guide d'aide aux extractions de la base élèves 1 er degré a été réalisé pour Excel ou Open Office version 1. La passage à Open office version 2 a

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

Exonet : sauvegarde automatisée d une base de données

Exonet : sauvegarde automatisée d une base de données Exonet : sauvegarde automatisée d une base de données Description Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Transversalité Outils Mots-clés Durée 4h. Auteur(es)

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager TP base de données SQLite 1 Différents choix possibles et choix de SQLite : La plupart des logiciels de gestion de base de données fonctionnent à l aide d un serveur. Ils demandent donc une installation

Plus en détail

Compétences Business Objects - 2014

Compétences Business Objects - 2014 Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34 Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

SQL MAP. Etude d un logiciel SQL Injection

SQL MAP. Etude d un logiciel SQL Injection Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil

Plus en détail