Apprendre le language php. niveau débutant

abdeprojet 0 views 17 slides Oct 06, 2025
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

exercice pour apprendre le language php


Slide Content

PHP
Rappel/Révisions
1.Utiliserduphpdansunscript
AfindepouvoirutiliserducodePHPdansunscript,ilfautledéclarerdansnotredocument.
Onutiliserapourcelalesbalises<?php?>afinquecelui-cisoitbienreconnuentantque
codePHP.
Exemple:
<!DOCTYMEhtml>
<html>
<head>
<title>PHP</title>
<metacharset=”utf-8”>
</head>
<body>
<h1>Titre</h1>
<?php
//CodePHP
?>
</body>
</html>
LecodePHPnes'exécutejamaissurlamachineduclient,ellen’arrivemêmejamaisjusqu’à
lui.LeserveurdétectelaprésencedecodePHPàexécuteretprocèdeautraitement.
Attention,silefichierneportepasuneextensionexécutable(.php,.php5,…),lecodene
serapastraitéetilparviendradanscecasjusqu’auclient.
DèslorsquevousutilisezdesbalisesPHPdansvotrecode,ilfaudradoncmettrel’extension
approprié.
1

Al’intérieurd’unscript,ilestpossiblededemanderaumoteurdechargerunautrescript
php,nousutilisonslesfonctionssuivantes:
-include
-include_once
-require
-require_once
Laprincipaledifférenceentreincludeetrequire,c’estlagravitéqueporteraPHPàl’absence
decelui-ci.Pouruninclude,unavertissement,etpourunrequireunfatalerror.
Exemple:
<?php
include(“header.php”);
2.Commentçamarche?
VousêteshabituéaudocumentHTMLquisontdirectementexécutésparvotrenavigateur.
PHPrequiertl’utilisationd’unserveurquigéreracela.Lepetitschémaci-dessousillustreen
partielefonctionnementd’unecommunicationavecunserveurpourobtenirunepageweb.
2

a)RésolutionDNS
Larésolutiondnssefaitdanslesensinversedunomdedomaine,
Parexemple:www.education.gouv.fr
-Oncommenceparrésoudrele.frendemandantauxserveursDNSracines(maître
d’internet)quinoussignifieraquele.frestgéréparl’afnicetnousfournirales
serveursDNSagréés.
-OndemandedoncauserveurDNSdel’afnicàquiappartientlenomdedomaine
eduction.Ilnousfourniral’adressedesserveursdnsquigèrentcedomaine
-OndemandeenfinàcesserveursDNSl’adresseiputilisépourlewww.
b)Traitementd’unerequêtedepage
Unefoisqueleclientdisposedesinformationsrequisespoureffectuerlarequête,elleest
envoyéauserveurwebquigèrel’adressequel’onveutatteindre.Unserveurweb,apache
parexemple,varécupérercetterequête,latraiteretfaireexécuterlefichier.phppar
l'interpréteurPHP.
c)Envoid’unrésultatHTMLauclient
L'interpréteurs’occupedelireetd'exécuterlecodePHP,ilrenvoielerésultat(unepage
HTMLengénéral)auclientquipourradoncl’affichersurlenavigateur.
3.LesVariables
Lesvariablesnesontpastypés,onneprécisepascequel’onveutmettreàl’intérieur.
L’utilisationdecelle-cisefaitavecleprefixe$
Exemple:
$planete=“Jupiter”;
$age=4503000000;
echo$age;
L’utilisationduechopermetl’affichagedecelle-ci.Vouspouvezutiliserlesguillemetspour
afficherdutexte:
echo“Laplanète$planeteestagéed’environ$agemilliardd’années”;
echo‘Laplanète’.$planete.’estagéed\’environ‘.$age.’milliardd’années’;
3

