Web dynamique avec PHP et MySQL

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

Download "Web dynamique avec PHP et MySQL"

Transcription

1 Web dynamique avec PHP et MySQL Denis MONASSE Lycée Louis le Grand 6 mai Pages Web dynamiques 1.1 Quelques rappels sur les pages Web Une page Web est un fichier qui est envoyé par un serveur à une machine cliente, le plus souvent à la requête de celle-ci. Ce fichier est écrit dans un langage de présentation de page, en général HTML ou sa version plus rigoureuse appelée XHTML (basée sur XML). Ce langage utilise un système de balises (comme le fait TEX) pour décrire comment la page peut être affichée sur la machine cliente. Il revient ensuite à la machine cliente, par l intermédiaire du navigateur Web, d interprêter le fichier HTML pour procéder à l affichage de la page. Cet affichage peut largement dépendre du navigateur utilisé, du système d exploitation, mais aussi de la configuration de la machine cliente (taille de l écran, nombre de couleurs affichables, polices de caractères disponibles). Une page Web entièrement écrite en HTML est par essence même un objet statique : telle elle est envoyée par le serveur, telle elle est affichée par la machine cliente sans aucune espèce d interactivité. Il est vite apparu que cette absence de caractère dynamique nuisait fortement à l utilité du Web. Un des premiers enrichissements apportés a été l utilisation des formulaires : le client peut envoyer par l intermédiaire de ceux-ci des données au serveur (objet commandé, nom, adresse, téléphone, numéro de carte bancaire) soit en cliquant dans des menus, sur des boutons ou des cases à cocher, soit en remplissant des champs de textes. Ces formulaires ont été directement intégrés au langage HTML ; nous y reviendrons lors de la présentation de PHP. L étape suivante a été d introduire la possibilité de mêler au code HTML un script écrit dans un langage de programmation. Le langage couramment utilisé est désormais JavaScript. Ce script est alors interprété par la machine cliente (à condition bien entendu que le navigateur Web dispose de l interpréteur voulu et que l utilisateur ait autorisé l utilisation des scripts). Ces scripts peuvent interagir avec les évènements déclenchés par l utilisateur (ouverture ou fermeture de page, survol d images, clics dans la fenêtre affichée, appuis sur une touche du clavier, envois de formulaire) pour modifier dans une faible mesure la page affichée (une image peut être remplacée par une autre, un texte peut être modifié, l envoi d un formulaire incorrect peut être refusé, une fenêtre d alerte ou de dialogue peut être affichée) ou pour remplacer la page affichée par une autre. L introduction des formulaires et des scripts introduit un certain caractère dynamique à la page Web, mais, sauf à introduire des communications incessantes entre le serveur et le client, ce dynamisme est limité par le fait que le code envoyé par le serveur est figé et que c est la machine cliente qui interprête ce code sans intervention du serveur. De plus, l introduction de JavaScript a jeté une certaine pagaille sur le Web, car il n y a pas un JavaScript, mais plusieurs langages JavaScript, non totalement compatibles entre eux, ce qui oblige l auteur de la page HTML a prévoir les différents comportements possibles suivant le navigateur et le système d exploitation de la machine cliente. Une autre étape a été l introduction par Sun Microsystems du langage Java et surtout des applets Java, véritables applications destinées à être exécutées dans la fenêtre du navigateur de la machine cliente et dont le code est envoyé à la demande par le serveur. Ici encore, le but est partiellement atteint : si les applets Java sont beaucoup plus puissantes et plus rapides que les scripts JavaScript (soulignons qu il n y a aucun lien véritable entre les deux langages de programmation, sinon quelques similitudes de syntaxe dûes à leur parenté avec le couple C/C++ et le fait que les deux langages soient orientés objet), le code envoyé par le serveur est toujours figé et entièrement interprèté par la machine cliente. De plus les applets sont relativement volumineuses et demandent la présence sur la machine cliente d une machine virtuelle Java d une version compatible avec le code de l applet (ce qui n est pas toujours une mince affaire, même les machines Java dûes à Sun ne sont souvent pas compatibles entre elles, ni dans le sens descendant, ni dans le sens ascendant). Pour cette raison, si Java a pris son essor en tant que langage de programmation à part entière 1

