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! /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) %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) ; /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! /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 /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

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

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

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

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

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

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

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

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

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

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. 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

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

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

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

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

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

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

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

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

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

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09 INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL

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

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

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

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

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

Guide de démarrage -------

Guide de démarrage ------- Guide de démarrage ------- Chargés de cours et laboratoire Date Nom Version 28 août 2010 Bonnet-Laborderie Alexandre 1.6 Sommaire Avant de commencer... 3 1) Accès au site avec un navigateur internet...

Plus en détail

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs. Connexion à 4D Server depuis une page ASP Par Noreddine MARGOUM, Technicien Contrôle Qualité, 4D S.A. Note technique 4D-200403-08-FR Version 1 Date 1 Mars 2004 Résumé Le propos de cette note technique

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

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Installation de Joomla avec Filezilla

Installation de Joomla avec Filezilla Installation de Joomla avec Filezilla Le but de cette manipulation est d apprendre à installer le CMS Joomla sur un hébergement classique, dans ce cas de type mutualisé. Quand vous souscrivez à un hébergement,

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

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

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

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

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Opération & Support http://www.keyyo.fr/fr/support/expert.php Version 1.0.7 Sommaire 1 Portée du document... 3 2 Introduction à la configuration...

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

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 modalisa Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10 8 Fonctionnalités de mise en ligne de questionnaires Vous trouverez dans cet opuscule les informations nécessaires

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

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

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi Un exemple d'authentification sécurisée utilisant les outils du Web : CAS 111 L authentification CAS : «Central Authentication Service» CAS ou le service central d authentification Le système CAS, développé

Plus en détail

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org Les sites Internet dynamiques contact : Patrick VINCENT pvincent@erasme.org Qu est-ce qu un site Web? ensemble de pages multimédia (texte, images, son, vidéo, ) organisées autour d une page d accueil et

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

Dans nos locaux au 98 Route de Sauve 30900 NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Dans nos locaux au 98 Route de Sauve 30900 NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur FORMATION FORFAIT WEB DEVELOPPEUR Qualification ISQ OPQF Formacode 46 125 Certification de titre professionnel Web Designer + modules optionnels : Développement PHP/MySQL avancé, Web App, CMS e-boutique

Plus en détail

Documentation de conception

Documentation de conception Documentation de conception La présente documentation précise les choix de modélisation, détaille les fonctionnalités (en sus de la documentation utilisateur), documente la conception de la base de donnes

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

Accès aux bases de données

Accès aux bases de données 13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.

Plus en détail

Formation : WEbMaster

Formation : WEbMaster Formation : WEbMaster Objectif et Description : Centre Eclipse vous propose une formation complète WebMaster, vous permettant de : Utiliser dès maintenant les nouveautés du web2, ainsi alléger les besoins

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2 Initiation Matlab 2 1 Chaînes de caractères (string) Une chaîne de caractères (string en anglais) est une suite ordonnée de caractères (du texte, par exemple). Sous matlab, les chaînes de caractères sont

Plus en détail

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3

www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 L i a m T A R D I E U www.evogue.fr SUPPORT DE COURS / PHP PARTIE 3 Sommaire Sommaire... 2 Eléments initiaux... 3 Base de données... 3 Tables... 4 membres... 4 commandes... 4 articles... 4 details_commandes...

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

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

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

ISPConfig Documentation

ISPConfig Documentation ISPConfig Documentation ISPConfig Documentation I Table des Matières III Manuel Client...1 1 Général...1 1.1 Connexion et Mot de Passe...1 1.2 Interface Client...1 1.3 Privilèges pour les Clients dans

Plus en détail

Bureautique Initiation Excel-Powerpoint

Bureautique Initiation Excel-Powerpoint Module de Formation Personnalisée : Bureautique Initiation Excel-Powerpoint Durée : jours ouvrables Prix : Formation personnalisée en vue d obtenir les notions de base indispensables pour : Excel Office

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE Épreuve de cas pratique dans la spécialité correspondant à l'option choisie par le candidat Option D Durée de préparation

Plus en détail

Réseaux et protocoles Damien Nouvel

Réseaux et protocoles Damien Nouvel Réseaux et protocoles Plan Les couches du réseau Suite de protocoles TCP/IP Protocoles applicatifs pour les sites web Requêtes HTTP 2 / 35 Plan Les couches du réseau Suite de protocoles TCP/IP Protocoles

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

Automatisation de l administration système

Automatisation de l administration système Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications

Plus en détail

PROMETHEE Guide d installation

PROMETHEE Guide d installation PROMETHEE Guide d installation Prométhée est un logiciel placé sous licence GNU/GPL v3 (General Public License) : deux contraintes pour quatre libertés. liberté d'utilisation du logiciel pour tous usages.

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

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1

E-TRANSACTIONS. Guide du programmeur API Plug-in. Version 1.1 E-TRANSACTIONS Guide du programmeur API Plug-in Version 1.1 Avertissements : Le fichier Version.txt précise l'environnement dans lequel l API a été compilée et testée. L'installation de l API sur tout

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Linux....................................................................

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

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR GUIDE D INSTALLATION DE L APPLICATION GECOL SUR SERVEUR WINDOWS INTRODUCTION Le guide d installation qui va suivre va tenter d amener de la simplicité et de centraliser toutes les informations nécessaires

Plus en détail

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim 01/03/2013 Le rôle de Serveur Web (IIS) dans Windows Server 2008 R2 vous permet de partager des informations avec des utilisateurs sur Internet, sur un intranet ou un extranet. Windows Server 2008 R2 met

Plus en détail

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb Transfert d un site local vers un serveur NPDS REvolution 13 Révision 1.1 de la documentation pour cette version Rédaction : Axel Relecture : Dev & Jpb Sommaire 1 Présentation générale... 3 1.1 Convention...

