LIF4 - Programmation Web - cours PHP 2

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

Download "LIF4 - Programmation Web - cours PHP 2"

Transcription

1 LIF4 - Programmation Web - cours PHP 2 Fabien Duchateau fabien.duchateau [at] univ-lyon1.fr Université Claude Bernard Lyon /65

2 Rappel du cours précédent Syntaxe générale de PHP : Séparation du code HTML et PHP Affectation de variables (typage faible) Structures conditionnelles Boucles 2/65

3 Rappel du cours précédent Syntaxe générale de PHP : Séparation du code HTML et PHP Affectation de variables (typage faible) Structures conditionnelles Boucles Dans ce cours, fonctionnalités plus spécifiques à l utilisation de PHP en programmation Web 2/65

4 Extensions PHP PHP inclut des extensions spécifiques à des applications tierces, classées en différentes catégories : Extensions noyau (e.g., Arrays, Date/Time, FileSystem) Extensions intégrées (e.g., FTP, PostgreSQL, Zip) Extensions externes (e.g., MySQL, GeoIP) Extensions liées à l inclusion de fichiers, à la manipulation de fichiers, aux sessions et aux bases de données 3/65

5 Plan du cours Organisation du code Système de fichiers Superglobales Sessions Bases de données 4/65

6 Inclusion de fichiers En PHP, il est possible d inclure un fichier externe : Équivalent à copier-coller le contenu du fichier inclus à la place de la fonction d inclusion Regroupement de fonctions (liées à la manipulation de BD par exemple) ou de variables Découpage des différentes parties d un site Fonctions d inclusion include ou require : Avertissement avec include si fichier non trouvé Erreur fatale avec require si fichier non trouvé Variantes avec include_once et require_once 5/65

7 Inclusion de fichiers (2) Syntaxe avec include ou require : nom_fichier est le chemin vers le fichier include("nom_fichier.php") ; require("nom_fichier.php") ; 6/65

8 Découpage de l information Grâce aux fonctions d inclusion, il est facile de réutiliser et factoriser le code : Les parties du site communes/statiques (e.g., entête, menu) sont incluses par les autres pages Les parties avec le contenu spécifique d une page (i.e., fonctionnalité) peuvent être incluses ou pas Dans la suite, description des différents découpages 7/65

9 Découpage "sans inclusion" Le code n est pas factorisé : la partie <header> est identique dans les fichiers index.php et ajout.php 8/65

10 Découpage "sans inclusion" Le code n est pas factorisé : la partie <header> est identique dans les fichiers index.php et ajout.php 8/65

11 Découpage "une page par contenu spécifique" Avec cette solution, chaque fonctionnalité a sa propre page : Les parties communes/statiques du site sont incluses Les parties de contenu sont spécifiques à chaque fichier, sans inclusion Inconvénients : Pour certaines modifications (e.g., du template ou le nom d un fichier d inclusion), besoin de modifier chaque fichier de contenu 9/65

12 Découpage "une page par contenu spécifique" (2) Découpage "une page par contenu spécifique" : les zones communes, stockées dans des fichiers externes, sont incluses par chaque page de contenu 10/65

13 Découpage "une page par contenu spécifique" (3) 11/65

14 Découpage "une seule page avec inclusions" Avec cette solution, un seul fichier qui fait de multiples inclusions : Généralement le fichier index.php Les parties communes/statiques sont incluses Les parties de contenu sont dans des fichiers séparés, et chargées selon la valeur d un paramètre Inconvénients : URL non explicite (page index.php) Besoin de passer la page de contenu en paramètre, session, etc. 12/65

15 Découpage "une seule page avec inclusions" (2) Découpage "une seule page avec inclusions" : une seule page, qui récupère les zones communes dans des fichiers externes et un contenu spécifique selon la valeur d un paramètre 13/65

16 Découpage "une seule page avec inclusions" (3) 14/65

17 Découpage "une seule page avec inclusions" (4) Extrait du fichier index.php, avec les inclusions de parties fixes et l inclusion de la partie contenu via un paramètre GET 15/65

18 En résumé Deux fonctions pour include des fichiers : include et require Organisation du site avec les inclusions ("une seule page" ou "une page par contenu") 16/65

19 Plan Organisation du code Système de fichiers Superglobales Sessions Bases de données 17/65

20 Généralités Avec PHP, il est possible de manipuler le système de fichiers du serveur : Lire ou écrire dans un fichier Obtenir des informations sur un fichier Gérer des fichiers uploadés par l utilisatrice Lister les fichiers d un répertoire Créer, supprimer des fichiers ou répertoires... Extension filesystem incluse dans le noyau de PHP 18/65

21 Chemins de fichiers Plusieurs types de système de fichiers ext3, ext4 pour Linux hfs, hsf+ sous Mac fat, ntfs pour Windows Comment représenter un chemin en PHP? Sous Windows : slash (/) et antislash (\) sont utilisés Pour les autres : seul le slash (/) est utilisé Éviter de coder un chemin de fichier absolu en "dur" (projet)! 19/65

22 Chemins de fichiers (2) Fonction pathinfo pour avoir des informations sur un chemin pathinfo($chemin_fichier) Également disponibles les fonctions dirname() et basename() Attention, toutes ces fonctions n agissent que sur la chaîne de caractères représentant le chemin! Example d utilisation de pathinfo $infos = pathinfo('/www/htdocs/mon-site/index.php') ; echo $infos['dirname']."\n" ; echo $infos['basename']."\n" ; echo $infos['extension']."\n" ; echo $infos['filename']."\n" ; 20/65

23 Chemins de fichiers (2) Fonction pathinfo pour avoir des informations sur un chemin pathinfo($chemin_fichier) Également disponibles les fonctions dirname() et basename() Attention, toutes ces fonctions n agissent que sur la chaîne de caractères représentant le chemin! Example d utilisation de pathinfo $infos = pathinfo('/www/htdocs/mon-site/index.php') ; echo $infos['dirname']."\n" ; echo $infos['basename']."\n" ; echo $infos['extension']."\n" ; echo $infos['filename']."\n" ; 20/65

24 Tests sur les fichiers Vérifier si un fichier représenté par $chemin existe file_exists($chemin) // retourne true ou false Vérifier si un fichier $nom_fic existe et est un fichier régulier is_file($nom_fic) // retourne true ou false Vérifier si un fichier $nom_rep existe et est un répertoire is_dir($nom_rep) // retourne true ou false 21/65

