Vous êtes sur la page 1sur 147

Développement Web

Sommaire
1.Architectures Web
2.Le langage HTML
3.JavaScript
4.La programmation Web avec PHP
5.Interface fonctionnelle PHP/MySQL
Développement Web

Session 1: Architectures Web


Sommaire

● Serveurs Web
● Technologies côté serveur
● Bases de données sur le Web

4
Serveurs Web
● Un site Web est un serveur d'informations inscrit sur le
WEB grâce à son identifiant (URL) sa présentation
(pages HTML) et ses procédures d'accès (HTTP).
● Le serveur web est l'ensemble des matériels, logiciels
et liaisons sur lequel sont implémentés les sites WEB et
qui permettent de les rendre consultables sur le WEB.

5
Serveurs Web
● Consultation de pages HTML statiques

6
Serveurs Web
● Les serveurs Web les plus connus sont:
● IIS (Internet Information Server) de Microsoft
● Apache : logiciel libre.
● WebSite
● NCSA httpd
● CERN httpd
● Personnal Web Server (PWS) de Microsoft

7
Serveurs Web
Configuration de Apache (httpd.conf)
• ServerName esmt.sn (ou adresse ip)
• Port 80
• DocumentRoot var/www/MonSiteWeb/
• MaxClients 150

8
Technologies côté serveur
● Le principe d'une page dynamique est d'être construite à la demande (à la
volée) par le serveur (côté serveur), en fonction de critères spécifiques.
● La présentation et le contenu affichés peuvent ainsi être personnalisés de
manière interactive, en fonction des produits, des internautes, des langues, etc.
● On reconnaît facilement un page dynamique grâce à l'URL qui s'affiche dans le
navigateur web de l'utilisateur:
– page statique: http://www.monsite.sn/accueil.htm: affiche la page
accueil.htm, stockée telle quelle sur le serveur,
– page dynamique: http://www.monsite.sn/accueil.php?langue=wo: affiche la
page accueil.php en demandant au serveur d'afficher le contenu de cette
page en wolof.

9
Technologies côté serveur

● Alors que les pages statiques font appel au html, les pages
dynamiques sont mises en oeuvre grâce à un langage de
programmation.
● Une page web dynamique est une page dont le code HTML
est produit par un langage de programmation.
– Le langage de programmation variera en fonction de la
technologie retenue (PHP, ASP,JSP, CGI, ColdFusion,
etc.).

10
Technologies côté serveur
● JSP (Java Server Pages)
– Au départ simple extension du langage Java, JSP est devenu
un véritable langage de développement web.
– il permet d'intégrer des scripts, ici sous forme de code Java,
dans les pages html.
– Lorsqu'une page JSP est appelée pour la première fois, elle est
compilée et transformée en servlet (programme côté serveur).
Ce servlet est exécuté et produit un contenu au format html qui
est envoyé à l'internaute.

11
Technologies côté serveur

● ASP (Active Server Pages) et ASP.net


– Développée par Microsoft, la technologie ASP est basée sur des
scripts côté serveur, le plus souvent écrits en Vbscript.
– Ces scripts sont exécutés par le serveur et leur résultat est produit
sous forme de pages html standards.
– Cette technologie offre toutefois le désavantage d'être intimement
liée à l'environnement Windows et au serveur IIS de Microsoft.
– Depuis 2002, ASP est remplacé par ASP.net.

12
Technologies côté serveur

● PHP (PHP Hypertext PreProcessor)


– PHP connaît un succès toujours croissant sur le Web.
– L'environnement Linux est sa plateforme de prédilection.
– Combiné avec le serveur Web Apache et la base de données
MySQL, PHP offre une solution particulièrement robuste,
stable et efficace, offrant en outre l'avantage d'être gratuite,
tous ces logiciels venant du monde des logiciels libres (Open
Source).

13
Technologies côté serveur

● Coldfusion
– Coldfusion est un langage de scripts intégrés au code html.
Créé par la firme Allaire.
– Son principal avantage est lié à la rapidité d'apprentissage et de
développement. Il se prête très bien à la mise en oeuvre de
sites marchands ou d'information.
– Coldfusion est disponible pour la plupart des plateformes de
développement classiques: Windows, Mac, Linux, Solaris, etc.

14
Technologies côté serveur

● Perl (Practical Extracting and Report Language)


– Perl est un langage de développement employé sur de
nombreux serveurs.
– Perl est né du besoin de disposer d'un langage optimisé pour
l'extraction d'informations de fichiers textes et la génération
de rapports.
– Même s'il n'est pas vraiment un langage destiné au Web, il
s'y est particulièrement bien adapté et aujourd'hui de très
nombreux utilisateurs de Perl sont des développeurs Web.

15
Technologies côté serveur

● CGI (Common Gateway Interface)


– Les CGI sont des composants exécutables (fichiers .exe
ou .dll) qui produisent sur le serveur des contenus html à
envoyer aux clients.
– Ils peuvent accomplir des tâches très variées comme écrire
dans des fichiers, accéder à des bases de données ou
produire du html.
– A la différence des langages de scripts (ASP, JSP, PHP, etc.),
les CGI sont compilés.

16
Technologies côté serveur

● Le moteur de scripts

17
Technologies côté serveur

Exemple de script côté serveur :


<html>
<head>
<title>Exemple de page dynamique</title>
</head>
<body>
Cette partie est statique, la partie qui suit a été traitée par le
serveur:
<?php
echo" Il est ",date(H)," heures ",date(i)," sur le serveur";
?>
</body>
</html>
18
Technologies côté serveur

Résultat :

19
Bases de données sur le Web

requête Page
appel de Html
Client Internet Serveur
la page
réponse
Script

exécution

Base de extraction Serveur Moteur


Connexion
données de données de base de scripts
de données
20
Bases de données sur le Web
Du client vers le serveur:
● L’utilisateur remplit un formulaire en ligne. Les données

sont envoyées au serveur web.


● Le logiciel serveur réagit en transmettant les données à

un script
● L’exécution du script se fait par un moteur de scripts.

● Une connexion au serveur de base de données est

établie pour interroger la base de données.

21
Bases de données sur le Web
Du serveur vers le client
● Les pages web sont assemblées à partir des résultats

produits par le serveur de bases de données et


renvoyées à l’utilisateur dans une enveloppe http, en
format HTML.
● Lorsque les données arrivent sur le poste client, le