Différentstypesquelesvariablesphpvontpouvoirstocker(listenon-exhaustive):
-Entier
-Float
-Texte
-Booléen
-Tableau(Array)
Différentesopérationsréalisablessurlesvariables:
-+addition
--soustraction
-*multiplication
-/division
-%modulo
-**Puissance
Pourlesopérateursd’affectation:
-+=Additionnepuisaffecte
--=Soustraitpuisaffecte
-*=Multipliepuisaffecte
-%=Calculelemodulopuisaffecte
-++$xIncrémente$xpuisretournelavaleur
-$x++Retourne$xpuisincrémente
---$xDécrémente$xpuisretournelavaleur
-$x--Retourne$xpuisdécrémente
4.Conditionetcomparaison
PourutiliserlesconditionsenPHPlesopérateurssont:
-if(TestsimpleSi)
-if..else
-if..elseif..else
-switch..case
-==Estégalà
-===Estégaletdemêmetype
-!=estDifférent
-!==estDifférentenvaleurouentype
->eststrictementsupérieur
->=estsupérieurouégal
-<eststrictementinférieur
-<=estinférieurouégal
4

Exemple:
$x=rand(10);
if($x<5){
echo“$xestinférieurà5”;
}elseif($x===”0”){
echo“Nepeutpasarrivercar$xseraunnombre”;
}else{
echo“$xestsupérieurouégaleà5”;
}
Pourréaliserlesconditions,ilexistelesopérateurslogiquessuivants:
-AND(ou&&)PermetderéaliserleET
-OR(ou||)PermetdefaireunOU
-XORPermetdefaireunOUExclusif(Renvoivraisiseulementunedesdeux
conditionsestvrai)
-!Pourinverserlerésultatlogiqued’untest.ex:if(!$x)
N’oubliezpasquevouspouvezimbriquerdestests:
if($test1)
if($test2){
echo“Test1etTest2sontvrai”);
}else{
echo“Test1estvraiettest2estfaux”);
}
else
echo“Test1estfaux”
Engénéralpourdesquestionsdelisibilitéetdestructuration,ilestrecommandédenepas
dépasser3imbricationsdeif.Sivousdevezenmettre4engénéralc’estqu’ilexisteune
autresolutionplus“propre”.
Ilexisteaussilapossibilitéd’utiliserunopérateurternairepoursimplifierl’écritureet
l’affectationsuiteàuntest:
toCheck=(a>b?true:false);
OnaffectelavaleurtrueàlavariabletoChecksiaestsupérieuràbsinononaffectefalse.
5

5.Boucles
LesopérationssurlesitérationsenPHPsefontaveclesopérateurssuivants:
-while(tantque)
-do…while(faire..tantque)
-for(pour)
-foreach(pourchaque)
leforeachestparticulier,ilestprévupourfonctionneravecdestableauxetprendtoutson
intérêtaveclestableauxassociatifsquel’onutiliseenPHP.
exemple:
<?php
$planetes[“P1”]=”Mercure”;
$planetes[“P2”]=”Vénus”;
foreach($planetesas$k=>$v){
echo“Laclédutableauest$ketsavaleurest$v<br>”;
}
6.Fonctions
IlestpossiblededéclarersimplementdesfonctionsenPHP:
exemple:
functionmaFonction(){
return“HelloWorld”;
}
Lesnomdefonctionsdoiventtoujourscommencerparunelettre(ouununderscore)mais
jamaisparunchiffre.Onpeut,parcontre,mettredeschiffresdanslenom.
Lesfonctionspeuventaccepterdesparamètresetpeuventretournerunevaleur.Sachez
aussiquevouspouvezrécupérerlaréférenced’unparamètrelorsdel’appeld’unefonction
plutôtquelavaleurduparamètrelui-même.Voyonsl’exemplesuivant:
<?php
functionpassageParReference($planete,&$distance){
$distance/=1.49598*10**8;
return"$planeteestà$distanceUAdusoleil";
}
$distance=57909176;
6