2 présentant l avantage de construire des applications tournant à peu près sous n importe quel système d exploitation, les applets n ont pas apporté une réponse convaincante aux besoins de Web interactif (d autres outils Java comme les servlets essayent à l heure actuelle d imposer Java comme outil incontournable du World Wide Web, l avenir montrera si le but est atteint). 1.2 Le langage PHP Il est donc apparu que la bonne solution était de complêter le système client-serveur par un langage de programmation côté serveur pour lui permettre de créer à la demande des pages Web qui seront envoyées au client, ces pages devant bien entendu être fournies sous forme de fichier HTML pour des raisons évidentes de compatibilité avec les navigateurs existants. A priori, n importe quel langage de programmation compatible avec le système d exploitation du serveur pouvait faire l affaire, mais un certain nombre de contraintes sont vite apparues : le langage devait être capable d interagir facilement avec HTML, en particulier il était souhaitable de pouvoir mêler du code HTML pour les parties statiques du document avec du code dans le langage choisi pour la partie dynamique, d où le choix d un langage de script inclus dans le code HTML de la page stockée sur le serveur (et donc nécessairement d un langage interprêté) le langage devait être proche des langages de scripts déjà utilisés de manière courante (ici le choix de Perl s est rapidement imposé car c était en général des scripts Perl qui étaient chargés, pour des raisons évidentes, de traiter les formulaires envoyés au serveur par les clients) il devait être capable d interagir de manière simple avec le système de communications client-serveur, tout en étant suffisamment riche au départ pour éviter aux utilisateurs de réinventer la roue sans arrêt (manipulation de tableaux, de chaînes de caractères, traitement d images, création de fichiers PDF, etc.) il devait être suffisamment rapide pour permettre la création de pages Web à la volée, sans trop de ralentissement de la navigation il devait être à la fois sûr (sécurisé comme diraient nos journalistes correspondants de guerre), largement disponible et donc gratuit. La première version de PHP fut développée en 1995 par Ramus Lerdorf sous la forme d un ensemble de scripts Perl mis gratuitement à la disposition de la communauté (le terme Open Source ne date que de 1998) sous le nom de PHP/FI ; le sigle PHP était à l époque une abbréviation de Personal Home Pages dans la mesure où Lerdorf utilisait essentiellement ses scripts pour compter le nombre de visiteurs de ses pages personnelles. En 1996, Lerdorf transformait le code Perl en code C et ajoutait le traitement des formulaires. En 1998, Zeev Suraski et Andi Gutmans réécrivaient complêtement le code de PHP pour passer outre aux limitations qu ils rencontraient et créaient le Zend Engine qui est le moteur de PHP. Depuis, plusieurs versions de PHP sont sorties, la dernière en date portant le numéro 4, connue sous le nom de PHP Les bases de données La notion de base de données relationnelle date des années Le docteur E.F.Codd était un chercheur chez IBM et, en tant que mathématicien, il était tout fait sceptique sur les bases de données qu il manipulait quotidiennement : incohérences, redondances, difficultés de mises à jour. Il travailla sur le problème et publia en 1970 un article intitulé A relational model of data for large shared databanks, article qui reste encore la référence en la matière. Ce travail allait faire la fortune d un programmeur, Larry Ellison, qui entreprit de mettre en oeuvre les idées du Dr Codd à travers le projet Oracle, puis la société Oracle, et le langage d interrogation SQL. Depuis tous les grands projets de gestion de base de base de données se fondent sur ces mêmes idées et sur un langage d interrogation dont la syntaxe est proche de SQL. On exige en général les caractéristiques suivantes d un gestionnaire de bases de données : efficacité des accès aux données (insertion, suppression, modification, recherche) partage des données : plusieurs utilisateurs doivent pouvoir accéder simultanément à la base et c est le gestionnaire qui assure les mises à jour concurrentes cohérence et intégrité des données : préserver des mises à jour erronées redondance controlée des données : les mêmes informations se trouvant à divers emplacements dans la base doivent rester équivalentes sécurité des données : récupération des données après une panne système par exemple Bien entendu, Oracle répond à toutes ces exigence. 2

3 Malheureusement, Oracle et SQL ne sont en rien du domaine public et l utilisation de bases de données Oracle nécessite, outre des capacités de traitement et de stockage respectables, l investissement de plusieurs dizaines voire centaines de milliers de dollars (ou euros). Or les bases de données deviennent une partie incontournable du Web. Tout site conséquent doit disposer de données à mettre à la disposition de l utilisateur à la demande, sous une forme adéquate aux demandes du client, doit posséder un forum, une page questions-réponses, etc. Il faut pouvoir également faire des recherches soit dans le site, soit dans le Web tout entier. Il est donc nécessaire de pouvoir adjoindre à tout site de manière simple une ou plusieurs bases de données, faciles à gérer pour le gestionnaire du site, faciles à utiliser pour le client, avec si possible un gestionnaire fiable et gratuit. 1.4 Le gestionnaire MySQL (La prononciation classique de MySQL est Maille Ess Ku Ell.) Les bases de données propriétaires (Oracle, Microsoft,..) ne répondant pas totalement aux exigences ci-dessus de simplicité et de gratuité, trois programmeurs scandinaves, David Axmark, Allan Larsson et Michael Monty Widenius, développèrent dans les années 1990 un nouveau serveur de bases de données, qu ils mirent en licence GNU Open Source, qui devint opérationnel en 1996 et qu ils baptisèrent MySQL. MySQL est un véritable serveur de base de données SQL multiutilisateur et multitâche, écrit en C et C++, disponible sous la plupart des systèmes d exploitation, SQL étant le plus populaire langage de requête dans les bases de données dans le monde. MySQL est une configuration client/serveur ce qui consiste en un serveur démon mysqld, différents programmes clients et des librairies. SQL est un langage standardisé qui rend facile le stockage, la mise à jour et l accès à l information. Par exemple, on peut utiliser le SQL pour récupérer des informations sur un produit ou stocker des informations client sur un site web. MySQL est suffisamment rapide et flexible pour gérer des historiques et des images. Les principaux objectifs de MySQL sont la rapidité, la robustesse et la facilité d utilisation. MySQL a été originellement développé parce que les dévelopeurs avaient besoin d un serveur SQL qui puisse gérer des grandes bases de données de manière plus rapide que ce que pouvaient le faire les distributeurs de bases de données. Ils utilisent donc MySQL depuis 1996 dans un environnement de plus de 40 bases de données contenant 10,000 tables, dont plus de 500 contiennent plus de 7 millions d enregistrements, soit environ 100 giga octets de données critiques. La base sur laquelle MySQL est construite est un ensemble de routines qui ont été largement éprouvées pendant des années dans un environnement de production exigeant. Même si MySQL est encore en développement, il propose déjà un ensemble de fonctionnalités riches et extrêmement utiles. 1.5 Le couple PHP-MySQL : l union fait la force Ce qui fait la force du couple PHP-MySQL et en fait désormais un des standards du Web, c est l intégration entre trois outils : le serveur Apache qui est un serveur Web tournant sous unix (par exemple sous Linux ou MacOsX) devenu l un des grands standards du Web du fait de sa fiabilité, de sa sécurité et de sa gratuité, le langage serveur de création de pages Web PHP le gestionnaire de bases de données MySQL. Quelques instructions PHP permettent d effectuer depuis le serveur Apache toutes les requêtes possibles sur la base de données (recherche, mise à jour, insertion, suppression) puis de présenter éventuellement les résultats de la requête dans une page Web qui est envoyée au client sous forme de fichier HTML. De son côté, le client peut formuler ses demandes de recherche, mise à jour, insertion ou suppression par l intermédaire des formulaires HTML qui sont là aussi facilement traitées par le serveur par l intermédiaire de PHP. On peut présenter l interaction PHP-MySQL sous la forme suivante : 1. le serveur envoie au client, grâce à un script PHP, un formulaire HTML qui lui permettra de formuler sa requête 2. le client remplit le formulaire qu il soumet au serveur 3. un script PHP traite le formulaire et transforme la demande du client en une requête SQL qu il envoie au gestionnaire de bases de données MySQL 4. le gestionnaire de bases de données traite la requête et envoie les résultats au script PHP 5. le script PHP reçoit les résultats, crèe à partir de ceux-ci un fichier HTML qu il envoie au client comme résultat de sa demande 3

