Vous êtes sur la page 1sur 161

Web Dynamique

SMI

Semestre S6

A. Zinedine
Plan du cours

Partie 1
Généralités
HTML et XHTML
CSS
Partie2
JavaScript
Partie3
PHP
Interfaçage Web/BD

A. Zinedine 2
Généralités

Généralités sur Internet

Généralités sur le Web

A. Zinedine 3
Généralités sur l’Internet

Historique d’Internet

Communication Sur Internet

Services d’Internet

L’Architecture Client/Serveur

A. Zinedine 4
Internet

Internet est un réseau informatique mondial

C’est un réseau gigantesque qui englobe tous le globe


terrestre

C’est un réseau de réseaux

A. Zinedine 5
Internet : Historique

1969 : le DoD (Departement of Defense) demanda à


ARPA (Advenced Research Project Agency) de créer
un réseau d’ordinateur capable de:
Couvrir tous le territoire Américain
Résister à une Attaque nucléaire
Continuer de fonctionner même en cas de
destruction partielle

A. Zinedine 6
Internet : Historique

C’est ainsi que le réseau ARPANET est conçu :

Sans nœud dominant


l’information peut être acheminer par plusieurs
chemins

A. Zinedine 7
Internet : Historique

1974: L’apparition de la suite de


protocoles TCP/IP

1980:
ARPA commence à évoluer les
ordinateurs de ses réseaux vers TCP/IP
ARPA se met à subventionner
l’université de Berkeley pour intégrer
TCP/IP dans son système UNIX

A. Zinedine 8
Internet : Historique

1980: La plupart des départements informatiques


commencèrent à se doter de réseaux locaux et à se
connecter entre eux sous l’impulsion de la NSF
(National Science Foundation)

A. Zinedine 9
Internet : Historique

1983: Pour s’ouvrir au domaine civil,


ARPANET est divisé en deux Réseaux:
MILNET, qui est resté sous une autorité
militaire
ARPANET, qu’est mis sous une autorité
universitaire
1986: La NSF construit son propre réseau
NSFNET (reliant des universités et instituts
américains)

A. Zinedine 10
Internet : Historique

1990 : le nom ARPANET cesse d’exister, le


nom INTERNET s’impose peu à peu

1992 : L’apparition du Web. C’est une


grande poussée pour le développement
d’Internet

1995 : NSFNET cesse aussi d’exister.


Internet domine

A. Zinedine 11
Communication Sur Internet

Sur Internet, il y a des millions et des millions


d’ordinateurs:
De tout genre (PC, Macintosh,…)
Qui appartient à des réseaux de types différents
(Ethernet, Token Ring,…)
Qui utilise des systèmes d’exploitations variés (Unix,
Windows,…)
Comment communiquer donc?

A. Zinedine 12
Communication Sur Internet

Deux ordinateurs sur un réseau


communiquent en utilisant un protocole

Un protocole : C’est un ensemble de règles


à respecter par un ordinateur qui veux
envoyer ou recevoir des informations sur
un réseau
Un protocole : C’est comme une «langue»
commune utilisée par les ordinateurs d’un
réseau

A. Zinedine 13
Communication Sur Internet

Sur Internet, les ordinateurs


communiquent en utilisant les protocoles
de la suite TCP/IP
Cette suite contient plusieurs protocoles
utilisés par les différents services
d’Internet
Exemples: HTTP, FTP, SMTP…

A. Zinedine 14
Services d’Internet

Sur Internet, On peut bénéficier de plusieurs services:


Telnet : Accès à un ordinateur distant (généralement,
en utilisant un compte et un mot de passe)
FTP: l’utilisateur peut gérer les fichiers et les
transférer de/vers un ordinateur distant

A. Zinedine 15
Services d’Internet

News: c’est un service qui permet un dialogue


asynchrone entre plusieurs personnes
Chat: C’est un service qui permet un dialogue
instantané entre plusieurs personnes
Email: Ce service, en mode différée, permet d’envoyer
des courriers vers des destinataires dans l’autre bout
du monde dans quelques instants

A. Zinedine 16
Services d’Internet

Le Web: c’est le WWW (World Wide Web). Il est


comparable à une gigantesque bibliothèque où toute
sorte d’information existe (textes, images, sons,
vidéos…)
Il se base sur la technique de liens Hypertextes qui
permet de naviguer d’une page à une autre

A. Zinedine 17
Services d’Internet

Internet permet à travers ses différents


service:
Partage des ressources
Réduction des coûts
média de communication
Accès facile à l’information
Communication entre individus (Courrier
électronique, Vidéoconférence,
Newsgroup)
Loisirs : Vidéo, Jeux…

A. Zinedine 18
Architecture Client/Serveur

Tous les services d’Internet utilisent des applications qui


fonctionnent selon le modèle Client/Serveur
Une telle application utilise deux logiciels
Un logiciel qui s’appelle Serveur, c’est lui qui fournit le
service
Un logiciel qui s’appelle Client, c’est lui qui demande
le service

A. Zinedine 19
Architecture Client/Serveur

La communication entre deux ordinateurs dans ce


modèle se passe comme suit:
L’ordinateur qui contient le logiciel Client envoie sa
requête de service
Le Serveur, est toujours à l’écoute. S’il détecte une
requête sur le réseau il l’analyse et envoie la réponse
au demandeur (le client)
Le client reçoit la réponse et affiche le résultat à
l’utilisateur

