coarfa stefan
TRANSCRIPT
-
5/24/2018 Coarfa Stefan
1/33
1 Tehnologii.............................................................................................................................................................21.1 Alegerea tehnologiei pentru aplicaii web ....................................................................................................2
1.1.1 Active Server Pages (ASP).....................................................................................................................21.1.2 Java Server Pages ...................................................................................................................................31.1.3 PHP.........................................................................................................................................................1.1. Perl..........................................................................................................................................................!
1.1.! "#S$%...................................................................................................................................................!1.1.& 'olusion..............................................................................................................................................!1.2 *nstructiuni e instalare a unor tehnologii e e+voltare aplicaii web.........................................................,
1.2.1 Active Server Pages (ASP).....................................................................................................................,1.2.2 JSP -i servlei..........................................................................................................................................,
1.2.2.1 btinerea si instalarea /it0ului e e+voltare a servleturilor si JSP.................................................,1.2.2.2 *nstalare unui server capabil sa rule+e servleturi........................................................................... .
1.2.3 PHP.........................................................................................................................................................1.2. Perl........................................................................................................................................................111.2.! "#S$%.................................................................................................................................................11
1.3 e+voltare Aplicaii 4eb............................................................................................................................121.3.1 Active Server Pages (ASP)...................................................................................................................121.3.2 Servleii ................................................................................................................................................1
1.3.2.1 Structura e ba+a a servletului ......................................................................................................11.3.2.2 5n servlet si6plu care generea+a te7t .................................................................................. .......1!1.3.2.3 'o6pilarea si instalarea servletului ..............................................................................................1!1.3.2. 8ularea servletului.........................................................................................................................1&1.3.2.! Servlet care generea+a HT"% ................................................................................................ .....1,
1.3.3 PHP.......................................................................................................................................................1,1.3. Perl........................................................................................................................................................11.3.! "#S$%.................................................................................................................................................29
1.3.!.1 "#S$% :or %inu7..........................................................................................................................211.3.!.2 "#S$% :or 4inows....................................................................................................................2
2 "aga+in ;irtual..................................................................................................................................................2Arese 5tile..........................................................................................................................................................32
-
5/24/2018 Coarfa Stefan
2/33
1 Tehnologii
1.1Alegerea tehnologiei pentru aplicaii web
Atunci c seciuni interactive sau s=integr=6 ba+e e ate ?n site0ul web> ne con:runt=6 cu ur6=toarea proble6=@ care intretehnologiile isponibile pe pia= ar :i cea 6ai potrivit=
1.1.1 Active Server Pages (ASP)
Active Server Pages (ASP) este o e7tensie *SAP* a serverului e *nternet e la"icroso:t*nternet *n:or6ation Server (pentru 4inows BTC2999) sau Personal 4eb Server(pentru 4inows 7). Aceasta ?nsea6n= c= un anu6e tip e :i-iere (e obicei D.asp)> pentruorice cerere in partea unui client este 6ai ?ntii interpretat e catre asp.ll pe server re+ult
-
5/24/2018 Coarfa Stefan
3/33
Bu este o plat:or6a e e+voltare e aplicaii web co6pleta. Bu inclue serviciie tip TP> %AP sau HTTP. Bu rulea+= ec
-
5/24/2018 Coarfa Stefan
4/33
coninut poi s=0i oragni+e+i 6ai u-or 6unca in echipa @ e7perii tai in 4eb esignconstruiesc HT"%0ul> lasan loc pentru progra6atorii tai sa insere+e coninutulina6ic.
Server0Sie *nclues (SS*) . SS* este o tehnologie suportata pe o arie larga pentru
incluerea unor piese e7terioare e:inite intr0o pagina 4eb statica. JSP este 6ai bunapentru ca ?i per6ite sa :olose-ti servleturile in loc sa :olose-ti un progra6 separatpentru generarea coninutului ina6ic. Si> SS* este :olosit pentru inclueri si6ple econinut> nu pentru progra6e care :olosesc :or6ulare> :ac cone7iuni la ba+e e ate>etc.
JavaScript . JavaScript poate genera HT"% ina6ic. Kste o capabilitate :olositoare>ar se escurca oar cu situaii in care in:or6aia ina6ica este ba+ata pe 6eiulclientului. 'u e7cepia coo/ies> trans6iterea HTTP si in :or6ulare a atelor nu esteisponibila cu JavaScript. Si> eoarece rulea+= pe staia client> JavaScript nu poate
accesa resurse e pe server cu6 ar :i ba+e e ate> cataloage> preturi> etc. Static HT"% . Bo co66ent.
1.1.3 PHP
Kste o asa nu6ita sursa eschisa (open source)> reali+ata si per6anent ?6bun=t=it= eco6unitatea e+voltatorilor e aplicaii web> la :el ca si ba+a e ate cu care lucrea+a in 6o
pre:erenial ("#S$%). 5n nu6ar in ce in ce 6ai 6are e site0uri (inclusiv Slashot)utili+ea+= tehnologia php. 'a -i ase6=nare PHP0ul se co6porta la :el ca -i ASP0ul -i JSP0ul
-i anu6e@ un anu6e tip e :i-iere (e obicei D.php)> pentru orice cerere in partea unui clienteste 6ai ?nt :oru6uri> servere e publicitate s.a.
'o6unitate e e+voltatori php care cre-te e la o +i la alta este gata sa o:ere
oric o aplicaie construita pentru a integra"#S$% necesita schi6barea co6pleta a :iec=rei linii e script pentru
-
5/24/2018 Coarfa Stefan
5/33
?nlocuirea ba+ei e ate cu racle. Totu-i tane6ul PHPC"#S$% este e7tre6e r=sp scalabil> rapi si in general gratuit> cu caracteristici:oarte potrivite pentru 6ulte intre aplicatiile care :olosesc suportul e ba+e e ate pentru444.
"#S$% operea+a in ba+a unui 6oel clientCserver. rice 6asina care oreste sa
procese+e interogari asupra unei ba+e e ate "#S$% trebuie sa rule+e "#S$% server(6#sLl)> care este responsabil e tot tra:icul e tip inco6ingCoutgoing cu ba+a e ate. 'aorice alt server> m%s1ldasculta pe un port particular (339&) eventualele cereri e cone7iuneale unui client 0 orice aplicatie care tri6ite cereri catre o ba+a e ate via 6#sLl. Acestclient poate :i un si6plu script in Perl care (gratie 6oulului I*) poate tri6ite o cerere catreatabase prin inter6eiul serverului "#S$% sau chiar clientul co66an0line m%s1l.'lientul m%s1leste o inter:ata interactiva pentru tri6iterea e co6en+i catre server.
1.1.& 'olusion
'e este 'olusion plat:or6a co6pleta e e+voltare e aplicatii web@ li6ba e
-
5/24/2018 Coarfa Stefan
6/33
progra6are> server e aplicatii> 6eiu e e+voltare. Bu este o sursa eschisa> eci nu estegratuita. Stuiile e piata inica :aptul ca este cel 6ai bine vinut server e aplicatii web> inco6petitie cu "icroso:t Activeserver Pages (asp)> Sun Java Server Pages (sp)> Perl> Php.Trebuie sa tine6 cont insa ca 6aoritatea co6petitorilor sunt practic tehnologii gratuite.
Aceasta situatie :ace ca> e :apt> 'olusion sa intre in co6petitie cu cele 6ai puternice (siscu6pe) prouse in aceasta categorie@ racle Application Server> Apple 4ebbectUAvin in veere pretul 6ult 6ai 6ic cu care se vine 'olusion> nu este e 6irare ca acestase a:la in top. 'reatorii progra6ului (Allaire) aprecia+a ca peste 199.999 e e+voltatori inintreaga lu6e :olosesc acest progra6.
Calitati:
Simplitate@ Pentru 6aoritatea e+voltatorilor care stapinesc li6baul HT"%>
'olusion este usor e invatat> :iin un li6ba intuitv. Tagurile speci:ice
sunt Vc:setV si Vc:outputV. ;ariabilele se incarea+a cu se6nul VWV. %i6baule progra6are este '"% ('olusion "ar/up %a6guages) iar e7tensiile
paginilor sunt Vc:6V.
Putere@ 'iteva intre serviciile o:erite prin inter6eiul '"% sunt@
Per6ite constructia e pagini web interactive
:era acces la ba+e e ate> inclusiv proceuri e inregistrare sitran+actionare
*nclue protocoale e retea@ %AP> PP3> S"TP> HTTP si TP
Per6ite incluerea unor taguri speci:ice scrise in 'XX> Java sau elphi
Comunitate@ K7ista o 6are co6unitate e e+voltatori care utili+ea+a
'olusion> e7tre6 e activa in grupurile e iscutii si in carul sectiunii e:oru6 in site0ul Allaire.
Precautii:
8ulea+a pe plat:or6a 4inows BT. Serverele e web hosting pe plat:or6e5B*> e regula nu o:era suport pentru e+voltarea e aplicatii 'olusion.Pot e7ista proble6e e securitate in situatia in care serverul nu este binecon:igurat. *nainte e a cu6para un pachet e web hosting care inclue suport
pentru aplicatii 'olusion este inicat sa intrebati :urni+orul prospectat acaoptiunea Vavance securit#V este activa si aca scripturile pe care intentionatisa le utili+ati ar putea :i citite e altii prin inter6eiul tagului '*%K.
-
5/24/2018 Coarfa Stefan
7/33
1.2Instructiuni de instalare a unor tehnologii de dezvoltare aplicaii
web
1.2.1 Active Server Pages (ASP)
Active Server Pages (ASP) este instalat auto6at oata cu serverul *nternet*n:or6ation Server (**S) sau Personal 4eb Server (P4S). Auto6at :urni+orii e web hostingcare o:era pachete BT> o:era si suport pentru aplicatii ASP> :ara ta7e supli6entare(ease6enea e7e6ple sau help). Puteti gasi help re:eritor la ASP in 4inowsCHelpC**S.
Ku a6 instalat **S0ul e pe /it0ul 4*B4S BT SK8;K8 .9.
1.2.2 JSP -i servlei
2$/$/$2 ,btinerea si instalarea 3it*ului de dezvoltare a servleturilor si 4SP
Pri6ul pas este sa ownloaati un so:t care i6ple6entea+a Java Servlet 2.1 sau 2.2 sispeci:icatiile Java Server Pages 1.9 sau 1.1. Puteti lua o versiune gratuita e la Sun>cunoscuta sub nu6ele e JavaServer 4eb evelop6ent Yit (JS4Y)> [email protected].
Apoi> trebuie sa spuneti co6pilatorului avac une gaseste clasele pentru servleturi siJSP can co6pile+i un :isier servlet. *nstructiunile e instalare ale JS4Y e7plica asta> ar
in esenta este vorba espre speci:icarea caii spre servlet.ar si sp.ar (care vin oata cuJS4Y) in '%ASSPATH. aca nu ai 6ai avut e a :ace cu '%ASSPATH pana acu6> itispun ca este variabila care speci:ica une sa se uite Java upa clase. aca nu este speci:icata>Java se uita in irectorul curent si in bibliotecile stanar e siste6. aca o sete+i tu> :ii sigurca ai inclus si V.V> care insea6na irectorul curent. *ata un 6ic su6ar espre setarile necesare
pe cateva plat:or6e @
5ni7 (' Shell) setenv '%ASSPATH [email protected]@servletZirCsp.ar
Aauga V@['%ASSPATHV la s:irsitul liniei setenv aca '%ASSPATH este easetat si vrei sa 6ai aaugi> nu sa inlocuiesti. Atentie olosesti oua puncte ca sa
separi irectoarele> in co6paratie cu 4inows une :olosesti punct si virgula. 'a sa:aci setarea per6anenta> pune aceasta instructiune in :isierul .cshrc.
4inows !CCBT set '%ASSPATH\.OservletZirCservlet.arOservletZirCsp.ar
Aauga V@['%ASSPATHV la s:irsitul liniei setenv aca '%ASSPATH este easetat. 'a sa :aci setarea per6anenta> pune aceasta instructiune in :isierulautoe7cec.bat. *n 4inows BT 6ergi pe Start> selectea+a SettingsC'ontrolPanelCS#ste6CKnviron6ent si apoi intro variabila si valoarea ei. *n s:irsit> upa cu6vei veea in ur6atoarea sectiune> poate vei vrea sa pui servleturile in pachete
(pac/ages) pentru a evita con:lictul e nu6e cu alte servleturi pe care le scriu alte
-
5/24/2018 Coarfa Stefan
8/33
persoane pe acelasi server 4eb sau e aplicatii. *n acest ca+> ar :i convenabil saaaugi si irectorul pachetului in '%ASSPATH.
2$/$/$/ 5nstalare unui server capabil sa ruleze servleturi
5r6atorul pas este obtinerea si instalarea unui server 4eb care suporta servleturiJava> sau instalarea unui pachet la serverul 4eb e7istent. aca :olosesti un server 4eb up0to0ate> atunci s0ar putea sa ai ea tot ce iti trebuie. ;eri:ica ocu6entatia serverului tau sauuita0te pe lista serverelor care suporta servleturi> [email protected]#.ht6l. esi in cele in ur6a poate vei vrea unserver e calitate co6erciala> pentru invatare este 6ai bine sa ai un siste6 :ree pe care sa ti0linstale+i si sa0l :olosesti pentru teste. *ata cateva in optiunile cele 6ai populare @
1. Apac6e "omcat(6ttp:77ja3arta$apac6e$org7)0este i6ple6entarea si re:erinta o:iciala a
speci:icatiilor servlet 2.2 si JSP 1.1. Poate :i :olosit ca un 6ic server stan0alonepentru teste e servleturi si JSP> sau il integre+i in Apache 4eb Server. Pina in anul2999> era singurul server care suporta servlet 2.2 sau JSP 1.1. Anul acesta insa si0auanuntat suportul 6ulte alte servere (probabil le sca+usera vin+arile O0). To6cat> ca siApache> este gratuit. Si tot ca si Apache (care este :oarte rapi si cu 6ulte suporturi>insa i:icil e con:igurat)> To6cat necesita un e:ort 6ai 6are e con:igurare inco6paratie cu serverele co6erciale. Pentru etalii> vi+itati.
2. Sun8s 4ava Web Server +6ttp:77free9are$t6esp6ere$com70 * este scris in intregi6e inJava si a :ost unul in pri6ele servere 4eb care a suport co6plet la speci:icatiile
servlet 2.1 si JSP 1.9. 'u toate acestea> nu 6ai este sub e+voltare pentru ca Sun seconcentrea+a asupra serverului BetscapeC*0Planet> ar este o soluti populara pentruinvatarea servleturilor si a JSP0urilor.
3. Allaire 4run +6ttp:77999$allaire$com7products7jrun70* este un 6otor pentru servleturi siJSP care poate :i integrat in Betscape Knterprise sau astTrac/ > **S> "icroso:tPersonal 4eb Server> versiuni 6ai vechi e Apache> ]8eill#]s 4ebSite> sauStarBine 4ebSTA8. versiune care suporta pina la ! cone7iuni si6ultane esteisponibila gratuitO versiunea co6erciala eli6ina aceasta restrictie si aauga:acilitati cu6 ar :i o consola e a6inistrare.
. 4avaServer Web )evelopment it [email protected] i6ple6entarea o:iciala si re:erinta pentru speci:icatiile servlet 2.1 si JSP 1.9.Kste :olosit in special ca un server e sine statator pentru teste e servleturi si paginiJSP> inainte ca acestea sa :ie puse pe un server 4eb care suporta in intregi6e acestetehnologii. Kste gratuit si e:icient> ar cere un pic e e:ort pentru instalare sicon:igurare.
!. ;e9 Atlanta8s Servlet.xec +6ttp:77ne9atlanta$com70 * este un 6otor rapi eservleturi si JSP care poate :i integrat in cele 6ai populare servere 4eb pentruSolaris> 4inows> "acS> HP05 si %inu7. Poate :i ownloaat si :olosit gratuit>
ar 6ulte in :acilitatile avansate si utilitare e a6inistrare sunt inisponibile pina
-
5/24/2018 Coarfa Stefan
9/33
la obtinerea unei licente. Bew Atlanta :urni+ea+a si un servlet ebugger gratuit carelucrea+a cu cele 6ai populare Java *K.
&. 'efion8s #iteWebServer +6ttp:77999$gefionsoft9are$com70 * este un 6ic server 4ebgratuit care suporta servlet 2.2 si JSP 1.1. Au e ase6enea un plugin gratuit nu6it
4A*'ool8unner care aauga suportul pentru servlet 2.2 si JSP 1.1 la servereleBetscape atsTrac/ si Knterprise. ;in si un nu6ar e co6ponente servlet si JSPintr0un pachet nu6it *nstantnline.
1.2.3 PHP
*n continuare va pre+int pasii pe care trebuie sa ii ur6e+i pentru a instala si con:iguraPHP sub 4inows. *ntruc nu va 6ai pre+it 6oul e instalare pe plat:or6a %inu7.
1. btinerea /itului e instalarePoti obtine aceste :isiere e la aresa ur6atoare@
2. *nstalarea PHPAcest pas este e7tre6 e usor. 'reea+a un irector uneva pe har0is/. e e7e6plu>
poti crea un irector enu6it '@^php3 si sa e+arhive+i toate :isierele in /it in acest irector.K7e6plele in acest articol presupun ca ai :olosit acest irector.
3. 'on:igurarea PHP*n irectorul '@^php3 se a:la un :isier enu6it Vphp3.ini0istV. 'opia+a acest :isier in
irectorul in care este instalat 4inows (pe cele 6ai 6ulte siste6e '@^4inows) sireenu6este0l Vphp3.iniV.
eschie :isierul '@^4inows^php3.ini cu un eitor si6plu e te7t (e e7e6pluBotepa) si cauta sirul e caractere Ve7tensionZirV. ;aloarea i6plicita este probabil V.CV.Schi6ba aceasta linie cu irectorul in care ai instalat PHP. aca ai :olosit enu6ireasugerata 6ai sus> linia respectiva trebuie sa arate in :elul ur6ator@
e7tensionZir \ V'@^php3VAceasta linie eter6ina locul in care PHP cauta e7tensii pentru esenarea i6aginilor>
conectarea la ba+e e ate> etc.aca ai nevoie e ase6enea e7tensii> va trebui sa le active+i separat pe :iecare. %e
poti gasi in sectiunea V#na6ic K7tensionV a :isierului '@^4inows^php3.ini. aca> ee7e6plu> ai nevoie e suport M (pentru esenarea i6aginilor)> va trebui sa stergico6entariul (caracterul VOV) in :ata ranului corespun+ator@
e7tensions \ php3Zg.llaca nu stii ce repre+inta :iecare in aceste e7tensii> lasa pentru :iecare valoarea
i6plicita.
http://www.php.net/http://www.php.net/ -
5/24/2018 Coarfa Stefan
10/33
. *nstalarea serverului 4eb Apache (optional)5na in caile pentru a testa script0urile create este e a instala si Apache sub
4inows. Apoi tot ceea ce ai e :acut este sa pui script0urile in irectorul corespun+ator si sail accese+i printr0un browser conectat la serverul local.
Poti gasi instructiunile pentru instalarea si con:igurarea Apache la aresa ur6atoare@[email protected]+ar.co6CarchiveCapache.sht6l
!. 'on:igurarea Apache pentru a :olosi PHPaca nu vei instala Apache ca server 4eb> poti sari peste acest pas.Pri6ul lucru pe care ai nevoie sa il :aci este sa 6oi:ici :isierul e con:igurare al
Apache> http.con:. aca ai instalat Apache in irectorul i6plicit> vei gasi acest :isier laaresa@
V'@^Progra6 iles^Apache Mroup^Apache^con:^V
'auta +ona :isierului ce contine sectiunea ScriptAlias. upa instructiunile ScriptAliaspentru V'M*0I*BV aauga ur6atoarea linie@
ScriptAlias Cphp3C V'@Cphp3CVApache trebuie sa :ie con:igurat pentru tipul "*"K PHP. 'auta in http.con: upa
sectiunea VAT#peV si aauga ur6atoarele ranuri@AT#pe applicationC70http0php3 .php3
AT#pe applicationC70http0php3 .phpAT#pe applicationC70http0php3 .pht6lesigur poti aauga orice e7tensii oresti ca Apache sa le recunoasca rept pagini
PHP.Acu6 trebuie sa ii spune6 serverului sa rule+e e7ecutabilul php.e7e e :iecare ata
can intalneste un script PHP. Aauga ur6atorul ran in :isierul http.con:> in carulsectiunii VActionV@
Action applicationC70http0php3 VCphp3Cphp.e7eVBota@ VCphp3V va :i recunoscut rept un ScriptAlias> si va :i :olosita valoarea pe care
ai setat0o 6ai evre6e.
&. olosirea PHP :ara Apache
oloseste un eitor e te7te si scrie ur6atorul script@EHT"%GEHKAGET*T%KGTestECT*T%KGECHKAGEI_GE phpin:o()GECI_GECHT"%GSalvea+a :isierul si rulea+a php.e7e avan enu6irea noului :isier rept para6etru.
e e7e6plu> aca :isierul a :ost salvat ca Vtest.php3V> poti :olosi ur6atoarea instructiune@'@^php3^php test.php3
;ei obtine un :isier HT"% continan 6ulte in:or6atii re:eritoare la con:igurareaPHP.
,. olosirea PHP cu Apache
http://www.thesitewizard.com/archive/apache.shtmlhttp://www.thesitewizard.com/archive/apache.shtml -
5/24/2018 Coarfa Stefan
11/33
Salvea+a :isierul e 6ai sus in irectorul VhtocsV> si :oloseste 6etoa ta obisnuita eaccesare a unui :isier web. Ar trebui sa obtii acelasi re+ultat ca in pasul e 6ai sus.
Au0ti a6inte sa escarci e pe site0ul PHP intreaga ocu6entatie a:erenta. ease6enea> ar trebui sa veri:ici acest site cat 6ai es (sau abonea+a0te la buletinul in:or6ativ
gratuit) pentru 6ai 6ulte in:or6atii si articole espre PHP.
ATENTIE!!! --ecomandare:
alta 6etoa 6ult 6ai si6pla si 6ai e:icienta e a instala pe plat:or6a 4inows 0PHP0ul>(instalare "#S$%> Server Apache> Perl> Php) este :olosirea pachetului BuSphere ela :ir6a BuSphere. Ti6p esti6ativ e instalare a acestor tehnologi ! 6inute pentru un siste6cu procesor A" Y2 N 99"H+ si &"b 8A". Acest pachet so:tware il gasii la aresa@
1.2. Perl
Perl0ul este un so:t e tip pen Source. At
-
5/24/2018 Coarfa Stefan
12/33
o shellG"#sLla6in 0u root 0p status sau prin
o shellG"#sLla6in 0u root 0p ping sau prin
o shellG"#sLla6in 0u root 0p e7tene0status
o shellG rp6 0i "#S$%0evel03Z22Z2,01Zi3&.rp6
oritorii e 6ai 6ult control pot esigur alege varianta co6pilarii in surse. *n:unctie e optiunea aleasa pentru scrierea aplicatiilor care lucrea+a cu "#S$% (in ca+ulnostru PK8%) sunt necesare alte c pentru care :ir6a BuSphere au e+voltat pachetulBuSphere. Acest pachet cu6ulea+a 6ai 6ulte tehnologii> printre care a- a6inti@ ApachServer :or 4inows> "#SLl :or 4inows> Perl :or 4inows> PHP> etc.
1.3Dezvoltare Aplicaii Web
1.3.1 Active Server Pages (ASP)
aca va intrebati cu6 pot :i create paginileCaplicatiile ASP raspunsul nu este unic. 5n6eiu e progra6are es utili+at este ;isual *nterev e la "icroso:t care :ace parte in
pachetul ;isual Stuio. ar se pot utili+a orice eitor e pagini HT"% sau chiar orice eitore :isiere plain0te7t (Botepa). eoarece coul este interpretat e :iecare ata cin estesolicitata pagina e catre e7tensia serverului e 4eb (asp.ll)> coul ASP este intr0un :isierte7t.
Sa vee6 un 6ic e7e6plu e pagina [email protected] VEHT"%GEI_GV Z
VAceasta este o pagina construita cu response.writeV vbcrl:response.write VECI_GECHT"%GVFGKvient unele proprietati si 6etoe ale obiectelor Request>Response> Server>
Application> Sessionsint 6ai 6ult :olosite ecit altele.
K7e6plu e utili+are :unctii in pagina ASP@
-
5/24/2018 Coarfa Stefan
13/33
EHT"%GEI_GAcu6 este@ EF \Scrieatara() FGECI_GECHT"%GEF
unction Scrieatara()Scrieatara\Vata V or6atateTi6e(Bow>vbShortate) V ora V
or6atateTi6e(Bow>vbShortTi6e)Kn unctionFG*n acest ca+ s0au :olosit 2 :unctii ;IScript si anu6e FormatDateTime care
:or6atea+a o ata intr0un anu6e :el speci:icat printr0o constanta (vShortDate>vShortTime)> respectiv Nocare returnea+a ata si ora curenta. *n plus a6 :olosit o :unctiecreata in coul ASP nu6ita ScrieData"ra.
Ase6enea :unctiilor se pot crea in coul ASP si proceuri
Su nu6eZproc()...En# Su
oarte 6ulte pagini ASP :olosesc ba+e e ate "S S$% Server sau Access pentrupastrarea unor iverse in:or6atii. Sa vee6 cu6 se poate :ace asta intr0un 6ic e7e6plu.Presupune6 ca ave6 o ba+a e ate nu6ita Vtest.6bV in irectorul paginii Vtest.aspV careare table0ul V5sersV.
Eht6lGEbo#GToti userii inregistrati sint@EbrGEFi6 con> recSet con\Server.'reatebect(VAI.'onnectionV)Set rec\Server.'reatebect(VAI.8ecorsetV)con.pen VI$\V Server."apPath(V.V) V^test.6bOriver\"icroso:t Access
river (D.6b)OV
i: reLuest.or6(Vnu6eV)EGVV then Zcon.K7ecute V*BSK8T *BT 5sers(Bu6e) ;A%5KS(]V
reLuest.or6(Vnu6eV) V])Vrec.pen VSK%K'T D 8" 5sersV>conwhile not rec.K
response.write rec.iels(VBu6eV) VEbrGV vbcrl:rec."oveBe7t
wenrec.'lose
Set rec\Bothingcon.'lose
-
5/24/2018 Coarfa Stefan
14/33
Set con\Bothing FGE:or6 action\Vtest.aspV 6etho\VpostVG
Bu6ele@ Einput t#pe\te7t na6e\Vnu6eVGEinput t#pe\sub6it value\VAaugaVG
EC:or6GECbo#GECht6lGPentru eschierea 8ecorset0ului a6 :olosit valorile default pentru acesta si a6
aaugat valorile in ba+a e ate :olosin Connection. upa cu6 veeti pagina in care vor :iPST0ate valorile la apasarea pe butonulAdaugaeste chiar pagina insasi (test$asp). Acestevalori se regasesc in-e1uest$=orm+>numele?cimpului?din form>0. aca in 8" este unci6p c6ec3box valoarea lui este via sau VonV upa cu6 ci6pul este 6arcat sau nu.( e7e6plu@ i: reLuest.or6(V'hec/bo71V)\VonV then ... ] este 6arcat)
1.3.2 Servleii
2$@$/$2 Structura de baza a servletului
*ata aici structura e ba+a a unui servlet care tratea+a o cerere MKT. 'ererile MKT>pentru cei ne:a6iliari cu HTTP (cititi articolul legat e progra6area 'M*)> sunt cereri :acutee browser in 6o6entul can utili+atorul scrie un 58% in linia e arese> ur6areste un lin/intr0o pagina 4eb> sau co6pletea+a un :or6ular HT"% care nu are speci:icat "KTH.Servleturile pot :oarte usor sa trate+e si cererile PST> care sunt generate can cineva
co6pletea+a un :or6ular HT"% care are speci:icat "KTH\VPSTV. ;o6 iscuta espreasta 6ai incolo.
i(+ort aa.io.=7
i(+ort aa>.s&r&t.=7
i(+ort aa>.s&r&t.*tt+.=7
+);i' 'ass $o(&$&r&t &>t&n?s Htt+$&r&t @
+);i' oi? ?oA&t1Htt+$&r&t9&5)&st r&5)&st,
Htt+$&r&t9&s+ons& r&s+ons&6
t*ros $&r&tE>'&+tion, IOE>'&+tion @
// oos&st& "r&5)&st" +&ntr) a 'iti HTTP *&a?&rs 1&>. 'ooi&s6
// si HTML or( ?ata
// oos&st& "r&s+ons&" +&ntr) s+&'ii'ar&a ini&i HTTP ?& ras+)ns si *&a?&rs
// 1&>. 'ont&nt t8+&, 'ooi&s6.
PrintWrit&r o)t : r&s+ons&.2&tWrit&r167
// oos&st& "o)t" +&ntr) a tri(it& 'ontin)t 'atr& ;ros&r
Pentru a :i servlet> o clasa trebuie sa e7tina HttpServlet si sa suprascrie oMet sauoPost (sau a6anoua)> epin+an e sunt este tri6ise atele> prin MKT sau PST. Aceste
-
5/24/2018 Coarfa Stefan
15/33
6etoe au 2 argu6ente@ unul HttpServlet8eLuest si unul HttpServlet8esponse.HttpServlet8eLuest are 6etoe care per6it a:larea unor in:or6aii ca atele unui 8">HTTP heaers> si altele. HttpServlet8esponse are 6etoe care iti per6it sa speci:ici linia eraspuns HTTP (299> 9> etc.)> heaerele e raspuns (('ontent0T#pe> Set0'oo/ie> etc.)>si cel
6ai i6portant> te lasa sa obtii un obiect Print4riter :olosit pentru raspunsul catre client.Pentru servleturile si6ple> cel 6ai 6are e:ort este :acut la scrierea instructiunilor println caregenerea+a pagina orita. e notat ca oMet si oPost VaruncaV oua e7ceptii si eci trebuieincluse in eclaratii. Trebuie e ase6enea i6portate clasele in ava.io (pentru Print4riter>etc.)> ava7.servlet (pentru HttpServlet> etc.)> si ava7.servlet.http (pentru HttpServlet8eLuestsi HttpServlet8esponse). *n s:arsit> e notat ca oMet si oPost sunt apelate e 6etoaservice si uneori s0ar putea sa vrei sa o suprascrii> e e7e6plu in ca+ul in care servletultrebuie sa trate+e a6bele cereri 0 MKT si PST.
2$@$/$/ n servlet simplu care genereaza textIata )n s&r&t si(+) 'ar& 2&n&r&aa t&>t. Ur(atoar&a s&'ti)n& a arata 'a) '& (ai ))a
?& 2&n&rar& HTML.HelloWorld.java
+a'a2& *a7
i(+ort aa.io.=7
i(+ort aa>.s&r&t.=7
i(+ort aa>.s&r&t.*tt+.=7
+);i' 'ass H&oWor? &>t&n?s Htt+$&r&t @
+);i' oi? ?oA&t1Htt+$&r&t9&5)&st r&5)&st,Htt+$&r&t9&s+ons& r&s+ons&6
t*ros $&r&tE>'&+tion, IOE>'&+tion @
PrintWrit&r o)t : r&s+ons&.2&tWrit&r167
o)t.+rintn1"H&o Wor?"67
2$@$/$@ Compilarea si instalarea servletului
e notat ca etaliile speci:ice instalarii servletului varia+a e la un server 4eb laaltul. 'auta in ocu6entatia serverului 4eb pe care il :olosesti. e e7e6plu> in Java 4eb
Server (J4S) 2.9 servleturile trebuie sa :ie intr0un irector nu6it servlets. ricu6> a6 plasatacest servlet intr0un pac/age separat (hall) pentru a evita con:lictul cu alte servleturi e peserverO acelasi lucru trebuie sa0l :aci si tu aca :olosesti un server 4eb utili+at si e altii sicare nu are o in:rastructura buna pentru Vvirtual serversV pentru a preveni aceste con:licteauto6at.
Ast:el> Hello4orl.ava este intr0un subirector nu6it hall in irectorul servlets. enotat ca setup0ul pe alte servere este si6ilra> e7e6plele e servleturi si JSP au :ost testate:olosin si IKA 4eb%ogic si *I" 4ebSphere 3.9. 4ebSphere are un 6ecanis6 e7celent
pentru servere virtuale si nu e nevoie e :olosirea e pachete pentru prevenirea con:lictelor.
ricu6> aca veti scrie servleturi estul e 6ulte (sa +ice6 pentru site0uri e0co66erce) estebine sa aveti o structura e irectoare oronata.
-
5/24/2018 Coarfa Stefan
16/33
aca nu ai 6ai :olosit pachete pana acu6> sunt oua 6oalitati e a co6pila claselecare sunt in pachete. 6etoa este setarea '%ASSPATH pe irectorul i6eiat pre6ergatorierarhic irectorului pachetului tau. Poti co6pila nor6al in interiorul acestui irector. ee7e6plu> aca irectorul e ba+a este '@^Java4ebServer^servlets si nu6ele pachetului tau (si
al subirectorului ) este hall> si esti 4inows> :aci asa@SG set '%ASSPATH\'@^Java4ebServer^servletsOF'%ASSPATHFSG c '@^Java4ebServer^servlets^hallSG avac _ourServlet.avaPri6a parte cu setarea '%ASSPATH> probabil o vrei per6anenta 6ai egraba> ecat
sa stai sa o sete+i e :iecare ata. *n 4inows !C pui Vset '%ASSPATH\...V in :isierulautoe7ec.bat upa linia care setea+a '%ASSPATH spre servlet.ar an sp.ar. *n 4inows
BT> 6ergi pe Start 6enu> selectea+a Settings> selectea+a 'ontrol Panel> selectea+a S#ste6>selectea+a Knviron6ent> si apoi introu variabila si valoarea. aca pachetul tau ar :i e :or6a
nu6e1.nu6e2.nu6e3 in loc e nu6e1 ca aici> tot ai '%ASSPATH spre irectorul raacina alierarhiei (cel care contine na6e1).
a oua 6etoa e co6pilare a clasleor a:late in pachete este po+itionarea peirectorul a:lat 6ai sus ecat cel in care se a:la servleturile> si apoi :a Vavacirector#^_ourServlet.avaV (4inows> Atentie bac/slash) sau Vavacirector#C_ourServlet.avaV (5ni7> Atentie :orwar slash). %a :el> e e7e6plu> acairectorul e ba+a este '@^Java4ebServer^servlets si nu6ele pachetului tau (si alsubirectorului ) este hall> si esti 4inows> :aci asa@
SG c '@^Java4ebServer^servlets
SG avac hall^_ourServlet.ava*n 4inows> 6aoritatea versiunilor e JY 1.1 ale avac necesita un bac/slash> si nu
un :orwar slash> upa nu6ele irectorului . Asta este posibil in JY 1.2> ar eoarece 6ulteservere 4eb sunt con:igurate sa :oloseasca JY 1.1> 6ulti autori e servleturi ra6an pe JY1.1 pentru portabilitate.
*n s:arsit> o lat optiune avansata este sa tine6 coul sursa intr0o locatie istincta ecea a :isierelor D.class si sa :olosi6 optiunea V0V a avac pentru a le instala in locul une leasteapta serverul 4eb.
2$@$/$B -ularea servletului*n Java 4eb Server> servleturile sunt plasate in irectorul servlets in raport cu
irectorul principal al J4S> si sunt invocate prinhttp@CChostCservletCServletBa6e. Atentie irectorul este servlets> plural> in ti6p ce
58%0ul se re:era prin servlet> singular. eoarece acest e7e6plu a :ost plasat in pachetul hall >el va :i invocat prin [email protected].
Alte servere 4eb pot i:eri estul e 6ult in ceea ce priveste conventiile e instalareale servleturilor si cu6 trebuie invocate acestea. "ulte in servere te lasa sa e:inesti aliasuri
pentru servleturi> asa incat servleturile pot :i invocate prin http@CChostCan#0pathCan#0:ile.ht6l.
Proceeul e lucru in acest 6o este speci:ic serveruluiO veri:ica ocu6entatia care insoteste/itul serverului 4eb.
-
5/24/2018 Coarfa Stefan
17/33
2$@$/$ Servlet care genereaza !"M#
"area 6aoritate a servleturilor generea+a HT"%> si nu te7t si6plu ca in e7e6plulanterior. Pentru a :ace asta> trebuie aaugati oi pasi esentiali @ anuntarea browserului ca iitri6iti inapoi HT"%> si 6oi:icarea instructiunilor println pentru a construi o pagina HT"%
corecta. Pri6ul pas este :acut prin setarea heaerului e raspuns 'ontent0T#pe. *n general>heaerele pot :i setate prin setHeaer 6etoa a HttpServlet8esponse> ar setarea tipului econtinut este un lucru atat e u+ual incat ave6 o 6etoa speciala set'ontentT#pe oar pentruacest scop. Heaerul e raspuns trebuie setat inainte e returnarea oricarui continut prinPrint4riter. K7e6plu@
HelloWWW.java+a'a2& *a7
i(+ort aa.io.=7
i(+ort aa>.s&r&t.=7
i(+ort aa>.s&r&t.*tt+.=7
+);i' 'ass H&oWWW &>t&n?s Htt+$&r&t @
+);i' oi? ?oA&t1Htt+$&r&t9&5)&st r&5)&st,
Htt+$&r&t9&s+ons& r&s+ons&6
t*ros $&r&tE>'&+tion, IOE>'&+tion @
r&s+ons&.s&tCont&ntT8+&1"t&>t/*t("67
PrintWrit&r o)t : r&s+ons&.2&tWrit&r167
o)t.+rintn1"
-
5/24/2018 Coarfa Stefan
18/33
aca :olosesti 4inows ca siste6 e operare> gasi unele sugestii re:eritoare lasugestiile e 6ai sus in subcapitolul 1.2.3.
;o6 incepe prin a scrie un :oarte rui6entar (ar :unctionabil) progra6 in PHP careva prelua atele intr0un :or6ular si ti le vor tri6ite printr0un 6esa e6ail. Acest script este
po6enit aesea sub enu6irea e script or6"ail.Trebuie sa presupun ca ai unele cunostinte e :olosire a HT"%> alt:el acest tutorial va
s:arsi prin a eveni plicticos e lung.Pentru aceia intre voi care aveti cunostinte avansate e progra6are> acesta este un
:el e progra6 VHello 4orlV> ar cu 6ult 6ai :olositor
Pasul 2 0 Scrierea :or6ularului e introucere a atelorPri6ul lucru pe care trebuie sa0l :ace6 este sa scrie6 chiar :or6ularul e introucere
a atelor. Puneti ur6atorul co in sectiunea I_ a unui :isier HT"% enu6it> sa
presupune6> :eebac/.ht6l.E8" 6etho\post action\Vsen6ail.php3VGK6ail@ E*BP5T na6e\Ve6ailV t#pe\Vte7tVGEbrG"essage@EbrGETKTA8KA na6e\V6essageVGECte7tareaGEbrGEinput t#pe\sub6itGEC8"G*n principiu> :or6ularul ii cere vi+itatorului aresa e e6ail (ca6pul nu6it Ve6ailV
care se gaseste in coul e 6ai sus sub :or6a e V*BP5T na6e\e6ailV) si un 6esa (ca6pulnu6it V6essageV care se gaseste in acelasi co sub :or6a e VTKTA8KA na6e\6essageV)>si ii pre+inta un buton pe care trebuie sa apese pentru a tri6ite atele in :or6ular. 'an
butonul este apasat> atele sunt VpostateV (ve+i atributul V6ethoV in carul etichetei8").
Pasul 3 0 Progra6ul PHP e culegere a atelorAcu6 tot ce a ra6as e :acut este e a scrie :isierul Vsen6ail.php3V. Acest :isier este
:acut e7tre6 e si6plu> :olosin :acilitatile isponibile in PHP. Salvati coul ur6ator intr0un
:isier enu6it Vsen6ail.php3V. Bu puneti ni6ic altceva in acest :isier> aica nu puneti nici oalta eticheta sau antet HT"%> etc.
E6ail( V#ourna6ed#ouro6ain.co6V> Veebac/ or6 8esultsV>
[6essage> Vro6@ [e6ailV )Oheaer( V%ocation@ http@CCwww.#ouro6ain.co6Cthan/#ou.ht6lV )OG'an atele sunt tri6ise progra6ului sen6ail.php3> continutul ca6pului Ve6ailV
este atribuit unei variabile PHP enu6ita [e6ail. *n 6o ase6anator> continutul ca6pului
V6essageV este atribuit variabilei [6essage.
-
5/24/2018 Coarfa Stefan
19/33
Tot ceea ce progra6ul :ace> este sa apele+e o :unctie speciala enu6ita sugestivV6ailV> care e :apt se ocupa e tri6iterea 6esaul prin e6ail. Pri6ul para6etru al :unctieiV6ailV este aresa e e6ail la care oresti sa se tri6ita atele in :or6ular> aica propria taaresa e e6ail. Al oilea para6etru este VSubectV si repre+inta subiectul 6esaului e6ail.
5lti6ii oi para6etrii sunt continutul 6esaului si orice alte antete pe care vrei sa le tri6iti.;re6 sa tri6ite6 un antet Vro6V pentru a stii cine ne0a tri6is atele si pentru a0i putearaspune aca vo6 avea nevoie.
8etine ca> ase6enea 6ultor alte li6bae e progra6are> sirurile (secventele ecaractere) sunt eli6itate e ghili6ele> ca e e7e6plu Veebac/ or6 8esultsV.
;ariabilele precu6 [6essage pot :i :olosite in :or6a in care sunt atribuite. 8etine ease6enea ca poti interpola continutul unei variabile> e e7e6plu [e6ail> intr0un sir ca Vro6@[e6ailV> ast:el incat aca variabila [e6ail contine o aresa ca oed#ahoo.co6> sirul :inalcare este atribuit :unctiei V6ailV este e :apt Vro6@ oed#ahoo.co6V.
Poti e ase6enea sa :olosesti apostro: (ca in ]Salut]) pentru a eli6ita sirurile> arcan vei procea asa> variabilele incluse nu vor :i interpretate. Aceasta proceura este:olositoare aca> pentru un anu6it 6otiv> chiar oresti sa trans6iti :unctiei V6ailV sirulVro6@ [e6ailV :ara ca PHP sa o interprete+e in Vro6@ oed#ahoo.co6V.
*n :inal> este aecvat sa0i 6ultu6esti vi+itatorului pentru 6esaul tri6is. Pentru a :aceacest lucru> tri6ite6 inapoi catre browser0ul acestuia un antet HTTP> care ii trans6ite
progra6ului sa incarce un :isier enu6it Vthan/#ou.ht6lV e pe site0ul tau. unctia VheaerVne per6ite sa tri6ite6 inapoi catre browser0ul vi+itatorului orice antet HTTP.
esigur vei crea un :isier enu6it in 6o corespun+ator Vthan/#ou.ht6lV cu un 6esa
pentru a 6ultu6i vi+itatorului tau pentru e:ortul epus> alt:el vi+itatorul va :i inta6pinat upatri6iterea 6esaului sau e o eroare V9Cile Bot ounV (9Cisierul nu a :ost gasit). ease6enea va trebui sa inlocuiesti aresa site0ului si cea e e6ail cu cele corecte aca vei orisa :olosesti acest progra6 in carul paginilor site0ului tau.
Apropo> progra6ul trebuie sa :ie eli6itat e etichetele VEV si VGV pentru cainterpretorul PHP tratea+a toate intrarile rept co HT"% aca nu i se speci:ica altceva. Peunele siste6e> se poate sa :ii nevoit sa :olosesti VEphpV si VGV rept etichete e eschieresi e inchiere pentru ca progra6ul sa :unctione+e in 6o corect.
A :ost usor> nu0i asa 'u oar cateva linii e co> toc6ai ai scris pri6ul tau script
PHP.
1.3. Perl
aca pe aceeasi 6asina au :ost instalate si 6oulele e PK8% 6entionate 6ai sus> totce 6ai trebuie pentru a putea publica intr0o pagina HT"% (pe 444) este un web server(incetatenit este Apache) si unul sau 6ai 6ulte scripturi 'M* in PK8%.
Subiectul 'M* progra66ing este vast> pornin e la alegerea li6baului eprogra6areCscripting sau a serverului e aplicatie care va procesa practic aplicatiile 'M*> si
ter6in
-
5/24/2018 Coarfa Stefan
20/33
A6inistratorii e siste6 si progra6atorii 'M* e7peri6entati stiu ca e securitateaunui script 'M* poate epine securitatea 6asinii pe care acesta rulea+a.
Pentru si6plitate> este pre+entat un script PK8% rui6entar care se conectea+a lam%s1ld:olosin userul user si parola parola (trebuie o pereche userna6eCpasswor valia
pentru m%s1ldpe 6asina server> alt:el scriptul nu se va putea conecta la ba+a e ate) si :aceun SK%K'T si6plu asupra tabelului acturare (escris in subcapitolul "#SLl :or %inu7).
WCusrCbinCperl WLuer#.cgi 0 e7e6plu PerlC"#S$% use I*O[bh \ I*0Gconnect(]bi@6#sLl@'lienti]>]user]>]parola])OWpregateste si e7ecuta state6ent S$% [sLlstate6ent\VSK%K'T
Bu6eZ'lient>K6ailZ'lient 8" acturareVO[sth \ [bh0Gprepare([sLlstate6ent)O[sth0Ge7ecute ie VBu se poate e7ecuta instructiunea S$%...VOWscrie la stout re+ultatele e7trase in ba+a e ate print V'ontent0T#pe@
te7tCht6l^n^nVOprint VEht6lG^nEheaGEtitleGPagina e6oECtitleGECheaG^nEbo#GEiv
align\centerG^nVOwhile (drow\[sth0G:etchrowZarra#) print Vdrow^nEbrGVO
print VECivGECbo#GECht6lGVO
Acest script se copia+a in irectorul cgi0bin al serverului web. Pentru a putea :ie7ecutat e ae6onul http> se setea+a corespun+ator per6isiunile@ shellG ch6o ,!!Luer#.cgi A:isarea re+ultatelor in browser se :ace si6plu> acces in :unctie e optiuni) e oriune in*nternet> e e7e6plu e pe orice calculator otat cu 6oe6 si care are acces la *nternet
printr0un si6plu cont e ial0up.
1.3.! "#S$%
5tilitatea publicarii pe 444 in ba+e e ate apare> printre altele> pentruco6paniile care au seii> epo+ite sau puncte e lucru ispuse in iverse locatii geogra:iceistincte> une accesul la *nternet este totusi isponibil pe ba+a unui cont e ial0up.
Aceste co6panii pot ori> e e7e6plu> ca o ba+a e ate centrala a :ir6ei sa :ieaccesibila pe web angaatilor sai> care sa introuca si sa e7traga unele ate a:erenteoperatiunilor +ilnice.
8aportarea sau introucerea atelor se poate :ace i:erentiat> in :unctie e privilegiileper utili+ator> si intr0o 6aniera sigura> i6pieic aca se alegsolutii e securi+are potrivite.
'ostul :inal al unei aplicatii e acest tip este co6pus nu6ai in tari:ul perceput pentruservicii e web hosting e catre orice *nternet Service Provier si e costul e e+voltare
-
5/24/2018 Coarfa Stefan
21/33
*n continuare vo6 crea o ba+a e ate> :olosin "#S$%0ul e %inu7. A6 insistatasupra acestei versiuni> pentru si6plu :apt ca acest SMI este 6ult 6ai intalnit intr0un6eiu %inu7.
2$@$$2 M%S for #inuxAcest subcapitol a :ost e+voltat intr0un 6eiu %inu7 si necesita in partea cititorului
nu6ai cunostinte e ba+a espre %inu7> Perl si ba+e e ate in general. e ase6enea>etaliile tehnice re:eritoare la "#S$% se aplica in orice 6eiu e tip 5ni7 si in 4inows.
"oelul e securitate :olosit e "#S$% se ba+ea+a pe userna6eCpasswor> hostna6esi privilegii si este si6ilar celui generic :olosit e siste6ele 5ni7. Prin privilegii se inteleg inca+ul "#S$% operatiunile ce vor :i per6ise asupra ba+eiCba+elor e ate> tabelelor sauinecsilor> cu6 sunt e e7e6plu SK%K'T> *BSK8T> 5PATK> K%KTK> '8KATK> 8P.
'rea6 o ba+a e ate@
shellG6#sLl Nu root Np6#sLlGcreate atabase 'lientiO6#sLlGuse 'lientiO
Acor utili+atoruluiului user cu parola parola care se conectea+a la serverul"#S$% e pe orice 6asina in reteaua .retea0sigura.net reptul e a :ace SK%K'T pe oricetabele in ba+a e ate 'lienti@
6#sLlGM8ABT SK%K'T B 'lienti.D T userd]F.retea0sigura.net] *KBT**KI_ ]parola]O
olosirea M8ABT si 8K;YK este noti:icata serverului i6eiat si> spre eosebire eacorarea e privilegii cu 5PATK sau *BSK8T> nu necesita o co6ana ulterioara e tip%5SH P8*;*%KMKS 0 care spune serverului sa reciteasca tabelele e per6isiuni.
Pe e alta parte@
6#sLlGM8ABT A%% P8*;*%KMKS B 'lienti.D T gigidlocalhost *KBT**KI_ ]parolaZlunga]O
o:era puteri plenipotentiare user0ului gigi> ar nu6ai e la consola serverului.
'rearea 'lienti si recitirea tabelelor e privilegii prin %5SH P8*;*%KMKS sepoate :ace si cu 6#Lsla6in. 8evocarea privilegiilor acorate se :ace :olosin e7plicit8K;YK sau prin scrierea irecta in tabelele e repturi (6#sLl.user> 6#sLl.b> 6#sLl.host>
6#sLl.tablesZpriv si 6#sLl.colu6sZpriv).
-
5/24/2018 Coarfa Stefan
22/33
Pentru o i6agine co6pleta asupra 6oului in care :unctionea+a 6oelul e securitate"#S$%> este obligatorie citirea cu atentie a paginilor respective in 6anual.
Pentru securi+area atelor si a accesului la 6#sLl se reco6ana i6ple6entarea
politicilor speci:ice necesare> instru6entele :urni+ate e "#S$% :iin oar o parte in intreg.
oua tabele si6ple K7e6plul ales pre+inta 6oalitatile e creare si utili+are a ouatabele si6ple in "#S$%> tabele enu6ite acturare si acturi. etaliile legate e ceea cese nu6este ata 6oelling nu sunt necesare pentru e7e6plul si6plu al acestei aplicatii.'ontinutul si structura tabelelor acturare si acturi :olosite in e7e6plul nostru sunt
pre+entate in :igurile 1 si 2 si> respectiv> in :igurile 3 si .
Bu6eZ'lient K6ailZ'lient actura Total Platitir6a1 :ir6a1disp.ro 9299111191 !9.999 air6a2 :ir6a2disp.ro 9299111192 &!9.99ir6a3 :ir6a3disp.ro 9299121193 29.99 air6a :ir6adisp.ro 929912,192 !9.99
ig. 1.3.3.1.1 'ontinutul tabelului acturare.
Bu6eZ'a6p TipZ'a6p Poate :i nulBu6eZ'lient Te7t Bu
K6ailZ'lient Te7t Buactura *nteger BuTotal 8eal BuPlatit Ioolean aig. 1.3.3.1.2 Structura tabelului acturare
Sinta7a pentru crearea tabelului acturare@ 6#sLlG'8KATK TAI%K acturare(Bu6eZ'lient 'HA8(2!!) BT B5%%> K6ailZ'lient 'HA8(2!!) BT B5%%> actura*BTKMK8 BT B5%%> Total K'*"A%(&>2) BT B5%%> Platit T*B_*BT B5%%> *BK
*ZA'T58A (actura))Oactura re 8ata9299111191 1 !99299111192 11 &!99299121193 1&.2 29929912,192 1 !9ig. 1.3.3.1.3 'ontinutul tabelului acturi.
Bu6eZ'a6p TipZ'a6p Poate :i nul
actura *nteger Bure 8eal Bu
-
5/24/2018 Coarfa Stefan
23/33
8ata 8eal Buig. 1.3.3.1. Structura tabelului acturi.
Sinta7a pentru crearea tabelului acturi@ 6#sLlG'8KATK TAI%K acturi (actura
*BTKMK8 BT B5%%> re K'*"A%(>2) BT B5%%> 8ata K'*"A%(&>2) BTB5%%> *BK *ZA'T58A (actura))O
'rearea corecta a celor oua tabele se veri:ica prin@6#sLlGshow tablesO6#sLlGescribe acturareO6#sLlGescribe acturiO
5ncarcarea datelor*ncarcarea atelor in tabelele proaspat create se :ace> printre alte6etoe> :olosin co6ana %A ATA *B*%K> cu conitia ca atele sa :ie in prealabile7istente in :isiere te7t> eli6itate e caracterele tab sau >.
eli6itatorul i6plicit recunoscut e %A ATA *B*%K este tab> eci in ca+ulunui :isier :acturare.t7t ce contine atele in tabelul acturare eli6itate prin tab> sinta7ava :i@
6#sLlG%A ATA *B*%K VCcaleaCcatreC:acturare.t7tV *BT TAI%K acturare*MB8K 1 %*BKSOSi6ilar@
6#sLlG%A ATA *B*%K VCcaleaCcatreC:acturi.t7tV *BT TAI%K acturi*MB8K 1 %*BKSO
Pentru alti eli6itatori a se veea optiunea *K%S TK8"*BATK I_ in sinta7a
co6en+ii %A ATA *B*%K.e 6entionat ca optiunea *MB8K 1 %*BKS eter6ina i6portul in :isierul te7t in
tabelul in ba+a e ate a tuturor atelor 6ai putin pri6ul r care ingeneral este heaer0ul tabelului> e7istent ea in tabelul creat in ba+a e ate. in 6otive esecuritate> c acestea trebuie sa se a:le ori in irectorul
ba+ei e ate (varClibC6#sLlC'lienti) sau sa aiba repturi e readpentru all. e ase6enea>privilegiul :ile trebuie sa e7iste pe server.
*n ca+ul nostru> pentru si6plitate> se copia+a :isierele :acturi.t7t si :acturare.t7tin CvarClibC6#sLlC'lienti si se i6porta in acest irector.
Se veri:ica prin@6#sLlG select D :ro6 acturiO6#sLlG select D :ro6 acturareO
*n acest 6o6ent> 6#sLl poate :urni+a in:or6atii in tabelele ba+ei e ate 'lienti.K7punerea atelor pe 444 se va :ace in subcapitolele ur6atoare in :unctie e so:tul
e care bene:icie6 (perl> php> sp).
6oalitate 6ai si6pla -i 6ai util= e a crea ba+e e ate este e a :olosi inter:aavi+ual= o:erit= e c=tre :ir6a BuSphere ([email protected]).
http://www.nusphere.com/http://www.nusphere.com/ -
5/24/2018 Coarfa Stefan
24/33
2$@$$/ M%S for Windo9s
6oalitate 6ai si6pl= -i 6ai util= e a crea ba+e e ate este e a :olosi inter:aavi+ual= o:erit= e c=tre :ir6a BuSphere ([email protected]).
Pentru a crea ba+a e ate in subcapitolul 1.3.!.2> :olosi6 acela-i scenariu ar eata aceasta ata :olosin aplicaia Php"#A6in al pachetului BuSphere.
ig. 'aptur= *6agine Aplicaie Php"#A6in
$ %aga&in 'irtual
Acest capitol a ap=rut ca ur6are a necesit=ii ?nv==rii unor anu6ii pa-i ine+voltarea unei aplicai web cu ba+e e ate. A6 enu6it acest capitol Q"aga+in ;irtualR>oar pentru si6plul :apt c= aplicaia pe care o vo6 i6ple6enta poarta nu6ele "aga+in;irtual.
Pentru i6ple6entarea acestei aplicaii a6 :olosit o plat:or6a 4inows (ar sepoate :olosi la :el e bine si 4inos 2999> BT> sau "K)> -i a6 instalat pachetul e progra6eBuSphere (a6 iscut espre acest pachet in capitolul 1.2.3> seciunea 8eco6anare) [email protected]. Acest so:t se va instala in irectorul Progra6 iles e pe iscul cu
siste6ul e operare. *n 6area 6aoritate a ca+urilor acest isc este iscul '@. Pentru pornireaserv=rului Apache -i a servarului "#S$% lansa6 in STA8T 0G P8M8A"S 0G
B5SPHK8K 0G Start BuSphereSa6ple site.
http://www.nusphere.com/http://www.nusphere.com/http://www.nusphere.com/http://www.nusphere.com/ -
5/24/2018 Coarfa Stefan
25/33
ig. Pagina e start al aplicaiei BuSphereAcu6a se va starta cele oua serv=re -i se va eschie o :ereastra e browser ce va
?ncarc= pagina noului server instalat.*n aceasta :ereastra> vo6 avea ?n partea st P8*"A8_ YK_ (i)
)O'8KATK TAI%K subcategories( i S"A%%*BT 5BS*MBK BT B5%% A5TZ*B'8K"KBT>
-
5/24/2018 Coarfa Stefan
26/33
/e#Zcat S"A%%*BT 5BS*MBK BT B5%%>na6e 'HA8(&9) BT B5%%>
P8*"A8_ YK_ (i))O
'8KATK TAI%K proucts(
/e#Zcat S"A%%*BT 5BS*MBK BT B5%%>/e#Zsubcat S"A%%*BT 5BS*MBK BT B5%%>na6e char(&9)>coe char(32)>i6age 6eiu6blob BT B5%%>
price int(11) BT B5%%> si+e char(29)>
color char(29)> escription char(2!!) BT B5%% )O
*n :ereastra e browser e 6ai os> vo6 crea ba+a e ate shop2@
ig. Aplicaia php"#A6inPasul ur6=tor> up= ce a6 creat ba+a e ate shop2> este e a crea tabelele escrise
6ai sus> -i anu6e categories cu 2 ca6puri> subcategories cu 3 ca6puri -i proucts cu c
-
5/24/2018 Coarfa Stefan
27/33
ig. 'onstruirea Tabelelor cu autorul aplicaiei php"#A6in;a trebui sa construi6 c
-
5/24/2018 Coarfa Stefan
28/33
upa ce a6 creat ba+a e ate (:ig. )> va trebui sa scrie6 scripturile necesareinterog=rii ba+ei e ate shop2. Aceste scripturi sunt isponibile la [email protected].+ip> sau aca scriei la aresa ste:anZcoar:ad#ahoo.co6> curug=6intea e a pri6ii scripturile. fn c
-
5/24/2018 Coarfa Stefan
29/33
ig. Structura e irectoare e care pentru aplicaia shop2-i vei pune scripturile pe care le obinei prin 6etoele 6ai sus 6enionate.8e+ultatul rul=rii acestor scripturi (in :ereastra e browser introucei lin/0ul
http@CClocalhostCshop2) se poate observa ?n :igura e 6ai os@
ig. Pre+entarea "aga+inului ;irtual creat (i6agine)
http://localhost/shop2http://localhost/shop2 -
5/24/2018 Coarfa Stefan
30/33
in cau+a :aptului ca ba+a e ate este vi=> in partea st subcategorii -iarticole. Pentru a aauga o noua Subcategorie > va trebui sa alege6 categoria in care :ace
parte (in acel co6bobo7)> -i s= introuce6 nu6ele subcategoriei.
ig.A=ugare SubcategoriePentru a a=uga un alt Articol> va trebui sa alege6 categoria in care :ace parte>
subcategoria> precu6 -i caracteristicile acelui prous (co> nu6e> etc).
-
5/24/2018 Coarfa Stefan
31/33
ig. A=ugare Articol
up= cu6 se poate observa in :igura e 6ai sus> ave6 la ?ne6
-
5/24/2018 Coarfa Stefan
32/33
ig. *nterogarea ba+ei e ate -i a:i-area Subcategoriilor 'o6eiein carul categoriei il6e
Tot ceea ce trebuie :=cut este sa va aco6oai cu noul 6aga+in virtual -i s= v= pornii
propria a:acere.
A#rese (tile
1. [email protected]#sLl.co6 Site0ul o:icial "#S$% T.c. ataYonsult2. http@CCbi6#sLl.photo:lu7.co6C PK8%CI* X "#S$%3. [email protected]:ace.ht6l VThe 'M* Speci:icationV. [email protected] Apache So:tware ounation!. [email protected] ocu6entatie Perl
&. [email protected] 8o6anian %inu7 5sers Mroup,. [email protected] BuSphere. [email protected] ocu6entatie -i so:t php. http@CCa/arta.apache.orgC 0 Apache To6cat19. http@CC:reeware.thesphere.co6C 0 Sun]s Java 4eb Server11. [email protected] 0 Allaire Jrun12. [email protected] 0 JavaServer 4eb evelop6ent
Yit13. [email protected] 0 Bew Atlanta]s ServletK7ec
1. [email protected]:ionso:tware.co6C 0 Me:ion]s %ite4ebServer
http://www.nusphere.com/http://www.php.net/http://jakarta.apache.org/http://freeware.thesphere.com/http://www.allaire.com/products/jrun/http://java.sun.com/products/servlet/download.htmlhttp://newatlanta.com/http://www.gefionsoftware.com/http://www.nusphere.com/http://www.php.net/http://jakarta.apache.org/http://freeware.thesphere.com/http://www.allaire.com/products/jrun/http://java.sun.com/products/servlet/download.htmlhttp://newatlanta.com/http://www.gefionsoftware.com/ -
5/24/2018 Coarfa Stefan
33/33
o6nul ing. 'A8 *oan0te:an> s0a n=scut ?n anul 1,& la Sibiu> u. Sibiu. A absolvitacultatea e *nginerie> secia e 'alculatoare a 5niversit=ii Q%ucian IlagaR in Sibiu ?nanul 2999> -i a absolvit cursurile e Stuii Apro:unate in tiina Siste6elor Paralele -iistribuite ?n anul 2991 la aceea-i universitate> cu lucrarea Siste6e e Transco=ri in Java.Actual6ente este angaat al :ir6ei "ulti6eia 'apital 8o6ania S8%> cu capital integralnorvegian> -i colaborator al 5niverist=ii Q%ucian IlagaR. o6enii e interes N tehnologii
ava -i siste6e istribuite.