0% ont trouvé ce document utile (0 vote)
62 vues64 pages

Nnées Génie Informatique: Pr. Abdelali El Gourari

Transféré par

anasdouassi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
62 vues64 pages

Nnées Génie Informatique: Pr. Abdelali El Gourari

Transféré par

anasdouassi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

3ème Années Génie Informatique

PHP

Pr. Abdelali El Gourari


PHP – Un
Généralités
site dynamique c'est quoi?

En général, on peut regrouper les sites Web en deux catégories: les sites statiques et les sites dynamiques.

• Un site statique renferme un contenu figé qui ne change pas automatiquement et qui reste le même tant que le
Webmaster n'est pas intervenu pour le modifier manuellement.

• Les sites dynamiques, quant-à eux, sont des sites Web dont le contenu change d'une manière autonome. Celui ci peut
changer en fonction de la date, le navigateur utilisé par le client, la position géographique de celui-ci, les privilèges
attribués à chaque utilisateur suite à une authentification par exemple, l'historique de navigation etc...

Les sites dynamiques reposent sur des langages dits CGI (pour Common Gateway
Interface) dont PHP fait parti.

2
Généralités
PHP – De quoi aura-t-on besoin pour coder en PHP?

3
Introduction PHP
De quoi aura-t-on besoin pour coder en PHP?
Préparation du poste
• WampServer, XAMP, MAMP…
• VS code, VS, Notepad++,…

1. Installation XAMP.

2. Démarrage d’ Apache et MySQL.

3. Création d’espace du travail, il faut aller à C:\xampp\htdocs et créez un dossier comme


vous le souhaitez.

4. Ensuite, ouvrez ce dossier et créez un fichier dont le nom est [Link]


4
Introduction
A quoi ressemble un document PHP?

 Une page PHP est suffixée par


l'extension .php, mais cela ne veut pas dire
qu'elle contient uniquement du code PHP. En <!DOCTYPE html>
effet, elle peut renfermer toutes les <html>
<body>
syntaxes que nous avons vu jusqu'ici à savoir:
<h1>My first PHP page</h1>
HTML, CSS et JavaScript. <?php echo "Hello World!"; ?>
</body>
 Il est donc tout à fait possible que votre </html>
page PHP contienne 4 langages différents à la
fois.

5
Introduction

Regardez l'exemple ci-dessous ; seule la première instruction affichera la


Dans l'exemple ci-dessous, les trois instructions valeur de la $color variable ! En effet $color, $COLOR, et $color sont traitées
d'écho ci-dessous sont égales et légales : comme trois variables différentes :
ECHO est le même que echo:
<!DOCTYPE html>
<!DOCTYPE html> <html>
<html> <body>
<body> <?php
<?php
ECHO “My name is Abdelali!<br>"; $color = "red";
echo "My name is Abdelali!<br>"; echo "My car is " . $color . "<br>";
EcHo "My name is Abdelali!<br>"; echo "My house is " . $COLOR . "<br>";
?> echo "My boat is " . $coLOR . "<br>";
</body> ?>
</html> </body>
</html>

6
Integration du code PHP
Les commentaires
• En PHP on peut intégrer des commentaires
qui seront ignorés lors de l’exécution du
script par le serveur. Comme pour JavaScript
(ou pour le langage C) les commentaires en
PHP peuvent avoir deux formes: Commentaire
de fin de ligne: il s'agit d'un commentaire qui
s'étend jusqu'à la fin de la ligne à partir du
symbole double slash (//).
• Commentaire sur plusieurs lignes: il s'agit
d'un bloc qui peut contenir plusieurs lignes
comprises entre les symboles /* et */.

7
Integration du code PHP
Les variables
Une variable peut avoir un nom court (comme $x et $y) ou un nom plus descriptif ( $age, $carname, $total_volume).
Règles pour les variables PHP :

 Une variable commence par le $ signe, suivi du nom de la variable


 Un nom de variable doit commencer par une lettre ou le caractère de soulignement
 Un nom de variable ne peut pas commencer par un nombre
 Un nom de variable ne peut contenir que des caractères alphanumériques et des traits de soulignement (Az, 0-9 et _).
 Les noms de variables sont sensibles à la casse ( $age et $AGE sont deux variables différentes)

8
Integration du code PHP
Les variables scalaires
$txt = “Abdelali"; $txt = “Abdelali";
echo " My name is $txt!"; echo " My name is" .$txt. "!";

• L'exemple suivant affichera la • PHP n'a pas de commande pour déclarer une variable, et le type de
somme de deux variables : données dépend de la valeur de la variable.

$x = 5; $x = 5; // $x is an integer
$y = 4; $y = “Abdelali"; // $y is a string
echo $x + $y; echo $x;
echo $y

• La var_dump() fonction renvoie le type • Vous pouvez attribuer la même valeur à plusieurs variables sur une
de données et la valeur : seule ligne :

$x = 5;
$x = $y = $z = “Abdelali";
var_dump($x);

9
Integration du code PHP
L'instruction echo PHP
• L' echoinstruction peut être utilisée avec ou sans parenthèses : echoou echo().

echo "Hello"; //same as: echo("Hello");

L'exemple suivant montre comment générer du texte avec la echo commande (notez que le texte peut contenir du
balisage HTML) :

