Cours PHP

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 54

Module PHP

Présenté par: Mr Peter


KIDOUDOU
Introduction

PHP est un langage de programmation qui permet de mettre en


oeuvre des sites Internet élaborés

En effet, le HTML simple ne suffit pas à répondre aux impératifs


imposés par les dernières évolutions du Web.

C'est un langage de programmation spécialisé dans la génération


de code, dont le langage de prédilection est le HTML

Il possède une impressionnante quantité d'outils (manipulation


d'images, traitement de fichiers, accès aux bases de données,
etc.)
Pré-requis

Ce langage s'adresse à ceux qui ont appris du langage HTML et qui


désirent aller plus loin dans la création de page web.

Aujourd'hui, PHP est un disponible dans plusieurs environnements, tels


qu'Unix (Linux, AIX), Windows (95, 98, NT) et Macintosh.
Historique

• Conçu comme “Personal Home Page Generator” (Php2/FI) au


début du WWW par Rasmus Lerdorf

• PHP 3 depuis fin 1997,


• PHP 4 depuis 1999,
• PHP 5 depuis 2004/2005
•PHP 6 depuis 2008
•PHP 7 depuis 2019
•PHP 8 depuis 2020
Le Langage

Le PHP est un langage complet, écrit en C, qui reprend une


grande partie des spécificités techniques et sémantiques de ce
langage. Le moteur d'interprétation du langage lit un fichier
source PHP, puis génère un flux destination, en respectant les
définitions et règles suivantes :

* Un bloc PHP est un groupe continu de lignes, encadré par


deux balises : <? et ?>

* Toute ligne située à l'extérieur de ces balises n'est pas


interprétée et est envoyée telle quelle dans le flux de sortie.

* Toute ligne située à l'intérieur de ces balises est considérée


comme une instruction PHP et est donc interprétée par le
moteur.

* Les instructions PHP n'apparaissent pas dans le résultat


généré.
Application 3 TIERS
Premier programme

Premier programme
La conception du script PHP est réalisé avec un éditeur
quelconque, le Notepad sous Windows est suffisant.

<HTML>
<HEAD><TITLE>Mon premier programme</TITLE>
</HEAD>
<BODY>
<? echo "Bonjour ! “ ; ?>
</BODY>
</HTML>
Les Variables

Contrairement à beaucoup de langages, PHP ne


contient de partie déclarative clairement
définie. Pour déclarer une variable, il suffit de
l'initialiser. Celle-ci sera immédiatement
accessible, et le restera jusqu'à la fin du script.

•Les variables en PHP sont toutes dotés du


préfixe $

exemple :
$toto = 1;
Type variable

Le type d'une variable est défini par la valeur qui


lui à été affecté lors de sa création. Il existe 5
types de données :
* Entier (int, integer)
* Décimal (real, double, float)
* Chaîne de caractères (string)
* Tableau (array)
* Objet (object)
Type en français Plage de valeurs Exemple

-2 147 483 648 à


integer entier $var = 12;
+ 2 147 483 647

double réel 1.7E-308 à 1.7E+308 $var = 3.1415957

chaîne de caractère $var =


string
caractères alphanumérique "bienvenue"
Les Constantes

Il éxiste deux constantes prédéfinies en PHP, il s'agit


de __FILE__ et de __LINE__. Elles ont pour valeurs
respectives le nom du fichier PHP, qui est en cours
d'interprétation, et le numéro de la ligne courante.
Pour définir une constante il suffit d'utiliser
l'instruction define

exemple :

define ("TOTO", "Bonjour");


// On défini une constante TOTO qui vaut "Bonjour«

define ("PI", 3.14);


Portée des variable

Selon l'endroit du code où les variables sont définies,


ces dernières auront une portée plus ou moins
grande, c-à-d qu'elles seront définies soit pour une
partie du code (fonction) soit pour sa totalité. Il
existe trois niveaux de définition de variables :

