0% ont trouvé ce document utile (0 vote)
3 vues75 pages

Introduction au PHP et création de pages web

Le document présente un cours sur le langage PHP, abordant la conception de pages web et la différence entre pages statiques et dynamiques. Il détaille les caractéristiques de PHP, son intégration avec HTML, ainsi que les concepts de variables, types de données, opérateurs, instructions conditionnelles et boucles. Enfin, il traite des fonctions et des tableaux, illustrant chaque concept par des exemples de code.

Transféré par

yacoub
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)
3 vues75 pages

Introduction au PHP et création de pages web

Le document présente un cours sur le langage PHP, abordant la conception de pages web et la différence entre pages statiques et dynamiques. Il détaille les caractéristiques de PHP, son intégration avec HTML, ainsi que les concepts de variables, types de données, opérateurs, instructions conditionnelles et boucles. Enfin, il traite des fonctions et des tableaux, illustrant chaque concept par des exemples de code.

Transféré par

yacoub
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

Institut Supérieur du Numérique

Cours Langages Web

PHP
Internet et les pages web
❖ HTML : Conception de pages destinées à être publiées sur Internet
❖ Page HTML : Contient le texte à afficher et des instructions de mise en page
❖ HTML est un langage de description de page et non pas un langage de
programmation
• pas d’instructions de calcul ou pour faire des traitements suivant des
conditions
❖ Des sites de plus en plus riches en informations :
• Nécessité croissante d’améliorer le contenu de sites
• Mises à jour manuelles trop complexes
• Pourquoi ne pas automatiser les mises à jour ?

Institut supérieur numérique 2


Pages web statiques

❖ Fonctionnement : Leurs contenus ne changent ni en fonction du demandeur


ni en fonction d’autres paramètres éventuellement inclus dans la requête
adressée au serveur. Toujours le même résultat.
• Rôle du serveur : localiser le fichier correspondant au document
demandé et répond au navigateur en lui envoyant le contenu de ce
fichier

❖ limites : Besoin de réponses spécifiques


• passage de pages statiques à pages dynamiques

Institut supérieur numérique 3


Création des pages web dynamiques
❖ PHP : Hypertext PreProcessor

✓ Connaît un succès toujours croissant sur le Web et se positionne


comme un rival important pour ASP

✓ Combiné avec le serveur Web Apache et la base de données MySQL,


PHP offre une solution particulièrement robuste, stable et efficace

✓ Gratuité : Tous les logiciels sont issus du monde des logiciels libres
(Open Source).

Institut supérieur numérique 4


Histoire et Origine
❖ 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 PHP4 est apparue

❖ En 2001 cinq millions de domaines utilisent PHP, trois fois plus que l’année
2000
Institut supérieur numérique 5
PHP
❖ 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.

❖ Ses principaux atouts sont:


• La gratuité et la disponibilité du code source
• La simplicité d'écriture de scripts
• La possibilité d'inclure le script PHP au sein d'une page HTM
• La simplicité d'interfaçage avec des bases de données
• L'intégration au sein de nombreux serveurs web (Apache ...)
Institut supérieur numérique 6
Intégration PHP et HTML

❖ Les scripts PHP sont généralement intégrés dans le code d’un document
HTML

❖ L’intégration nécessite l’utilisation de balises

• avec le style xml : <? ligne de code PHP ?>

• Avec le style html : <?php ligne de code PHP ?>

• avec le style JavaScript :


<script language=«php»> ligne de code PHP </script>

Institut supérieur numérique 7


Intégration PHP et HTML
❖ Intégration directe avec HTML

<html>
<head> <title> Mon script PHP
</title> </head>
<body>
//ligne de code HTML
< ?php
//ligne de code PHP
?>
//ligne de code HTML ….
</body>
</html>

Institut supérieur numérique 8


Intégration PHP et HTML
❖ Simple exemple

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title> Bonjour depuis PHP </title>
</head>
<body>
<?php echo 'Bonjour généré
dynamiquement en PHP !'; ?>
</body>
</html>

Institut supérieur numérique 9


Les institutions d’affichage
❖ La fonction echo : echo Expression;
• echo "Chaine de caracteres";
• echo (1+2)*87;

❖ La fonction print : print(expression);


• print("Chaine de caracteres");
• print ((1+2)*87);

❖ La fonction printf : printf (chaîne formatée);