echo "<h2>PHP is Fun!</h2>";


echo "Hello world!<br>";
echo "I'm about to learn PHP!<br>";
echo "This ", "string ", "was ", "made ", "with multiple parameters."

L'exemple suivant montre comment générer du texte et des variables avec l' echo instruction :
$txt1 = “The best names in the world"; $txt1 = “The best names in the world";
$txt2 = "Abdelali"; $txt2 = "Abdelali";
echo "<h2>$txt1</h2>"; echo "<h2>" .$txt1. "</h2>";
echo "<p> My name is $txt2</p>"; echo "<p> My name is" .$txt2. "</p>"; 10
Integration du code PHP
L'instruction d'impression PHP
• L' print instruction peut être utilisée avec ou sans parenthèses : print ou print().

print "Hello"; //same as: print("Hello");

L'exemple suivant montre comment générer du texte avec la print commande (notez que le texte peut contenir du
balisage HTML) :

print "<h2>PHP is Fun!</h2>";


print "Hello world!<br>";
print "I'm about to learn PHP!<br>";
print "This ", "string ", "was ", "made ", "with multiple parameters."

L'exemple suivant montre comment générer du texte et des variables avec l' print instruction :
$txt1 = “The best names in the world"; $txt1 = “The best names in the world";
$txt2 = "Abdelali"; $txt2 = "Abdelali";
print "<h2>$txt1</h2>"; print "<h2>" .$txt1. "</h2>";
print "<p> My name is $txt2</p>"; print "<p> My name is" .$txt2. "</p>"; 11
Integration du code PHP
les constantes PHP
Les constantes servent aussi à stocker des valeurs dans un programme, mais à
l'inverse des variables, leurs valeurs ne changent pas.

Const Constant = ‘Bonjour’;

12
Integration du code PHP
les opérateurs
Les opérateurs sont des symboles qui permettent de faire des opérations sur les
variables. Les opérateurs sont souvent les mêmes dans la plupart des langages de
programmation et ils sont représentés par des symboles similaires dans la plupart des cas.

En PHP on distingue 5 familles d'opérateurs:

 Opérateurs arithmétiques.
 Opérateurs d'incrémentation.
 Opérateurs assignement (affectation).
 Opérateurs de comparaison.
 Opérateurs logiques.

13
Les structures de contrôle
Les structures conditionnelles et boucles
Une structure conditionnelle permet d'exécuter ou non une série d'instructions en fonction
d'une condition d'origine (appellée aussi expression ou prédicat). Si le calcul de cette condition
retourne TRUE alors le bloc d'instructions concerné est exécuté. Les expressions évaluées
peuvent être plus ou moins complexes, c'est à dire qu'elles peuvent être constituées d'une
combinaison d'opérateurs de comparaison, d'opérateurs logiques et même de fonctions.

14
Les structures de contrôle
Les structures conditionnelles et boucles

15
Les Les
structuresstructures
de de
contrôle
Les structures de contrôle
contrôle
Les structures conditionnelles et boucles

16
Les structures répétitives
Les boucles

17
Lesrépétitives
Les structures structures de contrôle
Les boucles

18
Les structures de contrôle
Exercices

Exercice 1:
Écrivez un programme pour effectuer la somme ou l'addition de deux nombres en
programmation PHP. Vous pouvez utiliser des variables et des opérateurs PHP

Exercice 2:
Ecrire un programme PHP pour calculer la facture d'électricité en utilisant des conditions if-else.