A. Zinedine 20
Architecture Client/Serveur

Un serveur peut répondre à plusieurs Clients

Le Client et le Serveur peuvent être installés sur un


même ordinateur

A. Zinedine 21
Généralité sur le Web

Historique du Web

W3C

Web et Client/Serveur

Langages du Web

A. Zinedine 22
Historique du Web

Le Web (raccourcit de World Wide Web) ou


WWW : C’est le service le plus populaire
d’Internet
World Wide Web = Toile d’araignée Mondiale
C’est une gigantesque source d’informations
multimédia (textes, images, sons, vidéo…)
Il se base sur la technique de liens
hypertextes

A. Zinedine 23
Historique du Web

1989: Tim Bernes-Lee, Chercheur du CERN (Centre


Européen de la Recherche Nucléaire) inventa la
technique de liens hypertextes

Cette technique permet une navigation facile entre les


documents en cliquant tout simplement sur des liens.

A. Zinedine 24
Historique du Web

1990 : Tim Bernes-Lee proposa le premier


Serveur Web et le premier navigateur
(Nexus)

1990-1993 : Beaucoup d’utilisateurs sont


attirés par la simplicité du langage HTML
proposé pour le Web
1993 : le CERN et la NCSA diffusent
gratuitement le premier navigateur grand
public: Mosaic
A. Zinedine 25
Historique du Web

Dans cette année (1993) près de 100


ordinateurs étaient équipés pour diffuser
des pages HTML.

Ce réseau de pages HTML fut baptisé


World Wide Web

Plusieurs navigateurs Web avaient été


écrits pour permettre d’afficher les pages
HTML
A. Zinedine 26
Historique du Web

Le World Wide Web croissait rapidement

Des navigateurs capables d’afficher les


images, le son et la vidéo ne tardèrent pas
à apparaître

1994 : Tim Bernes-Lee fonde le W3C pour


Contrôler l’évolution du Web

A. Zinedine 27
W3C

World Wide Web Consortium

C’est une organisation, regroupant


différentes sociétés actives sur le Web. Elle
est chargée de contrôler l'évolution des
technologies et des langages utilisés sur le
Web
Elle propose des normes et des
recommandations.
Les principaux acteurs sur le Web
respectent ses recommandations
A. Zinedine 28
Web et Client/Serveur

Le Web utilise le modèle Client/Serveur

Exemples de Serveurs Web : Apache, Microsoft IIS,…

Exemples de Clients Web (s’appellent aussi navigateurs):


Microsoft Internet Explorer, Netscape Navigator, Mozilla
Firefox,…

A. Zinedine 29
Web et Client/Serveur

Quand vous tapez l’adresse d’un site Web


dans la barre d’adresse de votre
navigateur (Internet explorer par exemple)
et vous validez, le client (IE) envoie la
requête vers le serveur (par exemple
Apache) installé sur un autre ordinateur
Le serveur (Apache) envoie la page
demandée
Le Client (IE) interprète le code HTML et
affiche le résultat
A. Zinedine 30
HTML = HyperText Markup Language

C’est un langage de balisage


Ce n’est pas un langage de programmation:
il permet seulement de décrire la mise en
forme d’un document
La notion de « HyperText » signifie la
possibilité de naviguer d’une page à une
autre en cliquant sur des liens

A. Zinedine 31
Structure d’une page HTML

<html>

<head>
<!-- c’est la partie entête -- >
</head>

<body>
<!-- c’est le corps du document -- >
</body>

</html>

A. Zinedine 32
La partie entête

<head>

<title> … </title>
<meta>

</head>

A. Zinedine 33
Le corps de la page

Le corps d’une page HTML commence


par la balise <body> et se termine par
</body>

La balise <body> accepte des attributs


qui spécifient certaines options
générales de la pages (couleurs, arrière
plan,…)

A. Zinedine 34
Attributs de <body>

Bgcolor = ``#rrggbb`` couleur de l’arrière-


plan
Background =``image.gif `` image d’arrière-
plan
Text = ``#rrggbb`` définit la couleur du texte
Link = ``#rrggbb`` couleur des liens
Vlink = ``#rrggbb`` couleur des liens visités
alink= ``#rrggbb`` couleur de liens actifs
A. Zinedine 35
Les commentaires

Pour insérer des commentaires dans une page:

<!-- Ce ci est un commentaire -->

A. Zinedine 36
Les caractères accentués

à = &agrave; è = &egrave; ù = &ugrave;

é = &eacute;

ê = &ecirc; î = &icirc; ô = &ocirc;

Ç = &ccedil; ï = &iuml; ü = &uuml;

A. Zinedine 37
Caractères spéciaux

Pour afficher les caractères spéciaux suivants <, >, & et `` :

< = &lt; (lesser than)


> = &gt; (greater than)
& = &amp; (ampersand)
`` = &quot; (quote)

A. Zinedine 38
La balise <br >

Génère un retour à la ligne

Accepte l’attribut clear (=left, right ou all) pour


empêcher le texte de coller sur une image

<br clear = ``left ``>

A. Zinedine 39
La balise <HR>

Permet de tracer une barre horizontale

Attributs:
Color = la couleur de la barre
Size = la hauteur de la barre(en pixel)
Width = la largeur (en pixel ou
pourcentage)