25 Tests sur les fichiers (2) Vérifier l existence et les droits de lecture, écriture et exécution d un fichier représenté par $chemin is_readable($chemin) // retourne true ou false is_writable($chemin) // retourne true ou false is_executable($chemin) // retourne true ou false Attention : les droits sont ceux de l utilisatrice qui fait touner le serveur Web (généralement nobody) 22/65

26 Lecture d un fichier Lire le contenu d un fichier $fichier et placer son contenu dans la chaîne $contenu : Retourne false en cas d échec Drapeau booléen optionnel : file_use_include_path pour rechercher le fichier dans les chemins définis dans include_path $contenu = file_get_contents($fichier [, $drapeau ]) ; Example de lecture d un fichier if(is_file("un_fichier.txt")) { $contenu = file_get_contents("un_fichier.txt") ; echo $contenu ; } 23/65

27 Écriture dans un fichier Écrire le contenu de la variable $donnees dans le fichier $fichier : Si $fichier n existe pas, il est créé La variable $donnees peut être une chaîne ou un tableau Retourne le nombre d octets écrits, sinon false Drapeaux optionnels (concaténation de drapeaux avec ) : lock_ex (verrouillage du fichier pendant l écriture) file_append (concaténation des données au fichier s il existe) file_use_include_path (recherche du fichier dans le include_path) $nb = file_put_contents($fichier, $donnees [, $drapeaux ]) ; 24/65

28 Écriture dans un fichier (2) Que contient le fichier animaux.txt en fin de script? $chaine1 = "abeille" ; $chaine2 = "otarie" ; $fichier = "animaux.txt" ; $nb = file_put_contents($fichier, $chaine1) ; $retour = file_put_contents($fichier, " ".$nb, lock_ex file_append) ; $contenu = file_get_contents($fichier) ; file_put_contents($fichier, $chaine2." ".$contenu) ; echo file_get_contents($fichier) ; 25/65

29 Écriture dans un fichier (2) Que contient le fichier animaux.txt en fin de script? $chaine1 = "abeille" ; $chaine2 = "otarie" ; $fichier = "animaux.txt" ; $nb = file_put_contents($fichier, $chaine1) ; $retour = file_put_contents($fichier, " ".$nb, lock_ex file_append) ; $contenu = file_get_contents($fichier) ; file_put_contents($fichier, $chaine2." ".$contenu) ; echo file_get_contents($fichier) ; 25/65

30 Fichier à nom unique Créer un fichier avec un nom unique $nom_fichier_unique dans le répertoire $repertoire : La chaine $prefixe sert de préfixe au nom du fichier Retourne le nom du fichier créé, ou false en cas d erreur Si le répertoire n existe pas, création dans le répertoire temporaire du système $nom_fichier_unique = tempnam($repertoire, $prefixe) ; 26/65

31 Fichier temporaire Créer un fichier temporaire au nom unique dans le répertoire système utilisé pour les fichiers temporaires : Retourne un pointeur $fichier_temp sur le fichier créé, ou false en cas d erreur Fichier ouvert en lecture et écriture Fichier supprimé s il est fermé ou en fin du script $fichier_temp = tmpfile() ; 27/65

32 Répertoires Lister le contenu d un répertoire $rep : Retourne un tableau $liste Drapeau optionnel pour le tri : scandir_sort_ascending (par défaut) scandir_sort_descending scandir_sort_none $liste = scandir($rep [, $tri ]) ; 28/65

33 Répertoires (2) Autres fonctions de répertoire : Obtenir le répertoire courant (getcwd) Créer un répertoire (mkdir) Supprimer un répertoire vide (rmdir) $rep_courant = getcwd() ; // retourne le chemin du fichier courant, ou false mkdir($rep) ; // retourne true ou false rmdir($rep) ; // retourne true ou false Voir la documentation pour les paramètres optionnels. Attention : certaines fonctions utilisent une ressource, d autres une chaine de caractères 29/65

34 En résumé Extension filesystem de PHP : Un fichier est un flux (ressource qui peut être lue ou écrite séquentiellement) Nombreuses fonctions sur la manipulation des fichiers/répertoires Création de fichiers uniques ou temporaires Consulter la documentation officielle! 30/65

35 Plan du cours Organisation du code Système de fichiers Superglobales Sessions Bases de données 31/65

36 Variables superglobales PHP définit un certain nombre de variables superglobales : Accessibles de n importe où Représentées par des tableaux associatifs Une dizaine de superglobales dont : Variables d environnement, du système d exploitation ($_ENV) Variables de session ($_SESSION) Variables de serveur ($_SERVER) Variables de paramètres ($_REQUEST, $_GET, $_POST, $_COOKIE) Fichiers envoyés par formuaire ($_FILE) 32/65

37 Superglobale $_GET La variable $_GET : Tableau associatif qui contient les paramètres d un formulaire soumis Ces paramètres ont été transmis via la méthode get Syntaxe de l utilisation de $_GET : Retourne la valeur pour le paramètre nomparam $_GET[' nomparam '] 33/65

38 Superglobale $_GET (2) Exemple : vérifier si un formulaire get est soumis <form action="#" method="get"> </form> 34/65

39 Superglobale $_GET (2) Exemple : vérifier si un formulaire get est soumis <form action="#" method="get"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> 34/65

40 Superglobale $_GET (2) Exemple : vérifier si un formulaire get est soumis <? if(isset($_get['bvalider'])) // formulaire soumis else { // formulaire non soumis, affichage du formulaire?> <form action="#" method="get"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> <??> 34/65

41 Superglobale $_GET (2) Exemple : vérifier si un formulaire get est soumis <? if(isset($_get['bvalider'])) // formulaire soumis echo "Le formulaire a bien été soumis!" ; else { // formulaire non soumis, affichage du formulaire?> <form action="#" method="get"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> <? }?> 34/65

42 Superglobale $_POST La variable $_POST : Tableau associatif qui contient les paramètres d un formulaire soumis Ces paramètres ont été transmis via la méthode post Syntaxe de l utilisation de $_POST : Retourne la valeur pour le paramètre nomparam $_POST[' nomparam '] 35/65

