Année Spéciale ENSIMAG ENSIMAG 2002-2003. James L. Crowley. Séance 8 18 mars 2003. PHP et MySQL SQL...2 MYSQL...3



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

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Pratique et administration des systèmes

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)

CREATION WEB DYNAMIQUE

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

WEB page builder and server for SCADA applications usable from a WEB navigator

Installation et Mise en œuvre de MySQL

Bases de SQL. Hacks 1-6 CHAPITRE UN

Instructions Mozilla Thunderbird Page 1

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

PDO : PHP Data Object 1/13

Olivier Mondet

OpenPaaS Le réseau social d'entreprise

Mysql avec EasyPhp. 1 er mars 2006

Exercices sur SQL server 2000

Attaques applicatives

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

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

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

Sécurité des applications web. Daniel Boteanu

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Les déclencheurs. Version 1.0. Grégory CASANOVA

Préparation d un serveur Apache pour Zend Framework

RAPID Prenez le contrôle sur vos données

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

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

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

Once the installation is complete, you can delete the temporary Zip files..

Guide d'installation rapide TFM-560X YO.13

ANGULAR JS AVEC GDE GOOGLE

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

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

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Paris Airports - Web API Airports Path finding

I. MySQL : Serveur et SGBD

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

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

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

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

PHP 4 PARTIE : BASE DE DONNEES

How to Login to Career Page

ALGORITHMIQUE ET PROGRAMMATION En C

Get Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF

MS SQL Express 2005 Sauvegarde des données

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

INFO-F-404 : Techniques avancées de systèmes d exploitation

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

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

Module 7 : Configuration du serveur WEB Apache

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN

Sendmail milter/greylisting

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

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

CEST POUR MIEUX PLACER MES PDF

Configuration des notifications de messagerie avec les scripts pour les alertes IDS avec le CiscoWorks Monitoring Center for Security

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

Stockage du fichier dans une table mysql:

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

équipement radio Procédure

MANUEL MARKETING ET SURVIE PDF

Projet de programmation (IK3) : TP n 1 Correction

TP 1. Prise en main du langage Python

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Web. Madalina Croitoru IUT Montpellier

Contents Windows

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

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

Application Form/ Formulaire de demande

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Vanilla : Virtual Box

Présentation du langage et premières fonctions

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Guide d installation de SugarCRM Open Source version 4.5.1

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

Module BD et sites WEB

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

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

1. La plate-forme LAMP

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

Atelier Progress Rollbase

Guide Installation Serveur Extensive Testing

Introduction au langage C

Bases de données relationnelles

Connaître la version de SharePoint installée

Practice Direction. Class Proceedings

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Transcription:

Techniques de Programmation Internet Année Spéciale ENSIMAG ENSIMAG 2002-2003 James L. Crowley Séance 8 18 mars 2003 Plan : PHP et MySQL SQL...2 MYSQL...3 Administration...4 Un intro rapide aux fonctions de MySQL...5 Php...6 Variables...7 Mélange de PHP et HTML...8 Les chaînes de caractères...9 Un exemple de PHP et MySQL...12