4 2 Introduction à PHP 2.1 Les principes Un fichier PHP se présente comme un fichier texte, dont le nom se termine par le suffixe php (éventuellement php3), et qui est envoyé pour interprétation au serveur Apache, au lieu d être envoyé directement au client comme un banal fichier HTML. Ce fichier comprend à la fois du code HTML qui est transmis tel quel par le serveur Apache au fichier HTML en création, et des scripts PHP qui sont interprétés par le serveur avec comme sortie standard ce même fichier HTML qui est ensuite envoyé au client. Remarquons que le client, lorsqu il navigue dans le site et clicque sur un lien comportant le suffixe php, ne recevra pas le fichier PHP : il recevra le fichier HTML qui aura été créé par le script contenu dans le fichier PHP (ceci garantira bien entendu la confidentialité du code qui pourra par exemple contenir des mots de passe d accès aux bases de données ou d autres données tout aussi essentielles, sans risque que le client puisse y avoir accès). Le code des scripts PHP est inclus dans le code HTML au moyen (par exemple) des balises <?php.... Un même fichier peut contenir plusieurs morceaux de scripts PHP qui n en constituent qu un seul vis à vis de l interpréteur PHP : ces morceaux de scripts partagent le même environnement (variables accessibles, bibliothèques et fonctions disponibles, etc.). Rappelons que ces scripts disposent d une sortie standard qui est le fichier HTML à créer : toutes les instructions d écriture se font par défaut dans le fichier HTML ; les scripts ne disposent par contre pas d entrée standard (on n en verrait pas l utilité) mais disposent d une sortie d erreur (en général un fichier existant sur le serveur et accessible seulement à l administrateur du site). C est ainsi que l interprétation du script suivant print ("Bonjour tout le monde!"); enverra au navigateur Web du client un fichier HTML contenant la seule ligne Bonjour tout le monde!. 2.2 La syntaxe La syntaxe de PHP est très proche de C/C++ et encore plus proche de Perl. Les variables ont un nom qui commencent tous par le symbole $ (il n y a pas de distinction comme en Perl entre les variables simples, les tableaux et les tables d association) et ces variables ne sont pas réellement typées (ou plutôt elles sont typées de manière dynamique par le contenu que l on leur affecte au cours de l exécution du script). Les variables n ont pas besoin d être déclarées (à moins de vouloir éviter les conflits entre variables locales et globales) : elles sont créées (et temporairement typées) au moment de leur première affectation. $a = "Bonjour"; // chaine de caracteres $b = 3; // entier $c = ; // réel en virgule flottante Les chaînes de caractères sont assez particulières en PHP. Elles peuvent être encadrées soient par des apostrophes (auquel cas elles se comportent de manière statique comme des chaînes de caractères dans n importe quel langage de programmation, mais sans caractère d échappement), soit par des guillemets auquel cas elles se comportent de manière plus dynamique : les noms de variables qu elles contiennent (qui commencent toujours par le symbole $) sont remplacées par le contenu de la variable et les caractères d échappement sont correctement gérés. C est ainsi que le code suivant $nom="denis"; print( Bonjour $nom, ); print("bonjour $nom"); provoquera l affichage de Bonjour $nom,bonjour Denis. Les tableaux peuvent être gérés soit comme des tableaux indexés à partir de 0 comme en C (ou en Caml), avec un parcours naturel par une boucle for : 4