43 Superglobale $_POST (2) Exemple : afficher le paramètre nom soumis par post <form action="#" method="post"> </form> 36/65

44 Superglobale $_POST (2) Exemple : afficher le paramètre nom soumis par post <form action="#" method="post"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> 36/65

45 Superglobale $_POST (2) Exemple : afficher le paramètre nom soumis par post <? if(isset($_post['bvalider'])) // formulaire soumis else { // formulaire non soumis, affichage du formulaire?> <form action="#" method="post"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> <??> 36/65

46 Superglobale $_POST (2) Exemple : afficher le paramètre nom soumis par post <? if(isset($_post['bvalider'])) // formulaire soumis if(isset($_post['nom']) &&!empty($_post['nom'])) else // formulaire soumis mais sans valeur pour le nom else { // formulaire non soumis, affichage du formulaire?> <form action="#" method="post"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> <? }?> 36/65

47 Superglobale $_POST (2) Exemple : afficher le paramètre nom soumis par post <? if(isset($_post['bvalider'])) // formulaire soumis if(isset($_post['nom']) &&!empty($_post['nom'])) echo "Merci d avoir soumis le formulaire, ".$_POST['nom'] ; else // formulaire soumis mais sans valeur pour le nom echo "Le formulaire a bien été soumis, mais sans nom!" ; else { // formulaire non soumis, affichage du formulaire?> <form action="#" method="post"> <input type="text" name="nom"> <input type="submit" name="bvalider" value="soumettre"> </form> <? }?> 36/65

48 Un mot sur la sécurité Les variables superglobales peuvent potentiellement être modifiées par l utilisatrice (e.g., modifier la valeur d un paramètre passé en get dans l URL) https://duckduckgo.com/?q=chocolat https://duckduckgo.com/?q= %3B%20DROP%20TABLE% 20uneTable%3B%20-- Votre code doit donc vérifier et valider ces variables : Côté client (HTML, Javascript) Côté serveur (PHP), avec des fonctions prédéfinies (échappement de caractères spéciaux, encodage d URL, etc.) 37/65

49 En résumé Variables superglobables définies par PHP $_GET et $_POST pour récupérer les paramètres d un formulaire soumis Effectuer des vérifications lors de la récupération des données 38/65

50 Plan du cours Organisation du code Système de fichiers Superglobales Sessions Bases de données 39/65

51 Généralités Il peut être utile de conserver des informations d une page sur l autre : Se souvenir du login de l utilisatrice pour les sites avec authentification Se souvenir des références indiquant à quoi l utilisatrice s intéresse Se souvenir des dernières pages visitées par l utilisatrice... 40/65

52 Généralités Il peut être utile de conserver des informations d une page sur l autre : Se souvenir du login de l utilisatrice pour les sites avec authentification Se souvenir des références indiquant à quoi l utilisatrice s intéresse Se souvenir des dernières pages visitées par l utilisatrice... Jusqu ici, un seul moyen : utiliser des paramètres et penser à les remettre à chaque lien et dans chaque formulaire Programmation fastidieuse et source de problèmes 40/65

53 Sessions Une session peut être vue comme un ensemble d informations concernant une utilisatrice d un site : Par utilisatrice, on entend un navigateur sur une machine Les informations sont conservées entre deux pages Une page PHP peut ajouter ou modifier les informations de la session En PHP, la session est vue comme une variable superglobale appelée $_SESSION : C est donc un...? 41/65

54 Sessions Une session peut être vue comme un ensemble d informations concernant une utilisatrice d un site : Par utilisatrice, on entend un navigateur sur une machine Les informations sont conservées entre deux pages Une page PHP peut ajouter ou modifier les informations de la session En PHP, la session est vue comme une variable superglobale appelée $_SESSION : C est donc un tableau associatif 41/65

55 Utilisation des sessions en PHP Une page PHP utilisant une session doit obligatoirement, avant même d afficher quoi que ce soit, commencer par l instruction : session_start() ; // pas d espace ou ligne vide avant! Cette instruction crée la variable $_SESSION et la remplit avec les valeurs qu elle avait dans la page PHP précédente La variable $_SESSION se manipule ensuite comme un tableau associatif classique 42/65

56 Utilisation des sessions en PHP (2) Affichage des informations de session <? session_start() ; $_SESSION["dateConnexion"] = date("r") ; echo "Identifiant de session : ".session_id() ; echo "Date de connexion : ".$_SESSION["dateConnexion"] ;?> 43/65

57 Déconnexion Lorsque l utilisatrice se déconnecte, il est important de détruire sa session (e.g., éviter qu une seconde personne utilisant le même ordinateur ne se fasse passer pour la première personne) Deux étapes : réinitialiser $_SESSION pour effacer toutes les variables de la session courante, et détruire la session Destruction du cookie de session pour plus de sécurité $_SESSION = array() ; // réinitialisation session_destroy() ; // destruction 44/65

58 En résumé Une session PHP est vue comme une variable superglobale, et donc gérée comme un tableau associatif Instruction session_start() avant tout affichage! Déconnexion en deux étapes (initialisation et destruction de la session) Démo avec demo-serie (code source sur la page du LIF4) 45/65

59 Plan Organisation du code Système de fichiers Superglobales Sessions Bases de données 46/65

60 Généralités Pour manipuler les bases de données, PHP possède plus d une vingtaine d extensions et des couches d abstraction Pour la base de données MySQL, trois API différentes : mysql : API d origine, aujourd hui obsolète mysqli : mysql improved, avec de nouvelles fonctionnalités PDO_MySQL : couche d abstraction d accès aux données à travers des PHP Data Objects 47/65

61 Généralités Pour manipuler les bases de données, PHP possède plus d une vingtaine d extensions et des couches d abstraction Pour la base de données MySQL, trois API différentes : mysql : API d origine, aujourd hui obsolète mysqli : mysql improved, avec de nouvelles fonctionnalités PDO_MySQL : couche d abstraction d accès aux données à travers des PHP Data Objects 47/65

62 Généralités (2) Utilisation de l API mysqli : Support des paradigmes de programmation procédurale et orientée objet Support des transactions Support des requêtes multiples 48/65

63 Manipulation d une base de données Quatre étapes pour manipuler une base de données : 1. Connexion au SGBD et sélection d une base 2. Exécution d une requête (préparée ou non) 3. Récupération et utilisation du résultat 4. Fermeture de la connexion On peut itérer les étapes 2 à 3 autant de fois que l on veut avant de fermer la connexion à l étape 4 49/65