<hr color =``gold`` size = 2 width = ``60%``>

A. Zinedine 40
La balise <pre> …</pre>

Permet d’introduire du texte préformaté

A. Zinedine 41
La balise <p> … </p>

Il sert à introduire un nouveau paragraphe


attribut
align = `` right``
align = `` center``
align = `` left ``

A. Zinedine 42
Les listes

Listes ordonnées (OL)

Listes non ordonnées (UL)

Listes descriptives (DL)

A. Zinedine 43
Listes ordonnées

<OL>
1 élément 1
<Li>élément 1</Li> 2 élément 2
3 élément 3
<Li>élément 2</Li>
<Li>élément 3</Li>

</OL>

A. Zinedine 44
Attribut de <OL>

<OL> accepte l’attribut Type et Start:

Type = ``1`` : numérotation en chiffre arabe


Type = ``A`` : numérotation en lettre capitale
Type = ``a`` : numérotation en lette minuscule
Type = ``I`` : numérotation en chiffre romain
Type = ``i`` : numérotation en chiffre romain

Start = « valeur » permet de débuter la série à partir


d’une valeur

A. Zinedine 45
Listes non ordonnées

<UL>
• élément 1
<Li>élément 1</Li> •élément 2
• élément 3
<Li>élément 2</Li>
<Li>élément 3</Li>

</UL>

A. Zinedine 46
Attribut de <OL>

<UL> accepte l’attribut Type:

Type = `` squar``
Type = ``circle``
Type = ``disc``

A. Zinedine 47
Listes descriptives (<DL>…</DL>)

<DT> précède chaque élément de la liste (qui ne doit pas


dépasser une ligne)

<DD> correspond à la définition de l’élément de liste

A. Zinedine 48
CSS

Avantages des CSS


Syntaxe
Types des CSS
Attributs de styles pour le texte
Marges, bordures et remplissages
Couleurs et images d’arrière-plan
Positionnement
Organisation des styles

A. Zinedine 49
CSS: Pourquoi les CSS?

Assurer la cohérence visuelle d’un site

Faciliter la maintenance d’un site

Alléger le code HTML

Enrichir les styles avec de nouveaux


attributs

A. Zinedine 50
CSS: syntaxe

Selecteur {attribut1: valeur; attribut2: valeur2;


attribut3: valeur3;}

Exemple:

body {margin: 2cm; background-color: yellow}


h1 {color: red; text-decoration: underline}

A. Zinedine 51
CSS: Types de feuilles de styles

CSS incorporées

CSS liées (externes)

CSS en lignes

A. Zinedine 52
CSS: Styles concernant le texte

font-family verdana, helvetica, sans serif;

font-size 18pt; 2cm,

font-style italic, oblic, normal

font-weight light, medium, bold (100-900)


color rgb(255,255,255)

text-decoration underline, overline,line-through, none


text-align left, right, center, justify

text-indent
line-height
A. Zinedine 53
CSS:bordures,marges,remplissage

Border-width
Border-color
Border-style:
none, dotted, dashed, double, ridge, inset, outset

Margin
Margin-left, Margin-right, Margin-top, Margin-bottom

Padding
Padding-left, padding-right ,padding-top, padding-bottom
A. Zinedine 54
CSS:Couleur et image d’arrière-plan

Background-color
rgb(255,255,0)

Background-image
url(image.gif)

A. Zinedine 55
CSS: le positionnement

Position absolute, relative

Top , Left, Width, Height

Zindex …, -1, -2, 0, 1, 2, 3 …

visibility visible, hidden

A. Zinedine 56
CSS: Organisation des style

En groupes:
h1, h2, h3 {color: red; font-style: italic}

En classes:
h1 {text-align : right}
h1.rouge {color: red; font-style: italic}
h1.vert {color: green; font-style: italic}
A. Zinedine 57
Javascript: Introduction

A. Zinedine 58
Javascript: Insérer du code

<script language = " javascript ">


…</script>

Le pseudo Protocole
<a href= " javascript : maFonction()">…</a>

<h1 onClick = " maFonction() " >… </h1>

A. Zinedine 59
Programmation de Bases

Comme en C:
Les commentaires
Variables et fonctions
Structures de contrôle
– La boucle for
– La boucle while
– La boucle do…while
– Les testes if…else

A. Zinedine 60
Le modèle Objet de javascript

Les objets prédéfinis


Objets built-in
Objets du navigateur

Les objets crés par l’utilisateur

A. Zinedine 61
Les objets prédéfinis

Date()
Array()
String()
Image()
Math()

A. Zinedine 62
L’objet Date()

var d = new Date();


Méthodes:
getDate()
getDay()
getMonth()
getYear()
getHours()
getMinutes()
getSecondes()
A. Zinedine 63
L’objet Array()

Déclaration
var t1 = new Array();
var t2= new Array(7);
var t3= new Array(‘A’,’B’,’C’);

A. Zinedine 64
L’objet Array()

attribut
length : donne la taille du tableau
Méthodes:
concat(tableau) : concatène deux tableaux.
sort( ) : trie le tableau.
joint (séparateur) : retourne une chaîne de caractères contenant
les éléments du tableau séparés par la chaîne séparateur.
reverse( ) : retourne en résultat le tableau inversé.
slice(début, fin) : retourne le sous-tableau [début, fin-1] du
tableau donné.