navigateur fait de son mieux pour les afficher.

22
Bases de données sur le Web
• L’accès aux bases de données peut se faire via :
 les scripts CGI
 les Middleware
 API (Application Programming Interface)
•  Il y a donc plusieurs approches dont le choix dépend du
serveur Web et du système d’exploitation utilisés.

23
Bases de données sur le Web

● Connexion via les CGI

24
Bases de données sur le Web

● Connexion via les Middleware


– Un middleware est un traducteur qui met en relation deux
programmes essayant de d’échanger des informations.
– Utiliser cette technique consiste à développer une couche
logicielle entre l’application et le réseau.
– Le SGBD Sybase utilise un middleware, nommé Adaptive
Server.

25
Bases de données sur le
Web
● Connexion via les Middleware

26
Bases de données sur le
Web
● Connexion via les API
– Une API (Interface de programmation) permet de définir la
manière dont un composant informatique peut communiquer
avec un autre.
– C'est donc une interface de code source fournie par un système
informatique ou une bibliothèque logicielle.
– Une application peut utiliser une API de connectivité pour se
connecter à un SGBD, soumettre des instructions SQL, extraire
des données et se déconnecter.

27
Bases de données sur le
Web
● Connexion via les API
– Comme API de connectivité à une base de données, citons:
● L'API native de la BD: mis à disposition par les constructeurs
(Oracle, Informix, Sybase, etc.),
● ODBC (Open DataBase Connectivity): standard développé par
Microsoft qui permet d'interfacer une application avec n'importe
quel serveur de base de données,
● JDBC (Java DataBase Connectivity): API Java faisantt appel à
ODBC ou à des API propriétaires spécifique à chaque SGDB.

28
Bases de données sur le
Web
● ODBC

Jean-Marie PREIRA 29
Liens utiles

● Fiche de l'AWT:Sites dynamiques et bases de


données.
– http://www.awt.be/web/res/index.aspx?page=res,fr,fic,060,001
● LABTECH: ODBC
– http://wiki.labtech.epitech.net/ODBC-Open-DataBase-Connectivity.ashx

30
Développement Web

Session 2: langage HTML

31
SOMMAIRE

• Mise en forme d’un texte en HTML


• Images sur une page web
• Les hyperliens
• Les tableaux
• Multifenêtrages (les Frames)
• Les CSS

32
Mise en forme d’un texte en HTML

• Le HTML (Hypertext Markup Language) est un


langage permettant de décrire les différents
composants d’un document multimédia.
• Un document HTML est un fichier dont le suffixe
est .htm ou .html.
• Pour créer rapidement une page web nous avons
besoin d’un navigateur web et d’un éditeur de texte
(Bloc notes de Windows par exemple).

33
Mise en forme d’un texte en HTML

• Les commandes HTML utilisées pour le


formatage des informations sont désignées
sous le nom de balises, marqueurs ou tags,.
• Les balises sont délimitées par les signes ‘<‘ et
‘>‘

34
Mise en forme d’un texte en HTML
Ossature d’un fichier HTML

<html>
<head>
<title>Titre de la page</title>
</head>
<body>
Contenu de la page...
</body>
</html>

35
Mise en forme d’un texte en HTML
Les balises

• De nombreuses commandes HTML se


composent souvent d’une balise d’ouverture
(<balise>) et d’une balise de fermeture
(</balise>).
• Toutes les informations comprises entre ces
balises sont influencées par la commande en
question.

36
Mise en forme d’un texte en HTML
Les balises

EXEMPLE 1 :

<i>Ce texte apparaîtra en Italique</i>

EXEMPLE 2 :

<h1>TITRE 1 de niveau 1</h1>


<h2> Sous titre de niveau 2</h2>

37
Mise en forme d’un texte en HTML
Les balises

Commande Description
<h1></h1> ; <h2></h2> ;… ; <h6></h6> Variantes de titres (6 tailles possibles)
<b></b> Caractères gras
<i></i> Caractères Italiques
<big></big> Caractères plus grands
<small></small> Caractères plus petits
<u></u> Caractères soulignés
<s></s> ou <strike></strike> Texte barré
<sub></sub> Indice
<sup></sup> Exposant
<p></p> Paragraphe
<br /> ou <br> Saut de ligne
<hr> Ligne horizontale
38
Mise en forme d’un texte en HTML
Les balises

EXEMPLE 1 :

<i>Ce texte apparaîtra en Italique</i>

EXEMPLE 2 :

<h1>TITRE 1 de niveau 1</h1>


<h2> Sous titre de niveau 2</h2>

37
Mise en forme d’un texte en HTML
Les attributs

EXEMPLE 3 :
Par exemple l’attribut align, permet d’indiquer
l’alignement d’un paragraphe (à gauche, au centre ou à
droite).

<h1 align="center">Bienvenue sur ma première page Web</h1>


<p align=“right”>
C’est mon premier <font color=“green”>test</font>
</p>
<font color=“#3366CC”><u>A bientôt</u></font>

40
Mise en forme d’un texte en HTML
Références des commandes HTML

<!-- Texte de commentaire -->

<body>…</body>
alink="#RRGGBB" couleur (format RVB) d’un lien actif
link ="#RRGGBB" couleur du lien non activé
vlink ="#RRGGBB" couleur d’un lien visité
background="chemin de l’image d’arrière plan"
bgcolor ="#RRGGBB" couleur d’arrière plan
text ="#RRGGBB" couleur du texte

41
Mise en forme d’un texte en HTML
Références des commandes HTML

<font>…</font>
size="X" taille de la police (valeur de 1 à 7)
color ="#RRGGBB"
face =“nom de la police de caractères"

42
Mise en forme d’un texte en HTML
Références des commandes HTML
La balise <meta> permet de donner des informations sur le document

<head>
….
<meta name="author" content=" Nom de l’auteur">
<meta name="keywords" content=" liste de mots clés">
<meta name="description" content="courte description de la page">
<meta name="date" content="date de création">
</head>

Liens utiles:
• http://www.w3.org (W3C)
• http://mypage.bluewin.ch/a-z/richard_baud/920a.html
43
Mise en forme d’un texte en HTML
Couleurs standards

44
Mise en forme d’un texte en HTML
Caractères spécifiques

Caractère Code d’entité