echo"$distanceKm<br>";
echopassageParReference("Mercure",$distance);
echo"<br>$distanceUA";
7.ConstanteetPortéedesvariables
Lesvariablespeuventêtredéclaréesn’importeoùdanslescript(début,milieu,fin,fonction,
…).Maisselonoùellessontdéclarées,ellespeuventounon“exister”ailleurs.
Nousvoyons3espacesdistincts:
-global
-local
-statique
Voicideuxexemples:
<?php
$varGlobal=10;
functionlocal(){
var_dump($varGlobal);
}
local();
LerésultatseraNULL
<?php
$varGlobal=10;
functionlocal(){
global$varGlobal;
var_dump($varGlobal);
}
local();
Lerésultatseraint(10).Grâceaumot-cléglobal,onapurapatriernotrevariableglobale
dansl’espacelocald’unefonction.
Pourcequiestdesconstantes,nouspouvonsutiliserdefine().
exemple:
<?php
define(“_JUP”,”Jupiter”);
7

echo_JUP;
functionmaConstante(){
echo_JUP;
}
Celafonctionnerasansproblème,lesconstantesétantvisiblesdanstoutlescript.
VoiciquelquesconstantesmagiquesPHP,ellesexistenttoutletempsetpartoutetsont
définiesparlemoteurphp.
__FILE__ Lechemincompletetlenomdufichier
exécuté
__DIR__ Nomdudossierdufichierexécuté
__LINE__ Numérodelaligneactuellementutilisée
danslefichier
__FUNCTION__ Nomdelafonctionencoursdetraitement
__CLASS__ Nomdelaclasseactuellementdéfinie
__METHOD__ Nomdelaméthodeencoursd’utilisation
__NAMESPACE__ Nomdel’espacedenomcourant
__TRAIT__ Lenomdutrait(incluantlenomdel’espace
denomdanslequelilaétédéclaré)
8.Lestableaux
EnPHP,les3principauxtypesdetableauquenouspouvonsmanipulersont:
-Tableauxindexés
0 1 2 3 4 5
MercureVenus Terre Mars JupiterSaturne
8

-Tableauxassociatif
“Mercure”“Venus”“Terre”“Mars”“Jupiter”“Saturne”
MercureVenus Terre Mars JupiterSaturne
-Tableauxmultidimensionnels(quipeuventêtreindexéouassociatif)
Pourleparcoursdetableauxassociatif,l’opérateurdeboucleforeachrestelemoyenleplus
simple.Cariln’estpaspossibledefaireunfor(i=0;i<sizeof(tableau);i++)carvousn’auriezpas
accèsàlacaseavecunindexnumérique.Ilexistedesopérateursdetraitementdetableau
quipermettentégalementdesedéplacerdansletableauàsaguisesansconnaîtrelaclef.
next,current,end,prev,reset:cesopérateursdéplacentetgèrentunpointeurdetableau.
Exemplededéclaration:
<?php
$planetes=array(“Jupiter”=>”Jupiter”,”Saturne”=>“Saturne”);
foreach($planeteas$key=>$value){
echo“maclé=$keyavecvaleur=$value<br>”;
}
Pourvousaideràvisualiserrapidementcequecontientuntableau,vouspouvezutiliserla
fonctionprint_r();quiprendenargumentvotretableau.
9.LesDates
Pourtravailleraveclesdates,onpartengénéraldutimestampUNIXquiestlenombrede
secondesécouléesentrele1erjanvier1970à00:00:00GMT.Ilesttraitédelamême
manièrequ’unnombre.
Utilisation:
<?php
echotime();
Pourgénéreruntimestampenphp,onpeututiliserlafonctionmktime.
exemple:
mktime($heure,$minute,$seconde,$jour,$mois,$annee);
9