SQL SQL est un langage de command pour les bases de données inventé par E. F. Codd dans les années 70. Parce que SQL se ressemble à la langue naturel, il est facile d apprendre. Par exemple : SELECT name FROM people WHERE name LIKE `Stac%. La commande SQL SELECT value FROM table S exprime en PERL comme $++ ;($*++/$!) ;$&$^,, ;$! SQL a été conçu pour les non-informaticiens. Il a été adopté par ORACLE en 1980 pour sa système. Il est considéré comme la norme en langage de commande de base de donnée. Depuis 1989, SQL est un norme ANSI (SQL92) ou SQL2. À fin d être petit et efficace, MySQL est réalise qu un une sous-ensemble de la fonctionnalité de SQL.

MYSQL MYSQL est un Open Source ShareWare système de gestion de base relationnel de données développé par Michael Widenius, de la société suédoise TcX. À l origine (en 1979) Widenius a développé un système de gestion de base de donnée nommée «UNIREG». En 1995, Widenius a écrit un nouveau système pour les besoins interne de sa société. Il a fourni un API fondé sur SQL en appuyant sur les composants de UNIREG. MySQL est un petit serveur de base de donnée relationnelle avec un interprèteur de commande ANSI SQL. MySQL peut être compilé sur les plusieurs plates-formes (UNIX, Windows, etc.). Sur Unix, MySQL exploit les «threads» pour une gain important d'efficacité. MySQL peut être exécuté sur Windows NT et comme une procès normale de Windows 95/98. (Attention, les threads de Windows 95 ont un problème de fuite de mémoire). MySQL a l avantage d être petit, facile a utilisé, standard (grâce à son usage de SQL), ouvert (distribué avec sa source), robuste, et gratuit. Il est rapidement devenu l outil privilège pour la base de données des serveurs. MySQL est disponible sur les nombreux sources. Par exemple en France voir : http://www.minet.net/devel/mysql

Administration MySQL est une base «multi-thread», avec un thread par connection. MySQL comprend quelques fonctions de plus par rapport au SQL, comme : ENCRYPT, WEEKDAY and IF. On installe MySQL comme un processus de fond (demon en Unix). Sur Unix ou Windows (98 et NT). On démarre MySQL avec : /usr/local/mysql/bin/safe_mysql&. Le script «safe_mysql» assure que il y qu un mysql. Si mysql se plante, safe_mysql le relance. On administre MySQL avec le système mysqladmin. Par exemple pour créer un nouvelle base, DATABASE, on tape : mysqladmin p create DATABASE (-p pour prompte pour le mot de passe de ROOT). Pour détruire une base de donnée il y a : mysqladmin p drop DATABASE Pour arrêter une base de donnée, on tape : mysqladmin p shutdown Il y a une ensemble riche de commande de «status» possible. Voir : mysqladmin h

Un intro rapide aux fonctions de MySQL. Voici trois exemples de commandes MySQL : CREATE TABLE people (name CHAR(10)) INSERT INTO people VALUES ( me ) SELECT name FROM people WHERE name LIKE %e. Les commandes en majuscule sont les mots clés, mais on aura peut les taper avec un mélange. En SQL et en MySQL les commandes ne sont pas sensible aux majuscules. Par exemple, on peut taper : Create Table people (name CHAR(10)) Par contre, les noms de bases et les tables (définis par l utilisateur) SONT sensible. «People» n est pas équivalent à «people». Les fonctions de SQL concernes l addition, modification, extraction, et lecture des données d un base. Une commande SQL commence toujours par un verbe. Une table est une structure de donnée fondamentale dans une base de donnée. Une table est composé de colonnes. Chaque colonne est typé. La syntaxe est Create Table table_name (col_name type [modifiers]) [,col_name type [modifiers]]) Les types sont : INT, REAL, CHAR(length), TEXT(length), DATE, TIME. Les colonnes peuvent être «unsigned».

Php PHP et MySQL sont une couple idéal pour des sites web. PHP est un langage de script interprété par le serveur. (A l'opposition au langage interprété par le Navigateur comme «JavaScript») Des documentation sont disponibles à <A Href="http://www.php.net/manual/langref.php">PHP Reference Manual</A> PHP est une logiciel ouvert que support authentification des utilisateurs, XML, les image dynamique, WDDX, mémoire partagé, et création des documents PDF. Voici un exemple de PHP. <H1> lets test PHP </H1> <H2> Try Hello World</H2> <html> <body> $myvar = "Hello World"; echo $myvar; </body> </html> Si on accède à ce page au travers APACHE, on obtiendrait : <H1> lets test PHP </H1> <H2> Try Hello World</H2> <html> <body> </body> </html> La partie : $myvar = "Hello World"; echo $myvar;

est envoyé au PHP par APACHE. Le symbole indique le début d'un bloc de code. Le symbole indique le fin. Des expressions PHP peuvent être placés n'importe ou dans le code. Le symbole «;» sert de marquer pour les fins de commandes. PHP n'interprète pas les sauts de lignes. Donc, $myvar = "Hello World"; echo $myvar; et $myvar = "Hello World"; echo $myvar; sont strictement équivalent. Le symbole de fermeture vaut un «;». Variables Les variable, comme $myvar commence par une «$». Ils peuvent représenter les chaînes, les nombres ou les tableaux. PHP utilise une syntaxe proche de C, C++ et Unix. Par exemple : echo "This is a test"; // This is a one-line c++ style comment /* This is a multi line comment yet another line of comment */ echo "This is yet another test"; echo "One Final Test"; # This is shell-style style comment Les noms et mots réservé ne sont pas sensible au majuscules. Par exemple : <H2> See the environmental variable $HTTP_USER_AGENT</H2> echo "You are using <P>"; echo $HTTP_USER_AGENT;

Mélange de PHP et HTML Il est possible de mélanger l'html au milieu de l'php. Voici un exemple : <H2> to get a list of environment variables with phpinfo() </H2> phpinfo() <H2> Test an environment variable </H2> <h3> "strstr()" searches for a string (arg2) in arg1. if(strstr($http_user_agent,"msie")) { echo "You are using Internet Explorer<br>"; } <H2> You can jump in and out of PHP! </H2> if(strstr($http_user_agent,"msie")) { <center><b>you are using Internet Explorer</b></center> } else { <center><b>you are not using Internet Explorer</b></center> } PHP peut interpréter les données d'une FORM. <H2> Php can allow form actions from within a second HTML (php) file</h2> <form action="action.php3" method="post"> Your name: <input type=text name=name> You age: <input type=text name=age> <input type=submit> </form> Avec le fichier : action.php3

Hi echo $name. You are echo $age years old. PHP décode les arguments et construits un «hash», automatiquement. (Donc les blocs de codes magique de PERL ne sont pas nécessaire en PHP. Avec les «add-ins» on peut trouver 700 fonctions en PHP. PHP a les types de variables suivants : Array, float, integer, object et string Les types de variables sont déterminés automatiquement par le contexte, pendant l'exécution. Mais il est toujours possible de forcer un typage avec le commande settype(). Les chaînes de caractères. Les chaînes sont spécifiés avec les quotes «"» et «'» comme en PERL. Avec le quote «"» les variables sont interprétés. Comme avec C et PERL, le caractère «\» sert de échappement pour les caractères spéciales. Exemples : \n linefeed (LF or 0x0A in ASCII) \r carriage return (CR or 0x0D in ASCII) \t horizontal tab (HT or 0x09 in ASCII) \\ backslash \$ dollar sign \" double-quote \[0-7]{1,3} Les caractères en octal \x[0-9a-fa-f]{1,2} Les caractères en hexadécimal. Il est possible de échapper des autres caractères, mais ceci génère une message d'erreur. On peut également échapper avec «'». Dans ce cas, les seul échappement sont «\\» et «\'» Les variables ne sont pas interprétés à l'intérieur des «\'». On peut également délimiter les chaînes avec «<<<xxx» ou xxx représente n'importe quel chaîne. Le chaîne est terminé par xxx sur un debut de ligne. Le chaîne xxx doit contenir que des alphanumérique.

Exemple : $str = <<<EOD Example of string spanning multiple lines using heredoc syntax. EOD; Voici une deuxième exemple : /* More complex example, with variables. */ class foo { var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <<<EOT My name is "$name". I am printing some $foo->foo. Now, I am printing some {$foo->bar[1]}. This should print a capital 'A': \x41 EOT;

Comme avec PERL, les chaînes peuvent être concaténés par '.' (dot). L'opérateur «+» ne marcherai pas pour le concaténation. On peut obtenir le «Nième» caractère d'un chaîne par indexation numérique. Voici un exemple : /* Assigning a string. */ $str = "This is a string"; /* Appending to it. */ $str = $str. " with some more text"; /* Another way to append, includes an escaped newline. */ $str.= " and a newline at the end.\n"; /* This string will end up being '<p>number: 9</p>' */ $num = 9; $str = "<p>number: $num</p>"; /* This one will be '<p>number: $num</p>' */ $num = 9; $str = '<p>number: $num</p>'; /* Get the first character of a string */ $str = 'This is a test.'; $first = $str[0]; /* Get the last character of a string. */ $str = 'This is still a test.'; $last = $str[strlen($str)-1];

Un exemple de PHP et MySQL Soit un table SQL : Field Type Length Not-Null Unique-Index ID int 100 Y N/A name char 1000 N N/A sex int 5 N N/A eye-color char 10 N N/A Une forme en HTML : search.html <HTML><HEAD><TITLE> A Form for person </TITLE></HEAD> <BODY BGCOLOR="white"> <H1>Retrieve people from data-base</h2> <P> <FORM METHOD=POST ACTION="/cgi-bin/jlc/results.html"> Sex<SELECT NAME="sex"> <OPTION>Male <OPTION>Female </SELECT> SELECT NAME="eye-color"> <OPTION>Blue <OPTION>Green <OPTION>Brown </SELECT> <P> <INPUT TYPE="SUBMIT" VALUE=" QUERY><INPUT TYPE=RESET> </FORM></BODY></HTML>

Le fichier PHP/HTML results.html : <HTML><HEAD><TITLE> Search Results </TITLE></HEAD> <BODY BGCOLOR="white"> <H1>Here are the results</h1> <P> // FIrst we connect to the data base // <LOGIN> is your user login for MySQL // <PASSWORD> is the MySQL passord for <LOGIN> mysql_connect('localhost','<login>','<password>') or die("<h3>could not connect to MySQL</h3>\n"); mysql_select_db("<yourdatabas>") or die( "<h3>could not select database</h3>"); echo " database opened.<p>"; // The query will have the form // SELECT * FROM DATA WHERE sex=male AND eye-color=blue // Build the query template $query = "SELECT * FROM DATA WHERE "; // append the modifiers $query.= " sex = '$sex' AND eye-color = '$eye-color'" // Make the query $results = mysql_query("data", $query); // how many answers? $num_results = mysql_numrows($results); > <UL>

// Print the results if (! $num_results); > <H2> No Persons in the data base with those eyes and sex</h2> else { while ($i < $num_results) { $id[$i] = msyql_result($result, $i, "id") $name[$i] = msyql_result($result, $i, "name") printf("<li> Person $name[$i] with ID $id[$i] </LI>"); > </UL> <A HREF="search.html">Search again</a> </BODY></HTML>

Exemples Vue en Cours <!-- Exemple1.php --> <html> <head> <title>php Exemples</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#ffffff" text="#000000"> <H1> lets test PHP </H1> <H2> Try Hello World</H2> $myvar = "Hello World"; echo $myvar; </body> </html> <!-- Exemple2.php --> <html> <head> <title>exemple2.php</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#ffffff" text="#000000"> echo "<h2>this is a test</h2>"; // This is a one-line c++ style comment /* This is a multi line comment yet another line of comment */ echo "<h2>this is yet another test</h2>"; echo "<h2>one Final Test</h2>"; # This is shell-style style comment </body> </html>

<!-- Exemple3.php --> <html> <head> <title>exemple3.php</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#ffffff" text="#000000"> <h3>navigator is echo $_SERVER['HTTP_USER_AGENT']; </h3> <h3>running file echo $_SERVER['SCRIPT_FILENAME']; </h3> <h3>on system echo $_SERVER['SERVER_NAME']; </h3> <H2> to get a list of environment variables with phpinfo() </H2> phpinfo() </body> </html> <!-- QueryForm.html --> <html> <head> <title>untitled Document</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#ffffff" text="#000000"> <H2>Retrieve people from data-base</h2> <P> <FORM method="get" action="gender-query.php"> Sex<SELECT NAME="gender"> <OPTION>male <OPTION>female </SELECT> <P> <INPUT TYPE=SUBMIT VALUE="Query"> <INPUT TYPE=RESET> </FORM> </BODY> </HTML>

<!-- GenderQuery.html --> <html> <head> <title>gender Query Results</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#ffffff" text="#000000"> <!-- <H1>First open the data base</h1> --> include("dbconnect.php"); mysql_select_db("asi2004") or die( "<h3>could not select database ASI2004</h3>"); echo " database ASI2004 opened.<p>"; // The query will have the form // SELECT * FROM DATA WHERE gender=?male // Build the query template $query = "SELECT * FROM students"; // append the modifiers $gender = $_GET["gender"]; $query.= " WHERE gender = '$gender'"; //Print the query text echo $query; echo "<h2>here are the results<h2>"; // Make the query $students = mysql_query($query) or die (mysql_error("cant do query")); //Show the results while ($student=mysql_fetch_array($students)) { echo "<h3>student : "; echo $student["name"]; echo " age "; echo $student["age"]; echo "<h3>"; } </body> </html>