à &agrave;
ç &ccedil;
é &eacute;
è &egrave;
ê &ecirc;
ù &ugrave;
ë &euml;
45
Mise en forme d’un texte en HTML
Couleurs standards

Février 2008 44
Mise en forme d’un texte en HTML
Liste numérotée

<OL> (Début) <OL>


<LH>Pour réussir:</LH>
<LH>Titre de la liste (facultatif)</LH>
<LI>Il faut travailler
<LI>premier item <LI>Beaucoup travailler
<LI>Deuxième item <LI>Toujours travailler
<LI>Encore travailler
…. </OL>
</OL> (Fin)

47
Mise en forme d’un texte en HTML
Liste avec puces
Le type de puce est défini dans la balise <LI>
par l’attribut TYPE ="DISC |CIRCLE | SQUARE "

<UL> (Début) <UL>


<LH>Pour réussir:</LH>
<LH>Titre de la liste (facultatif)</LH>
<LI type ="circle">Il faut travailler
<LI type=“…”>premier item <LI>Beaucoup travailler
<LI>Deuxième item <LI>Toujours travailler
<LI type ="square">Encore travailler
…. </UL>
</UL> (Fin)

48
Images sur une page web
Formats d’image

• Le HTML gère 3 formats d’image:


– GIF : Graphics Interchange Format,
image compressée sans perte
– JPEG : Joint Photographic Experts Group, image
compressée avec perte
– PNG : Portable Network Graphic,
il combine les propriétés des formats GIF et JPEG.

49
Images sur une page web
Insertion d’une image

• L’insertion d’une image est annoncée par le tag <IMG> avec un


certain nombre d’attributs :
– SRC ="chemin relatif ou absolu de l’image"
– WIDTH = " X" : largeur de l’image
– HEIGHT = "X" : hauteur de l’image
– ALIGN = "TOP | MIDDLE | BOTTOM | LEFT| CENTER |RIGHT "
– ALT =" texte alternatif pour les navigateurs qui ne peuvent afficher l’image "
– BORDER ="X " : largeur de la bordure de l’image
– VSPACE="X" et HSPACE ="X":espaces vides autour de l’image

50
Images sur une page web
Insertion d’une image

Exemple:

<IMG SRC= "jmp.gif" BORDER="1" HSPACE="20"


VSPACE="20"   WIDTH="70" HEIGHT="66">
<IMG SRC ="jmp.gif" BORDER ="1" VSPACE= "20" WIDTH
="140" HEIGHT ="66">
<BR>
<IMG SRC ="jmp.gif" BORDER ="1" HSPACE="20"
WIDTH="70" HEIGHT ="132">
<IMG SRC ="jmp.gif" BORDER ="1" WIDTH ="140" HEIGHT
="132">

51
Les Hyperliens

• Un lien hypertexte est un texte qui est sensible


au clic de la souris et qui provoque une action
sous ce clic (en général, le chargement d’un
autre document Web)
• Un lien hypermédia, sera par exemple une
image sensible au clic de la souris

52
Les Hyperliens
Ancres

Une ancre est l’indication d’une cible par une balise <A>.
La cible peut être :
– Une étiquette (ou un signet) dans un document local
ou distant.
– Un document local ou distant
défini par son chemin d’accès ou son URL.

53
Les Hyperliens
Ancres
● La déclaration de l’étiquette (cible) sur le document
concerné se fait par:
<A NAME="mon_etiquette">Mon étiquette</A>

54
Les Hyperliens
Ancres

L’hyperlien est déclaré dans une balise <A> avec


l’attribut HREF :
 <A HREF="#mon_etiquette">Vers mon étiquette </A>
(lien local vers l’étiquette «mon_etiquette»)
 <A HREF="http://www.MonSite.sn">Mon site</A>
(lien vers le mon site)

55
Les Hyperliens
Lien vers une adresse e-mail

• La commande pour un tel lien est la suivante :


<a href="mailto:jmp@jmp.sn">Pour écrire</a>

56
TABLEAUX

• Un tableau est constitué de lignes et de


cellules.
• Les balises qui délimitent un tableau sont :
<TABLE>.........</TABLE>

57
TABLEAUX

• Les attributs associés à la balise <table> sont:


– border = "X " épaisseur en pixel de la bordure du tableau
– align = "center | left | right"
– cellpadding = "X" espacement du texte d’une cellule par rapport au
bord
– cellspacing = "X" distance entre les cellules
– width = "X" ou "X%" largeur du tableau
– Height = "X" ou "X%" hauteur du tableau

58
TABLEAUX
Titre

• <CAPTION>.......</CAPTION> définit le titre du tableau

<table align=center>
<caption>Mon premier tableau</caption>

59
TABLEAUX
les lignes

<TR>........</TR> définit une ligne du tableau


• Les attributs associés sont:
• align = "center | left | right"
• valign = "top | middle | bottom"

60
TABLEAUX
Cellules de données

• <TD>........</TD> définit une cellule avec les


attributs :
– align = "center | left | right"
– valign = "top | middle | bottom" 
– colspan = "X " nombre de cellules fusionnées en colonne
– rowspan = "X " nombre de cellules fusionnées en ligne

61
TABLEAUX
En-tête

• <TH>........</TH> définit une cellule en-tête pour


colonne ou ligne
Attributs :
– align = " left | right"
– valign = "top | bottom" 
– colspan = "X " nombre de cellules fusionnées en colonne
– rowspan = "X " nombre de cellules fusionnées en ligne

62
TABLEAUX
Exemple

<TABLE BORDER=1 ALIGN=CENTER>


<CAPTION ALIGN = TOP>Titre du tableau</CAPTION>
<TR ALIGN = center >
<TH>....</TH><TH>colonne A</TH><TH>colonne B</TH>
<TH>colonne C</TH></TR>
<TR ALIGN = Center ><TH >ligne 1</TH>
<TD COLSPAN = 2 BGCOLOR = yellow>A1 et
B1</TD><TD>C1</TD></TR>
<TR ALIGN = Center ><TH>ligne 2</TH><TD>A2</TD>
<TD COLSPAN = 2 ROWSPAN=2 BGCOLOR = green >B2 et C2 et B3
et C3</TD>
</TR>
<TR ALIGN = Center ><TH>ligne 3</TH><TD>A3</TD></TR>
</TABLE>