64 Connexion à MySQL Tentative de connexion avec mysqli_connect : Paramètres : machine, utilisatrice, mot de passe et base de données Retourne une ressource $connexion, qui représente le lien de connexion vers la base de données sélectionnée $machine = " " ; // serveur sur lequel tourne le SGBD $user = "un_nom" ; // utilisatrice du SGBD $mdp = "un_mdp" ; // mot de passe de l utilisatrice $bd = "une_bd" ; // base de données à laquelle se connecter $connexion = mysqli_connect($machine,$user,$mdp, $bd) ; 50/65

65 Connexion à MySQL (2) Statut de la connexion avec mysqli_connect_errno : Exécution sur la dernière tentative de connexion Retourne un code d erreur, ou 0 en cas de succès if(mysqli_connect_errno()) // erreur si > 0 printf("échec de la connexion : %s", mysqli_connect_error()) ; else { // utilisation de la base } 51/65

66 Exécution d une requête non préparée Exécution d une requête non préparée avec mysqli_query : Un lien de connexion est requis en paramètre La requête $req (select, insert, etc.) est un paramètre : Si la requête est construite avec les données d un formulaire, il faut échapper ces données avec la fonction mysqli_real_escape_string Retourne un objet $resultat (de type mysqli_result) // on possède un lien de connexion $connexion $req = "une_requete_sql" ; $resultat = mysqli_query($connexion, $req) ; 52/65

67 Exécution d une requête non préparée (2) Remarques : Durant la phase de développement, il peut être utile d afficher la requête ($req) avant son exécution Une seule requête exécutée avec la fonction mysqli_query! Utiliser mysqli_multi_query pour envoyer plusieurs requêtes séparées par des point-virgules Nombreuses autres fonctions dans l API! 53/65

68 Récupération et utilisation du résultat Récupérer chaque ligne de résultat (une par tour de boucle) dans un tableau associatif (mysqli_fetch_assoc) ou tableau numérique (mysqli_fetch_array) : Accès aux valeurs par $ligne['champ'] ou $ligne[1] Retourne true pour les requêtes insert, update, et delete // on possède un objet résultat $resultat if($resultat == FALSE) // échec printf("échec de la requête") ; else { // succès while ($ligne = mysqli_fetch_assoc($resultat)) { // utilisation des champs $ligne['champ1'],... } } 54/65

69 Fermeture de connexion Fermer une connexion à MySQL avec mysqli_close : Utilisation au préalable de mysqli_kill pour détruire le thread MySQL // on possède un lien de connexion $connexion mysqli_close($connexion) ; 55/65

70 Les requêtes préparées Une requête préparée (ou requête paramétrable) est une requête réccurente, que l on compile avec des variables, et donc réutilisable en fournissant les valeurs manquantes (visibilité limitée à la session fournie par MySQL) Avantages d une requête préparée : Performances (la requête est déjà compilée, voir CM optimisation) Éviter les risques d injection SQL (paramètres transmis sous forme binaire) Économiser de la bande passante 56/65

71 Les requêtes préparées (2) Préparation d une requête avec mysqli_prepare : Un lien de connexion est requis en paramètre Les variables de la requête sont remplacées par le caractère? Pas de point virgule à la fin de la requête! // on possède un lien de connexion $connexion $req = "SELECT attribut k FROM table WHERE attribut n =? " ; $stmt = mysqli_prepare($connexion, $req) ; 57/65

72 Les requêtes préparées (3) Avant d exécuter une requête préparée, il faut lier des variables à chacun de ses paramètres avec mysqli_stmt_bind_param : Le premier paramètre est la requête préparée Le second paramètre représente le type de chaque variable "i" = entier, "s" = string, "d" = décimal, "b" = blob "sid" correspond à une première variable de type string, une seconde de type entier, et une troisième de type décimal Paramètre(s) suivant(s) : un paramètre pour chaque variable de la requête préparée (?) Retourne true (succès) or false (échec) // on a préparé une requête, représentée par $stmt $var = "une_valeur" ; mysqli_stmt_bind_param($stmt, $types, $var) ; 58/65

73 Les requêtes préparées (4) Exécution de la requête avec mysqli_stmt_execute : Retourne true (succès) or false (échec) // on a préparé une requête, représentée par $stmt mysqli_stmt_execute($stmt) ; Exemples de lien et exécution $dec = 0.5 ; $str = "abc" ; mysqli_stmt_bind_param($stmt1, "s", $str) ; mysqli_stmt_execute($stmt1) ; mysqli_stmt_bind_param($stmt2, "ds", $dec, $str) ; mysqli_stmt_execute($stmt2) ; 59/65

74 Les requêtes préparées (5) Récupérer le nombre de lignes affectées par une requête représentée par l objet $stmt : De type select (obligation de stocker le résultat au préalable) $mysqli_stmt_store_result($stmt) ; $nb = mysqli_stmt_num_rows($stmt) ; De type insert, update, delete $nb = mysqli_stmt_affected_rows($stmt) ; 60/65

75 Les requêtes préparées (6) Pour récupérer les lignes résultat d une requête select, il faut lier le résultat à des variables : Autant de variables que de colonnes! // soit une requête $stmt qui retourne n colonnes mysqli_stmt_bind_result($stmt, $var 1,..., $var n ) ; Récupération d une ligne résultat avec mysqli_stmt_fetch : Retourne true (succès) or false (échec), ou null (plus de ligne à lire) Les variables $var 1,..., $var n reçoivent les valeurs de la première ligne résultat (boucle pour les lignes suivantes) mysqli_stmt_fetch($stmt) ; 61/65