A. Zinedine 65
L’objet String()

Déclaration
var maChaine = new String ( ) ;

attribut
length : donne la longueur de la chaîne

A. Zinedine 66
L’objet String()

Méthodes:
charAt(value) : renvoie le caractère situé à la position spécifiée
indexOf(string) : renvoie la position de la première occurrence
de la chaîne passée en paramètre.
lastIndexOf(string) : renvoie la position de la dernière
occurrence de la chaîne passée en paramètre.
substring(value1,value2) : retourne la sous chaîne commençant
à la position value1 et finissant à la position value2.
toLowerCase( ) : met la chaîne considérée en minuscule.
toUpperCase() : met la chaîne en majuscule.

A. Zinedine 67
L’objet Math()

Méthodes:
Math.abs(value) : valeur absolue
Math.sin(value) : calcule le sinus d’un angle (en radian).
Math.cos(value) : calcule le cosinus d’un angle (en radian).
Math.tan(value) : calcule la tangente d’un angle (en radian).
Math.acos(-1..1) : l'arc-cosinus d’un nombre compris entre -1 et 1
Math.asin(-1..1) : l'arc-sinus du nombre (entre 1 et -1).
Math.atan(-π/2.. π /2) : calcule l'arc-tangent d’un nombre passé e
paramètre (entre - π /2 et π /2).

A. Zinedine 68
L’objet Math()

Méthodes:
Math.PI : retourne la valeur de π (~3.141592654).
Math.E : retourne la valeur mathématique e (~2.71828).
Math.exp(value) : calcule la valeur exponentielle de « value ».
Math.log(value) : calcule le logarithme de « value ».
Math.max(value1,value2) : retourne le max.
Math.min(value1,value2) : retourne le min.
Math.pow(value,exponent) : calcule la valeur : valueexponent.
Math.random() : retourne une valeur aléatoire entre 0 et 1.
Math.floor(value) : retourne l'entier le plus proche par défaut.
Math.round(value) : retourne l'entier le plus proche.
Math.sqrt(value) : calcul la racine carrée. 69
A. Zinedine
L’objet Image()

Déclaration
var monImage = new Image( ) ;
Attributs
Src : la source de l’image (l’adresse du fichier image).
Height : hauteur de l’image en pixels.
Width : largeur de l’image en pixels.
Complete : valeur booléenne qui permet de tester si le
chargement de l’image est terminé.

A. Zinedine 70
Les Objets du navigateur

Plugins
elements
navigator
mimeType (==button)

(==text)
images
(==password
)
window document forms (==hidden)

(==checkbox
links
)
(==radio)

history (==textarea)

A. Zinedine 71
Les Objets du navigateur

window
history
document
images[]
links[]
forms[]
elements

A. Zinedine 72
PHP

Introduction
Débuter avec PHP
Eléments de la programmation de base en PHP
Quelques fonctions utiles de PHP
Passage de paramètres entre scripts
Accès aux bases de données

A. Zinedine 73
PHP: Introduction

C’est un langage de script côté serveur


Créé au début pour des fins simples, mais a connu un
très grand succès,
Maintenant très populaire et adopté par une très grande
communauté, y compris de grands acteurs: Facebook,
Yahoo, Daily Motion, WordPress, Wikipédia,…

A. Zinedine 74
PHP: Débuter avec PHP

Rappelons le modèle de communication client / serveur:


le navigateur demande une page web auprès du serveur ;
Le serveur reçoit et traite la requête :
il analyse le script demandé (qui peut contenir du code PHP)
Il arrive souvent que le serveur ait besoin d’autres
applications (par exemple un SGBD), Le serveur s’en charge.
il génère la page résultat, puis il l’envoie au navigateur ;
Le navigateur reçoit la page résultante:
La page reçu ne contient que du code compréhensible côté
client (HTML, CSS, Javascript,…),
Il interprète ce code et affiche la page à l’écran.
A. Zinedine 75
PHP: Débuter avec PHP

Nous aurons besoin de:


Un serveur Web (nous utiliserons Apache);
Le moteur PHP;
Un SGBD (Nous utiliserons MySQL);
Il préférable d’avoir un outil pour administrer MySQL
Un navigateur Web (pour consulter les pages créées);
Un éditeur de texte (NotePad++ par exemple)
EasyPHP Devserver:
C’est un package préconfiguré qui contient : Apache, PHP,
MySQL, et PhpMyAdmin
www.easyphp.org
A. Zinedine 76
PHP: Débuter avec PHP

Démarrer le Dashboard de EasyPHP Devserver

A. Zinedine 77
PHP: Débuter avec PHP

A partir de ce Dashboard vous pouvez :


Démarrer ou arrêter les serveurs web
Démarrer ou arrêter les serveurs de bases de données
Gérer plusieurs installations de PHP et des différents serveurs
et choisir laquelle utiliser
Accéder facilement à tous les paramètres de configuration des
différents serveurs
Installer et gérer d’autres modules complémentaires
Accéder à PhpMyAdmin pour administrateur les bases de
données
Créer des alias pour les dossiers web et sauvegarder leurs
adresses comme Répertoires de travail
A. Zinedine 78
PHP: Débuter avec PHP

Accès aux pages Web:


Créer un nouveau dossier pour votre site dans le répertoire
public d’Apache, nommée : MonSite; et une page page1.html
Lancer le navigateur et tapez dans l’adresse:
http://localhost:8080/monsite/page1.html
Dans le cas où le port est 80, on peut l’omettre

A. Zinedine 79
PHP: Débuter avec PHP

Résumé des tâches à faire pour commencer :


Télécharger EasyPHP Devserver (www.easyphp.org).
Installer le package: il contient les composants nécessaires :
Apache, PHP, MySQL et PhpMyAdmin.
Modifiez (si vous voulez) la configuration de ces composants.
Démarrer EasyPHP Devserver et vérifier que les serveurs sont
en marche.
Mettre votre site dans le répertoire public WWW.
Lancer le navigateur et taper l’adresse http://localhost:8080.

A. Zinedine 80
PHP: Débuter avec PHP
Premier Script PHP :
Enregistrez ce fichier dans le répertoire public sous le nom
script1.php.

A. Zinedine 81
PHP: Débuter avec PHP
Premier Script PHP :
Vérifiez que EasyPHP est démarré.
Lancez le navigateur et tapez dans la barre d’adresse :
http://localhost:8080/script1.php

A. Zinedine 82
PHP: Débuter avec PHP
Premier Script PHP :
Consultez le code source dans le navigateur:
Il n’a reçu que du code HTML
Le code PHP est exécuté chez le serveur, seul le résultat est
envoyé au navigateur

A. Zinedine 83
PHP: Débuter avec PHP
Premier Script PHP :
Code équivalent:

A. Zinedine 84
Eléments de la programmation de base de PHP
Les commentaires
Déclaration des variables
Les constantes
Les fonctions
Structures de contrôle
La boucle for
La boucle foreach
La boucle while
La boucle do…while
Les tests : If …else…
switch, break, continue,…

A. Zinedine 85
Eléments de la programmation de base de PHP
Les commentaires

A. Zinedine 86
Eléments de la programmation de base de PHP
Déclaration des variables
les identificateurs des variables sont précédés par « $ ».
les identificateurs des variables sont sensibles à la casse.
Pour créer une nouvelle variable, il suffit de lui affecter une valeu
le programmeur n’a pas à déclarer les variables ni leurs types
PHP reconnaît le type d’une variable dès la première affectation.
Le type d’une variable en PHP peut changer de type dans un
même script : il prend toujours le type de l’expression affectée à
cette variable.

A. Zinedine 87
Eléments de la programmation de base de PHP
Déclaration des variables

A. Zinedine 88
Eléments de la programmation de base de PHP
Les constantes
On définit une constante par la fonction define()
Les identificateurs des constantes ne sont pas sensibles à la
casse
Le valeur d’une constante ne peut pas changer lors de l’exécutio

A. Zinedine 89
Eléments de la programmation de base de PHP
Les fonctions
Les identificateurs des fonctions ne sont pas sensibles à la cass

A. Zinedine 90
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle for

A. Zinedine 91
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle foreach pour parcourir les tableaux

A. Zinedine 92
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle while

A. Zinedine 93
Eléments de la programmation de base de PHP
Structures de contrôle
La boucle do…while

A. Zinedine 94
Eléments de la programmation de base de PHP
Structures de contrôle
Les tests : If …else…

A. Zinedine 95
Quelques fonctions utiles de PHP
1. Fonctions pour l’affichage
2. fonctions pour la gestion des variables
3. Chaînes de caractères
4. Tableaux
Accès aux éléments d’un tableau
Parcours des tableaux
Autres fonctions pour la gestion des tableaux
Tableaux associatifs
Parcours des tableaux associatifs avec foreach

A. Zinedine 96
Quelques fonctions utiles de PHP
5. Date et heure
6. Mathématiques
7. Inclusion des fichiers
8. Arrêt prématuré
9. Accès aux fichiers et aux dossiers
10. Expressions régulières
11. Mail
12. Variables d’environnement et constantes PHP
13. Entêtes HTTP
14. Cookies
15. Sessions

A. Zinedine 97
1. Fonctions pour l’affichage
echo () , print () , printf()

A. Zinedine 98
2. fonctions pour la gestion des variables
getType($V) , setType($V,$type), is_integer($V), is_string($V) , is_long(),
is_double(), is_bool(), is_float(),…

A. Zinedine 99
2. fonctions pour la gestion des variables
empty($V), isset($V), unset($V)

A. Zinedine 100
3. Chaînes de caractères
Mettre une chaîne entre simples ou doubles quottes:

A. Zinedine 101
3. Chaînes de caractères
strlen($S) : retourne la longueur de la chaîne $S.
strtolower($S): transforme $S en minuscules.
strtoupper($S) : transforme la chaîne $S en majuscules.
trim($S) : supprime les espaces au début et enfin de la chaîne $S
substr($S,$i,$j) : retourne la sous-chaîne de $S qui commence à
position $i et qui contient $j caractères.
strnatcmp($S1,$S2) : compare les deux chaînes $S1 et $S2.
addslaches($S) : déspécialise les caractères spéciaux dans $S.
ord($C) : retourne le code ASCII du caractère $C.