• $Perimetre = 1;
• printf ("Le périmètre du cercle est %d",$Perimetre);
echo peut prendre plus d’un paramètre, print ne prend qu’un seul paramètre.
Institut supérieur numérique 10
Syntaxe de base
❖ Typologie :
• Toute instruction se termine par un point-virgule

❖ Les commentaires :
• /* Voici un commentaire! */
• // un commentaire sur une ligne

❖ Les constantes :
✓ Define("nom_constante", valeur_constante )
• define ("ma_const", "Vive PHP4");
• define ("an", 2002) ;

Institut supérieur numérique 11


Les variables
❖ Principe :
• Commencent par le caractère $
• N'ont pas besoin d'être déclarées

<?php
$txt = "Hello world!";
$x = 5;
$y = 10.5;
echo "Teste $txt!";
echo "<br>" ;
echo "Teste " . $txt . "!";
?>

Institut supérieur numérique 12


Portée des variables en PHP
❖ La portée d’une variable est la partie du script où la variable peut être
référencée/utilisée.
❖ PHP a trois portées variables différentes:
✓ Local
✓ Global
✓ Statique
❖ Visibilité des variables :
✓ Variable locale :
Visible uniquement à l’intérieur d’un contexte d’utilisation
• Variable globale :
Visible dans tout le script
Institut supérieur numérique 13
Les variables
❖ Les variables dynamiques : Permettent d'affecter un nom différent à une
autre variable
• $nom_variable = 'nom_var’;
• $$nom_variable = valeur; // équivaut à $nom_var = valeur;
❖ Affectation par valeur et par référence
• Affectation par valeur : $b = $a
• Affectation par (référence) variable : $c = &$a
<?php <?php
$a = 8;$b = $a;$a = 6; $a = 8;$b = &$a;$a = 6;
echo $b; echo $b;
echo "<br>$a"; echo "<br>$a";
?> ?>
Institut supérieur numérique 14
Les variables prédéfinies
❖ Variables prédéfinies :
• Les variables d'environnement dépendant du client

Institut supérieur numérique 15


Les variables prédéfinies
❖ Variables prédéfinies :
• Les variables d'environnement dépendant du serveur

Institut supérieur numérique 16


Les types de données
❖ Principe :
• Pas besoin d’affecter un type à une variable avant de l’utiliser
• La même variable peut changer de type en cours de script
• Les variables issues de l’envoi des données d’un formulaire sont de
type string
❖ Les différents types de données :
• Les entiers : le type Integer
• Les flottants : le type Double
• Les tableaux : le type array
• Les chaînes de caractères : le type string
• Les objets
Institut supérieur numérique 17
Les types de données
❖ Le transtypage :
• La fonction settype() permet de convertir le type auquel appartient
une variable

<?php
$nbre=10;
Settype($nbre, "double");
Echo " la variable $nbre est de type " , gettype($nbre);
?>

Institut supérieur numérique 18


Les types de données
❖ Le transtypage :
• Transtypage explicite : le cast
(int), (integer) ; (double), (float); (string); (array); (object)

<?php
$var=" 100 FRF ";
Echo " pour commencer, le type de la variable $var est " , gettype($var) ;
$var =(double) $var;
Echo "<br> Après le cast, le type de la variable $var est ", gettype($var);
Echo "<br> et a la valeur $var ";
?>

Institut supérieur numérique 19


Les types de données
❖ Détermination du type de données :
• gettype()
• settype()
• is_long()
• is_double()
• is_string()
• is_array()
• is_object()
• is_bool()

Institut supérieur numérique 20


Les types de données
❖ var_dump() affiche les informations structurées d'une variable, y compris
son type et sa valeur.

<?php
$b = 3.1;
$c = true;
var_dump($b);
var_dump($c);
var_dump($b, $c);
var_dump(is_double($b));
var_dump(is_int($b));
?>

Institut supérieur numérique 21


Les opérateurs
❖ Les opérateurs :

• les opérateurs de calcul : +, -, *, /

• les opérateurs d'assignation : +=, -=, *=, /=

• les opérateurs d'incrémentation : ++, --

• les opérateurs de comparaison : ===, ==, <, <=, >, >=, !=

• les opérateurs logiques (|| ou OR), (&& ou AND), XOR, !

Institut supérieur numérique 22


Les instructions conditionnelles