Plus en détail

WordPress :: Migrer son site du local vers le serveur en ligne

WordPress :: Migrer son site du local vers le serveur en ligne WordPress :: Migrer son site du local vers le serveur en ligne Dans ce tutoriel nous verrons comment passer d'une **version locale* de site vers une version en ligne. Cette méthode est aussi valable quand

Plus en détail

BES WEBDEVELOPER ACTIVITÉ RÔLE

BES WEBDEVELOPER ACTIVITÉ RÔLE BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et

Plus en détail

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures 3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures Objectif global : A l issue de la formation, les stagiaires doivent être opérationnels dans la création d un site internet

Plus en détail

INTRODUCTION AU CMS MODX

INTRODUCTION AU CMS MODX INTRODUCTION AU CMS MODX Introduction 1. Créer 2. Organiser 3. Personnaliser UNE PETITE INTRODUCTION QUEST-CE QU UN CMS? CMS est l acronyme de Content Management System. C est outil qui vous permet de

Plus en détail

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes Produits concernés : Sage 100 CRM i7, Sage 100 Etendue. L objectif Créer un lien entre Sage CRM et Sage

Plus en détail

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012

Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012 Impact des robots d indexation sur le cache de second niveau de SPIP IMBERTI Christophe - SG/SPSSI/CP2I/DO Ouest 06/06/2012 mis à jour le 05/07/2012 SOMMAIRE 1. LE CONSTAT... 2 2. L EXPLICATION... 2 3.

Plus en détail

Hébergement de site web Damien Nouvel

Hébergement de site web Damien Nouvel Hébergement de site web Plan L'hébergeur Le serveur web Apache Sites dynamiques 2 / 27 Plan L'hébergeur Le serveur web Apache Sites dynamiques 3 / 27 L'hébergeur L'hébergeur sous-traite l'architecture

Plus en détail

PROJET 1 : BASE DE DONNÉES REPARTIES

PROJET 1 : BASE DE DONNÉES REPARTIES PROJET 1 : BASE DE DONNÉES REPARTIES GESTION D UNE BANQUE Elèves : David Bréchet Frédéric Jacot Charles Secrétan DONNÉES DU PROJET SSC - Bases de Données II Laboratoire de Bases de Données BD réparties

Plus en détail

WebSpy Analyzer Giga 2.1 Guide de démarrage

WebSpy Analyzer Giga 2.1 Guide de démarrage WebSpy Analyzer Giga 2.1 Guide de démarrage Ce document aide à vous familiariser avec l utilisation de WebSpy Analyzer Giga. Pour des informations plus détaillées, consultez le guide utilisateur Analyzer

Plus en détail

LI345 Bases de données et sites Web. Licence de Sciences et Technologies Mention Informatique

LI345 Bases de données et sites Web. Licence de Sciences et Technologies Mention Informatique LI345 Bases de données et sites Web Licence de Sciences et Technologies Mention Informatique Fascicule de TD/TME PHP Année 2014/2015 1 Table des matières Planning indicatif des séances...3 Notions de base

Plus en détail

STID 2ème année : TP Web/PHP

STID 2ème année : TP Web/PHP STID 2ème année : TP Web/PHP Plan de travail et aide mémoire jean.arnaud@inria.fr Ce document est composé de cinq parties : Un aide mémoire sur les aspects pratiques de la création de sites Une introduction

Plus en détail

Logiciel de gestion de caisse et d ardoises

Logiciel de gestion de caisse et d ardoises 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Logiciel de gestion de caisse et d ardoises BOIRLEAUD Pierre-Jean MOLINS Nicolas REHFELD Vincent Table des matières

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Diffuser un contenu sur Internet : notions de base... 13

Diffuser un contenu sur Internet : notions de base... 13 Diffuser un contenu sur Internet : notions de base... 13 1.1 Coup d œil sur l organisation de cet ouvrage.............. 15 Préambule : qu est-ce qu une page web?................ 16 À propos du HTML...........................

Plus en détail

LA PLATE-FORME D'ALTERN C

LA PLATE-FORME D'ALTERN C LA PLATE-FORME D'ALTERN C http://doc.alternc.org/user/ch01.html Altern C est un ensemble de scripts fondé uniquement sur des Logiciels Libres. Grâce à sa facilité d administration, il permet d offrir un

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

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

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

Vulnérabilités et sécurisation des applications Web

Vulnérabilités et sécurisation des applications Web OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Page 1 Planning

Plus en détail

MANUEL DE L UTILISATEUR

MANUEL DE L UTILISATEUR MANUEL DE L UTILISATEUR COMPAS DYNAMIQUE Page 1 / 81 Page 2 / 81 SOMMAIRE PREAMBULE... 7 CHAPITRE 1 :... 9 PRESENTATION DU COMPAS DYNAMIQUE... 9 1 INTRODUCTION... 11 1.1 QU EST-CE QUE LE COMPAS DYNAMIQUE?...

Plus en détail

Tutorial sur SQL Server 2000

Tutorial sur SQL Server 2000 Tutorial sur SQL Server 2000 Système d'exploitation est 2000 pro et Serveur 2000 Sommaire 1 - Installation... 2 2 - Mise à jour... 5 3 - Présentation... 7 3-1 - Service Manager (Démarrer/Programmes/Microsoft

Plus en détail

Thème : Création, Hébergement et référencement d un site Web

Thème : Création, Hébergement et référencement d un site Web Formation au profit des enseignants de l'université Ibn Zohr Thème : Création, Hébergement et référencement d un site Web Omar El Kharki & Jamila Mechbouh http://perso.menara.ma/~elkharki/ Ou bien http://www.elkharki.africa-web.org/

Plus en détail