Professional Documents
Culture Documents
CREFOC MAHDIA
Janvier 2008
2
Le contexte
d’utilisation du PHP
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
3
Plan
4
Les défauts du langage HTML
5
Les défauts du langage HTML
6
Les différentes solutions pour surmonter
les défauts du langage HTML
Utilisation des langages côté serveur (ASP, PHP, JSP,Cold Fusion …)
7
Introduction au langage PHP
PHP est un langage de script qui s'inclut dans le langage HTML. La syntaxe
du langage PHP provient du C, du Java et du Perl, avec un petit nombre de
fonctions inédites par rapport à ces langages.
8
L’environnement de
programmation PHP, MySql
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
9
Plan
10
Les différentes solutions pour installer
l’environnement PHP
11
Les différentes solutions pour installer
l’environnement PHP
http://www.easyphp.org/
12
La syntaxe de base du
PHP
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
13
Plan
14
Présentation du PHP
15
16
Les Apports de PHP
Le langage PHP possède les mêmes fonctionnalités que les autres
langages permettant d'écrire des scripts CGI, comme par exemple :
La plus grande qualité du langage PHP est le support d'un grand nombre
de bases de données en mode natif dont : Adabas D, dBase, Empress,
FilePro, Informix, InterBase, mSQL, MySQL, Oracle, PostgreSQL,
17
Les Apports de PHP
18
Les principes syntaxiques de base du PHP
Quatre méthodes pour insérer un script PHP dans une page PHP :
Standard :
<?php echo (″exemple en PHP″ ) ; ?>
Option short_open_tag :
<? echo (″exemple en PHP″) ; ?>
Option asp_tags :
<SCRIPT LANGUAGE= ‘php’>echo (″exemple en PHP″)
</SCRIPT>
Marqueur script du HTML :
<% echo (″exemple en PHP″) ; %>
19
Les principes syntaxiques de base du PHP
Exemple :
<?
//commentaire sur une ligne
echo "<b>Ma permiere page PHP</b><br>";
echo "<br>";
/* Commentaire
sur plusieurs lignes */
print "bonjour";
?>
20
Les principes syntaxiques de base du PHP
Exemple :
<html>
<head>
<Title>Ma première page en PHP</Title>
</head>
<body>
<b>Bienvenue au langage html</B>
<br><br>
<script language=javascript>
document.write("<I>Bienvenue au Javascript</i>");
</script>
<br>
<?
echo("<br> <u>Bienvenue au langage PHP </u>");
?>
</body>
</html>
21
Variables, constantes et types de données
Le recours à des constantes constitue un moyen pratique pour affecter
une valeur à un identifiant, puis de faire référence à cet identifiant dans
l’ensemble du programme.
Pour définir une constante, on fait appel à la fonction define().
Exemple :
<?
define("LYCEE", "IBN SINA MAHDIA");
echo "Je travaille au Lycee ".LYCEE;
?>
Exemple :
<?
define("SLT", "Salut toi.", true);
echo SLT; // affiche "Salut toi."
echo Slt; // affiche "Salut toi."
?>
22
Variables, constantes et types de données
En PHP, les variables sont représentées par un signe dollar suivi du nom
de la variable.
Une variable est automatiquement déclarée dès que vous lui affectez
une valeur.
Exemple :
<?
$nom = "Mejdi";
$prix = 15.200 ;
?>
23
Variables, constantes et types de données
Exemple :
<?
$a=12;
echo("Le type de la variable $"."a est :".gettype($a)."<br>");
settype($a,"double");
echo("Le type de la variable $"."a est :".gettype($a)."<br>");
$b=(double)$b; //converti un entier en un réel
?>
24
Les structures
algorithmiques en PHP
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
25
Plan
Structures conditionnelles
Structures itératives
Structures de branchement
26
Les structures de contrôle en PHP
Instruction if :
if (condition)
{ expression vrai }
else
{ expression faux }
Exemple :
<?
$a = 10; $b = 11;
print "a est égale à $a <br>b est égale à $b<br>";
if ($a > $b)
{ print " ==> a est plus grand que b"; }
else { print " ==> a est inférieure à b"; }
?>
27
Les structures de contrôle en PHP
Instruction if ..elseif :
if (condition)
{ expression vrai }
elseif (condition)
{ expression vrai }
else
{ expression faux }
28
Les structures de contrôle en PHP
Exemple :
<?
$a = 10; $b = 11;
print "a est égale à $a, b est égale à $b. ";
if ($ a > $b)
{ print "==> a est plus grand que b"; }
elseif ($ a == $b)
{ print "==> a est égal à b"; }
else
{ print "==> a est inférieure à b."; }
?>
29
Les structures de branchement en PHP
switch (expression)
{
case resultat1 :
# instructions à exécuter si l’expression vaut resultat1...
break ;
case resultat2 :
# instructions à exécuter si l’expression vaut resultat2...
break ;
...
default :
# instructions à exécuter en dernier recours...
}
30
Les structures de branchement en PHP
Exemple :
Switch ($type)
{
case "Femme" : echo "Bonjour Madame" ;
break ;
case "Homme" : echo "Bonjour Monsieur" ;
break ;
default :
echo "Bonjour, vous êtes bizarre !" ;
}
31
Les structures itératives en PHP
Les structures itératives (boucles) constituent un moyen d’exécuter
un bloc de code un nombre de fois donné, ou jusqu’à ce qu’une
condition particulière soit satisfaite.
Boucle While :
while (condition)
{ instructions}
Exemple :
<?
$i = 1;
while ($i <= 10)
{ print $i++." ";
/* La valeur affichée est $i avant l'incrémentation */
}
?> 32
Les structures itératives en PHP
Boucle do..while :
do
{
instructions
} while(conditions)
Exemple :
<?
$i = 0;
do {
print $i++." ";
} while ($i<=10);
?>
33
Les structures itératives en PHP
Boucle For :
for (expr1; expr2; expr3)
{
instructions
}
Exemple :
<?
for ($i=0 ; $i<=10 ; $i++)
{
echo $i;
echo "<br>";
}
?>
34
Les structures itératives en PHP
Exercice :
On vous demande d’écrire un script PHP permettant d’afficher
par intermittence de couleurs (rouge et bleu) la phrase
« Bienvenue au langage PHP » tout en modifiant la taille de la
police de 1 à 7.
35
Les types de données
structurés en PHP
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
36
Plan
37
La notion de tableau en PHP
38
Initialisation d’un tableau
Exemple :
<?
$tableau[0]="a";
$tableau[1]="b";
$tableau[2]=″c″;
?>
39
Initialisation d’un tableau
Utiliser la fonction array().
Exemple :
<?
$tableau = array(″a″, ″b″, ″c″) ;
?>
Exemple :
<?
$tableau = array(1=>"a", 2=>"b", 3=>"c") ;
?>
40
Parcourir un tableau
Exemple :
<?
$tableau[0]="a";
$tableau[1]="b";
$tableau[2]="c";
while (list ($cle, $valeur) = each ($tableau))
{
echo ("L'élément $cle est égal à $valeur <br>");
}
?>
41
Les fonctions de traitement des tableaux
Fonction Description
42
Trier un tableau
43
Parcourir un tableau
Exercice :
44
Trier un tableau
Exemple :
<?
$pays = array ("us" => "Etats-Unis", "ch" => "Suisse", "ca" => "Canada",
"fr" => "France","de" => "Allemagne");
sort ($pays);
while (list ($cle, $val) = each ($pays))
{
echo "L'élément $cle est égal à $val<br>\n";
}
?>
45
Les fonctions de traitement des chaînes de
caractères
substr() : string substr(string source, int début, int [taille])
Exemple :
<?
$ch=“Je vois la vie en rose";
echo "La chaine de depart est : $ch <br>";
echo(substr($ch,8,6));
echo"<br>";
echo(substr($ch,-4));
echo"<br>";
echo(substr($ch,-14,6));
?> 46
Les fonctions de traitement des chaînes de
caractères
trim() : string trim (string str)
► Cette fonction retire les espaces blancs de début et de fin de
chaîne, et retourne la chaîne nettoyée.
Exemple
47
Les fonctions de traitement des chaînes de
caractères
implode() : string implode (string separateur, array tableau)
48
Les fonctions de traitement des chaînes de
caractères
Exemple :
<?
$chaine="388137144147175185813212145127
";
$tab=explode("1",$chaine);
$i=0;
echo "|";
while($i<sizeof($tab))
{
echo "<b> ".$tab[$i]."</b> |";
$i++;
}
49
?>
Les fonctions de traitement des chaînes de
caractères
Exemple :
<?
$tab=array(388,37,44,47,75,858,32,2,45,27);
$chaine=implode("1",$tab);
echo $chaine;
?>
50
Les expressions régulières
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
51
Plan
52
La notion d’expressions régulières en PHP
53
Les Symboles des expressions régulières
54
Les Symboles des expressions régulières
55
Les Symboles des expressions régulières
56
Les fonctions utilisant les expressions régulières
ereg() : booléen
ereg (chaîne expression, chaîne texte, [tableau occurrences])
Exemple :
<?
if(ereg(″^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$″, $email))
{ echo (″Adresse email valide″) ; }
else { echo (″Adresse email erronée″) ; }
?>
57
Les fonctions utilisant les expressions régulières
ereg_replace() : chaîne
ereg_replace(chaîne expr, chaîne de remplacement, chaîne texte)
Exemple :
<?
$chaine = "Ceci # est # un test";
$chaine = ereg_replace("[^A-Za-z0-9]", "_", $chaine);
print $chaine; //Affiche : Ceci _ est _ un test
?>
58
Les fonctions en PHP
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
59
Plan
60
La notion de fonctions en PHP
Une fonction est un bloc de code défini une fois, puis invoqué à partir
d’autres endroits du programme.
61
La notion de fonctions en PHP
Exemple :
Function carre($nombre)
{
return $nombre * $nombre ;
}
echo carre(3) ; //affiche la valeur 9
62
La notion de fonctions en PHP
Exercice :
Écrire un script PHP contenant une fonction permettant de
tracer un tableau de x lignes et y colonnes.
Rappel HTML :
Exemple :
<?
$var=″a″ ;
function change_var()
{ $var = ″b″ ;}
change_var() ;
echo(″$var″) ; //affiche ″a″
?>
64
La portée d’une variable
Pour accéder à une variable globale au sein d’une fonction il faut
la déclarer global au sein de la fonction.
Exemple :
<?
$var=″a″ ;
function change_var()
{
global $var ;
$var = ″b″ ;
}
change_var() ;
echo(″$var″) ; //affiche ″b″
?>
65
Les variables statiques
Une variable statique est une variable locale qui ne perd pas sa valeur
à chaque fois que la fonction est exécutée.
66
Les variables statiques
Exemple :
<?
function compte ()
{
static $compteur = 0 ;
$compteur++ ;
echo "$compteur " ;
if ($compteur < 10) compte() ;
}
compte() ;
?>
► Entre chaque appel de la fonction compte() : La variable
$compteur ne sera pas réinitialisée.
67
Traitement des
formulaires HTML en PHP
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
68
Plan
Idée et Objectif
Exemple
69
Idée et Objectif
70
Squelette d’un script de traitement de
formulaire
<html><body>…
< ?
//Est-ce la première fois qu’on passe dans le script
//NON
if(NON)
{
//contrôle sur la saisie…
72
Exemple
73
Création et gestion d’une
base de données MySql à
travers PHPMyAdmin
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
74
Plan
75
Accès à l'interface phpMyAdmin
• Cliquer avec le bouton droit sur l’icône de Easy-PHP dans la
barre des taches et choisir Administration.
76
Accès à l'interface phpMyAdmin
Cliquer sur
PHPMyAdmin
77
Accès à l'interface phpMyAdmin
78
Les types de données MySQL
Type Description
TINYINT Très petit entier. En signé de -128 à 127, en non
signé de 0 à 255.
SMALLINT Petit entier. En signé de -32768 à 32767, en non
signé de 0 à 65535.
MEDIUMINT Entier de taille moyenne. En signé de -8388608 à
8388607, en non signé de 0 à 16777215.
INT Entier de taille normale. En signé de -2147483648 à
2147483647, en non signé de 0 à 4294967295.
BIGINT Entier de grande taille. En signé de
-9223372036854775808 à 9223372036854775807,
en non signé de 0 à 18446744073709551615.
79
Les types de données MySQL
Type Description
FLOAT Nombre à virgule flottante. Toujours signé de
-3.402823466E+38 à -1.175494351E-38.
DOUBLE Grand nombre à virgule flottante. Toujours signé de
-1.7976931348623157E+308 à 2.2250738585072014E-
308.
REAL Idem "DOUBLE".
80
Les fonctions PHP
d’interfaçage avec MySql
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
81
Plan
82
Connexion au serveur des données
Exemple :
<?
if( mysql_connect("localhost" , “root" , "") > 0 )
{ echo " Connexion réussie ! "; }
else
{ echo " Connexion impossible ! "; }
?>
83
Sélection de la base
Exemple :
<?
if( mysql_select_db( "ma_base ") == True )
{ echo " Sélection de la base réussie "; }
else
{ echo" Sélection de la base impossible"; }
?>
84
Exécution d’une requête SQL
int mysql_query (string query, int link_identifier)
Exemple :
<?
$requete = "SELECT * FROM membres WHERE nom = 'ali' ";
$resultat = mysql_query( $requete );
?>
85
Exécution d’une requête SQL
int mysql_db_query (string database, string query, int link_identifier)
Exemple :
<?
$req= "SELECT * from employee";
$result = mysql_db_query("database1", $req, $linkId);
?>
86
Exploitation des requêtes
Requête de sélection :
array mysql_fetch_row (int result)
Exemple :
<?
while($enregistrement = mysql_fetch_row($result))
{
echo $enregistrement[0] ; //Afficher le champ prénom
echo $enregistrement[1] ; //Afficher le champ date
echo $enregistrement[2] ;
echo <br>;
}
87
?>
Exploitation des requêtes
array mysql_fetch_array (int result, int result_type )
Exemple :
<?
While($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["prenom"] ; //Affiche le champ –prenom-
echo $enregistrement["nom"] ; //Affiche le champ –nom-
echo $enregistrement["date"] ; //Affiche le champ –date-
echo « <br> »;
}
?>
88
Exploitation des requêtes
object mysql_fetch_object (int result, int result_typ )
Exemple :
<?
$enregistrement = mysql_fetch_object($result);
echo $enregistrement->prenom ; //Affiche le champ –prenom-
echo $enregistrement->nom; //Affiche le champ –nom-
echo $enregistrement->date ; //Affiche le champ –date-
?>
89
Exploitation des requêtes
int mysql_num_rows (int result)
Exemple :
<?
$requete = "SELECT * FROM membres" ;
$result = mysql_query($requete);
echo "il y a" .mysql_num_rows($result) ." membre(s)";
while($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["nom"]. " " . $enregistrement["prenom"] ;
}
?> 90
Exploitation des requêtes
Exemple :
Suite à une requête d’insertion, on veut afficher le numéro auto
incrémenté :
<?
echo "Votre numéro d’identifiant est : " .mysql_insert_id() ;
?>
91
Exploitation des requêtes
Exemple :
Suite à une commande "UPDATE", on voudrait savoir combien de
lignes ont été modifiées :
<?
echo mysql_affected_rows() ." enregistrement(s) modifiés";
?>
92
Les fonctions PHP pour la
gestion des données dans
une base MySql
Mourad SFAR
Le contenu de ce document est soumis à la Licence de
Documentation Libre (GNU Free Documentation License)
93
Plan
Récupération de données
Insertion de données
Modification de données
94
Récupération de données
Requête de sélection :
array mysql_fetch_row (int result)
Extrait de l’identificateur de résultat (result) la prochaine ligne
sous la forme d’un tableau énuméré ou FALSE s’il ne reste plus de
ligne.
Exemple :
<?
while($enregistrement = mysql_fetch_row($result))
{
echo $enregistrement[0] ; //Afficher le champ prénom
echo $enregistrement[1] ; //Afficher le champ date
echo $enregistrement[2] ;
echo <br>;
}
?> 95
Récupération de données
array mysql_fetch_array (int result, int result_type )
Exemple :
<?
While($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["prenom"] ; //Affiche le champ –prenom-
echo $enregistrement["nom"] ; //Affiche le champ –nom-
echo $enregistrement["date"] ; //Affiche le champ –date-
echo « <br> »;
}
?> 96
Récupération de données
object mysql_fetch_object (int result, int result_typ )
Exemple :
<?
$enregistrement = mysql_fetch_object($result);
echo $enregistrement->prenom ; //Affiche le champ –prenom-
echo $enregistrement->nom; //Affiche le champ –nom-
echo $enregistrement->date ; //Affiche le champ –date-
?>
97
Récupération de données
Exemple :
<?
$requete = "SELECT * FROM membres" ;
$result = mysql_query($requete);
echo "il y a" .mysql_num_rows($result) ." membre(s)";
while($enregistrement = mysql_fetch_array($result))
{
echo $enregistrement["nom"]. " " . $enregistrement["prenom"] ;
}
?>
98
Insertion de données
Exemple :
Suite à une requête d’insertion, on veut afficher le numéro auto
incrémenté :
<?
echo "Votre numéro d’identifiant est : " .mysql_insert_id() ;
?>
99
Modification de données
Exemple :
Suite à une commande "UPDATE", on voudrait savoir combien de lignes
ont été modifiées :
<?
echo mysql_affected_rows() ." enregistrement(s) modifiés";
?>
100