Vous êtes sur la page 1sur 24

03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Partie I : PHP
Partie II : MySQL Partie II : MySQL
Partie IV : Exemple concret
Partie III : Exemple concret
Partie V : Méthodologie
Partie IV : Méthodologie
Conclusion
Conclusion

PLAN DE COURS
I NTRODUCTION
Cours PARTIE I : PHP
• Historique
PHP-MySQL • PHP et le web
• Fonctionnement et mise en oeuvre de PHP
BACHELOR 3ÈME ANNÉE
PARTIE II : MYSQL
• Présentation
• MySQL et PHP
• Fonctionnement et mise en oeuvre de PHP et MySQL
PARTIE III : EXEMPLE
PARTIE IV : MÉTHODOLOGIE
C ONCLUSION
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Partie I : PHP
Partie II : MySQL Partie II : MySQL
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

OBJECTIFS DE CE COURS PAGE WEB STATIQUE & PAGE WEB DYNAMIQUE (1)
Ava nt de commencer un développement, nous devons connaître l es bases langage pour
Découvrir les différentes fonctions que proposent PHP.
réa liser correctement une page HTML et par conséquent une a pplication dynamique en PHP.
Création et interrogation de la base de donnée MySQL Lorsque le site est statique, le schéma est très simple. Cela se passe en deux temps, ainsi que vous le

Faire interagir votre fichier PHP avec la base de données schématise la figure suivante :
le client demande au serveur à voir une page web ;
MySQL. le serveur lui répond en lui envoyant la page réclamée.

Etude d’une application Web réel (Exemple concret)