76 Les requêtes préparées (7) Exemple de requête préparée $reqp = "SELECT titre FROM Episode WHERE numero =?" ; if(!($stmt = mysqli_prepare($connexion, $reqp))) echo "Erreur de préparation : ".mysqli_error($connexion) ; else { $var = 1 ; // variable qui sera liée à la requête mysqli_stmt_bind_param($stmt, "i", $var) ; // lien mysqli_stmt_execute($stmt) ; // exécution de la requête mysqli_stmt_bind_result($stmt, $episodes) ; // lien résultat echo "<h2>episodes numérotés $var :</h2><p><ul>" ; while (mysqli_stmt_fetch($stmt)){ // parcours du résultat echo "<li>$episodes</li>" ; } echo "</ul>" ; } 62/65

77 Les requêtes préparées (7) Exemple de requête préparée $reqp = "SELECT titre FROM Episode WHERE numero =?" ; if(!($stmt = mysqli_prepare($connexion, $reqp))) echo "Erreur de préparation : ".mysqli_error($connexion) ; else { $var = 1 ; // variable qui sera liée à la requête mysqli_stmt_bind_param($stmt, "i", $var) ; // lien mysqli_stmt_execute($stmt) ; // exécution de la requête mysqli_stmt_bind_result($stmt, $episodes) ; // lien résultat echo "<h2>episodes numérotés $var :</h2><p><ul>" ; while (mysqli_stmt_fetch($stmt)){ // parcours du résultat echo "<li>$episodes</li>" ; } echo "</ul>" ; } 62/65

78 Les requêtes préparées (8) Pour réutiliser une requête préparée : Modifier la valeur de la variable (déjà) liée Éxécuter de nouveau la requête Exemple de réutilisation de requête préparée $var = 2 ; // modification de la valeur de la variable liée mysqli_stmt_execute($stmt) ; // exécution de la requête mysqli_stmt_bind_result($stmt, $episodes) ; // lien résultat echo "<h2>episodes numérotés $var :</h2><p><ul>" ; while (mysqli_stmt_fetch($stmt)) {// parcours du résultat echo "<li>$episodes</li>" ; } echo "</ul>" ; 63/65

79 Les requêtes préparées (8) Pour réutiliser une requête préparée : Modifier la valeur de la variable (déjà) liée Éxécuter de nouveau la requête Exemple de réutilisation de requête préparée $var = 2 ; // modification de la valeur de la variable liée mysqli_stmt_execute($stmt) ; // exécution de la requête mysqli_stmt_bind_result($stmt, $episodes) ; // lien résultat echo "<h2>episodes numérotés $var :</h2><p><ul>" ; while (mysqli_stmt_fetch($stmt)) {// parcours du résultat echo "<li>$episodes</li>" ; } echo "</ul>" ; 63/65

80 En résumé PHP inclut trois APIs pour MySQL, dont mysqli Quatre étapes pour se connecter et interroger MySQL Factorisation du code et sécurité avec les requêtes préparées Démo avec demo-serie (code source sur la page du LIF4) 64/65

81 Bilan PHP propose des extensions : Organisation du site avec les fonctions d inclusion Manipulation du système de fichiers du serveur Variables superglobales (dont celle de session) Manipulation des bases de données (ici MySQL) 65/65

82 Bilan PHP propose des extensions : Organisation du site avec les fonctions d inclusion Manipulation du système de fichiers du serveur Variables superglobales (dont celle de session) Manipulation des bases de données (ici MySQL) Prochain et dernier cours : optimisation de requêtes 65/65

Introduction Mysql API mysqli Annexe. Introduction à PHP. Web et SGBD : un exemple avec Mysql. IUT de Fontainebleau. 8 mars 2014. Introduction à PHP

Introduction Mysql API mysqli Annexe. Introduction à PHP. Web et SGBD : un exemple avec Mysql. IUT de Fontainebleau. 8 mars 2014. Introduction à PHP Web et SGBD : un exemple avec IUT de Fontainebleau 8 mars 2014 1 2 Modèle relationnel 3 4 listes des fonctions mysqli 1 2 Modèle relationnel 3 4 listes des fonctions mysqli Problématique Sites dynamiques

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

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

PHP et MySQL : notions de sécurité

PHP et MySQL : notions de sécurité PHP et MySQL : notions de sécurité Jean-Baptiste.Vioix@u-bourgogne.fr Dans ces quelques lignes des notions de sécurité élémentaires vont être présentées. Elles sont insuffisantes pour toute application

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

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016 Programmation Web Sites dynamiques et bases de données Mathieu Lacroix I.U.T. de Villetaneuse Année 2015-2016 E-mail : mathieu.lacroix@iutv.univ-paris13.fr Page Web : http: // www-lipn. univ-paris13. fr/

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

Systèmes d'informations

Systèmes d'informations Systèmes d'informations C'est un ensemble d'outils pour stocker / gérer / diffuser des informations / des données Le stockage : Bases de données + SGDBR La gestion : Saisie, Mise à jour, Contrôle La diffusion

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

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition)

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition) Introduction 1. Objectif de l'ouvrage 13 2. Fonctionnement d un site web 13 Installation 1. Introduction 17 2. Installation d'easyphp 13.1 18 Les bases du langage PHP 1. Les balises 23 1.1 Syntaxe de base

Plus en détail

Architecture applicative de l application Web

Architecture applicative de l application Web Architecture applicative de l application Web Principes d organisation de l application PHP Gsb-AppliFrais Les principes d'organisation de l'application s'inspirent des travaux réalisés autour du contexte

Plus en détail

Sécurité d un site php

Sécurité d un site php Sensibilisation IUT de Fontainebleau 8 juin 2015 1 2 1 2 Enjeux L application manipulent-ils des données fiables? L application interagit-elle avec le bon interlocuteur? Le secret des données échangées

Plus en détail

Formation PHP/MySQL. Pierre PATTARD. Avril 2005

Formation PHP/MySQL. Pierre PATTARD. Avril 2005 Formation PHP/MySQL Pierre PATTARD Julien BENOIT Avril 2005 Le PHP Langage interprété, côté serveur pages interprétées par le serveur web pas de compilation, code éditable avec un bloc notes. aucune différences

Plus en détail

TD3 : PHP «avancé» V2.4.0

TD3 : PHP «avancé» V2.4.0 TD3 : PHP «avancé» V2.4.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé. Document

Plus en détail

COURS DE PROGRAMMATION DE SITE WEB 3 (Base de données web)

COURS DE PROGRAMMATION DE SITE WEB 3 (Base de données web) COURS DE PROGRAMMATION DE SITE WEB 3 (Base de données web) Chapitre 1 INTRODUCTION À PHP PLAN DU COURS 1.1 Les sites statiques et dynamiques 1.2 Fonctionnement d un site internet 1.3 Les langages du Web

Plus en détail