❖ L'instruction if :
• if (condition réalisée) { liste d'instructions }

❖ L'instruction if ... Else


• if (condition réalisée) {liste d'instructions}
else { autre série d'instructions }

❖ L'instruction if ... elseif ... Else


• if (condition réalisée) {liste d'instructions}
elseif (autre condition ) {autre série d'instructions }
else { série d'instructions }
Institut supérieur numérique 23
Les instructions conditionnelles

❖ Exemple

<?php
$t = date("H");
if ($t < "10") {
echo "Have a good morning!";
} elseif ($t < "20") {
echo "Have a good day!";
} else {
echo "Have a good night!";
}
?>

Institut supérieur numérique 24


Les instructions conditionnelles

❖ L'instruction switch :

switch (Variable) {

case Valeur1: Liste d'instructions break;

case Valeur2: Liste d'instructions break;

case Valeurs...: Liste d'instructions break;

default: Liste d'instructions;

Institut supérieur numérique 25


Les instructions conditionnelles
<?php
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";}
?>

Institut supérieur numérique 26


Les boucles
❖ La boucle for
• for ($i=1; $i<6; $i++) { echo "$i<br>"; }

❖ La boucle while
• While(condition) {bloc d’instructions ;}

<?php
$x = 1;

while($x <= 5) {
echo "The number is: $x <br>";
$x++;
}
?>

Institut supérieur numérique 27


Les boucles
❖ La boucle do…while
• Do {bloc d’instructions ;}while(condition) ;

<?php
$x = 1;
do {
echo "The number is: $x <br>";
$x++;
} while ($x <= 5);

?>

Institut supérieur numérique 28


Les boucles
❖ La boucle foreach (PHP4)
• Foreach ($tableau as $valeur) {insts utilisant $valeur ;}

<?php
$colors = array("red", "green", "blue", "yellow");

foreach ($colors as $value) {


echo "$value <br>";
}
?>

Institut supérieur numérique 29


Intégration PHP et HTML
❖ Inclure un fichier PHP dans un fichier HTML : include()

Fichier Principal Fichier à inclure : information


<html>
<head> <?php
<title> Fichier d’appel </title> $chaine = $salut. " , C’est PHP " ;
</head> echo "<table border= '3'>
<body> <tr><td width='100%'>
<?php $salut = "BONJOUR" ; <h2> $chaine</h2>
include "[Link]" ; </td></tr>
?> </table>";
</body> ?>
</html>

Institut supérieur numérique 30


Les fonctions
❖ Déclaration et appel d’une fonction
Function nom_fonction($arg1, $arg2, …$argn)
{
déclaration des variables ;
bloc d’instructions ;
//fin du corps de la fonction
return $resultat ;
}

❖ Fonction avec nombre d’arguments inconnu


• func_num_args() : fournit le nombre d’arguments qui ont été passés
lors de l’appel de la fonction
• func_get_arg($i) : retourne la valeur de la variable située à la
position $i dans la liste des arguments passés en paramètres, Ces
arguments sont numérotés à partir de 0

Institut supérieur numérique 31


Les fonctions
❖ Fonction avec nombre d’arguments inconnu :

<?php
function produit()
{
$nbarg = func_num_args() ;
$prod=1 ;
// la fonction produit a ici $nbarg arguments
for ($i=0 ; $i <$nbarg ; $i++)
{ $prod *= func_get_arg($i); }
return $prod;
}
echo "le produit est : ", produit (3, 77, 10, 5, 81, 9), "<br />" ;
// affiche le produit est 8 419 950
?>

Institut supérieur numérique 32


Les fonctions
❖ Passage de paramètre par référence :
• Pour passer une variable par référence, il faut que son nom soit
précédé du symbole & (exemple &$a)
<?
function dire_texte($qui, &$texte)
{
$texte = "Bienvenue $qui";
}
$chaine = "Bonjour ";
dire_texte("cher etudiant",$chaine);
echo $chaine;
// affiche "Bienvenue cher etudiant"
?>

❖ L’appel récursif : PHP admet les appels récursifs de fonctions

Institut supérieur numérique 33


Les fonctions

❖ Variables locales et variables globales :


• variables en PHP : global, static, local
• toute variable déclarée en dehors d’une fonction est globale
• utiliser une variable globale dans une fonction
• Pour conserver la valeur acquise par une variable entre deux appels
de la même fonction : l’instruction static.
• Les variables statiques restent locales à la fonction et ne sont pas
réutilisables à l’extérieur.

Institut supérieur numérique 34


Les fonctions

❖ Les variables statiques :

<?php
function cumul ($prix) {
static $cumul = 0 ;
static $i = 1 ;
echo "Total des achats $i = ";
$cumul += $prix;
$i++ ;
return $cumul ; }
echo cumul (175), "<br />" ;
echo cumul (65), "<br />" ;
echo cumul (69), "<br />" ;
?>

Institut supérieur numérique 35


Les tableaux

❖ Création à l’aide de la fonction array()

❖ Uniquement des tableaux à une dimension

❖ Les éléments d’un tableau peuvent pointer vers d’autres tableaux

❖ Les éléments d’un tableau peuvent appartenir à des types distincts

❖ L’index d’un tableau en PHP commence de 0

❖ Pas de limites supérieures pour les tableaux

❖ La fonction count() pour avoir le nombre d’éléments d’un tableau

Institut supérieur numérique 36


Les tableaux indicés et les tableaux associatifs
❖ Tableau indicé
• Accéder aux éléments par l’intermédiaire de numéros

$tableau[indice] = valeur;
$jour[3] = "Mercredi";
$note[0] = 20;
$tableau = array(valeur0, valeur1,..., valeurN);
$jour = array("Dimanche", "Lundi", "Mardi",
"Mercredi", "Jeudi", "Vendredi", "Samedi");
$note = array(20, 15, 12.6, 17, 10, 20, 11, 18, 19);
$variable = $tableau[indice];
$JJ = $jour[6]; // affecte "Samedi" à $JJ
echo $note[1] + $note[5];

Institut supérieur numérique 37


Les tableaux indicés et les tableaux associatifs
❖ Tableau indicé

$jour = array("Dimanche", "Lundi", "Mardi",


"Mercredi", "Jeudi", "Vendredi", "Samedi");

$note = array(20, 15, 12.6, 17, 10, 20, 11, 18, 19);

Institut supérieur numérique 38


Les tableaux indicés et les tableaux associatifs
❖ Tableau associatif (ou table de hachage)
• Les éléments sont référencés par des chaînes de caractères
associatives en guise de nom: la clé d’index
$tableau["indice"] = valeur;
$jour["Dimanche"] = 7 ;
$jour["Mercredi"] = "Le jour des enfants" ;

$tableau = array(ind0 => val0, ind1 => val1,..., indN => valN);

$jour = array("Dimanche" => 1, "Lundi" => 2, "Mardi" => 3,


"Mercredi" => 4, "Jeudi" => 5, "Vendredi" => 6, "Samedi" => 7);

$variable = $tableau["indice"];
$JJ = $jour["Vendredi"]; //affecte 6 à $JJ
echo $jour["Lundi"]; //retourne la valeur 2
Institut supérieur numérique 39
Les tableaux indicés et les tableaux associatifs
❖ Tableau associatif (ou table de hachage)

$jour = array("Dimanche" => 1, "Lundi" => 2, "Mardi" => 3,


"Mercredi" => 4, "Jeudi" => 5, "Vendredi" => 6, "Samedi" => 7);

Institut supérieur numérique 40


Tableaux multidimensionnels
❖ Pas d'outils pour créer directement des tableaux multidimensionnels
❖ L'imbrication des tableaux est possible

$tab1 = array(Val0, Val1,..., ValN);


$tab2 = array(Val0, Val1,..., ValN);
// Création d'un tableau à deux dimensions
$tableau = array($tab1, $tab2);
$mois = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août",
"Septembre", "Octobre", "Novembre", "Décembre");
$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$element_date = array($mois, $jour);

$variable = $tableau[indice][indice];
$MM = $element_date[0][0]; //affecte "Janvier" à $MM
echo $element_date[1][5] . " 7 " . $element_date[0][2] . "2002"; // retourne "Jeudi 7 Mars
2002"

Institut supérieur numérique 41


Tableaux multidimensionnels

$mois = array("Janvier", "Février",


"Mars", "Avril", "Mai", "Juin", "Juillet",
"Août", "Septembre", "Octobre",
"Novembre", "Décembre");

$jour = array("Dimanche", "Lundi",


"Mardi", "Mercredi", "Jeudi", "Vendredi",
"Samedi");

$element_date = array($mois, $jour);

Institut supérieur numérique 42


Lecture des éléments d’un tableau
❖ Avec une boucle for :

for ($i=0; $i<count($tab) ; $i++){


if ($tab[$i]== "a") {echo $tab[$i], "<br />";}
}

❖ Avec une boucle while :

$i=0;
while ($i <count($tab) ){
echo $tab[$i], "<br /> ";
$i++;
}

Institut supérieur numérique 43


Lecture des éléments d’un tableau
❖ Avec la boucle foreach :

$jour = array("Dimanche", "Lundi", "Mardi",


"Mercredi", "Jeudi", "Vendredi", "Samedi");
$i = 0;
foreach($jour as $JJ) {
echo "La cellule n° ". $i . " : " . $JJ . "<br>";
$i++;
}

Institut supérieur numérique 44


Lecture des éléments d’un tableau
❖ Parcours d'un tableau associatif : Réalisable en ajoutant avant la variable
$valeur, la clé associée

$tableau = array(clé1 => val1, clé2 => val2, ..., cléN => valN);
foreach($tableau as $clé => $valeur) {
echo "Valeur ($clé): $valeur"; }

$jour = array("Dimanche" => 7, "Lundi" => 1, "Mardi" => 2,


"Mercredi" => 3, "Jeudi" => 4, "Vendredi" => 5, "Samedi" => 6);
foreach($jour as $sJJ => $nJJ) {
echo "Le jour de la semaine n° ". $nJJ . " : " . $sJJ . "<br>"; }

Institut supérieur numérique 45


Date et heure PHP

❖ La fonction PHP Date() est utilisée pour formater une date et/ou une heure.
❖ Exemple :

<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l") . "<br>";
echo date("d") . "<br>";
echo date("m") . "<br>";
echo date("Y") . "<br>";
?>

Institut supérieur numérique 46


Date et heure PHP

❖ L’exemple ci-dessous affiche l’heure actuelle dans le format spécifié

❖ Exemple :

<?php
echo "The time is " . date("h:i:sa");
?>

Institut supérieur numérique 47


PHP et les formulaires
❖ Formulaire HTML
✓ Retourne des informations saisies par un utilisateur vers une application
serveur
✓ La création d’un formulaire nécessite la connaissance de quelques
balises HTML indispensables :
• Structure : un formulaire commence toujours par la balise <form> et
se termine par la balise </form>
• Champ de saisie de text en ligne :
<input type = "text" name ="nom_du_champ" value="chaîne">
• Boutons d’envoi et d’effacement :
<input type=" submit " value = "Envoyer">
<input type = "reset" name ="efface" value = "Effacer">
• Case à cocher et bouton radio :
<input type = "checkbox" name ="case1" value="valeur_case">
<input type = "radio" name ="radio1" value ="valeur_radio">

Institut supérieur numérique 48


Méthodes d’envoi get et post
❖ Transmission selon une des deux méthodes d'envoi GET ou POST
✓ La méthode GET place les informations d'un formulaire directement
à la suite de l'adresse URL de la page appelée.
▪ Inconvénients :
• rendre visibles les données dans la barre d’adresse du
navigateur.
• De plus, la longueur totale est limitée à 255 caractères, ce qui
rend impossible la transmission d’un volume de données
important

✓ La méthode POST regroupe les informations dans l'entête d'une


requête HTTP
▪ Assure une confidentialité efficace des données

Institut supérieur numérique 49


Afficher des données issues d'un formulaire

❖ Un simple formulaire HTML avec la méthode GET :

<form action="[Link]" method="get">


<p>Votre nom : <input type="text" name="nom" /></p>
<p>Votre âge : <input type="text" name="age" /></p>
<p><input type="submit" value="OK"></p>
</form>

❖ Afficher des données issues d'un formulaire avec $_GET:

Bonjour, <?php echo $_GET['nom']; ?>.


Tu as <?php echo (int)$_GET['age']; ?> ans.

Institut supérieur numérique 50


Afficher des données issues d'un formulaire

❖ Un simple formulaire HTML avec la méthode POST :

<form action="[Link]" method="post">


<p>Votre nom : <input type="text" name="nom" /></p>
<p>Votre âge : <input type="text" name="age" /></p>
<p><input type="submit" value="OK"></p>
</form>

❖ Afficher des données issues d'un formulaire avec $_POST

Bonjour, <?php echo $_POST['nom']; ?>.


Tu as <?php echo (int)$_POST['age']; ?> ans.

Institut supérieur numérique 51


La fonction htmlspecialchars

❖ La fonction htmlspecialchars() convertit les caractères spéciaux en entités


HTML. Cela signifie qu’il remplacera les caractères HTML comme < et >
par &lt; and &gt; Cela empêche les attaquants d’exploiter le code en
injectant du code HTML ou Javascript attaques XSS (Cross-site Scripting)
dans les formulaires.

Bonjour, <?php echo htmlspecialchars( $_POST['nom']); ?>.


Tu as <?php echo (int)htmlspecialchars($_POST['age']); ?> ans.

❖ La fonction trim () : retourne la chaîne, après avoir supprimé les caractères


invisibles en début et fin de chaîne.

Institut supérieur numérique 52


Afficher des données issues d'un formulaire

❖ La fonction stripslashes() : Supprime les antislashs d'une chaîne.


❖ $_GET et $_POST : sont des tableaux de données associatifs et
superglobaux (c'est à dire visibles de partout dans le programme) et contient
tous les couples variable/valeur.
❖ La fonction test_input() a pour rôle de nettoyer et de valider les données
entrées par l'utilisateur via le formulaire.
<?php
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;}
?>

Institut supérieur numérique 53


Afficher des données issues d'un formulaire

❖ $_SERVER est un tableau de données associatifs contenant des informations


crées par le serveur web.
• $_SERVER["PHP_SELF"] est une variable super globale qui
renvoie le nom de fichier du script en cours d’exécution.
• $_SERVER["REQUEST_METHOD"] : retourne la méthode utilisée
• La fonction htmlentities($_SERVER["PHP_SELF"]) est utilisée pour
sécuriser l'URL du
❖ la fonction test_input() prépare les données entrées par l'utilisateur pour
qu'elles soient sûres à utiliser, en les nettoyant et en les sécurisant contre les
attaques XSS (Cross-Site Scripting) potentielles.

Institut supérieur numérique 54


Afficher des données issues d'un formulaire
<?php $nom = $age = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nom = test_input($_POST["nom"]);
$age = test_input($_POST["age"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;}
?>
<form action="<?php echo htmlentities($_SERVER["PHP_SELF"]); ?>"
method="post">
Nom : <input type="text" name="nom"><br>
Age : <input type="text" name="age"><br>
<input type="submit">
</form>
<?php echo $nom; ?>
<?php echo $age; ?> ans.
Institut supérieur numérique 55
Les cookies
❖ Un cookie est souvent utilisé pour identifier un utilisateur. Un cookie est un
petit fichier que le serveur intègre sur l’ordinateur de l’utilisateur. Chaque
fois que le même ordinateur demande une page avec un navigateur, il
enverra également le cookie.
❖ Avec PHP, vous pouvez à la fois créer et récupérer des valeurs de cookie.
❖ Pour des raisons de sécurité, les cookies ne peuvent être lus que par des
pages issues du serveur qui les a créés
❖ Les cookies permettent de conserver des renseignements utiles sur chaque
utilisateur, et de les réutiliser lors de sa prochaine visite
Exemple : personnaliser la page d’accueil ou les autres pages du site

Institut supérieur numérique 56


Les cookies
❖ Un cookie est créé avec la fonction setcookie()
setcookie(nom_var, valeur_var, date_expiration, chemin);
• Nom_var : nom de la variable qui va stocker l’information sur le poste
client et qui sera utilisée pour récupérer cette information dans la page
qui lira le cookie. C’est la seule indication obligatoire pour un cookie.

• Valeur_var : valeur stockée dans la variable.

• Date_expiration : la date à laquelle le cookie ne sera plus lisible et sera


effacé du poste client. on utilise en général la date du jour, définie avec
la fonction time() à laquelle on ajoute la durée de validité désirée.
• Chemin : définit la destination (incluant les sous-répertoire) à laquelle le
navigateur doit envoyer le cookie.

Institut supérieur numérique 57


Les cookies
❖ Exemple :

<?php
$cookie_name = "user";
$cookie_value = "Sidi";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
// 86400 = 1 day
?>

❖ Le cookie expirera après 30 jours (86400 * 30). Le « / » signifie que le


cookie est disponible sur l’ensemble du site Web (sinon, sélectionnez le
répertoire que vous préférez).

Institut supérieur numérique 58


Les cookies
❖ Les cookies sont accessibles dans le tableau associatif $_COOKIE
❖ Nous utilisons également la fonction isset() pour savoir si le cookie est
défini :
<?php
$cookie_name = "user";
$cookie_value = "Sidi";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named "."$cookie_name"." is not set!";
} else {
echo "Cookie " . $cookie_name . " is set!<br>";
echo "Value is: ". $_COOKIE[$cookie_name];
}
?>
Institut supérieur numérique 59
Les sessions

❖ Lorsque vous travaillez avec une application, vous l'ouvrez, faites quelques
modifications, puis vous la fermez. Cela ressemble beaucoup à une session.
L'ordinateur sait qui vous êtes.

❖ Il sait quand vous démarrez l'application et quand vous la terminez.

❖ Mais sur Internet, il y a un problème : le serveur Web ne sait pas qui vous
êtes ni ce que vous faites, car l'adresse HTTP ne conserve pas l'état.

Institut supérieur numérique 60


Les sessions

❖ Les variables de session résolvent ce problème en stockant les informations


utilisateur à utiliser sur plusieurs pages (par exemple, nom d'utilisateur,
couleur préférée, etc.). Par défaut, les variables de session durent jusqu'à ce
que l'utilisateur ferme le navigateur.

❖ Alors, Les variables de session contiennent des informations sur un seul


utilisateur et sont disponibles pour toutes les pages d'une seule application.

Institut supérieur numérique 61


Les sessions
❖ Chaque visiteur en se connectant à un site reçoit un numéro d'identification
dénommé identifiant de session (SID)
❖ La fonction session_start() se charge de générer automatiquement cet
identifiant unique de session. Elle doit être placée au début de chaque page
afin de démarrer ou de continuer une session.

<?php
session_start();
$Session_ID = session_id();
$_SESSION["favcours"] ="programmation";
$_SESSION["favlangage"] ="php";
echo "Session variables are set : $Session_ID ";
?>

Institut supérieur numérique 62


Obtenir les valeurs des variables de session
❖ Notez également que toutes les valeurs des variables de session sont
stockées dans la variable globale $_SESSION :

<?php
session_start();
echo "Favorite cours is " . $_SESSION["favcours"] . ".<br>";
echo "Favorite langage is " . $_SESSION["favlangage"] . ".";
?>

Institut supérieur numérique 63


Obtenir les valeurs des variables de session
❖ Une autre façon d’afficher toutes les valeurs de variable de session

<?php
session_start();
print_r($_SESSION);
?>

Institut supérieur numérique 64


Modifier une variable de session
❖ Pour modifier une variable de session :

<?php
session_start();
$_SESSION["favcours"] ="database";
print_r($_SESSION);
?>

Institut supérieur numérique 65


Détruire une session PHP
❖ Pour supprimer toutes les variables de session globales et détruire la session,
utilisez session_unset() et session_destroy()

<?php
session_start();
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>

Institut supérieur numérique 66


Connexion à la base de données
❖ Avant de pouvoir accéder aux données de la base de données MySQL, nous devons
pouvoir nous connecter au serveur:

❖ La connexion sera fermée automatiquement à la fin du script. Pour fermer


la connexion auparavant, utilisez mysqli_close($conn)
Institut supérieur numérique 67
Créer une base de données MySQL
❖ Créer la base de données myDB :

Institut supérieur numérique 68


Créer une table
❖ Créer la table personne (id, firstname, lastname) :

Institut supérieur numérique 69


Insérer des données
❖ Insérer une ligne:

Institut supérieur numérique 70


Insérer des données
❖ Insérer des lignes :

Institut supérieur numérique 71


Les requêtes préparé
❖ Une requête préparée ou requête paramétrable est utilisée pour exécuter la même requête
plusieurs fois, avec une grande efficacité et protège des injections SQL.

Institut supérieur numérique 72


Sélectionner des données

❖ La fonction fetch_assoc() retourne un tableau associatif qui contient les lignes


Institut supérieur numérique 73
Supprimer des données

Institut supérieur numérique 74


Modifier des données

Institut supérieur numérique 75

Vous aimerez peut-être aussi