Ministère de l’Enseignement Supérieur,
de la Recherche Scientifique et de la Technologie
Université de Sfax
DÉVELOPPEMENT
² WEB
Sellami Amal
HTML CSS JS PHP
CHAPITRE 2:
PHP
Introduction à PHP
Qu’est-ce que PHP ?
- Langage de script. Utilisé coté serveur
- Acronyme récursif : PHP: Hypertext Preprocessor
- Créé en 1994-1995 par Rasmus Lerdorf
- Extension utilisée sur certains serveurs Web (78.9%)
- Langage multi plate-forme (UNIX / Windows…)
- Open Source
- Le PHP est un langage de programmation, ce qui n'était pas le cas du HTML.
- Le PHP permet de créer des pages web dynamiques (des pages HTML dynamiques).
- La syntaxe de PHP est largement inspirée du langage C, de Java et de Perl, avec des améliorations spécifiques.
Introduction à PHP
Pour installer PHP, on peut utiliser les outils
Introduction à PHP
Le PHP comporte plus de 500 fonctions. Il est fournit avec des librairies offrant des fonctionnalités
diverses : accès aux bases de données, fonctions d’images, sockets,...
• Un script PHP est exécuté sur le serveur et le résultat HTML brut est renvoyé au navigateur.
• L'extension de fichier par défaut pour les fichiers PHP est .php .
• Un fichier PHP contient normalement des balises HTML et du code de script PHP.
• Un script PHP commence par <?php et se termine par ?>
<!DOCTYPE html>
<html>
<body>
<h1>My first PHP page</h1>
<?php
echo "Hello World!";
?>
</body>
</html>
Introduction à PHP
Les blocs d’instructions PHP sont délimités par des balises Spéciales.
<?php
…..code Php
?>
Un fichier html introduisant des scripts PHP porte l’extension .php .
Chaque instruction se termine par un « ; »
PHP: Les variables
Déclaration et affectation:
PHP n’est pas un langage fortement typé: Déclaration et affectation se font au
même temps.
Une variable est toujours constituée de 2 choses :
Nom
Valeur : c’est l’information qu’elle contient, qui peut changer.
Une variable est préfixée par $
Exemple: $var =10; <?php
// commentaire d’une ligne
Un script PHP se commente comme en C : /* commentaire
sur plusieurs
lignes */
Tout ce qui se trouve dans un commentaire est ignoré. ?>
PHP: Les variables
Déclaration et affectation:
Il existe six types de données: Entier, Décimal, Chaîne de caractères, Tableau,
Objet et Booléen (à partir de PHP4)
L’instruction echo permet d’insérer du texte dans la page web.
Permet d’envoyer du texte au navigateur du client (« ecrire » la page au format
HTML résultant de l’interprétation de PHP)
PHP: Les variables
Les constantes se déclarent par la commande define, ne portent pas le
symbole $ (dollars) en début d’identificateur et ne sont pas modifiables.
Syntaxe: define("var", valeur) //définit la constante « var »(sans $) de
valeur « valeur ».
Exemple:
define("cours", "PHP");
echo cours; // affiche ‘PHP’
Il est possible de convertir explicitement une variable en un type primitif grâce
au casting (comme en C).
Exemple:
$Ch= "2021"; // Ch vaut la chaîne "2021"
$n=(int)$Ch; // $n vaut le nombre 2021
PHP: Emplacement du code
Peut-on placer une balise PHP n’importe où dans le code ?
Oui ! Vraiment n’importe où. Pas seulement dans le corps de la page : vous
pouvez placer une balise PHP dans l’en tête de la page ou en dehors des
balises <html></html>
<?php
echo "Bonjour";
?>
PHP: fonctions
Empty($var) renvoi vrai si la variable est vide
isset($var) renvoi vrai si la variable existe
unset($var) détruit une variable
gettype($var) retourne le type de la variable
is_long(), is_double(), is_string(), is_array(),
is_object(), is_bool(), is_float(), is_numeric(),
is_integer(), is_int()…
PHP: fonctions
// Testez
// Testez
<?php
<?php
$a = "une variable en PHP";
$a= 12; if (!empty($a))
echo gettype($a) ; // => "integer" echo " La variable existe et elle n\'est pas
vide !";
?>
?>
// Testez
// Testez
<?php
<?php
$a = "une variable en PHP";
if(isset($a)) echo "la variable a existe"; $a= 123;
unset($a); echo is_int($a); // => (vrai)
echo "la variable a a été supprimée ...";
?>
?>
PHP: Les opérateurs
Comparaison Logiques Arithmétiques Affectation
== : égalité && : et + : addition = : affectation
> :inférieur strict || : ou - : soustraction += : addition puis
affectation
< : supérieur strict xor : ou exclusif / : division (renvoie un
entier si les 2 opérandes -= : soustraction puis
<= : inférieur ou égal ! : négation sont des entiers, sinon il affectation
renvoie un flottant.)
>= : supérieur ou *= : multiplication puis
égal * : multiplication affectation
!= : négation % : modulo /= : division puis
affectation
++ : incrément
%= : modulo puis
-- : décrément affectation
PHP: Les opérateurs
Opérateurs de casting Opérateurs de chaînes Opérateur de tableaux
(string) : conversion en chaîne de . : concatène deux chaînes + : additionner deux
caractères entre elles tableaux entre eux. Le
tableau de droite est
(int) : conversion en entier, .= : opérateur d’assignation ajouté au tableau de
synonyme de (integer) gauche.
(real) : conversion en double,
synonyme de (double) et (float)
(array) : conversion en tableau
(object) : conversion en objet
(bool) : conversion en booléen
PHP: Les opérateurs
<?php
$n = 0;
$n += 2; // $n vaut 2
$n *= 6; // $n vaut 12
?>
<?php
$a="Bonjour";
$b=$a." les amis"; // $b contient Bonjour les amis
Echo $b;
?>
PHP: Les opérateurs
Syntaxe: (condition)?(expression1):(expression2);
Si la condition est vraie alors évalue et renvoie l’expression1
sinon évalue et renvoie l’expression2.
Exemple:
$test = ($n < 7)?($n) : ($n%2);
La variable $test prend $n pour valeur si $n est strictement
inférieur à 7, sinon vaut le reste de la division entière de $n par
2.
PHP: Les chaînes de caractères
Une variable chaîne de caractères n’est pas limitée en nombre de caractères.
Elle est toujours délimitée par des simples quottes ou des doubles quottes.
Exemple: $X = "Bonjour" ;
$Y = ‘Hello’;
Les doubles quottes permettent l’évaluation des variables et caractères
spéciaux contenus dans la chaîne (comme en C ou en Shell) alors que les
simples ne le permettent pas. // Testez
caractères spéciaux : <?php
$prenom= "Aicha";
\n : saut de ligne echo "Hello, $prenom"; // Hello, Aicha
\t : tabulation echo 'Hello, $prenom'; // Hello, $prenom
\\ : antislash ?>
\$ : caractère dollars
\" : double quote
PHP: Les chaînes de caractères
PHP: Les tableaux
Un tableau est créé avec la fonction array().
Un tableau accepte des éléments de tout type.
Les éléments d’un tableau peuvent être de types différents et sont séparés
d’une virgule.
L’appel d’un élément du tableau se fait à partir de son indice (on commence par
zéro).
<?php
$tab = array();
$tab[0] = 10 ;
$tab[1] = 15;
$tab[] = 17; // équivaut à $tab[2] = 17;
Echo $tab[2] // 17
?>
<?php
$tab = array(10,15,’mardi’);
echo $tab[0]; // 10
echo $tab[2]; // mardi
?>
PHP: Les tableaux
Un tableau peut être initialisé au fur et à mesure.
L’utilisation de la fonction array() n’est pas obligatoire et on peut déclarer un
tableau à la volée.
<?php
$tab[1]=2;
$tab[2]=6;
$tab['test']='Ma chaîne';
?>
PHP: Les tableaux
Fonctions relatives
sizeoff : renvoie le nombre d’éléments d’un tableau. C’est un équivalent de
count.
is_array : renvoie true si la variable est de type tableau, false sinon.
reset : place le pointeur interne sur le premier élément du tableau. Chaque
variable tableau possède un pointeur interne.
end : place le pointeur interne du tableau sur le dernier élément du tableau.
current: renvoie l’élément courant du tableau.
next: déplace le pointeur vers l’élément suivant, et renvoie cet élément. S’il
n’existe pas, la fonction renvoie false.
prev : déplace le pointeur vers l’élément précédent, et renvoie cet élément. S’il
n’existe pas, la fonction renvoie false.
PHP: Les tableaux
Fonctions relatives
each: renvoie l’index et la valeur courante dans un tableau à 2 éléments.
list: construit un tableau temporaire à partir des variables scalaires passées en
argument.
key: renvoie l’index de l’élément courant du tableau.
Sort et rsort: permettent de trier un tableau.
<?php
sort: trie par valeurs croissantes
$jours = array(‘Lundi’, ‘Mardi’, ‘Mercredi’);
rsort: par valeurs décroissantes $nbr = sizeof($jours);
reset($jours);
for($i=0; $i<$nbr; $i++) {
echo current($jours).’’<br />’’;
next($jours); }
?>
PHP: Les tableaux
Parcours d’un tableau (lecture de tout les éléments):
<?php
//déclaration d’un tableau
$jours=array(‘Lundi’, ‘Mardi’, ‘Mercredi’);
Foreach ($jours as $elem)
{ echo $elem."\n"; }
?>
// La variable $elem prend pour valeur successives tous les éléments du tableau
$jours
PHP: Les tableaux
Un tableau associatif est un tableau dont l’index est une chaine de caractère au
lieu d’un nombre.
<?php <?php
$fruits = array ("pomme" => 52, $calories= array();
" banane" => 89); $calories["pomme"]= 52;
$calories["banane"]= 89;
?>
?>
// ici la clé "pomme" est associée la à
valeur "52"
PHP: Les tableaux
Les tableaux à plusieurs dimensions sont nommés matrices.
<?php
// Déclaration d’une matrice
$matrice[0] = array(‘A’, ‘B’, ‘C’);
$matrice[1] = array(‘X’, ‘Y’, ‘Z’);
$matrice[2] = array(‘D’, ‘E’, ‘F’);
?>
Pour accéder: Nom_Matrice[Num_Ligne][Num_Colonne]
Exemple: Pour accéder à la ligne n°2 (index 1) et à la colonne n°2 (index 1)
echo $matrice[1][1];
PHP: Les structures de contrôles: IF
<?php
<?php
if (condition)
if (condition)
{
{ instruction1 ;
instruction1 ; ...
... Instruction N ;
Instruction N ; }
} elseif
else {
{ ….
... }
} else
{
?> ...
}
?>
PHP: Les structures de contrôles: if
Exemple
<?php
$age = 8;
if ($age <= 12) // SI l'âge est inférieur ou égal à 12
{
echo "Salut gamin ! Bienvenue sur mon site !<br />";
$autorisation_entrer = "Oui";
}
else // SINON
{
echo "Ceci est un site pour enfants, vous etes trop vieux pour pouvoir
entrer. Au revoir
!<br />";
$autorisation_entrer = "Non";
}
echo "Avez-vous l'autorisation d'entrer ? La reponse est :
$autorisation_entrer";
?>
PHP: Les structures de contrôles: switch
<?php
<?php
switch ($i)
switch (<expression>) {
{ case 0:
case val1: print "i egale 0";
instructions; break;
break; case 1:
case val2: print "i egale 1";
instructions; break;
break; case 2:
… print "i egale 2";
default: break;
instructions; default:
} print "i est inférieur à 0 ou supérieur à 2";
?> }
?>
PHP: Les structures de contrôles: boucle for
Exemples
<?php
Syntaxe // afficher toutes les lettres de l’alphabet
français
<?php for ($lettre=‘a’; $lettre<=‘z’; $lettre++)
{
for (initialisation; condition_arret ; incr) echo $lettre ."\n";
{ }
instruction1 ; <?php
... ?>
Instruction N ; for( $i=0; $i < sizeof($tableau ); $i++ )
} {
if( $tableau[$i] == 'suivant' )
?> { continue; }
if( $tableau[$i] == 'fin' )
{ break; }
echo $tableau[$i]. "\n";
}
?>
PHP: Les structures de contrôles: boucle while
Syntaxe Exemple
<?php <?php
while (continuer_tant_que) $compteur =1;
{ while ($compteur <= 20)
instruction1 ; {
... echo "$compteur \n";
Instruction N ; $compteur++;
} }
?>
?>
PHP: Les structures de contrôles: do … while
Syntaxe Exemple
<?php <?php
do { $compteur =1;
instruction1 ; do
... {
Instruction N ; echo "$compteur \n";
} while (continuer_tant_que) $compteur++;
} while ($compteur <= 20)
?> ?>
PHP: Les structures de contrôles: foreach
Syntaxe
<?php
foreach(tableau as elem)
{ Exemple
instruction1 ; <?php
...
Instruction N ;
} $tab=array(1=>'un',2=>'deux',3=>'trois');
?>
foreach($tab as $valeur)
{ echo "$valeur \n"; } // affiche un deux trois
<?php
foreach($tab as $cle => $valeur)
foreach(tableau as clef => elem) { echo "$cle => $valeur\n";} // affiche 1 => un, 2 => deux, 3
{ => trois
instruction1 ;
... ?>
Instruction N ;
}
?>
PHP: Les fonctions
Il n’y a pas de distinction fonctions / procédures en PHP.
Les fonctions PHP prennent de 0 à n paramètres. Ces paramètres peuvent
être de type quelconque.
Une fonction n’a pas besoin d’être déclarée avant d’être utilisée, du moment
qu’elle apparaît dans le script.
La syntaxe de déclaration s’appuie sur le mot clé function. Ce mot clé est
immédiatement suivi du nom de la fonction par lequel on va l’appeler depuis
n’importe quel endroit du code PHP, puis des parenthèses destinées à
accueillir les éventuels paramètres.
Elles peuvent de façon optionnelle retourner une valeur.
PHP: Les fonctions
<?php
function nom_fonction($arg1, $arg2,
$arg3, ..., $argn)
{
Syntax bloc de commandes
e }
<?php
?>
function fonction_verif ($nb)
{
if ($nb<10)
<?php $nb+=10;
else
Exemple function bonjour() $nb=$nb*2;
s { echo " Bonjour "; } Return $nb;
… }
bonjour(); // Affiche Bonjour à l’écran $result= fonction_verif (50);
echo $result; //retourne 100
?> ?>
PHP: Les fonctions
La valeur de retour d'une fonction est définie par le mot clef "return".
Dès que le mot clef "return" est exécuté, PHP sort de la fonction.
<?php
function bonjour2()
{ return " Bonjour "; }
…
echo bonjour2() ; // Affiche Bonjour2 à l’écran.
?>
On peut retourner tout type de valeurs, mais pas plusieurs en même temps.
Cependant rien n’empêche dans ce cas de retourner un tableau.
PHP: Les fonctions
Variables locales et globales
Il y a deux types de définition de variables :
Global: Ces variables seront visibles partout dans le code durant tout le
temps de son exécution.
Local: Ces variables ne seront visibles que dans la fonction où elles
auront été définies.
PHP+HTML: Exemple
page1.html test.php
<html> <?php
<body> function bj(){
echo "bonjour";
<A }
href="test.php">Test</a> bj();
</body> ?>
</html>
PHP: Les formulaires HTML
Formulaires : permettant la saisie de données dans une page Web.
Définition:
<form action=… method=… > … </form>
Attribut action : URL de la page PHP à exécuter après validation du
formulaire.
Attribut method : méthode de transmission des données (valeurs
possibles : get et post ).
Différence entre les méthodes get et post.
get : apparition des valeurs saisies en paramètres de l’URL de la page
action.
post : valeurs saisies cachées et quantité de données saisies plus
importante.
Exemple:
<form action=“ajout_etu.php” method=“post”> … </form>
PHP: Les formulaires HTML
Saisie dans un formulaire : <input />
Attribut obligatoire : name, nom de la variable.
Champs texte: <input type="text" name="" size="" />
Exemple: <input type="text" name="nom" size="30" />
Champs mot de passe: <input type= "password" name="" size="" />
Exemple: <input type="password" name= "mp" size=“8" />
Fichier : <input type= "file" />
Exemple: <input type="file" name=“fichier” />
PHP: Les formulaires HTML
Bouton radio <input type=“radio” name ="" value=“” />
Homme : <input type=“radio” name=“genre” value=“H” />
Femme : <input type=“radio” name=“genre” value=“F” />
Case à cocher: <input type= "checkbox" name="" />
Choix 1 : <input type=“checkbox” name=“choix1” />
Choix 2 : <input type=“checkbox” name=“choix2” />
Bouton de commande
Attribut type : submit | reset : validation ou réinitialisation du formulaire
Attribut value : légende du bouton
<input type=“submit” name=“valider” value=“Valider” />
<input type=“reset” name=“annuler” value=“Annuler” />
Zone de texte multi-lignes : <textarea>…</textarea>
Attribut name : nom de la zone de texte
Attribut rows et cols : nombre de lignes / colonnes
<textarea name=“text” rows=“10” cols=“60”> </textarea>
PHP: Les formulaires HTML
Liste déroulante : <select> … </select>
Attribut name : nom de la variable choix
Balise <option> … </option> : élément de la liste
Attribut selected de <option> : choix par défaut
<select name=“niveau”>
<option>Licence</option>
<option selected=“selected”>Ingénieur</option>
<option>M1</option>
<option>M2</option>
</select>
PHP: Les formulaires HTML
Les tableaux associatifs $_GET[] et $_POST[] permettent d’accéder
respectivement aux valeurs transmises par les méthodes get et post.
Formulaire.ph recup.php
p
<?php
<form action= " recup.php" method="post">
<p>Nom : <input type="text" name="nom" size="50" /></p> echo " <p> L‘etudiant ".$_POST["nom"];
<p>Annee : <select name="annee"> echo " est en ".$_POST["annee"]."</p>";
<option>Licence</option>
<option selected>M1</option> ?>
<option>M2</option>
</select>
<input type="submit" value="Valider">
</form>
PHP: Les formulaires HTML
une listes à sélections multiples: La variable récupérée par PHP est alors un
tableau contenant les différentes valeurs sélectionnées
<form action="recup.php" method="post"> recup. php
<input name='choix[]' type='checkbox' value='2GII1'/> choix 1 <?php
<input name='choix[]' type='checkbox' value='2GII2'/> choix 2 foreach($_POST['choix'] as $c)
{
<input name='choix[]' type='checkbox' value='2GII3'/> choix 3 echo "$c is selected </br>";
}
<input type="submit" value="Valider" />
?>
</form>
PHP: Transmission des données entre les pages
On dispose du nom et du prénom du visiteur de la page page1.php dans les
variables $nom et $prenom. On souhaite les transmettre à la page
page2.php.
Ajouter des paramètres à l’URL de la page cible
Page2. php
Page1.php
<html>
<body>
<html> <p>Bonjour <?php echo $_GET['prenom'] .
<body> ' ' . $_GET['nom']; ?> !</p>
</body>
<a href="page2.php?nom=Ali&prenom=Mohamed">Dis- </html>
moi bonjour !</a>
</body>
</html>
PHP: Redirection
Pour renvoyer un utilisateur vers une autre page, on peut utiliser la fonction
PHP header() à laquelle on va passer la page où l’utilisateur doit être renvoyé
sous la forme Location : adresse de ma page.
<?php header('Location: destination.php'); ?>
destination.php représente l'adresse de la page vers laquelle vous
voulez vous rediriger.
PHP: Les sessions
Objectif : Stockage de variables lors de la navigation sur plusieurs pages Web
successives.
Transmettre une ou plusieurs variables sur toutes les pages d’un site.
Utilisations courantes :
Identification des visiteurs par login et mot de passe stockés dans une base
de données.
Gestion des profils des utilisateurs.
PHP: Les sessions
Les principales étapes d’utilisation d’une session sont les suivantes :
Une session est créée avec l’appel session_start().
<?php
// initialisation
session_start() ;
?>
Sauvegarder une variable: Les variables de sessions sont stockées dans le tableau super-
global : $_SESSION
<?php
session_start(); // Création de la session
$_SESSION['prenom'] = 'Fatma';
?>
PHP: Les sessions
Récupération de données dans une session: Quand on démarre une session
avec session_start(), le tableau super-global $_SESSION est automatiquement
initialisé avec les variables de la session.
<?php
echo $_SESSION['prenom'];
?>
PHP: Les sessions
•Savoir si une variable appartient à une session: Utiliser sur le
tableau $_SESSION la fonction isset() qui renvoie vrai si la variable passée
en argument existe réellement.
<?php
if (isset($_SESSION['prenom']))
{ echo 'La variable prenom est déjà enregistrée !';}
else
{ echo 'La variable prenom n\'est pas enregistrée !'; }
?>
•Supprimer une variable d’une session: Utiliser unset() qui prend en
paramètre la variable à détruire
<?php
unset($_SESSION['prenom']);
?>