Méthodologie (quelque trucs et astuces pour choisir mieux les
Fi gure 1: Tra nsferts avec un site statique
solutions les plus adaptés.

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE NECER FAYÇAL | DÉCEMBRE - 2014
NECER FAYÇAL | DÉCEMBRE - 2014

1
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Partie I : PHP Historique
Partie II : MySQL Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

PAGE WEB STATIQUE & PAGE WEB DYNAMIQUE (2) HISTORIQUE (1)
Lors que le site est dynamique, il y a une étape i ntermédiaire : l a page est générée (fi g. Il a été créé en 1994 pa r Rasmus Lerdorf pour les besoins des pages web personnelles
s ui vante). (l i vre d’or, compteurs, etc.). A l ’époque, PHP s ignifiait Personnal Home Page.
Le client demande au serveur à voir une page web ; C’es t un langage i ncrusté a u HTML et i nterprété ou compilé côté serveur.
le serveur prépare la page spécialement pour le client ; La s yntaxe du langage PHP est fortement i nspirée de celles du langage C et du Perl.
le serveur lui envoie la page qu'il vient de générer.
Il est extensible grâ ce à de nombreux modules et son code source es t ouvert. Comme
il supporte tous les s tanda rds du web et qu’il es t gra tui t, il s ’est rapidement répa ndu sur
l a toile.
Fi gure 2: Tra nsfert a vec un s ite dynamique

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Partie I : PHP Historique
Partie II : MySQL Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

RÉSUMÉ HISTORIQUE (2)


Dynamique

En 1997, PHP devient un projet collectif et son interpréteur est réécri t pa r Zeev Suraski
Statique

et Andi Gutmans pour donner la version 3 qui s ’appelle désormais PHP : Hypertext
Preprocessor (a cronyme récursi f à l ’exemple du s ystème Open Source Linux : Is Not
UniX).
Il existe pa r ailleurs des appli cati ons web prêtes à l ’e mploi (PHPNuke, PHP SPIP,
PHPSlash…) permettant de monter fa cilement et gratuitement son portail. En juillet
2000 pl us de 300.000 s i tes tournaient déjà s ous PHP !

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE NECER FAYÇAL | DÉCEMBRE - 2014 COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014

2
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

SYNTAXE (1) VARIABLES , TYPES ET OPÉRATEURS (1)


Le typage des variables est implicite en php. Il n’est donc pas nécessaire de déclarer leur type au
Intégration d’un script dans une page
préalable ni même de les initialiser avant leur utilisation.
Les pages web sont au format html . Les pa ges web dynamiques générées a vec PHP4
Les identificateurs de variable sont précédés du symbole « $ » (dollars). Exemple : $toto.
sont au forma t php. Le code source php es t di rectement insérer dans le fi chier html
Les variables peuvent être de type entier (integer), réel (double), chaîne de caractères (string),
grâ ce a u conteneur de l a norme XML : tableau (array), objet (object), booléen (boolean).
Exemple de script,
Exemple:
<html> Il est possible de convertir une variable en un type primitif grâce au cast(1) (comme en
<html>
<body> C).
<body>
<h1>Mon premier script</h1> Exemple :
<?php $str = ’’12’’; // $str vaut la chaîne ‘’12’’
<?php echo ‘’Bonjour\n’’; ?>
echo ’’Bonjour’’; </body> $nbr = (int)$str; // $nbr vaut le nombre 12
?> </html>
(1) : Le cast est une conversion de type. L’action de caster consiste en convertir une variable d’un type à un autre.
</body>
</html>

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

SYNTAXE (2) VARIABLES , TYPES ET OPÉRATEURS (1)


Un s cri pt php s e commente comme en C : Exercice
Les i nstructions sont terminées par « ; » < ? php
// Exemple :
$i=42 ;
<?php
echo "la valeur de i : $i ";
//commentaire de fin de ligne La valeur de i : 42
echo 'la valeur de i est : $i ' ;
/* commentaire sur plusieurs lignes */ la valeur de i est : $i

# commentaire de fin de ligne comme en Shell echo 'la valeur de i est '.$i;
?> la valeur de i est 42
Tout ce qui s e trouve dans un commentaire est ignoré. Il est conseillé de commenter ?>
l a rgement ses scripts.
Questions
Il ya un oublie dans le programme ?

Donnez le résultat de chaque affichage ?


COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

3
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

VARIABLES , TYPES ET OPÉRATEURS (2) VARIABLES , TYPES ET OPÉRATEURS (4)

La figure suivante vous résume ce qu'il faut retenir des différents types d'informations qu'est Les Symboles à connaître (résumé ) : un petit tableau avec ces symboles et
capable de stocker PHP dans les variables.
leur signification

Opérateurs logiques

Opérateurs arithmétiques

Opérateurs de comparaison

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

VARIABLES , TYPES ET OPÉRATEURS (3) CONSTANTES


La portée d’une variable est limitée au bloc dans lequel elle a été crée. L’uti l isateur peut définir des constantes dont la va leur est fixée une fois pour toute.
Une variable locale à une fonction n’est pas connue dans le reste du programme. Les constantes ne portent pas l e symbole $ (dollars) en début d’identificateur et ne sont
pa s modifiables.
Tout comme une variable du programme n’est pas connue dans une fonction.
Une variable créée dans un bloc n’est pas connue dans les autres blocs, mêmes define(‘’var’’,valeur) : définit la constante var (sans $) de valeur valeur
supérieurs.
Exemple 1 :
define(‘’author’’,’toto’’);
Opérateurs arithmétiques : + (addition), - (soustraction), * (multiplié), / (divisé), % (modulo), echo author; // affiche ‘toto’
++ (incrément), --(décrément). Ces deux derniers peuvent être pré ou post fixés
Exemple 2 :
Opérateurs d’assignement : = (affectation), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %= define(MY_YEAR,1980);
echo MY_YEAR; // affiche 1980
Opérateurs logiques : and, && (et), or, || (ou), xor (ou exclusif), ! (non)
Contrairement aux variables, les identificateurs de constantes (et aussi ceux de fonction) ne sont pas sensibles
Opérateurs de comparaison : == (égalité), < (inférieur strict), <= (inférieur large), >, >=, != à la casse.
(différence)

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

4
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

RÉFÉRENCES BOOLÉENS
On peut à la manière des pointeurs en C fa ire référence à une variable grâce à Les va riables booléennes prennent pour va leurs TRUE (vrai) et FALSE (faux).

l ’opérateur & (ET commercial). Une va leur entière nulle est automatiquement considérée comme FALSE.
Tout comme une chaîne de ca ractères vi de ‘’’’. Ou encore comme les chaînes ‘’0’’ et
Exemple 1 : ‘0’ ca s tées en l’entier 0 l ui même casté en FALSE.
$toto = 100; // la variable $toto est initialisée à la valeur 100
$foobar = &$toto; // la variable $foobar fait référence à $toto Exemple :
$toto++; // on change la valeur de $toto if(0) echo 1; // faux
echo $foobar; // qui est répercutée sur $foobar qui vaut alors 101 if('''') echo 2; // faux
if(''0'') echo 3; // faux
Exemple 2 : if(''00'') echo 4;
function change($var) { if('0') echo 5; // faux
$var++; // la fonction incrémente en local l’argument if('00') echo 6;
} if('' '') echo 7;
$nbr = 1; // la variable $nbr est initialisée à 1
change(&$nbr); // passage de la variable par référence Cet exemple affiche 467. Donc l’espace ou la chaîne ‘’00’’ ne sont pas considérés castés en
echo $nbr; // sa valeur a donc été modifiée FALSE.
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

MATHÉMATIQUES CHAINE DE CARACTÈRES (1)


Il existe une miriade de fonctions mathématiques. Une va riable chaîne de caractères n’est pas limitée en nombre de caractères. Elle est
toujours délimitée par des simples quotes ou des doubles quotes.
abs($x) : valeur absolue Exemples :
ceil($x) : arrondi supérieur $nom = ‘’Etudiant’’;
floor($x) : arrondi inférieur $prenom = ‘Hugo’;

pow($x,$y) : x exposant y
round($x,$i) : arrondi de x à la ième décimale Les doubles quotes permettent l ’évaluation des variables et caractères s péciaux
max($a, $b, $c …) : retourne l’argument de valeur maximum contenus dans la chaîne (comme en C ou en Shell) alors que les simples ne le
pi() : retourne la valeur de Pi permettent pas.
Exemples :
echo ‘’Nom: $nom‘’; // affiche Nom: Etudiant
Et aussi : cos, sin, tan, exp, log, min, pi, sqrt… echo ’Nom: $nom‘; // affiche Nom: $nom
Et a us si : cos, sin, tan, exp, log, min, pi, sqrt…
Quelques caractères spéciaux : \n (nouvelle ligne), \r (retour à la ligne), \t (tabulation horizontale), \\
(antislash), \$ (caractère dollars), \’’ (double quote).
Quelques constantes : Exemple : echo ‘’Hello Word !\n’’;
M_PI : va l eur de pi (3.14159265358979323846)
M_E : va l eur de e (2.7182818284590452354)
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

5
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

CHAINE DE CARACTÈRES (2) TABLEAUX (2)


Quel ques fonctions: Pa rcours d’un ta bleau.
$tab = array(‘Hugo’, ‘Jean’, ’Mario’);
strlen($str) : retourne le nombre de caractères d’une chaîne
strtolower($str) : conversion en minuscules Exemple 1 :
$i=0;
strtoupper($str) : convers ion en majuscules while($i <= count($tab)) { // count() retourne le nombre d’é léments
echo $tab[$i].’\n’;
trim($str) : s uppression des espaces de début et de fi n de chaîne $i++;
substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à la }

pos ition $i Exemple 2 :


foreach($tab as $elem) {
strnatcmp($str1,$str2) : compa raison de 2 cha înes echo $elem.’’\n’’;
addslashes($str) : dés pécialise les caractères spéciaux (‘, ‘’, \) }
La variable $elem prend pour valeurs successives tous les éléments du tableau $tab.
ord($char) : retourne la va leur ASCII du ca ractère $char

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

TABLEAUX (1) TABLEAUX (3)


Une va riable ta bleau est de type array. Un tableau a ccepte des éléments de tout type. Quelques fonctions:
Les éléments d’un ta bleau peuvent être de types différents et sont séparés d’une count($tab), sizeof : retournent le nombre d’éléments du tableau
vi rgul e.
Un ta bleau peut être initialisé avec l a syntaxe array. in_array($var,$tab) : dit si la valeur de $var existe dans le tableau $tab
Exemple : list($var1,$var2…) : transforme une liste de variables en tableau
$tab_colors = array(‘red’, ’yellow’, ’blue’, ‘white’);
$tab = array(‘foobar’, 2002, 20.5, $name); range($i,$j) : retourne un tableau contenant un intervalle de valeurs
shuffle($tab) : mélange les éléments d’un tableau
Ma i s i l peut a ussi être initialisé au fur et à mesure.
Exemples : sort($tab) : trie alphanumérique les éléments du tableau
$prenoms[ ] = ‘’Clément’’; $villes[0] = ‘’Paris’’;
$prenoms[ ] = ‘’Justin’’; $villes[1] = ‘’Londres’’; rsort($tab) : trie alphanumérique inverse les éléments du tableau
$prenoms[ ] = ‘’Lili’’; $villes[2] = ‘’Lisbonne’’; implode($str,$tab), join : retournent une chaîne de caractères contenant les éléments du
L’appel d’un élément du tableau se fait à partir de son indice (dont l’origine est zéro comme en C). tableau $tab joints par la chaîne de jointure $str
Exemple : echo $tab[10]; // pour accéder au 11ème élément

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

6
03/09/2011

Ces tableaux sont très simples à imaginer. Regardez par exemple celui-ci, contenu de la variable$prenoms :
Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

TABLEAUX ASSOCIATIFS CONSTRUIRE UN TABLEAU ASSOCIATIF

Un tableau associatif est appelé aussi dictionnaire ou hashtable. On associe à chacun de ses Construire un tableau associatif : Pour en créer un, on utilisera la
éléments une clé dont la valeur est de type chaîne de caractères.
foncti on array comme tout à l 'heure, mais on va mettre « l 'étiquette » devant chaque
L’initialisation d’un tableau associatif est similaire à celle d’un tableau normal. i nformation :

Exemple 1 :
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’);

Exemple 2 :

$personne[‘’Nom’’] = ‘’César’’;
$personne[‘’Prénom’’] = ‘’Jules’’;

Ici à la clé ‘’Nom’’ est associée la valeur ‘’César’’.


// Marseille

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Ces tableaux sont très simples à imaginer. Regardez par exemple celui-ci, contenu de la variable$prenoms :
Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

CONSTRUIRE UN TABLEAU NUMÉROTÉ PARCOURIR UN TABLEAU