Sécurité PHP et MySQL

Sécurité PHP et MySQL Sécurité PHP et MySQL Ce document est extrait du travail de diplôme de M. DIZON dans l état.. Sécurité PHP et MySQL...1 1 Introduction...1 2 Sécurisation des scripts PHP...2 2.1 Introduction...2 2.2 Filtrage

Plus en détail

Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs.

Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs. Cet ouvrage a bénéficié des relectures attentives des zcorrecteurs. Sauf mention contraire, le contenu de cet ouvrage est publié sous la licence : Creative Commons BY-NC-SA 2.0 La copie de cet ouvrage

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

Plus en détail

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1 La sécurité pour les développeurs Christophe Villeneuve @hellosct1 Qui... est Christophe Villeneuve? afup lemug.fr mysql mariadb drupal demoscene firefoxos drupagora phptour forumphp solutionlinux demoinparis

Plus en détail

L1 Option Programmation Web côté Serveur - Contrôle continu n 1

L1 Option Programmation Web côté Serveur - Contrôle continu n 1 L Option Programmation Web côté Serveur - Contrôle continu n Veuillez noircir les cases correspondantes à votre numéro d étudiant ( case/colonne). Si votre N est, il faut noircir le dans la ère colonne,

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et l extension PDO

Module FMIN358 Technologies du Web : PHP objet et l extension PDO Module FMIN358 Technologies du Web : PHP objet et l extension PDO 1. Extensions PHP pour interfacer les bases de données relationnelles Diverses extensions comme PHP Data Objects (PDO), ADOdb, Zend db

Plus en détail

PHP - BD. PostgreSQL. Connexion (I) Présentation

PHP - BD. PostgreSQL. Connexion (I) Présentation PHP - BD PostgreSQL S. Lanquetin LE2I Aile sciences de l'ingénieur Bureau G206 sandrine.lanquetin@u-bourgogne.fr Présentation Connexion (I) PostgreSQL s'appuie sur le modèle relationnel mais apporte les

Plus en détail

Configuration/Sécurité et performances avec PHP

Configuration/Sécurité et performances avec PHP Configuration/Sécurité et performances avec PHP Deux installations pour PHP apache Comme un module CGI Chaque invocation d'un script php entraine le démarrage d'un processus Un binaire PHP est exécuté

Plus en détail

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation.

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Bienvenue! Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Téléchargez les logiciels nécessaires pour cette formation : http ://formation-web.via.ecp.fr

Plus en détail

Le langage php. Serveur http est automatiquement lancé.

Le langage php. Serveur http est automatiquement lancé. Le langage php 1. Introduction aux langages serveurs : Il y a deux modes d exécution d une page HTML : Local : en cliquant sur le fichier, le navigateur Serveur http est automatiquement lancé. Navigateur

Plus en détail

Inf340 Systèmes d information. Deuxième site : approche MVC

Inf340 Systèmes d information. Deuxième site : approche MVC Inf340 Systèmes d information Deuxième site : approche MVC Objectifs Objectif : Reprendre le site précédent en utilisant le patron de conception Modèle Vue Contrôleur. Comprendre l apport d un framework

Plus en détail

Le client/serveur dans le cas du Web

Le client/serveur dans le cas du Web Le client/serveur dans le cas du Web Olivier Flauzac & Cyril Rabat olivier.flauzac@univ-reims.fr cyril.rabat@univ-reims.fr Licence 3 Info - Info0503 - Introduction à la programmation client/serveur 2015-2016

Plus en détail

Annexe 1 Introduction au langage PHP

Annexe 1 Introduction au langage PHP Annexe 1 Introduction au langage PHP 1. Généralités Le langage PHP/FI (Personal Home Page / Form Interpreter) a été créé en 1994 par Rasmus Lerdorf, un programmeur Danois, pour son usage personnel. En

Plus en détail

Mémento Site Dynamique / PHP

