Cours PHP_MySQL Partie 1
Cours PHP_MySQL Partie 1
IFT Toamasina
Niveau 2
2024 - 2025
Plan
/X /v}]}v
//X >vPPW,W
///X v]}vvuvW,WlD˙^Y>
/sX u]v]]}vo}]oWZD˙u]v
I-Introduction (01)
1. Définition
La programmation Web est la programmation informatique qui permet
d’éditer des sites web. Elle permet la création d’application, destinées à
être déployées sur internet ou en intranet.
2. Formes des applications Web :
o Site web statique : ce sont des sites réalisés uniquement à l'aide des
langages HTML et CSS. Son contenu n’est pas influencé par l’internaute
qui la demande et évolue avec une intervention manuelle sur le code
source.
o Site web dynamique: utilisent d'autres langages en plus de HTML et CSS,
tels que PHP et MySQL. Son contenu évolue sans que le code du site web
soit modifié manuellement, mais par l’interaction des utilisateurs, par
génération automatique de page ou par du calcul.
I-Introduction (02)
<!DOCTYPE html>
<head>
<title>titre de la page</title>
</head>
<body>
Partie affichée dans le navigateur.
</body>
</html>
Les commentaires (non affichés) sont délimités par < !-- et -->
Introduction (09)
Tableau
<table border="2">
<thead>
<th>Titre01</th>
<th>Titre02</th>
</thead>
<tbody>
<tr>
<td>case 3</td>
<td>case 4</td>
</tr>
</tbody>
</table>
Lien hypertextes
<a href="adresse web">texte</a>
o texte devient un lien cliquable.
o Lorsque on clique sur texte, la page de l’adresse (URL) adresse web s'affiche.
II-Langage PHP(01)
1. Définition
o La syntaxe du PHP est proche de celle du langage C, mais elle est très
simple d'approche.
Langage PHP(02)
2. Historique
o Créé en 1994 par Rasmus Lerdorf pour conserver la trace des utilisateurs
venus consulter son CV
• PHP signifie alors Personal Home Page
o Version 2.0 en 1995
• Récupération de données soumises par Formulaire
• Interfaçage avec les SGBD
• Possibilité d'effectuer des calculs mathématiques
o 1996 : 15 000 sites Web
Langage PHP(06)
Gestion de page à partir d'un script
<?php <html>
…. ….
………. Moteur PHP ……….
…….. ……..
?> </html>
Langage PHP(07)
b. Structure d'un fichier PHP
o Possibilité d’intégrer un script avec du code HTML dans le même
fichier (extension .php, .php3, .phtml)
o Possibilité d’intégrer plusieurs scripts dans le même fichier
c. Commentaires
o Trois manières d’écrire le commentaire
• // Commentaire de ligne
• #Commentaire de ligne
• /* commentaire sur
plusieurs lignes */
Langage PHP(08)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Blog php ift</title>
</head>
<body>
<div>
<h1> Bonjour les etudiants de l'IFT </h1>
<?php
echo "Exemple du code 01";
?>
<?php
echo "<h1> Bonjour les etudiants de l'IFT </h1>";
echo "Exemple 02";
?>
</div>
</body>
</html>
Langage PHP(09)
d. Inclure des fichiers externes
Pour faire l’inclusion des fichiers externe, nous pouvons utiliser les
fonctions suivantes:
Fonction Description
Lors de son interprétation par le serveur, cette ligne est
remplacée par tout le contenu du fichier précisé en paramètre.
Include (‘’nom_fichier.php’’)
En cas d’erreur, include() ne génère qu’une alerte et le script
continue.
require(‘’nom_fichier.php’’) Similaire à la fonction include(), à la différence en cas d’erreur,
require() provoque une erreur fatale et met fin au script.
Include_once(‘’nom_fichier.php’’)
Fonction ne sont pas exécutées plusieurs fois.
Require_once(‘’nom_fichier.php’’)
• Booléen
défini implicitement avec des expressions numériques ou/et des
chaînes de caractères.
Cas particulier des types numériques et chaînes de caractères
Convention
Vrai : ≠ de 0 (numérique) ou non vide (chaîne de caractère)
Faux : =0 (numérique) ou vide (chaîne d caractère)
• Tableaux
• Objets (Programmation orientée objet)
Langage PHP(14)
• Opérateurs
Opérateurs arithmétiques :
+,-,*,/,%
Opérateurs d’incrémentation/ décrémentation :
++,--
Opérateurs de comparaison
==, !=,>,>=,<,<=
Opérateurs logiques
&& , and, || , or
Langage PHP(15)
f. Identifiant et Constante
Identifiant Constante
o Identifiant de variables ou de o Objets dont la valeur ne change pas
constantes est une suite de au cours de l’exécution du script
caractères qui : o Déclaration
• Ne contient pas d’espace define("nom_constante" ,"valeur");
• Commence par une lettre o Exemples
ou le caractère souligné ‘_’
define("PI",3.14);
• Différent des mots clés
define("Langue","Français");
o Exemples
• Nom, n1, _categorie, …
• 2n, prix ttc, define
Langage PHP(16)
g. Les variables
Déclaration
o Une variable est le conteneur d’une valeur d’un des types utilisés par
PHP (entiers, flottants, chaîne de caractère, tableaux, booléens, objet,
NULL).
o Règle de nommage:
• Commence par un caractère alphabétique ou par le caractère de
soulignement (_)
• Ne dois pas commencer par un chiffre;
• Les noms des variables sont sensibles à la casse.
• Les noms de variables sont précédés d'un $
Langage PHP(17)
Exemple :
• Les noms de variable suivants sont légaux:
$nom; / $NOM1
$_prenom; / $_1prenom
$_COOKIE Contient le nom et la valeur des cookies enregistrés sur le poste client.
$_POST Contient le nom et la valeur des données issues d’un formulaire envoyé
par la méthode POST.
Contient les informations liées au serveur web, tel le contenu des en-
$_SERVER
têtes HTTP ou le nom du script en cours d’exécution
$_SESSION Contient l’ensemble des noms des variables de session et leurs valeurs.
Langage PHP(22)
u]v o ˙ v ]o
gettype($nom_var)
Retourne une chaine de caractères contenant le type de la variable en paramètre.
is_integer($nom_var) ou
is_int($nom_var) Retourne TRUE si la variable en paramètre est de type entier sinon retourne FASLE
Retourne TRUE si la variable en paramètre est de type objet sinon retourne FASLE
is_object($nom_var)
Langage PHP(23)
4. Les instructions de contrôle
L’instruction if
• Syntaxe
If (expression) instruction ou {bloc d’ instructions}
else instruction ou {bloc d’ instruction }
• Syntaxe:
$var = expression ? valeur1 : valeur2
• Exemple
$var = ($nb % 2 == 0)? "nombre paire" : "nombre impaire";
Langage PHP(26)
o L’operateur ?? retourne la valeur du premier opérande s’il existe et s’il n’a pas
la valeur NULL ou celle du second opérande dans le cas contraire.
• Syntaxe:
$var = $valuer01 ?? $valeur02;
Ou
$var = isset($valeur01) ? $valeur01 : $valeur02;
• Exemple
<?php
$adresse = $_POST['adresse'];
$var = $adresse ?? "adresse inconnue"; echo $var;
?>
Langage PHP(27)
L’instruction switch … case
• Syntaxe:
switch(expression) {
case 1:
echo "Ordinateur portable";
break;
case 2:
echo "Ordinateur de bureau";
break;
default:
echo "Appareil inconnu";
break;
}
Langage PHP(29)
L’instruction de boucle
• Boucle for
Syntaxe
o Exemple :
$tab = range(1, 20);
$tab = range("A", "L");
Langage PHP(39)
• Exemple
<?php
$tab= array("Web","Internet","PHP","JavaScript","PHP","ASP","PHP","ASP");
$result=array_count_values($tab);
echo "Le tableau \$tab contient ",count($tab)," éléments <br>";
echo "Le tableau \$tab contient ",count($result)," valeurs différentes <br>";
print_r($result);
?>
• Résultat:
Le tableau $tab contient 8 éléments
Le tableau $tab contient 5 valeurs différentes
Array ( [Web] => 1 [Internet] => 1 [PHP] => 3 [Javascript] => 1 [ASP] => 2 );
Langage PHP(40)
Lecture des éléments dans un tableau
o Avec une boucle for
<?php
$tab=array("Mangarano","Verrerie","Morarano");
for ($i=0;$i<count($tab);$i++)
{ echo "L'élément $i est $tab[$i]<br />";}
?>
o Résultat
L'élément 0 est Mangarano
L'élément 1 est Verrerie
L'élément 2 est Morarano
Langage PHP(41)
o Avec une boucle while
<?php
$montab=array ("Mangarano","Verrerie","Morarano");
$i=0;
while(isset($montab[$i]) )
{
echo "L'élément $i est $montab[$i]<br />";
$i++;
}
?>
Langage PHP(42)
o Avec l'instruction foreach
• Contrairement à la boucle for, l’instruction foreach() ne nécessite pas
de connaitre par avance le nombre d’éléments du tableau à lire. Sa
syntaxe varie en fonction du type de tableau.
• Syntaxe
Pour les tableaux indicés:
foreach($tab as $valeur)
{
//bloc de code utilisant les valeurs de la variable $valeur;
}
Pour les tableaux associatif
foreach($tab as $cle=>$valeur)
{
//bloc de code utilisant les valeurs des variables $cle et
$valeur;
}
Langage PHP(43)
o Exemple
<?php
$tab=array ("Tamatave","Tana","Majunga");
echo "<H3>Lecture des valeurs des éléments </H3>";
foreach($tab as $ville){
echo "<b>$ville</b> <br>";
}
echo "<h3>lecture des indices et des valeurs des éléments </h3>";
foreach($tab as $indice=>$ville){
echo "L'élément d'indice <b>$indice</b> a la valeur
<b>$ville</b><br>";
}
?>
Langage PHP(44)
>](}v]}v]v}uvuv]oo˘
if(isset($_POST['nom'])){ if(isset($_GET['nom'])){
} }
Langage PHP
• Valeurs multiple
o Les champs de formulaire peuvent être contenir de plusieurs valeurs a un
même nom de composante.
o Comme dans un groupe de cases à cocher ayant le même attribut name,
d’une liste de sélection …
o On fait la récupération de valeur comme dans un tableau multidimensionnel.
o Syntaxe
$var = $_POST['nom_de_la_formulaire'][nombre_indice];
Ou
$Var = $_GET['nom_de_la_formulaire'][nombre_indice];
Langage PHP
Exemple:
<select name="select_parc[]" class="form-control" multiple="multiple">
<option value="Gestion" >Gestion</option>
<option value="Informatique" selected = true >Informatique</option>
</select> Ou
$option_1 = $_POST['select_parc'][0]; if(isset($_POST['select_parc'])){
$option_2 = $_POST['select_parc'][1]; $nom = $_POST['select_parc'];
echo "<ul>";
foreach ($nom as $key => $value) {
echo "<li>",$value,"</li>";
}
echo "</ul>";
}
Langage PHP
• Autre exemple:
<input type="checkbox" name="competent[]" value="Structure de donnée" />
<input type="checkbox" name="competent[]" value="Langage PHP" />
<input type="checkbox" name="competent[]" value="MySQL" />
$var = $_POST['competent'];
foreach ( $var as $key=>$valeur){
echo $valeur;
}
Langage PHP
Transfert de ficher vers le serveur
o Inclusion des fichiers de différents types dans le serveur;
o Pour créer un champ de formulaire de transfert de ficher, on utilise le formulaire de
type file
(<input type="file" name="fihcier" enctype="multipart/form-data" />);
o $_FILES contient les informations nécessaires au traitement du fichier transféré.
• Lecture des valeurs d'un champ de type file:
o $_FILES["fichier"]["name"] : contient le nom qu’avait le fichier sur le poste client.
o $_FILES["fichier"]["type"] : contient le type initial du fichier;
o $_FILES["fichier"]["size"] : donne la taille réelle en octet du fichier transféré.
o $_FILES["fichier"]["tmp_name"] : donne le nom temporaire que le serveur
attribue automatiquement au fichier en l’enregistrant dans le répertoire tampon.
Langage PHP
o $_FILES["fich"]["error"] : Donne le code d’erreur éventuel associé au fichier téléchargé et permets d’afficher un
message d’erreur en clair en créant un tableau indicé de 0 à 4 contenant les messages appropriés.
UPLOAD_ERR_OK : de valeur 0, indique que le transfert est bien réalisé.
UPLOAD_ERR_INI_SIZE : de valeur 1, indique que la taille du fichier est supérieure à celle définie dans
la php.ini.
UPLOAD_ERR_FORM_SIZE : de valeur 2, indique que la taille est supérieure à celle définie dans le
champ caché MAX_FILE_SIZE (si la taille maximale du fichier est personnalisée avec un champ caché).
UPLOAD_ERR_PARTIAL : de valeur 3, indique que le fichier n’a été que partiellement téléchargé.
UPLOAD_ERR_NO_FILE : de valeur 4, indique qu’aucun fichier n’a été téléchargé.
o La fonction move_uploaded_file() nous permet de procéder et de renommer un fichier sur le serveur.
• Syntaxe :
boolean move_uploaded_file( string "fichtmp", string "fichfinal");
Langage PHP
Exemple :
<form class="form" action="<?= $_SERVER["PHP_SELF"] ?>" method="POST" enctype="multipart/form-data">
<div class="form-group">
<input type="file" name="fichier">
<input type="submit" name="submit" value="upload">
</div>
</form>
if(isset($_FILES['fichier'])){
foreach ($_FILES['fichier'] as $key => $value) {
echo $value;
}
$result=move_uploaded_file($_FILES["fichier"]["tmp_name"],"upload/".$_FILES["fichier"]["name"]);
if($result==TRUE){
echo "<hr /><big>Le transfert est effectué !</big>";
} else {
echo "<hr /> Erreur de transfert n°",$_FILES["fichier"]["error"];
}
}else{
echo "rien ";
}
Langage PHP-Fonction (01)
7. Fonction
On appelle fonction un sous-programme qui permet s'effectuer un ensemble
d'instruction par simple appel de la fonction dans le corps du programme principale.
$b=5;
echo "valeur du paramètre avant l'appel:$b<br>";
doubler($b);
echo "valeur du paramètre après l'appel:$b<br>";
?>
Langage PHP-Fonction (10)
Passage par référence ponctuel
o Lors de la définition de la fonction les paramètres sont passés par valeur
o Lors de l’appel de la fonction les paramètres effectifs sont précédés par &
o Exemple
<?php
function doubler($a){
$a=$a*2;
echo "valeur du paramètre dans la fonction:$a<br>";
}
$b=5;
echo "valeur du paramètre avant l'appel:$b<br>";
doubler(&$b);
echo "valeur du paramètre après l'appel:$b<br>";
?>
Langage PHP-Fonction (10)
• Paramètres par défaut
o Attribuer une valeur par défaut à un (des) paramètre(s) omis lors de l’appel
d’une fonction
o Notation : affecter la valeur par défaut au paramètre formel
o function nom_fonction($param1,$param2 = val )
o Le 2ème paramètre a une valeur par défaut
o Appel de la fonction :
• nom_fonction($eff);
• nom_fonction($eff1,$eff2);
Langage PHP-Fonction (11)
Exemple :
<?php function nb_multiple($init=0,$fin=10,$nb=5){
for($i=$init;$i<=$fin;$i+=1){
$result = $nb*$i;
echo "$nb * $i = $result <br>";
}
}
nb_multiple();
nb_multiple(2);
nb_multiple(2,20,7);
?>
Remarque
o Seuls les derniers paramètres peuvent avoir des valeurs par défaut
Langage PHP-Fonction (12)
• Nombre de paramètres indéfini
o Dans ce cas les paramètres sont extraits par deux fonctions :
Clé Description
Mode d'accès
Description
au fichier
"r" Il est ouvert en lecture seul, et la lecture commence au début du fichier
Il est ouvert en lecture et en écriture, et ces opérations commencent au
"r+" début du fichier
"a" Il est ouvert en écriture seule, et les données sont écrites en fin de fichier
Il est ouvert en lecture et en écriture, et les données sont écrites en fin du
"a+" fichier
Langage PHP-Fichier (05)
3em paramètre :
o si la valeur vaut TRUE, la recherche du fichier est étendue à tous les sous-
répertoires du chemin indiqué dans le 1er paramètre.
o Sinon, la recherche est limitée à l'emplacement indiqué.
o Exemple
<?php
$id_file = fopen("monfich.text","a");
if(!$id_file) echo "Erreur d'accès au fichier";
?>
Langage PHP-Fichier (06)
4. Fermeture du fichier
o La fonction fclose() est utilisée pour fermer un fichier
o Syntaxe :
Boolean fclose($id_file);
o Exemple :
<?php
fclose($id_file);
?>
Langage PHP-Fichier (07)
5. Verrouillage des fichiers
o Pour éviter la corruption par la lecture ou écriture simultanément dans un
fichier;
o On utilise la fonction flock().
o Syntaxe:
Boolean flock(ressource $id_file, int N);
$id_file : valeur retourné par la fonction fopen();
N: définit le mode de verrouillage du fichier
o flock($id_file, LOCK_SH) : bloque l'écriture dans le fichier mais laisse
le libre accès en lecture à tous les utilisateurs ( LOCK_SH = 1);
Langage PHP-Fichier (08)
o flock($id_file, LOCK_EX) : bloque l'écriture et la lecture du fichier par un autre
script. Le script en cours a donc l'exclusivité (LOCK_EX = 2);
o flock($id_file,LOCK_UN): libère le verrou installe précédemment (LOCK_UN = 3).
o Exemple
<?php
$id_file = fopen("monfich.txt","a");
flock($id_file, LOCK_SH ou LOCK_EX);
/* opération de lecture
et/ou d'écriture
*/
fclose($id_file);
?>
Langage PHP-Fichier (09)
6. Ecriture dans un fichier
o Pour pouvoir écrire dans un fichier, il faut auparavant l'avoir ouvert en
écriture;
o On utilise la fonction fwrite() ou la fonction fputs().
o Syntaxe :
Integer fwrite(ressource $id_file, string "chaîne" [, int N];
Integer fputs(ressource $id_file, string "chaîne" [, int N];
o Exemple
<?php $id_file = fopen("monfich.txt","w");
flock($id_file,1);
fwrite($id_file, $nom.";".$prenom."\n");
flock($id_file,3);
fclose($id-file);
?>
Langage PHP-Fichier (10)
7. Lecture de fichiers
Avant de lire le contenu d'un fichier, il faut généralement l'ouvrir.
Il y a plusieurs méthode pour lire le fichier : fgets(), fread(), fseek(), fgetcsv(),
readfile(), file(), passthru().
Fonction Syntaxe Description
String fgets(ressource $id_file,
fgets() Lecture d'une ligne à la fois
integer nombre_octets)
String fread(ressource $id_file,
Fread() Lecture d'un nombre de caractère donné
integer nb_octets)
fgetc() String fgetc(ressource $id_file) Lecture un caractère à la fois
if(file_exists("votes. bak") ){
$result= (unlink("nouvfich. bak") ) ? "Suppression
Boolean unlink(string "nom_fichier"); réalisée" : "Échec de la suppression"; }
else{echo "Le fichier n' existe pas dans ce répertoire!
<br>"; }