63
TABLEAUX
Résultat

64
Formulaires HTML
Principe général
● Les formulaires sont utilisés pour échanger des
données entre le poste client  et le serveur.
● Cet échange de données fait appel à des
programmes spéciaux s’exécutant sur le
serveur (scripts CGI, ASP ou PHP).

65
Formulaires HTML
Principe général
● L’utilisateur remplit le formulaire et le valide ce qui a
pour effet d’envoyer  des données vers le script situé
sur le serveur

66
Formulaire HTML
Balise <FORM>
• <form>…</form> délimitent un formulaire
• Les attributs associés à la balise <form> sont:
action="URL du script recevant les données"
name= "nom du formulaire"
method= "post" ou "get", méthode de transmission des
données

67
Formulaire HTML
Objets input
● Les objets input permettent la saisie de
données, ils sont de plusieurs types.
● On les déclare par la balise <input> et l’attribut
type=

68
Formulaire HTML
Objets input
<input>
Type= Type d’objet Autres attributs
text Champ de saisie Size, maxlength, value, name
password Champ de mot de passe Size, maxlength, value, name
hidden Champ masqué value, name
Radio Bouton radio value, name, checked
checkbox Case à cocher value, name, checked
Submit Bouton de soumission formulaire value, name

Reset Bouton d’initialisation value, name


Button bouton value, name
69
Formulaire HTML
Zone de saisie
● La zone de saisie permet la saisie de plusieurs paragraphes
● <textarea>…</textarea> délimitent une zone de saisie.
● Ses attributs sont:
name="…"
cols="largeur"
rows="nbre de ligne"

70
Formulaire HTML
Menu déroulant
● <select>…</select> délimitent un menu déroulant.
● <option>…</option> délimitent chaque option du menu

<select name="...">
<option value="...">choix1</option>
<option value="...">choix2</option>
<option value="..."  selected>choix3</option>
</select>

• L’attribut selected permet de sélectionner une option par


défaut 71
Développement Web

Session 4: Programmation Web avec PHP

72
Sommaire

Qu'est-ce que php ?

Les scripts PHP

Les applications PHP

Les bases du langage PHP

Les tableaux

Les chaînes de caractères

Transmission de données

Fonctions de base PHP

Variables prédéfinies

Classes et objets 73
Qu'est-ce que php ?

• PHP (PHP Hypertext Preprocessor) est un langage de programmation


web.
• Il est principalement utilisé pour
– le développement de sites web dynamiques,
– le développement d’applications web pour internet, intranet ou
extranet.
• Développé par près de 1 000 ingénieurs regroupés au sein de la
fondation Apache, PHP réunit autour de lui une communauté qui
compte environ 4 500 000 développeurs.

74
Qu'est-ce que php ?

• PHP est un logiciel libre distribué sous une licence


Open Source
• PHP est disponible pour l’ensemble des systèmes
d’exploitation courants
– Windows toutes versions supérieures à Windows 95,
– Unix, Linux, Solaris, Mac OS X, etc.

75
Qu'est-ce que php ?

• Mode de fonctionnement
– La programmation avec php consiste à insérer des lignes de
programmation dans la source d'un document html.
– Ces lignes représentent une succession de commandes qui
doivent être interprétées par la machine qui exécute le script.
– PHP est un langage de script qui fonctionne côté serveur, le client
ne reçoit que le résultat du script, sans aucun moyen d'avoir accès
au code qui a produit ce résultat.

76
Qu'est-ce que php ?

• Historique
– Début 1995: Personnal Home Page Tools, bibliothèque Perl créé par
Rasmus Lerdorf pour compter les visiteurs de son site personnel.
– Été 1995: PHP/FI (Personnal Home Page/Forms Interpreter), la
bibliothèque Perl s’est muée en une implémentation directement en
C. On peut alors communiquer avec les bases de données, créer
des applications dynamiques pour le web, gérer des formulaires,
etc.
– Novembre 1997: PHP/FI 2.0

77
Qu'est-ce que php ?

• Historique – suite
– Juin 1998: PHP 3.0 (PHP Hypertext Preprocessor)
refonte de PHP/FI par Andi Gustman et Zeev Suraski
(fondadeur de Zend) et Rasmus.
– Mai 2000: PHP 4.0, intégration d’un nouveau moteur de
script, le Zend Engine.
– 2005: PHP 5.0, avec un nouveau moteur, le Zend Engine
2

78
Qu'est-ce que php ?

Exemple:
<html>
<head>
<title>Exemple1</title>
</head>
<body>
<h1 align="center">BIENVENUE!</h1>
<?php
$nom="Pierre";
echo"<h2 align=‘center’>sur le site web
personnel de $nom</h2>";
?>
</body>
</html>

79
Qu'est-ce que php ?
• La règle du traitement par le serveur est la suivante :
– Le code PHP est inclus entre une balise de début (<?php par exemple), et
une balise de fin (?> par exemple).
– Lorsque le programme d'analyse détecte la balise de début <?php, il passe
en « mode PHP » et exécute les instructions qu’il lit jusqu'à ce que la balise
de fin ?> soit rencontrée.
– Lorsque le programme d'analyse rencontre la balise de fin , il considère que
les instructions qui suivent ne sont plus des scripts PHP et il les traite
comme un code HTML, il se contente donc de les envoyer au navigateur
client pour qu’il les interprète.

80
Qu'est-ce que php ?

• Le PHP permet la génération automatique de codes


HTML.
• Un même fichier peut comporter plusieurs blocs de
code PHP.
• Les blocs de code PHP peuvent intervenir n'importe où
dans un code HTML.

81
Les scripts PHP

• <?
...
Script à exécuter
...
?>
Ce marquage demande parfois une configuration du serveur pour être
accepté.
• <SCRIPT LANGUAGE="php">
...
Script à exécuter
...
</SCRIPT>

82
Les scripts PHP

• <%
...
Script à exécuter
...
%>
Ce marquage style ASP est utilisé mais n'est pas reconnu par tous les serveurs web.  
• <?php
...
Script à exécuter
...
?>
Pour des raisons de commodité, il est conseillé d'utiliser cette solution qui est plus
condensée et reste acceptée par l'ensemble des serveurs.

83
Les scripts PHP