Mémento Site Dynamique / PHP Mémento Site Dynamique / PHP Pour faire fonctionner site statique : Navigateur Éditeur de texte Apache/PHP/MySQL (qu'on peut retrouver dans WampServer (uniquement Windows)) Inclure les portions de page

Plus en détail

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

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

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

PHP MySQL N 2. IUT MMI Saint Raphaël 2014-2015

PHP MySQL N 2. IUT MMI Saint Raphaël 2014-2015 PHP MySQL N 2 IUT MMI Saint Raphaël 2014-2015 Base de données : Utilisation avec PHP Se connecter à la base de données PHP propose plusieurs moyens de se connecter à une base de données MySQL : - L'extension

Plus en détail

PHP. Introduction à la programmation web serveur. Université Nice Sophia-Antipolis. Découverte et pratique avec PHP. Fabien Givors

PHP. Introduction à la programmation web serveur. Université Nice Sophia-Antipolis. Découverte et pratique avec PHP. Fabien Givors Introduction à la programmation web serveur Découverte et pratique avec PHP Fabien Givors d après les cours de Philippe Renevier Gonin Université Nice Sophia-Antipolis Année universitaire 2014-2015 PHP

Plus en détail

PHP/MySQL. École Nationale Supérieure des Mines de Nancy 2nde Année

PHP/MySQL. École Nationale Supérieure des Mines de Nancy 2nde Année Bases de Données et Ingénierie des Systèmes d Information 1 PHP/MySQL École Nationale Supérieure des Mines de Nancy 2nde Année Table des matières I PHP 2 1 Les bases 2 1.1 Introduction........................................

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

Plus en détail

Fonctionnement du Site Web Dynamique:

Fonctionnement du Site Web Dynamique: Fonctionnement du Site Web Dynamique: Site Web Dynamique: Un site Web dynamique est en faite un site Web dont les pages qu'il contient peuvent être générées dynamiquement, c'est à dire à la demande de

Plus en détail

Interfaçage avec une base de données

Interfaçage avec une base de données Interfaçage avec une base de données Principe PHP propose de nombreux outils permettant de travailler avec la plupart des SGBD Oracle, Sybase, Microsoft SQL Server, PostgreSQL ou encore MySQL Php fournit

Plus en détail

Projet : site web de gestion de jeu

Projet : site web de gestion de jeu Projet : site web de gestion de jeu Partie 1 (modélisation et architecture du site) UCBL - Département Informatique de Lyon 1 LIF4 - automne 2015 1 Description générale du projet Le projet est à réaliser

Plus en détail

T. HSU Sécurité des programmes PHP

T. HSU Sécurité des programmes PHP Sécurité des programmes PHP T. HSU IUT de LENS, Département informatique November 13, 2012 Part I Introduction à PHP Fonctionnement 1 : Requète PHP 2 : Aller chercher la page MySQL Page PHP Moteur PHP

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Définition MySQL = SGBD = Système de Gestion de Base de Données Le rôle du MySQL est de vous aider à enregistrer les données de manière organisée

Plus en détail

Projet : site web de gestion d itinéraires de voyage

Projet : site web de gestion d itinéraires de voyage Projet : site web de gestion d itinéraires de voyage Partie 1 (modélisation et architecture du site) UCBL - Département Informatique de Lyon 1 LIF4 - automne 2014 1 Description générale du projet Le projet

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP SANS JAMAIS OSER LE DEMANDER Les

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

TYPOlight de base Concept-Image Procédure d installation Version 2.7 RC2

TYPOlight de base Concept-Image Procédure d installation Version 2.7 RC2 TYPOlight de base Concept-Image Procédure d installation Version 2. RC2 Concept-Image Rennes - avril 2009 1 1 SOMMAIRE 1 SOMMAIRE 2 2 INSTALLATION DE TYPOLIGHT 3 2.1 Prérequis 3 2.1.1 Recommandations système

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

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

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Interface phpmyadmin Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian

TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian TP Projet Informatique : Persistance en Php et prise en main GIT / Atlassian Objectif : faire un site pour gérer des articles par catégorie. Chaque catégorie a un nom, chaque catégorie est constitué d

Plus en détail

Internet et applications dans l entreprise (4) PHP

Internet et applications dans l entreprise (4) PHP Licence professionnelle «Management des organisations» Option «Systèmes d information et Réseaux» Internet et applications dans l entreprise (4) PHP 2009-2010 PHP... 3 Balises PHP... 3 Variables, formatage

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

Installation / Sauvegarde Restauration / Mise à jour

Installation / Sauvegarde Restauration / Mise à jour Installation / Sauvegarde Restauration / Mise à jour SPIP version 1.8.x Serveur (Linux) Jean Sébastien BARBOTEU dev.jsb@laposte.net Introduction Nous allons aborder tous les aspects techniques liés à la

Plus en détail

1 : 1 er programmes & prise en main de l environnement

1 : 1 er programmes & prise en main de l environnement 1 : 1 er programmes & prise en main de l environnement 1 Introduction 1.1 Rappel : gestion d arborescence et de fichiers sous UNIX Pour la manipulation de répertoire et de fichier à partir d un terminal

Plus en détail

APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI

APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Cours en Réponse à questions, n 1 Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble

Plus en détail

Installer Joomla. Étape 1 : choix de la langue d installation

Installer Joomla. Étape 1 : choix de la langue d installation CHAPITRE 4 Installer Joomla L installation de Joomla se déroule en sept étapes : 1. choix de la langue d installation ; 2. vérification des prérequis ; 3. présentation de la licence publique générale GNU

Plus en détail

Plateforme d'hébergement web mutualisé Documentation utilisateur

Plateforme d'hébergement web mutualisé Documentation utilisateur D.O.S.I. Aix-Marseille Université Pôle Ressources Système Documentation utilisateur --- Plateforme d'hébergement web mutualisé Documentation utilisateur --- 1 :\ Utilisation du sftp : 1.1 :\ Paramètres

Plus en détail

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres),

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), Terminologie ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), RUBRIQUE : contenant d'articles et/ou de rubriques

Plus en détail

Projet GsbFrais virtualisation

Projet GsbFrais virtualisation Projet GsbFrais virtualisation Table des matières Première séance : deux machines physiques... 2 Où et comment s'effectue la connexion à la base de données?... 2 Quelles valeurs ont les trois variables

Plus en détail

LSI2 Programmation Web TP n 4 du 17 décembre 2007

LSI2 Programmation Web TP n 4 du 17 décembre 2007 Page 1 sur 6 LSI2 Programmation Web TP n 4 du 17 décembre 2007 Corrigé des TPs précédents Le code source de la solution est fourni dans un fichier.zip téléchargeable à l adresse http://www.isitix.com/enssat/enssat20071217.zip

Plus en détail

Programmation WEB dynamique PHP

Programmation WEB dynamique PHP Programmation WEB dynamique PHP G. Maurey Master 1-2010 Les présentations Gilles MAUFFREY Bureau 5 Batiment W2 T : 72 61 k : maurey@hec.fr www.hec.fr/maurey PHP Plan de la séance 1 Présentation du cours

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

DOCUMENTATION MISE A JOUR ANTIBIOGARDE. V4.0 en v4.1

DOCUMENTATION MISE A JOUR ANTIBIOGARDE. V4.0 en v4.1 DOCUMENTATION MISE A JOUR ANTIBIOGARDE V4.0 en v4.1 Version d Antibiogarde 4.1 Version du document 1.0 Date dernière mise à jour du document 15/06/2010 Retrouvez cette doc à jour sur : http://www.antibiogarde.org/activation/

Plus en détail

PHP5. Programmation orientée objet. A. Belaïd 1

PHP5. Programmation orientée objet. A. Belaïd 1 PHP5 Programmation orientée objet A. Belaïd 1 La POO en PHP Intérêt Progrès par rapport à la version PHP4 Permet de rassembler autour d un même objet (concept), une définition, des attributs et des méthodes

Plus en détail

GED MARKETING. Page 1 sur 18

GED MARKETING. Page 1 sur 18 GED MARKETING I. Présentation du produit... 2 II. Page principale de l application... 3 L arbre... 3 Le menu... 4 La fenêtre de navigation... 4 III. La recherche de documents... 4 Rechercher tous les documents...

Plus en détail

Programmation Web : Cours. IUT de Villetaneuse.

Programmation Web : Cours. IUT de Villetaneuse. Programmation Web : Cours 2 ème année IUT de Villetaneuse. Mathieu Lacroix 1 3 septembre 2015 1. E-mail : mathieu.lacroix@iutv.univ-paris13.fr, Page Web : http://www.lipn.univ-paris13.fr/~lacroix/ I.U.T.

Plus en détail