5 $tableau = array("veau", "vache", "poulet", "couvee", "canard"); for($i=0;$i<count($tableau);$i++) echo "$tableau[$i], "; soit comme des tables indexées, avec un parcours naturel par une boucle foreach (avec un simili pattern matching) : $animaux = array("chien"=>"medor", "chat"=>"minet", "perroquet"=>"coco", "canard"=>"donald"); foreach ($animaux as $race=>$nom) echo "$nom est un $race<br>"; Les structures de contrôle ont la même syntaxe qu en C/C++/Perl (avec le cas particulier de la boucle foreach). Les déclarations de fonctions ont une syntaxe simplifiée puisque les variables ne sont pas typées : elles commencent par le mot clé function, suivi du nom de la fonction puis des noms des paramètres entre parenthèses, puis du code de la fonction entre accolades : function factor($n) { if ($n <= 1) return 1; return $n * factor(--$n); } $nombre = 6; echo "Factorielle $nombre est egal a ".factor($nombre)."<br>"; 2.3 Les variables et les fonctions prédéfinies PHP dispose d un certain nombre de variables prédéfinies, en relation avec le serveur. C est ainsi que l exécution du script echo "\$SCRIPT_FILENAME = $SCRIPT_FILENAME<br>"; echo "\$PHP_SELF = $PHP_SELF<br>"; echo "\$PATH_TRANSLATED = $PATH_TRANSLATED<br>"; echo "\$REQUEST_URI = $REQUEST_URI<br>"; provoquera (sur ma machine) l affichage de $SCRIPT_FILENAME = /Users/dmonasse/Sites/luminy/essai4.php $PHP_SELF = /~dmonasse/luminy/essai4.php $PATH_TRANSLATED = /Users/dmonasse/Sites/luminy/essai4.php $REQUEST_URI = /~dmonasse/luminy/essai4.php Quand aux fonctions prédéfinies, qui figurent dans diverses bibliothèques, elles couvrent tout ce que l on est en droit d attendre d un langage de programmation actuel (y compris des traitements d images ou de sons par exemple). 5

6 2.4 PHP et les formulaires HTML PHP a été spécialement adapté à la gestion des formulaires HTML. Rappelons qu un formulaire HTML se compose de divers éléments de dialogues (boutons, cases à cocher, champs de textes), chacun d entre eux portant un nom, et que parmi ceux-ci figurent deux boutons particuliers : l un servant à réinitialiser le formulaire, l autre à soumettre le contenu du formulaire au serveur. Cette soumission du formulaire au serveur se fait en appelant un autre fichier HTML (ou PHP) auquel seront transmis les valeurs des différents éléments du formulaire, soit dans la ligne d appel du fichier après un point d interrogation (méthode GET), soit de manière invisible (méthode POST). Quel que soit le mode d appel du fichier de traitement du formulaire, pourvu que ce soit un fichier PHP, l interpréteur initialise des variables portant les noms de chacun des éléments du dialogue (précédés de l inévitable $) et les initialise avec le contenu de cet élément lors de la soumission du formulaire. C est ainsi que le couple de fichiers : fichier de formulaire // fichier bienvenue.htm <html> <head> <title>bienvenue</title> </head> <body> <FORM ACTION="bienvenue.php", METHOD="POST"> Quel est votre prenom? <INPUT TYPE="text" NAME="prenom" VALUE=""> <INPUT TYPE="submit" VALUE="Cliquez ici"> </FORM> </body> </html> et fichier de traitement du formulaire // fichier bienvenue.php print ("<h2>bonjour, $prenom!</h2>"); permettra d afficher de manière interactive une salutation à l utilisateur. Bien entendu, le fichier d affichage du formulaire peut être le même que le fichier de traitement. En voici un exmple : <html> <head> <title>bienvenue</title> </head> <body> if ($prenom!= "") { print ("<h2>bonjour, $prenom!</h2>"); exit; } echo "<FORM ACTION=\"$PHP_SELF\"," METHOD="POST"> Quel est votre prenom? <INPUT TYPE="text" NAME="prenom" VALUE=""> <INPUT TYPE="submit" VALUE="Cliquez ici"> </FORM> 6