Ces ta bleaux sont très simples à i maginer. Rega rdez pa r exemple celui -ci , contenu de Lors qu'un tableau a été créé, on a s ouvent besoin de l e parcourir pour savoir ce qu'il
conti ent. Nous a llons voir trois moyens d'explorer un a rray :
l a va riable $prenoms : • l a boucle for ;
• l a boucle foreach ;

// Michel

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

7
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES FONCTIONS (1) LES FONCTIONS (3)


Comme tout langage de programmation, php permet l ’écriture de fonctions. On peut donner une va leur par défaut aux arguments lors de l a déclaration de l a
foncti on. Ainsi, si un a rgument est « oublié » l ors de l’appel de l a fonction, cette
Les fonctions peuvent prendre des a rguments dont il n’est pas besoin de spécifier le derni ère lui donnera automatiquement une valeur par défaut décidée à l ’avance par le
type. El l es peuvent de façon optionnelle retourner une va leur. progra mmeur.

Exemple :
L’a ppel à une fonction peut ne pas respecter s on prototypage (nombre de function Set_Color($color=‘’black’’) {
pa ra mètres). Les i dentificateurs de fonctions sont insensibles à l a casse. global $car;
$car[‘’color’’] = $color;
}
Exemple : Forcer le passage de paramètre par référence (équivalent à user de global):
function ma_fonction($toto) { Exemple :
$toto += 15; function change(&$var) { // force le passage systématique par référence
echo "Salut !’’; $var += 100;// incrémentation de +100
return ($toto+10); }
$toto = 12; // $toto vaut 12
} change($toto); // passage par valeur mais la fonction la prend en référence
$nbr = Ma_Fonction(15.1); /* retourne 15.1+15+10=40.1, les majuscules n’ont echo $toto; // $toto vaut 112
pas d’importance */

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES FONCTIONS (2) LES FONCTIONS (4)

On peut modifier la portée des va riables locales à une fonction. Une fonction peut être définie après s on appel (a ppel d’une fonction).

permet de travailler sur une variable de portée globale au programme. Le tableau


global Exemple :
associatif $GLOBALS permet d’accéder aux variables globales du script ($GLOBALS[‘’var’’] function foo() { // définition de la fonction foo
accède à la variable $var). echo ‘’Foo…’’;
}
Exemple : foo(); // appel de la fonction foo définie plus haut « Foo… »
function change() { bar(); // appel de la fonction bar pas encore définie « Bar! »
global $var; // définit $var comme globale function bar() { // définition de la fonction bar
$GLOBALS[‘’toto’’] ++; // incrémente la variable globale $toto echo ‘’Bar!<br />’’;
$var++; // cela sera répercuté dans le reste du programme }
}

static permet de conserver la valeur d’une variable locale à une fonction. Cet exemple affichera : Foo…Bar!.
Exemple :
function change() {
static $var; // définit $var comme statique
$var++; // sa valeur sera conservée jusqu’au prochain appel
}

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

8
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES FONCTIONS (5) LES BOUCLES (1)


Il es t possible de créer dynamiquement des fonctions. Pour les déclarer, on affecte à
Boucles ou structures de contrôle
une va riable chaîne de ca ra ctères le nom de de la fonction à dupliquer. Puis on passe en
a rgument à cette variable l es paramètres normaux de l a fonction de départ. Structures conditionnelles (même syntaxe qu’en langage C) :
if( ... ) {
Exemple : …
} elseif { Les boucles demandent à PHP de
function divers($toto) { … répéter des instructions plusieurs fois.
echo $toto; } else { Les deux principaux types de boucles
… sont :
}
} while : à utiliser de préférence
$mafonction = ‘’divers’’;
$mafonction(‘’bonjour !’’); // affiche ‘bonjour !’ par appel de divers() lorsqu'on ne sait pas par avance
switch( … ) {
case … : { … } break combien de fois la boucle doit être
Quelques fonctions permettant de travailler sur des fonctions utilisateur : call_user_func_array, … répétée ;
call_user_func, create_function, func_get_arg, func_get_args, func_num_args, function_exists, default : { … } for : à utiliser lorsqu'on veut
get_defined_functions, register_shutdown_function,…etc. } répéter des instructions un
nombre précis de fois.

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES FONCTIONS (6) LES BOUCLES (2)

create_function($params,$code) : Crée une fonction anonyme. L’i ns truction break permet de quitter prématurément une boucle.
Prend en argument la liste $params des arguments de la fonction à créer ainsi que le code $code Exemple :
de la fonction sous la forme de chaînes de caractères. Il est conseillé d’utiliser les simples quotes while($nbr = $tab[$i++]) {
afin de protéger les noms de variables ‘$var’, ou alors d’échapper ces noms de variables \$var. Le echo $nbr.’’<br />’’;
nom de la fonction créée sera de la forme : lambda_x où x est l’ordre de création de la fonction. if($nbr == $stop)
break;
Exemple : }

$newfunc = create_function(‘$a,$b’,’’return \$a+\$b;’’); L’i ns truction continue permet d’éluder les instructions suivantes de l ’itération
echo ’’Nouvelle fonction anonyme : $newfunc <br />’’;
echo $newfunc(5,12).’’<br />’’;
coura nte de la boucle pour passer à la s uivante.
Exemple :
On fabrique ici une fonction qui prend en argument 2 paramètres et renvoie leur somme. On l’appelle avec les for($i=1; $i<=10; $i++) {
nombres 5 et 12. On va donc afficher le nombre 17. if($tab[$i] == $val)
continue;
echo $tab[$i];
}

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

9
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

INCLUSIONS VARIABLE D’ENVIRONNEMENT

On peut i nclure dans un script php l e contenu d’un autre fichier. Le l a ngage php est doté d’une multitude de va riables d’envi ronnement que la
foncti on phpinfo() permet d’afficher (a insi que bien d’autres informations sur la
confi guration du s erveur Apache).
require i nsert da ns le code le contenu du fichier spéci fié même si ce n’es t pas du
Ces va riables permettent au script d’accéder à des i nformations très utiles voire
code php. Es t équivalent au préprocesseur #include du C.
quelques fois indispensables.
Exemple :
Quel ques variables :
require(‘’fichier.php’’);
$PHP_SELF : nom du s cript en cours
$HTTP_ACCEPT : l i ste des types MIME supportés par l e client
include évalue et insert à chaque a ppel (même da ns une boucle) le contenu du
$HTTP_USER_AGENT : s i gnature du navigateur du client
fi chi er passé en a rgument.
$REMOTE_ADDR : a dresse IP du cl ient
Exemple :
$QUERY_STRING : cha îne au format URL contenant les paramètres passés à la
include(‘’fichier.php’’);
pa ge en cours

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

A RRÊT PRÉMATURÉ CONSTANTES DU PHP (1)

Pour s topper prématurément un script, il existe deux fonctions. Le l a ngage PHP met à disposition du programmeur des constantes propres a u script
qui ne peuvent pas être redéfinies et qui sont bien utiles pour la gestion des erreurs
die a rrête un s cript et affiche un message d’erreur dans le navigateur.
Exemple : i nternes a u script.
if(mysql_query($requette) == false)
die(‘’Erreur de base de données à la requête : <br />$requet’’); Les constantes prédéfinies du PHP :