Conditions:

 Pour les 50 premières unités – Rs. 3,50/unité  (unités<=50)


 Pour les 100 prochaines unités – Rs. 4,00/unité  (unités>50 && unités<=100)
 Pour les 100 prochaines unités – Rs. 5,20/unité (unités>100 && unités<=200)
 Pour les unités supérieures à 250 – Rs. 6,50/unité

19
Les structures de contrôle
Exercices
Exercice 3:
Ecrire un programme qui lit au clavier les valeurs de trois résistances et de trois
capacités et calcule leur résistance et leur capacité équivalente, respectivement, dans
les deux cas :
 Les trois résistances et les trois capacités sont placées en série
 Les trois résistances et les trois capacités sont placées en parallèle
Les résultats doivent être affichés dans chaque cas.
Exercice 4:
Ecrire un programme permettant de calculer la valeur de l'expression E,

20
Les structures de contrôle
Les tableaux
En PHP, un tableau est une structure de données qui peut contenir une collection de valeurs, telles que
des nombres, des chaînes de caractères, des objets, ou même d'autres tableaux.

Tableaux indexés:
Les tableaux indexés sont des tableaux où chaque élément est associé à un indice numérique,
commençant généralement par zéro.

// Création d'un tableau indexé

$fruits = array('Pomme', 'Banane', 'Orange');

// Accès aux éléments du tableau


echo $fruits[0]; // Affiche "Pomme"
echo $fruits[1]; // Affiche "Banane"
echo $fruits[2]; // Affiche "Orange"

21
Les structures de contrôle
Les tableaux
Tableaux associatifs:
Les tableaux associatifs sont des tableaux où chaque élément est associé à une clé.

// Création d'un tableau associatif $Key => $value


$personne = array(
'nom' => ‘El Gourari',
'prénom' => ‘Abdelali',
'âge' => 27
);
// Accès aux éléments du tableau
echo $personne['nom']; // Affiche “El Gourari"
echo $personne['prénom']; // Affiche “Abdelali"
echo $personne['âge']; // Affiche 27

22
Les structures de contrôle
Les tableaux
Ajout et modification d'éléments dans un tableau Parcourir un tableau avec foreach

// Création d'un tableau $notes = array(10, 15, 12, 18);

$couleurs = array('rouge', 'bleu', 'vert'); // Afficher chaque élément du tableau


foreach ($notes as $note) {
// Ajout d'un élément à la fin du tableau echo $note . '<br>';
$couleurs[] = 'jaune'; }

// Modification d'un élément


$couleurs[1] = 'orange';

Ces exemples illustrent quelques notions de base sur les tableaux en PHP. Les tableaux sont des
structures de données extrêmement polyvalentes et sont utilisés très fréquemment dans le
développement web avec PHP.

23
Les structures de contrôle
Les tableaux
Fonctions utiles pour les tableaux
PHP dispose de nombreuses fonctions intégrées pour travailler avec les tableaux, telles que count,
array_push, array_pop, array_shift, array_unshift, sort, rsort, array_keys, array_values, etc.

fruits = array('Pomme', 'Banane', 'Orange');

// Nombre d'éléments dans le tableau


echo count($fruits); // Affiche 3
// Ajout d'un élément à la fin du tableau
array_push($fruits, 'Fraise');
// Suppression du dernier élément du tableau
array_pop($fruits);
// Affichage des clés du tableau
print_r(array_keys($fruits));
// Affichage des valeurs du tableau
print_r(array_values($fruits));
// Tri du tableau sort($fruits);
print_r($fruits);
24
Les
Les fonctions structures de contrôle
En PHP, une fonction est un bloc de code nommé qui peut être réutilisé pour effectuer une tâche
spécifique. Les fonctions peuvent accepter des arguments en entrée et renvoyer une valeur en sortie,
mais elles peuvent aussi ne rien renvoyer du tout.
Déclaration d'une fonction Appel d'une fonction

function direBonjour() {
direBonjour(); // Affiche "Bonjour !"
echo "Bonjour !";
}
Fonctions avec des arguments Fonctions avec une valeur de retour

function function addition($a, $b) {


direBonjourPersonne($nom) { return $a + $b;
echo "Bonjour, $nom !"; }
}
direBonjourPersonne("Ali"); $resultat = addition(5, 3);

// Affiche "Bonjour, Ali !" // $resultat vaut 8 25


Les
Les fonctions structures de contrôle
Fonctions avec des arguments par défaut:

function direBonjour($nom = "mon ami") {


echo "Bonjour, $nom !";
}
direBonjour(); // Affiche "Bonjour, mon ami !"
direBonjour("Ali"); // Affiche "Bonjour, Ali !"

Fonctions récursives:

Les fonctions récursives sont des fonctions qui s'appellent elles-mêmes.

function factorielle($n) {
if ($n == 0 || $n == 1) {
return 1; }
else {
return $n * factorielle($n - 1);
}
}
echo factorielle(5); // Affiche 120 (car 5! = 5*4*3*2*1)
26
Les
Les fonctions structures de contrôle
Fonctions anonymes (fonctions lambda)

Les fonctions anonymes sont des fonctions sans nom qui peuvent être assignées à une variable ou utilisées
comme argument de fonction.

$saluer = function($nom) {
echo "Bonjour, $nom !";
};
$saluer("Ali"); // Affiche "Bonjour, Ali !"

Ces exemples illustrent quelques notions de base sur les fonctions en PHP. Les fonctions sont des
éléments fondamentaux du langage qui permettent d'organiser et de réutiliser le code de manière efficace.

27
Les structures de contrôle
Les fonctions
Exercice : Calculer la moyenne des notes
Dans cet exercice, vous allez créer un script PHP qui prend un tableau de notes et calcule leur moyenne.

1. Créez un tableau contenant des notes (par exemple, [10, 15, 12, 18]).
2. Écrivez une fonction en PHP pour calculer la moyenne des notes.
3. Utilisez cette fonction pour afficher la moyenne des notes.

28
Les structures de contrôle
Les chaînes de caractères
En PHP, les chaînes de caractères sont utilisées pour représenter du texte. Voici quelques opérations de
base que vous pouvez effectuer sur les chaînes de caractères :

Déclaration de chaînes de caractères Concaténation de chaînes de caractères

$texte = "Bonjour, monde!"; $nom = « Ali";


$salutation = "Bonjour, " . $nom . "!";
// Ou
$texte2 = 'Ceci est une chaîne de caractères.'; $salutation = "Bonjour, $nom!";

Longueur d'une chaîne de caractères Recherche dans une chaîne de caractères

$texte = "Hello"; $texte = "Bonjour, monde!";


$position = strpos($texte, "monde");
$longueur = strlen($texte); // $longueur vaut 5 // $position vaut 9

29
Les structures de contrôle
Les chaînes de caractères
Remplacement dans une chaîne de caractères Extraction d'une sous-chaîne

$texte = "Bonjour, monde!"; $texte = "Bonjour, monde!";


$texte_modifie = str_replace("monde", "PHP", $texte); $sous_chaine = substr($texte, 8, 5);
// $texte_modifie vaut "Bonjour, PHP!" // $sous_chaine vaut "monde"

Conversion de cas

$texte = "Bonjour";
$texte_majuscule = strtoupper($texte);
// $texte_majuscule vaut "BONJOUR"
$texte_minuscule = strtolower($texte);
// $texte_minuscule vaut "bonjour"

Ces exemples couvrent certaines opérations courantes que vous pouvez effectuer sur les chaînes de
caractères en PHP. Les chaînes de caractères sont utilisées très fréquemment dans le développement web
pour manipuler et afficher du texte sur les pages web.

30
Les structures de contrôle
Les chaînes de caractères
Comparaison de chaînes de caractères

$chaine1 = "Bonjour";
$chaine2 = "bonjour";  ‘BONJOUR’ >’bonjour’ Dans le code ASCII
$resultat = strcmp($chaine1, $chaine2);
// $resultat vaut ‘‘-1’’ OU bien ‘’true’’ (différentes, mais pas sensibles à la casse)

Division d'une chaîne en un tableau

$texte = "Ceci est une phrase.";


$mots = explode(" ", $texte);
// $mots est un tableau ["Ceci", "est", "une", "phrase."]

Jointure de tableau en une chaîne

$mots = array("Ceci", "est", "une", "phrase.");


$texte = implode(" ", $mots);
// $texte vaut "Ceci est une phrase."
31
Les structures de contrôle
les sessions
En PHP, une session est une façon de stocker des données côté serveur pour un utilisateur donné sur
une période de temps définie, généralement entre plusieurs pages ou requêtes. Cela permet de stocker
des informations spécifiques à un utilisateur, telles que des identifiants de connexion, des préférences
utilisateur, des paniers d'achat, etc.