• Le niveau global. Il définit des variables dans


l'intégralité du code d'une page PHP.

• Le niveau local. Il définit des variables propres à


une fonction, dont la durée de vie ne dépasse pas le
temps de cette fonction.

• Le niveau static. Il définit des variables propres à


une fonction, qui persistent pendant l'intégralité du
code de la page PHP.
exemple :
$a = 5; // $a est une variable global
$b = 3; // $b est une variable global
Function test {
echo $a; // il ne se passe rien car $a est
//considérée comme une variable locale
global $b; // on référence la variable globale
//$b à l'intérieur de la fonction
echo $b; // le programme affiche 3
static $c = 0; // déclaration et affectation de $c
echo $c++; // affiche $c incrémenté de 1 car
//$c valeur conserve sa valeur dans la fonction
}
function bonjour($nom) {
echo "Bonjour $nom !<br />";
}

bonjour("Marie");

function somme($x, $y) {


return $x + $y;
}

$z = somme(3, 10);
function coordonnees($ville) {
...
return array($x, $y);
}

list($a, $b) = coordonnees(« Brazzaville");


Variables, chaînes de caractères et
concaténation
⚫ On peut mélanger les variables et les
chaines de caractères
⚫ $var1 = 33.33;
⚫ echo "Montant: ", $var1;
⚫ echo "Montant: $var1";
⚫ echo "Montant: ".$var1;
○ Le point "." est l'opérateur de concaténation
⚫ Pour accéder à un caractère:
⚫ $var = "Coucou";
⚫ echo $var1{2}; //depuis php5
⚫ echo $var1[2]; //php4 et avant
⚫ Pour imprimer un caractère spécial
⚫ echo chr(125); //caractère ASCII 125
Types de données
⚫ Fonction gettype(nom)
⚫ Connaître le type d'une variable
⚫ $test = 5;
⚫ echo gettype( $test ); // integer
⚫ settype(variable, type)
⚫ Modifier le type d'une variable.
⚫ $test = 8.54;
⚫ settype($test, integer); //$test<=8
⚫ Transtypage
⚫ $test1 = 8.5;
⚫ $test2 = (int) $test1;
Les tableaux

Dans PHP, comme dans tout autre langage, les


tableaux sont une structure de données
incontournable. La déclaration d'un tableau se fait de
la même manière que la déclaration d'une variable
avec un indice se trouvant entre [ et ].
exemple :
$tableau[0] = 1; // on crée un tableau, et sa
première valeur est 1

Pour un tableau à deux dimensions, il suffit de


mettre un second indice au moment de l'affectation.
exemple :
$tableau[0][0] = 1; // on crée un tableau, et sa
première valeur est 1
Il n'est pas obligatoire de préciser l'indice pour affecter
une valeur.
exemple :
$tableau[] = 1; // équivaut à $tableau[0] = 1;
$tableau[] = 45; // équivaut à $tableau[1] = 45;
$tableau[] = 6; // équivaut à $tableau[2] = 6;

La déclaration et l'initialisation d'un tableau peuvent


également se faire par l'intermédiaire de la fonction
'array()'. Cette fonction permet de préciser les indices
ainsi que les valeurs du tableau (à l'aide de l'opérateur
=>).
exemple :
$tableau[] = array(0=>1, 1=>45, 2=>6);
$tableau[] = array("rouge"=>"red", "vert"=>"green",
"bleu"=>"blue");
Les opérateurs Numériques
$op1 = 5;
$op2 = 2;

résultat
ou
Opérateur Signification Exemple
valeur
$op1
+ addition $op1 + $op2 7

- soustraction $op1 - $op2 3

* multiplication $op1 * $op2 10

/ division $op1 / $op2 2.5

% modulo $op1 % $op2 1

- négatif $op1 = -$op2 -2


Les opérateurs de comparaison

Opérateur Signification Exemple


égalité (attention ! il faut deux
== $op1 == $op2
"égals")

< strictement inférieur $op1 < $op2

> strictement supérieur $op1 > $op2

<= inférieur ou égal $op1 <= $op2

>= supérieur ou égal $op1 >= $op2

!= ou <> différent $op1 != $op2


Les opérateurs logiques

Opérateur Exemple Résultat


$a and $b
and ( && ) vrai si $a et $b sont vrai tous les deux
$a && $b
$a or $b vrai si $a est vrai ou $b est vrai, ou
or ( || ) encore si $a et $b sont vrai tous les
$a || $b deux
vrai si $a est vrai ou $b est vrai, mais
xor $a xor $b
faux si $a et $b sont vrai tous les deux
not $a
not ( ! ) vrai si $a est faux
!$a
Test condition

if... then... else

Test de base que l'on trouve dans la majeure partie des langages. Si
une condition
if... then... elseest vrai alors on exécute des instructions sinon
(facultatif) on en exécute d'autre. On peut changer de condition avec
Test de base que l'on trouve dans la majeure partie des langages. Si une condition est vrai
un 'elseif'.
alors on exécute des instructions sinon (facultatif) on en exécute d'autre. On peut changer de
condition avec un 'elseif'.

syntaxe : :
syntaxe
If ( condition1 ) {
If ( condition1
Action 1 ){
Action
} elseif1
( condition2 ) {
Action 2
} elseif} ( condition2 ) {
} else {2
Action Action 3
} }
} else {
Action 3
}
⚫ Exemple :
<?php
if (1 == 2) {
?>
<div><h1>On est ici !</h1></div>
<?php
}
else {
?>
<div><h1>On est là !</h1></div>
<?php
}
?>
Comparaison de chaînes de caractères