A. Zinedine 102
4. Tableaux
Initialisation des tableaux
Pour créer un tableau, on peut utiliser la fonction array() :
$etudiant = array("Omari","Omar",22, 066334455) ;
$jours = array("dimanche","lundi","mardi",…,"samedi") ;
Ou en entrant directement les éléments du tableau :
$jours[] = "dimanche" ; $jours[] = "lundi" ; $jours[] = "mardi" ;…
Ou encore :
$jours[0] = "dimanche" ; $jours[1] = "lundi" ; $jours[2] = "mardi" ;…

A. Zinedine 103
4. Tableaux
Accès aux éléments d’un tableau

A. Zinedine 104
4. Tableaux
Parcours des tableaux

A. Zinedine 105
4. Tableaux
Autres fonctions pour la gestion des tableaux
count($t) et sizeof($t) : donnent la taille d’un tableau $t.
in_array($v ,$t) : vérifie si la valeur de $v existe dans le tableau
list($v1,$v2,$v3,…) : transforme une liste de variable en tablea
sort($t) : trie le tableau (ordre alphanumérique croissant).
rsort($t) : trie le tableau (ordre alphanumérique décroissant).
implode($s,$t) et join($s,$t) : fait la jointure des éléments du
tableau par la chaîne $s.
array_merge($t1,$t2,$t3,…) : concatène les tableaux passés en
arguments.
array_rand($t) : renvoi un élément du tableau aléatoirement.

A. Zinedine 106
4. Tableaux
Tableaux associatifs
Au lieu d’accéder à un élément par son indice, on accède par une clé :
$tableau["clé"] au lieu de $tableau[i]

A. Zinedine 107
4. Tableaux
Tableaux associatifs
On peut aussi créer le tableau sans utiliser la fonction array() :

A. Zinedine 108
4. Tableaux
Parcours des tableaux associatifs avec foreach

A. Zinedine 109
4. Tableaux
Parcours des tableaux associatifs avec foreach

A. Zinedine 110
5. Date et heure
getdate() : retourne un tableau associatif contenant la date et l’heure.

Dans les exemples, on suppose que la date est dimanche 6 mai 2007 à 03h30mn15s
On crée un tableau $t dans lequel on stocke le résultat de getDate() comme suit :
$t = getDate() ;
Clé Signification Exemple
seconds Secondes $t["seconds"] donne : 15
minutes Minutes $t ["minutes"] donne : 30
hours Heures $t ["hours"] donne : 3
mday Jour du mois de 1 à 31 $t ["mday"] donne : 6
wday Jour de la semaine de 0 à 6 $t ["wday"] donne : 0
mon Mois de l’année de 1 à 12 $t ["mon"] donne : 5
year Année sur 4 chiffres $t ["year"] donne : 2007
yday Jour de l’année de 0 à 365 $t ["yday"] donne : 125
weekday Jour de la semaine, textuel,anglais $t ["wekday"] donne : Sunday
month Mois, textuel, complet, en anglais $t ["month"] donne : May
A. Zinedine 111
5. Date et heure
getdate() : retourne un tableau associatif contenant la date et l’heure.

A. Zinedine 112
6. Mathématiques
Constantes :
M_PI : la valeur de pi (3.1415926535898)
M_E : la valeur de e (2.718281828459)
Fonctions
abs($x) : retourne la valeur absolue de $x
ceil($x) retourne l’entier n le plus proche à $x tel que $x <= n.
floor($x) la partie entière de $x.
pow($x,$y) $x à la puissance $y
max($a,$b,$c,…) : retourne l’argument de valeur maximale.
...

A. Zinedine 113
6. Mathématiques
Nombres aléatoires
Vous pouvez générer des nombres aléatoires en se basant sur la
fonction rand() ou la fonction mt_rand() :
rand($x,$y) : retourne un nombre aléatoire entre $x et $y.
Si $x et $y sont absent, le nombre aléatoire généré est entre 0 et
RAND_MAX (le nombre le plus grand que rand() peut générer).
getRandMax() : retourne la valeur de RAND_MAX.
srand : réinitialise le générateur de nombre aléatoire.
mt_rand, mt_getRandMax() et mt_setrand() font la même chose,
mais beaucoup plus rapidement et plus sûrement.

A. Zinedine 114
7. Inclusion des fichiers

include()

require()

require_once()

A. Zinedine 115
8. Arrêt prématuré
die("message") : affiche un message puis arrête le script.
exit() : arrête le script sans afficher de message.

