Mettre en place un site web dynamique Mise en application
|
|
- Bernard Métivier
- il y a 8 ans
- Total affichages :
Transcription
1 Sites web dynamiques avec PHP et Mysql Mettre en place un site web dynamique Mise en application Annie Danzart 1
2 Sites web dynamiques avec PHP et Mysql Organisation du cours (7 séances sur 5 semaines) Objectif du module: un site de cartes de vœux numériques dynamiques Côté numérique: mettre en place un site web Côté dynamique: construire une carte en ligne avec le langage php Côté persistance: stocker les informations dans une base de données Mysql Annie Danzart, a.danzart@gmail.com
3 Mise en place du site: côté technique Création de votre espace personnel: le home directory, votre login: login le dossier public_html le fichier index.html organisation des fichiers les droits d accès aux fichiers la page de vitrine: vous êtes libres d y placer les informations que vous voulez, sous la forme qui vous convient. Intégrez des images, des liens externes Serveur de fichiers perso.telecom-paristech.fr ~login ~login/public_html/index.html - public_html - Fichiers - Dossiers - Etc. - images - index.html - vitrine.html 3
4 La vitrine du site vitrine.html formulaire.php formulaire.php 4
5 Affichage sans serveur: Comment ça marche? file:///perso.telecom-paristech.fr/~login/vitrine.html Poste client chrome Javascript 3 Le navigateur est capable d afficher des pages html locales 1 2 Serveur de fichiers perso.telecom-paristech.fr perso.enst.fr Il est capable d interpréter des scripts javascript ~login/public_html/vitrine.html 5
6 Utilisation d un serveur: Comment ça marche? Poste client chrome Serveur Apache httpd Serveur de fichiers 2 3 perso.telecom-paristech.fr Le serveur reçoit la requête et la traite en envoyant au client la page demandée ~login/public_html/vitrine.html 6
7 Schéma de fonctionnement du système de création formulaire.php validation.php execution.php validation.php execution.php Insertion dans la base de données Envoi d un modification. carte.php 7
8 Schéma de principe du système formulaire.php validation.php execution.php (inclut connexion_inc.php) <form > validation.php <form > execution.php insert into </form> carte.php Modification </form> mail recapitulatif.php select * from cartes where C_ID=3 ; select * from cartes ; Mail : 8
9 Les fichiers qui constituent le système vitrine.html: page d accueil du site. Écrite en html. Elle permet d accéder au site de cartes de vœux. Elle peut permettre d autres actions. formulaire.php: formulaire dynamique (en php) qui propose à l utilisateur de faire son choix. Il sera ensuite capable de prendre en compte des données précédemment saisies pour effectuer une modification. validation.php: page php qui récupère et restitue les choix de l utilisateur. execution.php: page php qui stocke les caractéristiques de la carte dans la base de données et envoie un d annonce à son destinataire. Elle indique à l utilisateur qui tout s est bien passé. carte.php: page php qui affiche la carte de vœux constituée. recapitulatif.php: page php qui permet de visualiser la liste des cartes qui ont été envoyées. 9
10 Le formulaire de choix de carte formulaire.php validation.php validation.php Partie statique: nom, mail, message, thèmes Partie dynamique: mes images puisées dans un répertoire Hautement dynamique: on affiche les choix de l utilisateur pour que celui-ci vérifie qu ils lui conviennent 10
11 Créer un formulaire dynamique Comment créer un formulaire? formulaire.php Partie dynamique: des images puisées dans un répertoire Partie statique: nom, mail, message, thèmes, validation 11
12 Première étape: créer la partie statique Comment créer un formulaire statique? L attribut action du formulaire contient le nom du fichier qui s exécutera à la validation, soit validation.php noms, mails, message: champs de type input Thème: menu déroulant Validation: champ de type submit formulaire.php 12
13 Deuxième étape: valider la partie statique Comment créer un formulaire statique? Les informations transmises par le formulaire sont affichées pour confirmation. Ce mécanisme vient de l exécution d un script php capable de les récupérer et de les utiliser pour générer du source html dynamique qui les inclut. validation.php 13
14 Deuxième étape: valider la partie statique Il faut récupérer les données transmises par notre formulaire et les afficher sous une forme appropriée (html). Pour cela on utilise un script dont le but est de faire le travail. On peut ajouter une ligne qui affiche la date courante (fonction date() ). Elle sera également dans un script php. validation.php Nous sommes le 13/11/
15 Pages web dynamiques avec PHP et Mysql Ecrire un script PHP Annie Danzart
16 Historique de PHP 1994 : Rasmus Lerdorf, Personnal Home Pages Pre Hypertext Processor Langage de scripting traité par le serveur, orienté web Module mod_php d'apache Gratuit, libre de droits (license GNU GPL) Nombreuses extensions (sgbd, ldap, gif, pdf, smtp, ) Syntaxe proche de celle de C, Java, Perl Comparable à ASP, asp2php Extensible Des milliers de sites de par le monde Versions 3, 4, 5, 6? 16
17 Différentes versions de PHP? php3: Première version stable, répond à la majorité des besoins des sites dynamiques php4: Introduction de la notion d objet et de sessions php5: SQLite: Un SGBD embarqué SimpleXML: Un nouveau parseur XML très efficace et très simple un nouveau modèle POO: Le modèle objet complètement remanié, l'ancien restant correctement interprété par php php6 (développement suspendu): Support d'unicode, Amélioration de la Programmation Orienté Objet, Amélioration et sécurisation des fonctionnalités php et les CMS: 17
18 Les pages php Une page php = page html contenant des scripts, extension spécifique du fichier Page php ü Une page html ü Des scripts php. ü L ensemble des scripts d une page utilise le même contexte ü Chaque script peut générer du code html qui s intègre à sa place dans la page html où il se trouve ü L extension de la page doit être php, ou php3, phtml, php4, php5 sinon le serveur ne sait pas qu il doit interpréter des scripts 18
19 Les scripts php Formulation des scripts php, identification <?php?> <??> <script language="php"> </script> <%php %> <?=$nom?> Ecriture la plus standard (recommandée) Encore très utilisée. A la Javascript Compatible avec ASP Ecriture raccourcie, pas toujours correctement interprétée 19
20 Php: définir des scripts Environnement d un script, résultat d exécution: premier exemple <html> <head><title>bienvenue</title> </head> <body> <?php // commentaire?> $nom="martin"; <h1 align="center"> Bonjour <?php echo $nom;?> </h1><br> Il est <?php echo date("h:i");?> <br> </body> </html> Exemple : php/exemples/scripts_test.php Remarque : la fonction date : phpplus.php#dates 20
21 Interprétation d un script php : Comment ça marche? Poste client chrome Serveur Apache httpd mod_php5 Serveur de fichiers perso.telecom-paristech.fr 2 3 Le serveur passe le fichier au module php avant de le retourner au client ~danzart/public_html/validation.php 21
22 Les scripts, les variables Les variables: les identificateurs, les types ü Types de base: entiers, réels, chaînes de caractères ü Tableaux, tableaux associatifs ü Objets ü Les noms de variables commencent par le caractère $ ü php est sensible à la casse ($i et $I sont deux variables différentes) ü Un nom peut commencer par une lettre ou un _ ü Il peut comporter des caractères, des chiffres et _ ü Les variables ne sont pas typées, n ont pas besoin d être déclarées ü Elles ont une valeur par défaut qui dépend du contexte d utilisation 22
23 Php: Les scripts, les variables Variables, types de variables <html> <head><title>bienvenue</title> </head> <body> <?php // definition d une variable $a=10; echo "<font color=\"red\">"; echo "Hello C est $a"; $a=$a+10;?> </font></body> </html> Remarque: - une variable peut changer de valeur en cours de script 23
24 Les scripts, les variables Les Constantes <html> <head><title>bienvenue</title> </head> <body> <?php // définition d une constante define("salut","bonjour a tous<br />"); echo "<font color=\"red\">"; echo "Hello ".Salut;?> </font></body> </html> Exemple: ~danzart/php/exemples/ commentaires_test.php Remarques: - l opérateur. de concaténation - insertion de balises html - échappement de caractères 24
25 Les variables en php Affectation d une valeur à une variable, quelques opérations $chaine = "Poire"; // chaîne de caractères $nombre = 0; $nombre++; // nombre 1 (entier) $nombre+=1; // entier (2) $nombre = $nombre + 1.3; // réel (3.3) Simple et double quote Chaîne dynamique $val = 'Rusti'; echo "Hello $val"; // Hello Rusti echo 'Hello $val'; // Hello $val Exemple: php/exemples/variables_test.php 25
26 Les variables en php Les variables: opérateurs arithmétiques, opérateurs logiques Principaux opérateurs arithmétiques : +, -, *, /, %, ++, --, +=, ==, Arithmétiques $a + $b - $c $a * $b / $c $a % $b $a++ Incrément de 1 $b-- Décrément de 1 Assignation de valeur =, +=, -=, *=, /=, %=,.= Comparaison entre expressions ==, =, <, >, <=, >= Concaténation $chaine="votre nom est ".$val; Opérateurs Logiques not,, &&,, AND, XOR, OR rque : précédence de or sur $a = foo() bar() or die(); Binaires bitwise &,, ^, ~, >>, <<, - : contrôle d'erreur? : opérateur ternaire 26
27 Les tableaux Manipulation de tableaux, tableaux dynamiques // on donne l indice $fruits[0]= "pomme"; $fruits[1]= "banane"; //un indice par défaut $fruits[] = "orange"; // équivaut a $fruits[2]= "orange" //initialisation en bloc $fruits= array(3=> "pomme", 1=>"banane",4=> "orange" ); //initialisation en bloc //avec des indices par defaut $fruits= array( "pomme", "banane", "orange" ); A priori, les indices commencent à 0. Pas besoin de déclarer la dimension ni le type des valeurs. Si on ne donne pas d indice, l indice pris en compte sera celui qui suit la valeur la plus haute (0 si rien n a encore été mis). L initialisation peut se faire «en bloc», en précisant ou non les indices. Les tableaux dynamiques sont très utiles lors de l utilisation de champs de type «checkbox» dans un formulaire. Exemple : exemples/tableaux_test.php 27
28 Les tableaux Les tableaux: fonctions associées, Traitement du tableau dans sa globalité sizeof($t) = count($t) is_array($t) reset($t) end($t) current($t) Positionnement dans un tableau : next($t) prev($t) représenté par une liste de doublets (indice,valeur) sort, rsort, ksort, krsort, usort shuffle($t) max($t) min($t) arraywalk($t,"nomfonction") Taille d un tableau Est-ce un tableau? Tri ascendant, descendant sur la valeur, sur la clé, avec une fonction utilisateur Mélange aléatoire Calcul des valeurs extrêmes Applique une fonction à toutes les valeurs d un tableau 28
29 Les tableaux Parcours d un tableau $t = array("i","n","f","3","4","7"); sort($t); // instruction de boucle sur les // éléments de tableau for ($i=0;$i<count($t);$i++) echo "t[$i]=".$t[$i]."\n"; sort($t); reset($t); // autre instruction de boucle while(list($cle,$valeur)= each($t)) echo "t[$cle]=".$t[$cle]."\n"; L ajout de "\n" dans l affichage introduit un saut à la ligne dans le source. $a = each($t) renvoie l'index et la valeur courante dans un tableau à 2 éléments; $a[0] contient l'index, $a[1] la valeur. list($cle, $valeur,... ) construit un tableau temporaire à partir des variables scalaires passées en argument. Exemple: php/exemples/tableaux_fonctions_test.php 29
30 Les tableaux Les Tableaux associatifs: Les indices ne sont pas forcément numériques $mois["janvier"]= 1; $mois["février"]= 2; $mois[] = array("janvier"=>1,"février"=>2, "Mars"=>3); while (list($cle,$val) = each($mois)) echo "<br> No de $cle : $val "; foreach ($mois as $cle => $val) echo "<br> No de $cle : $val "; key($t):index de l'élément courant du tableau uasort($t,"f_comp"): tri à l aide d une fonction en gardant les indices associés Les indices du tableau sont alors des chaînes de caractères qui pourront être traitées en tant que telles. L emploi de la fonction each s avère importante pour parcourir les tableaux associatifs. On peut aussi utiliser la boucle foreach. Exemple: php/exemples/ tableaux_associatifs_test.php 30
31 Un formulaire: comment le gérer en php Déclaration, balises, méthode <form method="post" action="execution.php"> <H2>Questionnaire</H2> Prénom? <input name="prenom" value="xxx"><p> Votre nom? <input name="nom" value="yyy"><p> Votre couleur favorite? <select name="couleur"> <option selected value="white">blanc <option value="yellow">jaune <option value="green">vert </select><p> Cliquez sur <input type="submit" value="valider"> pour valider. </form> La balise form délimite le formulaire Son attribut method détermine le mode de transmission des paramètres L attribut action précise le programme qui s exécute lors de la validation Balises: form, input (type, name, value), select (name), option (value), Les balises d'un formulaire Exemple: formulaire_test.html 31
32 Un formulaire: comment le gérer en php Formulaires: Récupération des valeurs transmises On écrit un script php dans le fichier d exécution execution.php A chaque paramètre du formulaire transmis est associée dans ce script une variable php qui contient la valeur choisie par l utilisateur. En fait ces variables sont des éléments d un tableau associatif dont le nom dépend de la méthode de transmission choisie: Méthode post => tableau $_POST Méthode get => tableau $_GET Pour le paramètre prenom, la valeur transmise est $_POST["prenom"] Il en est de même pour les paramètres nom, couleur, et même le bouton de soumission si on lui donne un nom. Il peut être pratique de définir localement des variables qui auront le même nom que les paramètres: $prenom = $_POST["prenom"]; $nom = $_POST["nom"]; Puis on peut afficher leur valeur: echo $prenom; Exemple: formulaire_test.html 32
33 Php: Les formulaires, le type image Cas particulier du type image <H1>Formulaire2 </H1> <form method="post" action="execution.php"> <H2>Questionnaire</H2> Votre prénom? <input name="prenom" value="xxx"><p> Cliquez sur <input type="image" name="im1" src="images/bouton.gif"> pour valider. </form> L image remplace le bouton de soumission du formulaire. Les coordonnées du point où l'utilisateur aura cliqué seront : $im1_x et $im1_y Exemple : ~danzart/php/exemples/images_test.php 33
34 Php: Les formulaires, les checkbox Les checkbox: paramètres html, récupération des données sous forme de tableau <form method="post" action="execution3.php3"> <H2>Questionnaire : votre choix</h2> <input type="checkbox" name="fruits[]" value="pomme"> Pommes <input type="checkbox" name="fruits[]" value="poire"> Poires Cliquez sur <input type="submit" value="valider"> pour valider. </form> Le nom du champ de type checkbox prévoit que les valeurs choisies seront stockées dans un tableau dynamique. Seules les valeurs choisies seront transmises sous le nom fruits[] L appel de la fonction php count($fruits) permettra de savoir combien de valeurs sont dans le tableau. Exemple : exemples/checkbox_test.php Source du script 34
35 Votre formulaire de choix de carte formulaire.php validation.php validation.php Partie statique: nom, mail, message, thèmes Hautement dynamique: on affiche les choix de l utilisateur pour que celui-ci vérifie qu ils lui conviennent 35
36 Partie dynamique du formulaire Comment créer un formulaire? formulaire.php Partie dynamique: des images puisées dans un répertoire Ce sont ces images qui serviront dynamiquement à la création des boutons radio de choix d image 36
37 Première étape: préparer le dossier d images Dans votre espace personnel: placez les images de votre choix dans un sous-dossier images assurez-vous que leurs noms respectent les règles suivantes: - noms courts sans espace ni accent - attention aux majuscules/minuscules - donnez les bons droits au dossier d images (755: lecture et exécution pour tous) - donnez les bons droits aux images (644: lecture pour tous) Il faut ensuite modifier votre formulaire pour y intégrer ces images. Serveur de fichiers perso.telecom-paristech.fr ~login - public_html - Fichiers - Dossiers - Etc. - images - index.html - vitrine.html ~login/public_html/index.html 37
38 Php: Les fichiers, les répertoires Un script qui permet de lire le contenu d un dossier /* affichage des entrées d'un répertoire */ $repertoire="images"; $d = dir($repertoire); echo "chemin : $d->path<br>"; while ($entry = $d->read()) echo "$entry<br\n"; $d->close(); Ou $d = opendir($repertoire); while ($entry = readdir($d)) echo "$entry<br\n"; $close($d); On peut utiliser la liste de ces entrées pour créer des liens vers ces fichiers ou répertoires echo "<a href=\"$repertoire/ $entry\">$entry</a><br>\n"; On peut aussi utiliser ces entrées pour afficher des images echo "<img src=\"$repertoire/ $entry\» />$entry<br>\n"; Exemple : exemples/rep_test.php 38
39 Php: Les instructions de boucle Les boucles finies (for), les boucles conditionnelles (while, do while) <?php $n=28; for ($I=1;$I<$n;$I++) { } print("$i,<br>"); for ($I=1;$I<$n;$I++): print("$i,<br>"); endfor;?> <?php $n=28; while ($I<$n) { } print("$i,<br>"); $I=$I+1; while ($I<$n) : print("$i,<br>"); $I=$I+1; endwhile;?> <?php $n=28; do { } print("$i,<br>"); $I=$I+1; while ($I<$n);?> 39
40 Php: Les instructions de boucle, les conditions Comment construire une condition: les opérateurs Opérateurs: de comparaison entre expressions : ==, =, <, >, <=, >= Logiques : not,, &&,, AND, XOR, OR Valeurs logiques par défaut: Entier 0 è false 0 è true Réel 0.0 è false 0.0 è true Chaîne de caractères "" è false "" è true Tableau ou objet Null è false Null è true 40
41 Php: Les instructions de boucle Les instructions de boucle pour tableaux associatifs <?php foreach ($tab as $val) { }?> echo "valeur : $val<br/>\n"; <?php est équivalent à : reset($tab); while (list(,$val)=each($tab)) { }?> echo "valeur : $val<br/>\n"; <?php foreach ($tab as $cle => $val) {// bloc d instructions } echo "clé : $cle<br/>\n"; echo "valeur : $val<br/>\n";?> est équivalent à : <?php reset($tab); while (list($cle,$val)=each($tab)) {// bloc d instructions?> echo "clé : $cle<br/>\n"; echo "valeur : $val<br/>\n";} 41
42 Php: Les instructions conditionnelles Instructions conditionnelles: if, switch // notion de bloc {} if ($a > $b) { echo "a supérieur à b"; } elseif ($a == $b) { echo "a égal à b"; } else { } echo "a inférieur à b"; if ($a > $b): echo "a supérieur à b"; elseif ($a == $b) : else : endif echo "a égal à b"; echo "a inférieur à b"; $jour=date("l"); $mois=date("f"); switch ($mois) { case "January" : ;break; case "February": ;break;.... case "November": ;break; case "December": ;break;} printf(date(" Y ")); switch ($mois) case "January" : ;break;.... case "December": ;break; endswitch 42
43 Le formulaire: parcourir le dossier d images Parcours simple du dossier pour affichage des images // ouverture du repertoire de nom "images» $pointeur=opendir('images'); // boucle qui parcourt le dossier while ($entree = readdir($pointeur)) { // on peut choisir les fichiers a afficher if (($entree = ".") && ($entree = "..")) echo "<img src=\"$repertoire/$entree\" width='25'>"; } // fermeture du repertoire repere par $pointeur closedir($pointeur); 43
44 Le formulaire: parcourir le dossier d images Ajout des boutons de radio Un exemple // ouverture du repertoire de nom "images» $pointeur=opendir('images'); // boucle qui parcourt le dossier while ($entree = readdir($pointeur)) { // on peut choisir les fichiers a afficher if (($entree = ".") && ($entree = "..")) { echo "<img src=\"$repertoire/$entree\" width='25'>"; echo "<input type=\"radio\" value=\"$entree\">"; } } // fermeture du repertoire repere par $pointeur closedir($pointeur); 44
45 Le formulaire: parcourir le dossier d images On n affiche que 4 images par ligne // ouverture du repertoire... $n=0; // on initialise un compteur // boucle qui parcourt le dossier while ($entree = readdir($pointeur)) { // on peut choisir les fichiers a afficher if (($entree = ".") && ($entree = "..")) { $n = $n + 1; // on compte une image de plus if ($n == 5) // la ligne courante est pleine { echo "<br />"; // on passe a la ligne $n = 1; // on reinitialise le compteur a 1 (1 image) } echo "<img src=\"$repertoire/$entree\" width=\"25\">"; echo "<input type=\"radio\" value=\"$entree\" name=\"image\">"; } } // fermeture du repertoire repere par $pointeur... 45
46 Le formulaire de choix de carte modifié formulaire.php validation.php validation.php Maintenant le formulaire est dynamique, il contient autant d images que dans le dossier «images» Le fichier validation prend en compte cette donnée et affichera l image choisie par l utilisateur. Le nom du fichier est dans $image. 46
47 Validation du formulaire: le contrôle validation.php carte.php carte.php La page de validation contient un bouton de contrôle qui envoie l affichage de la carte ainsi générée. La carte est composée dynamiquement à partir des informations envoyées par l utilisateur. 47
48 Validation du formulaire: le bouton de contrôle Le mécanisme de contrôle visuel de la carte ainsi définie Le bouton de contrôle est en fait un formulaire dynamique contenant tous les champs transmis comme données input envoyés en champs cachés (hidden) validation.php <form action="carte.php" method="get"> <input type="hidden" name="nom" value="<?php echo $nom;?>">... <input type="submit" value="contrôler"> </form> 48
49 Validation du formulaire: la carte Constitution de la carte de voeux carte.php La carte de vœux fonctionne exactement comme la validation du formulaire. Seule la présentation des informations change (plus ergonomique) et elle ne présente pas les boutons de confirmation, contrôle ou modification. 49
50 Modifications des informations transmises validation.php formulaire.php formulaire.php La page de validation contient un bouton de contrôle qui renvoie l affichage du formulaire dynamique. Le formulaire dynamique prend en compte les valeurs des paramètres transmises pour les initialiser 50
51 Validation du formulaire: le bouton de modification Le mécanisme de modification des paramètres saisis par l utilisateur Le bouton de modification est, comme le bouton de contrôle, un formulaire dynamique contenant tous les champs transmis comme données input envoyés en champs cachés (hidden) validation.php <form action= "formulaire.php" method="get"> <input type="hidden" name="nom" value="<?php echo $nom;?>">... <input type="submit" value="modifier"> </form> 51
52 Retour sur le formulaire dynamique Initialiser les paramètres du formulaire avec les informations transmises 1) On récupère les valeurs transmises grâce au tableau $_GET ou $_POST selon la méthode utilisée. Par exemple: $nom=$_get["nom"]; 2) Pour chaque champ de type input, on ajoute un attribut value avec la valeur dynamique. Par exemple, pour le paramètre nom, on indique en plus: value="<?php echo $nom;?>" formulaire.php 3) Pour l image, il faut inclure un test dans la boucle d affichage. 4) La validation du formulaire ne change pas. 52
53 Le formulaire: initialiser l image choisie Pour chaque image du répertoire, on teste si c est le nom d image transmise ou non // ouverture du repertoire... $n=0; // on initialise un compteur // boucle qui parcourt le dossier while ($entree = readdir($pointeur)) { // on peut choisir les fichiers a afficher if (($entree = ".") && ($entree = "..")) { // gestion des images dans les lignes echo "<img src=\"$repertoire/$entree\" width=\"25\">"; if ($entree == $image) // c est l image transmise echo "<input type=\"radio\" checked value=\"$entree\" name=\"image\">"; else echo "<input type=\"radio\" value=\"$entree\" name=\"image\">"; } } // fermeture du repertoire repere par $pointeur... 53
54 Le formulaire: initialiser le thème choisi Dans les choix possibles du menu, on rajoute le choix de l utilisateur <select name="theme"> <option value="<?php echo $value;?>" selected ><?php echo $value;?></option> <option value="bon anniversaire">bon anniversaire</option> <option value="bravo ">Bravo </option> <option value="joyeuses fêtes">joyeuses fêtes</option> </select> 54
55 Confirmation du formulaire: le bouton de confirmation Le mécanisme de validation définitive de la carte ainsi définie Le bouton de confirmation est, comme le bouton de contrôle, un formulaire dynamique contenant tous les champs transmis comme données input envoyés en champs cachés (hidden) execution.php <form action= "execution.php" method="get"> <input type="hidden" name="nom" value="<?php echo $nom;?>">... <input type="submit" value="confirmation"> </form> 55
56 Confirmation du formulaire: le bouton de confirmation Le mécanisme de validation définitive de la carte ainsi définie execution.php A la confirmation du formulaire, le script php qui s exécute aura 3 fonctions importantes: 1) Enregistrer les caractéristiques de la carte dans une base de données. 2) Envoyer un au destinataire afin qu il puisse aller visualiser la carte qui a été conçue pour lui. Le contenu de ce message va dépendre de l endroit où les informations sont stockées dans la BDD. 3) Indiquer à l utilisateur que tout s est bien passé. C est la partie la plus simple puisqu elle consiste simplement à afficher dynamiquement une page de confirmation. 56
57 Pourquoi utiliser une base de données? Annie Danzart 57
58 Intérêt d une base de données Base de Données (Système de Gestion de Bases de Données): - ensemble de données géré par un programme informatique. - les données qui ont la même structure (nom; prénom, âge, adresse, profession) sont rangées dans un même tableau. - toutes les données d une même colonne sont du même type (texte, nombre entier, ). - un tel tableau est appelé une table En général, un SGBD est capable de gérer simultanément plusieurs bases de données. Dans une table, on trouve les enregistrements (lignes) qui constituent les informations stockées. Le nombre et la nature des colonnes (champs) constitue la structuration des informations. Nom Prénom Sexe Adresse Ville Code postal Danzart Annie F 23 rue des oiseaux Champs Trimouille Stéphane M 43 rue des Ormes Grenoble Choltesse Fabien M 33 place des Italiens Nancy
59 Intérêt d une base de données Une base de données est en principe stockée sur un réseau (internet) qui permet d y accéder de plusieurs différents avec bien souvent des interfaces différentes (client, gestionnaire, administrateur, système dédié, web, ). Base de données: données brutes Administrateur Système dédié Serveur: SGBD Visiteur 2 Navigateur web Gestionnaire Système dédié Visiteur 1 Navigateur web 59
60 Bases de données relationnelles Base de données relationnelle (SGBDR): - Structuration des données sous forme de tables - Définition précise (type, valeur par défaut) du modèle de données à l aide d un schéma conceptuel. - Le système est capable de gérer plusieurs bases de données, chaque base étant constituée de plusieurs tables. - Les tables seront reliées à l aide de relations. - Index unique qui permet au système d accélérer les opérations de recherche et de tri. - Utilisation de clés pour réaliser les relations entre tables afin de ne pas dupliquer inutilement les informations. - Ces clés sont à valeur unique pour assurer qu il n y aura pas de doublon dans les enregistrements. - Langage normalisé d interrogation SQL (Structured Query Langage). Exemple de schéma conceptuel 60
61 Bases de données relationnelles: exemple Tables Tables in magasin_test clients commandes produits Structure de la table clients: Field Type Null Key Default Extra C_ID int(11) PRI 0 auto_increment C_nom text YES NULL C_prenom text YES NULL C_numero int(11) YES NULL C_ text YES NULL Structure de la table commandes : Field Type Null Key Default Extra COMMANDE_ID int(11) PRI 0 auto_increment C_ID int(11) YES NULL P_ID int(11) YES NULL COMMANDE_nombre int(11) YES NULL COMMANDE_date text YES NULL
62 Mysql : un SGBD relationnel l Logiciel libre de droits (license GPL) actuellement version 5, MariaDB, toujours en évolution l l l l l Système de Gestion de Bases de Données Relationnelles: nombreuses fonctionnalités SGBDR Base de données mysql en tant que telle (bases gérées, utilisateurs autorisés) Langage de manipulation de bases de données (SQL) Comment ça marche? Architecture client-serveur Serveur mysqld, commande/programme mysql l Fonctions d'accès intégrées dans de nombreux langages 62
63 Une base de données importante: mysql user : table des utilisateurs référencés db : table des bases existantes host : table des droits d'accès par hôte host/user/password La table user: gère les autorisations d accès système droits utilisateur / administrateur dans mysql La table db: permet de gérer les droits d accès aux différentes bases (lecture, modification,..) host/db/user/select/insert/update/delete/alter/drop/create droits d'accès des utilisateurs pour chaque base La table host: précise quelles sont les machines qui permettent d accéder au système host/db/select/insert/update/delete/alter/drop/create droits d accès des hôtes pour chaque base dans mysql 63
64 Le langage mysql Langage de manipulation de bases de données ð Conforme au standard SQL (Structured Query Langage) show databases; create database carte_test; ; drop database autre_test; use carte_test; ; montrer la liste des bases présentes créer la base carte_test supprimer la base autre_test utiliser la base carte_test Création de la table cartes après avoir choisi la base carte_test create table cartes( C_ID int default '0' NOT NULL auto_increment, C_nom_dest text, C_nom_exp text, C_mail_dest text, C_mail_exp text, I_photo text, primary key (C_ID) ); Opérations sur les tables d une base (quelles tables?, structure d une table, modification, suppression) show tables ; show columns from cartes ; alter table cartes change C_dest C_destinataire text ; drop table cartes ; 64
65 Le langage mysql Langage de manipulation de bases de données insert into cartes (C_nom_dest, C_nom_exp, I_photo) values ("Toto","danzart","marguerites.jpg"); update cartes set C_nom_dest= "Moissinac" where C_ID=LAST_INSERT_ID(); select * from cartes order by C_ID desc; select * from cartes where C_nom_exp like %danzart'; delete from cartes where C_nom_dest like '%toto'; update cartes set C_nom_exp="Danzart" where C_nom_exp = %danzart'; 65
66 Architecture client - serveur 1) Client mysql : requêtes sql brutes pas toujours accessible 2) Client phpmyadmin : ( outil d'administration de mysql plus convivial écrit en php, accessible sur le web pas de contrôle de cohérence des données Simple exécution de commandes SQL 3) Clients personnalisés : adaptés à un besoin particulier chargés en plus d'assurer la cohérence grâce à php 66
67 Architecture client - serveur Client mysql de base fourni avec l'environnement > mysql -h mysql.tp.enst.fr -u user -p -h : hôte ( adresse IP ) -u : utilisateur ( accès spécifique ) -p : mot de passe ( défini au moment de la création de l utilisateur sera transmis après validation de la commande mysql ) Après validation de la commande, une session est ouverte qui permet de frapper directement des commandes mysql Autres outils faisant partie de la distribution : mysqldump, mysqladmin, mysqlimport 67
68 Architecture client - serveur Client phpmyadmin: interface web fournie avec l'environnement Quelques exercices de manipulation de la base de données carte - Création d une table avec une clé primaire, un champ de texte et un champ numérique - Insertion d enregistrements - Faire une requête conditionnelle - Faire des requêtes automatiques (boutons) et voir la requête sql exécutée 68
69 Comment ça marche? Poste client firefox Serveur Apache httpd mod_php5 Serveur de fichiers perso.telecom-paristech.fr Serveur Mysql mysql.infres.enst.fr mysqld bases ~danzart/public_html/exemple2.php 69
70 Clients personnalisés en php Fonctions php d accès à Mysql $connexion = mysql_pconnect("mysql.infres.enst.fr:3307", "user", "motdepasse"); Le login et le mot de passe sont exprimés "en clair" dans le script : -> les stocker dans un fichier difficile d'accès (à inclure dans les pages) "connexion_inc.php" -> prévoir plusieurs modes d'accès: PUBLIC, utilisateur, administrateur mysql_close($connexion); mysql_create_db("cartes_test",$connexion); $mysql_result=mysql_list_dbs($connexion); mysql_drop_db("cartes_test",$connexion); 70
71 Interface personnalisée: insertion des codes de connexion On place les définitions des codes de connexion dans un fichier à part connexion_inc.php <?php $login="mm "; $pass="media "; $db="carte "; $hote="mysql.infres.enst.fr:3307"; $connexion=mysql_pconnect($hote,$login,$pass); mysql_select_db($db,$connexion);?> On inclut ce fichier dans le script qui en a besoin execution.php <?php include("connexion_inc.php");?> 71
72 Clients personnalisés en php Fonctions php d accès à Mysql <?php $connexion = mysql_pconnect("mysql.infres.enst.fr:3307", "user", "motdepasse"); mysql_select_db("carte27",$connexion); $query="create table..."; mysql_query($query,$connexion); $query = "select * from cartes;"; $resultat = mysql_query($query,$connexion); $nb = mysql_num_rows($resultat,$connexion);?> 72
73 Clients personnalisés en php Exploitation des résultats d une requête de sélection <?php // ouverture de la connexion : mysql_connect() ou mysql_pconnect() $connexion or die("pb de connexion"); mysql_select_db("carte3"); // choix de la base de données // prendre tous les champs de la table cartes de la base carte3 $query = "select * from cartes ;" ; echo $query; // pour afficher le texte de la requête (mise au point) $mysql_result ; if ($mysql_result == FALSE) {echo "Pas de solution"; exit; } else // prendre tous les enregistrements trouvés et les afficher?> 73
74 Clients personnalisés en php Exploitation des résultats d une requête de sélection <?php // ouverture de la connexion : mysql_connect() ou mysql_pconnect() // choix de la base de données // prendre tous les champs de la table cartes de la base carte3.. // prendre chaque rangée while ($ligne = mysql_fetch_array($mysql_result)) // ligne est un tableau associatif dont les indices sont les // champs retenus pour la requête et les valeurs celles trouvées // dans la base de données pour ces champs { // mettre en forme les résultats en html, echo $ligne["c_nom_dest"];?> } 74
75 Clients personnalisés en php Fonctions php d accès à Mysql int mysql_query($requete [,$connexion]), int mysql_insert_id(): pour voir le numéro du dernier enregistrement inséré int mysql_num_rows(): pour voir s'il y a des résultats string mysql_error(), int mysql_errno(): pour contrôler les erreurs si une requête n'a pas donné de résultat 75
76 Confirmation du formulaire: insertion dans Mysql Le mécanisme de validation définitive de la carte commence par execution.php 1) Enregistrer les caractéristiques de la carte dans une base de données. Pour cela, il faut construire dynamiquement la requête sql d insertion d un nouvel enregistrement dans la base de données cartes. 76
77 Confirmation du formulaire: insertion dans Mysql Structure de la table des cartes execution.php CREATE TABLE cartes ( C_ID int(11) NOT NULL AUTO_INCREMENT, C_nom_dest text, C_nom_exp text, C_mail_dest text, C_mail_exp text, C_texte text, C_menu tinytext NOT NULL, I_photo tinytext NOT NULL, C_date date NOT NULL, PRIMARY KEY (C_ID) ); 77
78 Confirmation du formulaire: insertion dans Mysql Insérer un enregistrement dans la table cartes execution.php INSERT INTO cartes (C_nom_dest, C_nom_exp, C_mail_dest, C_mail_exp, C_texte, C_menu, I_photo) VALUES ('Annie', 'Philippe', 'Bonjour', 'Bravo', 'marguerites.jpg'); Le champ C_ID n est pas mentionné, il s incrémentera automatiquement. 78
79 Confirmation du formulaire: insertion dans Mysql Création dynamique de la commande d insertion INSERT INTO cartes (C_nom_dest, C_nom_exp, C_mail_dest, C_mail_exp, C_texte, C_menu, I_photo) VALUES ('$nomdest', '$nomexp', '$maildest', '$mailexp', '$texte', '$menu', '$image'); Il faut placer cette commande dans une chaîne php pour qu elle soit ensuite envoyée à la fonction mysql_query(). Il faudra échapper (\) les apostrophes. $query="insert INTO cartes (C_nom_dest, C_nom_exp, C_mail_dest, C_mail_exp, C_texte, C_menu, I_photo) VALUES ('$nomdest', '$nomexp', '$maildes', '$mailexp', '$texte', '$menu', '$image');"; Il reste enfin à exécuter cette commande d insertion: $resultat=mysql_query($query,$connexion); 79
80 Confirmation du formulaire: insertion dans Mysql Création dynamique de la commande d insertion En principe, si la commande d insertion a été correctement constituée, celle-ci s effectuera normalement. Si ce n est pas le cas, on peut ajouter une instruction d affichage de celle-ci: echo $query; On peut alors effectuer un contrôle visuel de cette commande. Si l erreur n est pas probante, on pourra, à l aide d un copier-coller dans phpmyadmin, effectuer celle-ci dans cet environnement et voir quel est son diagnostic. Lorsqu on sait que le mécanisme fonctionne bien, on récupère le numéro d enregistrement ainsi créé. $n=mysql_insert_id(); Il nous servira pour l envoi de mail et l affichage de la carte repérée à l aide de ce numéro. 80
81 Rappel: Schéma de principe du système formulaire.php validation.php execution.php (inclut connexion_inc.php) <form > </form> validation.php Modification <form > </form> execution.php insert into mail recapitulatif.php carte.php select * from cartes ; select * from cartes where C_ID=3 ; Mail : 81
82 Confirmation du formulaire: envoi de mail Le mécanisme de validation définitive de la carte continue par execution.php 2) Envoyer un au destinataire. On utilise la fonction php d envoi de mail: mail($adresse_dest,$sujet,$texte, "From: $adresse_exp\nreplyto: $adresse_exp"); Il faut donc définir les variables ainsi utilisées. Pour les adresses, il suffit reprendre ce qui a été transmis. Pour les autres, il va falloir les constituer. Par exemple: $sujet="envoi d une carte postale"; $message="bonjour $nom_dest,... "; 82
83 Fonction php d envoi de mail Définition du message qui sera transmis en html $message="bonjour $nom_dest, une carte postale vous est envoyée. Vous pouvez la consulter à l adresse: $nb. <br /> signé $nom_exp"; Le message peut être bien plus complexe et contenir des images, balises html interprétées. Cette fois-ci, le script php n est pas l exécution d un formulaire. Il peut néanmoins utiliser l envoi d un paramètre grâce à la méthode GET qui est ici explicite avec l utilisation du? suivi du nom du paramètre transmis et de la valeur qui lui est attribuée. Il faudra ensuite modifier légèrement votre script carte.php pour prendre en compte cette nouvelle donnée. 83
84 Fonction php d envoi de mail Envoi d un transmis en html $sujet = "Sujet de l' "; $message = "Bonjour,<br /> <strong>ceci est un message html envoyé grâce à php.</strong><br />"; $destinataire = "destinataire@domaine.com"; $headers = "From: \"expediteur moi\"<moi@domaine.com>\n"; $headers.= "Reply-To: moi@domaine.com\n"; $headers.= "Content-Type: text/html; charset=\"iso \""; if (mail($destinataire,$sujet,$message,$headers)) { echo "L' a bien été envoyé."; } else { echo "Une erreur c'est produite lors de l'envoi de l' ."; } 84
85 Confirmation du formulaire: affichage de la carte Le mécanisme de validation définitive de la carte se termine par execution.php 3) La prise en compte du stockage sur base de données des caractéristiques de la carte. Le mail d information au destinataire contiendra entre-autres un lien vers: carte.php?n=3 si l enregistrement concerné est au numéro 3. Pour l exécution du script, il faut donc aller chercher cet enregistrement à l aide d une commande SQL et récupérer ces caractéristiques. 85
86 Confirmation du formulaire: affichage de la carte L affichage de la carte doit pouvoir se faire dans deux contextes différents: 1) Affichage au moment de la création de la carte. C est ce que vous avez déjà écrit. 2) Affichage par l utilisateur final. carte.php La présentation doit être la même. Seule va changer la façon dont on récupère ses caractéristiques. Il nous faut donc déterminer dans quel cas nous nous trouvons. 1) Soit c est au moment de la création, la variable $n ne doit alors pas pouvoir être accessible. On continue alors à fonctionner comme avant. 2) Soit c est par l utilisateur final, il faudra alors exécuter la commande sql: $query="select * from cartes where C_ID=$n"; 86
87 Confirmation du formulaire: affichage de la carte <?php $n=$_get["n"]; if ($n == 0) // cas du simple contrôle { // pas de changement dans l initialisation des paramètres $nom_dest=$_get["nom_dest"]; // etc pour tous les champs } else // cas de l utilisateur final { include("connexion_inc.php"); $query="select * from cartes where C_ID=$n"; $resultat=mysql_query($query,$connexion); $ligne=mysql_fetch_array($resultat); $nom_dest=$ligne["c_nom_dest"]; $nom_exp=$ligne["c_nom_exp"]; $mail_dest=$ligne["c_mail_dest"]; // etc pour tous les champs } carte.php // Le reste qui est l affichage de la carte proprement dit ne change pas.?> 87
88 Confirmation du formulaire: affichage de la carte Un plus: Dès l instant qu on a les informations de constitution de la carte, on peut proposer au destinataire de la carte de répondre tout de suite à l expéditeur en lui donnant l adresse du formulaire de création pré-rempli avec les noms et les mails échangés (le destinataire devient l expéditeur et réciproquement). carte.php Cela se fera au moment de l affichage de la carte avec un bouton de formulaire dynamique à champs cachés qui envoie le script formulaire.php partiellement pré-rempli (les messages et la photo seront laissés au choix) 88
89 Confirmation du formulaire: afficher l ensemble Il peut être intéressant d avoir accès à l ensemble des cartes de vœux qui ont été constituées pour les visualiser et par exemple éviter d envoyer plusieurs cartes à la même personne Dans ce cas, après confirmation de création de la carte, on peut introduire un lien vers un script qui fera le travail. Ce récapitulatif peut aussi être disponible dans le formulaire du départ, ou dans la vitrine. recapitulatif.php carte.php?n=9 carte.php?n=10 carte.php?n=12 89
90 Confirmation du formulaire: afficher l ensemble <?php include("connexion_inc.php"); $query="select C_ID,C_nom_dest from cartes;"; // dans toutes les cartes $resultat=mysql_query($query,connexion); recapitulatif.php echo "<table>"; // debut du tableau echo "<tr><th>numéro</th><th>destinataire</th></tr>"; while (($ligne=mysql_fetch_array($resultat))) { // pour chaque carte trouvée $n=$ligne["c_id"]; $nom_dest=$ligne["c_nom_dest"]; echo "<tr>"; echo "<td>$n</td>"; echo "<td>$nom_dest</td>"; echo "<td><a href= carte.php?n=$n >voir</a></td>"; echo "<td><a href= supprimer.php?n=$n >retirer</a></td>"; echo "</tr>"; }?> echo "</table>"; // fin du tableau On peut ensuite ajouter un lien vers le formulaire de création de cartes de voeux. 90
91 Suppression d une carte Pour effectuer une suppression, il suffit d effectuer une connexion à la base de données et d exécuter la commande de suppression d une carte dont on connaît le numéro. Remarque: il ne sera désormais plus possible de l afficher Attention Cette suppression s effectue sans aucun contrôle. Pour le bien, il ne faudrait la faire qu après une confirmation de suppression définitive supprimer.php <?php $n=$_get["n"]; include("connexion_inc.php"); $query="delete * from cartes where C_ID=$n"; $resultat=mysql_query($query,connexion);?> 91
92 Pour aller plus loin Dans le cas d une base de données dont la structure est plus complexe, toutes les opérations de consultation, ajout, suppression se complexifient également. Le formulaire de création puisera les images dans la base de données et non plus dans le répertoire physique. Il transmettra le numéro d enregistrement de l image et non le nom du fichier. schéma conceptuel de la base avec 2 tables Toutes les opérations se feront en utilisant ce numéro (ajout d une carte par exemple). Pour l affichage de la carte, il faudra aller chercher les données dans deux tables différentes (jointure entre tables) select * from images,cartes where images.i_id=cartes.i_id; 92
93 Examen «Sites web dynamiques avec PHP et Mysql» Évaluation de votre travail : (rendre votre travail en fin de séance obligatoirement et une seconde version le 7 janvier au plus tard) Carte de vœux dynamique php 1) M envoyer une carte de vœux (danzart@telecom-paristech.fr) par envoi automatique. Le mail doit contenir si possible l url à cliquer pour afficher la carte. 2) M envoyer par les noms des scripts que vous avez écrits avec l endroit où ils se trouvent (dossier se trouvant dans le public_html) Merci de votre attention 93
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étailCREATION 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étailPHP 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étailPHP 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étailStockage 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étailPratique 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étailPHP 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étailMysql 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étailINTRODUCTION 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étailLangage 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étailIntroduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)
Introduction PHP = Personal Home Pages ou PHP Hypertext Preprocessor Langage de script interprété (non compilé) Plan Avantages Fonctionnement interne Bases du langage Formulaires Envoi d un email Avantages
Plus en détailModé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étailPrincipales 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étailI. 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étailL 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étailSé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étailProgrammation 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étailTP JAVASCRIPT OMI4 TP5 SRC1 2011-2012
TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE
Plus en détailPHP et les Bases de données - Généralités
PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront
Plus en détailCOMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2
SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES
Plus en détailPHP 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étailLa 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étailOlivier Mondet http://unidentified-one.net
T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage
Plus en détailSYSTÈ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étailManuel d'installation
CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001
Plus en détailModule BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Plus en détailLes 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étailManuel d utilisation du module Liste de cadeaux PRO par Alize Web
Manuel d utilisation du module Liste de cadeaux PRO par Alize Web INSTALLER ET CONFIGURER LE MODULE (BACK OFFICE) 2 Réglages des performances 2 Télécharger le module 3 Installer le module 4 Configurer
Plus en détailINTERNET 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étailBases de données relationnelles
Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses
Plus en détailLe Langage De Description De Données(LDD)
Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,
Plus en détailIntroduction à 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étailLangage SQL : créer et interroger une base
Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,
Plus en détailCréation de formulaires interactifs
SESSION 16 Création de formulaires interactifs Programme de la session Lancer un sondage en utilisant divers éléments d'entrée de formulaire Traiter les entrées utilisateur Activer un script à partir d'un
Plus en détailSQL Historique 1982 1986 1992
SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse
Plus en détail1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
Plus en détailFormulaires et Compteurs
Formulaires et Compteurs Création de formulaires et de compteurs avec extensions FrontPage ou ASP. INFORMATIONS CONNEXES Le but du présent manuel est de permettre à une personne familière d Internet de
Plus en détailFormulaire pour envoyer un mail
Formulaire pour envoyer un mail AVERTISSEMENT : Ce tuto est une compilation de plusieurs sources trouvées sur internet, dont les références sont données à la fin de cet article. Le but de ce tutoriel n'est
Plus en détailPDO : 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étailCré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étailJava 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étailGestion de stock pour un magasin
Département d Informatique Université de Fribourg, Suisse http://diuf.unifr.ch Gestion de stock pour un magasin Stock online utilise ASP/MS-Access DO Thi Tra My No étudiant : 05-333-750 Travail de séminaire
Plus en détailDevenez 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étailHé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étailDossier 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étailManuel du composant CKForms Version 1.3.2
Manuel du composant CKForms Version 1.3.2 Ce manuel vous présente les principales fonctionnalités du composant CKForms y compris le module et le plug-in CKForms 1.3 est la nouvelle version du composant
Plus en détailOpenPaaS 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étailBases de Données relationnelles et leurs systèmes de Gestion
III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation
Plus en détailNFA 008. Introduction à NoSQL et MongoDB 25/05/2013
NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée
Plus en détailArchitectures web/bases de données
Architectures web/bases de données I - Page web simple : HTML statique Le code HTML est le langage de base pour concevoir des pages destinées à être publiées sur le réseau Internet ou intranet. Ce n'est
Plus en détailThè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étailInstallation et Mise en œuvre de MySQL
T-GSI STAGE RENOVATION - SQL.Chapitre 2 - Installation et Mise en œuvre de MySQL Olivier Mondet http://unidentified-one.net A. Pourquoi choisir MySQL? A.1. MySQL, très controversé La base de données MySQL
Plus en détailarcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr
arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole : www.arcopole.fr Auteur du document : ESRI France Version de la documentation : 1.2.0.0 Date de dernière
Plus en détailQuelques 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étailCREATION d UN SITE WEB (INTRODUCTION)
CREATION d UN SITE WEB (INTRODUCTION) Environnement : World Wide Web : ordinateurs interconnectés pour l échange d informations ( de données) Langages : HTML (HyperText Markup Language) : langages pour
Plus en détail1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5
1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases
Plus en détailTous 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étailDOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin
DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL
Plus en détail1. 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étailAttaques 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étailComment développer et intégrer un module à PhpMyLab?
Comment développer et intégrer un module à PhpMyLab? La structure du fichier Afin de conserver une homogénéité et une cohérence entre chaque module, une structure commune est utilisée pour chacun des modules
Plus en détailBTS 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étailComment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org
Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Diffusé par Le Projet Documentation OpenOffice.org OpenOffice.org Documentation Project How-To Table des matières 1. Introduction...3
Plus en détailJérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données
Base de Données Cours Introductif Base de Données Quelques chiffres Évolution annuelle moyenne 2004/2000 15% +20% 12% 5% 0.5% 2000 2004 L3G IA SG mono poste : Part de marché 5% 5% 10% Paradox 65% SG 15%
Plus en détailContactForm 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étailPHP. 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étailDans 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étailGestion 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étailPlan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions
Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]
Plus en détailApplication 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étailGuide d utilisation. Version 1.1
Guide d utilisation Version 1.1 Guide d utilisation Version 1.1 OBJECTIF LUNE Inc. 2030 boulevard Pie-IX, bureau 500 Montréal (QC) Canada H1V 2C8 +1 514-875-5863 sales@ca.objectiflune.com http://captureonthego.objectiflune.com
Plus en détailTable des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?
Avant-propos... V CHAPITRE 1 Scripting Windows, pour quoi faire?... 1 Dans quel contexte?.................................................. 1 La mauvaise réputation............................................
Plus en détailcedric.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étailPHP 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étailclef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE
Cas Neptune hôtel Base de données et langage SQL Propriété Intitulé long Formation concernée Matière Notions Transversalité Présentation Description Neptune Hôtel. L interrogation d une base de données
Plus en détailLes bases de données
Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive
Plus en détailTechniques de Programmation pour Internet
Séance 7 Transactions par CGI Année Spéciale Informatique ENSIMAG 2002-2003 James L. Crowley Anullé Le but de l'exercice est d'introduire un certain nombre de constructions en PERL utiles pour la programmation
Plus en détailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailINFORMATIQUE & 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étailPartie 0 : Gestion des tablespace et des utilisateurs... 3
Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à
Plus en détailInitiation à html et à la création d'un site web
Initiation à html et à la création d'un site web Introduction : Concevoir un site web consiste à définir : - l'emplacement où ce site sera hébergé - à qui ce site s'adresse - le design des pages qui le
Plus en détail1. LA GESTION DES BASES DE DONNEES RELATIONNELLES
Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de
Plus en détailISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL
ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé
Plus en détailCréer et partager des fichiers
Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailRÉALISATION D UN SITE DE RENCONTRE
RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD
Plus en détailLe langage SQL (première partie) c Olivier Caron
Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)
Plus en détailTP Contraintes - Triggers
TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution
Plus en détailBases de données élémentaires Maude Manouvrier
Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données
Plus en détailFormation. Module WEB 4.1. Support de cours
Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,
Plus en détailVulné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étailModélisation et Gestion des bases de données avec mysql workbench
Modélisation et Gestion des bases de données avec mysql workbench par novembre 2011 Table des matières 1 Installation 3 1.1 Ecran de chargement 3 1.2 Page d accueil 3 2 Réalisation d une base de données
Plus en détail1 Position du problème
Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo
Plus en détailwww.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étailCréation et Gestion des tables
Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5
Plus en détail