exit l ’a rrête aussi mais sans a fficher de message d’erreur. __FILE__ : nom du fi chier en cours
Exemple : __LINE__ : numéro de l igne en cours
function foobar() { PHP_VERSION : vers ion de PHP
exit(); PHP_OS : nom du s ystème d'exploitation qui est utilisé par la machine qui fait
} tourner l e PHP
TRUE : l a va leur vra ie booléenne
Ces fonctions stoppent tout le s cript, pas s eulement le bloc en cours. Exemples :
FALSE : l a va leur faux booléenne
$test = true;
echo __file__, __line__;
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

10
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

CONSTANTES DU PHP (2) PASSAGE DE PARAMÈTRES À UN SCRIPT (2)

Les constantes suivantes, l orsqu’elles sont déclarées par l e programmeur (en général Cet exemple a ffiche un formulaire simple dans l e navigateur :
un cha mps de saisie de texte
a va nt toute les a utres instructions du script), permettent de s pécifier à l’interpréteur un cha mp de saisie de mot de passe. Lorsque l ’utilisateur valide et envoie l es
php du s erveur quel niveau de ri gueur a ppliquer face a ux erreurs lors du déroulement données a u serveur, l es va riables du formulaire seront connues comme va riables
gl obales
du s cri pt.
Quand on récupère les valeurs d’un formulaire, on utilise le préfixe $_POST [‘xxxx’]
E_ERROR : dénote une erreur a utre qu'une erreur d'analyse (''parse error'') qu'il Quand on récupère les valeurs depuis l’adresse URL, on utilise le préfixe $_GET[‘xxxx’]
n'es t pas possible de corriger.
E_WARNING : dénote un contexte dans lequel le PHP trouve que quelque chose ne Les données saisies n’apparaîtront pas dans l ’URL et ne seront donc pas stockées dans
va pa s. Ma is l'exécution s e poursuit tout de même. Ces a lertes-là peuvent être l es fi chiers de l og du s erveur, contrairement à la méthode GET
récupérées par l e script lui-même.
E_PARSE : l 'a nalyseur a rencontré une forme syntaxique invalide dans l e script,
correcti on de l 'erreur impossible.

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

PASSAGE DE PARAMÈTRES À UN SCRIPT (1) PASSAGE DE PARAMÈTRES À UN SCRIPT (3)


Méthode des formulaires. Méthode des URLs
Un des aspects i ntéressant de PHP, c’est qu’on peut s e transmettre des va riable de Les va riables peuvent directement être passées par l’intermédiaire des URL.
pa ge en page. Les variables sont détruites une fois le PHP est générée Exemple :
Le moyen l e plus simple à utiliser et très pratique est le tra nsmettre le va riables par $id = 20;
formulaire echo ‘’<a href=\‘’fichier.php?action=buy&id=$id\’’>Acheter</a>’’;
La méthode POST permet de passer des va riables saisies par l’utilisateur d’un script
php à l ’autre Cet exemple va créer dans l e script destination les va riables globales $action et $id
a vec l es va leurs respectives ‘’buy’’ et ‘’20’’.
Exemple :
echo '<form method="post" action="verif.php"> La ba rre d’adresse a ffichera l’URL suivante :
Nom : <input type="text" name="nom" size="12"><br>
Prénom : <input type="text" name="prenom" size="12">
<input type="submit" value="OK">
</form>'

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

11
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

PASSAGE DE PARAMÈTRES À UN SCRIPT (4) CHARGEMENT DE FICHIERS (2)


Résumé Pour récupérer l e fichier, i l faut utiliser la va riable d’environnement

Get : les données transiteront par l'URL. On pourra les récupérer grâce à $HTTP_POST_FILES qui est un tableau associatif dont l es champs sont les noms des
l'array $_GET. Cette méthode est assez peu utilisée car on ne peut pas envoyer beaucoup cha mps HTML file du formulaire. Par exemple : $HTTP_POST_FILES[‘mon_fichier‘] où
d'informations dans l'URL
mon_fichier es t l e nom donné au champs du formulaire HTML de type file.
Post : les données ne transiteront pas par l'URL, l'utilisateur ne les verra donc pas La va ri able $HTTP_POST_FILES[‘mon_fichier‘] es t elle aussi un ta bleau associatif
passer dans la barre d'adresse. Cette méthode permet d'envoyer autant de données que
l'on veut, ce qui fait qu'on la privilégie le plus souvent. Néanmoins, les données ne sont pos sédant l es champs suivants :
pas plus sécurisées qu'avec la méthode GET et il faudra toujours vérifier si tous les
paramètres sont bien présents et valides

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

CHARGEMENT DE FICHIERS (1) LES SESSIONS (1)

Les formulaires permettent de transmettre des informations sous forme de chaînes de Les s essions sont un moyen de sauvegarder et de modifier des variables tout a u cours de
l a vi site d’un i nternaute sans qu’elles ne s oient vi sibles dans l’URL et quelque s oient leurs
ca ra ctères. Ils peuvent a ussi permettre à un internaute de transmettre un fichier vers l e types (tableau, objet…).
s erveur.
Cette méthode permet de s écuriser un site, d’espionner l e visiteur, de sauvegarder s on
C’es t l a balise HTML s uivante : <input type=‘’file’’ /> qui permet le chargement de pa nier (e-commerce), etc.
fi chi ers. La balise FORM doit nécessairement posséder l’attribut ENCTYPE de valeur Les i nformations de sessions sont conservées en l ocal s ur l e serveur ta ndis qu’un
‘’multipart/form-data’’. La méthode utilisée sera POST. De plus, il est utile d’imposer au i dentifiant de session est posté sous la forme d’un cookie chez le cl ient (ou vi a l’URL s i le
na vi gateur une taille de fichier limite par l e paramètre MAX_FILE_SIZE dont la va leur cl i ent refuse l es cookies).
session_start() : démarre une session
numérique a pour unité l ’octet.
session_destroy() : détruit les données de session et ferme la session
session_register(‘’var’’) : enregistre la variable $var dans la session en cours, attention, ne pas
mettre le signe $ (dollars) devant le nom de variable
session_unregister(‘’var’’) : détruit la variable $var de la session en cours

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

12
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES SESSIONS (2) LES FICHIERS (2)


Sa uvegarder des va riables de type objet dans une session est la méthode de
Rappel
s écurisation maximum des données : elles n’apparaîtront pas dans l ’URL et ne pourront
pa s être forcées par un passage manuel d’arguments au s cript dans la barre d’adresse Les modes d’ouverture :
du na vigateur.
'r' : l ecture s eule
Les données de session étant sauvegardées s ur l e serveur, l ’accès a ux pages n’est pas 'r+' : l ecture et écriture
ra l enti même si des données volumineuses sont stockées.
'w' : créa tion et écriture seule
Une s ession est a utomatiquement fermée si aucune requête n’a été envoyée a u 'w+‘ : créa ti on et l ecture/écriture
s erveur par le cl ient durant un certain temps (2 heures par défaut dans l es fi chiers de
'a‘ : créa ti on et écriture s eule ; place l e pointeur de fichier à la fin du fichier
confi guration Apache).
'a+' : créa tion et lecture/écriture ; place l e pointeur de fichier à la fin du fichier

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES FICHIERS (1) DATES ET HEURES