Dans l'article précédent, vous avez appris

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

- - - Version 1.0 - - - Documentation

- - - Version 1.0 - - - Documentation - - - Version 1.0 - - - Documentation Frédéric BOLLON 21 septembre 2008 Table des matières 1 Introduction 2 2 Pré-requis 3 3 Installation 4 4 Utilisation 6 4.1 Précisions importantes......................

Plus en détail

Apprendre à développer avec JavaScript

Apprendre à développer avec JavaScript Présentation du langage JavaScript 1. Définition et rapide historique 11 2. Pré-requis pour un apprentissage aisé du langage 13 3. Outillage nécessaire 14 4. Positionnement du JavaScript face à d autres

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

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

Introduction Web. 1ère année, cours - 5/5. Marcel Bosc 2011-2012

Introduction Web. 1ère année, cours - 5/5. Marcel Bosc 2011-2012 Introduction Web 1ère année, cours - 5/5 Marcel Bosc 2011-2012 Département informatique IUT de Villetaneuse Université Paris-13 table des matières Types en PHP Classes et objets Organisation code PHP CMS

Plus en détail

Conception de Sites Web dynamiques. Authentification. Programme. Hébergement de vos sites 08/04/2010. Inscription

Conception de Sites Web dynamiques. Authentification. Programme. Hébergement de vos sites 08/04/2010. Inscription Conception de Sites Web dynamiques Cours 8 2009/2010 Patrick Reuter Inscription Authentification Programme Hébergement Sujets Projets Retour sur TP MySQL Base de données Hébergement de vos sites Capacités

Plus en détail

Instruction d installation de GIMACO

Instruction d installation de GIMACO IDENTIFICATION DU DOCUMENT Objet Procédure d installation de l application GIMACO Référence IN 1258 INF XXX VB - Installation de GIMACO.doc Numéro de version 3.0 Statut Valide Auteur(s) David Pujol, Stéphane

Plus en détail

Site Web du DMI : explication de code

Site Web du DMI : explication de code Site Web du DMI : explication de code I. Présentation de l arborescence du site /Site_DMI_08/ Répertoire racine du site web. /Site_DMI_08/images/ Ce dossier comporte toutes les images utilisées dans le

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

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

Programmation Web en PHP. Structures de base

Programmation Web en PHP. Structures de base Programmation Web en PHP Structures de base 1 Introduction Définition Personal Home Page ou (Hypertext PreProcessor) Un langage de scripts évolué pour la conception de sites entiers : s intègre à HTML

Plus en détail

la réalisation d'un site d'inscriptions

la réalisation d'un site d'inscriptions Rapport du projet la réalisation d'un site d'inscriptions Réaliser par : Fatimaezzahra Yazough Année :2014 /2015 1/9 Yazough INTRODUCTION Le but de ce projet et de réaliser une maquette de site web pour

Plus en détail

PHP OO et Pear DB. Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2. Olivier.Perrin@loria.fr

PHP OO et Pear DB. Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2. Olivier.Perrin@loria.fr PHP OO et Pear DB Olivier Perrin IUT Nancy-Charlemagne Département Informatique Université Nancy 2 Olivier.Perrin@loria.fr Classes et objets en PHP Une classe PHP regroupe des variables d instance, représentés

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

DOSSIER TECHNIQUE. mickaelchanrion.com. à l attention des Gobelins, l école de l image

DOSSIER TECHNIQUE. mickaelchanrion.com. à l attention des Gobelins, l école de l image DOSSIER TECHNIQUE à l attention des Gobelins, l école de l image mickaelchanrion.com SOMMAIRE Yoann Buchet M u l t i s e r v i c e s LIVRE D'OR POUR UN SITE PAGE 4 - Conception et réalisation d'un livre

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail

Bases de Données & Interfaces Web. stanislas.oger@univ-avignon.fr

Bases de Données & Interfaces Web. stanislas.oger@univ-avignon.fr Bases de Données & Interfaces Web stanislas.oger@univ-avignon.fr 1 Architecture d'un SI Web Fonctionnement Dynamique avec Base de Données 2 Idée Dynamiser les pages avec des infos venant de BDD Enregistrer

Plus en détail

Programmation Android TP7 - WebServices

Programmation Android TP7 - WebServices 1. WebService Dans le TP6, les avis étaient stockés dans une base SQL. Cette semaine les n-uplets sont stockés sur une base de données externe gérée par un serveur HTTP sur lequel tournent des scripts

Plus en détail

LES INJECTIONS SQL. Que20. 08 novembre 2015

LES INJECTIONS SQL. Que20. 08 novembre 2015 LES INJECTIONS SQL Que20 08 novembre 2015 Table des matières 1 Introduction 5 2 Qu est-ce qu une injection SQL? 7 3 Premier cas : injection SQL sur une chaîne de caractères 9 3.1 Comment s en protéger?..............................

Plus en détail

Système d information

Système d information w w w. a g r o p a r i s t e c h. f r Système d information http://www.agroparistech.fr/systeme-d-information.html Requêtes MySQL en PHP avec AgroSIXPack Liliana IBANESCU UFR Informatique Département MMIP

Plus en détail

MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI

MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI Claire Billaud - 3ème année IS MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI Page 1 sur 9 Principe : On veut faire en sorte que le réseau interne

Plus en détail

Interfaçage de programmation. c Olivier Caron

Interfaçage de programmation. c Olivier Caron Interfaçage de programmation 1 Le SGBD est-il suffisant? (1/2) Les pour : La puissance du langage de requêtes. 1 Le SGBD est-il suffisant? (1/2) Les pour : La puissance du langage de requêtes. L aspect

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

TME 1 JAVASCRIPT (2 SEANCES)

TME 1 JAVASCRIPT (2 SEANCES) TME 1 JAVASCRIPT (2 SEANCES) 1. EXERCICES DE BASE Créez des fonctions javascript pour : - faire un jeu «plus petit plus grand» qui tire un nombre au hasard que l utilisateur doit trouver en entrant des

Plus en détail

Développement de l interface Web du projet Hôpital

Développement de l interface Web du projet Hôpital Pôle informatique 2013/2014 École Nationale Supérieure des Mines de Saint-Étienne Développement de l interface Web du projet Hôpital Antoine Zimmermann antoine.zimmermann@emse.fr Le cahier des charges

Plus en détail