Création de session en PHP Utilisation de session en PHP

<?php <?php
// Démarre la session
// Démarre la session session_start();
session_start(); // Accède aux variables de session
// Définit des variables de session $utilisateur = $_SESSION['utilisateur'];
$_SESSION['utilisateur'] = ‘Abdelali'; $role = $_SESSION['role'];
$_SESSION['role'] = ‘Teacher'; echo 'Utilisateur : ' . $utilisateur . '<br>';
echo 'Session créée et variables définies.'; echo 'Rôle : ' . $role;

?> ?>
32
Les structures de contrôle
les sessions
Dans cet exemple, la première page définit des variables de session pour l'utilisateur, puis la deuxième
page y accède pour afficher les informations stockées. Assurez-vous d'appeler session_start() au début
de chaque script PHP où vous souhaitez accéder aux variables de session.
Exemple 1: Authentification d'utilisateur
<?php
session_start();

// Vérification des identifiants


if ($_POST['username'] == ‘Abdelali' && $_POST['password'] == ‘123') {
$_SESSION['logged_in'] = true;
$_SESSION['username'] = $_POST['username'];
echo 'Vous êtes connecté en tant que ' . $_SESSION['username'];
}
else {
echo 'Identifiants incorrects';
}
?> 33
Les structures de contrôle
les sessions
Exemple 2: Stockage de préférences utilisateur

<?php session_start();

// Définition des préférences utilisateur