La ma nipulation de fichier se fait grâce à un i dentifiant de fichier. Les fonctions de dates et heures sont incontournables sur Internet et sont
i ndispensables pour l a conversion en fra nçais des dates fournies par la base de données
Quel ques fonctions: MySQL qui l es code a u format anglophone (YYYY-DD-MM hh:mm:ss).
fopen($file [,$mode]) : ouverture du fichier i dentifié par son nom $file et dans un
mode $mode pa rticulier, retourne un identificateur $fp de fichier ou FALSE s i
Quel ques fonctions :
échec
fopen($fp) : ferme l e fichier i dentifié par le $fp date(‘’$format’’) : retourne une chaîne de caractères contenant la date
feof($fp) : tes te la fin du fichier existe et/ou l ’heure l ocale au format s pécifié
filesize($file) : retourne la taille du fichier $file getdate() : retourne un ta bleau associatif contenant l a date et l’heure
checkdate($month, $day, $year) : véri fi e la va lidité d’une date
time() : retourne l e timestamp UNIX de l ’heure l ocale

Exemple :
echo date(''Y-m-d H:i:s'');
// a ffi che la date au format MySQL : 2014-12-17 10:45:43

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

13
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

EXPRESSIONS RÉGULIÈRES ENTÊTES HTTP (2)

Les expressions régulières s ont un outil puissant pour la recherche de motifs dans une Le rôl e des entêtes est d’échanger des méta i nformations entre s erveur et client à
propos du document, de la connexion, etc.
cha îne de ca ractères Exemple :
Exemples de motifs :
‘’[A-Z]’’ : recherche toutes l es ma juscules <?php
header(‘’Location: home2.php’’);
‘’[a-zA-Z]’’ : recherche toutes les lettres de l’alphabet minuscules ou majuscules
exit();
‘’[^aeyuio]’’ : excl u l es voyelles ?>
‘’^Le ’’ : toute chaîne commençant par le mot ‘’Le ‘‘ s uivi d’un espace
‘’$\.com’’ : toute chaîne se terminant par ’’.com’’ (déspécialise le point) Ce s cri pt effectue une redirection vers une autre page. C’est-à-dire que l e navigateur
… du cl i ent en voya nt cet entête Location va cha rger directement l a page i ndiquée sans
rega rder la suite du script.
Exemples :

if ( ereg(‘’^.*@free\.fr’’, $email) ) {
Note: en règle générale, l e format d’un entête est l e suivant
echo ‘’Vous êtes chez Free .’’; Champ: valeur
}

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

ENTÊTES HTTP (1) MAIL (1)


Il est possible d’envoyer des entêtes particuliers du protocole HTTP grâ ce à l a La fonction mail envoie un message électronique.
comma nde header.
Synta xe :
Synta xe : header($str); mail($recipient, $subject, $message[, $headers, $params]);
Exemples :
header(‘’Content-type: image/gif ’’); // s pécifie le type d’image gif Exemple :
header(‘’Location: ailleurs.php’’); // redi rection vers une a utre page $message = ‘Tapez votre message !’’;
header(‘’Last-Modified: ‘’.date(‘’D, d M Y H:i:s’’).‘’ GMT’’); mail(‘’vous@labas.fr’’, ‘’Aide sur PHP’’, $message);

Les entêtes doivent obligatoirement être envoyées avant l ’affichage de tout caractère
da ns la page en cours. Ca r l’affichage force l’envoi des entêtes de base. Les a rguments obligatoires s ont l e destinataire, le sujet du message ainsi que l e
mes sage proprement dit. Les entêtes et paramètres additionnels sont facultatifs.
headers_sent() : Retourne TRUE si l es entêtes ont déjà été envoyées, FALSE s inon.

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

14
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Historique Partie I : PHP Historique
Partie II : MySQL PHP et le web Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

MAIL (2) EVOLUTION DU PHP


Exemple plus complet :

<?php
$recipient = ‘’Tony <tony@labas.com>, ‘’;
$recipient .= ‘’Peter <peter@pwet.net>’’;
$subject = ‘’Notre rendez-vous’’;
$message = ‘’Je vous propose le jeudi 01 janvier \n’’;
$message .= ’’--\r\n’’; // Dél imiteur de signature
$message .= ‘’Le message’’;
$headers = ‘’From: toto toto<toto321@site.com>\n’’;
$headers .= ‘’Content-Type: text/html; charset=iso-8859-1\n’’ ;
$headers .= ‘’Cc: titi@ici.fr\n’’;
mail($recipient, $subject, $message, $headers);
?>

Réf.: http://blog.pascal-martin.fr/post/statistiques-versions-php-2013-11

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire
Introduction
Partie I : PHP Historique
Partie II : MySQL PHP et le web
Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret
Partie V : Méthodologie
Conclusion

