Vous êtes sur la page 1sur 81

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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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é en
paramètre (entre - π /2 et π /2).

A. Zinedine 68

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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 valeur
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

2020
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écution

A. Zinedine 89

Eléments de la programmation de base de PHP


Les fonctions
Les identificateurs des fonctions ne sont pas sensibles à la casse

A. Zinedine 90

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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 à la
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

2020
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

2020
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 $t.
list($v1,$v2,$v3,…) : transforme une liste de variable en tableau.
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

2020
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

2020
4. Tableaux
Parcours des tableaux associatifs avec foreach

A. Zinedine 109

4. Tableaux
Parcours des tableaux associatifs avec foreach

A. Zinedine 110

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
15.Sessions

Exemple:

Variable $nom
Non reconnue

A. Zinedine 129

15.Sessions

Exemple 2:

A. Zinedine 130

2020
15.Sessions

Exemple 2:

Variable $prenom
Non reconnue

A. Zinedine 131

15.Sessions

Exemple 2:

Variables
Non reconnues

A. Zinedine 132

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
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

2020
Connexion à la base de données

Exemple:

A. Zinedine 149

Manipuler les données: insert

A. Zinedine 150

2020
Manipuler les données: update

A. Zinedine 151

Manipuler les données : delete

A. Zinedine 152

2020
Manipuler les données

A. Zinedine 153

Manipuler les données

A. Zinedine 154

2020
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

2020
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

2020
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

2020
FIN 

A. Zinedine 161

2020

Vous aimerez peut-être aussi