7 </body> </html> affichera le formulaire tant que le prénom n aura pas été entré (et donc que la variable $prenom n aura pas été initialisée, auquel cas elle est évaluée en la chaîne vide), puis affichera la salutation lors de la soumission du formulaire avec un vrai prénom. Remarque : l accès automatique aux variables contenant les valeurs des champs du formulaire appelant ne fonctionne pas nécessairement sur les serveurs utilisant les versions les plus récentes de PHP (en particulier la version 4.2) : cela dépend du fichier de configuration initiale du serveur. Il est conseillé dans ce cas de faire appel à deux tables prédéfinies $HTTP_POST_VARS et $HTTP_GET_VARS, indexées par les noms des éléments du formulaire. On pourra remplacer par exemple dans le code ci-dessus $prenom par $HTTP_POST_VARS[ prenom ] ou $HTTP_GET_VARS[ prenom ] suivant la méthode de transmission choisie pour les paramètres. On conçoit évidemment les facilités de traitement des formulaires au niveau du serveur que procure le couple PHP/HTML ; par contre, le traitement des formulaires au niveau du client, pour vérifier par exemple la validité des données entrées à la soumission, se fera de préférence en Javascript pour éviter du trafic inutile. 3 Le gestionnaire de bases de données MySQL 3.1 Les bases de données MySQL Une base de données MySQL est composée d un certains nombres de tables mises en relation (il s agit donc d une base de données relationnelle). Chacune de ces tables peut être imaginée comme une feuille de calcul dans un tableur, composée d un certain nombre de colonnes : ce sont les champs de la table. Chacun de ces champs a un nom, un type (chaîne de caractères, nombre, etc.), une taille prédéfinie (ou une taille limite si l on souhaite une taille dynamique), plus un certain nombre d autres caractéristiques (autorisé à être vide, auto-incrémentation, etc.). Chacune des lignes de la table constitue un enregistrement : chaque enregistrement dispose donc de données relatives à chacun des champs de la table. La mise en relation de ces tables se fait par des clés (encore appelées identificateurs, id ou index). Dès qu une base de données comporte plusieurs tables, on munit chaque table d un champ spécial appelé la clé primaire de la table (habituellement un simple entier). Ce champ est nécessairement unique. On garantit que chaque enregistrement aura une clé qui lui sera propre : deux enregistrements distincts ne peuvent avoir la même clé. Pour cela, le plus simple est de demander au gestionnaire de gérer lui même ce champ, par exemple en décrétant que ce champ sera auto-incrémenté : à chaque insertion d un nouvel enregistrement, la valeur de la clé associée sera la valeur de la clé précédente augmentée de 1. La liaison entre deux tables se fera de deux manières différentes suivant le type de liaison existant entre les deux tables. Imaginons par exemple deux tables : l une des tables contiendra les noms, adresses, s des participants à ce colloque, l autre table contiendra les noms et adresses des établissements où ils enseignent ou font de la recherche. Il s agit là d une liaison du type plusieurs vers un : chacun des participants est rattaché à un unique établissement (par contre plusieurs participants peuvent être rattachés au même établissement). Dans ce cas on se contentera d adjoindre à la table des participants un champ numérique etablissement de type entier qui contiendra non pas le nom de l etablissement (un nom, cela peut changer, même si c est relativement rare) mais la clé de l établissement dans la table des établissements. Il existe des liaisons plus complexes de type plusieurs vers plusieurs. Imaginons que nous adjoignons à cette base de données, une table des revues scientifiques (nom, adresse, site internet) et que nous utilisions la relation lit habituellement. Chaque participant lie peut-être plusieurs revues, chaque revue est lue par plusieurs participants. Dans ce cas on ajoutera à la base de données un fichier de liaison : il contiendra uniquement deux champs, la clé primaire d un participant et la clé primaire d une revue ; ce fichier gèrera donc les couples (participant,revue). Par exception, dans un tel fichier de liaison entre deux tables, c est le couple des deux clés qui sera considéré comme la clé primaire : chaque couple est donc nécessairement unique. 3.2 La construction d une base de données MySQL Bien qu il soit possible de construire une base de données MySQL directement dans le langage de requête SQL, ou à la main à partir de requêtes émises à l aide de PHP, il est plus simple d utiliser un outil dédié. Parmi ceux-ci, l un des plus répandus et des plus populaires est phpmyadmin. Il s agit d un projet Open Source (donc gratuit) que l on trouve sur le site incontournable C est un ensemble de scripts PHP, communiquant entre eux, qui 7

8 permettent l administration complête des bases de données MySQL : création et suppression de bases de données ou de tables, formatage, ajout, typage et suppression de champs dans les tables, ajout ou suppression d enregistrements, importation ou exportation de tables dans différents formats. Son usage est particulièrement intuitif et il en existe même une version en français. Comme il s agit de scripts PHP, l utilisation de phpmyadmin se fait directement par l intermédiaire d un navigateur Web : elle est donc indépendante de la machine utilisée et peut même se faire sur un serveur distant, ce qui est souvent indispensable. Bien entendu pour utiliser phpmyadmin, il faut disposer d un serveur Web, soit sur sa propre machine, soit sur une machine distante. 3.3 L accès à la base de données à partir de PHP On accède à la base de données à partir de PHP en plusieurs étapes. On commence par se connecter au serveur mysql à l aide de la fonction mysql_connect en lui donnant comme paramètres l adresse du serveur mysql (par exemple localhost), le nom de l utilisateur et son mot de passe $link = mysql_connect("localhost","denis","aze45gds"); La fonction renvoie un lien vers le serveur mysql en cas de succès et false en cas d échec. Ensuite on sélectionne la base de données sur laquelle on souhaite travailler à l aide de la fonction mysql_select_db qui reçoit deux paramètres : le nom de la base de données et le lien vers le serveur mysql renvoyé par la fonction mysql_connect : $result = mysql_select_db("luminy",$link); Une fois la base de données sélectionnée, toutes les communications entre PHP et la base de données peuvent se faire par la fonction mysql_query à laquelle on passera comme paramètres des requêtes SQL sous forme de chaînes de caractères : $query="insert into contacts (name,location, ,url,comments) values ( $name, $location, $ , $url, $comments )"; mysql_query($query) or die( mysql_error()); Cette fonction mysql_query renvoie un booléen si la requête n a pas à renvoyer de résultat particulier, par exemple lors d une simple insertion. Ce booléen indique si la requête a été effectuée avec succès. Si par contre la requête doit renvoyer un résultat, ce résultat est renvoyé sous forme d un pointeur vers une structure interne abstraite. Pour exploiter ce résultat, il faut le transmettre à la fonction mysql_fetch_array qui va dépiler une par une chacune des lignes retenues par la requête, chaque ligne étant présentée sous forme d un tableau associatif. On accède à chacun des champs de l enregistrement soit par son numéro, soit par son nom (autrement dit, le tableau contient deux fois chaque champ), à moins que l on ne passe à la fonction comme deuxième paramètre la constante MYSQL_NUM (auquel cas chaque champ ne sera accessible que par son numéro) ou MYSQL_ASSOC (auquel cas chaque champ ne sera accessible que par son nom). Lorsque la pile des lignes est vide, la fonction mysql_fetch_array renvoie false. On aboutit à un code du type $query="select * FROM contacts"; $result = mysql_query($query) or die( mysql_error()); echo "<table>"; while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ echo "<tr>"; foreach($row as $champ => $valeur) echo "<td> $valeur </td>"; echo "</tr>"; } echo "</table>"; D autres fonctions utilitaires sont disponibles, comme la fonction mysql_num_rows qui compte le nombre de lignes renvoyées par la requête ou la fonction mysql_free_result qui libère la place occupée par le pointeur (usage facultatif). 8