⚫ Préférable de pas utiliser ==


⚫ Il faut utiliser la fonction strcmp()

⚫ Exemple :

If (strcmp($var1, "Test") == 0) {
// $var1 est égal à Test
}
switch... case... default

Si les conditions successives ne portent que sur la valeur


d'une variable, on pourra avantageusement remplacer le
test 'if... elseif... else' par 'switch'.
exemple :

switch ($a) {
case $b:
echo "A est égal à B";
break;
case >$b:
echo "A est supérieur à B";
break;
default:
echo "A est inférieur à B";
break;
}
Les boucles

While

Tant que la condition est respectée, l'action est exécutée.

syntaxe :
while ( condition ) {
Action;
}

exemple :

$i=1;
while ($i <= 10) {
echo "- $i -";
$i++;
}
do ... while

Cette boucle fonctionne de la même façon que while. La différence


est que le test est à la fin, donc l'action sera exécutée au moins
une fois.

syntaxe :
do {
Action;
} while (condition);

exemple :

$i=1;
do {
echo "- $i -";
$i++;
} while ($i <= 10)
for

Les boucles for se définissent avec trois expressions (initialisation,


condition et itération). Le principe est le suivant : en partant d'une
valeur (expr. d'initialisation), et tant que la condition sur cette
valeur (expr. de condition) est vérifiée, l'action est exécutée à
chaque fois en appliquant l'expression d'itération.

syntaxe :
for (expr1; expr2; expr3) {
Action;
}

exemple :

for ($i = 1; $i <= 10; $i++) {


echo "- $i -";
}
Instructions break et continue

break

Cette instruction permet de sortir de n'importe quelle boucle,


à n'importe quel moment.

exemple :

for ($i=1; $i<=10; $i++) {


if ($i<=5) { echo $i; }
else { break; }
echo " - ";
}
// cette boucle affichera : 1 - 2 - 3 - 4 - 5
continue

Cette instruction permet de ne pas exécuter le code contenu


dans la boucle et de passer à l'itération suivante.

exemple :

for ($i=1; $i<=10; $i++) {


if ($i<=5) { continue; }
echo "$i - ";
}
// cette boucle affichera : 6 - 7 - 8 - 9 - 10 -
Les inclusions de fichiers

⚫ Permet d’inclure des fichiers externes


⚫ include("header.php")
○ Inclus le fichier header.php. Si ce fichier est déjà
inclus, alors il y a un message d’erreur
○ Si le fichier n’existe pas, alors il y a un ‘warning’
affiché
⚫ include_once("header.php")
○ Comme le include, à la différence que si le fichier a
déjà été ajouté, il ne l’ajoutera pas de nouveau
Les inclusions de fichiers

⚫ require("header.php")
○ Inclus le fichier header.php. Si ce fichier est
déjà inclus, alors il y a un message d’erreur
○ Si le fichier n’existe pas, alors une erreur fatale
est déclenchée
⚫ require_once("header.php")
Comme le require, à la différence que si le

fichier a déjà été ajouté, il ne l’ajoutera pas de
nouveau
N.B: Les inclusions sont très pratiques pour :
➢ Ne pas dupliquer de code HTML
➢ Réutiliser des fonctions PHP déjà écrite dans
d’autres fichiers
Les formulaires

Page formulaire

<form action="confirm.php" method="post">


<input type="text" name="nom">
<input type="text" name="adresse">
<input type="submit" value="Terminé">
</form>

confirm.php

<p>
<?php
echo "Bienvenue <b>".$_POST["nom"]."</b>";
echo "votre adresse est <b>".$_POST["adresse"]."</B>";
?>
</p>
Accès aux champs d’un formulaire

⚫ Si le formulaire est envoyé avec la méthode


« get », alors on utilise :
⚫ $_GET["nom"]
⚫ Si la méthode d’envoi est « post », alors
⚫ $_POST["nom"]
Exemple d'un formulaire en POST !
<html>
<form action=fichier.php method=post>
prenom : <input type=text name="prenom" value="jean"><br>
nom : <input type=text name="nom" value="lebon"><br>
<input type=submit value=Envoyer>
</form>
</html>
Programme PHP permettant d'afficher les valeurs postées
par le formulaire :
<?
echo "prenom : $HTTP_POST_VARS[prenom]<br>";
echo "nom : $HTTP_POST_VARS[nom]<br>";
?>
Exemple d'un formulaire en GET !
<html>
<form action=fichier.php method=get>
prenom : <input type=text name=value><br>
nom : <input type=text name=value><br>
<input type=submit value=Envoyer>
</form>
</html>
Programme PHP permettant d'afficher les valeurs postées par le
formulaire :
<?php
echo "prenom : $HTTP_GET_VARS[prenom]<br>";
echo "nom : $HTTP_GET_VARS[nom]<br>";
?>
Exemple avec un lien donc un programme php en GET !
<html>
<a href="fichier.php?nom="Martineau"&prenom="jean-louis">texte du
lien</a>
</html>
Remarque

• avec la méthode GET vous verrez les paramètres 'passer' dans


l'url
•exemple
:http://www.mondomaine.com/fichier.php3?nom=Martineau&prenom=j
ean-louis
• avec la méthode POST c'est transparent
La méthode POST n'est pas limitée en taille, en GET la taille est limitée,
donc des formulaires trop riches ne fonctionneront pas ! De plus si on
imagine une application avec mot de passe, la méthode get est à prohiber
car on verrait le mot de passe dans l'url !

ex
:http://www.mondomaine.com/fichier.php3?login=dupont&motdepasse=
45gtPQ47
La super-globale $_SERVER

⚫ $_SERVER est un tableau contenant des


informations comme les en-têtes, dossiers et
chemins du script. Les entrées de ce tableau
sont créées par le serveur web.
⚫ $_SERVER['HTTP_USER_AGENT']
⚫ Nom et version du fureteur
⚫ Ex : Mozilla/4.6
⚫ $_SERVER['REMOTE_ADDR']
⚫ Adresse IP du client
⚫ $_SERVER['REQUEST_METHOD']
⚫ "GET" ou "POST"
⚫ $_SERVER['QUERY_STRING']
⚫ Pour un requête GET la string CGI
⚫ Ex.: nom=Daniel&prenom=Bourry
Opérations sur des fichiers
⚫ Lecture d’un fichier
// Nom du fichier
$nomFichier = “acme.txt";

// Ouverture du fichier en mode lecture


$fichier = fopen($nomFichier, 'r');

// Lecture du fichier dans une variable


$variable = fread($fichier, filesize($nomFichier));

// Fermeture du fichier
fclose($fichier);
⚫ Écriture d’un fichier
// Nom du fichier
$nomFichier = “acme.txt";

// Ouverture du fichier en mode écriture. Si erreur, arrêt du script PHP


$fichier = fopen($ nomFichier, 'w') or die("can't open file");

// Écriture du texte
$texteAEcrire = “Eddie Valliant\n";
fwrite($fichier, $ texteAEcrire);

// Écriture d’un autre texte


$texteAEcrire = “Roger Rabbit\n";
fwrite($fichier, $texteAEcrire);

// Fermeture du fichier
fclose($fichier );
Fonction file_get_contents()

⚫ Lit
un URL/fichier et le place dans
une variable
⚫ Exemple
<?php
$page = file_get_contents('http://www.notes-de-cours.com/');
echo $page;
?>
Les cookies

⚫ <?php
setcookie("NomToon", "Roger", time()+3600);
?>
<html>

⚫ Comme pour les sessions, il est très important de
placer le cookie avant tout autre chose et ne pas laisser
d'espace avant la balise <?php et le début du fichier.
⚫ Warning: Cannot modify header information - headers already
sent
Lecture d’un cookie

⚫ PHP place les cookies reçus dans un tableau


appelé $_COOKIE[]
⚫ Ex.: $_COOKIE["nom"]
⚫ Pour vérifier si une variable globale existe utiliser la
fonction isset ( )
⚫ Syntaxe :
int isset(mixed var)
⚫ Retourne true si la variable existe.
⚫ Exemple : if(isset($_COOKIE["usager"]))…
Envoie de courrier électronique

mail (string to, string subject, string message, string


additional_headers )
mail() poste le message message à destination de to. Les
destinataires multiples sont séparés par des virgules.
<?php
mail("jeanlouis.martineau@free.fr", "Mon Sujet",
"Ligne 1\nLigne 2\nLigne 3");
?>
Il est possible d'utiliser des techniques de
concaténations de chaînes pour construire des
messages complexes :
<?php
/* destinataire */
$recipient = "Mary <mary@u.college.edu>".", " ; //remarquez les
virgules
$recipient .= "ronabop@php.net";
/* sujet */
$subject = "Rappel des anniversaires du mois d'aout";
/* message */
$message = "Le mail suivant inclus une table au format ASCII\n";
$message .= "Jour \t\tMois \t\tAn\n";
$message .= "3 \t\tAou \t\t1970\n";
$message .= "17\t\tAou \t\t1973\n";
/* Vous pouvez ajouter une signature */
$message .= "--\r\n"; //Délimiteur de signature
$message .= "Rappel d'anniversaire : copyleft par public domain";
/* d'autres entêtes : errors, From, etc */
$headers = "From: Rappel d'anniversaire <birthday@php.net>\n";
$headers .= "Return-Path: <birthday@php.net>\n"; // chemin de retour
pour les erreurs
/* et hop, à la poste */
mail($recipient, $subject, $message, $headers);
?>
Module MYSQL
Base de donnée MYSQL
Comment utiliser une base de données MySQL et PHP en se
basant sur un exemple :
un annuaire de personnes composé d'un :
identifiant : chaîne de caractères de 10 caractères maximum, un identifiant est
unique
nom : chaîne de caractères de 100 caractères maximum
prenom : chaîne de caractères de 100 caractères maximum
age : entier
dateajout : une date

Schéma de la table :(en SQL) (a faire avec PhpMyAdmin)


create table annuaire (
identifiant varchar(10) not null,
nom varchar(100),
prenom varchar(100),
age int(3),
dateajout date,
primary key(identifiant)
connexion une base de données
Il faut vous connecter à la base de données.
Il y a 4 paramètres
l'adresse du serveur où la base de données (BDD) est hébergée, le nom de
l'utilisateur, le mot de passe et le nom de la base de données à utiliser.
$dbhost = "localhost"; //si l'ordinateur qui héberge la BDD est le même que le
serveur HTTP
$user = "nom";
$password = "motdepasse";
$usebdd = "nomdelabdd";
La fonction php vous permettant de vous connecter est mysql_connect
(toutes les fonctions php/mysql commencent par mysql).
$connexion = mysql_connect("$dbhost","$user","$password");
Pour vérifier si la connexion est valide :
if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}
Sélectionner une base de données

Ensuite, sélectionner la base sur laquelle vous voulez


travailler !
$db = mysql_select_db("$usebdd", $connexion);
Pour vérifier si la base de données est bien sélectionnée
if (!$db) {
echo "Impossible de sélectionner cette base de
données";
exit;
}
Insérer les données dans une table

Pour insérer des données en rajoutant une ligne dans la table


annuaire (sfim,airey,romuald,23)
Voici la commande SQL le permettant
insert into annuaire values ('sfim','airey','romuald',23,curdate());
Il suffit ensuite d'utiliser la commande mysql_query, ce qui donne :
$resultat_sql = mysql_query("insert into annuaire values
('sfim','airey','romuald',23,curdate())",$connexion);
nb: il ne faut pas mettre le ; courant en SQL
Supprimer une ligne dans une table

Pour supprimer une ligne ? la commande sql serait :


delete from annuaire where identifiant= 'dmarc';
De même on utilise la commande mysql_query
$resultat_sql = mysql_query("delete from annuaire where
identifiant= 'dmarc'",$connexion);
Récupérer les données dans une table

• comment récupère-t-on les données ? la table contient :


sfim,airey,romuald,23,2000-01-15
orawat,rawat,olivier,24,2000-01-15
dmarc,dupuis,marc,32,2000-01-15
adupont,dupont,antoine,22,2000-01-15
Par exemple, je veux sélectionner le nom, le prénom et l'âge des
personnes dans l'annuaire de moins de 30 ans et les ranger par âge
décroissant :
Récupérer les données dans une table

Voici la commande SQL :


select nom,prenom,age from annuaire where age < 30 order by age
desc;
De même que pour l'insertion et la suppression j'utilise la commande
mysql_query
$resultat_sql = mysql_query("select nom,prenom,age from annuaire where
age < 30 order by age desc ",$connexion);
Le résultat de cette commande est retourné dans $resultat_sql, il faut
l'imaginer comme une table qui serait ainsi :
ligne nom prenom age
0 dupont antoine 22
1 airey romuald 23
2 dupuis marc 24
La première chose à savoir est : Combien ai-je de lignes de réponse ?
$nombreligne = mysql_num_rows($resultat_sql);
Ici j'en aurai 3
Il ne reste plus qu'à prendre le résultat, si je veux la ligne 1, colonne nom je
dis
$nom = mysql_result($resultat_sql,1,"nom");
J'obtiens airey

Je veux afficher le résultat de la requête ! Rien de plus simple avec une


boucle while
$i = 0;
while ($i<$nombreligne)
{
$nom = mysql_result($resultat_sql,$i,"nom");
$prenom = mysql_result($resultat_sql,$i,"prenom");
$age = mysql_result($resultat_sql,$i,"age");
echo "$nom $prenom $age";
$i++;
}

Vous aimerez peut-être aussi