AVANTAGES ET INCONVÉNIENTS
Synta xe cl assique et pratique proche du C.
Ma i ntenance facile.
Indépendant de l’OS.
Pa s besoin de différencier les navi gateurs du marché(le code fonctionne sur tous
dès qu'il fonctionne s ur un) Partie 2 : MySQL
Ma îtri se du fonctionnement et du code
Le code s ource n'est pas vi sible
Nombreuses interactions avec le s erveur (bases de données, fonctions a vancées
d'i mages, de génération de pdf, d'exécution de scripts)

Nécessite un serveur qui accepte l e PHP


Nombreuses failles de s écurité(revers de la médaille de sa puissance)

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE 61/154


NECER FAYÇAL | DÉCEMBRE - 2014

15
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

PRÉSENTATION (1) PRÉSENTATION (3)


Les SGBD (Systèmes de Gestion de Bases de Données) s ont l es programmes qui se Nous allons utiliser MySQL, ma is sachez que l 'essentiel de ce que vous a llez a pprendre
cha rgent du s tockage de vos données. Les plus connus s ont : foncti onnera de la même manière avec un a utre SGBD.
MySQL : l i bre et gratuit, c'est probablement l e SGBD l e plus connu. Nous l 'utiliserons dans
cette pa rtie ;
PostgreSQL : l i bre et gratuit comme MySQL, a vec plus de fonctionnalités mais un peu
moi ns connu ;
SQLite: l i bre et gratuit, très l éger mais très limité en fonctionnalités ;
Oracle : uti lisé par les très grosses entreprises ; s ans aucun doute un des SGBD l es plus
compl ets, mais il n'est pas libre et on le paie le plus s ouvent très cher ;
Microsoft SQL Server : l e SGBD de Mi crosoft.
Il existe un outil libre et gratuit développé par l a communauté des programmeurs libres :
phpMyAdmin qui permet l ’administration aisée des bases de données MySQL a vec php

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

PRÉSENTATION (2) PRÉSENTATION (4)


Les SGBD (Systèmes de Gestion de Bases de Données) s ont l es programmes qui se La base de données conti ent plusieurs tables
cha rgent du s tockage de vos données. Les plus connus s ont : Cha que table est en fait un tableau où les colonnes s ont a ppelées champs et où l es
MySQL : l i bre et gratuit, c'est probablement l e SGBD l e plus connu. Nous l 'utiliserons dans l i gnes s ont a ppelées entrées.

cette pa rtie ;
PostgreSQL : l i bre et gratuit comme MySQL, a vec plus de fonctionnalités mais un peu
moi ns connu ;
SQLite: l i bre et gratuit, très l éger mais très limité en fonctionnalités ;
Oracle : uti lisé par les très grosses entreprises ; s ans aucun doute un des SGBD l es plus
compl ets, mais il n'est pas libre et on le paie le plus s ouvent très cher ;
Microsoft SQL Server : l e SGBD de Mi crosoft.
Il existe un outil libre et gratuit développé par l a communauté des programmeurs libres :
phpMyAdmin qui permet l ’administration aisée des bases de données MySQL a vec php

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

16
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

PRÉSENTATION (5) CONNEXION (2)


PHP fait la jonction entre vous et MySQL Exemple 1 :
if( $id = mysql_connect(‘’localhost’’,’user’’,’’0478’’) ) {
if( $id_db = mysql_select_db(‘mabase_db’’) ) {
1. l e s erveur utilise toujours PHP, il l ui fait donc passer l e message ;
echo ‘’Succès de connexion.’’;
2. PHP effectue les actions demandées et s e rend compte qu'il a besoin de MySQL. En /* code du script … */
} else {
effet, le code PHP contient à un endroit « Va demander à MySQL d'enregistrer ce die(‘’Echec de connexion à la base.’’);
}
mes sage ». Il fait donc passer l e travail à MySQL ;
mysql_close($id);
3. MySQL fa i t l e travail que PHP l ui avait soumis et lui répond « O.K., c'es t bon ! » ; } else {
die(‘’Echec de connexion au serveur de base de données.’’);
4. PHP renvoie a u serveur que MySQL a bien fait ce qui l ui était demandé. }

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

CONNEXION (1) CONNEXION (3)


Pour s e connecter à une base depuis PHP, il faut s pécifier un nom de serveur, un nom On pourra avantageusement i ntégrer ce code dans un fichier que l ’on pourra joindre par
d’utilisateur, un mot de passe et un nom de base. include(), require ().

Les fonctions de connexion : C’es t a ussi un moyen de s écuriser le mot de passe de connexion.
mysql_connect($server,$user,$password) : permet de se connecter au serveur $server en tant
qu’utilisateur $user avec le mot de passe $password, retourne l’identifiant de connexion si succès, Une connexion persistante évite d’avoir à rouvrir une connexion dans chaque s cript
FALSE sinon
mysql_select_db($base[,$id]) : permet de choisir la base $base, retourne TRUE en cas de succès, Les connexions sont automatiquement fermées au bout d’un certain temps en cas
sinon FALSE
d’a bsence de toute activité…
mysql_close([$id]) : permet de fermer la connexion
mysql_pconnect : idem que mysql_connect sauf que la connexion est persistante, il n’y a donc pas
besoin de rouvrir la connexion à chaque script qui travaille sur la même base.

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

17
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

INTERROGATION EXTRACTION DES DONNÉES (2)


Pour envoyer une requête à une base de donnée, il existe la fonction : mysql_query($str) Une fois la requête effectuée et l ’identificateur de résultat a cquis, il ne reste plus qu’à
qui prend pour paramètre une chaîne de caractères qui contient la requête écrite en SQL et extra ire l es données retournées par le s erveur.
retourne un i dentificateur de résultat ou FALSE si échec.
mysql_fetch_row($result) : retourne une ligne de résultat sous la forme d’un tableau.
Les requêtes les plus couramment utilisées sont : CREATE (créa tion d’une ta ble), SELECT Les éléments du tableau étant l es va leurs des attributs de la l igne.
(s élection), INSERT (insertion), UPDATE (mise à jour des données), DELETE (suppression), Retourne FALSE s ’il n’y a plus aucune l igne.
ALTER (modification d’une ta ble), etc. Exemple 1 :
$requet = ‘’SELECT * FROM users’’;
if($result = mysql_query($requet)) {
Exemple : while($ligne = mysql_fetch_row($result)) {
$result = mysql_query(‘’SELECT address FROM users WHERE name=’’$name’’’’); $id = $ligne[0];
Cet exemple recherche l’adresse de l’utilisateur portant pour nom la valeur de la chaîne $name = $ligne[1];
$name. $address = $ligne[2];
echo ‘’$id - $name, $address <br />’’;
}
Les données sont récupérées sous forme de tables (n l i gnes * m col onnes) } else {
echo ‘’Erreur de requête de base de données.’’;
}
Ici, on accède aux valeurs de la ligne par leur indice dans le tableau.
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

EXTRACTION DES DONNÉES (1) EXTRACTION DES DONNÉES (3)


Une fois la requête effectuée et l ’identificateur de résultat a cquis, il ne reste plus qu’à mysql_fetch_array($result) : retourne un tableau a ssociatif. Les cl és étant les noms des
extra ire l es données retournées par le s erveur. a ttri buts et l eurs valeurs associées leurs va leurs respectives. Retourne FALSE s ’il n’y a plus
mysql_fetch_row($result) : retourne une ligne de résultat sous la forme d’un tableau. a ucune ligne.

Les éléments du tableau étant l es va leurs des attributs de la l igne. Exemple 2 :


Retourne FALSE s ’il n’y a plus aucune l igne.
Exemple : $requet = ‘’SELECT * FROM users’’;
$requet = ‘’SELECT * FROM users’’; if($result = mysql_query($requet)) {
if($result = mysql_query($requet)) { while($ligne = mysql_fetch_array($result)) {
while($ligne = mysql_fetch_row($result)) { $id = $ligne[‘’id’’];
$id = $ligne[0]; $name = $ligne[‘‘name’’];
$name = $ligne[1]; $address = $ligne[‘’address’’];
$address = $ligne[2]; echo ‘’$id - $name, $address <br />’’;
echo ‘’$id - $name, $address <br />’’; }
} } else {
} else { echo ‘’Erreur de requête de base de données.’’;
echo ‘’Erreur de requête de base de données.’’; }
}
Ici, on accède aux valeurs de la ligne par l’attribut dans le tableau associatif.
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

18
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

EXTRACTION DES DONNÉES (4) FONCTIONS ADDITIONNELLES (2)


mysql_fetch_object($result) : retourne un objet. Les attributs de l’objet correspondent à Exemple 1 :
ceux de l a ligne de résultat. Et l es valeurs des attributs de l’objet correspondent à ceux de la
<?php
l i gne de résultat. Retourne FALSE s’il n’y a plus a ucune ligne.
$result = mysql_query("SELECT id, email FROM people WHERE id = '42'");
if (!$result) {
Exemple 3 : echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
$requet = ‘’SELECT * FROM users’’; }
if($result = mysql_query($requet)) { // Utilisation du résultat
while($ligne = mysql_fetch_object($result)) { $row = mysql_fetch_assoc($result); //
$id = $ligne->id;
$name = $ligne->name;
//mysql_fetch_assoc () : Lit une ligne de résultat MySQL dans un tableau associatif
$address = $ligne->address;
echo ‘’$id - $name, $address <br />’’;
} // Maintenant, nous libérons le résultat et continuons notre script
} else { mysql_free_result($result);
echo ‘’Erreur de requête de base de données.’’;
} echo $row['id'];
Ici, on accède aux valeurs par leur attribut dans l’objet echo $row['email'];
?>

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

FONCTIONS ADDITIONNELLES (1) PHPMYA DMIN

Quel ques fonctions supplémentaires très utiles :


phpMyAdmin est livré avec WAMP,
mysql_free_result($result) : effa ce de la mémoire du serveur l es l ignes de résultat de l a
Pres que tous l es hébergeurs permettent d'utiliser phpMyAdmin
requête i dentifiées par $requet. Très utile pour a méliorer l es performances du serveur.
mysql_insert_id([$id]) : retourne l’identifiant d’un attribut clé primaire AUTO_INCREMENT
1. Liste des bases
(A_I) de l a dernière insertion. 2. Créer une base

mysql_num_fields($result) : retourne l e nombre d’attributs du résultats.


mysql_num_rows($result) : retourne le nombre de lignes du résultats MySQL. Et a insi
permet de remplacer l e while pa r un for.
mysql_query () : Envoi e une requête à un serveur MySQL
Penser à bien tester la valeur de retour des fonctions (mysql_query et les autres) afin de
détecter toute erreur et d’éviter de polluer votre page avec des Warnings.
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

19
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

SE CONNECTER A LA BASE DE DONNÉES RÉCUPÉRER LES DONNÉES

L'extension PDO : c'es t un outil complet qui permet d'accéder à n'importe quel SELECT : en l a ngage SQL, l e premier mot i ndique quel type d'opération doit
effectuer MySQL. Ce mot-cl é demande à MySQL d'a fficher ce que contient une ta ble.
type de base de données. On peut donc l 'utiliser pour se connecter a ussi bien à
MySQL que PostgreSQL ou Oracle. FROM : c'es t un mot de liaison qui s e traduit par « da ns ». FROM fa it la liaison entre
l e nom des champs et le nom de la ta ble.
<?php
$reponse = $bdd->query('SELECT * FROM jeux_video');
?>

Les critères de sélection : il est possible de fil trer et trier très fa cilement les
données en langage SQL. Les mots-clés suivants du langage SQL :
WHERE : permet de trier vos données
ORDER BY : permet d'ordonner nos résultats
LIMIT : permet de ne sélectionner qu'une pa rtie des résul tats (pa r exemple
<?php l es 10 premiers)
$bdd = new PDO('mysql:host=localhost;dbname=test', 'login', 'le mot de passe'); SELECT * FROM notretable LIMIT 0, 10
?>
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