9 3.4 Les requêtes SQL La principale requête SQL est la requête SELECT qui dispose d un grand nombre d options. Dans sa forme la plus simple, elle renvoie un tableau constitué d un certain nombre de colonnes de la table, désignées par leurs noms, et de toutes les lignes de la table. C est ainsi que la requête select nom,prenom from mescontacts renverra les noms et prénoms de tous les enregistrements contenus dans la table mescontacts. Si l on souhaite récupérer tous les champs (dont toutes les colonnes) on pourra remplacer la liste des champs par le joker * : select * from mescontacts La plupart du temps on voudra être plus sélectif dans le choix des enregistrements. On pourra pour cela ajouter à la fonction select une clause where suivie d un test booléen. Dans ce cas, les seuls enregistrements sélectionnés seront ceux pour lesquels le test booléen sera satisfait : select nom,prenom from mescontacts where ville= Paris and salaire < 3000 renverra un tableau contenant les noms et prénoms de toutes mes connaissances qui habitent Paris et dont le salaire est inférieur à 3000 euros. A priori, les différents enregistrements sont renvoyés dans un ordre arbitraire, lié à la structure interne de la table choisie. Il est possible de demander un tri de ces enregistrements suivant les valeurs d un champ : select * from mescontacts where ville= Paris order by salaire desc renverra une liste des enregistrements complets de mes contacts habitant Paris, triée par ordre de salaire décroissant. On peut trier suivant plusieurs champs avec des priorités décroissantes de gauche à droite comme il se doit : select * from mescontacts order by departement asc, salaire desc renverra une liste de mes contacts triés d abord par ordre de département croissant, et, à l intérieur de chaque département, par ordre de salaire décroissant. La clause from peut être suivie d une liste de tables plutôt que d une seule table. Dans ce cas, MySQL procède à un produit cartésien des diverses tables. Ce ne sera réellement utile que dans le cas de liens entre les deux tables. Imaginons que la table mescontacts contienne un lien societe_id vers une table societes donnant les adresses de divers sociétés dans lesquelles ils travaillent, par l intermédiaire d une clé id. La requête select nom,prenom,societes.adresse from mescontacts,societes where mescontacts.societe_id = societes.id renverra un tableau contenant les noms, prénoms, adresse de la société de chacun de mes contacts. On peut remarquer la méthode consistant à qualifier les champs par le nom de la table, sous la forme nom_table.nom_champ, pour éviter toute ambiguité : le champ id est peut-être utilisé également dans la table mescontacts et le champ adresse pourrait aussi bien désigner l adresse personnelle de la personne que l adresse de la société. On conçoit que cette méthode permet de gérer des relations entre bases aussi bien du point de vue de relations plusieurs vers un que de relations plusieurs vers plusieurs (par l intermédiaire d une table de liaison). Nous ne nous étendrons pas sur des versions encore plus sophistiquées de la requête select comme l utilisation de caractères joker avec le test like plutôt que les tests de comparaison usuels, sur la possibilité d éliminer les doublons dans le résultat renvoyé par la requête avec la clause distinct, sur le regroupement d enregistrement dans des soustableaux avec l instruction group by suivie des noms des champs utilisés pour le regroupement ou sur les jointures qui permettent de gérer de manière plus fine les liaisons entre fichiers, en particulier quand des champs sont autorisés à contenir la valeur null (qui n est comparable à aucune autre valeur). Les autres requêtes très utiles sont la requête insert qui insère un enregistrement avec comme exemple insert into contacts (name,location, ,url,comments) values ( monasse, ch210, denis.monasse@free.fr, moi ) ou la requête update qui modifie certains champs dans un certain nombre d enregistrements sélectionnés à l aide d un test where comme par exemple 9