Instructions
Toute instruction PHP se termine par un ";" 
Commentaires
• Commentaire sur une ligne: // ou #
• Commentaire sur plusieurs lignes:
/* ...
……..*/

84
Les applications PHP
• Les applications PHP
– PHP dispose d’un véritable écosystème.
– Certaines solutions facilitent et accélèrent le développement, d’autres se concentrent sur le
déploiement ou l’administration.
– Certaines de ces solutions sont produites par la communauté Open Source. On peut citer :
• eGroupware (travail collaboratif),
• SPIP (gestion de contenu),
• phpBB (forum),
• SquirrelMail (webmail),
• PhpMyAdmin (interface d’administration de MySQL),
• FPDF (bibliothèque pour la création de fichier PDF).
– Le site http://www.guidephp.com une sélection des meilleurs applications PHP

85
Les applications PHP
• Les ressources d’aide
– Le site de référence PHP: propose un accès à la documentation en
ligne (site Internet: http://php.net )
– Afup: Association française des utilisateurs de PHP (site Internet:
http://www.afup.org)
– PHPindex.com: site pionners français sur PHP
(site Internet: http://phpindex.com)
– Nexen.com: propose de nombreux articles sur l’utilisation de PHP
(site Internet: http://phpfrance.com)

86
Les bases du langage PHP

Les types
• Le type d'une variable ou d'une constante est défini par la valeur qui lui a
été affectée lors de sa création. Il existe cinq types de données.

Type mots clés


Entier integer
Décimal   real, double, float
chaîne de caractère string
tableau array
Objet  object
Booléen bool 87
Les bases du langage PHP

Les constantes
• Pour créer une constante, il faut un identifiant (un nom) valide et la
créer en utilisant la fonction :
define("nom_de_la_constante",valeur_de_la_constante );
• L'appel de la constante ainsi créée se fait par le nom choisi

88
Les bases du langage PHP

Les constantes

<?php
define(“SALUTATION", “Bonjour!");
define("annee", 1970);
echo SALUTATION, " est du type ", gettype(SALUTATION), "<br>";
echo annee, " est du type ", gettype(annee), "<br>";
?>

La fonction gettype() permet de définir le type de la constante (ou de la


variable).
89
Les bases du langage PHP

• Les constantes prédéfinies


– PHP_VERSION, (donne la version PHP)
– PHP_OS, (renvoie le nom du SE)
– __FILE__, (renvoie le nom du fichier en cours d’exécution)
– __LINE__, (renvoie le numéro de la ligne en cours d’exécution)
• Les valeurs des constantes prédéfinies et des variables d'environnement
peuvent être obtenues à partir de l'appel de la fonction phpinfo().
<?php phpinfo(); ?>

90
Les bases du langage PHP

Les variables
• Pour définir une variable, il suffit de l'initialiser.
• Il n’existe pas de partie déclarative dans PHP.
• Les variables PHP sont toutes précédées du signe $

91
Les bases du langage PHP

Les variables
• il est possible de réaliser des conversions. Dans ce cas, le type de données
ciblées doit être explicitement mentionné

<?php
$ma_variable=1;     // $ma_variable est de type integer et vaut 1
$chaine = (string) $ma_variable ; /*   $chaine est de type "string" chaîne
de caractère et vaut "1" */
?>

• il est possible de supprimer une variable, à tout moment, en utilisant la


fonction unset.

unset($ma_variable) ; // $ma_variable est supprimée du programme 

92
Les bases du langage PHP

Les opérateurs
• Opérateurs arithmétiques :
– + (addition), - (soustraction), * (multiplié), / (divisé), % (modulo),
– ++ (incrément), --(décrément).
• Opérateurs d’assignement :
– = (affectation),
– *= ($x*=$y équivaut à $x=$x*$y),
– /=, +=, -=, %=
• Opérateurs logiques :
– and, && (et), or, || (ou), xor (ou exclusif), ! (non)
• Opérateurs de comparaison :
– == (égalité), < (inférieur strict), <= (inférieur large), >, >=, != (différence)

93
Les bases du langage PHP

Les fonctions
• PHP permet l’écriture de fonctions.
• Les fonctions peuvent prendre des arguments dont il
n’est pas besoin de spécifier le type.
• L’appel à une fonction peut ne pas respecter son
prototypage (nombre de paramètres).

94
Les bases du langage PHP

Les fonctions

function mafonction($toto) {
$toto += 15;
echo ‘’Salut !’’;
return ($toto+10);
}
$nbr = MaFonction(15.1);

95
Les bases du langage PHP
Structures conditionnelles
Même syntaxe qu’en langage C
• if (expression1) {
instructions…
} elseif (expression2) {
instructions…
} else {
instructions…
}

• switch (variable ou expression) {


case valeur1 : {instructions… } break;
case valeur2 : {instructions… } break;

default : { … }
}

96
Les bases du langage PHP
Structures conditionnelles
<?php
if ($i == 0)
{ print "i &eacute;gale 0"; }
if ($i == 1)
{ print "i &eacute;gale 1"; }
if ($i == 2)
{ print "i &eacute;gale 2"; }
?>

<?php
switch ($i) {
case 0: print "i &eacute;gale 0"; break;
case 1: print "i &eacute;gale 1"; break;
case 2: print "i &eacute;gale 2"; break;
}
?>

97
Les bases du langage PHP
Structures de boucle
• for
Les boucles for sont les boucles les plus complexes en PHP. Elles fonctionnent comme les boucles for
du langage C. La syntaxe des boucles for est la suivante:
<?php
for (expr1; expr2; expr3) {
instructions…
}
?>
• La première expression (expr1) est évaluée (exécutée), quoi qu'il arrive au début de la boucle.
• Au début de chaque itération, l'expression expr2 est évaluée. Si l'évaluation vaut TRUE, la boucle
continue et l'instruction est exécutée. Si l'évaluation vaut FALSE, l'exécution de la boucle s'arrête.
• A la fin de chaque itération, l'expression expr3 est évaluée (exécutée).

98
Les bases du langage PHP
Structures de boucle (for)
<?php
for ($i = 1; $i <= 10; $i++) {
print $i;
}
?>

<?php
for ($i = 1; ; $i++) {
if ($i > 10) break;
print $i;
}
?>

99
Les bases du langage PHP
Structures de boucle
• while
• La boucle while est le moyen le plus simple d'implémenter une boucle en PHP. Cette boucle se
comporte de la même manière qu'en C. La syntaxe est la suivante :
<?php
while (expression) {
instructions…
}
?>
• La signification d'une boucle while est très simple. Le PHP exécute l'instruction tant que l'expression
de la boucle while est évaluée comme TRUE. La valeur de l'expression est vérifiée à chaque début
de boucle, et, si la valeur change durant l'exécution de l'instruction, l'exécution ne s'arrêtera qu'à la
fin de l'itération (chaque fois que le PHP exécute l'instruction, on appelle cela une itération). De
temps en temps, si l'expression du while est FALSE avant la première itération, l'instruction ne sera
jamais exécutée.

100
Les bases du langage PHP
Structures de boucle (while)

<?php
$i = 1;
while ($i <= 10) {
print $i;
$i++;
}
?>

101
Les bases du langage PHP
Structures de boucle
• do..while
• Les boucles do..while ressemblent beaucoup aux boucles while, mais l'expression est
testée à la fin de chaque itération plutôt qu'au début.
<?php
do {
instructions…
} while (expression);
?>
• La principale différence par rapport à la boucle while est que la première itération de
la boucle do..while est toujours exécutée (l'expression n'est testée qu'à la fin de
l'itération), ce qui n'est pas le cas lorsqu’on utilise une boucle while (l'expression est
vérifiée au début de chaque itération).

102
Les bases du langage PHP
Structures de boucle (do .. while)

<?php
$i = 1;
do {
print $i;
} while ($i < 10);
?>

103
Les tableaux


Principe
– Création à l’aide de la fonction array()
– Uniquement des tableaux à une dimension

Les éléments d’un tableau peuvent pointer vers d’autres tableaux
– Les éléments d’un tableau peuvent appartenir à des types distincts
– L’index d’un tableau en PHP commence de 0
– Pas de limites supérieures pour les tableaux
– La fonction count() donne le nombre d’éléments d’un tableau

104
Les tableaux


Les tableaux indicés
– Accéder aux éléments par l’intermédiaire de numéros

//$tableau[indice] = valeur;
$jour[3] = "Mercredi";
$note[0] = 20;

//$tableau = array(valeur0, valeur1,..., valeurN);


$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi",
"Samedi");
$note = array(20, 15, 12.6, 17, 10, 20, 11, 18, 19);

//$variable = $tableau[indice];
$JJ = $jour[6]; // affecte "Samedi" à $JJ
echo $note[1] + $note[5];

105
Les tableaux


Les tableaux associatifs (ou table de hachage)
– Les éléments sont référencés par des chaînes de caractères associatives en guise
de nom: la clé d’index

//$tableau["indice"] = valeur;
$jour["Dimanche"] = 7
$jour["Mercredi"] = "Le jour des enfants"

//$tableau = array(ind0 => val0, ind1 => val1,..., indN => valN);
$jour = array("Dimanche" => 1, "Lundi" => 2, "Mardi" => 3, "Mercredi" => 4,
"Jeudi" => 5, "Vendredi" => 6, "Samedi" => 7);

$variable = $tableau["indice"];
$JJ = $jour["Vendredi"]; //affecte 6 à $JJ
echo $jour["Lundi"]; //retourne la valeur 2

106
Les tableaux

● Tableaux multidimensionnels
– Pas d'outils pour créer directement des tableaux multidimensionnels
– L'imbrication des tableaux est possible

// $tab1 = array(Val0, Val1,..., ValN);


// $tab2 = array(Val0, Val1,..., ValN);
// Création d'un tableau à deux dimensions
// $tableau = array($tab1, $tab2);
$mois = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre",
"Novembre", "Décembre");
$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$element_date = array($mois, $jour);

// $variable = $tableau[indice][indice];
$MM = $element_date[0][0]; //affecte "Janvier" à $MM
echo $element_date[1][5] . " 7 " . $element_date[0][2] . "2002"; // retourne "Jeudi 7 Mars 2002"

107
Les tableaux


Lecture des éléments d’un tableau
– Avec une boucle for
for ($i=0; $i<count($tab) ; $i++){
if ($tab[$i]== "a") {echo $tab[$i],
"<br />"; }
}
– Avec une boucle while
$i=0;
while ($tab[$i]){
if ($tab[$i][0] =="a" ) {
echo $tab[$i], "<br /> "; }
}
108
Les tableaux

● Lecture des éléments d'un tableau


– Avec La boucle foreach

$jour = array("Dimanche", "Lundi", "Mardi",


"Mercredi", "Jeudi", "Vendredi", "Samedi");
$i = 0;
foreach($jour as $JJ) {
echo "La cellule n° ". $i . " : " . $JJ . "<br>";
$i++;
}

109
Les tableaux


Lecture des éléments d’un tableau
– Parcours d'un tableau associatif
Réalisable en ajoutant avant la variable $valeur, la clé associée

$tableau = array(clé1 => val1, clé2 => val2, ..., cléN => valN);
foreach($tableau as $clé => $valeur) {
echo "Valeur ($clé): $valeur";
}
$jour = array("Dimanche" => 7, "Lundi" => 1, "Mardi" => 2, "Mercredi" =>
3, "Jeudi" => 4, "Vendredi" => 5, "Samedi" => 6);
foreach($jour as $sJJ => $nJJ) {
echo "Le jour de la semaine n° ". $nJJ . " : " . $sJJ . "<br>";
}

110
Les tableaux
Fonctions de tri

Tri selon les valeurs
– La fonction sort() effectue un tri sur les valeurs des éléments d’un tableau selon un
critère alphanumérique :selon les codes ASCII :
 « a » est après « Z » et « 10 » est avant « 9 »)
 Le tableau initial est modifié et non récupérables dans son ordre original
 Pour les tableaux associatifs les clés seront perdues et remplacées par un indice créé après le
tri et commencant à 0
– La fonction rsort() effectue la même action mais en ordre inverse des codes ASCII.
– La fonction asort() trie également les valeurs selon le critère des codes ASCII, mais en
préservant les clés pour les tableaux associatifs
– La fonction arsort() la même action mais en ordre inverse des codes ASCII
– la fonction natcasesort() effectue un tri dans l’ordre alphabétique non ASCII (« a » est
avant « Z » et « 10 » est après « 9 »)

111
Les tableaux


Fonctions de tri
– Tri sur les clés

La fonction ksort() trie les clés du tableau selon le critère des codes
ASCII, et préserve les associations clé /valeur

La fonction krsort() effectue la même action mais en ordre inverse des codes
ASCII
<?php
$tab2 = array ("1622"=>"Molière","1802"=>"Hugo","1920"=>"Vian") ;
ksort ($tab2);
echo "<h3 > Tri sur les clés de \$tab2 </h3>" ;
foreach ($tab2 as $cle=>$valeur) {
echo "<b> l’élément a pour clé : $clé; et pour valeur : $ cvaleur
</b> <br />";
}
?>

112
Les tableaux

● Les fonctions de tableaux


$tableau = array_count_values($variable);
retourne un tableau comptant le nombre d'occurrences des valeurs d'un tableau.
$tableau = array_diff($var_1, $var_2, ..., $var_N);
retourne dans un tableau contenant les valeurs différentes entre deux ou plusieurs tableaux.
$tableau = array_filter($variable, "fonction")
retourne un tableau contenant les enregistrements filtrés d'un tableau à partir d'une fonction.
$tableau = array_flip($variable);
intervertit les paires clé/valeur dans un tableau.
$tableau = array_intersect($var_1, $var_2, ..., $var_N);
retourne un tableau contenant les enregistrements communs aux tableaux entrés en argument.

113
Chaînes de caractères

Principe
– Peuvent être constituées de n'importe quel caractère alphanumérique et de ponctuation, y compris les
caractères spéciaux
\tLa nouvelle monnaie unique, l' €uro, est enfin là...\n\r
– Une chaîne de caractères doit être toujours entourée par des guillemets simples (')ou doubles (")
" Ceci est une chaîne de caractères valide."
'Ceci est une chaîne de caractères valide.'
"Ceci est une chaîne de caractères invalide.'
– Des caractères spéciaux à insérer directement dans le texte, permettent de créer directement certains effets
comme des césures de lignes
Car Code ASCII Code hex Description
\car échappe un caractère spécifique.
"" 32 0x20 un espace simple.
\t 9 0x09 tabulation horizontale
\n 13 0x0D nouvelle ligne
\r 10 0x0A retour à chariot
\0 0 0x00 caractère NUL
\v 11 0x0B tabulation verticale

114
Chaînes de caractères

Quelques fonctions de manipulation
chaîne_result = addCSlashes(chaîne, liste_caractères);
ajoute des slashs dans une chaîne

chaîne_result = addSlashes(chaîne);
ajoute un slash devant tous les caractères spéciaux.
chaîne_result = chop(chaîne);
supprime les espaces blancs en fin de chaîne.
caractère = chr(nombre);
retourne un caractère en mode ASCII
chaîne_result = crypt(chaîne [, chaîne_code])
code une chaîne avec une base de codage.
echo expression_chaîne;
affiche à l'écran une ou plusieurs chaînes de caractères.
$tableau = explode(délimiteur, chaîne);
scinde une chaîne en fragments à l'aide d'un délimiteur et retourne un tableau.

115
Transmission des données

Les variables de formulaire


• Les formulaires HTML constituent une excellente méthode de
transfert des données d'un poste client à un serveur web.
• Chaque nom indiqué dans un formulaire pour identifier une
zone de saisie (champ texte, case à cocher, champ masqué,
bouton,...) est automatiquement transformé en une variable par
PHP

116
Transmission des données

Les variables de formulaire


● Les variables de formulaire générées par PHP peuvent se
présenter sous différentes formes suivant la valeur du
paramètre register_globals(=Off ou On) du fichier php.ini:
– $nom (On)
– $_POST[‘nom’] (Méthode POST) (Off)
– $_GET[‘nom’] (Méthode GET) (Off)

117
Les bases du langage PHP

Les variables d’URL (Query String)


● Une query string: emballage « nom=valeur », permet de
transmettre des données (Méthode GET) à partir d’un poste
client vers le serveur web.
● Chaque nom (query) est automatiquement transformé en
variable par PHP

script.php?nom1=val1&nom2=val2&nom3=val3
http://monsite.com/monscript.php?nom=preira&prenom=jm

118
Les bases du langage PHP

Les variables d’URL (Query String)


● Les variables d’URL générées par PHP peuvent se
présenter sous 2 formes suivant la valeur du paramètre
register_globals du fichier php.ini:
– $nom (On)
– $_GET[‘nom’] (Off)

119
Fonctions de base PHP

Fonction Description Exemple


La commande require_once() se
remplace elle-même par le contenu du
require_once() fichier spécifié, comme les require_once(‘connexion_db.php’);
préprocesseurs C le font avec la
commande #include.

La fonction include() inclus et évalue le include(‘fichier_externe.php’);


include()
fichier spécifié en argument.

120
Fonctions de base PHP

Fonction Description Exemple


Écrit une chaîne de caractères dans le code
echo echo "Bonjour le monde";
source HTML

header("Location:
http://www.php.net/");
/* Redirige le client vers le site PHP */
header() Envoie un en-tête HTTP.
exit();
/* Garantit que le code ci-dessous
n'est jamais exécuté. */

calcule le MD5 de la chaîne de caractères str


en utilisant l'algorithme RSA Data Security,
md5() Inc. MD5 Message-Digest Algorithm. Le $motdepasse=md5("passer");
résultat est un nombre de 32 caractères
hexadécimaux.

121
Fonctions de base PHP

Fonction Description Exemple


isset() Détermine si une variable est <?php
affectée $a = "test"; echo isset ($a); // TRUE
unset($a);
echo isset ($a); // FALSE
?>

session_start() Crée une session ou restaure une <?


session sur le serveur session_start();
If(isset($_SESSION[‘login’])) { /*Si la variable
session a été initialisée*/
………..
}
?>

122
Variables prédéfinies

Variable Description
VARIABLES DE SERVEUR
Le nom du fichier du script en cour d'éxécution, par rapport
$_SERVER['PHP_SELF']
au document root.

Le nom du serveur hôte qui éxécute le script suivant. Si le


$_SERVER['SERVER_NAME'] script est exécuté sur un hôte virtuel, ce sera la valeur
définie pour cet hôte virtuel.

VARIABLES HTTP
Tableau associatif des valeurs passées au script courant via le
$_GET[‘string’]
protocole HTTP et la méthode GET
Tableau associatif des valeurs passées au script courant via le
$_POST[‘string’]
protocole HTTP et la méthode POST
VARIABLES DE SESSION
Tableau associatif des valeurs stockées dans les sessions, et
$_SESSION[‘string’]
accessible au script courant
123
Développement Web

Session 5: Interface PHP / MySQL

124
Sommaire

● MySQL
● Interfaçage avec une base de données
● Connexion à MySQL
● Sélection de la base de données
● Exécution de la requête SQL
● Exploitation des données
● Autres fonctions
125
MySQL : Le Système de Gestion de
Base de Données
● Une base de données (BDD) est un ensemble
d’informations structurées, cohérentes et non
redondantes.
● Un Système de Gestion de Base de Données
(SGBD) assure de façon adaptée, la gestion de la
BDD et l’accès à ses informations
● Le langage SQL (Structured Query Language) est un
langage normalisé d’interrogation de bases de
données

126
Le modèle relationnel
● Une base de données relationnelle est constituée
de tables (ou relations) qui satisfont certains
critères du modèle relationnel défini par Codd au
début des années 70.
– Une table est un ensemble constitué d’éléments
appelés enregistrements (ou tuples).
● Chaque enregistrement est constitué de champs (ou attributs)
prenant leurs valeurs dans un domaine spécifique.
● L’identifiant (ou clé primaire) d’une table est le champ
permettant d’identifier de manière unique chaque
enregistrement de la table.
127
Table « eleves »
CHAMPS

ENREGISTREMENT

IDENTIFIANTS
128
Commandes SQL de base
● SELECT (extraction de données)
● INSERT (Ajout d’un nouvel
enregistrement)
● UPDATE (modification de données)
● DELETE (suppression d’un enregistrement)

129
Exemples de requêtes SQL

SELECT * FROM eleves

130
SELECT nom FROM eleves

131
SELECT prenoms, nom FROM eleves
WHERE classe=‘6 ème B’

132
Syntaxe
● SELECT

SELECT [DISTNCT] attributs FROM


relation [WHERE condition] [ORDER BY
attributs ASC | DESC]] [LIMIT [a,] b]

133
Syntaxe
● INSERT

Insertion étendue:
INSERT INTO relation (liste des attributs)
VALUES (liste des valeurs)
Insertion standard:
INSERT INTO relation VALUES(liste
exhaustive et ordonnée des valeurs)

134
Syntaxe
● UPDATE

UPDATE relation SET attribut1=valeur1,


attribut2=valeur2,… WHERE condition

135
Syntaxe
● DELETE

DELETE FROM relation WHERE condition

136
Liens utiles
● http://cyberzoide.developpez.com
● http://dev.nexen.net/docs/
● http://www.mysql.com

137
Interfaçage avec une base de données


Principe
– PHP propose de nombreux outils permettant de travailler avec la plupart des SGBDR

Oracle, Sybase, Microsoft SQL Server, PostgreSQL ou encore MySQL
– Lorsqu'une base de données n'est pas directement supportée par Php, il est possible
d'utiliser un driver ODBC (pilote standard) pour communiquer avec les bases de données
– Php fournit un grand choix de fonctions permettant de manipuler les bases de données.

Quatre fonctions sont essentielles:
– La fonction de connexion au serveur
– La fonction de choix de la base de données
– La fonction de requête (exécution)
– La fonction de déconnexion

138
Interfaçage avec une base de données


Principe
– Avec le SGBD MySQL, ces fonctions sont :
● mysql_connect
● mysql_select_db
● mysql_query
● mysql_close

139
Connexion à MySQL

mysql_connect()
/*adresse du serveur: adresse IP ou le nom de la Hote (localhost=serveur local).*/
$server="localhost";
/*nom de l'utilisateur ayant droit sur la bdd, ici c'est l'administrateur général root*/
$user="root";
//mot de passe de cet utilisateur
$pwd="";
// connexion au serveur MYSQL
$conn=mysql_connect ($server, $user, $pwd);

140
Sélection de la base de données

mysql_select_db ()

/*nom de la base de données.*/


$bdd = "seminaire_db";
/*sélection de la bdd à utiliser pour les requêtes. */
mysql_select_db ($bdd);

141
Exécution de la requête SQL

mysql_query()

/*Définition requête SQL */


$requete="requête SQL";
/*execution de la requête et affichage si erreur*/
$execution=mysql_query($requete) or die(mysql_error());

142
Exploitation des données

mysql_fetch_row()
/*Retourne une ligne de résultat sous la forme d'un tableau. Chaque élément du
tableau étant la valeur d'un champ.*/
While($ligne=mysql_fetch_row($execution)) {
//tant qu'il y a des lignes de résultat
echo "$ligne[0]<br>"; //valeur du 1er champ
echo $ligne[1]; //valeur du 2e champ
echo"<br>";
}

143
Exploitation des données
mysql_fetch_array()
mysql_fetch_assoc()
/*Retourne une ligne de résultat sous la forme d'un tableau associatif.*/
While($ligne=mysql_fetch_array($execution)) {
//tant qu'il y a des lignes de résultat
echo "$ligne['chp1']<br>";//valeur attribut chp1
echo $ligne['chp2']; //valeur attribut chp2
echo"<br>";
}

144
Exploitation des données
mysql_fetch_object()
/*Retourne une ligne sous forme d' objet dont les attributs sont les noms des
champs*/
While($ligne=mysql_fetch_object($execution)) {
//tant qu'il y a des lignes de résultat
echo "$ligne->chp1 <br>";//valeur attribut chp1
echo $ligne->chp2; //valeur de attribut chp2
echo"<br>";
}

145
Autres fonctions

Autres fonctions
Retourne le nombre de ligne
$nb=mysql_num_rows($execution);
d'un résultat

mysql_close(); Ferme la connexion MySQL

Retourne le texte associée avec


$erreur=mysql_error(); l'erreur générée lors de la
dernière requête

Retourne l'identifiant généré


$dernier_id=mysql_insert_id(); par la dernière requête
INSERT.
146
Liens utiles

● PhpDébutant: Fonction Php pour MySQL:


– http://www.phpdebutant.org/article65.php
● Gestion de bases MySql avec PHP
– http://www.ac-creteil.fr/util/programmation/scripts/mysql-php.php

147

Vous aimerez peut-être aussi