Documente Academic
Documente Profesional
Documente Cultură
Anca Mehedinu
Irina Ciocrlan
INTRODUCERE
Designerul de pagini de web (studii medii) este liantul ntre clienii, persoane juridice
sau persoane fizice, fiecare cu nevoile lor i tehnologia de promovare prin pagini web. Este
un bun cunosctor al structurii tehnologice a internetului, a mediului specific n care sunt
instalate-publicate, gzduite, promovate i vizitate paginile diferitor clieni de ctre
vizitatorii din ntreaga lume. Este cel care face transferul de informaie primit de la client,
sub o anume form, ntr-o manier ct mai apropiat de vizitatori.
Vizualizarea coninutului informaional destinat vizitatorilor de pagini web se face prin
intermediul diferiilor navigatori sau browseri, cum ar fi: Internet Explorer, Netscape,
Opera, Mozilla, Konqueror sau Firefox.
Designerul de pagini web pune n practic cunotine din domeniul marketing,
realizeaz analize i sinteze, pentru a descoperi cerinele vizitatorilor i clienilor, are
aptitudini specifice proiectanilor n domeniul tehnologiei informaiei dar i calitile unui
artist cu ajutorul crora modeleaz site-urile. El reuete s mbine datele tehnice ntr-o
structur artistic ct mai plcut i funcional.
ntruct proiectarea unei pagini web presupune activiti din domenii conexe, este
necesar munca n echipe de webdesigneri care s conlucreze la realizarea acestor lucrri
complexe. Ocupaia satisface un segment limitat al nevoilor clienilor, printr-o specializare
ntr-o anumit zon a proiectrii de pagini de internet: texte, grafic i animaie, coninut,
multimedia, interactivitate.
Cunotine necesare practicii ocupaiei:
Framework.NET
Autorii
Septembrie 2014
CUPRINS
INTRODUCERE ............................................................................................................. 2
CUPRINS ......................................................................................................................... 3
Partea I ................................................................................................................................. 4
Partea II .............................................................................................................................. 12
Partea III............................................................................................................................. 16
PARTEA IV ....................................................................................................................... 19
PARTEA V ........................................................................................................................ 29
PARTEA VI ....................................................................................................................... 44
PARTEA VII ................................................................................................................... 274
PARTEA VIII .................................................................................................................. 278
PARTEA IX ..................................................................................................................... 282
PARTEA X ...................................................................................................................... 301
PARTEA XI ..................................................................................................................... 307
PARTEA XII ................................................................................................................... 312
PARTEA XIII .................................................................................................................. 322
PARTEA XIV .................................................................................................................. 330
PARTEA XV ................................................................................................................... 334
PARTEA XVI .................................................................................................................. 340
Partea XVII ...................................................................................................................... 348
BIBLIOGRAFIE .......................................................................................................... 352
PARTEA I
DEZVOLTAREA PROFESIONAL.
COMUNICAREA
INTERACTIV
LA
Exemplu
Domeniu de
competen
Pai
De ce suport am Perioada
nevoie?
de timp
Capacitatea de
a face
prezentri
1.Participarea la un curs
de
formare a abilitilor de
prezentare.
2.Prezentarea proiectului
n
cadrul
unei
sedine
interne.
3. Identificarea altor
oportuniti de prezentare
pe masur ce apar.
Obinerea
acordului efului de
departament pentru
a m prezenta la
sedin.
Obinerea
sprijinului
managerului direct
pentru identificarea
altor oportunitai i
obinerea feedbackului
Recomandari:
Preferina pentru modul de nvare i dezvoltare de noi competene se va schimba n timp
i poate fi influenat de mediu i rolul pe care l avei prin funcia voastr. Periodic,
trebuie s analizai dac preferinele voastre s-au schimbat, pentru a v ajuta n
dezvoltarea voastr viitoare.
Criterii de realizare
1.1. Necesarul de perfecionare este stabilit
prin
autoevaluare obiectiv
1.2. Necesarul de perfecionare este
identificat
pe baza observaiilor venite din partea echipei
multidisciplinare
2.1. Materialele de specialitate sunt
consultate
periodic/ori de cte ori este necesar pentru
asigurarea unui volum de informaii noi
necesare n activitatea desfurat
2.2. Autoinstruirea profesional este fcut
prin
consultarea
surselor
de
informare
corespunztoare necesarului de informaii
2.3. Cunotinele dobndite sunt aplicate n
activitatea curent n scopul creterii calitii
muncii
2.4. Cunotinele dobndite sunt aplicate n
interesul beneficiarului
2. Autoinstruire profesional
Gama de variabile
Materialele documentare de specialitate pot fi: publicaii de specialitate, manuale de
prezentare i exploatare sau ghiduri de utilizare a altor produse software, participare la
expoziii,
trguri, simpozioane de specialitate etc.
Pentru autoinstruire pot fi folosite: manuale de specialitate, reviste, documentaie electronic,
INTERNETul etc.
Ghid pentru evaluare
Cunotinele necesare se refer la:
- Participare la cursuri de instruire
- Citirea de publicaii de specialitate
- Aplicarea cunotinelor dobndite
La evaluare se urmrete:
- Contiinciozitatea de a-i mbunti activitatea profesional;
- Capacitatea de analiz i sintez viznd identificarea necesarului de perfecionare ;
- Capacitatea de a procesa informaiile;
- Obiectivitate n autoevaluarea nivelului de cunotine;
- Receptivitate fa de informaiile de specialitate.
Elemente
de Criterii de realizare
competen
1.
Transmite
i 1.1. Metoda de comunicare este utilizat corespunztor
situaiei date pentru transmiterea i primirea corect i rapid
primete informaii
a informaiilor.
1 .2. Transmiterea i primirea informaiilor este efectuat
permanent cu respectarea raporturilor ierarhice i funcionale.
1 .3. Limbajul utilizat este specific locului de munc pentru
primirea i transmiterea informaiilor cu corectitudine.
1 .4. Modul de adresare utilizat este concis i politicos.
1 .5. ntrebrile utilizate sunt pertinente i logice pentru
obinerea de informaii suplimentare i clarificri.
2. Particip la discuii 2.1. Opiniile i punctele de vedere proprii sunt communicate
deschis pentru clarificarea problemelor aprute.
de grup
2.2. Opiniile proprii sunt susinute cu argumente clare, prin
intervenii prompte i logice.
2.3. Participarea la discuii n grup este efectuat prin
respectarea opiniilor i a drepturilor celorlali colegi.
2.4. Problemele sunt discutate i rezolvate printr-un proces
agreat i acceptat de toi membrii grupului.
2.5 Divergenele aprute sunt comunicate deschis efului
direct, pentru rezolvarea acestora cu promptitudine.
2.6 Divergenele aprute sunt rezolvate rapid, pentru
desfurarea unei activiti fluente.
Gama de variabile
Unitatea se aplic la toate ocupaiile din domeniul informaticii, proiectrii i publicitii
(electronice i tipografice).
Diagnosticarea echipelor
Studii realizate in peste 150 de organizatii din diferite domenii si la care au participat
peste 6000 de persoane pun in evidenta faptul ca o echipa performanta este caracterizata de 5
dinamici cheie:
Pentru a actiona eficace in directia dezvoltarii unei echipe trebuie sa stabilim unde
anume este necesar sa se focalizeze interventia sau daca este cazul unei interventii sistemice.
Instrumentele pe care le utilizam pentru diagnosticare vizeaza aceste 5 dinamici cheie:
10
11
PARTEA II
APLICAREA
PROCEDURILOR
CALITATE
12
DE
13
cod curat care s asigure execuia mai fluid a diverselor funcii. Acest lucru
trebuie s conduc la o vitez de ncrcare mai mare. Acest aspect poate parea
fr importan, dar avnd n vedere viteza conexiunilor la care au n prezent
acces din ce n ce mai muli utilizatori de internet n cazul executarii unei cutri
ntr-un site cu continut complex, fiecare milisecunda conteaza.
14
Un website i atinge scopul atunci cnd publicul pentru care a fost creat poate beneficia
optim de coninutul acestuia. Daca site-ul nu direcioneaza vizitatorii ctre accesarea
informaiilor disponibile, iar coninutul este greu de gsit, va pierde trafic. Vizitatorii se
plictisesc rapid, nu au rabdare s caute i tiu c pot gasi informaii, mai repede, i n alta
parte. Prin urmare, coninutul unui site trebuie s fie accesibil, lizibil i vizibil.
5.
Un website, pentru a atrage vizitele publicurilor int, trebuie s poat fi gsit rapid de
ctre motoarele de cutare i n directoarele cel mai des folosite. Astfel, exist procedurile
de optimizare a site-urilor pentru motoarele de cutare , care, daca sunt aplicate corect,
pot s dea rezultate foarte bune i s poziioneze site-ul preferenial fa de alte site-uri al
cror coninut nu este optimizat.
15
PARTEA III
APLICAREA NORMELOR DE TEHNICA
SECURITATII
MUNCII
SI
16
17
18
PARTEA IV
INTRODUCEREA INFORMAIILOR I
DATELOR N FORMAT ELECTRONIC
19
I.Data i informaia
II.
a) Editoare de text: sunt o aplicaie software (un program) folosit pentru editarea
(= crearea i modificarea) de fiiere text, mai mult sau mai puin complexe. Spre
deosebire de procesoarele de texte, un editor de text nu ofer funciile complexe
specifice crerii asistate de calculator a publicaiilor (numite aplicaii de tip
DeskTop Publishing, DTP).Editoarele de text se folosesc ndeosebi pentu scrierea
(dezvoltarea) de programe i de pagini web (pot fi: simple ex.:Notepad, complexe:
phpDesigner7 (editor php printre altele) etc.).
b) Editoare grafice complexe: Schimb sau mbuntesc imaginile grafice de
exemplu:imagini bitmap, fotografii, imagini grafice vectoriale etc. Folosind un
editor grafic, imaginile pot fi modificate de utilizator folosind stilou, pensula,
aerograful i alte instrumente. Display-urile computerelor sunt alctuite din puncte
minuscule numite pixeli . Imaginile bitmap sunt de asemenea construite folosind
20
21
Procesul informaional
1. Introducerea datelor;
2. Prelucrarea datelor;
3. Extragerea informaiilor;
4. Arhivarea(stocarea)datelor.
22
Tipuri de fiiere:
23
24
Control
Pictogram
Descriere
25
Caset text
Utilizatorii
formular.
pot
introduce
Un
control
care
poate
imagini,
liste
tabele.
Un control care prezint
utilizatorilor
list
de
de
formularului
date
sau
ale
de
la
din
conexiunea de date la un
document XML, baz de
date,
serviciu
Web
26
sau
Caset combo
utilizatorilor
list
de
selecteaz
din
conexiunea de date la un
document XML, baz de
date,
serviciu
Web
sau
Caset list
care
utilizatorilor
prezint
list
de
selecteaz
de
formularului
date
sau
ale
de
la
din
conexiunea de date la un
document XML, baz de
date,
serviciu
Web
sau
de
selectare
pentru
un
da/nu
formular Web)
27
sau
adevrat/fals,
ptrat
ajutorul
mic.
Cu
CheckBox-urilor
valoare
respectivul cmp.
Buton
(de
trimitere
date,
ntre
alte
posibiliti. De asemenea,
butonul se poate asocia la
reguli sau cod particularizat
care
se
execut
cnd
28
PARTEA V
PROCESAREA
INFORMATIILOR
DOCUMENTELOR
DIN
BRUTE
29
SI
FORMATE
MICROSOFT WORD
Microsoft Word este o aplicaie de procesare de text i face parte din suita de aplicaii
Microsoft Office.
Un procesor de text, sau un sistem de pregtire a documentelor, este o aplicaie
software folosit pentru producerea (nelegnd prin aceasta: compoziie, editare, aezare
n pagin sau formatare, eventual i tiprire) de orice tip de material destinat tipririi.
Deschiderea aplicaiei Word
Exist dou posibiliti de a deschide aplicaia Microsoft Word:
Din meniul Start Programs - Microsoft Word
Efectund dublu clic pe pictograma Microsoft Word de pe ecran
Dup executarea uneia dintre cele 2 posibiliti se deschide urmtoarea fereastr:
Deschiderea unui document Word
30
O alt metod de salvare a documentul este prin folosirea combinaie de taste Ctrl
+ S.
Dup folosirea uneia dintre aceste metode se deschide urmtoarea fereastr:
Dup ce se salveaz documentul pe bara de titlu a aplicaiei apare numele cu care
a fost salvat documentul. Dup ce documentul a fost salvat cu un nume pentru a salva
modificrile fcute n document se folosete butonul Salvare
Ctrl + S.
Pentru a salva fiierul cu o alt extensie la opiunea Tip fiier din fereastra Salvare ca se
alege tipul fiierului.
aplicaiei
La nchiderea documentului, dac modificrile nu au fost salvate aplicaia Microsoft
Word afieaz pe ecran urmtoarea fereastr:
31
nchiderea aplicaiei
Pentru a nchide aplicaia se alege opiunea Ieire din meniul Fiier sau se poate
apsa pe butonul de nchidere
. n cazul
32
numele utilizatorului
Aceste modificri pot fi fcute din fereastra Opiuni ce se deschide selectnd meniul
Instrumente - Opiuni .
Introducerea simbolurilor i a caracterelor speciale
Microsoft Word permite utilizatorului s foloseasc, pe lng caracterele normale i alte
caractere speciale. Acestea se introduc din fereastra Simbol ce se deschide activnd
opiunea Simbol din meniul Inserare.
Pentru a introduce n text un caracter special trebuie s poziionai punctul de inserare n
locul n care se dorete introducerea simbolului. Din fereastra Simbol se selecteze
simbolul dorit i se apas butonul Inserare.
Simbolurile pot fi formatate asemenea unui text normal.
Microsoft
Word
permite
anularea
33
de pe bara
textul selectat. Odat ce ai tiat textul selectat, mutai puctul de inserare ntr-o nou
locaie i executai un click pe butonul Lipire
Pentru decuparea textului se poate folosi i combinaia de taste Ctrl + X sau din
meniul Editare se alege comanda Decupare
34
aflat pe bara standard. Mutai cursorul ntr-o nou locaie (in cadrul
aceluiai document sau ntr-un document nou) i efectuai click pe butonul Lipire
Acum, avei dou copii ale textului selectat una n locaia original a textului i una n
noua locaie. Pentru copiere, n afara de buton, se mai poate folosi combinaia de taste
CTRL+C, sau opiunea Copiere din meniul Editare
Odat ce utilizatorul a copiat sau a mutat un text, informaia se pstreaz n
memoria Clipboard a calculatorului de unde poate fi lipit de fiecare dat cnd se folosete
comanda de Lipiere.
De asemenea pentru Lipire, n afara de buton, se mai poate folosi combinaia de
taste CTRL+V, sau opiunea Lipire din meniul Editare.
tergerea textului
Pentru a terge un text se folosete tasta BackSpace(terge la stnga punctului de
inserare) sau tasta Delete (terge la dreapta punctului de inserare). Pentru a terge o
poriune mai mare de text, acesta se selecteaz i se apas tasta Delete.
Gsirea i nlocuirea
Exist situaii n care este necesar ca n interiorul unui document s gsim un
anumit cuvnt. Pentru a uura munca de cutare a aplicaiei Microsoft Word, ofer o
funcie de gsire n interiorul documentului. Pentru a activa aceast funcie exist dou
posibiliti:
se apas simultan tastele CTRL+F
din meniul Editare se selecteaz opiunea Gsire
n ambele situaii se va deschide fereastra Gsire i nlocuire.
n cmpul De cutat se scrie cuvntul care se caut i se apas butonul Urmtorul
gsit.
De fiecare dat cnd cuvntul cutat a fost gsit n text, cutarea se suspend i
cuvntul gsit apare selectat n text. Cutarea se poate relua apsnd din nou butonul
Urmtorul gsit.
Pentru a nlocui un cuvnt din text cu altul Microsoft Word, ofer o funcie de
nlocuire a cuvintelor. Pentru a activa aceast funcie exist dou posibiliti:
se apas simultan tastele CTRL+H
35
Formatare text.
Formatarea fonturilor
Orice text introdus ntr-un document Word trebuie format. Prin procedeul de
formatare se lucreaz asupra caracterelor din interiorul paragrafelor pentru obinerea unor
efecte: font, dimensiune, stil de afiare (sublinieri, ngrori, nclinare), cuvinte cheie,
citate, efecte special, indici, spaiul dintre caractere, introducerea unor caractere speciale
(sgei, figuri, semne speciale etc.)
Pentru a putea formata un text se apeleaz comanda Font din meniul Format. Se
deschide urmtoarea fereastr:
Pentru a se economisi timp, modificrile asupra textului se pot realiza folosind
butoanele de pe bara de formatare.
Cursiv
(ngroare) (nclinare)
Culoare text
Subliniere
36
Desprirea n silabe
Desprirea n silabe se poate face n dou feluri:
OK.
Formatarea paragrafelor
Pentru
vizualiza
paragrafele
introduse
ntr-un
text
se
activeaz
butonul
37
ncepnd de la tabulator
Tabulator de aliniere la dreapta
de poziia tabulatorului.
Tabulator separator zecimal
38
Folosirea chenarelor
Pentru a evidenia un cuvnt, sau o parte dintr-un text putei alege s ncadrai textul
respectiv ntr-un chenar. Pentru aceasta trebuie urmai paii:
se selecteaz textul pentru care se dorete adugarea chenarului
din meniul Format, clic pe opiunea Borduri i umbrire. Apare fereastra Borduri
i umbrire.
Pentru a aplica un efect umbrit n interiorul unui chenar se folosete meniul
Umbrire din fereastra Borduri i umbrire din care se alege culoarea de umplere a
chenarului.
39
inserare numrul
total al paginilor
inserare
dat curent
inserare
ora curent
i subsol
posibilitatea de a introduce un antet sau un subsol. Pentru aceasta se activeaz opiunea
Antet i subsol din meniul Vizualizare. Se vor activa automat seciunile Antet (n parte de
sus a paginii) i Subsol (n partea de jos a paginii) precum i bara de butoane Antet i
subsol. Dup introducerea textului n antet sau n subsol se apas butonul nchidere sau
se face un dublu click n document.
Numerotarea paginilor
Programul Microsoft Word ofer posibilitatea de a numerota paginile din
document. Pentru acesta, se alege opiunea Numere de pagin din meniul Inserare.
Dac dorii ca numerotarea s nu fie afiat pe prima pagin, debifai opiunea de
40
41
42
, sgei cu
sau
. Se pot stabili
Dac vrei s mrii sau s micorai obiectul va trebui s-l selectai i s tragei
cu butonul stng al mouse-ului de butoanele de control aprute n jurul obiectului. Pentru
a muta un obiect n pagin putei s v poziionai pe el i cu butonul stng apsat s-l
deplasai n alt loc. Eliberai butonul atunci cnd ai ajuns n locul dorit.
Dac dorii s adugai text pe un obiect trebuie s facei un clic dreapta pe el i s
selectai comanda Adugare text din meniul care apare. Textul poate fi formatat n mod
obinuit cu ajutorul comenzilor de formatare.
43
PARTEA VI
LIMBAJUL HTML, BAZE DE DATE
MYSQL,
LIMBAJUL
JAVASCRIPT,
CADRUL
DE
SOFTWARE,
FRAMEWORK.NET
44
PLATFORMA .NET
Prezentare
NET este un cadru (Framework) de dezvoltare software unitar care permite realizarea,
distribuirea i rularea aplicaiilor-desktop Windows i aplicaiilor WEB. Tehnologia .NET
pune laolalt mai multe tehnologii (ASP, XML, OOP, SOAP, WDSL, UDDI) i limbaje
de programare (VB, C++, C#, J#) asigurnd totodat att portabilitatea codului compilat
ntre diferite calculatoare cu sistem Windows, ct i reutilizarea codului n programe,
indiferent de limbajul de programare utilizat.
.NET Framework este o component livrat mpreun cu sistemul de operare Windows.
De fapt, .NET 2.0 vine cu Windows Server 2003, se poate instala pe versiunile anterioare,
pn la Windows 98 inclusiv; .NET 3.0 vine instalat pe Windows Vista i poate fi instalat
pe versiunile Windows XP cu SP2 i Windows Server 2003 cu minimum SP1.
Pentru a dezvolta aplicaii pe platforma .NET este bine sa avem 3 componente
eseniale:
un set de limbaje (C#, Visual Basic .NET, J#, Managed C++, Smalltalk, Perl, Fortran,
Cobol, Lisp, Pascal etc),
un set de medii de dezvoltare (Visual Studio .NET, Visio),
i o bibliotec de clase pentru crearea serviciilor Web, aplicaiilor Web i aplicaiilor
desktop Windows.
Cnd dezvoltm aplicaii .NET, putem utiliza:
Servere specializate - un set de servere Enterprise .NET (din familia SQL Server
2000, Exchange 2000 etc), care pun la dispoziie funcii de stocare a bazelor de date,
email, aplicaii B2B (Bussiness to Bussiness comer electronic ntre partenerii unei
afaceri).
Servicii Web (n special comerciale), utile n aplicaii care necesit identificarea
utilizatorilor (de exemplu, .NET Passport - un mod de autentificare folosind un singur
nume i o parol pentru toate ste-urile vizitate)
Servicii incluse pentru dispozitive non-PC (Pocket PC Phone Edition, Smartphone,
Tablet PC, Smart Display, XBox, set-top boxes, etc.)
.NET Framework
45
directorul
C:\WINDOWS\Microsoft.
NET\Framework\V2.0.
(corespunztor
versiunii instalate)
Compilarea programelor
Un program scris ntr-unul dintre limbajele .NET conform Common Language
Specification (CLS) este compilat n Microsoft Intermediate Language (MSIL sau IL).
Codul astfel obinut are extensia exe, dar nu este direct executabil, ci respect formatul
unic MSIL.
CLR include o main virtual asemntoare cu o main Java, ce execut instruciunile
IL rezultate n urma compilrii. Maina folosete un compilator special JIT (Just In
Time). Compilatorul JIT analizeaz codul IL corespunztor apelului unei metode i
produce codul main adecvat i eficient. El recunoate secvenele de cod pentru care s-a
obinut deja codul main adecvat permind reutilizarea acestuia fr recompilare, ceea
ce face ca, pe parcursul rulrii, aplicaiile .NET s fie din ce n ce mai rapide.
Faptul c programul IL produs de diferitele limbaje este foarte asemntor are ca rezultat
interoperabilitatea ntre aceste limbaje. Astfel, clasele i obiectele create ntr-un limbaj
specific .NET pot fi utilizate cu succes n altul.
n plus, CLR se ocup de gestionarea automat a memoriei (un mecanism implementat n
platforma .NET fiind acela de eliberare automat a zonelor de memorie asociate unor date
devenite inutile Garbage Collection).
46
47
HTML
Ce este HTML?
HTML este prescurtarea pentru HyperText Markup Language.
HyperText este metoda prrin care navighezi pe web apsnd pe text special
numit hyperlink care te direcioneaz ctre alte pagini. Prin hyper se nelege
neliniar adic, poi ajunge ctre orice loc de pe Internet cand vrei apsnd pe
link-uri nu exist ordine prestabilit n care se fac lucrurile.
Markup este ceea ce extensiile HTML fac textului din interiorul lor. l marchez
ca un anumit tip de text (text n italic, de exemplu).
HTML este un limbaj, avand codul i sintaxa sa, ca orice alt limbaj.
48
49
Ce este un tag?
HTML utilizeaz "tag-uri" pentru a specifica modul n care textul va fi formatat atunci
cnd se va folosi un web browser. Tag-urile sunt nconjurate de paranteze n unghi. Tagurile vin de cele mai multe ori n perechi. n fiecare pereche, exist o etichet de
deschidere "<>" i o etichet de nchidere "</> '. Tag-ul de deschidere conine un nume
de etichet i, uneori, atributele tag-ului. El i spune browser-ului c ai dori s efectuai o
aciune de formatare din acel punct al textului. Eticheta de nchidere spune browser-ului,
cu "/" (numit forward slash), urmat de acelai nume al tag-ului, c dorii s oprii
aciunea la acel punct al textului.
Bold (ngroat)
Pentru a face cuvintele s apar boldate (bold), nconjurai textul cu taguri <b></b> .
<b>Trenul Consecinelor</b> Trenul Consecinelor
Italic (nclinat) Pentru a face cuvintele s par nclinate spre dreapta, nconjurai textul cu
taguri <i></i>.
<i> Aproape Onest</i> Aproape Onest
50
Subscript (indice) Pentru a face cuvintele s apar ca jumtate din nlime i 50% sub
linie, nconjurai textul cu taguri <sub></sub>.
<sub>n ora mea cea mai ntunecat</sub> n ora mea cea mai ntunecat
Superscript (exponent)
Pentru a face cuvintele s apar ca jumtate din nlime i 50% peste linie,
nconjurai textul cu taguri <sup></sup>.
<sub>Poduri arznde</sup> Poduri arznde
Cum pot folosi un heading?
O poziie n text este creat cu <H1> tag. Exist de fapt 6 poziii de tag-uri: <H1> (cel
mai mare) i <H6> (cel mai mic).
51
52
∈</font>A
Tag-urile HTML
Un document HTML ncepe cu un element HTML care conine HEAD i BODY
Pentru a ncepe o pagin HTML:
53
Tastai </html>
Tag-ul HEAD
Seciunea head este locul unde vei defini titlul paginii tale, incluznd informaii
despre pagina ta, pentru motoarele de cutare precum Google, stabilete locaia paginii,
adaug stil foii tale i scrie script-urile.
Pentru a crea seciunea head:
Tasteaz </head>.
Tag-ul BODY
Body documentului tu HTML include coninutul paginii tale de Web, care este,
partea pe care vizitatorii ti o vor vedea, inclusiv textul i elementele de grafic.
Pentru a crea cuprinsul:
Tasteaz</body>
54
55
Crearea unei pagini web folosind cod HTML cu exemple de formatare a textului
56
57
<HTML>
<HEAD>
<TITLE>Imagini</TITLE></HEAD>
<BODY BACKGROUND=background.jpg>
<CENTER><B>Adaugarea imaginilor in paginile web</B>
<BR>
<IMG SRC=uk_steag.jpg >
58
Crearea unei pagini web folosind cod HTML cu exemple de imagini i background
59
Problem propus:
<html>
<head>
<title> Culori pentru legaturi</title>
</head>
<body link="blue" vlink="green" alink="#FF0000">
<h3>Setarea culorilor pentru link-uri:<br>rosu pentru legaturi active, verde pentru
legaturi vizitate i albastru pentru legaturi nevizitate </h3>
<a href=pag1.html>
Link catre pagina 1 <br>
<a href=pag2.html>
Link catre pagina 2 <br>
<a href=pag3.html>
Link catre pagina 3 </a>
</body>
</html>
60
<tabel>
<tr>
<td>celula 1 </td>
<td>celula 2 </td>
<td>celula 3 </td>
</tr>
7. Repet paii 2. pn la 7. pentru fiecare rnd.
8. Dupa ce completezi numrul de rnduri dorit, tasteaz tag-ul </table> pentru a
termina tabelul.
61
EXEMPLU
Frames
Ce sunt frames?
Cu frames, poi afia mai mult de un document HTML n aceeai fereastr de
browser.Fiecare document HTML se numete frame i fiecare frame este independent de
celelalte.
62
Poi vedea o linie vertical ce divide ecranul n dou pari. Cea din stnga este o bar
lateral n timp ce cea din dreapta este o list cu anunuri pentru o lecie de zoologie.
Acestea sunt dou documente separate HTML pe care, pn n acest moment, ar trebui s
fii capabil s le creezi singur, deci haide s ne concentrm pe codul pe care urmeaz s-l
foloseti pentru a pune toate acestea ntr-o pagin de Web.
Tag-ul Frameset
Tag-ul <frameset> definete modul n care se poate mpri fereastra n frame-uri. Fiecare
frameset definete un set de rnduri / coloane. Valorile rndurilor / coloanelor Indic ct
din suprafaa ecranului va fi ocupat de fiecare rnd / coloan.
63
Tag-ul frame
Tag-ul <frame> definete ce document HTML trebuie s fie pus n fiecare frame. n
exemplul de mai sus, am creat un set de frames cu dou coloane. Prima coloan ocup
15% din browser-ul total al ecranului, iar a doua coloan ocup restul. Documentul
HTML "sidebar.html" este pus n prima coloan, i documentul HTML "content.html"
este pus n a doua coloan.
Reine c, dac doreti s previi un utilizator s redimensioneze un frame (prin
tragerea de cadru) adaug cuvintele noresize frame-ului pe care doreti s-l blochezi.
Mai mult, dup cum se poate observa n exemplul de mai sus, tag-ul <body> lipsete.
Aceasta este din cauz c nu se poate utiliza tag-ul <body>, mpreun cu tag-ul
<frameset>.
Problema rezolvat: S dezvoltm o pagin web care s conin legturi ctre
site-uri ale unor ziare din Romnia. Site-ul fiecrui ziar se va deschide ntr-o nou
fereastr, atunci cand se va efectua un click pe legtura ctre acesta. Atunci cnd
utilizatorii paginii web vor trece cursorul mouse-ului deasupra legturilor, va apare o
mic not explicativ (folosind atributul TITLE).
Vom folosi urmtorul cod HTML pe care l vom salva sub numele ziare.html:
<HTML>
<HEAD>
<TITLE>Legaturi catre site-uri particulare</TITLE>
</HEAD>
<BODY>
<CENTER>
<b>Legaturi catre site-urile unor ziare din Romania </b>
</CENTER>
<BR><A HREF="http://www.evz.ro" TARGET="_blank"
TITLE="Ziarul Evenimentul Zilei">Evenimentul Zilei</A>
<BR><A HREF="http://www.prosport.ro" TARGET="_blank"
TITLE="Ziarul Prosport">Prosport</A>
<BR><A HREF="http://www.gsp.ro" TARGET="_blank"
TITLE="Ziarul Gazeta Sporturilor">Gazeta sporturilor</A>
<BR>
</BODY>
</HTML>
64
Problem propus:
<html>
<head>
<title> Legaturi catre fisiere oarecare</title>
</head>
<body>
<h4>Legaturi catre fisiere oarecare</h4>
<a href="fisier.doc">
Link catre fisierul fisier.doc
</body>
</html>
65
Problem propus:
<html>
<head>
<title>Pagina cu liste</title></head>
<body>
<p>Aceasta pagina exemplifica crearea listelor</p>
<p>Cele mai uzual folosite tipuri de liste sunt:
<ul>
<li>neordonate</li>
<li>ordonate</li>
</ul>
<p>O lista ordonata este o lista numerotata:
<ol>
<li>primul element;</li>
<li>al doilea element...</li>
</ol>
</body>
</html>
66
<html>
<head><title>tabel</title></head>
<body><h4 align=center>Un tabel cu chenar</h4><hr>
<table border="4">
<tr> <td>cell 11</td> <td>cell 12</td></tr>
<tr> <td>cell 21</td> <td>cell 22</td></tr>
<tr> <td>cell 31</td> <td>cell 32</td></tr>
<tr> <td>cell 41</td> <td>cell 42</td></tr>
</table>
</body>
</html>
67
Alinierea tabelului ntr-o pagin Web se face folosind atributul align al etichetei
<table>, cu urmtoarele valori posibile: "left" (valoarea prestabilit), "center " i "right".
Unui tabel i se poate ataa un titlu cu ajutorul etichetei <caption> (de la "table
caption" = titlu tabel). Aceast etichet trebuie plasat n interiorul etichetelor
<table>...</table>, dar nu n interiorul etichetelor <tr> sau <td>. Titlul unui tabel poate fi
aliniat cu ajutorul atributului align al etichetei <caption>, care poate lua una dintre
valorile:
"bottom" ( sub tabel );
"top" ( deasupra tabelului );
"left" ( la stanga tabelului );
"right" ( la dreapta tabelului ).
Problema rezolvat: S crem un tabel cu 2 coloane i 2 rnduri, border 1,
coloana 1 lime 80px, coloana 2 lime 160px, fiecare celul are o alt culoare de fond
(bgcolor).
<table border="1">
<tr>
<td width="80" bgcolor="red">rosu</td>
<td width="160" bgcolor="yellow">galben</td>
</tr>
<tr>
<td bgcolor="white">alb</td>
<td bgcolor="green">verde</td>
</tr>
</table>
68
69
70
prin plasarea n eticheta <a> a atributului target, care precizeaz numele ferestrei
(cadrului) n care se va ncrca pagina nou referit de legtur, conform sintaxei:
<a href="legatura" target="nume_fereastra/frame">...</a>
Atributul target accept anumite valori predefinite. Aceste valori sunt:
"_self" (ncrcarea noii pagini are loc n cadrul curent);
"_blank" (ncrcarea noii pagini are loc ntr-o fereastr nou anonim);
"_parent" (ncrcarea noii pagini are loc n cadrul printe al cadrului curent dac acesta
exist, altfel are loc n fereastra browserului curent);
"_top" (ncrcarea noii pagini are loc n fereastra browserului ce conine cadrul
curent);
Probleme propuse:
<!--index.html -->
<html>
<head><title>Ferestre</title></head>
<frameset rows="100,*,10%">
<frame src="pag1.html">
<frame src="uk_steag.jpg">
<frame src="pag2.html">
</frameset><noframes></noframes>
</html>
<!--pag1.html -->
<html>
<head>
<title>Pagina 1</title>
</head>
<body>
71
72
not pentru ca mai trziu s ne dm seama ce face codul respectiv sau ce anume rmne
de introdus.
Crearea Formularelor
Cum pot crea un formular simplu?
Un formular este pur i simplu o zon care poate s conin cmpuri de formulare.
Cmpurile din formular sunt obiecte care permit vizitatorilor de a introduce informaii
de exemplu casete de text, meniuri derulante sau butoane radio. Cele mai comune utilizri
ale formularelor sunt sondajele, formulare on-line de comand, feedback-ul, sau chiar
orice pagin Web, n care este necesar un input din partea utilizatorului, n vederea
ndeplinirii unei sarcini date sau de a furniza un serviciu utilizatorului.
Aceasta este modalitatea prin care poi crea un formular simplu:
73
74
MULTIMEDIA
Cum pot aduga o imagine paginii mele de Web?
S presupunem c avem fiierul de imagine "cat.jpg", i vrem s l punem pe site-ul
nostru. Pentru a face acest lucru, vom folosi tag-ul <img> oriunde dorim n pagina
HTML, pentru ca imaginea s fie afiat. Codul, n forma sa cea mai simpl, este ca
acesta:
<img src=cat.jpg>
Singurul impediment pentru ca acest cod sa funcioneze, este acela c avem o imagine cu
numele de cat.jpg, n acelai folder cu pagina noastr de HTML. n cazul n care
imaginea este ntr-un director diferit, tastm att calea, ct i numele fiierului, de
exemplu, daca l pstrm ntr-un folder separat, numit imagini, codul va fi: <img
src="images/cat.jpg"/>
75
Cum pot ncorpora alte tipuri de date multimedia n pagina mea de web?
Putei aduga diverse tipuri de date multimedia la pagina dvs. Web ntr-un mod similar
cu adugarea de imagini. n loc de a utiliza <img> tag-ul, care este utilizat numai pentru
imagini, putei utiliza tag-ul <object>, care este mai generic. Tot ce trebuie s facei este
s defini tipul de datelor multimedia pe care vrei s le incorporai.
76
PHP
Ce inseamna server?
Toata lumea stie, probabil, ce inseamna Internet: acea colectie uriasa
de echipamente legate intre ele in scopul schimbului de informatii sau
servicii. Daca ar fi sa simplificam mult ideea de internet, am putea
considera ca acesta este o retea de calculatoare in care fiecare nod
(calculator) gazduieste informatii sau servicii ce pot fi accesate de
publicul larg. Aceste calculatoare din internet poarta numele
de servere.
In sens larg, un server este un dispozitiv (combinatie de hardware si
software) care ofera servicii si/sau informatii utilizatorilor (clientilor).
O data cu notiunea de server apare si cea de arhitectura clientserver, care se refera la un ansamblu format dintr-un dispozitiv server
(furnizor de informatii) si un dispozitiv (calculator) client, conectate
prin intermediul unei retele si care fac schimb de informatii. Cel mai
comun exemplu al acestui ansamblu este dat de functionalitatea de
partajare a fisierelor in retea (File Sharing). Spre exemplu, un
calculator contine un folder partajat (share-uit) si un alt calculator
copiaza folderul prin retea. In aceasta situatie, calculatorul care ofera
folderul are functia de server iar cel care preia folderul - pe cea de
client. Rolul de client/server nu este statornic in acest scenariu, oricare
din cele doua calculatoare putand oricand sa detine oricare din functii.
Asadar notiunea de server se aplica in momentul in care dispozitivul
din retea (calculatorul) ofera informatii sau servicii.
Server web
Un tip particular de server, este server-ul web. Un server web este
un sistem care gazduieste si ofera pagini web prin intermediul unei
retele. De cele mai multe ori, termenul de server web desemneaza a
aplicatie, un program care ruleaza pe calculatorul-server si care este
responsabil cu primirea cerintelor de la utilizatori si transferarea
paginilor web catre ei.
Ce inseamna site?
Paginile stocate pe un calculator-server si oferite publicului larg sunt
grupate sub denumirea generica desite. Un site (denumit si website)
este, asadar, o colectie de pagini web, interconectate, stocate pe un
server web.
Deservirea paginilor
77
Deservirea
PHP
unei
pagini
statice,
fara
interventia
interpretorului
Pregatirea
calculatorului
pentru
lucrul
cu
PHP.
Instalare PHP
Cel mai simplu mod de a lucra cu PHP este sa fie instalat pe
calculatorul personal. Este nevoie, asadar, ca propriul calculator sa
devina un server web mai intai. Acest lucru este posibil instaland o
aplicatie capabila sa accepte cerinte si sa transmita pagini web ca
raspuns. O astfel de aplicatie este Apache HTTP Server.
78
Deservirea
unei
pagini
statice,
fara
interventia
interpretorului
PHP
79
Static si dinamic
Din imaginile de mai sus, se observa ca atunci cand nu exista un
interpretor PHP, paginile sunt transmise direct catre utilizatori asa cum
sunt salvate pe disc, fara modificari. Pentru a actualiza continutul
acestora, este nevoie de interventie directa asupra lor si salvarea
modificarilor pe server. Aceste pagini sunt denumite"pagini statice".
Spre exemplu, presupunand ca avem o pagina statica ce afiseaza
membrii unei comunitati, la fiecare inscriere a unei noi persoane,
pagina ar trebui modificata manual de catre cineva cu acces la serverul
web. Lucrurile se complica daca acea lista este personalizata, cu
trimiteri catre alte informatii (cum ar fi detalii de contact pentru
fiecare, etc) sau cu un design intortocheat. Toate aceste probleme pot
fi rezolvate cu ajutorul PHP.
Folosind o secventa de cod PHP am putea prelua lista de membri dintro baza de date, eliminand problema actualizarii - nu va mai fi nevoie
sa se modifice pagina odata cu fiecare membru nou, scriptul PHP va
afisa in mod automat noile persoane adaugate in baza de date. Este
rezolvata si problema linkurilor personalizate, sau a designului - toate
elementele specifice unei persoane pot fi generate in mod automat.
Aceste pagini sunt, asadar, modificate de catre PHP la momentul
accesarii lor de catre utilizatori. In functie de parametrii primiti si de
secventa de cod definita de programator, aceasi pagina poate avea
continut diferit. Aceasta proprietate este denumita dinamism, iar o
astfel de pagina este considerata pagina dinamica.
80
2.
3.
4.
5.
6.
81
presupunem
-
Daca
il
ca
!
fisierul
accesam
se
in
numeste
browser
salut.php.
folosind
adresa
procesarii
afisat
de
browser
va
fi
"Salut!".
82
'<html><body>';
'</body></html>';
?>
Nota: interpretorul PHP nu este instalat implicit pe orice calculator.
Pentru ca toate exemplele de pe site sa functioneze, trebuie sa instalati
(manual) un interpretor. Vedeti sectiunea "Inainte de a incepe" pentru
detalii.
Ce afiseaza PHP?
Rezultatul unui script PHP este de obicei text simplu care, de cele mai
multe ori, este interpretat ca fiind cod HTML. Cu alte cuvinte, in
majoritatea cazurilor PHP returneaza o pagina ce va fi afisata in
83
"Salut";
?>
Probabil v-ati astepta ca rezultatul sa fie un text afisat pe 2 linii.
Salvand aceasta secventa intr-un fisier PHP si accesandu-l prin
intermediul unui web-server, veti observa ca rezultatul este urmatorul:
SalutAcesta este un script simplu
Desi este confuz, rezultatul este corect. Codul PHP afiseaza doar
caracterele care i-au fost indicate. Sfarsitul de linie reprezinta un
caracter separat, ne-printabil, dar care controleaza cum apare textul
pe ecran. In cazul nostru, nu s-a transmis acest caracter (numit si newline)
"Salut";
?>
Verificand iar in browser veti constata ca nu s-a schimbat nimic. La
prima vedere. In realitate rezultatul este afisat pe 2 linii, in textul
trimis de PHP catre browser. Intrucat pagina este interpretata ca fiind
HTML,
browserul
ignora
caracterele
new-line.
Pentru
verificare
vizualizati sursa paginii (meniul View din browser -> view source).
Pentru a ajunge la efectele dorite (acelea de a afisa un text pe 2 linii)
trebuie folosit urmatoarea secventa:
<?php
84
"Salut";
?>
Sursa paginii arata in felul urmator:
Salut
<br>Acesta este un script simplu
In browser nu apare tagul BR, intrucat acesta este interpretat ca sfarsit
de linie. Caracterul "new-line" afisat de noi (in print "\n") este ignorat
oricum. Rezutatul:
Salut
Acesta este un script simplu
"1";
"2";
"3";
?>
Rezultatul va fi
85
<%
/* taguri in stilul asp, acceptarea lor de catre web-server
depinde de configurare */
%>
86
PHP
este
format
din instructiuni -
comenzi
date
catre
interpretor, in urma carora se executa ceva. Asa cum s-a mai spus,
PHP este folosit in principal pentru a genera cod HTML, asa ca de cele
mai multe ori instructiunile folosite sunt cele de afisare. In aplicatii mai
complexe se pot insa folosi si instructiuni de conectare la bazele de
date, de citire/scriere/manipulare fisiere, intructiuni de trimitere emailuri si altele. Instructiunile se pot grupa in blocuri delimitate de
acolade { }. Aceste blocuri, numite si "instructiuni complexe" se
comporta ca si cum ar fi o singura instructiune (vezi mai jos exemple
de blocuri).
Toate instructiunile (in afara de blocuri) trebuie sa fie terminate
cu punct si virgula ( ; ). Lipsa acestuia genereaza o eroare.
"Text";
87
"Text";
"Afisez";
4;
" bucati";
?>
Instructiuni de atribuire
Alte instructiuni, la fel de uzuale ca cele de afisare, sunt cele de
atribuire. Acestea sunt explicate mai pe larg in sectiunea "Variabile.
Constante".
Instructiunea if
In afara de aceste 2 categorii, la fel de des intalnita este
instructiunea if. Aceasta se numeste instructiunea de test si este
folosita pentru a executa o secventa de cod in functie de valoarea de
adevar a unei conditii. Exista mai multe forme, prezentate mai jos:
if( conditie ) instructiune 1;
Aceasta forma permite executarea unei instructiuni numai daca este
indeplinita o conditie. Conditia poate fi orice expresie de genul "2 mai
mic decat 3", "variabila $a este definita", s.a. tradusa in limbajul PHP.
88
bloc
(trebuie
folosite
acoladele).
Exemplu:
<?php
if( 2 < 4 ) print "2 e mai mic decat 4";
if( 3 > 1 ) {
print
"<br />";
}
?>
Atentie! Daca nu se foloseste un bloc in cadrul instructiunii if, atunci
doar prima instructiune dintre cele existente se executa in urma
evaluarii conditiei, pe cand celelalte se vor executa intotdeauna,
indiferent de rezultatul verificarii. De exemplu:
<?php
echo
if( 3 < 2 )
print
?>
Codul de mai sus va afisa:
Este 3 mai mic decat 2? <br />
3 este mai mic decat 2
Pentru ca nu am inclus cele 2 instructiuni print intr-un bloc, a doua
instructiune s-a executat indiferent de valoarea de adevar a conditiei.
Codul corect (din punct de vedere logic) ar fi urmatorul, care contine
un bloc de instructiuni:
<?php
89
if( 3 < 2 ) {
print
}
?>
Instructiunea if - else
De multe ori este nevoie sa se specifice o instructiune ce trebuie
executata daca nu este indeplinita conditia. In acest caz se foloseste if
- else.
if( conditie ) instructiune 1;
else instructiune 2;
Aceasta forma permite executarea unei instructiuni atunci cand se
indeplineste conditia sau executarea alteia diferite in caz contrar.
Aceleasi observatii ca si mai sus se aplica.
Siruri de caractere
In majoritatea scripturilor PHP se lucreaza cu bucati de text
denumite siruri de caractere sau string-uri. PHP prezinta
particularitati in modul in care sunt folosite stringurile, particularitati ce
sunt prezentate in exemplele de mai jos.
Nota: sirurile de caractere reprezinta expresii (entitati ce
au/returneaza o valoare). Asadar, un string poate fi folosit, pe langa,
afisare, in atribuiri, la verificari, etc. In exemplele ce urmeaza s-a optat
pentru afisarea sirurilor.
<?php
print
?>
Nota: in acest exemplu nu este nici o diferenta intre modul de afisare a
sirurilor delimitate prin ghilimele si cele delimitate prin apostrof. Cu
90
<<<TXT
91
?>
Comentarii in PHP
Comentariile sunt portiuni de cod care nu se executa. Sunt folosite de
programatori de regula pentru a da diverse explicatii despre logica
aplicatiei, variabile si altele. Comentariile nu afecteaza executia unui
script si pot fi sterse din cod fara nici un efect.
<?php
// acesta este un comentariu. intreaga linie nu va fi luata
in considerare
# la fel ca mai sus - print "hello" - nu se executa
/* comentariu cu delimitator de inceput si sfarsit */
/* afiseaza
Salut!
*/
?>
Nota: comentariile /* */ nu pot fi imbricate (unele in altele). Exemplul
urmator nu este un cod valid.
<?php
/* comentariu /* altul */ inapoi la primul */
?>
Este un lucru foarte util sa folositi comentarii in cod pentru a explica
modul de rezolvare a problemei abordate, sau pentru a da detalii
despre operatiile efectuate. Acestea va vor ajuta mai tarziu daca veti
vrea sa modificati codul scris, sau vor oferi altor persoane informatii
(valoroase) despre cum ati gandit codul respectiv.
92
Terminarea executiei
<?php
exit(
die(
"Script terminat" );
"Script terminat" );
"Acesta linie nu se afiseaza niciodata";
?>
Nota: instructiunile die si exit sunt echivalente.
Variabile in PHP
Ce sunt variabilele?
Variabilele sunt elemente ce au o anumita valoare la un moment dat.
Valoare unei variabile se poate schimba de-a lungul executiei unui
script.
Lucrul cu variabile in PHP este foarte usor. Nu trebuie specificat un tip
pentru ele (de genul "variabila text", "variabila numerica") ci acesta
este determinat in mod automat.
Variabilele sunt diferentiate de celelalte elemente ale limbajului prin
caracterul $. Astfel, o variabila are forma "$nume". Numele variabilei
poate fi orice identificator valid (un text ce contine doar litere, cifre si
underscore _, fara spatii sau alte caractere; un identificator nu poate
incepe cu o cifra).
Declararea variabilelor
In PHP declararea variabilelor se realizeaza in acelasi timp cu
initializarea lor (cu atribuirea unei valori de inceput). Atribuirea unei
valori se realizeaza cu ajutorul instructiunii de atribuire ce are
forma <nume variabila> = <valoare>;
// variabile numerice
$variabila = 1;
$numar = 0;
// variabile text (stringuri)
93
94
Atribuirea de valori
Se realizeaza la fel ca si declararea prin intermediul instructiunii de
atribuire.
# atribuirea unei valori anume
$variabila = 2;
Stergerea variabilelor
De obicei nu e nevoie ca variabilele sa fie sterse dupa ce au fost
folosite. Totusi, lucrul aceste se poate face in urmatoarele moduri:
unset( $variabila );
$variabila = null;
95
print
echo
Ponturi de PHP
Diferenta dintre ghilimele simple si duble la declararea variabilelor
Ghilimelele duble permite compilatorului sa "citeasca" variabilele ce
apar in interiorul textului.
$today = date( 'd-m-Y' );
$text1 = "Azi e $today";
Verificarea
daca
o
variabila
e
definita
Se pot folosi 2 functii: isset si empty .
// definim o variabila, cealalta definire nu se executa
$var = 0;
96
var_dump( isset($var)
); // bool(true)
var_dump( isset($var2)
); // bool(false)
var_dump( empty($var1)
considerat nul
var_dump( empty($var2)
); // bool(true)
daca
variabila
fost
definita,
pe
97
textul.
($$nume)
$obiect = 'masina';
$masina = "Chevrolet";
$avion = "Boeing";
$tren = "TGV";
$$obiect; // Chevrolet
${$obiect}; // Chevrolet
Constante
Constantele sunt entitati care nu isi schimba valoarea pe parcursul
executiei. Sunt utile pentru a recunoaste usor valorile folosite in cod.
De exemplu, e mai usor de inteles urmatorul cod, cand se foloseste o
constanta decat daca s-ar folosi cifra 5
define( 'ZILE_LUCRATOARE', 5);
$zile = array( 'luni', 'marti', 'miercuri', 'joi', 'vineri',
'sambata', 'duminica' );
98
}
Asadar constantele de definesc folosind define:
define(
'NUME', "Flo" );
define(
'VARSTA', 10 );
define(
"ADEVARAT", true );
if ( !defined( 'VARSTA' ) ) {
define(
'VARSTA' , 2 );
}
print
99
$_GET );
/* afiseaza:
Array
(
[nume] => Alex
[varsta] => 12
[ocupatie] => elev
)
*/
Nota:
numele
parametrilor
au
rol
de cheie in
vectorul
$_GET.
100
101
Constante magice
Limbajul PHP dispune de o serie de "constante magice" care au valori
diferite in functie de anumiti momentul si codul in care sunt folosite.
Denumirea de 'constanta' este improprie, pentru ca, asa cum stiti deja,
o constanta nu-si poate schimba valoarea. Nici 'variabile' nu pot fi
numite deoarece nu au nevoie de declarare sau initializare, asa ca s-a
recurs la un compromis: denumirea 'constante magice' (magic
constants).
Cele mai uzuale sunt __LINE__, __FILE__, __FUNCTION__ si __CLASS__. Mai
noile __DIR__, __METHOD__ si__NAMESPACE__ sunt mai rar folosite datorita
faptului ca au nevoie de o versiune mai noua a interpretorului PHP (cel
putin versiunea 5.0 sau chiar 5.3)
102
__LINE__; // 151
?>
FILE
Contine calea completa catre scriptul PHP care se executa. Daca este
folosita intr-un fisier inclus atunci numele acestui fisier este returnat.
<?php
echo
__FILE__; // numescript.php
?>
FUNCTION
Returneaza numele functie din interiorul careia se foloseste constanta.
<?php
# declar o functie care contine o constanta magica
function spuneNumele() {
echo
__FUNCTION__;
}
# apelez functia care va afisa valoarea constantei
spuneNumele(); // va afisa: spuneNumele
?>
CLASS
Returneaza numele clasei curente.
DIR
Contine numele directorului in case este salvat scriptul curent. Aceasta
constanta este echivalenta cu dirname(__FILE__).
METHOD
Contine numele metodei de clasa din care se foloseste constanta. Se
poate folosi numai cu clase.
NAMESPACE
Contine numele spatiului de lucru curent (name-space).
103
Operatori de comparare
$a == $b // egal
$a === $b // identic (aceeasi valoare si acelasi tip)
$a != $b // diferit
$a <> $b // diferit
$a !== $b // ne-identic
$a < $b // strict mai mic
$a <= $b // mai mic sau egal
$a > $b // strict mai mare
$a >= $b // mai mare sau egal
Exemple:
<?php
$a = 4; # initializam $a cu numarul 4
$b = "4"; # initializam $b cu string-ul "4"
if( $a == 4 ) print "\$a este 4";
104
$a = 5; // 5
$a == 1; // false
In timp ce atribuirile se pot folosi atat de sine statator ($a = 1;), cat si
ca expresii in cadrul instructiunilor (print $a = 1; return $a = 1;)
operatorii == sau === sunt folositi doar in cadrul instructiunilor.
# corect
$a = 10; # atribuire de sine statatoare
print
105
Operatorul ternar
PHP ofera un operator care are 3 termeni. Sintaxa lui este urmatoarea:
(conditie ? adevarat : fals )
De remarcat ca adevarat, fals si conditie nu sunt instructiuni ci expresii
(variabile, constante, stringuri, etc) iar operatorul returneaza o valoare
si nu o variabila.
print
Operatori de incrementare/decrementare
Incrementare inseamna cresterea valorii, de obicei cu o unitate, iar
decrementarea este operatia inversa. PHP ofera (ca si C/C++)
posibilitatea ca incrementarea/decrementarea sa se faca printr-un
operator, fara sa fie nevoie de o instructiune separata. Spre exemplu:
$a = 1;
// pentru a-l creste pe $a cu o unitate, normal am scrie:
$a = $a + 1;
// folosind operatorul de incrementare scriem:
$a++;
// sau
++$a;
// pentru a afisa noua valoare, putem aplica operatorul
direct din instructiunea print:
print
++$a;
106
$a = 1
++$a; // afiseaza 2 - mai intai $a creste cu o unitate,
apoi este afisata noua valoare
print
print
$a = 2
--$a; // afiseaza 1 - mai intai $a scade cu o unitate,
apoi este afisata noua valoare
print
print
Operatori de atribuire
$a = 1; // atribuire simpla
107
108
Operatorul de executie ` `
Operatorul de executie permite rularea unor aplicatii sau comenzi ale
sistemului de operare direct din PHP. Rezultatul executiei este capturat
de script si poate fi prelucrat sau afisat. Operatorul ` ` este echivalent
cu functia shell_exec.
# in ambele situatii de mai jos este afisat continutul
directrului curent
$output = `ls -al`;
echo
"<pre>$output</pre>";
"<pre>$output</pre>";
Alti operatori
109
// script.php
include( 'config.php' );
echo
?>
Functia require face acelasi lucru ca si include dar exista o mica
diferenta intre cele doua: daca fisierul care este solicitat pentru
includere nu exista include va returna un avertisment, continuand
executia, pe cand require va returna o eroare iar executia codului va fi
intrerupta.
<?php
include( 'fisier_inexistent.php' );
si merge mai departe
echo
require( 'fisier_inexistent.php' );
iar executia se intrerupe
echo
// genereaza un warning
// genereaza o eroare
110
= 'adresa@example.com';
?>
111
echo sin(60);
echo decbin(12);
16, 10);
// returneaza convesia
dintr-o baza in alta, afiseaza 2011
echo round(12.3);
echo rand(10,
Functia set_time_limit()
Functia set_time_limit se foloseste pentru a configura timpul maxim cat
scriptul curent are voie sa se execute. Este utila atunci cand codul PHP
trebuie sa execute un volum mare de operatii care ar putea dura
cateva zeci de secunde (spre exemplu la un upload de fisiere). Daca
dupa expirarea timpului scriptul inca se afla in executie, serverul va
intrerupe executia fi va returna o eroare.
<?php
set_time_limit(50);
set_time_limit(0);
Functia flush()
Functia flush trimite catre browser tot ceea ce a fost afisat deja de
script. In mod normal, rezultatul unui script PHP este trimis catre
112
echo
flush();
?>
// afiseaza
VHV0b3JpYWwgUEhQIGluIGxpbWJhIHJvbWFuYQ==
echo base64_decode('VHV0b3JpYWwgUEhQIGluIGxpbWJhIHJvbWFuYQ==');
Functia phpinfo()
Functia phpinfo ofera informatii despre instalarea PHP curenta si despre
serverul pe care aceasta este executata. Rolul acestei functii este pur
informativ; functia nu poate fi folosita intr-un script care are un alt
scop bine definit. De aceea, este recomandata apelarea acestei functii
intr-un script PHP separat, intrucat aceasta creaza o pagina HTML
completa.
<?php
phpinfo();
113
114
115
}
echo
si
cat
timp
conditia
este
adevarata,
repet-o".
116
117
Iterarea cu foreach()
PHP ofera o structura repetitiva foarte puternica si des
folosita: foreach. Aceasta permite iterarea prin toate elementele unui
vector. Pot fi folositi si vectori simpli si asociativi.
Spre deosebire de celelalte instructiuni, pentru foreach nu trebuie
specificata explicit o conditie de oprire, fiind de datoria interpretorului
PHP sa opreasca iterarea atunci cand s-a ajuns la finalul vectorului.
$vector = array( 3, 4, 5, 1, 2, 9, 76, 42, 2, 9, 6, 0, 4, 1,
10 );
"$element ";
}
// afiseaza: 3 4 5 1 2 9 76 42 2 9 6 0 4 1 10
// vector asociativ
$zile = array(
'luni' => 'Mo',
'marti' => 'Tu',
'miercuri' => 'We',
'joi' => 'Th',
'vineri' => 'Fr',
'sambata' => 'Sa',
'duminica' => 'Su'
);
foreach( $zile as $zi) {
print
"$zi ";
}
// afiseaza Mo Tu We Th Fr Sa Su
118
}
/* afiseaza
Mo inseamna luni
Tu inseamna marti
We inseamna miercuri
Th inseamna joi
Fr inseamna vineri
Sa inseamna sambata
Su inseamna duminica
*/
119
'<ul>';
}
echo
'</ul>';
?>
Rezultat:
Romania
France
Bulgaria
United Kingdom
120
}
echo
"</select>\n";
?>
121
# preiau nr de email-uri
$n = count( $emails );
# plec de la primul email-uri
$i = 0;
while( $gasit == false && $i < $n ) {
# verific fiecare email, pe rand
if( strpos( $emails[ $i ], '@' ) !== false &&
strpos(
'<br />';
}
$i++; # cresc pe $i
}
122
?>
Rezultat:
Am gasit un email valid: test@test.com
Nota: se putea folosi si structura repetitiva for pentru ca se cunosteau
dinainte numarul de pasi ce trebuiau efectuati. In schimb, folosind
aceasta implementare, atunci cand se gaseste un email valid se
opreste executia (se iese din bucla while), asadar codul ar putea fi mai
performant decat in cazul folosirii for.
Spre exemplu, daca avem un vector cu 15 elemente, iar pe pozitia a
doua se afla un email valid, atunci executia se termina dupa 2 pasi: la
primul pas se verifica primul element care nu este valid, iar la al
doilea, gasindu-se un email valid se iese din ciclul while (din cauza ca
$gasit nu mai este false).
Operatii cu vectori
Operatiile clasice de cautare, sortare, inserare, etc se pot realiza foarte
usor cu ajutorul functiilor specializate, fara sa fie necesara parcurgerea
manuala a vectorilor. Iata cateva exemple.
$vector = array( 1, 2, 3, 4, 5, 6 );
$vectAs = array(
'unu' => 'one',
'doi' => 'two',
'trei' => 3
);
$vector ); // 6
3, $vector ); // true
123
$vector, 3 ) ); // 4, 5, 6
print_r( array_slice(
$vector, 3, 2 ) ); // 4, 5
print_r( array_slice(
$vector, -5, 3 ) ); // 2, 3, 4
$vectAs );
$unu; // one
$doi; // two
$trei; // 3
// sorteaza un vector
sort(
rsort(
$vector ); // 1, 2, 3, 4, 5, 6
$vector ); // 6, 5, 4, 3, 2, 1
asort(
$vector, 8 );
124
}
if( $gasit ) break; // opreste cautarea daca
browserul a fost identificat
}
?>
Rezultatul este afisat mai jos (nota: incercati sa accesati aceasta
pagina cu browsere diferite pentru a vedea ca mesajul de schimba):
Folositi Chrome!
125
Depanare
// afisarea unui 'dump' al vectorului - o lista cu toate
elementele.
//De obicei se foloseste la depanare:
print_r(
$vectAs );
/* afiseaza
Array
(
[unu] => one
[doi] => two
[trei] => 3
)
*/
$vectAs );
/* afiseaza
array(3) {
["unu"]=>
string(3) "one"
["doi"]=>
string(3) "two"
["trei"]=>
int(3)
}
*/
126
$s ); // 19
print substr(
print substr(
print substr(
$sir, -3 ); // CSS
$sir{5}; // P
$sir{ strlen($sir)-1 }; // S
127
print strtolower(
print ucfirst(
print ucwords(
ok
'); // ok
128
$first;
// value
$arr[1]; // baz
parse_str($str,
$output);
$output['first'];
// value
$output['arr'][1]; // baz
Masuri de siguranta
print addslashes(
vino-ncoa\'!
129
print htmlspecialchars("<a
href='test'>Test</a>", ENT_QUOTES);
print strip_tags(
<b>bold</b>
Limbajul PHP ofera solutii simple (dar puternice) pentru lucrul cu data
si timpul. In versiunile mai noi (dupa 5.1) sunt introduse facilitati
avansate cum ar fi DST (Daylight Saving Time), Timezones, Date
Intervals, s.a. Inainte de acestea insa lucrul cu timpul se realiza
folosind Unix timestamp.
Conceptul de Unix timestamp desemneaza numarul de secunde scurse
de la 1 ianuarie 1970 (cand se considera ca a inceput era Unix).
Unix Timestamp-ul curent:
1333952692
Fiind vorba de un numar pozitiv ce are mereu aceeasi referinta, este
usor sa se realizeze operatii cum ar fi scaderea, adunarea sau
compararea a doua date reprezentate printr-un Unix timestamp.
Mai jos sunt cateva aplicatii menite sa evidentieze cat de usor se pot
manipula date si ore in PHP.
<?php
// data curenta
print date(
// 1333952692
130
?>
);
// afiseaza Ultima zi din Februarie 2000 este: 29
# se pot folosi si valori negative
$zi = mktime(0, 0, 0, 3, -3, 2000);
echo strftime("Inainte
131
echo date("Y-m-d")
echo date("F
2012 09:24:52
echo date("D,
132
doar ziua
// afiseaza Tuesday
?>
133
"Data nu exista";
} else {
echo
}
// Rezultat: Data este valida
# similar se foloseste si strtotime
$rezultat = strtotime( "29 february 2010" );
if( $rezultat === FALSE || $rezultat === -1 ) {
echo
"Data nu exista";
} else {
echo
}
// Rezultat: Data este valida
?>
134
LC_TIME , 'ROM_ROM' );
"\n";
}
// afiseaza luna curenta
print
?>
Rezultatul (este posibil sa nu fie in limba romana!):
January
February
March
April
135
(
);
Functii in PHP
Functiile sunt blocuri de cod PHP (secvente de cod) bine delimitate si
identificate printr-un nume, ce executa un set de operatii. Functiile pot
fi executate de mai multe ori in cadrul unui script prin simpla apelare a
numelui lor.
Exista functii predefinite, specifice limbajului PHP (cum ar
fi print, empty, etc) ce poti fi folosite in orice moment, fara a fi nevoie
136
'<select>';
"<option>{$luni[ $i ]}</option>\n";
}
echo
'</select>';
afisLuna();
echo
afisLuna();
137
?>
Am scris, asadar, o singura data codul care afiseaza lunile anului si lam apelat de cate ori am avut nevoie. Apelarea functiei se face prin
specificarea numelui urmat de paranteze. Intre paranteze se pot
specifica parametrii, dupa cum vom vedea mai jos. Alternativ, o functie
definita de utilizator se poate apela folosind
instructiunea call_user_func
# vom rescrie ultima parte a codului
echo
call_user_func(
echo
'afisLuna' );
call_user_func(
'afisLuna' );
}
function alta() {
print
138
$functie );
} else {
echo
}
// Rezultat (live): Azi e o zi obisnuita
?>
Foarte important de stiut este faptul ca variabilele definite in afara
functiilor nu sunt disponibile in interiorul lor. Astfel, codul de mai
jos nu va functiona asa cum ne asteptam:
<?php
# declar o variabila
$a = "Afara e frumos";
# definesc o functie
function afisMesaj() {
echo
$a;
139
$a;
$a;
}
# apelez functia
afisMesaj(); // va afisa Afara e frumos
?>
Daca e nevoie sa se foloseasca mai multe variabile globale in cadrul
unei functii, acestea se pot specifica toate intr-o singura instructiune
global:
global
140
verificareDate();
preluareMesajeInbox();
afisareInbox();
141
142
$x = 1; $y = 4;
print
$x = 4; $a = 3; $b = 5;
minim( $x, minim( $a, $b ) ); // parametrii primului
apel sunt: variabila $x
print
143
echo
echo
echo
?>
Mai jos amintite sunt cateva din functiile avansate ce pot fi folosite:
call_user_func - alternativa pentru apelul simplu al unei functii
definite de utilizator; numele functiei poate fi stocat intr-o variabila,
programatorul putand astfel apela functii diferite in situatii diferite
call_user_func_array - la fel ca ma sus, doar ca este folosita
atunci cand functia ce trebuie apelata are mai mult de un parametru
function_exists - folosita pentru a verifica daca o functie este
definita
create_function - folosita pentru a defini o functie 'on the fly',
atunci cand codul PHP se executa
register_shutdown_function - folosita pentru a specifica o functie
care sa se execute la finalul executiei codului PHP
144
Formulare
Formularele sunt elementele prin intermediul carora utilizatorii trimit
date catre server. Pe o pagina web pot fi introduse diferite tipul de
informatii (parole, comentarii, mesaje, etc). Toate aceste date sunt
transmise catre servere prin intermediul formularelor (in engleza
"form").
Odata transmise, datele pot fi prelucrare folosind PHP. Astfel, ele pot fi
salvate intr-o baza de date, in fisiere, trimise prin email, sau doar
afisate inapoi pe o pagina. In cele ce urmeaza vor fi prezentate
elemente de baza ale folosirii formularelor in PHP. Ca o nota,
formularele sunt intalnite in orice aplicatie web (cele mai uzuale sunt
poate paginile de login, contact sau inregistrare). Cert este ca sunt
esentiale in folosirea internetului si este foarte important pentru un
programator web sa stie sa foloseasca form-uri in PHP.
Pe scurt, pentru a putea fi introduse date pe o pagina web trebuie sa
existe un formular. Acesta se defineste in HTML prin tag-ul form. Un
form trebuie sa aiba specificate obligatoriu 2 atribute: "action" si
"method". Action reprezinta locatia unde vor fi transmise datele,
reprezentata prin numele fisierul ce va prelucra requestul (de regula
un fisier PHP). Acest atribut poate fi gol, specificand ca datele vor fi
transmise catre acelasi script ce afiseaza formularul (fisierul
curent). Method specifica metoda de acces, dupa cum este descrisa mai
jos.
Formularele sunt strans legate de conceptul de "Metoda de acces"
(Request Method). De fapt, in functie de modul in care se face cerinta
catre server, exista doua tipuri de formuri: formulare GET si POST.
145
POST
Opus metodei GET, POST este folosita pentru a transmite informatii
catre server (in engleza "post data"). Spre deosebire de GET care
permite doar o cantitate limitata de date sa fie transmisa de la client
(browser) la serverul web, POST dispune de limite mai generoase, fiind
standardul de transmitere a datelor. Astfel, upload-ul unui fisier pe
server, salvarea unui post pe blog, etc - toate sunt requesturi de tip
POST.
Mai jos sunt descrise cele 2 tipuri de formulare si cum pot fi accesate
datele lor in PHP. Apoi, pe pagina urmatoare, GET vs. POST puteti afla
diferentele concrete dintre ele si cum puteti determina ce tip de form
sa folositi pe paginile voastre.
Formulare GET
Acest tip de formulare permite utilizatorilor sa transmita informatii
aditionale atunci cand cer o pagina web. Actiunea unui formular GET
poate fi usor reprodusa specificand URL-ul si parametrii direct in
browser (vezi aplicatia de mai jos).
Datele transmise de utilizatori la un request de tip GET sunt disponibile
pentru prelucrare in PHP folosind variabila globala $_GET. Fiecare
parametru al requestului reprezinta o componenta a variabilei $_GET.
146
}
?>
Se observa ca atunci cand se foloseste metoda GET, toate elementele
formularului (care au specificat un nume!) apar in URL-ul paginii
urmatoare sub forma
pagina.php?element1=valoare1&element2=valoare2
Astfel, acelasi efect ca si folosirea formularului s-ar obtine daca s-ar
accesa direct pagina cu parametrul
numele=ceva
147
148
}
if( isset( $_POST[ 'textfl' ] ) && !empty( $_POST[
'textfl' ] ) ) {
print
. " caractere";
}
}
?>
Se observa ca elementele formularului (numele si textfl) nu mai sunt
transmise in URL, ci printr-un alt mecanism. Daca pagina este reafisata (cu Refresh/F5) browserul va afisa o notificare, cerand
confirmarea ca datele sa fie retrimise. Acest lucru confirma, totodata,
ca pagina a fost afisata in urma unui request de tip POST.
Formulare POST si GET
Asa cum am vazut in lectia anterioara exista 2 tipuri de formulare. Din
punctul de vedere al utilizatorului final (cel care foloseste browser-ul si
completeaza formularul pentru a transmite date catre server) metoda
folosita (POST vs. GET) nu conteaza prea mult, in sensul ca modul de
transmitere al datelor este transparent. Din punctul de vedere al celui
care construieste formularul si care prelucreaza datele primite pe
server (folosindu-se de un script PHP) exista diferente notabile ce
trebuie luate in calcul.
149
2.
3.
4.
5.
1.
2.
3.
4.
5.
150
151
$erori == 0 ) ...
152
specificat';
$erori = 1;
} elseif( !isset( $_POST[ 'pass' ] ) || strlen( $_POST[
'pass' ] ) == 0 ) {
$mesaj = 'Parola nu a fost specificata';
$erori = 1;
}
# daca nu au fost erori, atunci fac prelucrarile
if( $erori == 0 ) {
# pentru acum, vom face o verificare simpla
if(
$parola_corecta )
{
# login realizat, redirectionez
153
echo
redirectionat...';
exit;
} else {
# nu s-a facut login
$mesaj = 'Username-ul sau parola sunt
gresite';
}
}
}
?>
<html>
<head>
<title>Aplicatie formular: pagina de login - Invata
PHP</title>
</head>
<body style="font-family: verdana,sans-serif; font-size:
small;">
154
}
?>
</body>
</html>
Formularul este disponibil pentru testare aici (click pentru a accesa).
Introduceti diferite valori pentru a verifica functionalitatea, iar in final
introduceti datele corecte (admin / ghiceste-Ma).
Descarcati fisierul PHP si incercati-l pe serverul vostru
155
} else {
# cum exista deja anunturi, le afisez
echo
'<tr>';
echo
echo
echo
echo
echo
echo
'</tr>';
'</td>';
}
# afisez cate anunturi exista
'</table><p>', 'Anunturi salvate: ', count(
$anunturi ), '</p>';
echo
}
?>
156
Fisierul anunturi-post.php
Fisierul PHP care proceseaza datele este inclus mai jos. Ca si in
exemplul de login, se fac verificari pentru a fi siguri ca a fost facut un
157
158
159
160
161
162
163
}
} else {
"Eroare nespecificata (probabil
fisierul este prea mare)";
print
}
} else {
# nu s-a facut inca submit la fisier, afisez un
mesaj
print
upload!";
}
} else {
# $_POST si $_FILES sunt setate; verific alte erori
ce pot sa apara
if( $_FILES['fisier']['error'] > 0 ) {
print "A intervenit o eroare
(#{$_FILES['fisier']['error']})";
} else {
# fisierul uploadat va fi pus in subfolderul
'upload' (care trebuie sa
# existe deja in aceeasi locatie ca si fisierul
upload.php
$uploaddir = dirname( __FILE__ ).
DIRECTORY_SEPARATOR .
'upload' .
DIRECTORY_SEPARATOR;
$uploadfile = $uploaddir .
basename($_FILES['fisier']['name']);
164
if
(move_uploaded_file($_FILES['fisier']['tmp_name'],
$uploadfile)) {
print
} else {
print
}
}
}
?>
165
} else {
$tmp_name =
$_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
# mut fisierul din locatia temporara in
directorul curent (acelasi
# director in care se afla scriptul PHP)
move_uploaded_file($tmp_name,
"$name");
}
}
?>
Headere
Headerele sunt elemente prin care browser-ul si serverul web
comunica in fundal pentru a afisa o pagina web in bune conditii.
Exista 2 tipuri de headere: cele emise de browser (headere de request)
si cele emise de server (headere de raspuns).
Request headers
De fiecare data cand un utilizator acceseaza o pagina web, browserul
trimite catre server cantitati mici de date, sub forma request headers
(sau, intr-o traducere destul de rar folosita la noi, antetelor de cerere).
Aceste antete cuprind detalii despre pagina care a fost solicitata, modul
de transfer a ei, precum si informatii despre capabilitatile browser-ului.
De exemplu, cand ati accesat aceasta pagina, browser-ul dvs a trimis
catre server urmatoarele headere de request:
GET /http/ HTTP/1.1
Host: php.punctsivirgula.ro
Connection: close
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ro;
rv:1.9.1) Gecko/20090624 Firefox/3.5
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
Cache-Control: no
Accept-Language: de,en;q=0.7,en-us;q=0.3
166
167
// spune browserului sa
'Location: http://www.punctsivirgula.ro/' );
168
'Location: /');
'Location: http://www.google.ro' );
break;
default: # daca nici una din conditiile de mai sus nu
a fost indeplinita
header(
'Location: http://www.punctsivirgula.ro'
);
}
exit;
scriptului
}
?>
<a href="page.php?site=home">home</a>
<a href="page.php?site=search">home</a>
<a href="page.php?site=bla">other</a>
Important! Inainte de folosirea instructiunii header() nu trebuie sa
fie afisat nimic (cu print, echo, sau scriind cod HTML). Se intampla
adesea ca si un spatiu ramas la sfarsitul unui fisier inclus
cu include saurequire sa opreasca functia de la a functiona corect. De
exemplu, urmatoarele secvente de cod nu sunt valide:
<?php
print
header(
"Location: http://www.google.ro" );
exit;
?>
<html>
<body>
<?php
169
"Location: /" );
exit;
?>
# timit un
mesaj de eroare
"<html><title>Document inexistent</head>
170
}
# daca s-a ajuns aici, inseamna ca fisierul exista
# preiau extensia pentru a-i determina tipul
$type = strrchr($_GET[ 'file' ], '.' ); # preiau
textul de la ultimul punct la final
# $type va fi acum ceva de genul ".pdf"
if( strlen( $type ) ) $type = substr( $type, 1 ); #
elimin punctul
'Content-type: image/gif' );
break;
case 'jpg':
# daca nu specific un break se va executa
instructiunea de la urmatoarea
# ramura 'case'.
171
'Content-type: image/jpeg' );
break;
case 'html': # fisierul HTML va fi oferit spre
download in loc sa fie afisat
header(
'Content-type: text/html' );
break;
case 'php':
header(
'Content-type: application/x-httpd-php'
);
break;
/*
aici pot fi definite oricate conditii
*/
default: # daca nici una din conditiile de mai sus nu
a fost indeplinita
# afisez ca text
header(
'Content-type: text/plain' );
}
# trimitem headerul prin care "fortam" download-ul.
Partea "filename" din textul
# de mai jos specifica numele sub care va fi propus
spre download fisierul
header("Content-Disposition: attachment;
filename=\"download.$type\"");
'.'.DIRECTORY_SEPARATOR.'resurse'.DIRECTORY_SEPARATOR.$_GET[
'file' ] );
# alternativ de poate folosi
// echo file_get_contents( './resurse/' . $_GET[
'file' ] );
172
"Location: /" );
}
exit;
link direct
link de download
- link direct
- link de download
Mai nti vom crea un formular de cutare realizat n HTML care ne va permite
cutarea unei cari n baza de date dup unul din criteriile: autor sau titlu. Codul pentru
formular este prezentat n listingul de mai jos:
<html>
<head>
<title>Formular cautare carti</title>
</head>
<body>
173
174
175
Observaii:
n orice script utilizat pentru accesarea de pe web a unei baze de date vom parcurge
urmtoarele etape:
o Verificarea i filtrarea datelor provenite de la utilizator;
o Configurarea unei conexiuni la BD;
o Interogarea BD;
o Regsirea rezultatelor;
o Prezentarea rezultatelor la utilizator.
Funcia trim() din expresia $termencautat=trim($termencautat) elimin spaiile
nesemnificative pe care e posibil din neatenie s le introduc utilizatorul la nceputul
sau sfritul termenului cutat;
Anumite caractere sunt perfect valide ca pri ale unui ir, dar pot cauza probleme mai
ales la inserarea datelor ntr-o BD, deoarece BD poate interpreta aceste caractere ca
fiind de control. Caracterele problematice sunt: apostrofurile, ghilimelele, NULL i
backslash. Trebuie folosit o metod de a marca aceste caractere sau de a le transforma
n caractere escape pentru ca BD MySQL s le trateze ca valori literare. Pentru aceasta
se folosete caracterul backslash n faa lor (Popa\ se transform n \Popa\\). PHP are
dou funcii proiectate special pentru transformarea caracterelor n caractere escape.
Funcia addslashes() marcheaz cu un backslash toate ghilimelele i se folosete la
trimiterea datelor n BD, funcia stripslashes() elimin caracterele backslash i se
folosete la datele care vin din BD. Funcia get_magic_quotes_gpc() ne spune dac
marcarea este efectuat automat.
PHP5 are o nou bibliotec pentru conectarea la BD numit mysqli.
Linia @ $db=new mysqli('localhost','root','','carti'); instaniaz clasa mysqli i creeaz
o conexiune la gazda 'localhost', cu numele de utilizator 'root', fr parol, care va
folosi BD carti. @ reprezint un operator de suprimare a erorilor.
Funcia mysqli_connect_errno() returneaz un numr de eroare n cazul unei erori de
conexiune la BD i zero n caz de reuit.
Funcia fetch_assoc() preia fiecare linie dintr-un set de rezultate (noiunea de cursor) i
returneaz linia sub forma unui tablou, fiecare cheie fiind un nume de atribut iar
fiecare valoare fiind valoarea corespunztoare n tablou.
176
177
178
179
htmlspecialchars(stripslashes($row['title']));
'</strong><br />Author: ';
stripslashes($row['author']);
'<br />ISBN: ';
stripslashes($row['isbn']);
'<br />Price: ';
stripslashes($row['price']);
'</p>';
}
// eliberarea setului de rezultate, deconectarea de la BD si inchiderea conexiunii
$result->free();
$db->close();
?>
</body>
</html>
180
181
182
183
Ce sunt Cookies?
Cookies reprezinta portiuni de informatii (stocate sub forma de fisiere
de mici dimensiuni) ce se afla pe calculatorul utilizatorului si care sunt
create si folosite de catre browser in comunicarea cu serverul web. De
obicei cookie-urile sunt folosite pentru a identifica utilizatorii sau a
pastra urma vizitelor pe un site.
Cookie-urile pot fi sterse cu usurinta de catre utilizator, sau pot fi
blocate de catre browser, deci folosirea lor trebuie facuta cu grija si
doar in cazuri de necesitate. Un cookie poate contine o cantitate
limitata de informatie iar durata de viata poate fi limitata (la un anumit
numar de zile, la inchiderea sesiunii de lucru, etc) sau nelimitata (pana
la stergerea lor).
PHP dispune de 2 functii prin care se pot crea cookieuri: setcookie si setrawcookie. Cookie-urile create pe calculatorul
utilizatorului pentru un site sunt transmise de catre browser inapoi la
server si sunt disponibile in variabila globala $_COOKIE.
184
# vizualizarea cookie-urilor
if( isset( $_COOKIE[ 'Test' ] ) ) {
echo
}
if( isset( $_COOKIE[ 'Test2' ] ) ) {
echo
}
// Rezultat (e nevoie de refresh prima data)
//
//
185
setcookie(
'ctest', 'verificare' );
'?creat=1' );
exit;
} else {
# se va executa asta
parametrul GET, deci dupa
186
= $_COOKIE[ 'visits' ];
187
mult timp
# afisez un mesaj corespunzator
if( $vizite == 1 ) {
echo
acum!";
} else {
echo "Bine ai revenit. E a $vizite-a oara cand ne
vizitezi.";
}
// Rezultat: Bun venit! Se pare ca nu ne-ai mai vizitat pana
acum!
?>
Sesiuni in PHP
Sesiunile, reprezinta o functionalitate prin care anumite informatii sunt
mentinute de la o pagina la alta. O sesiune dureaza atat timp cat
utilizatorul acceseaza un site si se incheie odata cu inchiderea
browserului.
Requesturi stateless si necesitatea sesiunilor
Accesarea unei pagini web este o operatie de sine statatoare
(stateless, sau fara stare). Asta inseamna ca orice accesare ulterioara
a aceleiasi pagini (spre exemplu un refresh) se va face fara ca serverul
"sa stie" de accesarile anterioare. La fel se intampla si atunci cand sunt
accesate mai multe pagini diferite una dupa alta.
Spre exemplu, daca un utilizator acceseaza pagina a.php si apoi b.php,
codul PHP din a doua pagina (b.php) nu poate sti ce "s-a intamplat" in
a.php. Sa luam urmatorul exemplu: in a.php se defineste o variabila ca
mai jos
$text = 'Mesaj din prima pagina';
188
189
echo session_id();
echo
session_write_close();
scriptul curent
190
Accesarea datelor
Din momentul in care scriptul PHP apeleaza session_start, acesta poate
incepe deja sa stocheze date ce vor fi persistate. In limbajul
programatorilor de PHP se foloseste expresia "sa pastreze date in
sesiune" sau "pe sesiune". Aceste date sunt gestionate de catre limbajul
PHP (salvate, preluate, etc) si nu este esential pentru programator sa
cunoasca mecanismul intern de manipulare a acestora. Poate deveni
important, totusi, atunci cand se doreste definirea unui mecanism
particularizat de gestionare a sesiunii, dar aceasta reprezinta o
facilitate avansata a limbajului PHP care depaseste nivelul acestor
lectii.
Salvarea datelor pe sesiune se face prin intermediul vectorului superglobal $_SESSION. Exista si o functie ce permite inregistrarea datelor pe
sesiune (nu si modificarea lor), dar folosirea acesteia nu este
recomandata. Functia se numeste session_register si a fost marcata ca
invechita in versiunea 5.3 a limbajului PHP. Citirea datelor persistate
se poate realiza tot prin intermediul $_SESSION.
<?php
session_start();
$_SESSION[ 'text' ];
// afiseaza a
echo
// afiseaza c
?>
191
variabila
$_SESSION[ 'text' ] = 'Mesaj de pe prima pagina';
echo
?>
Dupa accesarea paginii a.php ar trebui sa existe deja o sesiune creata
ce are stocata variabila text. Scriptul din b.php va accesa aceasta
sesiune, tot prin session_start si va citi datele inregistrate anterior.
<?php
// b.php
session_start()
echo
?>
Fisiere in PHP
192
193
$id_fisier, 10 );
fclose($id_fisier);
//
// inchidere
//
fclose($id_fisier);
// inchidere
//
fclose($id_fisier);
// inchidere
?>
Asa cum s-a observat, un mod de deschidere pentru citire ('r') si 2
moduri de deschidere pentru scriere: cu stergere a continutului vechi
194
195
echo
?>
'fisier.txt' );
// copiere fisier
copy(
'sursa.txt', 'destinatie.txt' );
196
// stergere fisier
unlink(
'fisier.txt' );
'vechi.txt', 'nou.txt' );
"c:\\cale\\catre\\fisier.txt" ); // afiseaza
fisier.txt
// afisarea folderului unui fisier
echo dirname(
"c:\\cale\\catre\\fisier.txt" ); // afiseaza
c:\cale\catre
// afisarea dimensiunii unui fisier in octeti
echo filesize(
'fisier.txt' );
"c:\\cale\\catre\\fisier.txt" ); // afiseaza
true
// verificare daca un fisier poate fi citit
echo is_readable(
'fisier.txt' );
'fisier.txt' );
?>
197
Directoare in PHP
Manipularea directoarelor (folderelor) folosind PHP se face la fel de
usor ca in cazul fisierelor. Majoritatea functiilor folosite pentru fisiere
se pot aplica si la foldere (de exemplu copy, rename, is_file, etc), dar
exista o serie de alte instructiuni specifice dosarelor.
<?php
// afiseaza directorul curent (current working directory)
// de obicei este folderul in care se afla scriptul ce se
executa
echo getcwd();
// ex. c:\scripturi
$vector );
"c:\\cale\\fisier.txt" );
// afiseaza false
?>
Limbajul PHP dispune de o serie de functii ce permit citire continutului
unui folder intr-un mod similar cu preluarea continutului unui fisier.
Astfel, exista functii pentru deschiderea unui director (opendir), citirea
continutului, adica a fisierelor sau folderelor existente in acel director
(readdir) si inchiderea lui (closedir). O situatie in care aceste functii
pot fi folosite este aceea cand se doreste afisarea unei liste a
elementelor continute intr-un folder si se doreste efectuarea unor
calcule sau procesari pe baza fiecaruia dintre aceste elemente.
<?php
$folder = getcwd();
// deschid folderul
198
if ( !empty( $handle ) ) {
echo
"Fisiere si directoare:\n";
$terminat = false;
while ($terminat == false) {
$file = readdir($handle);
// citesc urmatorul
fisier
if( $file === false ) {
// atentie la operatorul de exactitate ===
// daca nu mai sunt alte fisiere/foldere trebuie
sa ies din bucla
$terminat = true;
} else {
// aici pot face orice procesare, de exemplu sa
redenumesc fisierul/subdirectorul
// doar afisez numele fisierului/subdirectorului
echo
"$file\n";
echo
"<br />";
}
}
}
?>
MYSQL
Ce este o baz de date?
O baza de date este o colectie organizat de informaii care este format din nregistrrile
aferente. Aceasta este aranjat ntr-un mod care face ct mai uoar obinerea de
informaii. Fiecare nregistrare din baza de date este compus dintr-un set de cmpuri,
care conin elementele individuale de informaii pentru un anumit element. Baza de date
199
Ce este SQL?
Structured Query Language (SQL) cuprinde una din pietrele de temelie ale arhitecturii
moderne a bazelor de date. SQL definete metodele utilizate pentru a crea i manipula
baze de date relaionale pe toate platformele majore. SQL este un limbaj standard pentru a
face interogri (query-uri) interactive pentru manipularea (stocarea, extragerea,
actualizarea, tergerea) unei baze de date. Interogrile iau forma unei limbi de comand
care v permite s selectai, inserai, updatai, s aflai locaia unor anumite date, i aa
mai departe. Exist, de asemenea, o interfata de programare.
200
Exist mai multe moduri n care putei crea o nou baz de date MySQL. Cel mai rapid i
mai mai uor este cu ajutorul instrumentului phpMyAdmin. Imaginea de mai jos arat mai
pe larg un tabel MySQL.
Fiecare tabel cuprinde rnduri i coloane. Coloanele precizeaz tipul de date. Datele in
sine sunt stocate pe rnduri. Numele acestui tabel este book (carte) i este folosit pentru a
stoca informaii despre cri.
Informaiile despre cri stocate n baza noastr de date sunt afiate mai jos:
201
SMALLINT
MEDIUMINT
Numr Intreg
INT
Numr Intreg
VARCHAR
TEXT
Text
Acestea sunt doar cteva dintre cmpurile disponibile. O cutare pe Internet ne poate
furniza lista cu toate tipurile de cmpuri permise.
Crearea unei Tabele cu PHP
S creem o tabel din PHP este ceva mai dificil dect cu MySQL. Avem de parcurs
urmtorii pai:
CREATE TABLE nume_tabel { Fields }
Cmpurile sunt definite dup cum urmeaz:
fieldname type(length) extra info,
Ultimul cmp introdus nu poate include nici o virgul.
202
Tipul
Lungimea
Descrierea
id
INT
Nume
VARCHAR
15
prenume
VARCHAR
15
telefon
VARCHAR
20
Numrul de telefon
mobil
VARCHAR
20
fax
VARCHAR
20
Numrul de fax
VARCHAR
30
Adresa e-mail
web
VARCHAR
30
203
CSS
CSS, prescurtarea de la Cascading Style Sheets, sunt etichete folosite pentru formatarea
paginilor web (de exemplu formatare text, background sau aranjare in pagina, etc.).
Beneficiile sintaxei CSS sunt:
204
205
id si class sunt comenzi care dau unei formatari CSS un nume. Se folosesc atunci cand
dorim sa aplicam un style de formatare unei anume zone. Pentru compatibilitate cu
versiunile anterioare de browsere numele asociate zonelor nu vor contine caracterul _.
Elementul id se aplica unui style de format o singura data sau la o singura eticheta
HTML, plasandu-se un nume acelui style. Acest element necesita existenta comezilor
CSS in zona HEAD sau intr-un fisier extern.
Exemplu: folosirea elementului id
<html>
<head>
<title>Exemplu 2_1</title>
<style type="text/css">
<!-- #albastru{color: #0000FF;}-->
</style>
</head>
<body>
<p id="albastru">Text albastru introdus prin id "albastru"</p>
Text negru
</body>
</html>
206
ceste elemente specifica argumentul fontului care se asociaza unui element HTML fiind
incluse ori in zona HEAD ori in interiorul etichetei dorite.
In cazul de fata se remarca asemanarea cu eticheta font din HTML care accepta
argumentele type, style, size si weight.
3.1 font-family
font-family este de fapt o lista de fonturi din care browserul va folosi in ordinea in care le
recunoaste (primul folosit va fi primul din lista, daca nu este recunoscut il foloseste pe al
doilea si tot asa mai departe). Este recomandat ca ultima pozitie din lista sa fie un font
generic (de exemplu serif, sans-serif sau monospace).
In situatia in care numele fontului este format din doua cuvinte se incadreaza intre
ghilimele duble pentru ca browserul sa le interpreteze impreuna.
207
208
x-small
small
medium
large
x-large
xx-large
Pentru verificare se poate folosi exemplul anterior in care se inlocuieste 20px cu unul din
cuvintele de mai sus.
Procentele sunt o alta valoare pe care o poate lua font-size. Aceasta modalitate poate fi
vizualizata diferit de browsere diferite.
Ca verificare folositi acelasi exemplu schimband 20px cu 200%.
209
210
4.1 Aliniere
text-align pozitioneaza pe orizontala obiecte (de exemplu text sau imagini) si admite
valorile left, right si center ca si eticheta align din HTML.
In continuare este prezentat ca exemplu codul folosit in HEAD, aplicat etichetei p:
<style type="text/css">
<!-p{text-align: center;}
-->
</style>
Exemplu: prin intermediul lui div aplicam stilul pecentru imaginii si textului
<html>
<head>
<title>Exemplu 4_1</title>
<style type="text/css">
<!-p{text-align: center;}
-->
</style>
</head>
<body>
<div class="pecentru"><img src="poza.jpg"></div>
Text neformatat
<div class="pecentru">Text formatat</div>
211
212
213
214
215
216
217
disc
disc
disc
circle
cerc
square
patrat
decimal
numere intregi
nimic
218
219
220
221
222
Pozitionarea permite asezarea unui obiect intr-un anume loc folosind coordonatele.
Totodata obiectele pot fi pozitionate pe straturi diferite, unul deasupra celuilalt.
223
224
225
226
227
228
Controale Server
Un control server poate fi programat, prin intermediul unui cod server-side, s rspund
la anumite evenimente din pagin. i menine n mod automat starea ntre 2 cereri ctre
server, trebuie s aib atributul id i atributul runat.
Exist dou tipuri de controale server: Web i Html. Controalele server web ofer mai
multe funcionaliti programabile dect cele HTML. De asemenea pot detecta tipul
browserului i pot fi transformate corespunztor n tag-urile html corespunztoare.
ASP.NET vine cu o suit foarte bogat de controale care pot fi utilizate de ctre
programatori i care acoper o foarte mare parte din funcionalitile necesare unei
aplicaii web.
O proprietate important a controalelor server este AutoPostBack. Pentru a nelege
exemplificarea, vom considera o pagin n care avem un obiect de tip checkbox i un
obiect de tip textbox care are proprietatea visible = false. n momentul n care este bifat
checkbox-ul, vrem ca obiectul textbox s apar n pagin. Codul poate fi urmtorul:
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox1.Checked == true)
{
TextBox3.Visible = true;
TextBox3.Focus();
}
else
{
TextBox3.Visible = false;
}
}
Cnd vom rula pagina, vom constata c totui nu se ntmpl nimic. Pentru a se executa
metoda CheckBox1_CheckedCanged, pagina trebuie retrimis serverului n momentul
bifrii checkbox-ului. Serverul trebuie s execute codul i apoi s retrimit ctre browser
pagina n care textbox-ul este vizibil sau nu. De aceea controlul checkbox trebuie s
genereze aciunea de PostBack, lucru care se ntmpl dac este setat valoarea true
229
230
231
Profile
O posibilitate de pstrare a informaiilor specifice unui utilizator const n folosirea
obiectului Profile, prin intermediul fiierului de configurare Web.Config. Acesta este un
fiier XML n care se rein opiuni de configurare. Pentru a aduga o proprietate
obiectului profile, n fiierul Web.Config se adaug:
<profile enabled=true>
<properties>
<add name =ProfileTest allowAnonymous =true/>
</properties>
</profile>
Atributul name reine numele proprietii. Dup aceste modificri, proprietatea definit n
Web.config poate fi apelat pentru obiectul Profile:
Profile.ProfileTest = Hello world;
Sau
Label1.Text = Profile.ProfileTest;
Session
232
Application
Obiectul Application se comport n mod identic cu Session, doar c este specific ntregii
aplicaii, adic tuturor utilizatorilor care acceseaza un site web la un moment dat, i nu
unei anumite sesiuni. Cu alte cuvinte odat introdus un obiect n Applicatio, va putea fi
accesat din orice loc al sitului i de ctre toi utilizatorii acestuia.
Membrii statici
Toate variabilele declarate ca fiind statice sunt specifice ntregii aplicaii i nu unei
anumite sesiuni. De exemplu, dac atunci cnd un site este accesat de Utilizator1 i o
variabil declarat:
static string test = init; se modific de ctre acesta: test = modificat; atunci toi
utilizatorii aplicaiei vor vedea valoarea modificat din acel moment nainte.
233
Concluzii
n cazul obiectului ViewState, datele sunt salvate n pagina web sub forma unui ir de
caractere, iar n cazul obiectului Session respectiv Application n memoria serverului
web. Dac datele salvate sunt de dimensiuni mari, n primul caz crete dimensiunea
paginii web, care va fi transmis mai ncet, iar n al doilea caz rezult o folosire excesiv
a memoriei serverului web, ceea ce duce la scderea vitezei de lucru. Aceast folosire
excesiv a memoriei poate s apar i n cazul unei dimensiuni a datelor ceva mai redus,
dar a unui numr mare de utilizatori care acceseaz simultan pagina (pentru fiecare se va
creea un obiect sesiune).
Validarea datelor
n toate aplicaiile web i nu numai se pune problema validrii datelor introduse de
utilizator. Cu alte cuvinte, trebuie s ne asigurm c utilizatorul site-ului nostru introduce
numai date corecte n csuele de text care i sunt puse la dispoziie. De exemplu, dac pe
o pagin web se cere utilizatorului introducerea vrstei sale i pentru asta i punem la
dispozitie o csu de text, va fi obligatoriu s ne asigurm c n acea csu se pot
introduce numai cifre i c numrul rezultat este ncadrat ntr-un anumit interval. Sau, un
alt exemplu, este introducerea unei adrese de email valid din punct de vedere al
formatului.
ASP.NET vine cu o serie de controale gata create n scopul validrii datelor. Aceste
controale sunt de fapt clase care provin din aceeai ierarhie, avnd la baz o clas cu
proprieti comune tuturor validatoarelor.
Proprieti comune
1 ControlToValidate: este proprietatea unui control de validare care arat spre controlul
(csua de text) care trebuie s fie validat.
2 ErrorMessage: reprezint textul care este afiat n pagina atunci cnd datele controlul
de validat nu corespund regulii alese.
3 EnableClientSideScript: este o proprietate boolean care specific locul n care se
execut codul de validare (pe client sau pe server).
4 Alte proprieti, specifice tipului de validator.
234
Validatoare
1 RequiredFieldValidator. Verific dac n csua de text asociat prin proprietatea
ControlToValidate s-a introdus text. Util pentru formularele n care anumite date sunt
obligatorii.
2 RangeValidator. Verific dac informaia introdus n csua de text asociat face
parte dintr-un anumit interval, specificat prin tipul datei introduse (prorietatea Type) i
MinimumValue respectiv MaximumValue.
3 RegularExpressionValidator. Verific dac informaia din csua de text asociat este
conform unei expresii regulate specificate. Este util pentru validarea unor informaii de
genul adreselor de email, numerelor de telefon, etc n general informaii care trebuie s
respecte un anumit format. Trebuie setat proprietatea ValidationExpression n care se
pot alege cteva expresii uzuale gata definite.
4 CompareValidator. Compar datele introduse n csua de text asociat cu o valoare
prestabilit (ValueToCompare), n funcie de operatorul ales (proprietatea Operator) i
de tipul de date care se ateapt (proprietatea Type).
Pe lng validatoarele prezentate mai sus, programatorul poate crea validatoare
customizate, care s verifice datele introduse de utilizator conform unor reguli proprii.
Exemplu de folosire a validrilor pentru un modul de login putei gsi pe dvd-ul ARK,
instalnd Resurse\Visual Studio 2005\101 Samples CS101SamplesAll.msi sau
descrcnd cele 101 exemple de utilizare a Visual Studio 2005 de la adresa
http://msdn2.microsoft.com/en-us/vstudio/aa718334.aspx, aplicaia Membership.
Securitatea n ASP.NET
Pentru o aplicaie securizat, avem mai multe posibiliti de autentificare. Implementarea
politicii de securitate se poate face att din IIS ct i din aplicaia ASP.NET.
Tipul aplicaiei
Modul de autentificare
Descriere
Aplicaie web public pe Internet.
Anonim
Nu avem nevoie de securizare.
Aplicaie web pentru Intranet.
235
Windows Authentication
n acest mod de autentificare, aplicaia ASP .NET are ncorporate procedurile de
autentificare, dar se bazeaz pe sistemul de operare Windows pentru autentificarea
utilizatorului.
1. Utilizatorul solicit o pagin securizat de la aplicaia Web.
2. Cererea ajunge la Serverul Web IIS care compar datele de autentificare ale
utilizatorului cu cele ale aplicaiei (sau ale domeniului)
3. Dac acestea dou nu corespund, IIS refuz cererea utilizatorului
4. Calculatorul clientului genereaz o fereastr de autentificare
5. Clientul introduce datele de autentificare, dup care retrimite cererea ctre IIS
6. IIS verific datele de autentificare, i n cazul n care sunt corecte, direcioneaz cererea
ctre aplicaia Web.
7. Pagina securizat este returnat utilizatorului.
Forms-Based Authentication
Atunci cnd se utilizeaz autentificarea bazat pe formulare, IIS nu realizeaz
autentificarea, deci este necesar ca n setrile acestuia s fie permis accesul anonim.
1. n momentul n care un utilizator solicit o pagin securizat, IIS autentific clientul ca
fiind un utilizator anonim, dup care trimite cererea ctre ASP.NET
2. Acesta verific pe calculatorul clientului prezena unui anumit cookie1
3. Dac cookie-ul nu este prezent sau este invalid, ASP.NET refuz cererea clientului i
returneaz o pagin de autentificare (Login.aspx)
4. Clientul completeaz informaiile cerute n pagina de autentificare i apoi trimite
informaiile
236
exemple
de
utilizare
Visual
Studio
2005
de
la
adresa
237
JAVASCRIPT
Java Script este un limbaj de programare care face posibil ca paginile web sa fie mai
interactive. Este mai des recunoscut ca facand parte din categoria "Scripting Languages".
A fost lansat sub numele de "LiveScript", schimbarea numelui in JavaScript fiind o
chestie legata de strategia de marketing.
Scripturile Javascript sunt introduse in pagina HTML si sunt interpretate si executate de
browser. Javascript poate fi considerat o unealta foarte buna daca doriti sa controlati
continutul paginilor in functie de data, ora, sistemul de operare sau browserul
utilizatorilor, sa faceti site-uri interactive, care sa comunice cu vizitatorii, site-uri
dinamice, sa validati datele primite din formulare, dar nu numai atat, acestea fiind doar
cateva din posibilitatile pe care le ofera acest limbaj.
Pentru a invata Javascript, ai nevoie de cateva lucruri:
1. Sa cunosti limbajul HTML si sa iti poti modifica singur documentele HTML.
2. Sa ai un web browser care suporta Javascript.
3. Nu trebuie sa stii programare pentru a folosi scripturile urmatoare. Totusi,
daca vrei sa creezi alte scripturi, notiunile de programare iti vor fi de folos.
Javascript ofera trei metode pentru a include scripturi in pagina:
1. Cu tag-ul <SCRIPT>,
2. Dintr-o biblioteca externa sau
3. Prin atributele HTML.
238
<SCRIPT language="Javascript">
........Cod Javascript ...........
</SCRIPT>
In sectiunea body a documentului HTML poti avea oricate tag-uri <SCRIPT> doresti, ca
si cum ar fi un tag normal. Nu uita sa inchizi fiecare tag inainte de a continua. De
asemenea, daca vrei sa folosesti functii Javascript, acestea trebuiesc incluse in
sectiunea <HEAD></HEAD> a documentului. In acest mod, functiile sunt incarcate
inainte ca documentul sa fie afisat si astfel nu vei avea erori Javascript.
Iata un exemplu:
<HEAD>
<TITLE> Titlul </TITLE>
<SCRIPT language="Javascript">
function numele_functiei()
{
Cod Javascript ...
}
</SCRIPT>
</HEAD>
239
sunt
preluate
de
browser
si
pot
fi
vazute
in
sursa.
Daca doresti ca scripturile de pe pagina ta sa nu fie vazute de vizitatori, cea mai simpla
metoda ar fi ca documentul descarcat sa nu contina decat scripturi care asambleaza
pagina, deci HTML simplu. Un inconvenient ar fi ca o astfel de pagina nu este interactiva,
deoarece nu are scripturi atasate.
O alta metoda pentru a folosi scripturile javascript, metoda pe care o recomand si o
consider mai practica, este aceea de utilizare a scripturilor externe. Cei care folosesc CSS
sunt obisnuiti cu folosirea stylesheet-urilor externe. Este aproximativ acelasi lucru: se
adreseaza fisierul extern in interiorul etichetei <HEAD> a fisierului html si apoi o
modificare a acestui script se propaga in intreg documentul.
Iata cum adresam un fisier JS extern (fisierul extern este exemplu.js):
<html>
<head>
<title>
240
Exemplu
</title>
<script type="text/javascript" src=exemplu.js>
</script>
</head>
<body>
Continut
</body>
</html>
In continuare voi incerca sa afisez in browser un text folosind javascript.
Exemplul 1
<html>
<head>
<title>
exemplu
</title>
</head>
<body>
<h1>
Text HTML
</h1>
<h1>
<script type="text/javascript">
document.write("Text JAVASCRIPT");
</script>
</h1>
241
</body>
</html>
Explicatii suplimentare:
document.write("text Javascript");
document este un obiect iar write() este o metoda.
Un obiect poate contine alte obiecte care pot fi considerate proprietati ale acestuia. Spre
exempludocument contine alte obiecte, de exemplu title . In javascript acest obiect se
identifica cu:document.title. Alt exemplu ar fi obiectul submit care este intr-un formular
din
pagina.
Acesta
ar
fi
adresat document.form.submit.
Tag-ul HTML
Coresp. JavaScript
Pagina
document
Formular
<form
document.formular
HTML
name="formular">
Web
... </form>
Buton
<INPUT
document.formular.buton
TYPE="button"
name="buton">
Imagine
<IMG
document.imagine
name="imagine">
242
type="text/javascript"
src="exemplu2.js">
</script>
</head>
<body>
<h1>
Text
HTML
</h1>
</body>
</html>
Exemplu
Am adresat fisiserul extern javascript in zona <HEAD> a documentului HTML si am
atribuit marcajului <h1> id-ul "text1". Un ID javascript functioneaza ca un ID in CSS:
poate fi folosit o singura data intr-o pagina. Iata si codul din exemplu2.js :
window.onload = scrieText;
function scrieText() {
document.getElementById("text1").innerHTML
= "Text JavaScript din fisier extern";
}
Ce face acest script:
- dupa ce termina de incarcat fereastra executa functia "scrieText" (window.onload =
scrieText;)
243
COMENTARII IN FISIERE
Pentru a face comentarii care sa nu fie afisate de browser, cu scopul de a explica codul
pentru altii sau pentru a lasa marcaje care sa-ti aduca aminte anumite lucruri despre script,
ai la dispozitie doua modalitati:
- pentru comentarii pe o singura linie se foloseste marcajul //:
/*
comentariu
comentariu
*/
Din pacate, inca sunt folosite browsere care nu suporta JavaScript. Pentru a-i avertiza si
pe acestia ca browserul lor nu suporta JavaScript folosit tag-ul <noscript>. Acesta nu este
luat in seama daca browserul nostru suporta javascript dar in situatia in care nu suporta
sau nu-l are activat putem sa afisam un mesaj de avertizare:
<noscript>
244
</noscript>
ALERTE JAVASCRIPT
Una dintre cele mai importante facilitati a acestui limbaj este aceea ca ofera posibilitatea
sa interactionezi cu utilizatorii.
Pentru a crea o alerta care sa afiseze un mesaj la care utilizatori trebuie sa raspunda, codul
din fisierul JS este urmatorul (codul din fisierul html il pastram):
In continuare vom invata cate ceva despre conditionale. Ele ofera posibilitatea de a face
sa se intample anumite lucruri in functie de anumite circumstante, de exemplu daca sunt
sau nu cookie-urile activate.
O conditionala putem sa o facem cu o structura de forma if then else. Vom face un script
care sa afiseze un mesaj sau o alerta daca cookie-urile sunt activate si altul daca nu sunt
activate:
{
/*Aici trebuie introdus codul care sa fie executat daca conditia
din if intoarce valoarea true */
245
else
}
Acestea fiind stiute vom face un script care sa afiseze o aleta daca sunt activate si alta
daca sunt dezactivate.Iata codul din fisierul JS:
if (navigator.cookieEnabled) {
else {
}
Exemplu
Acum voi scrie un script care sa ofere utilizatorilor posibilitatea sa confirme sau nu, iar in
functie de raspuns sa avem actiuni diferite. Pentru asta, vom folosi tot un if si vom
schimba doar conditia:
246
}
Exemplu
else {
}
Exemplu
247
Confirm face parte din aceeasi categorie cu alert si prompt, adica ferestre popup. Spre
deosebire de alert, confirm intoarce valoarea true sau false, putand fi astfel folosit in
structuri if, ca in exemplul de mai jos:
if (confirm("esti de acord?")) {
alert("Esti de acord")
}
else {
};
function
NumeFunctie(var1,var2,...,varX)
{
ceva cod
}
In caz ca nu are parametrii numele functiei va trebui urmat de paranteze ( ).
function
NumeFunctie()
{
ceva cod
248
<html>
<head>
<script
type="text/javascript">
function ScrieText()
{
alert("Text de
PROBA");
}
</script>
</head>
<body>
<form>
<input type="button"
value="Apasa"
onclick="ScrieText()" >
</form>
</body>
</html>
Exemplu
In acest exemplu nu am mai folosit fisier JS extern si am definit functia in zona de
<HEAD> a documentului HTML. La apasarea butonului se va executa functia ScrieText.
Inlocuiti codul intr-un fisier .txt, schimbati extensia fisierului in .html si observati cum
functioneaza.
Functiile cu parametri sunt si ele foarte utile. Sa presupunem ca avem nevoie de o functie
care sa faca anumite operatii cu anumiti parametrii. Nu vom sta sa scriem functia de cate
249
function prod(a,b)
{
x=a*b;
return x;
}
Functia face produsul a doua numere. Ca sa atribuim unei variabile produsul a doua
numere este suficient sa adresam functia prod (pe care am definit-o) si sa indicam si cele
2 numere intre paranteze.
produs=prod(5,10);
//
<html>
<head> <title> exemplu </title>
<script
type="text/javascript"
src="script.js">
</script>
250
<body>
<h2 align="center">
<a
href="index.html
"
id="redirect">
Link
"destept"
JavaScript </a>
</h2>
</body>
</html>
Link-ului destept i-am atasat un ID, putand astdel sa-l folosim in fisierul javascript. Vom
incerca sa controlam accesul la pagina spre care face link-ul trimitere. Codul din fisierul
script.Js:
function functieI() {
document.getElementById("redirect").onclick
controlClick; /* cauta in document elementul care are idul redirect, actiunea este onclick (cand se face click pe
elementul respectiv) si trimite la functia controlClick */
251
}
Exemplu cu return false Exemplu cu return true
window.onload = functieI;
function functieI() {
document.getElementById("redirect").onclick
controlClick;}
function controlClick() {
window.location = "paginajs.html";
return false;
}
Exemplu
Cei care au JS activat vor fi directionati de catre link pe pagina paginajs.html iar cei care
nu au JavaScript activat vor ajunge pe pagina care este trecuta in html,
adica index.html. De explicat nu este prea mult de explicat... , daca in browser nu este
252
Am mai gasit un exemplu care poate fi util. De exemplu daca doriti sa primiti mesaj de
avertizare atunci cand se face click pe un link care nu duce la o pagina de pe domeniul
vostru, asta tebuie sa faceti:
Fisierul html (am schimbat decat link-ul):
<html>
<head> <title> exemplu </title>
<script type="text/javascript" src="script.js">
</script>
</head>
<body>
<h2 align="center">
<a
href="www.google.com"
id="redirect">
</h2>
</body>
</html>
Fisierul JavaScript:
window.onload = functieI;
function functieI() {
253
Link
document.getElementById("redirect").onclick
controlClick;}
function controlClick() {
if(this.toString().indexOf("etutoriale") < 0) {
}
Exemplu
Dupa cum se poate observa, in acest exemplu au aparut multe noutati. Cea mai
importanta dintre ele ar fi Keyword-ul this.
This este un keyword care depinde de context. De obicei se refera la un obiect in functie
de metoda care cheama functia sau structura in care intra this. In cazul nostru se refera la
un link si ne dam seama de asta pentru ca functia este chemata de onclick, care se aplica
link-ului. Sincer imi e foarte greu sa explic cum se foloseste this, asa ca voi incerca sa
exemplific cat mai mult si poate o sa va prindeti singuri :).
<input type="radio" name="Buton radio test"
onClick="alert(this.name)">
apasati pe butonul radio de langa sa vedeti ce efect are
254
255
OBIECTE JAVASCRIPT
JavaScript nu este un program orientat pe obiecte (OO), cum sunt C++ sau Java, dar este
bazat pe obiecte.
In lumea din jurul nostru obiectele sunt de exemplu: o carte, o masina, un televizor; in
JavaScript obiectele sunt de exemplu: un formular, o fereastra, butoane, imagini ...
Toate elementele dintr-o pagina sunt vazute de JavaScript ca fiind obiecte.
Obiectele au anumite proprietati, de exemplu in lumea reala televizoarele au butoane,
masinile au roti; asa si in JavaScript obiectele au proprietati: formularele au buton,
ferestrele au titluri.
Pe langa obiecte si proprietati, in JavaScript avem si termenul "metode".
Metodele reprezinta functiile pe care un obiect poate sa le faca. Ferestrele se deschid cu
metoda "open()", butoanele au metoda "click()". Parantezele rotunde "()" arata ca se face
referire
la
metoda,
nu
la
proprietate.
obiect.prorietate
obiect.metoda()
256
sir)
se
foloseste
pentru
prelua
text.
257
258
valori
intr-un
singur
nume
de
variabila.
Fiecare valoare stocata devine un element al tabloului, acesta are asociat un "numar
index" (sau cheie). Cu ajutorul acestei chei se poate face referire la oricare element din
tablou.
Cu operatorul new se poate crea o "instanta" (incepere) a obiectului Array, ca in
exemplul urmator:
- Unde intre parantezele rotunde este trecut numarul de elemente ale tabloului, aici 4.
Numarul
de
elemente,
cheile,
incep
implicit
de
la
0.
Pentru a da valori elementelor din tablou, se scrie numele tabloului urmat de o pereche de
paranteze patrate, in interiorul carora se adauga cheia specifica fiecarui element, apoi
semnul egal si valoarea dorita. Dupa cum puteti vedea in urmatorul exemplu:
nume_colegi[0] = "Cristi"
nume_colegi[1] = "Ion"
nume_colegi[2] = "Simona"
nume_colegi[3] = "Adi"
259
Pentru a face referire la un anumit element din tablou si pentru a extrage anumite valori
din Array, se scrie numele tabloului si intre parantezele patrate cheia specifica acelui
element; ca in exemplul urmator:
coleg = nume_colegi[0]
colega = nume_colegi[2]
Pentru a afla numarul de elemente ale unui Array, se foloseste proprietatea "length", ca
in exemplu urmator:
nr_colegi = nume_colegi.length
Returneaza
Returneaza
inversul
parte
specificata
unui
a
tablou
unui
tablou
260
foloseste
pentru
lucra
cu
data
zilei
si
timp.
Sunt doua lucruri importante pe care trebuie sa le cunoasteti inainte de a folosi acest
obiect:
1. Data initiala (de referinta) este 1-01-1970, nu puteti sa lucrati cu date anterioare
acesteia.
2. Cand creati un obiect "Date", ora folosita de obiect este aceea de pe calculatorul
client (al vizitatorului).
ce
fost
creata
instanta,
se
pot
folosi
metodele
obiectului.
De exemplu, daca se doreste afisat numarul zilei (care e de la 1 la 31) se scrie urmatoarea
comanda (aici e folosita instanta cu numele "data"):
data.getDate()
Se pot crea si altfel obiecte Date, care pot afisa data si ora intr-un mod specificat:
261
- Unde: Month=luna, dd=ziua (cu 2 caractere), y=anul (yy e afisat cu 2 caractere iar yyyy
cu
4),
h=ora,
m=minute,
s=secunde,
milliseconds=milisecunde.
Astfel se pot crea variabile de data pt. fiecare obiect Date de mai sus, ca in exemplu
urmator:
getDay() - Returneaza ziua dintr-un obiect Date (intre 0-6; 0=Duminica, 1=Luni,
etc.)
262
263
Pentru a intelege mai bine obiectul Date si modul de lucru cu metodele lui, studiati si
urmatorul exemplu:
<script type="text/javascript">
<!-var d = new Date()
document.write("Afiseaza data curenta a zilei: <br /> ")
document.write(d.getDate())
document.write(".")
document.write(d.getMonth() + 1)
document.write(".")
document.write(d.getFullYear())
//-->
</script>
Adaugat intr-un document HTML, in sectiunea BODY, acest script va afisa:
Afiseaza
data
curenta
zilei:
24.5.2011
4. Obiectul Math
Acest
obiect
include
constante
matematice
si
functii.
nr_aleator = Math.random()
PI - Returneaza PI
264
ceil(x) - Returneaza cel mai apropiat intreg mai mare sau egal cu x
floor(x) - Returneaza cel mai apropiat intreg mai mic sau egal cu x
Iata si un exemplu practic, urmatorul script rotunjeste o valoare (aici 8.35) la cel mai
apropiat intreg:
<script type="text/javascript">
document.write("8.35 rotunjit este: " + Math.round(8.35));
</script>
Dupa ce este adaugat intr-un document HTML, in sectiunea BODY, acest script va afisa:
8.35 rotunjit este: 8
5. Obiecte de tip Global
Obiectele de tip Global grupeaza proprietatile si metodele de nivel cel mai inalt, fara un
obiect
parinte,
cum
sunt
265
functiile.
escape() - Intoarce un obiect sir in care toate caracterele non alfa-numerice sunt
transformate in echivalentele lor numerice
eval() - Accepta un sir de instructiuni Java Script si il evalueaza ca fiind cod sursa
Pentru a intelege mai bine, studiati urmatorul exemplu. Aici este folosita de doua ori
metoda "eval()", acesta transforma si interpreteaza argumentul primit in cod JavaScript.
<script type="text/javascript">
function calculeaza(form) {
form.rezultat.value = eval(form.expresie.value);
}
eval("alert('Bine ati venit pe site!')");
</script>
<form>
<p>Introduceti o expresie matematica (adunare, scadere, inmultire, impartire), de
exemplu (7*8 sau 3+8/2): </p>
<input type="text" name="expresie" size="35" >
<input type="button" name="calc" value="Calculare" onclick="calculeaza(this.form)">
<br>
Rezultatul este:
<input type="text" name="rezultat" size="18">
</form>
Acest cod afiseaza la inceput o fereastra Alert apoi in browser va fi afisat urmatorul
rezultat:
266
Dupa apasarea butonului "Calculare", prin "onclick" este accestata functia "calculeaza()".
Scriptul JavaScript din HEAD, transfera in campul cu nmele "rezultat", din FORM,
valoarea obtinuta prin evaluarea expresiei adaugate in campul "expresie", calcularea
expresiei fiind posibila datorita folosirii metodei "eval()".
VALIDAREA FORMULARELOR
Pentru a face validarea formularelor trebuie sa determinam ce tasta a fost apasata in
interiorul obiectului respectiv.
Pentru asta se foloseste keycode care indica codul tastei apasate. Puteti sa vedeti aceste
coduri in exemplul de mai jos.
<script type="text/javascript">
function aratacod(e){
var unicode=e.keyCode? e.keyCode : e.charCode
alert("codul tastei este:" + unicode)
}
</script>
<form>
<input type="text" size="2" maxlength="1"
onkeyup="aratacod(event); this.select()" />
</form>
EXEMPLU
Aceste informatii sunt suficiente pentru a da acum niste exemple care pot fi folosite in
aplicatii reale
267
</script>
268
Validare E-mail
Pentru aceasta validare vom folosi doua functii javascript: evalid() si everif().
Prima functie verifica daca s-a scris ceva in campul pentru email si nu cumva a fost lasat
gol.
A doua functie verifica daca textul introdus are formatul tipic unei adrese de email: daca
contine @ , daca are cel putin un punct, daca punctul nu este cumva plasat imediat
inaintea lui @ sau imediat dupa el si daca nu cumva contine mai mult de doua caractere
@.
<script language = "Javascript">
function everif(str) {
var at="@"
var punct="."
var lat=str.indexOf(at)
var lstr=str.length
var lpunct=str.indexOf(punct)
if (str.indexOf(at)==-1){
alert("E-mail invalid. Introduceti o adresa reala!!!")
return false
}
if (str.indexOf(at)==-1 || str.indexOf(at)==0 ||
str.indexOf(at)==lstr){
alert("E-mail invalid. Introduceti o adresa reala!!!")
return false
269
if (str.indexOf(" ")!=-1){
alert("E-mail invalid. Introduceti o adresa reala!!!")
return false
}
return true
}
function evalid(){
var emailID=document.eFormular.txtEmail
if ((emailID.value==null)||(emailID.value=="")){
alert("Va rog sa introduceti o adresa de email")
emailID.focus()
270
Validare
Butoane
Radio si Checkbox
In caz ca sunt mai multe variante de raspuns la o intrebare si doriti sa se poata alege doar
una este suficient treceti nume identice butoanelor radio care sunt cuprinse in acea
intrebare. Vom folosi javascript pentru a ne asigura ca formularul nu va fi trimis fara sa
fie bifat un raspuns la fiecare intrebare.
Introducem functia check_buttons care va indica spre fisierul care sa preia datele din
formular numai in cazul in care s-a raspuns la fiecare rubrica. Vom verifica asta cu IF,
parcurgand inainte fiecare buton ca pe un array cu FOR.
<script language="Javascript">
271
272
273
PARTEA VII
VALIDAREA DATELOR
274
Existenta
Natura
Lungime
Semn
275
"http://<a
title="dexblog.ro"
1 href="http://www.dexblog.ro/category/diverse/dexblog-ro/">dexblog.ro</a>/";
2 if
(preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-
3 ]*)+):?(d+)?/?/i', $url)) {
4
5 } else {
6
01
02
03
04
05
06
07
08
09
10
11
function email_check($field)
{
if(!preg_match('/^[a-z0-9&'.-_+]+@[a-z0-9-]+.([a-z0-9-]+.)*?[az]+$/is', $field))
{
return false;
}
else
{
return true;
}
}
Internetul este o sursa imensa de funcii care te poate ajuta sa gseti funcii pentru
validare si pentru tot ce doreti tu.
n toate aplicaiile web i nu numai se pune problema validrii datelor introduse de
utilizator. Cu alte cuvinte, trebuie s ne asigurm c utilizatorul site-ului nostru introduce
numai date corecte n csuele de text care i sunt puse la dispoziie. De exemplu, dac pe
o pagin web se cere utilizatorului introducerea vrstei sale i pentru asta i punem la
dispoziie o csu de text, va fi obligatoriu s ne asigurm c n acea csu se pot
introduce numai cifre i c numrul rezultat este ncadrat ntr-un anumit interval. Sau, un
alt exemplu, este introducerea unei adrese de email valid din punct de vedere al
formatului.ASP.NET vine cu o serie de controale gata create n scopul validrii
276
Proprieti comune
ControlToValidate: este proprietatea unui control de validare care arat spre controlul
(csua de text) care trebuie s fie validat.
ErrorMessage: reprezint textul care este afiat n pagina atunci cnd datele din controlul
de validat nu corespund regulii alese.
EnableClientSideScript: este o proprietate boolean care specific locul n carese
execut codul de validare (pe client sau pe server).
Alte proprieti, specifice tipului de validator.
Validatoare
Required Field Validator. Verific dac n csua de text asociat prin
proprietateaControlToValidate s-a introdus text. Util pentru formularele n care anumite
datesunt obligatorii.
Range Validator. Verific dac informaia introdus n csua de text asociatface parte
dintr-un anumit interval, specificat prin tipul datei introduse (prorietatea Type) i
Minimum Value respectiv Maximum Value
Regular Expression Validator. Verific dac informaia din csua de text asociateste
conform unei expresii regulate specificate. Este util pentru validarea unor informaii de
genul adreselor de email, numerelor de telefon, etc n general informaii care trebuie s
respecte un anumit format. Trebuie setat proprietatea ValidationExpression n care se
pot alege cteva expresii uzuale gata definite.
Compare Validator. Compar datele introduse n csua de text asociat cu o valoare
prestabilit (Value To Compare), n funcie de operatorul ales (proprietatea Operator) i
de tipul de date care se ateapt (proprietatea Type).
Pe
lng
validatoarele
prezentate
mai
sus,
programatorul
poate
crea
277
PARTEA VIII
ASIGURAREA SECURITATII DATELOR
SI A DOCUMENTELOR
278
Criptarea
sau codificarea datelor este procesul prin care informaia devine greu de citit sau
descifrat. Scopul criptrii este acela de a nu permite persoanelor neautorizate accesul la
anumite date n timpul transmiterii lor sau atunci cnd sunt pstrate pe diverse suporturi
magnetice. Pentru decodificarea datelor este necesar o cheie de decodificare.
Diferite implicaii rezultate n urma pierderii laptop-ului, a dispozitivelor PDA sau a
telefonului mobil. O alt situaie n care se pot pierde date importante este furtul sau
pierderea laptop-ului, Palm-ului sau telefonului mobil.
Astfel se pot pierde numere importante de telefon, agenda sau adresele unor persoane sau
chiar fiiere foarte importante. Se recomand s se fac copii ale acestor informaii i pe
alte suporturi de memorare. Copiile trebuie pstrate n condiii adecvate, astfel nct
suporturile informaiilor s nu fie degradate din punct de vedere fizic sau logic.
Importana realizrii unui back-up (copie de siguran)
Pentru a evita pierderea datelor din anumite motive (tergeri accidentale, pan de
curent, defectarea calculatorului, formatarea hard-disk-lui, virusri etc.) se recomand
efectuarea operaiei de back-up. Aceast operaie se poate realiza periodic i const n
copierea datelor de pe un suport de memorare pe alte suporturi de memorie extern. (CD,
DVD, dischet, memory stick, alte calculatoare din reea etc.).
279
Virui
Viruii informatici un tip de program pentru calculator care este creat cu scopul
declarat de a distruge datele sau echipamentele calculatorului. Viruii sunt programe de
foarte mic dimensiune, de regul invizibili cu mijloace uzuale ale sistemului, care se
gsesc pe calculator fie ca un fiier executabil, fie ataai unor programe, caz n care se
numesc parazii. Ei sunt capabili s se infiltreze n zone ce rmn ascunse
utilizatorului obinuit, s produc modificri distructive asupra datelor ce se afl pe
discuri, asupra altor componente ale calculatorului, i s se reproduc.
n prezent exist un numr foarte mare de virui. Printre cei mai importani amintim:
-
pcleli (hoax) - sunt mesaje trimise prin e-mail care conin avertizri false despre
un virus existent i care cer s fie avertizate toate persoanele cunoscute. Uneori,
aceste avertizri conin fiiere ataate menite, chipurile, s stopeze sau s elimine
virusul. Retrimiterea mesajului la alte destinaii face ca virusul s se multiplice.
280
Arhivarea fiierelor
Arhivarea reprezint operaia prin care dimensiunile unui fiier sunt reduse
pentru a ocupa mai puin spaiu pe un suport de memorare. Cele mai utilizate aplicaii
care permit arhivarea fiierelor sunt Winzip i Winrar.
281
PARTEA IX
UTILIZAREA
DOCUMENTELOR
PERIFERICE SI SPECIFICE
282
Date i informaii:
datele privesc evenimente primare, colectate din diverse locuri, nedefinite sau
neorganizate ntr-o form care s stea la baza lurii deciziilor;
informaiile - sunt mesaje obinute prin prelucrarea datelor; aceste mesaje trebuie
s fie concise, actuale completate i clare, astfel nct s rspund cerinelor
informaionale n scopul crora au fost prelucrate datele.
Prelucrarea datelor (numit i procesare)
283
284
285
286
sistemului
de
calcul
destinat
pstrrii
datelor
287
288
289
central
de
prelucrare
(UCP).
Acesta
este
considerat
creierul
microcalculatorului.
Sunt de remarcat urmtoarele caracteristici ale PC-urilor:
sunt accesibile din punct de vedere al preului;
au dimensiuni reduse i unele tipuri pot fi portabile;
utilizatorii pot nva foarte uor operarea acestora;
pot fi folosite n orice domeniu;
lucreaz n reea putnd realiza schimburi de date;
Minicalculatoare - au fost create pentru executarea unor funcii specializate aplicaii
multiutilizator, maini cu control numeric, automatizri industriale, transmisii de date
ntre sisteme dispersate geografic. Ele sunt calculatoare de dimensiuni medii, compuse
din module structurale cu funcii precise, sunt uor de instalat i utilizat, se pot conecta la
reeaua electric fr restricii. Au putere i capacitate de stocare mai mare, UCP
complex, sistemul de intrare /ieire foarte dezvoltat n sensul comunicrii prin reea de
periferice n sistem multiutilizator.
Calculatoarele
mainfraime
constituie
categorie
aparte,
situate
ntre
290
291
HARDWARE
Unitatea central de prelucrare
Unitatea central de prelucrare (UCP) mai este numit i Central Processing Unit
(CPU). Se afla n interiorul carcasei calculatorului montat pe placa de baz
(mainboard sau motherboard). Aceasta este placa principal dintr-un calculator.
n mod obinuit, plcile de baz conin: CPU, memoria, interfeele pentru dispozitivele de
stocare a datelor i pentru perifericele standard.
Dintre funciile procesorului pot fi amintite:
Execut instruciuni individuale pentru programe i controleaz operaiile
efectuate de alte componente ale computerului;
Realizeaz calculele i operaiile logice;
292
MEMORIA
Memoria intern este zona de stocare temporar a datelor ntr-un calculator. Termenul
memorie este folosit pentru a desemna cipurile reale capabile s pstreze datele.
Deoarece calculatorul recunoate numai dou stri, datele supuse prelucrrii sunt
transformate n iruri de cifre 0 i 1, indiferent n care dintre cele dou tipuri de memorie,
RAM sau ROM se afl.
Bit-ul (binary digit cifra binar) reprezint cea mai mic unitate de date ce poate fi
reprezentat i prelucrat de ctre calculator.
O succesiune de 8 bii se numete byte sau octet, fiind cea mai mic unitate de date ce
poate fi reprezentat i adresat de ctre memoria unui sistem de calcul.
Memoria extern sau suplimentar este aceea care folosete dispozitive speciale pentru
stocarea datelor: hard disk, CD, floppy disk, disc ZIP, card, memory stick etc.
Memoria cache este un mecanism de stocare de mare vitez. Poate fi sau o seciune
rezervat din memoria principal, sau un dispozitiv independent. Uneori este ncorporat
n arhitectura microprocesorului (de exemplu la calculatoarele Pentium).
Dispozitive de intrare
Prin intermediul dispozitivelor de intrare, utilizatorul introduce informaii n calculator.
Printre cele mai cunoscute sunt:
Tastatura este principalul dispozitiv cu ajutorul cruia se introduc datele
n calculator i este inclus n cadrul minim de dotare al unui calculator.
Cuprinde cinci categorii de taste: taste de introducere text (alfanumerice ),
taste numerice, taste de deplasare a cursorului, taste funcionale, taste
293
294
scanner de mn are dimensiuni reduse, este mai lent i este util pentru
prelucrarea documentelor mici.
295
cu tub catodic cel mai folosit tip de monitor, dei ocup mult spaiu. Imaginea
se formeaz similar cu aceea de pe ecranul televizorului, i anume pe suprafaa
unui tub cu raze catodice.
cu jet de cerneal caracterele sunt formate din puncte obinute prin stropire cu
cerneal prin duze speciale. Se folosete hrtie de scris normal, are cost
mediu i este mai puin zgomotoas. Calitatea imaginii depinde, n afar
296
297
298
299
300
PARTEA X
ANALIZAREA SCOPULUI PAGINII WEB
301
1. OBIECTIVELE SISTEMULUI
Proiectarea general are ca obiectiv elaborarea concepiei logice a sistemului
informatic, definirea acestuia din punct de vedere structural i funcional.
Proiectarea general presupune stabilirea componentelor sistemului informatic.
Totodat proiectarea generala presupune analiza datelor de ieire, a bazei informaionale
de intrare, a documentelor pe care sunt consemnate datele de intrare, a legturilor dintre
ele i a funcionalitii sistemului astfel nct toate elementele sale s formeze un ntreg.
Structura general a sistemului informatic cuprinde un ansamblu de intrri,
prelucrri i ieiri definite n funcie de obiectivele noului sistem.
Exist mai multe variante de abordare a proiectrii unui sistem informatic : fie se
poate pleca de la intrri, fie de la ieiri, fie se poate realiza o variant mixt.
Analiznd modul de obinere a fiecrei informaii se determin baza
informaional de intrare, apoi se realizeaz celelalte faze ale proiectrii.
Fazele proiectrii se parcurg in ordinea:
1. stabilirea obiectivelor;
2. proiectarea ieirilor;
3. proiectarea bazei informaionale de intrare;
4. codificarea;
5. proiectarea documentelor de intrare;
6. proiectarea structural i funcional;
7. elaborarea documentului.
Aceast variant prezint avantajul furnizrii unui coninut complet al bazei
informaionale de intrare pentru obinerea ieirilor solicitate.
302
Cunoaterea audienei
Identificarea potenialilor vizitatori ai site-ului este crucial. Structurarea designului siteului se va face n concordan cu nevoile i ateptrile audienei. Gradul de instruire,
interesele i dorinele utilizatorilor vor varia de la novicii care au nevoie de o introducere
atent structurat pn la utilizatorii experi - iritai de orice aspect care le ntrzie accesul
la informaie. Un site Web bine proiectat ar trebui s fie capabil s se acomodeze unei
game largi de interese i aptitudini ale utilizatorilor.
Va trebui, aadar, s descoperim ce informaii ar putea avea valoare pentru vizitatori i s
le oferim n cadrul site-ului.
Stabilirea cerinelor
Proiectarea site-ului trebuie s ia n consideraie cerinele impuse de beneficiarul acestuia.
Se impune aadar discutarea cu beneficiarul, n amnunime, a cerinelor, czndu-se de
comun acord asupra unor aspecte generale i/sau particulare ale site-ului respectiv.
Beneficiarul, autorul ori ambii pot decide, printre altele, care vor fi:
303
304
305
Stabilitatea designului
Pentru a convinge utilizatorii c informaiile disponibile pe Web sunt de ncredere
i clar prezentate, proiectarea site-ului Web se va realiza cu aceeai atenie cu care s-ar
realiza orice alt tip de document informativ al firmei, folosindu-se aceleai standarde de
editare i de design ireproabil. Un site neglijent construit, avnd un design vizual slab,
nu va inspira ncredere vizitatorilor, mai ales n domenii precum comerul electronic.
Stabilitatea funcional n designul Web nseamn asigurarea funcionrii
elementelor interactive ale site-ului n vederea exploatrii eficiente a acestuia. Stabilitatea
funcional presupune dou componente:
Asigurarea accesibilitii
Nu toi utilizatorii site-ului vor putea profita de posibila bogie grafic oferit de paginile
Web. Unii vizitatori ar putea parcurge site-ul folosind un navigator text (precum Lynx sau
Links din mediile Linux) sau ar putea avea diverse handicapuri fizice. Un mare avantaj al
limbajului HTML este abilitatea de a oferi mesaje alternative fiecrui obiect multimedia de exemplu, atributul alt pentru <img>, summary pentru tabele ori title pentru majoritatea
marcatorilor. Utilizatorii care nu au posibilitatea vizualizrii grafice a coninutului siteului vor putea aadar nelege funcionalitatea elementelor grafice/multimedia din paginile
site-ului.
306
PARTEA XI
PROIECTAREA SITE-ULUI WEB
307
Organizarea informaiilor
Rareori utilizatorii citesc pasaje lungi i continue de text de pe ecranele calculatoarelor i
majoritatea oamenilor care caut o anumit informaie vor avea dificulti n localizarea
datelor dorite dac vor trebui s parcurg blocuri lungi de text pentru a gsi ceea ce caut.
Fragmentnd informaia dorit a fi prezentat pe Web n pri de dimensiuni reduse, vom
organiza mult mai uor datele n uniti modulare respectnd aceeai schem de
organizare consistent care poate forma baza legturilor hipertext din cadrul sitului.
Cele patru etape de baz n organizarea informaiei de pe site sunt urmtoarele:
divizarea informaiilor n uniti logice,
stabilirea unei ierarhii a modulelor de date n funcie de importan i de generalitate,
utilizarea acestei ierarhii pentru a crea relaii ntre unitile logice,
analizarea rezultatului din punct de vedere estetic i funcional.
Organizarea site-ului
Site-ul trebuie s prezinte vizitatorilor si o organizare judicioas, clar. Dac avem doar
o vag idee despre relaia dintre o seciune a sitului cu alte zone ale acestuia i dac nu
oferim o expunere cuprinztoare i ordonat a informaiilor, atunci utilizatorii vor cuta
un material mai bine organizat pe alte site-uri.
308
Designul vizual
Designul grafic trebuie s ofere un echilibru optim ntre senzaia vizual i informaia
grafic sau textual dintr-o pagin. Fr impactul vizual al formei, culorii i contrastului,
paginile sunt plictisitoare i nu vor da motive vizitatorului s le parcurg coninutul.
Documentele text dense, fr contrastul i confortul vizual oferite de grafic i de o atent
aezare n pagin sunt mai dificil de citit, mai ales n cazul monitoarelor avnd o rezoluie
sczut. Similar, documentele Web care utilizeaz intens grafica risc s dezamgeasc
utilizatorul, oferind un slab echilibru ntre senzaia vizual, informaia textual i
legturile hipermedia existente.
309
Elemente de grafic
Pentru realizarea unui design Web atractiv, coninutul grafic este o condiie sine qua non.
De cele mai multe ori cnd discutm despre grafic ne referim la monitorul folosit, la
rezoluia sistemului i la paleta de culori disponibil.
Utilizarea ilustraiilor i fotografiilor
Grafica ofer o palet foarte larg de utilizri, facilitnd transmiterea mesajului
informaiilor, accentuarea unui punct de vedere i oferirea unei identiti recognoscibile
publicaiilor tiprite sau site-urilor Web.
Coninutul multimedia
Multimedia reprezint o combinaie de mai multe medii, precum textul, imaginile statice fotografii, scheme, diagrame -, animaiile, coninutul audio i video. Mediile statice (text,
imagini) se mai numesc i discrete, iar cele dinamice (animaii, audio i video) - continue.
310
Publicarea pe un server dedicat. Dac site-ul este al unei organizaii care poate si permit s aib un server Web propriu sau este al unei persoane avnd acces la
serverul unei astfel de organizaii, atunci acest pas presupune transferul tuturor
fiierelor care compun site-ul pe maina pe care ruleaz serverul Web. In primul
rnd trebuie ales serverul adecvat, innd cont de factori precum performana,
sigurana, fiabilitatea, costul i platforma.
311
PARTEA XII
PROCESAREA IMAGINILOR,
CREAREA DE ANIMAII I FLASH-URI
312
Introducere
Sursa de provenien a imaginilor poate fi un dispozitiv de achiziie (camer video,
scanner, captor radar), dar poate fi la fel de bine i un text, o ecuaie matematic, un
ansamblu de date statistice etc.
Exist dou motive principale pentru care se apeleaz la procesarea imaginilor:
1. mbuntirea calitii unei imagini avnd drept scop o mai bun vizualizare
pentru un operator uman. Aceasta poate nsemna: reducerea zgomotului i a altor
defecte care pot fi prezente n imagine (datorate, de exemplu, dispozitivului de
achiziie), evidenierea unor zone de interes prin modificarea luminozitii, a
contrastului, accentuarea muchiilor etc.;
2. extragerea de informaii dintr-o imagine, informaii care pot reprezenta intrarea
pentru un sistem automat de recunoatere i clasificare. Aceste informaii pot fi:
diferite distane i relaii dintre obiectele prezente n imagine, momente statistice,
parametri geometrici (arie, perimetru, circularitate etc.)
Exemple clasice de aplicaii pentru procesarea imaginilor (i recunoaterea formelor)
includ: recunoaterea caracterelor, recunoaterea amprentelor, prelucrarea imaginilor
medicale, a imaginilor satelit.
Noiuni de baz
Pentru a putea fi prelucrate digital (cu calculatorul), imaginile grafice trebuie mai nti
digitalizate, adic mprite n multe elemente mici (de exemplu ca o tabl de ah, sau i
dup alte sisteme), i anume att de mrunt, nct fiecare element s aib o singur
culoare, sau mcar o singur culoare clar dominant. Atunci fiecare astfel de element,
numit pixel ((pixelul - este un element component, de obicei foarte mic, al imaginilor
grafice (fotografii, desene etc.) digitale. Cuvntul provine din englez de la PICture
313
314
Photoshop este
un software folosit
pentru
editarea imaginilor
digitale pe
editare
de
imagini
digitale,
fotografii,
grafic
pentru tipar, video i Web de pe pia. Photoshop este un program cu o interfa intuitiv
i care permite o multitudine extraordinar de modificri necesare n mod curent
profesionitilor i nu numai: editri de luminozitate i contrast,culoare, focalizare,
aplicare de efecte pe imagine sau pe zone (selecii), retuare de imagini degradate, numr
arbitrar de canale de culoare, suport de canale de culoare pe 8, 16 sau 32 bii, efecte thirdparty etc. Exist situaii specifice pentru un profesionist n domeniu cnd alte pachete duc
la rezultate mai rapide, ns pentru prelucrri generale de imagine, ntruct furnizeaz
instrumente solide, la standard industrial, Photoshop este efectiv indispensabil.
Alturi
de
aplicaia
Photoshop
(ajuns
la
versiunea
CS5),
este
inclus
Seleciile
Straturile (Layers)
Mtile (Masks)
Canalele (Channels)
Retuarea
Photoshop poate citi majoritatea fiierelor raster i vector. (Grafica raster este o
modalitate de reprezentare a imaginilor n aplicaii software sub forma de matrice de
pixeli n timp ce grafica vectorial este o metoda de reprezentare a imaginilor cu ajutorul
unor elemente geometrice (puncte, segmente, poligoane), caracterizate de ecuatii
matematice).
315
PSB (denumit Large Document Format) este o versiune mai nou a formatului
PSD, conceput special pentru fiiere mai mari de 30.000 de pixeli (suport pn la
300.000x300.000 pixeli).
PDD este un format mai puin ntlnit, fiind asociat iniial aplicaiei Adobe
PhotoDeluxe, astzi (dup 2002) compatibil doar cu aplicaiile Adobe Photoshop
sau Adobe Photoshop Elements.
316
317
platform multimedia;
plugin;
player;
program;
format multimedia;
format de fiier;
tehnologie;
dispozitiv de memorie;
etc.
318
Animaii de lung durat uor de realizat: animaiile sunt punctul forte al Flashului, interfaa aplicaiei d posibilitatea de a sincroniza (n funcie de timp)
diversele obiecte, poziii sau forme ale acestora. Flash-ul nu numai c realizeaz
aceast sincronizare, dar poate i interpola poziia (sau forma) unui obiect pentru a
uura munca utilizatorului.
319
Editoare puternice i lucrul facil: (Macromedia) Flash este un editor puternic care
d posibilitatea de atari de comportamente diverselor obiecte fie folosind
interfaa de desenare grafic fie prin ataarea de scripturi obiectelor.
Motoarele de cutare nu pot indexa textul: Flashul lucreaz cu mai multe tipuri de
texte, majoritatea dintre acestea (textul static) nu poate fi indexat de motoarele de
cutare deoarece obiectul Flash este tratat ca element grafic/obiect i roboii de
cutare nu au cunotinele necesare disecrii obiectelor Flash i extragerii
textului intern.
Uurina utilizrii l face sa fie folosit n cele mai absurde moduri (de exemplu,
flash-urile - sperietoare). Pentru aceste tipuri de Flash-uri, fcute de obicei de
nceptori, n limba englez exist un termen special: "flashturbation".
320
321
PARTEA XIII
ELABORAREA DE PROTOTIPURI
322
Introducere
Care este audiena? Care este nivelul de pregatire, ce anume o intereseaz, ce fel
de aptitudini i cunotine are?
323
Pentru a cunoate ct de vizitat este site-ul pe care l-am realizat i pentru a afla mai multe
date despre numrul i statistica vizitatorilor, informaii care ne vor ajuta n realizarea
unei campanii de marketing online eficiente, este bine s folosim contoare de pagina
(counters).
Acestea sunt capabile s afieze informaii referitoare la:
324
325
Internetul, prin chiar natura sa, permite saltul de la o pagina web la alta, printr-o
simpl apsare de buton. Nu este un proces liniar, cum este de exemplu citirea unei carti.
Dei aceast flexibilitate constituie un mare avantaj, realizarea unui sistem de navigare
eficient nu este un lucru usor.
Un coninut interesant i o navigare uoara reprezint cele doua componente
principale ale unui site bine ntocmit. Dar chiar i cel mai atractiv coninut este
nefolositor dac nu este pus n eviden de un sistem de navigare clar i consistent.
Aceasta nseamn c nu trebuie s lsm vizitatorul potenial client s caute mult timp
dup informaii.. Trebuie s-i oferim tot sprijinul posibil, prin realizarea unui meniu de
navigare bine structurat.
Meniul de navigare este o reprezentare grafic sau de tip text a coninutului i este adesea
ncorporat n tema generala a site-ului. Meniul principal trebuie s furnizeze trimiteri
rapide i directe la seciunile i informaiile disponibile dintr-un site web. El va fi realizat
ntr-o form practic i atractiv. Locul obinuit pentru plasarea meniului principal este n
partea stng a ecranului dar el mai poate fi plasat i n partea dreapt sau n partea
superioar a paginii web. Seciunile meniului vor fi denumite astfel nct s ofere o
descriere concis i sugestiv a paginilor web care vor fi accesate.
Cteva dintre schemele de navigare cele mai des ntlnite sunt urmtoarele :
legturi text
butoane de navigare
De multe ori, nceptorii i chiar utilizatorii mai versai se pot ncurca atunci cnd folosesc
un sistem de navigare mai complicat. Din aceast cauz, se recomand a se realiza i o
326
327
stilul de scriere
Atunci cnd analizm stilul de scriere pentru pagina web, trebuie s tinem cont de faptul
ca un text pe ecranul monitorului se va citi mai greoi i mai ncet ( n medie cu 20% )
dect textul tiprit. Stilul de scriere ( felul fonturilor, dimensiunea, culorile, etc. ) trebuie
s fie similar pentru toate paginile. n acest fel, cititorul se va familiariza mai uor cu
paginile pe care le-am creat.
E de dorit a nu folosi o varietate prea mare de fonturi pentru aceeai pagin. Fonturile
uzuale sunt ARIAL i TIMES NEW ROMAN. Mai putem folosi i VERDANA sau
COURIER, care dau o not de modernitate paginilor web. Aceste fonturi sunt acceptate
de toate browserele. Putem s folosim i fonturi mai " exotice " dar n acest caz riscm ca
vizitatorii care nu au instalat fontul respectiv s nu poat vizualiza paginile respective.
Nu este recomandabil folosirea textelor exclusiv cu litere mari, a textelor care clipesc
(blink text) i a textelor care defileaz ( scroling marques ). Acestea se citesc mai greu i
dau vizitatorului site-ului senzaia c este agresat vizual.
Pentru a uura construcia site-ului putem apela la CSS-uri (Cascading Style Sheets,
prescurtat CSS, se folosete pentru a personaliza tagurile HTML).Cu ajutorul CSS-ului
putem crea pagini web simple dar i complexe folosind efecte diverse. Cu CSS putem
stabili culoarea, mrimea i fontul textului, de asemenea putem crea un layout (un suport
pentru elementele HTML) personalizat adugnd margine culoare sau imagine de fond i
multe altele. Se pot crea foi de stiluri CSS fiiere externe tip CSS pentru a personaliza
link-urile la care se face trimitere din site-ul nostru.
328
cadre
formulare
tabele simple
Cadrele ne permit s afim doua sau mai multe pagini web, n acelai timp, prin
mpartirea ecranului n mai multe seciuni independente.
Tabelele sunt folosite att pentru o machetare eficient ct i pentru a face mai atractive
diversele elemente componente ale unei pagini web. Ele permit o mpartire a paginii n
seciuni i o poziionare precis a textului sau imaginilor n interiorul paginii.
Formularele sunt folosite pentru ca vizitatorul paginii web s introduc date care apoi
sunt transmise la sever i pe care proprietarul paginii web (clientul nostru) le va procesa.
329
PARTEA XIV
REALIZAREA SITE-ULUI
330
331
Dezavantajele DHTML
poate sa faca situl de neutilizat in browsere mai vechi (sau in browserele noilor
telefoane mobile care nu recunosc JavaScript)
Dezavantajele ASP.NET
Pentru alegerea tehnologiilor web potrivite pentru proiectele dumneavoastra: HTML:
situri mici, pana la 15 pagini, in general pentru prezentarea firmei sau pentru microsite-uri
(1-2 pagini) care prezinta un singur produs. PHP: pentru proiecte de anvergura: magazine
virtuale, portaluri, prezentari de produse cand numar produselor este mare.
De multe ori odata cu experienta bogata a firmelor vin si rezultatele bune, dar nu este o
regula. Rezultatele in crearea site-urilor web se masoara in traficul de utilizatori pe care il
are acel site si pe tendinta acestui trafic (crestere, stagnare, scadere). Puteti vizita singur
332
333
PARTEA XV
TESTAREA SITE-ULUI
334
335
336
337
338
3. Rezumat
Dupa etapele de planificare, design si implementare urmeaza etapa de testare a site-ului.
n aceasta etapa se realizeaza:
Corectarea paginilor din punct de vedere ortografic si gramatical
Testarea legaturilor din cadrul site-ului
Testarea legaturilor externe
Depanarea greselilor care tin de sintaxa codului HTML
Etapa de testare este deosebit de importanta pentru impresia generala lasata de
site-ul dumneavoastra. Un site cu ortografie neglijenta, cu greseli de exprimare, cu
legaturi nefunctionale poate ndeparta vizitatorii, orict de valoroase ar fi informatiile
prezentate n interiorul sau.
339
PARTEA XVI
PUBLICAREA SITE-ULUI
340
1. Numele de domeniu
Pentru ca site-ul dumneavoastra sa aiba o identitate pe Web aveti nevoie de un nume de
domeniu pentru el. Numele de domeniu al site-ului va face parte din adresa URL a
fiecarei pagini si va oferi site-ului o prezenta distincta pe Web.
Domeniile principale de pe Web pot fi de mai multe tipuri:
comerciale .com
educationale .edu
guvernamentale .gov
furnizorii de servicii de retea .net
institutii non-profit .org
domeniile corespunzatoare tarilor lumii .ro, etc
Pentru a obtine un nume de domeniu pentru site aveti la dispozitie doua posibilitati:
domeniu platit
domeniu gratuit
Recomandat este sa creati pentru fiecare sectiune principala a sa cte un subdirector care
va contine fisierele asociate acelei sectiuni. Subdirectoarele pot contine la rndul lor cte
un fisier index. Atunci cnd veti transfera fisierele de pe computerul dumneavoastra pe
serverul Web veti putea sa transferati ntregul subdirector cu fisierele continute n el. De
asemenea aceasta metoda va face si ntretinerea site-ului mult mai usoara.
O alta problema este locul unde veti stoca imaginile. Practica standard este de a crea un
subdirector special n directorul "radacina" unde sa plasati toate imaginile din site. Daca
procedati astfel este extrem de important sa creati un subdirector similar cu aceeasi
amplasare si pe computerul dumneavoastra. Calea de la pagina care apeleaza o imagine la
341
342
343
344
programe
FTP
sunt
CuteFTP
(http://www.cuteftp.com)
si
WS_FTP
345
346
347
PARTEA XVII
NTREINEREA SIT-ULUI
348
349
350
351
BIBLIOGRAFIE
1. Beatley, T. and Manning, K., The Ecology of Place: Planning for Environment,
Economy, and Community, Washington, DC: Island Press, 1997.
2. Bell, C., and Newby, H., The sociology of community: A selection of readings. London:
3. Frank Cass, 1974.
4. Briassoulis, H., Policy integration for complex policy problems: what, why and how,
lucrare prezentat la Conferina de la Berlin, 2004.
5. Brown, B.J. et al., Global Sustainability: Toward Definition, 1987, Environmental
Management.
6. Bugge, H. C., 1987-2007: Our Common Future Revisited, in Sustainable
Development in International and National Law, Groningen: Europa Law Publishing,
2008.
7. Campbell, S., Green Cities, Growing Cities, Just Cities? Urban Planning and the
Contradictions of Sustainable Development, in Campbell, S. and Fainstein, S. (eds.),
Readings in Planning Theory, Blackwell Publishing, 2003.
8. CEC, European Governance. A White Paper, Commission of the European
Communities, Brussels, 2001.
9. Comhar (Sustainable Development Council), European Commission Working
Document Consultation on the Future EU 20 Strategy, Comhar Sustainable
Development Council (Ireland) Comments, 2010.
10. Comisia European Project Cycle Management Guidelines supporting effective
implementation of EC Externl Assistance, Bruxelles, martie 2004
11. Consiliul European Council Regulamentul Nr 1080/2006 al Parlamentului European
si Consiliului privind Fondul European de Dezvoltare Regional, Bruxelles, iulie 2006
12. Consiliul European Council Regulamentul Nr 1081/2006 al Parlamentului European
si Consiliului privind Fondul Social European, Bruxelles, iulie 2006
13. Consiliul European Council Regulamentul Nr 1083/2006 al Parlamentului European
si Consiliului privind prevederile generale ale Fondului European de Dezvoltare
Regionala, Fondului Social European si Fondului de Coeziune, Bruxelles, iulie 2006
352
353
354