10 update mescontacts set departement = 69, ville= Lyon where nom = Dupont and prenom= Philippe s il venait à l idée de mon contact Philippe Dupont de déménager à Lyon. Enfin, la requête delete from supprimera un certain nombre d enregistrements ; elle sera la plupart du temps suivie d une clause where à moins que l on ne désire supprimer tous les enregistrements de la table : delete from mescontacts where salaire>10000 Je ne m étendrai pas sur les requêtes concernant la création et la suppression de tables ou de champs qui seront plus facilement gérées à partir de phpmyadmin. 4 Conclusion Je n ai voulu donner ici qu un petit aperçu du couple PHP/MySQL et des possibilités qu il apporte dans la gestion des sites Web. Il existe bien d autres solutions liées à des logiciels propriétaires (Oracle, Microsoft, Filemaker, Quatrième Dimension), mais le couple PHP/MySQL présente l immense avantage d être gratuit, d être l un des plus sûrs, d être accessible chez la plupart des hébergeurs de sites et d être l un des plus répandus (ce qui est un gage de pérennité). Bien entendu, tout n est pas rose. Le fait d utiliser un langage interprété comme PHP présente un certain nombre d inconvénients, en particulier des ralentissements considérables chez certains hébergeurs qui ont sous-dimensionné leur capacités de traitement, lorsque, le soir par exemple, un grand nombre d internautes cherchent à accéder à des sites personnels comprenant des pages PHP : dans ce cas, l interpréteur du serveur est soumis à rude épreuve. Le fait pour PHP d être très lié à HTML est également un inconvénient : il s adapte moins bien à XHTML et à XML, mais des bibliothèques sont développées chaque jour pour combler les petites lacunes qui existent encore. Quand à MySQL, il n a pas encore atteint tout à fait la puissance d Oracle (unions de tables, sous-requêtes, stockages de procédures dédiées), mais les développeurs travaillent durs pour les mises à niveau. En conclusion, si vous avez à gérer un site Web un tant soit peu évolué, vous avez peu de chances d échapper au couple PHP/MySQL. 5 Webographie Les sites officiels incontournables : Des sites pédagogiques pour s initier à PHP : (site d O Reilly) Si vous travaillez sur Mac : Pour progresser : un site qui recense des tutoriaux Pour trouver des scripts PHP tout faits (inutile de réinventer la roue) :

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

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

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

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

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

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

1 Introduction et installation

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

Plus en détail

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

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

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

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

Plus en détail

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

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

Plus en détail

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

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

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

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

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

Guide d utilisation. Version 1.1

Guide 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étail

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

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

Plus en détail

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

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

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

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

Plus en détail

Langage SQL : créer et interroger une base

Langage 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étail

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

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

Plus en détail

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

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

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

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

Plus en détail

Bases de données élémentaires Maude Manouvrier

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

Plus en détail

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

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL . THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL Mr MEZRED MOHAMED Ingénieur météorologue INTRODUCTION Il existe de nombreuses manières de construire une base de données. En effet,

Plus en détail

Base de données relationnelle et requêtes SQL

Base de données relationnelle et requêtes SQL Base de données relationnelle et requêtes SQL 1e partie Anne-Marie Cubat Une question pour commencer : que voyez-vous? Cela reste flou Les plans de «Prison Break»? Non, cherchons ailleurs! Et de plus près,

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

Gestion de stock pour un magasin

Gestion 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étail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

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

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

Plus en détail

Module BD et sites WEB

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

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

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

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Architectures web/bases de données

Architectures 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étail

RÉALISATION D UN SITE DE RENCONTRE

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

Plus en détail

1. La plate-forme LAMP

1. La plate-forme LAMP Servi ces pour intranet et Internet Ubuntu Linux - Création et gestion d un réseau local d entreprise 1. La plate-forme LAMP Services pour intranet et Internet La fourniture d'un site pour le réseau ou

Plus en détail

Publication dans le Back Office

Publication dans le Back Office Site Web de l association des ingénieurs INSA de Lyon Publication dans le Back Office Note : dans ce guide, l'appellation GI signifie Groupe d'intérêt, et GR Groupe Régional laure Buisset Page 1 17/09/2008

Plus en détail

Réaliser un e-mailing avec Global Système

Réaliser un e-mailing avec Global Système Réaliser un e-mailing avec Global Système L e-mailing permet de transmettre à «n» personnes possédant une adresse e-mail un message personnalisé. Chaque envoi est individuel, c est-à-dire que la zone «Destinataire»,

Plus en détail

Formation Webmaster : Création de site Web Initiation + Approfondissement

Formation Webmaster : Création de site Web Initiation + Approfondissement Contactez notre équipe commerciale au 09.72.37.73.73 Aix en Provence - Bordeaux - Bruxelles - Geneve - Lille - Luxembourg - Lyon - Montpellier - Nantes - Nice - Paris - Rennes - Strasbourg - Toulouse Formation

Plus en détail

SQL Historique 1982 1986 1992

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

Plus en détail

Introduction au Système de Gestion de Base de Données et aux Base de Données

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

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

26 Centre de Sécurité et de

26 Centre de Sécurité et de 26 Centre de Sécurité et de Maintenance La fenêtre du Centre de sécurité et de maintenance (CSM) rassemble tous les outils nécessaires au contrôle, à l analyse, à la maintenance, à la sauvegarde et au

Plus en détail

Création et Gestion des tables

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

Plus en détail

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

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES BASE DE DONNEES La plupart des entreprises possèdent des bases de données informatiques contenant des informations essentielles à leur fonctionnement. Ces informations concernent ses clients, ses produits,

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Introduction. 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é) 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étail

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES Antonin AILLET Remi DEVES Thibaut AZZOPARDI 2 ème année de DUT Informatique Cahier Technique «Développer une application intranet pour la gestion des stages des étudiants» Encadré par Didier BOULLE Année

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

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d emailing.

S y m M a i l i n g. S o l u t i o n d e - m a i l i n g. SymMailing est un outil professionnel de création et de gestion de campagnes d emailing. S y m M a i l i n g S o l u t i o n d e - m a i l i n g Introduction SymMailing est un outil professionnel de création et de gestion de campagnes d emailing. SymMailing intègre à la fois les outils de

Plus en détail

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

Plus en détail

Création et utilisation de formulaire pdf

Création et utilisation de formulaire pdf Création et utilisation de formulaire pdf Grâce à Adobe Acrobat, il est plus facile de créer, de remplir et d envoyer des formulaires électroniques PDF. Vous pouvez concevoir et créer un formulaire complètement

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

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,

