Hypertext Preprocessor
Assuré par Menchari Abdelaziz
Why PHP !?
Historique de PHP
• PHP : Hypertext PreProcessor
• Première version de PHP a été mis au point au début d'automne par Rasmus
Lerdorf en 1994
• Version appelée à l'époque Personal Home Pages
• Pour conserver la trace des utilisateurs venant consulter son CV sur son site,
grâce à l'accès à une base de données par l'intermédiaire de requêtes SQL
• La version 3.0 de PHP fut disponible le 6 juin 1998.
• A la fin de l'année 1999, une version bêta de PHP, baptisée PHP4 est
apparue.
• En 2001 cinq millions de domaines utilisent PHP: trois fois plus que l’année
2000.
C’est QUOI ?
• Un langage de scripts permettant la création d’applications
Web
• Indépendant de la plate-forme utilisée puisqu’il est exécuté côté
serveur et non côté client.
• La syntaxe du langage provient de celles du langage C, du Perl
et de Java.
• Ce qui distingue le PHP des langages de script comme le
JavaScript est que le code est exécuté sur le serveur et non
par le navigateur. Le client ne reçoit que le résultat, sans aucun
moyen d'avoir accès au code qui a produit l’affichage.
avantages de PHP
• La gratuité et la disponibilité du code source (distribué
sous licence GNU GPL).
• La simplicité d'écriture de scripts.
• La possibilité d'inclure le script PHP au sein d'une page
HTML.
• La simplicité d'interfaçage avec des bases de données.
• L'intégration au sein de nombreux serveurs web (Apache,
Microsoft IIS, ...)
Comment fonctionne PHP ?
1. L'internaute saisit l'adresse Internet d'une page PHP dans le navigateur,
2. Cette adresse est envoyée à un ordinateur appartenant à votre fournisseur d'accès à Internet. Elle
est analysée par les équipements d'entrée pour localiser le serveur sur lequel se trouve la page
demandée
3. Le serveur reçoit et analyse la page,
4. Les parties entre balises PHP (<?php ..... ?>) sont envoyées au module PHP pour y être
exécutées.
5. Les instructions faisant référence aux bases de données sont transférées au module base de
données
6. Le module base de données renvoie les données
7. Le module PHP intègre ces données, et renvoie au serveur HTTP le code HTML généré
8. Les données sont renvoyées par le serveur
9. Puis acheminées jusqu'au le poste client, la page est affichée
fonctionnement
Architecture 3 tiers
Syntaxe
• Le code PHP vient s'insérer au milieu du code HTML.
• La forme d’une balise PHP <?php ?> :
• Il existe 3 variantes (équivalentes pour HTML):
• <?php ..... ?> : C'est la seule notation officielle qui marchera
quelle que soit la configuration de php (FORTEMENT
RECOMMANDEE)
• A éviter : <? .... ?> : Cette notation doit être autorisée dans le
fichier de configuration de PHP
• <script> : rarement utilisés
Exemple de scripts
On remarque que les balises PHP qui existent sur la page
d’origine (coté serveur) ont disparu au coté client
Confidentialité du code PHP
Placement des balises
❖ On insère une balise PHP dans la page HTML :
• Dans le corps d’une page HTML:
<BODY>
<?php /* Code PHP */ ?>
</ BODY >
• Dans l’entête section:
<HEAD>
<?php /* Code PHP */ ?>
</HEAD>
• Au milieu d'une balise HTML :
<…
<?php /* Code PHP */ ?>
… />
Inclure un fichier : include()
Affichage de texte
Il existe une instruction identique à « echo » appelée « print », qui fait la même chose. Cependant, « echo » est
plus couramment utilisée.
Commentaires
• Un script php se commente comme en C :
• Tout ce qui se trouve dans un commentaire est ignoré. Il
est conseillé de commenter largement ses scripts.
Exemple :
Variables et types
❑ Le typage des variables est implicite en PHP. Il n’est donc pas nécessaire de déclarer leur type au préalable ni même de les initialiser avant
leur utilisation.
❑ Les identificateurs de variable sont précédés du symbole « $ » (dollars).
Exemple : $toto.
❑ Les variables peuvent être de type :
• entier (integer)
• réel (double)
• chaîne de caractères (string)
• tableau (array)
• booléen (boolean).
❑ Il est possible de convertir une variable en un type primitif grâce au cast (conversion de type)
comme en C.
Exemple :
$str = ’’12’’; // $str vaut la chaîne ‘’12’’
$nbr = (int)$str; // $nbr vaut le nombre 12
▪ Il existe des caractères repérés par un code ASCII spécial
permettant d'effectuer des opérations particulières. Ces
caractères peuvent être représentés plus simplement en
langage PHP grâce au caractère '\' suivi d'une lettre, qui
précise qu'il s'agit d'un caractère de contrôle
constantes
• Les constantes PHP ne sont préfixées par aucun symboles. Elles sont
déclarée de la façon suivante:
define(‘‘id_constante’’,‘‘valeur’’); // ou bien define(id_constante, ‘‘valeur’’);
Exemple:
define(‘‘nom’’, ‘‘foulen’’);
✔ Dans ce cas la constante nom vaut la valeur foulen
✔ Les constantes ne sont définie qu’une seule fois dans le script. Leurs valeurs
restent inchangées et leurs identificateurs ne sont pas sensibles à la casse
(contrairement aux variables).
opérateurs
Opérateurs arithmétiques :
+(addition), -(soustraction), *(multiplié), /(divisé), %(modulo), ++(incrément), --(décrément)
Opérateurs d’assignement :
= (affectation), *= ($x*=$y équivalent à $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)
Chaînes
Rappel sur les
chaînes de caractères:
fonctions
Une fonction est un sous-programme qui permet d'effectuer un ensemble
d'instructions par simple appel dans le corps du programme principal.
Comme tout langage de programmation. PHP permet l’écriture des fonction.
La syntaxe est la suivante:
function ma_fonction($argument1, $argument2,…) {
...liste des instructions;
Return ($valeur_de_retour);
}
Une fonction peut ne pas avoir de valeurs d’entrée (arguments) ou encore
retourner de valeurs (le cas d’une fonction d’affichage de message d’erreur).
conditionnelle
La syntaxe des structures de contrôle est la même que celle en langage C.
Structures conditionnelles Structure à choix multiples
boucles
tableaux
for each
Boucle "foreach"
Le mot clef "each" étant assez complexe à utiliser, PHP
propose une boucle très pratique : foreach. Il y a deux
syntaxes possibles :
exemple
Les inclusions
On peut inclure dans un script PHP le contenu d’un autre fichier.
❑ require insert dans le code le contenu du fichier spécifié même si ce n’est pas du code php. ( équivalent au préprocesseur #include du C
)
Syntaxe:
require(‘’[Link]’’);
❑ include évalue et insert à chaque appel (même dans une boucle) le contenu du fichier passé en argument.
Syntaxe:
include(‘’[Link]’’);
Les inclusions sont très utiles lors de l’appel d’une base de donnée. Les paramètres de connexions sont stockés sur un fichiers à part.
Difference entre include() et require ()
• La principale différence entre les deux fonctions est la suivante :
- S'il y a une erreur, include() génère une erreur de niveau Warning (alerte) mais l'exécution de la page ne s'arrête pas.
- Cependant require() génère une erreur fatale et arrête le [Link](‘’[Link]’’);
include_once() & require_once()
• Ces 2 fonctions permettent de s'assurer que le fichier a été
inclut une seule fois dans un fichier.
formulaire
▪ Grâce à la balise FORM du langage HTML, il est simple de créer des
formulaires comprenant :
• des champs de saisie
• des cases à cocher
• des boutons radio
• des listes à choix multiples
• des champs "hidden" (cachés) pour transmettre certaines informations.
▪ Pour utiliser un tel formulaire capable d'envoyer des informations à un script
PHP, il suffit de mettre le nom du fichier PHP qui réceptionnera les
informations en tant que valeur de l'attribut ACTION de la balise FORM.
exemple
Voici un formulaire en HTML, permettant d'envoyer les
coordonnées d'une personne à un fichier PHP nommé
[Link] :
récupérer les données
La méthode qui suit est obligatoirement à utiliser si les variables globales sont désactivées sur
votre serveur; elle est toutefois également fortement recommandée, même si elles sont activées.
Vous ne récupérerez donc pas les informations directement par le biais d'une variable, mais via
une variable de type tableau. Cette variable tiendra compte de la provenance de la donnée, et
notamment si l'attribut METHOD du formulaire est GET ou POST.
Voici les deux variables tableaux qu'il convient d'utiliser pour récupérer les données d'un
formulaire.
• donnee correspond à l'attribut NAME du champ
• Si jamais un des champs du formulaire n'est pas rempli, il possède la valeur "", c'est-à-dire une
chaîne vide.
Vérification des données
transmises
On utilise pour savoir si une variable existe, la fonction isset() : renvoie un
booléen VRAI si la variable existe, et FAUX sinon. La fonction isset() peut
prendre en paramètre plusieurs variables.
La fonction htmlentities() permet de transformer un éventuel code html en
sa valeur affichable : on empêche donc les failles d'injection de code HTML.
Et la fonction ctype_digit()
méthode POST
méthode GET
Notion de class/objet
Une classe est une représentation abstraite d'un objet.
Une classe peut généralement être rendu concrète au
moyen d'une instance de classe, que l'on appelle objet.
Une classe s'écrit au moyen du mot "class" suivi du nom
de la classe et d'accolades.
constructeurs
Le constructeur est la fonction qui est appelée
automatiquement par la classe lorsque vous créez une
nouvelle instance d'une classe a l'aide de l'opérateur new.
mot clé « this »
la variable $this utilisée à l'intérieur d'une classe, vaut toujours
une référence vers l'objet lui-même ( objet courant ).
droits d'accès
Les propriétés ou méthodes public sont visibles et manipulables par tous les
objets, même s'ils sont d'autres classes.
Les propriétés ou méthodes protected concernent les objets de la même
classe ainsi que ses dérivées, mais pas ceux des classes étrangères.
Les classes ont des propriétés et méthodes privées, c'est à-dire internes et
qui ne concernent pas l'extérieur. Ces propriétés sont déclarées en tant que
private.
Références
Lorsque l'on créé un objet avec l'opérateur new, PHP créé
l'objet en mémoire et référence son emplacement en
mémoire dans la variable
Exemple :
héritage
L'héritage permet de spécialiser le code et/ou réutiliser du
code déjà existant .
Il permet, à partir d'une classe déjà existante, d'en créer
une nouvelle qui reprendra ses caractéristiques ce qui nous
permettra de les adapter à d'autres besoins sans modifier
la classe de base.
Exemple
connexions à une base de
données
connexion simple (sans PDO)
Imaginons qu’on est une base de données nommée « dbtest »,
contenant la table « tbltest » construite de la façon suivante :
connexion simple (sans PDO)
avec PDO
avantage de PDO
exemple
● Il est à noter que l’on peut
préparer une requête de
plusieurs manières : grâce
à des marqueurs (?) ou
des paramètres nommées
(:nom_parametre)
Sessions
Exemple