PHPreconnaîtégalementcertainessyntaxededatepourlesconvertirentimestamp.(les
plusutilisésontlesformat“yyyy/mm/dd”
exemple
$timestamp=strtotime(‘2018/09/01’);
PHPpermetdeformaterdesdates,maisavantdeluidemander,ilesttrèsimportantd’avoir
définieendébutdecodequelquesparamètrelocaux:
-Fuseauhoraire:date_default_timezone_set
-Localisation:setlocal(LC_TIME,‘fr_FR’);
decettefaçonsiondemandeàPHPd’écriredesjoursdansunelanguelocale,ilpourrale
faire.
Exemplepourleformatagededate:
<?php
$timestamp=strtotime("2018/09/01");
echo"DATE=>".date("ldFY",$timestamp)."<br>";
echo"STRFTIME=>".strftime("%A%e%B%Y",$timestamp)."<br>";
setlocale(LC_TIME,"fr_FR");
echo"DATE=>".date("ldFY",$timestamp)."<br>";
echo"STRFTIME=>".strftime("%A%e%B%Y",$timestamp)."<br>";
/*
*Résultat:
DATE=>Saturday01September2018
STRFTIME=>Saturday1September2018
DATE=>Saturday01September2018
STRFTIME=>samedi1septembre2018
*
*/
LadocumentationdePHPsurlafonctiondatevouspermetdetrouvercequevoussouhaitez
commeformatage.
http://php.net/manual/fr/function.date.php
http://php.net/manual/fr/function.strftime.php
Siàl’avenirvousdevezvérifierlavaliditéd’unedatedanslecalendriergrégorien,lafonction
checkdateleferatrèsbien.
10

10.LesFlux(Fichiers)
Ilestparfoisutiledepouvoiraccéderetmodifierdesfichiers.Evidemment,cesontdes
fichierssetrouvantsurleserveuroùlecodePHPs'exécute.
Lapremièrechoseàfaireestd’ouvrirunfichier/delecréeraveclafonction
fopen($filename,$mode)
Avec$filenamelecheminverslefichierquevousvoulezouvriret$modedansquelmode
voussouhaitezyaccéder.
Mode Description
r Ouvreunfichierenlectureseule.Ilest
impossibledemodifierlefichier.
r+ Ouvreunfichierenlectureetenécriture.
a Ouvreunfichierenécritureseuleen
conservantlesdonnéesexistantes.Sile
fichiern’existepas,créeunfichier.
a+ Ouvreunfichierenlectureetenécritureen
conservantlesdonnéesexistantes.Sile
fichiern’existepas,créeunfichier.
w Ouvreunfichierenécritureseule.Sile
fichierexiste,lesinformationsexistantes
serontsupprimées.S’iln’existepas,créeun
fichier.
w+ Ouvreunfichierenlectureetenécriture.Si
lefichierexiste,lesinformationsexistantes
serontsupprimées.S’iln’existepas,créeun
fichier.
x Créeunnouveaufichieraccessibleen
écritureseulement.Retournefalseetune
erreursilefichierexistedéjà.
x+ Créeunnouveaufichieraccessibleen
lectureetenécriture.Retournefalseetune
erreursilefichierexistedéjà.
11

Pourlirelecontenud’unfichier,onutiliseramaintenantfreadquiprendraenargumentle
“filedescriptor”renvoyéparfopenetlenombred’Octetsquel’onveutlireaumaximum.(la
fonctionfilesize()vouspermettraaubesoindeconnaîtrelataillecomplèted’unfichier)
Pourécrireducontenudansunfichier,nousutiliseronsfwritequiprendraenparamètrele
“filedescriptor”etlachaînedecaractèresàécrire.
Unefoisnosopérationssurlefichierterminées,enlefermepourlelibéreravecfclose
Exemple
<?php
$fd=fopen("test.txt","w");
fwrite($fd,"HelloWorld!");
$contenu1=fread($fd,25);
fclose($fd);
$fd=fopen("test.txt","r");
$contenu2=fread($fd,25);
fclose($fd);
echo"Contenu1dufichier:".$contenu1."<br>";
echo"Contenu2dufichier:".$contenu2."<br>";
//résultats:
//Contenu1dufichier:
//Contenu2dufichier:HelloWorld!
Ilexistequelquesfonctionsutiles:
-fgets()pourlireunelignedetexte
-fgetc()pourlireuncaractère
-feof()poursavoirsionaatteintlafind’unfichier
-file_get_contents()pourliretoutunfichierenuneseulefois
-fseek()pourdéplacerlepointeurdefichieroùl’onsouhaite
-ftell()pourconnaîtrecetteposition
-rewind()pourremettrelepointeuraudébut.
-unlink()poursupprimerunfichier
-rename()pourlerenommer
12

11.VariablesSuperGlobales
Auchargementd’unepage,lemoteurPHPchargeégalementunesériedevariablesdites
superglobales,caronpeutyaccéderpartout(mêmedansunefonction).Cesvariablessont
destableauxquicontiennentducoupplusieursinformations:
-$_GLOBALS
L’utilisationdumot-cléglobalvuprécédemmentajoutelavariableàcetableaudedonnées
pourqu’ellesoitaccessibledepartout.
Exemple
$planete=”Jupiter”
functionquelPlanete(){
global$planete;
echo“Planète:“.$planete;
}
Équivautà
$planete=”Jupiter”
functionquelPlanete(){
echo“Planète:“.$GLOBALS[‘planete’];
}
-$_SERVER:http://php.net/manual/fr/reserved.variables.server.php
-$_REQUEST
Contientlesparamètrespostetgetsoumisparunformulaire
-$_GET
Contientlesparamètresgetsoumisparunformulaire
-$_POST
Contientlesparamètrespostsoumisparunformulaire
13

-$_FILES
Cettevariablepermetderécupérerdesdonnéesdefichiersquiontétéuploadésparle
clientviaunformulaire.
-$_ENV
Permetderécupérerdesvariablesd’environnement.C’estdesvariablesquipeuventêtre
définieparapacheoubienunfichierhtaccess
-$_COOKIE
Pourlirelescookieauquelvotresiteaaccès.
-$_SESSION
Permetderécupérerdesvariablesglobalesquevousaurezstockéesdanslasessiond’un
utilisateur.
12.LesCookies
Lescookiesontdesfichierspermettantdesauvegarderdesinformationsdirectementsurle
client.Ilssontliésàunnomdedomaineetpossèdentunedatedevalidité.C’estla
techniqueutiliséeparlessitespourse“souvenirdemoi”afinquevousrestiezconnecté
plusieursjoursdesuitesansavoiràvousidentifierànouveau.
Pourcréerlescookies,onutiliseralafonction
boolsetcookie(string$name[,string$value[,int$expire=0[,string$path[,string
$domain[,bool$secure=false[,bool$httponly=false]]]]]])
-$nameestlenomdevotrecookie.
-$valueestlavaleuràenregistreràl'intérieur
-$expireestletimestamp(date)auquellecookieseraexpiré
-$pathpermetdedéfinirl’arborescencedevotresiteàpartirdelaquellelecookie
seralisible,l’utilisationdu‘/’rendlecookieaccessiblepourtoutledomaine
-$domainestledomainepourlequellecookieestaccessible(google.compourtous
lessous-domaines)
-$securepermetd’interdirelatransmissionducookieàtraversuneconnexionnon
HTTPS
-$httponlypermetdelimiterl’accèsaucookieauprotocolehttp(inaccessiblevia
javascript).Celalimitel’utilisationdesfaillesXSS.
14

L’utilisationdusetcookieavecunevaleurvideetuntimestampdanslepassépermet
d’effacercelui-ci.
Exemple:
<?php
setcookie(“nom”,”toto”,time()+3600,”/”,”monsite.com”,true,true);
echo$_COOKIE[“nom”];
setcookie(“nom”,””,time()-3600,”/”,”monsite.com”,true,true);
echo$_COOKIE[“nom”];
13.LesSessions
Lessessionsvontnouspermettredesauvegarderetdetransmettredesinformations
relativesauxutilisateursdepageenpagesurnotresiteweb.Nousallonsenfermerces
informationsdansdes«variablesdesession».
Aladifférencedescookies,lesinformationsnevont,cettefois-ci,pasêtrestockéessur
l’ordinateurdenosvisiteurs.
Lessessionsnepermettentpasdeconserveruneinformationindéfiniment.Typiquement,
lesvariablesdesessionsvontdisparaîtrelorsqu’unutilisateurvafermersonnavigateur.
Legrandavantagedessessionsparrapportàdesvariables«normales»estqu’onvapouvoir
conserverdesinformationsdepageenpagegrâceauxsessions.
Parexemple,imaginonsquevotresitepossèdeunespaceclient.Vousvoudrezqueleclient,
unefoisidentifié,nesoitpas«oublié»àchaquefoisqu’ilchangedepage.
Pourrésoudreceproblème,nousallonsutiliserlessessionsquivonttransmettreles
informationsdeconnexionduclientdepageenpageetainsifaireensortequ’ilreste
connectétantqu’ilnefermepassonnavigateur.
Pourdémarrerunesessionenphp,onutiliseralafonctionsession_start().
L’utilisationdecettefonctiongénèreunecléuniquepourlanavigationdel’utilisateurqui
sertàlereconnaîtredepageenpage.
15

Pourenregistrerdesvariablesdesessions,ilsuffitd’utiliserlasuperglobale$_SESSION
commeuntableauassociatif.Parexemple
<?php
session_start();
$_SESSION[‘nom’]=“Titi”;
Etdelamêmefaçonqu’onlesdéclare,onpeutlesrécupérer.
Exemple:
<?php
session_start();
if(isset($_SESSION[‘nom’]))
echo“Rebonjour“.$_SESSION[‘nom’];
Sivoussouhaitezdétruireunesessionousupprimertoutessesvariables,vouspouvez
utiliserlesfonctions:
-session_unset();
-session_destroy();
Exercices
1.Lechiffrementdecésarconsisteàdécalerdexcaractèreschaquelettreen
considérantquechaquelettredel’alphabetreprésenteunnombredansl’ensemble
{1,2,3,4,5,6,..,24,25,26}quiseradécalerdexverslemêmeensemble.
Exemplesil’ondécalede2:
A→C
F→H
Y→A
Pourdéchiffrerlemessageilsuffitdedécalerdansl’autresensde2.
Ecrivezunefonctionquitesttouteslescombinaisonspourdéchiffrerlesmessages
suivantsetfournissezledécalagequiaétéappliqué.
ZVFXNGBAVPHAVIREFVGL
HIOMFUJJYFIHMGOUXXCV
GBHGRFYRFCYNAGRFBAGHAABEQ
16

2.Réaliserunepagequipermetàunutilisateurdesaisirunidentifiantetunmotde
passe.RécupérerlesdonnéesenvoyéesavecPHP,lesvérifieraveclesinformations
quevousvoulezpourautoriserlaconnexion.
Puisenregistrerdansunesessionquel'utilisateurs’estconnecté.Pourluiafficherun
messagedebienvenues’ilrevient.
($_SESSION,$_POST)
3.Surl’exerciceprécédent,ajouterunboutonquipermetàl’utilisateurdese
déconnecter.
(Vidagedesession)
4.Unefoisconnectée,permettreàl’utilisateurderemplirunformulaireavecles
champs
a.Nomdulivre
b.Auteur
c.Codeean13
d.Datedeparution
etunboutonajouter.Stockercesinformationsdansunfichieraveclenomde
l’utilisateurquiafaitl’ajoutetladateàlaquellel’ajoutaétéeffectué
(fopen,fwrite)
5.Faireensortequ’onnepuissepasajouter2xlemêmelivre(vousremonterreztous
leslivresdansuntableauphppourfairelarecherche).
(fread)
6.Récupérertousleslivresquiontétéajoutédepuismoinsde3jours(modifierala
mainvotrefichierpouraltérerlesdatesetavoirlapossibilitédetester.Commepour
laquestionprécédente,vouspouveztoutremonterdansuntableauetleparcourir
pourtrouverlesrésultat)
(DateTime)
7.Ajouterunformulairederecherchepourpermettreàl’utilisateurderechercherun
livreparnom,eanouauteur
(freadencore)
8.AjouterunCookieauPCdel’utilisateur,pourqu’ilpuissereveniretsereconnecter
mêmequandsasessionaexpiré.
($_COOKIE)
9.Faireensortedegérerdesfichiersd’index(auteur,ean,nom),cesfichiers
permettrontdefairelesrecherchesàl’intérieurpourrécupéreravecunaccèsdirect
lesinformationsdanslefichierdedonnées.
17
Tags