$_SESSION['preferences'] = array( 'theme' => 'dark', 'langue' => ‘Arab' );
echo 'Préférences utilisateur définies.';

?>

34
Les
les sessions structures de contrôle
Exemple 3: Gestion de panier d'achat

<?php session_start();
// Ajout d'un produit au panier
if (isset($_GET['add_to_cart'])) {
$product_id = $_GET['add_to_cart'];
if (!isset($_SESSION['cart'][$product_id])) { $_SESSION['cart'][$product_id] = 1; }
else { $_SESSION['cart'][$product_id]++; }
echo 'Produit ajouté au panier.';
}
// Affichage du panier
echo '<h2>Panier d\'achat</h2>';
if (!empty($_SESSION['cart'])) {
foreach ($_SESSION['cart'] as $product_id => $quantity) {
echo 'Produit #' . $product_id . ' - Quantité: ' . $quantity . '<br>';
}
}
else { echo 'Le panier est vide.'; }
?> 35
Les structures de contrôle
les sessions
Ces exemples illustrent différentes façons d'utiliser les sessions en PHP, notamment pour
l'authentification, le stockage de préférences utilisateur et la gestion d'un panier d'achat. Assurez-vous
toujours de démarrer la session avec session_start() au début de chaque script où vous souhaitez
utiliser les sessions.

Exemple 4: Création d'un formulaire de connexion avec authentification:

Dans cet exemple, nous allons créer un formulaire de connexion où l'utilisateur doit saisir un nom
d'utilisateur et un mot de passe. Si les identifiants sont corrects, l'utilisateur sera redirigé vers une
page de bienvenue, sinon un message d'erreur sera affiché. Il peut également se déconnecter en
cliquant sur le lien de déconnexion, ce qui le ramènera à la page de connexion.

36
Les structures de contrôle
Les fonctions prédéfinies en PHP
En PHP, il y a de nombreuses fonctions prédéfinies qui facilitent le développement d'applications web
et d'autres types de logiciels. Voici quelques-unes des fonctions prédéfinies les plus couramment
utilisées :

Fonctions de manipulation de chaînes de caractères :

 strlen() : Retourne la longueur d'une chaîne de caractères.


 strtolower() : Convertit une chaîne de caractères en minuscules.
 strtoupper() : Convertit une chaîne de caractères en majuscules.
 str_replace() : Remplace une sous-chaîne par une autre dans une chaîne donnée.
 substr() : Extrait une sous-chaîne à partir d'une chaîne de caractères.

37
Les structures de contrôle
Les fonctions prédéfinies en PHP

Fonctions de manipulation de tableaux :


 count() : Retourne le nombre d'éléments dans un tableau.
 array_push() : Ajoute un ou plusieurs éléments à la fin d'un tableau.
 array_pop() : Supprime et retourne le dernier élément d'un tableau.
 array_merge() : Fusionne deux tableaux en un seul.
 array_search() : Recherche la valeur donnée dans un tableau et retourne la clé correspondante
si elle est trouvée.
Fonctions de gestion des dates et heures :
 date() : Retourne la date et l'heure actuelles au format spécifié.
 time() : Retourne l'heure actuelle sous forme de timestamp UNIX. (1er janvier 1970)
 strtotime() : Convertit une chaîne de texte en timestamp UNIX.  2024-05-09 9 mai 2024
38
Les structures de contrôle
Les fonctions prédéfinies en PHP

Fonctions pour la gestion des fichiers :


 file_get_contents() : Lit le contenu d'un fichier dans une chaîne de caractères.
 file_put_contents() : Écrit une chaîne dans un fichier.
 fopen() : Ouvre un fichier.
 fclose() : Ferme un fichier ouvert.
Fonctions pour la gestion des sessions et des cookies :
 session_start() : Démarre une session PHP.
 $_SESSION[] : Tableau associatif pour stocker des variables de session.
 setcookie() : Définit un cookie à envoyer au client.

39
Les structures de contrôle
Les fonctions prédéfinies en PHP

Fonctions pour la manipulation des données :


 json_encode() : Convertit une variable PHP en format JSON.
 json_decode() : Convertit une chaîne JSON en objet ou tableau PHP.
 serialize() : Convertit une variable PHP en une représentation storable.
 unserialize() : Convertit une représentation sérialisée en variable PHP.

Ce ne sont là que quelques exemples parmi les nombreuses fonctions prédéfinies disponibles en PHP.

40
Les structures de contrôle
Les fonctions prédéfinies en PHP
En PHP, pour interagir avec une base de données, notamment les bases de données MySQL, il existe
plusieurs fonctions prédéfinies qui permettent de réaliser des opérations telles que la connexion à la
base de données, l'exécution de requêtes SQL, la récupération des résultats, etc. Voici quelques-
unes des fonctions de gestion de base de données les plus couramment utilisées en PHP avec MySQL
:
Connexion à la base de données :
 mysqli_connect() : Établit une connexion à la base de données MySQL.
 mysqli_select_db() : Sélectionne une base de données spécifique sur le serveur MySQL.
 mysqli_close() : Ferme la connexion à la base de données.

41
Les structures de contrôle
Les fonctions prédéfinies en PHP
Exemple de connexion à la base de données :
$servername = "localhost";
$username = "utilisateur";
$password = "motdepasse";
$database = "basededonnees";

// Connexion
$conn = mysqli_connect($servername, $username, $password, $database);

// Vérifier la connexion
if (!$conn) {
die("Connexion échouée : " . mysqli_connect_error());
}
echo "Connexion réussie"; 42
Les structures de contrôle
Les fonctions prédéfinies en PHP
Exécution des requêtes SQL :
 mysqli_query() : Exécute une requête SQL sur la base de données.
Exemple d'exécution d'une requête SELECT :

$sql = "SELECT * FROM utilisateurs";


$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "ID: " . $row["id"] . " - Nom: " . $row["nom"] . "<br>";
}
} else {
echo "Aucun résultat trouvé";
} 43
Les structures de contrôle
Les fonctions prédéfinies en PHP
Récupération des résultats :
 mysqli_fetch_assoc() : Récupère une ligne de résultat sous forme de tableau associatif.
 mysqli_fetch_array() : Récupère une ligne de résultat sous forme de tableau indexé et
associatif.
 Mysql_num_rows() : le nombre des lignes retournées par une requête SELECT exécutée sur
une base de données MySQL.
Gestion des erreurs :
 mysqli_error() : Retourne une chaîne de description de l'erreur lorsqu'une requête échoue.

Ces fonctions de gestion de base de données en PHP vous permettent de réaliser des opérations de
base comme la connexion, l'exécution de requêtes SQL, la récupération et l'affichage des résultats, et
la gestion des erreurs. 44
Les structures de contrôle
Les fonctions prédéfinies en PHP

En PHP, il est crucial de mettre en place des mesures de sécurité pour protéger votre application web
contre les attaques et les failles de sécurité. Voici quelques-unes des fonctions et bonnes pratiques de
sécurité couramment utilisées en PHP :
Validation des données :
 filter_var() : Valide et filtre les données selon différents filtres (par exemple,
FILTER_VALIDATE_EMAIL pour valider une adresse email).
 htmlspecialchars() : Convertit les caractères spéciaux en entités HTML pour éviter les attaques
