Upload
brahim-assilel
View
234
Download
0
Embed Size (px)
Citation preview
8/19/2019 UCAD Cours Php 1011
1/50
Langage PHPles fondamentaux
M. DIENG Abdoulaye
UCAD/FST/DMI/Li!"o
8/19/2019 UCAD Cours Php 1011
2/50
y
#b$etif %&n&"al
A'u&"i" les om(&tenes
n&essai"es (ou" d&)elo((e" dessites *eb dynami'ues
8/19/2019 UCAD Cours Php 1011
3/50
#b$etifs o(&"ationnels
Sto+e" et utilise" des donn&es , l-aide des)a"iables et des o(&"ateu"s
Mani(ule" des tableaux et des anes de
a"at0"es D&fini" et utilise" des fontions Cont"1le" le flux d-ex&ution des
inst"utions
T"aite" des fo"mulai"es et des fiie"su(load&s G&"e" le tem(s G&"e" des sessions Inte"fae" !2! a)e MyS3L
8/19/2019 UCAD Cours Php 1011
4/50
Le Sommai"e
4. 3u5est e 'ue !2!67. 2isto"i'ue de !2!6
8. !"ini(e defontionnement9. Exem(le int"odutif :. Les ty(es de base
;. Les onstantes. Les fontions
4?.Les st"utu"es deont"1le44.Le t"ansfe"t de
donn&es47.La %estion du tem(s48.La %estion des
sessions49.!2! @ MyS3L
8/19/2019 UCAD Cours Php 1011
5/50
3u5este 'ue !2!6
!2! est un lan%a%e de s"i(t ex&ut& du 1t& se")eu" etutilis& essentiellement (ou" "&e" des (a%es *ebdynami'ues.
A la diff&"ene des (a%es stati'uesB les (a%es dynami'uesdoi)ent s5ada(te" besoin de l5eu"eB a0s , des basesde donn&esB "&(onse (e"sonnalis&eB t"aitement de
fo"mulai"eB et. Les ("ini(aux onu""ents de !2! sont AS! et S!B maisles atouts ma$eu"s de !2! sont – %"atuit& et dis(onibilit& du ode sou"e– "iesse fontionnelle–
dis(onibilit& su" le *eb de nomb"eux s"i(ts– failit& d5inlu"e le !2! au sein d5une (a%e tml– sim(liit& d5inte"faHa%e a)e des bases de donn&es– int&%"ation au sein de nomb"eux se")eu"s eb– (e"fo"manes &le)&es
– sim(liit& d-a(("entissa%e et d-utilisation.
8/19/2019 UCAD Cours Php 1011
6/50
2isto"i'ue de !2!
D&but 4>>: Mise en li%ne (a" Jasmus Le"do"f de la ("emi0"e )e"sionBessentiellement en !e"lB (ou" note" les a0s , son CK. Il la ba(tisaainsi !e"sonal Sommai"e !a%e ToolsB (uis !e"sonal 2ome !a%e )4.?
t& 4>>: "&ation de !2!/FI )7B essentiellement en lan%a%e C etint&%"ant des st"utu"es de ont"1leB un (a+a%e (e"mettantd5inte"("&te" les fo"mulai"es FIB Fo"m Inte"("ete" ainsi 'u-un su((o"tde mS3L.
En 4>>=B des d&)elo((eu"s d-a((liations d-eomme"e ee)Su"as+i et Andi Gutmans "e$oi%nent Jasmus (ou" mett"e au (oint!2! 8 et le "eba(tise !2! 2y(e"text !"e("oesso" O
En 7??? (ubliation de !2! 9 a)e un nou)eau syst0me d5analyseu"syntaxi'ue (lus a)an& a((el& le end en%ine. Ce moteu" ("o0de en
deux &ta(es d5analyse (uis d5ex&ution En 7??9 (ubliation de !2! : 'ui utilise end En%ine 7 a)e un
nou)eau mod0le ob$et AtuellementB la de"ni0"e )e"sion stable est !2! :.8.: de(uis le
?;/?4/44
8/19/2019 UCAD Cours Php 1011
7/50
3
2
4
6
5
1
!"ini(e de fontionnement
lient *eb se")eu" *eb
4. "e'uPte de donn&es7. ati)ation du moteu" !2! moteu" !2!
8. onnexion au se")eu" QDD 9. ext"ation des donn&es :. fo"mata%e en 2TML ;. "&(onse se")eu" QDD
8/19/2019 UCAD Cours Php 1011
8/50
Exem(le int"odutifR6
/ la )a"iable titre sto+e le tit"edu s"i(t / tit"e 5 S"i(t int"odutif 56VR2TMLV R2EADV R6((
W affie le tit"e de la (a%e eo X RtitleV tit"e R/titleVX 6V R/2EADV RQ#DYV
// affie le ontenu de la (a%eeo 52elloB o"ld Z5
8/19/2019 UCAD Cours Php 1011
9/50
Ty(es salai"esnum&"i'ues et bool&en
!ye entier:• un entie" ou inte%e" "e("&sente un entie" "elatif 87 bits• %&n&"alement ent"e ^7 49< =98 ;9= et 7 49< =98 ;9<
!ye réel• Un "&el ou double "e("&sente un nomb"e , )i"%ule.• de 4B
8/19/2019 UCAD Cours Php 1011
10/50
Ty(es salai"esane de a"at0"es
une st"in% "e("&sente une suite de a"at0"es il y a 7:; a"at0"esB mais une st"in% est
illimit&e. une onstante st"in% est d&limit&e (a" des
%uillemets 5 ou X . Les %uillemets (e"mettent d-inte"("&te"d-&)entuels a"at0"es d-ation ou )a"iables
("&sents dans la ane 'u-ils d&limitent. l-antislas _ (e"met d-&a((e" ou de
d&s(&ialise" les a"at0"es 5B XB _B
#lication , o""i%e" echo 'je n'ai rien compris ';
8/19/2019 UCAD Cours Php 1011
11/50
Ty(es salai"es'uel'ues fontions
gettye%$var "etou"ne le ty(e de )a" settye%$var& "tye'désiré" "en)oie t"ue si le
ty(e de )a" est modifi&e intval%$var& do(bleval%$var& strval%$var:
(e"mettent de on)e"ti" is'string%$var& is'bool%$var& is'int%$var&
is'do(ble%$var& is'n(meric%$var&is'array%$var : (e"mettent de teste" un ty(e
isset%$var "en)oie false si var n-est (as
initialis&e ou )aut NULL emty%$var "en)oie true si var n-est (asinitialis&e ou )aut NULLB ?B ?.?B XX ou X?X.
(nset%$var d&t"uit la )a"iable )a"
8/19/2019 UCAD Cours Php 1011
12/50
Ty(es salai"es'uel'ues fontions su" les st"in%s
strlenst" "en)oie la lon%ueu" de st". strcmst"4B st"7 om(a"e al(ab&ti'uement
st"4 et st"7 trimst" su(("ime des es(aes de d&but et de fin de
ane.
addslashesst" d&s(&ialise les a"at0"es 5B XB _ strislashesst" su(("ime les antislass s(bstrst"BiB$ "etou"ne une sous ane de $str
de taille $* et d&butant , la (osition $i a""ay exlode st"in% se( B st"in% st"
"etou"ne un tableau de anesB aune d5elle &tantune sousane du (a"am0t"e string ext"aite enutilisant le s&(a"ateu" sep.
8/19/2019 UCAD Cours Php 1011
13/50
8/19/2019 UCAD Cours Php 1011
14/50
Tableaux("&sentation
Un tableau est un "e%"ou(ement de donn&esde ty(es distints ou nonB d&si%n& (a" unidentifiateu" uni'ue
Ca'ue donn&e est "e(&"&e (a" une l& ou
indie de ty(e entie" (ositif ou de ty(est"in%Un tableau est d&finie (a" la fontion array%
#lication8 , o""i%e"$tab = aray('toto, 200, !"#);%% $ass stoc&e n tabea associatif
$ass = array('nom' = *aye', 'prenom' = 'N+or');
%% as de dobe -otes a.ec echo
echo $tab/#;%%A a i+ne si.ante, afficher e pr1nom si.i d nom
8/19/2019 UCAD Cours Php 1011
15/50
Tableaux'uel'ues fontions
c(rrenttab"etou"ne la )aleu" ou"ante de $tab next%$tab et rev%$tab: mPme "1le 'ue c(rrent mais
next a)ane d-abo"d le (ointeu"B tandis 'ue rev le "euled-abo"d.
reset%$tab: d&(lae le (ointeu" de $tab au d&but et"etou"ne la ("emi0"e )aleu" de eluii.
in9array%$var&$tab )&"ifie si une )aleu" existe dans un
tableau co(nt%$tab "etou"ne le nomb"e d-&l&ment d-un tableau. array'search%$val&$tab "etou"ne la l& assoi&e , la
)aleu" )al. each%$tab "etou"ne le ou(le l&/)aleu" ou"ant extract%$tab "eHoit un tableau assoiatif $tab et "&e
des )a"iables dont les noms sont les l&s de $tabB et leu"affete les )aleu"s assoi&es. list%$var&$var7& assi%ne une liste de )a"iables en une
seule inst"ution. sort%$tab et rsort%$tab la ("emi0"e (e"met le t"i
al(anum&"i'ue des &l&ments de tabB et le seond faitl-in)e"se.
array'merge%$tab&$tab7& onat0ne les tableaux(ass&s en a"%ument
8/19/2019 UCAD Cours Php 1011
16/50
#(&"ateu"sa"itm&ti'ues/assi%nation/lo%i'ues
#(&"ateu"s arithméti(es B 9B =B /B moduloB in"&mentB 99
d&"&ment #(&"ateu"s d-assignation ? affetationB ? a$oute" ,B=?B /?B 9?B ? #(&"ateu"s logi(es #,@B AA etB #JB BB ouB C-4 ou exlusifB D non
A K K F F
Q K F F KAQ K F F F
A Q K K F K
A c#J Q F K F K
Z A F F K K
K"aie si toutes les o(&"andes sont)"ai
K"aie si au moins l-un des o(&"andesest )"ai
K"aie si un seul des o(&"andes est)"ai
8/19/2019 UCAD Cours Php 1011
17/50
#(&"ateu"som(a"aison/onat&nation/te"nai"e
#(&"ateu"s de comaraison ?? &%alit&B
8/19/2019 UCAD Cours Php 1011
18/50
Fontions("&sentation
Les fontions (e"mettent de d&ou(e" un ("o%"amme(ou" le "end"e (lus lisible et (lus faile , d&bo%ue" ainsi'ue de "&utilise" du ode 'ui "e)ient sou)ent.
Une fontion n-est ex&ut&e 'ue lo"s'u-elle est a((el&e. Il est fo"tement "eommand& de d&fini" une fontion
a)ant son a((el.5yntaxe de la dé+inition d’(ne +onction:
+(nction nomDeLaFontion a"%\4B a"%\7B [ g odeDeLaFontion h
ret(rn (e"met , une fontion de "en)oye" une )aleu"
8/19/2019 UCAD Cours Php 1011
19/50
Fontions)isibilit& des )a"iables
Une )a"iable loale n-est aessible 'u-au sein de lafontion 'ui la ontient. Une )a"iable %lobale est d&la"&e , l5ext&"ieu" de tout
blo d5inst"utions et est automati'uement aessiblede (a"tout dans le ode sauf , l-int&"ieu" des fontions.
Une fontion a0de , une )a"iable %lobale , l-aide dumotl& global
#liF , "etifie" (ou" affie" les )aleu"s affiables O $a = 2; $b = ;
fnction affiche;
echo (3a = $a , b = $b et c= $c3);
?
affiche
8/19/2019 UCAD Cours Php 1011
20/50
Fontions(assa%e (a" "&f&"ene
La )aleu" d-un a"%ument effetif n-est effeti)ementan%&e 'ue s-il est (ass& (a" "&f&"ene ou ad"esse #lication G , teste" fnction modifier( $ar+ment@forme )
echo '5bra.ant modification on a8 '"$ar+ment@forme;
$ar+ment@forme = $ar+ment@forme"3 est modifi13;
echo '5brfin modification on a8 '"$ar+ment@forme;
?
$.ariabe = 3 :ar+ment effectif3;
echo 5p 5ba.ant passa+e par .aer, on a8 5%b'"$.ariabe;
modifier($.ariabe); %% passa+e par .aer
echo ' 5br5baprBs passa+e par .aer, on a8 5%b'"$.ariabe;
echo ' 5p5ba.ant passa+e par adresse, on a8 5%b'"$.ariabe;
modifier(C$.ariabe); %% passa+e par r1f1rence poncte
echo ' 5br5baprBs passa+e par adresse, on a8 5%b'"$.ariabe;
8/19/2019 UCAD Cours Php 1011
21/50
St"utu"es de ont"1leonditionnelles
Elles (e"mettent d5ex&ute" un t"aitement enfontion d-une ou de (lusieu"s onditions. if (condition) traitement? if (condition_1)traitement _1?ese (condition_2) traitement _2?
if (condition_1) traitement _1?eseif (condition_2) traitement _2? D %% suite de elseif ese traitement _n?
sitch(expression)
case constante_1 8 traitement _1 ? brea&; case constante_2 8 traitement _2 ? brea&;
D %% suite de case
defat 8 traitement par d1fat?
?
8/19/2019 UCAD Cours Php 1011
22/50
St"utu"es de ont"1leit&"ati)es
Elles (e"mettent la "&(&tition d-un t"aitement en fontion d-uneondition.
while(condition) { traitement }
La ondition est test&e a)ant la ("emi0"e ex&ution du t"aitement.Initialise" la )a"iable 'ui subit la ondition (ou" le ("emie" (assa%eFai"e &)olue" la )a"iable 'ui subit la ondition , l-int&"ieu" de la
boule do { traitement } while(condition); Le t"aitement est ex&ut& au moins une fois
Fai"e &)olue" la )a"iable 'ui subit la ondition , l-int&"ieu" de laboule
for (exp1 ; condition ; exp2 ) { traitement }
Le t"aitement est "&(&t& un nomb"e onnu de fois
Parco(rir (n tablea( foreach ($tableau as $valeur) {traitement }
foreach ($tableau as $cle => $val) {traitement }
8/19/2019 UCAD Cours Php 1011
23/50
St"utu"es de ont"1leaut"es st"utu"es
brea: (e"met de 'uitte" une st"utu"e it&"ati)e contin(e (e"met de saute" les inst"utions de l5it&"ation
ou"ante afin de (asse" di"etement , l5it&"ation sui)ante exit% : te"mine l5ex&ution du s"i(t ou"ant die"messa%e" te"mine l-ex&ution du s"i(t ou"ant en
affiant la "aison le messa%e s(&ifi&. incl(de%"chemin/du/fichier " : inlut le fiie" s(&ifi& ou
bien ("oduit une ale"te*a"nin% incl(de'once%"chemin/du/fichier " )a"iante de inlude
'ui inlus une seule fois le fiie" s(&ifi&B &)itant de efait les "ed&finitions de )a"iables ou de fontionsB%&n&"at"ies d5ale"tes.
re(ire%"chemin/du/fichier " inlut le fiie" s(&ifi& oubien ("oduit une e""eu" fatale. A utilise" si le fiie" ,inlu"e est indis(ensable.
re(ire'once%"chemin/du/fichier " )a"iante de "e'ui"e
'ui inlus une seule fois le fiie" s(&ifi&.
8/19/2019 UCAD Cours Php 1011
24/50
St"utu"es de ont"1lea((liation su" fo"ea
A((liation
8/19/2019 UCAD Cours Php 1011
25/50
St"utu"es de ont"1lea((liation su" l-inlusion de fiie"
A((liation =4. "i"e es deux s"i(ts dans le mPme dossie" (uis ex&ute" le
seond7. Dans le 7ndB fai"e une e""eu" su" le emin du fiie" inlus et
ex&ute"8. Dans le 7ndB an%e" include (a" require et "efai"e les
'uestions ("&&dentes
contenu.php 56php $etat = 'rempie' 6
tasse.php
56php $etat ='.ide'; echo 3Fa tasse est $etat3; incde ('conten"php') ; echo 35br %Fa tasse est $etat3; 6
8/19/2019 UCAD Cours Php 1011
26/50
T"ansfe"t de donn&esm&tode de t"ansmission
L-UJL (e"met le t"ansfe"t de donn&es d-une (a%e , une aut"e ommeB su" etexem(le: Ra "efX(a%e7.((Etotal?IIIIXV Alle" , la (a%e 7 en t"ansmettant le total R/aV La (a%e7 a0de , la )a"iable t"ansmise (a" le biais du tableau su(e" %lobal $'J0!K %ex eo \GET5total5 // affie 4???? J0! m&tode de t"ansmission (a" d&faut des fo"mulai"esB t"ansmet les
donn&es (a" le biais des UJL UJL\s"i(t\destinatai"e6nomCam(4)aleu"4nomCam(7)aleu"7[ Le s"i(t destinatai"e a0de aux donn&es t"ansmises (a" le biais du tableau
su(e" %lobal $'J0!. !lus ("&is&ment (a" \GET5nomCam(5 P-5! t"ansmet )ia le o"(s d-une "e'uPte 2TT!. Le s"i(t destinatai"e a0de
aux )a"iables t"ansmises (a" le biais du tableau su(e" %lobal $'P-5!. !lus("&is&ment (a" \!#ST5nomCam(5
, !#ST est utilis&e (ou" $oind"e un fiie" mais le s"i(t destinatai"e a0deaux info"mations nomB ty(eB tailleB [ su" le fiie" $oint (a" le biais du tableausu(e" %lobal $'12L05.
8/19/2019 UCAD Cours Php 1011
27/50
T"ansfe"t de donn&es"a((el su" les fo"mulai"es ("&sentation
Les fo"mulai"es (e"mettent d-inte"a%i" a)e l5inte"naute. !a"mi leu"s utilisations ou"antes on (eut note"
"&u(&"e" des info"mations su" l5utilisateu" ("o&de" , des autentifiations (e"mett"e , l5utilisateu" de ont"ibue" , un site o(&"e" des "ee"es ou s&letions su" le site
L5inte"naute ent"e les donn&es en "em(lissant des am(stexte une ou sieu"s li%nesB en oant une ou sieu"sases ou en s&letionnant un ou des &l&ments dans uneliste.
Ensuite l5inte"naute soumet les donn&es en li'uant su" unbouton de soumission.
La soumission en)oie les donn&es %&n&"alement , un s"i(t1t& se")eu" sous fo"me de (ai"es nom/)aleu"B 5est,di"e unensemble de donn&es "e("&sent&es (a" le nom de l5&l&ment defo"mulai"eB le a"at0"e XXB (uis la )aleu" assoi&e.
8/19/2019 UCAD Cours Php 1011
28/50
T"ansfe"t de donn&es"a((el su" les fo"mulai"es &l&ment form
form d&limite un fo"mulai"e et ses ("ini(aux att"ibuts sont actionXad"esse\s"i(t\ibleX
s"i(t 1t& se")eu" 'ui t"aite"a les donn&es du fo"mulai"e. methodX%et(ostX•
s(&ifie la m&tode 2TT! em(loy&e (ou" en)oye" lesdonn&es du fo"mulai"e , l5a%ent de t"aitement.• X%etXB )aleu" (a" d&fautB annexe les donn&es du fo"mulai"e ,
l5UJL du s"i(t ibleex scritKhEnomham?vale(rAnomham7?vale(r7A KKK
• X(ostX est la )aleu" 'ui ino"(o"e les donn&es du fo"mulai"edans la "e'uPte 2TT!.
enctypeXmulti(a"t/fo"mdataXsi un fiie" doit Pt"e $oint au fo"mulai"e
T f t d d &
8/19/2019 UCAD Cours Php 1011
29/50
T"ansfe"t de donn&es"a((el su" les fo"mulai"es &l&ment input
input, enfant de formB d&finit une jone de saisieB une ase , oe"Bun boutonB et. Ses ("ini(aux att"ibuts sont
ty(e Xtext |password |checkbox |radio |submit |reset |hidden |button |file 'ui ("&ise le ty(e de am(.
name obi%atoi"e a" il (e"mett"a au s"i(t de onnat"e le am(assoi& , la (ai"e nom/)aleu"B 5est,di"e 'ue le nom du am(se"a sui)i du a"at0"e XX (uis de la )aleu" ent"&e (a"l5utilisateu"B ou dans le as ont"ai"e de la )aleu" (a" d&faut"e(&"& (a" l5att"ibut value.
)alue )aleu" de la donn&e t"ansmiseobli%atoi"e lo"s'ue typek Xtext|password|file
e+edXe+edX (ou" ("&seletionne" un bouton "adio
8/19/2019 UCAD Cours Php 1011
30/50
T"ansfe"t de donn&es"a((el su" les fo"mulai"es &l&ment select
selet d&limite une liste d&"oulante ou non– nameXnom\t"ansmisX– sijeXnX n o(tions )isibles d-une liste non d&"oulante– multi(le Xmulti(leX (e"met le oix multi(le dans une liste
non d&"oulante. Dans e asB name Xnom\t"ansmisM NX
o(tion enfant de seletB d&limite un oix dans une liste– )alue )aleu" t"ansmise si l-o(tion d&limit&e est oisie– seleted XseletedX (ou" ("&s&letionne" une o(tion
8/19/2019 UCAD Cours Php 1011
31/50
T"ansfe"t de donn&es"a((el su" les fo"mulai"es &l&ment textarea"
texta"ea d&limite une jone de saisie multili%nes– name nom t"ansmis– "osXn X nomb"e de li%nes )isibles– olsXn X nomb"e de a"at0"es )isibles (a" li%ne
8/19/2019 UCAD Cours Php 1011
32/50
T"ansfe"t de donn&es"a((el su" fo"mulai"e &l&ments d-aessibilit&
label (e"met dassoie" un texte li'uable O , un&l&ment de fo"mulai"e. Cette "elation ent"e le texted&limit& (a" label et l-&l&ment (eut se fai"e enliant l5att"ibut for du label , l5att"ibut id de l-&l&ment.
fieldset o"%anise un fo"mulai"e en (lusieu"s sous(a"ties ou t0mes
le%end enfant de fieldsetB (e"met de donne" untit"e , aun des t0mes. Cet &l&ment d&limite le
tit"e de la sous(a"tie
T f t d d &
8/19/2019 UCAD Cours Php 1011
33/50
T"ansfe"t de donn&es"a((el su" fo"mulai"e application #
T f d d &
8/19/2019 UCAD Cours Php 1011
34/50
T"ansfe"t de donn&esa((liation
#lication I: onstr(ire les +orm(laires so(rces et
tester script_1.php t"aitement d-une donn&e salai"eif ( (strcmp($_POST[lo!i"#, toto) == 0) CC
(strcmp($_POST[d%#, secret) == 0))
echo Gien.en "$@H4I/o+in; ese echo AJJE4 KNIELMKI;
script_2.php t"aitement de (lusieu"s donn&es )enant d-unmPme &l&ment de fo"mulai"e
echo
8/19/2019 UCAD Cours Php 1011
35/50
Gestion du tem(stime/date
int time )oid"etou"ne le timestam( de l5eu"e ou"ante ,d le nomb"ede seondes &oul&es de(uis le 4e" $an)ie" 4>
8/19/2019 UCAD Cours Php 1011
36/50
Gestion du tem(s%etdate
a""ay getdate% timestamp"etou"ne un tableau assoiatif ontenant les info"mationsde date et d5eu"e du timestam( timestamp lo"s'u5il estfou"niB sinonB le timestam( de la date/eu"e ou"ante.
clés : seondsB minutesB ou"sB
mday 4 , 84B day ? (ou" Dim , ; (ou" SamByday ? , 8;:B ee+day Sunday , Satu"dayBmon 4 , 47B mont anua"y , Deembe" B
yea" xxxx et ? timestam(.
#lication 7 Utilise" %etdate (ou" affie" l-eu"e ou"ante sous lefo"mat xxyymins
8/19/2019 UCAD Cours Php 1011
37/50
Gestion du tem(se+date/m+time
bool checdate int mois B int $ou" B int annee )&"ifie la )alidit& d5une date fo"m&e (a" les a"%uments.Le mois doit Pt"e om("is ent"e 4 et 47 le $ou" doit Pt"e un $ou" auto"is& (a"le mois donn& les ann&es bissextiles sont ("ises en om(tes l-ann&e estom("ise ent"e 4 et 87
8/19/2019 UCAD Cours Php 1011
38/50
Gestion des sessions("&sentation
La %estion des sessions (e"met d5en"e%ist"e" 1t& se")eu"
des info"mations su" un inte"naute afin de les "&utilise" toutau lon% de la )isite de e de"nie".Les )a"iables sto+ant es info"mations doi)ent Pt"e
ex(liitement en"e%ist"&es dans le tableau su(e" %lobal\SESSI#N.
Ce 'ui (e"met ainsi de sui)"e un inte"naute de (a%e en(a%eB de sau)e%a"de" un addieB de s&u"ise" un siteB et. Tout )isiteu" se )oit assi%ne" un Xidentifiant de sessionX
(e"mettant de "et"ou)e" des info"mations su" lui.Cet identifiant est sto+& dans un oo+ie ej le lient ou
("o(a%& dans l5UJL des (a%es )isit&es.
Une session doit obli%atoi"ement d&ma""e" a)ant l-en)oi detoute info"mation ej le lient.
8/19/2019 UCAD Cours Php 1011
39/50
Gestion des sessionsexem(le
Sto+a%e d-une info"mation dans une )a"iable
total 8:??? // Montant d-une ommande (a" exem(le C"&ation d-une session session'start% // #bli%atoi"e aussi (ou" ("olon%e" une
session En"e%ist"ement de la )a"iable total- dans la session
$'50552-,MQtotal’N ? $total Affia%e de l-info"mation dans une aut"e (a%e (a" exem(le eo $'50552-,MQtotal’N; Test de l-en"e%ist"ement de la )a"iable total- dans la session i+ % isset% %$'50552-,MQtotalRN Su(("ession de la )a"iable de session assoi&e , total-
(nset%$'50552-,MQtotalRN; Dest"ution de toutes les )a"iables de session $'50552-, ? array%; // Tableau )ide Dest"ution de la session session'destroy%;
8/19/2019 UCAD Cours Php 1011
40/50
!2! @ MyS3L("&sentation de MyS3L
Le SGQDJ Syst0me de Gestion de Qases de donn&esJelationnelles o(en sou"e le (lus utilis& su" le *eb.
Lo%iiel (e"mettant de "&e" des bases de donn&esB de lesex(loite" en y effetuant notamment des "ee"es desmodifiations ou des t"is et de ont"1le" l-a0s aux
donn&es. Ses ("ini(aux onu""ents sont !ost%"eS3LB Mi"osoft S3L
Se")e"B DQ7 et #"ale mais ses atouts ma$eu"s sont (e"fo"manes &le)&es ot "&duit sim(liit& de onfi%u"ation et d-a(("entissa%e (o"tabilit& aessibilit& du ode sou"e dis(onibilit& du su((o"t .mys'l.om
8/19/2019 UCAD Cours Php 1011
41/50
!2! @ MyS3Ld"oits d-a0s aux donn&es
Syntaxe S3L (ou" donne" des ("i)il0%es aux s"i(ts !2!GJANT d"oit4 liste\olonnes B d"oit7 liste\olonnes ...
#N gnom\de\table . nom\base.h T# nom\utilisateu"4 IDENTIFIED QY 5(asso"d5 B nom\utilisateu"7 IDENTIFIED QY 5(asso"d5 ...
*IT2 GJANT #!TI#N Les d"oits su" une table sont SELECT B INSEJT B U!DATE B DELETE B CJEATE B
DJ#! B GJANT #!TI#N B INDEc et ALTEJ . Les d"oits su" une olonne sont SELECT B INSEJT et U!DATE. Si une base est s&letionn&eB #N donne des d"oits su" elle. Si auune base n-est s&letionn&eB #N affete les d"oits au ni)eau du
se")eu". nom\utilisateu" est %&n&"alement sous la fo"me 5use"55ost5 La lause *IT2 GJANT #!TI#NB est utilis&e (ou" auto"ise" la t"ansmission des
d"oits.
8/19/2019 UCAD Cours Php 1011
42/50
!2! @ MyS3L&ta(es de la ommuniation
!ou" 'ue !2! t"a)aille a)e MyS3LB il faut Konnexion a( serve(r
Autentifiation C"&ation d5une "essou"e
K5élection d’(ne base de données7K6tilisation des tables .y5SL
Letu"e "itu"e
TK @éconnexion d( serve(r Faultati)e si la onnexion et non(e"sistante
NQ Toutes les fontions !2! (ou" %&"e" une baseou
une table MyS3L ommenent (a" mysl'
8/19/2019 UCAD Cours Php 1011
43/50
!2! @ MyS3Lonnexion au se")eu"
mysl'connect%se")e"Buse"B(asso"d (e"met de se onnete" au se")eu"
$server en tant 'u-utilisateu" $(ser a)e
le mot de (asse $assUord "etou"ne l-identifiant de onnexion sisu0sB FALSE sinon.
Il est "eommand& de ont"1le" la "&ussite
ou non de la onnexion au se")eu"L-identifiant de onnexion "etou"n& se"autilis& omme (a"am0t"e (a" toutes lesaut"es fontions.
8/19/2019 UCAD Cours Php 1011
44/50
!2! @ MyS3Ls&letion de la base de donn&es
mysl'select'db%baseBid
(e"met de s&letionne" la base $base
"etou"ne TJUE en as de su0sB sinon FALSE
id est l- identifiant de onnexion "etou"n&(a" mys'l\onnet
Il est "eommand& de ont"1le" la "&ussite ounon de la s&letion de la QD
8/19/2019 UCAD Cours Php 1011
45/50
!2! @ MyS3Lex&ution d-une "e'uPte
mysl'(ery%"e'uete\s'lBid"eHoit une ane de a"at0"es 'ui ontient
la "e'uPte &"ite en S3L
"etou"ne un identifiateu" de "&sultat (ou"les "e'uPtes selet"etou"ne TJUE (ou" les aut"es "e'uPtes"etou"ne FALSE en as d-ee de n-im(o"te
'uelle "e'uPteIl est "eommand& de ont"1le" la "&ussite
ou non de l-ex&ution de la "e'uPte
8/19/2019 UCAD Cours Php 1011
46/50
!2! @ MyS3Lex(loitation d-une selet )ia tableau sim(le
mysl'+etch'roU"esultat "eHoit un identifiateu" de "&sultat et "etou"ne une
li%ne de e "&sultat sous la fo"me d-un tableausim(le, indies entie"s. Les &l&ments du tableau
&tant les )aleu"s des att"ibuts de la li%ne. "etou"ne FALSE s-il n-y a (lus auune li%ne #n a0de aux )aleu"s de la li%ne (a" leu" indie dans
le tableau. Exem(le su" la table membresid%mbre, nom,
prenom" $iste=mys-@-ery(Qseect prenom, nom from membresR);
Shie($i+ne = ,s-l_fetch_row($iste) )
echo renom 8"$i+ne/0" Nom8 :"$i+ne/#"'5br %';
?
!2! M S3L
8/19/2019 UCAD Cours Php 1011
47/50
!2! @ MyS3Lex(loitation d-une selet )ia tableau assoiatif
mysl'+etch'assoc%"esultat "eHoit un identifiateu" de "&sultat et "etou"ne untableau assoiatif. Les l&s &tant les noms des att"ibutsde la lause SELECT et leu"s )aleu"s assoi&es &tantleu"s )aleu"s "es(eti)es dans la QDD.
"etou"ne FALSE s-il n-y a (lus auune li%ne.Exem(le su" la table membresid%mbre, nom, prenom" $re-ete=Qseect nom, prenom from membresR;
$iste=mys-@-ery($re-ete);
Shie($i+ne =,s-l_fetch_assoc($iste))
echo renom 8"$i+ne/prenom:" Nom8 :"$i+ne/nom:"'5br %';
?
!2! @ MyS3L
8/19/2019 UCAD Cours Php 1011
48/50
!2! @ MyS3Lex(loitation d-une selet )ia tableau sim(le et/ou
assoiatif
mysl'+etch'array%"esultatB ty(e\tableau\"etou"n&
$type@tabea@retorn1 (eut ("end"e les)aleu"s • MYS3L\ASS#C • MYS3L\NUM
• MYS3L\Q#T2 )aleu" (a" d&faut.
8/19/2019 UCAD Cours Php 1011
49/50
!2! @ MyS3Laut"es fontions
mysl'error% "etou"ne le texte assoi& , l5e""eu" %&n&"&e lo"s de la de"ni0"eo(&"ation , utilise" a)e die%.
mysl'+ree'res(lt"esultat
LibVre la m&moi"e assoi&e , l5identifiant de "&sultat
mysl'insert'id%id"etou"ne le de"nie" identifiant %&n&"& (a" un am(s de ty(eAUT#\INCJEMENT .
mysl'n(m'roUs%id"etou"ne le nomb"e de li%nes d5un "&sultat d-une SELECT.
8/19/2019 UCAD Cours Php 1011
50/50
!2! @ MyS3Laut"es fontions suite et fin
mysl'real'escae'stringaine\a\ea((e"Bida$oute un slas , tout a"at0"e s(&ial de la ane , &a((e".Cette fontion doit tou$ou"s a)e 'uel'ues exe(tions Pt"e
utilis&e (ou" ("ot&%e" les donn&es , ins&"e" dans la QDD.
mysl'a++ected'roUs%id"etou"ne le nomb"e de li%nes modifi&es (a" la de"ni0"e "e'uPteINSEJTB U!DATE ou DELETE.
mysl'closeidfe"me la onnexion identifi&e (a" id ou la onnexion en ou"s