LES ERREURS A JOUTER DES DONNÉES

Il est préférable de traiter l 'erreur. En cas d'erreur, PDO renvoie ce qu'on a ppelle La requête INSERT INTO permet d'ajouter une entrée
une exception qui permet de « ca pturer » l 'erreur
INSERT INTO maTable(ID, nom, prenom, valeur, adresse) VALUES('', unNom', ‘unPrenom', uneValeur', uneAdr
<?php esse')
try Application en php:
{ <?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); try
} {
catch (Exception $e) $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
{ }
die('Erreur : ' . $e->getMessage()); catch(Exception $e)
} {
?> die('Erreur : '.$e->getMessage());
}
Fa i re une requête // On ajoute une entrée dans la table maTable
$reponse = $bdd->query('Tapez votre requête SQL ici'); $bdd->exec('INSERT INTO maTable(nom, prenom, valeur, adresse)
VALUES(’unNom', ‘unPrenom', ‘uneValeur‘, ‘uneAdresse ‘, )');
echo 'Le jeu a bien été ajouté !';
?>
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

20
03/09/2011

Sommaire
Introduction EXEMPLE DE CONNEXION AVEC PHP (2)
Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret <!DOCTY PE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
Partie V : Méthodologie "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Conclusion
<html xmlns="http://www.w3.org/1999/xhtml">
MODIFIER DES DONNÉES <head>
<meta http-equiv ="Content-Ty pe" content="text/html; charset=utf -8" />
<title>Choix de l'administrateur</title>
La requête UPDATE permet de modifier une entrée </head>

<body >
UPDATE maTable SET nom= Dupont, Valeur = newValeur WHERE ID = 1 <f orm action="test.php" method=« post">
<p>Choisissez un administrateur : <select name="truc">
Application en php: <?php
<?php while($line = my sql_f etch_assoc($result)){
try echo '<option v alue="'.$line['id_a'].'">'.$line['nom_a'].'</option>';
{ }
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); ?>
} </select>
catch(Exception $e) </p>
{ <p><input ty pe="submit" v alue="Voir les inf os" /></p>
die('Erreur : '.$e->getMessage()); </f orm>
} </body >
// On ajoute une entrée dans la table maTable </html>
$bdd->exec('INSERT INTO maTable(nom, prenom, valeur, adresse)
VALUES(’unNom', ‘unPrenom', ‘uneValeur‘, ‘uneAdresse ‘, )');
echo 'Le jeu a bien été ajouté !';
?>
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire
EXEMPLE DE CONNEXION AVEC PHP (1) Introduction
Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL
<?php Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret
//paramétre de connexion au serv eur de base de données et nom de la base
Partie V : Méthodologie
$serv eur_db = 'localhost'; Conclusion
$user_db = 'root';
$pass_db = ''; EXERCICES (1)
$base_db = 'test_db';

// 1-connexion au serv eur Exercice N° 1 : Pa rmi l es variables suivantes, lesquelles ont un nom valide :
//************************************** ma va r, $mavar, $va r5, $_mavar, $_5va r, $__élément1, $hotel4* ?
$connnect = my sql_connect($serveur_db, $user_db, $pass_db);
if (!$connnect){
echo 'echec serv eur'; exit(); Les noms $mavar, $va r5, $_mavar, $_5va r, $__élément1 respectent les conventions.
} Les a utres ne s ont pas valides : ma var ne commence pas par l e caractère $ et
$hotel4* s e termine par l e caractère *
// 2- choix de la base
//**************************************
$db = my sql_select_db($base_db); Exercice N° 2 : Donner l es va leurs de $x, $y, $z à l a fi n du s cript s uivant :
if (!$db){ $x="PostgreSQL";
echo 'echec base'; exit(); $y="MySQL";
} $z=&$x;
// 3- creation de la requete et excécution de la requete $x="PHP";
//**************************************
$y=&$x;
$query = "SELECT id_a, nom_a FROM administrateurs";
$result = my sql_query ($query ) or die (my sql_error());
?> Les va riables $x, $y et $z va l ent toutes " PHP"

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

21
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

EXERCICES (2) EXERCICES (4)

Exercice N° 3 : Li re l es valeurs des va riables du s cript de l ’exercice 2 à l ’aide du


ta bl eau $GLOBALS. Exercice N° 5 : Donner la va leur des va riables $x, $y, $z à l a fin du script :
<?php $x="7 pers onnes";
$x="PostgreSQL"; $y=(i nteger) $x;
$y="MySQL";
$z=&$x; $x="9E3";
$x="PHP";
$y=&$x; $z=(double) $x;
echo $GLOBALS['x'], "<br />";
echo $GLOBALS[‘y'], "<br />"; $x vaut : 9E3
echo $GLOBALS[‘z'], "<br />"; $y vaut : 7
?> $z vaut : 9000

PHP
PHP
PHP

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

EXERCICES (3) MÉTHODOLOGIE (1)


De ma nière générale, il faut :
Exercice N° 4 : Déterminer le numéro de version de PHP, le nom du système 1. Toujours contrôler l es données saisies par un utilisateur a fin d’éviter tout piratage ; ne
d'exploitation de votre serveur ainsi que la langue du navigateur
du poste client. ja ma is présupposer l’honnêteté de l’internaute da ns un univers aussi impersonnel
que l ’est Internet.
<?php
echo "Version de PHP : ",PHP_VERSION, "<br />"; 2. Ne pa s répercuter automatiquement l es données saisies par un utilisateur a uprès des
echo "Système d'exploitation du serveur : ",PHP_OS, "<br />"; a utres internautes sans contrôle ; faire valider les données par un administrateur.
echo "Langue du navigateur client :
",$_SERVER["HTTP_ACCEPT_LANGUAGE"], "<br />"; 3. Uti l iser des variables de session (superglobales), pui s que celles globales peuvent
?>
êtres forcées par des passages en URL.
Vers i on de PHP : 5.3.5 4. Gestion des erreurs : rédui re au maximum les erreurs possibles, puis traiter l es a utres
Sys tème d'exploitation du serveur : WINNT
en l es enregistrant par exemple dans un fichier .
La ngue du navigateur client : fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

22
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

MÉTHODOLOGIE (2) MÉTHODOLOGIE (4)


5. La portabilité du code : ca r l e CMS doit fonctionner sous le plus grand nombre de
Le s cri pt de sauvegarde a ura plusieurs méthodes a u choix :
s erveurs, donc doit dépendre l e moins possible de sa configuration)
Méthode 1 : Fi chi er de sauvegarde (texte ou binaire), pratique pour l es compteurs de
6. La lisibilité du code : un a utre développeur doit pouvoir facilement modifier votre
vi s i tes.
s cri pt si l e client l e lui demande)
Méthode 2 : Ba s e de données (généralement MySQL), s ouvent plus simple, plus rapide et
7. L'unicité du code : L'uni cité du code est le principe selon l equel a ucun code ne doit
pl us a dapté pour les données volumineuses.
être double dans le s cript. Ce cri tère a un enjeu pratique et vise à augmenter la
Méthode 3 : Va ri a bles de session, i nconvénient : durée de vi e l imitée au seul temps de
ra pi dité des modifications d'un script.
vi s i te de l’internaute.
<?php $connect = mysql_connect('host',‘login','password'); //actions sur la BDD ?>
Méthode 4 : Envoyer des cookies a ux cl ients, qui peut l es refuser…
Ce code est répété dans chaque page => include 'connect.php';
8. La définition de normes : l es normes sont des décisions le plus s ouvent arbitraires sur
des méthodes de programmation . L'i mportant n'est pas ce que définissent l es
normes, mais que des normes soient définies.
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire
Introduction
Partie I : PHP Présentation

SESSIONS & COOKIES


Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret
Partie V : Méthodologie
Conclusion

MÉTHODOLOGIE (3)

9. Toutes les cha înes peuvent être écri tes autant a vec des guillemets simples ( ‘toto' )
qu'a vec des guillemets doubles ( « ta ta" ). Cependant, on conseille généralement
d'employer l es guillemets simples parce qu'ils s ont plus ra pides.
10. Pour récupérer l es données d’un visiteur, utilisez un formulaire HTML.
Ce formulaire pourra envoyer les données saisies par mail à votre adresse à
condi tion que le client soit équipé d’un logi ciel de messagerie et d’un compte mail
va l ide :
(<FORM a cti on=‘’mailto:administrateur@lesite.com’’method=‘’post’’
enctype=‘’text/plain’’>). Ou bien envoyez les données saisies à un script PHP qui saura
quoi en faire (<FORM a ction=‘’monscript.php’’ method=‘’post’’>).

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE


NECER FAYÇAL | DÉCEMBRE - 2014

23
03/09/2011

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

SESSIONS ET COOKIES (1) SESSIONS ET COOKIES (3)


Exemple d'utilisation des sessions
En PHP l es va riables superglobales s ont des va riables un peu particulières pour trois
<?php
ra i sons : // On démarre la session AVANT d'écrire du code HTML

el l es s ont écrites en majuscules et commencent toutes, à une exception près, par un session_start();
// On s'amuse à créer quelques variables de session dans $_SESSION
underscore (_). Comme $_GET et $_POST (tra nsmettre les i nformation une seule fois)
$_SESSION['prenom'] = 'Jean';
l es s uperglobales sont des a rray ca r elles contiennent généralement de , nombreuses $_SESSION['nom'] = 'Dupont';
i nformations ; $_SESSION['age'] = 24;

enfi n, ces variables sont automatiquement créées par PHP à chaque fois qu'une
session_destroy() //ferme la session du visiteur.
pa ge est chargée. El les existent donc s ur toutes les pages et sont accessibles partout :
?>
a u mi lieu de votre code, au début, dans l es fonctions, etc.

COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

Sommaire Sommaire
Introduction Introduction
Partie I : PHP Présentation Partie I : PHP Présentation
Partie II : MySQL PHP et MySQL Partie II : MySQL PHP et MySQL
Fonctionnement et mise en œuvres de PHP Fonctionnement et mise en œuvres de PHP
Partie IV : Exemple concret Partie IV : Exemple concret
Partie V : Méthodologie Partie V : Méthodologie
Conclusion Conclusion

SESSIONS ET COOKIES (2) SESSIONS ET COOKIES (4)


Une s ession permet de transmettre des variables de page en page dans un site web
Un cooki e, c'est un petit fichier que l'on enregistre sur l 'ordinateur du visiteur (client)
pendant la durée de la présence d'un visiteur très (difficile avec $_GET et $_POST)
Da ns $_SESSION : on y retrouve l es va riables de session. Elle offre un niveau de sécurité Ce fi chi er contient du texte et permet de « retenir » des i nformations sur le vi siteur.
Exemple : un site ma rchand peut reteni r que vous ai mez les chaussures LACOSTE et
confortable par a pport au cookies.
vous a fficher uniquement des pubs pour des chaussures LACOSTE
En pratique un s cript qui demande un login et un password pour qu'un visiteur puisse
$_COOKIE : conti ent l es va leurs des cookies enregistrés s ur l 'ordinateur du visiteur. Cela
se « connecter » (s'authentifier). On peut enregistrer ces informations dans des
nous permet de stocker des i nformations sur l'ordinateur du vi siteur pendant plusieurs
va riables de session et se souveni r de l 'identifiant du visi teur sur toutes les pages du
moi s, pour s e souvenir de s on nom par exemple.
s i te !
<?php setcookie('pseudo', ‘f@nec41', time() + 365*24*3600); ?> // supprimer dans un an
Généralement on se sert des sessions sur les sites de vente en li gne. Cela permet de
gérer un « panier » : on retient les produits que commande le client quelle que soi t la
pa ge où il est. Lorsqu'il va lide sa commande, on récupère ces i nformations. PAYER
COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE COURS PHP - MYSQL| BACHELOR 3ÈME ANNÉE
NECER FAYÇAL | DÉCEMBRE - 2014 NECER FAYÇAL | DÉCEMBRE - 2014

24

Vous aimerez peut-être aussi