XSS (Cross-Site Scripting).
 strip_tags() : Supprime toutes les balises HTML et PHP d'une chaîne pour éviter les injections
de code.

45
Les structures de contrôle
Les fonctions prédéfinies en PHP
Exemple de validation d'une adresse email :

$email = "contact@[Link]";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Adresse email valide";
}
else {
echo "Adresse email invalide";
}

46
Les structures de contrôle
Les fonctions prédéfinies en PHP
Prévention des injections SQL :
 Utilisation de requêtes préparées avec mysqli_prepare() et mysqli_stmt_bind_param() pour
échapper les valeurs et éviter les injections SQL.

Exemple de requête préparée :

$stmt = mysqli_prepare($conn, "INSERT INTO utilisateurs (nom, email) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "ss", $nom, $email);
mysqli_stmt_execute($stmt);

47
Les structures de contrôle
Les fonctions prédéfinies en PHP
Gestion des sessions :
 session_start() : Démarre une session PHP sécurisée pour stocker des variables de session.
 Utilisation de session_regenerate_id() pour régénérer l'identifiant de session afin de prévenir
les attaques de fixation de session.
Exemple de démarrage de session :

session_start();
$_SESSION['utilisateur'] = ‘Ali';

48
Les structures de contrôle
Les fonctions prédéfinies en PHP
Cryptographie :
 password_hash() : Permet de hasher les mots de passe de manière sécurisée en utilisant
l'algorithme bcrypt.
 password_verify() : Vérifie si un mot de passe correspond au hash stocké en base de données.

Exemple d'utilisation de password_hash() :

$mot_de_passe = "motdepasse123";
$hash = password_hash($mot_de_passe, PASSWORD_DEFAULT);

49
Les structures de contrôle
Les fonctions prédéfinies en PHP
Protection contre les attaques CSRF (Cross-Site Request Forgery) :
 Utilisation de jetons CSRF (tokens CSRF) dans les formulaires et vérification de ces jetons
côté serveur pour valider les requêtes.
Exemple de génération et de vérification de jetons CSRF :

// Génération du jeton CSRF


$jeton_csrf = bin2hex(random_bytes(32));
$_SESSION['jeton_csrf'] = $jeton_csrf;

// Vérification du jeton CSRF lors de la soumission du formulaire


if ($_POST['jeton_csrf'] === $_SESSION['jeton_csrf']) {
// Traitement sécurisé
} else {
// Jeton CSRF invalide
} 50
Les structures de contrôle
Les fonctions prédéfinies en PHP

En utilisant ces fonctions et bonnes pratiques de sécurité en PHP, vous pouvez renforcer la sécurité de
votre application web et réduire les risques d'attaques et de failles de sécurité.

51
Les cookies

52
53
54
Objectif :
L’authentification avec les sessions

Afin de protéger les pages web et de s’assurer que l’utilisateur est authentifié, nous allons
utiliser les sessions.
Pour répondre à ce besoin il faut noter que :
• Lors de l’authentification, les login et mots de passe seront mémorisés dans des variables de
sessions
• A chaque page accédée, la vérification de la connaissance de ces variables de session sera
vérifiée.
• En cas d’accès à une page avec des variables de session incorrectes, l’utilisateur sera
redirigé automatiquement vers la page d’authentification

Organisation et démarches à suivre :


 Création de la table users aves ses quatre champs  Création de la page d’accueil [Link] qui permet
 Création d’une page [Link] qui permet l’inscription d’initialiser une session, d’afficher : « Bienvenue
d’un nouvel utilisateur USER, Voici votre tableau de bord » avec la
 Création du fichier de connexion à la base des données «
[Link] » possibilité de se déconnecter (lien) et ce dernier va
 Création d’un formulaire de connexion [Link] (vérifier permettre de détruire la connexion en faisant appel à
les entrées utilisateur, si elles sont similaires avec celles une autre page (Logout).
dans la base des données, l’utilisateur sera redirigé vers  Création de la page [Link] qui permet de
détruire la session et de rediriger l’utilisateur vers la
la page d’accueil ; sinon un message d’erreur s’affiche). première page de connexion.
Création de la table et connexion à la base de données
PHP
Création de la table « users »

Après avoir créé la table, nous devons créer un


script PHP afin de nous connecter au serveur de
base de données MySQL. Créons un fichier
2 nommé « [Link] » et mettons le code
suivant à l’intérieur.
Formulaire d’inscription d’un nouveau utilisateur PHP

4 Récupération des
informations
utilisateur

5 Requête SQL + mot de passe crypté


Exécuter la requête sur la base de données

En cliquant sur connecter, on va


6 être rediriger vers la page
[Link]
PHP
Création du formulaire login et connexion à l’interface si login OK

• Appel au fichier de connexion DB


[Link].
• Ouverture d’une session
• Entrer des login [Link] ou
inscription pour nouveau user
8 • Vérification des identifiants avec
ceux dans la DB.
• Si les entrées sont égaux à ceux
dans la DB l’utilisateur sera
rediriger vers la page [Link],
connexion OK
• Si non, affichage d’un message
d’erreur
PHP
Connexion à la page d’accueil si login OK
• La page login fait appel à la page
[Link] qui permet de:
• Initialisation de la session
• Affichage de la page principale
9 • Déconnexion possible via le fichier
[Link]

à ESMA

10 En cliquant sur Déconnexion cela va détruire la


session et nous rediriger vers la première page de
connexion
PHP
Exercice_1
Vous allez créer une petite application de gestion de véhicules. Cette application doit permettre de :
 Définir une fonction pour calculer le nombre total de véhicules.
 Gérer une liste de véhicules à l'aide d'un tableau.
 Stocker et récupérer des informations sur les véhicules à l'aide des sessions.
 Gérer les préférences utilisateur à l'aide des cookies.
Étape 1 : Définir une fonction de calcul
Créez une fonction somme qui prend deux paramètres et retourne leur somme.
Utilisez cette fonction pour calculer le nombre total de véhicules disponibles et affichés.
Étape 2 : Gérer une liste de véhicules avec un tableau
 Créez un tableau contenant trois véhicules, chaque véhicule étant représenté par un tableau
associatif avec les clés marque et modele.
 Affichez la liste des véhicules en utilisant une boucle foreach.
PHP
Exercice_1

Étape 3 : Stocker et récupérer des informations sur les véhicules à l'aide des sessions
 Démarrez une session et stockez le tableau des véhicules dans une variable de session.
 Affichez les informations des véhicules stockés dans la session.
Étape 4 : Gérer les préférences utilisateur à l'aide des cookies
 Créez un cookie pour stocker la préférence utilisateur pour le type de véhicule (par exemple, « BM",
"Berline", etc.) avec une durée de vie de 30 jours.
 Vérifiez si le cookie est défini et affichez sa valeur. Sinon, définissez le cookie et affichez un
message indiquant que la préférence a été enregistrée.
 Ajoutez une option pour supprimer le cookie en définissant sa durée de vie dans le passé et affichez
un message indiquant que le cookie a été supprimé.
PHP
Exercice_2

Vous allez créer une petite application de gestion de produits pour un magasin en ligne. Cette application
doit permettre de :
 Définir une fonction pour calculer le prix total des produits.
 Gérer une liste de produits à l'aide d'un tableau.
 Stocker et récupérer des informations sur les produits à l'aide des sessions.
 Gérer les préférences utilisateur (comme la devise préférée) à l'aide des cookies.
Étape 1 : Définir une fonction de calcul
 Créez une fonction prixTotal qui prend un tableau de produits et retourne le prix total de tous les
produits.
 Chaque produit est représenté par un tableau associatif contenant les clés nom et prix.
PHP
Exercice_2
Étape 2 : Gérer une liste de produits avec un tableau
• Créez un tableau contenant trois produits, chaque produit étant représenté par un tableau associatif
avec les clés nom et prix.
• Affichez la liste des produits en utilisant une boucle foreach.
Étape 3 : Stocker et récupérer des informations sur les produits à l'aide des sessions
• Démarrez une session et stockez le tableau des produits dans une variable de session.
• Affichez les informations des produits stockés dans la session.
Étape 4 : Gérer les préférences utilisateur à l'aide des cookies
• Créez un cookie pour stocker la devise préférée de l'utilisateur (par exemple, "EUR" ou "USD")
avec une durée de vie de 30 jours.
• Vérifiez si le cookie est défini et affichez sa valeur. Sinon, définissez le cookie et affichez un
message indiquant que la préférence a été enregistrée.
PHP
Exercice_2

• Ajoutez une option pour supprimer le cookie en définissant sa durée de vie dans le passé et affichez
un message indiquant que le cookie a été supprimé.

Vous aimerez peut-être aussi