A. Zinedine 116
9. Accès aux fichiers et aux dossiers
fopen($file,$mode) : ouvre le fichier $file avec le mode $mode et
retourne son $id (ou false si erreur).
"r" : ouvrir le fichier en lecture seule
"r+" : ouvrir le fichier en lecture/écriture
"w" : écriture seule (le fichier est créé s’il n’existe pas).
"w+" : lecture/écriture (le fichier est créé s’il n’existe pas).
"a" : création et écriture seule (pointeur placé en fin de fichier
"a+" : création et lecture/écriture (pointeur placé à la fin)
fclose($id) : ferme le fichier dont l’identificateur est $id.

A. Zinedine 117
9. Accès aux fichiers et aux dossiers
fgetc($id) : lit un seul caractère du fichier identifié par $id.
fgets($id) : lit une ligne du fichier identifié par $id.
fputs($id,$s) : écrit la chaîne $s dans le fichier identifier par $id.
feof($id) : teste la fin du fichier $id.
copy($source, $destination) : copie un fichier dans un autre.
readfile($fichier) : affiche le contenu texte du fichier nommé
$fichier.

A. Zinedine 118
9. Accès aux fichiers et aux dossiers
file_exists($fichier) : teste si le fichier dont le nom est $fichier
existe ou non.
filesize($fichier) donne la taille du fichier $fichier.
filetype($fichier) : donne le type de $fichier (i.e. : file pour un
fichier, dir pour un répertoire)
rename($ancien, $nouveau) : renomme un fichier.
unlink($fichier) : supprime le fichier nommé fichier.

A. Zinedine 119
9. Accès aux fichiers et aux dossiers
chdir($dossier) : change le dossier courant en le dossier passé
en argument.
getcwd() : retourne le nom du dossier courant.
opendir($dossier) : ouvre $dossier et retourne un pointeur $p
sur ce dossier si OK et false si erreur (pour échapper:
@opendir() ne signale pas d’erreur).
closedir($p) : ferme un pointeur $p déjà ouvert par opendir().
readdir($p) : lit une entrée du dossier identifié par le pointeur $p
(il retourne le nom d’un fichier ou d’un dossier parmi ceux
contenus dans le dossier ouvert. S’il n’ y a plus d’entrée, elle
retourne false.
rewinddir($p) : pointe à nouveau sur la première entrée dans le
dossier identifié par $p.
A. Zinedine 120
10.Expressions régulières

C’est un outil très puissant pour la recherche d’un motif donné dans
une chaîne de caractères.
Quelques fonctions:
preg_match($motif,$ch) : teste si la chaîne $ch contient le motif
$motif.
preg_replace($motif,$newS, $ch): remplace toutes les
occurrences de $motif dans la chaîne $ch par la chaîne $newS.
preg_split($motif, $ch) : retourne un tableau contenant les sous-
chaînes de la chaîne $ch délimitées par le motif $motif.

A. Zinedine 121
11.Mail
La fonction mail permet d’envoyer des email a partir d’un script
PHP (il faut disposer de l’accès à un serveur de messagerie et
configurer php.ini pour l’utiliser )

A. Zinedine 122
12.Variables d’environnement et constantes PHP
$S_ERVER["PHP_SELF"] : stocke le nom du script en cours
d’exécution.
$_SERVER["HTTP_USER_AGENT"] : stocke la signature du
navigateur qui demande le script.
$_SERVER["REMOTE_ADDR"] : adresse IP du client. Ainsi
l’auteur du script peut savoir de quelle adresse IP se connecte
le client.
$_SERVER["HTTP_REFERER"] : Stocke l’url de la page qui a
renvoyé le client sur ce script (par exemple, une autre page qui
contient un lien vers le script , un moteur de recherche qui a
renvoyé l’adresse suite à une recherche…Le développeur peut
ainsi savoir qu’il est le « chemin » le plus utilisé pour accéder à
ces pages.)
A. Zinedine 123
12.Variables d’environnement et constantes PHP

Constantes magiques: ce sont des constantes prédéfinies par


PHP, parfois indispensables. Voilà quelques-unes :

__FILE__ : Le chemin complet et le nom du fichier encours.


__LINE__ : Le numéro de la ligne actuel du fichier encours.
__DIR__ : Le répertoire du fichier.
__FUNCTION__ : Nom de la fonction en cours.
__CLASS__ : Le nom de la classe e cours.
__METHOD__ : Le nom de la méthode de classe en cours.

A. Zinedine 124
13.Entêtes HTTP

Header(): cette fonction permet de modifier l’entête de la réponse


HTTP avant de l’envoyer.
Attention: on ne peut pas l’utiliser après le début de l’output. Donc
utilisez-la avant de commencer l’affichage.

A. Zinedine 125
14.Cookies
Les cookies sont des petits fichiers texte envoyés par le serveur
en vue de les stocker sur le disque dur du client.
Ces fichiers contiennent principalement le nom d’une variable et
sa valeur.
Lorsque le navigateur effectue ultérieurement une autre
connexion, il envoie au serveur cette variable et sa valeur.
Ainsi, le serveur prend en considération cette variable.

A. Zinedine 126
14.Cookies
Exemple:
On veut offrir aux utilisateurs de la page la possibilité de choisir
leur couleur préférée d’arrière-plan.
on demande alors à l’utilisateur de choisir sa couleur préférée et
on stocke son choix dans un cookie sur son disque dur.
Au début de chaque connexion, le client envoie ce cookie au
serveur. Et ainsi la page et envoyé avec la couleur choisie :

A. Zinedine 127
15.Sessions

Les sessions offrent un mécanisme pour sauvegarder des


variables lors de navigation d’un utilisateur dans un site pour les
rendre disponibles dans tous les scripts de ce site.
Ces variables sauvegardées sont dites variables de session.
Elles sont accessibles dans toutes les pages visitées par
l’utilisateur « dans une même session ».
Elles sont donc « hyper globales » !.

A. Zinedine 128
15.Sessions

Exemple:

Variable $nom
Non reconnue

A. Zinedine 129
15.Sessions

Exemple 2:

A. Zinedine 130
15.Sessions

Exemple 2:

Variable $preno
Non reconnue

A. Zinedine 131
15.Sessions

Exemple 2:

Variables
Non reconnues

A. Zinedine 132
Passage de paramètres entre scripts

Dans ce chapitre, nous allons voir comment on peut


envoyer des données du côté client au côté serveur.
Ceci passe à travers le passage de paramètres d’un
script à un autre.
La question ici est comment peut-on récupérer dans un
script une variable définie dans un autre.

A. Zinedine 133
Passage des données avec la méthode POST

Exemple:
Nous voulons demander aux utilisateurs leurs noms et prénoms.
Pour cela on crée un formulaire:

A. Zinedine 134
Passage des données avec la méthode POST

Quand l’utilisateur remplit les champs et clique sur le bouton


Envoyer, le navigateur crée une nouvelle requête:
Méthode: POST
Action : le script Welcome.php.
Données (dans le corps de la requête): N=Zinedine , P=Ahmed.

A. Zinedine 135
Passage des données avec la méthode POST

Quand l’utilisateur remplit les champs et clique sur le bouton


Envoyer, le navigateur crée une nouvelle requête:

A. Zinedine 136
Passage des données avec la méthode GET

La méthode GET est la méthode par défaut des navigateurs.


Les requêtes GET sont faciles à établir car leur corps est toujours
vide.
Toute l’information à circuler est encodée dans l’entête.
Si une requête de ce type veut passer des paramètres au script
demandé alors elle l’encode comme partie de l’URL.
Exemple:
http://loclhost/welcome.php?N=zinedine&P=Ahmed

A. Zinedine 137
Passage des données avec la méthode GET

Exemple (suite)

A. Zinedine 138
Passage des données avec la méthode GET

Exemple (suite)

A. Zinedine 139
Passage des données avec la méthode GET

Exemple (suite)
Code du script Welcome2.php ($_GET au lieu de $_POST):

A. Zinedine 140
Accès aux bases de données

1. Création de Bases de données et de tables


2. PHP Data Objects (PDO)
3. Connexion à la base de données
4. Manipuler les données
5. Afficher le résultat d’une requête

A. Zinedine 141
Création de Bases de données et de tables

Utiliser PhpMyAdmin pour administrer MySQL et créer les BD et les


tables.
Pour cela, dans la section Module du tableau de bord de EasyPHP
Devserver, cliquez sur Open pour lancer PhpMyAdmin :

A. Zinedine 142
Création de Bases de données et de tables

Utiliser PhpMyAdmin pour créer :


Une BD nommée : SMI

A. Zinedine 143
Création de Bases de données et de tables

Utiliser PhpMyAdmin pour créer :


Une table Etudiant (Code varchar(10) Primary key, Nom
varchar(30) Not Null, Prenom varchar(30) Not Null, Filiere).

A. Zinedine 144
Création de Bases de données et de tables

Utiliser PhpMyAdmin pour créer :


Une table Etudiant (Code varchar(10) Primary key, Nom
varchar(30) Not Null, Prenom varchar(30) Not Null, Filiere).

A. Zinedine 145
PHP Data Objects (PDO)

Deux API PHP pour s’interfacer avec les SGBD (MysQLi et PDO)
PDO fonctionnera sur 12 systèmes de base de données différents,
alors que MySQLi ne fonctionnera qu'avec MySQL.
L’extension PDO : Acronyme pour PHP Data Objects.
Cette API offre un moyen simple et cohérent pour accéder aux
différentes bases de données (donc code portable).
Avec PDO, il suffit de changer la chaîne de connexion dans votre
code pour migrer d’un SGBD à un autre, tout le reste du code reste
intact.

A. Zinedine 146
PHP Data Objects (PDO)

vérifiez que la bibliothèque php_pdo.dll est installée (c’est le cas


généralement dans les nouvelles versions).
Dans php.ini, activez la ligne qui correspond à l’SGBD que vous
voulez utiliser (par exemple : php_pdo_mysql.dll pour MySQL) :

A. Zinedine 147
Connexion à la base de données

Pour toute action dans la BD, il faut d’abord se connecter. Ceci


consiste à instancier la classe PDO en lui passant:
un login, un mot de passe valide
et une chaîne de connexion, qui précise:
le driver utilisé (de notre cas = mysql)
le nom du serveur et le port de MySQL (3306 par défaut)
le nom de la base de données

A. Zinedine 148
Connexion à la base de données

Exemple:

A. Zinedine 149
Manipuler les données: insert

A. Zinedine 150
Manipuler les données: update

A. Zinedine 151
Manipuler les données : delete

A. Zinedine 152
Manipuler les données

A. Zinedine 153
Manipuler les données

A. Zinedine 154
Afficher le résultat d’une requête

Exemple: Nous voulons afficher la liste des étudiants comme suit:

A. Zinedine 155
Afficher le résultat d’une requête
Exemple: Nous voulons afficher la liste des étudiants comme suit:

A. Zinedine 156
Afficher le résultat d’une requête
Améliorer l’exemple (ajouter les liens Modifier et Supprimer) :

A. Zinedine 157
Afficher le résultat d’une requête
Améliorer l’exemple (ajouter les liens Modifier et Supprimer) :

A. Zinedine 158
Afficher le résultat d’une requête
Améliorer l’exemple (ajouter les liens Modifier et Supprimer) :

A. Zinedine 159
Afficher le résultat d’une requête
Améliorer l’exemple (code du script supprimer.php):

A. Zinedine 160
FIN 

A. Zinedine 161

Vous aimerez peut-être aussi