Plus en détail

Access 2007 FF Access FR FR Base

Access 2007 FF Access FR FR Base ACCESS Basic Albertlaan 88 Avenue Albert Brussel B-1190 Bruxelles T +32 2 340 05 70 F +32 2 340 05 75 E-mail info@keyjob-training.com Website www.keyjob-training.com BTW TVA BE 0425 439 228 Access 2007

Plus en détail

Comment utiliser FileMaker Pro avec Microsoft Office

Comment utiliser FileMaker Pro avec Microsoft Office Guide d utilisation Comment utiliser FileMaker Pro avec Microsoft Office Comment utiliser FileMaker Pro et Microsoft Office page 1 Table des matières Introduction... 3 Avant de commencer... 4 Partage de

Plus en détail

Notes pour l utilisation d Expression Web

Notes pour l utilisation d Expression Web EICW Formation Webmaster Notes pour l utilisation d Expression Web G. Barmarin 2008-2009 1 /21 Table des matières 1 Introduction... 3 2 Installer Expression Web... 4 3 Explorer et personnaliser l interface

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

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

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

Plus en détail

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

Olivier Mondet http://unidentified-one.net

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

Plus en détail

Joomla! Création et administration d'un site web - Version numérique

Joomla! Création et administration d'un site web - Version numérique Avant-propos 1. Objectifs du livre 15 1.1 Orientation 15 1.2 À qui s adresse ce livre? 16 2. Contenu de l ouvrage 17 3. Conclusion 18 Introduction 1. Un peu d histoire pour commencer... 19 1.1 Du web statique

Plus en détail

Projet en nouvelles technologies de l information et de la communication

Projet en nouvelles technologies de l information et de la communication Projet en nouvelles technologies de l information et de la communication Site Web universitaire du Prof. Jacques Moeschler. Nono Steeve Semestre de printemps 2013 Sous la direction du Prof Luka Nerima

Plus en détail

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Partie publique / Partie privée. Site statique site dynamique. Base de données. Partie publique / Partie privée. Partie publique - Front office / Partie privée - Back office. Utiliser l analogie avec une émission de télévision. Un journal télévisé = 1 journaliste + des reportages.

Plus en détail

Utiliser Access ou Excel pour gérer vos données

Utiliser Access ou Excel pour gérer vos données Page 1 of 5 Microsoft Office Access Utiliser Access ou Excel pour gérer vos données S'applique à : Microsoft Office Access 2007 Masquer tout Les programmes de feuilles de calcul automatisées, tels que

Plus en détail

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition) Présentation du langage XML 1. De SGML à XML 17 2. Les bases de XML 18 2.1 Rappel sur HTML 18 2.2 Votre premier document XML 19 2.3 Les avantages de XML 21 3. La syntaxe XML 21 3.1 La première ligne du

Plus en détail

Manuel du composant CKForms Version 1.3.2

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

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

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

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

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin 2010. Entreprise decoratzia.com 15 rue Erlanger 75016 - Paris

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin 2010. Entreprise decoratzia.com 15 rue Erlanger 75016 - Paris BENCHETRIT Michaël BTS IG 2 ème année Brevet de Technicien Supérieur Informatique de Gestion Option : Développeur d applications Session 2011 Note de synthèse Développement web sur le CMS Prestashop Stage

Plus en détail

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube

Content Management System. bluecube. Blue Cube CMS V4.3 par Digitalcube Content Management System bluecube V4.3 1 SOMMAIRE Avant-propos Découvrir le CMS Blue Cube Les modules Les clients BLUE CUBE CMS V4.3 par Digitalcube 2 CMS sans bugs 3 Avant-propos Facile à prendre en

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

1. Installation du Module

1. Installation du Module 1 sur 10 Mise en place du Module Magento V 1.5.7 1. Installation du Module Vous pouvez installer le module de deux façons différentes, en passant par Magento Connect, ou directement via les fichiers de

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

Les bases de données

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

Plus en détail

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D. Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D. TABLE DES MATIÈRES I. Présentation de Joomla II. III. IV. Documents disponibles Installation de Joomla 3.1) Installation sur

Plus en détail

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie 1 / 22 Technologies Web Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya Université Pierre et Marie Curie Rappel 2 / 22 Problématique Quelles technologies utiliser

Plus en détail

Manuel d utilisation du site web de l ONRN

Manuel d utilisation du site web de l ONRN Manuel d utilisation du site web de l ONRN Introduction Le but premier de ce document est d expliquer comment contribuer sur le site ONRN. Le site ONRN est un site dont le contenu est géré par un outil

Plus en détail

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT FileMaker Server 11 Publication Web personnalisée avec XML et XSLT 2007-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker est une

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

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

Introduction à PHP. Au sommaire de ce chapitre

Introduction à PHP. Au sommaire de ce chapitre 1 Introduction à PHP Au sommaire de ce chapitre Origines de PHP Atouts de PHP Fonctionnement de PHP avec un serveur Web Premiers pas A quoi ressemble un script PHP? Sauvegarde des données Réception de

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

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments Développement d une application en web/ client lourd en C# permettant la gestion des médicaments et des commandes de

Plus en détail

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic Bases de données Page 1 de 11 1- Objectifs généraux Bases de données Prof. : Dzenan Ridjanovic acquérir les principes et concepts fondamentaux dans le domaine des bases de données; développer les connaissances

Plus en détail