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
LOCUL DE MUNC. LUCRUL N
ECHIP
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.
2. Autoinstruire profesional
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
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
Elemente
de Criterii de realizare
competen
1.
Transmite
i 1.1. Metoda de comunicare este utilizat corespunztor
primete informaii
situaiei date pentru transmiterea i primirea corect i rapid
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
de grup
deschis pentru clarificarea problemelor aprute.
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:
in echipa.
Factorii organizationali care influenteaza lucrul in echipa. Mediul organizational
(practicile manageriale, sistemele, structurile si procesele) promoveaza in mod sincer
colaborarea si lucrul in echipa.
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:
serie de sedinte obisnuite ale echipei. Dupa etapa de observare urmeaza oferirea de
coaching echipei pentru cresterea performantelor.
After Action Review (AAR) este o metoda de coaching pentru echipe utilizata si de
Feedback la 360 de grade care ofera liderului echipei o oglinda a diferentelor dintre
perceptia proprie si cea a subordonatilor, colegilor si sefilor referitoare la
competentele sale de conducere. Competentele evaluate sunt direct corelate cu
capacitatea de a conduce echipa catre performante inalte.
Analiza Mediului Organizational (AMO) urmareste stabilirea aspectelor (practici
manageriale, sisteme, structuri si procese) asupra carora trebuie sa ne concentram
pentru a ajuta la crearea unui mediu favorizant pentru lucrul in echipa. Folosim in
acest scop metode cum sunt: workshop-uri cu echipa, interviuri cu manageri si
persoane cheie din cadrul organizatiei, chestionare, tehnici proiective.
10
11
PARTEA II
APLICAREA PROCEDURILOR DE
CALITATE
12
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
PREVEDERILOR
PENTRU
STINGEREA INCENDIILOR
16
17
18
PARTEA IV
INTRODUCEREA INFORMAIILOR
I
DATELOR
ELECTRONIC
19
FORMAT
I.
Data i informaia
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
22
Tipuri de fiiere:
23
24
Control
Pictogram
Descriere
25
Caset text
Utilizatorii
formular.
pot
introduce
imagini,
liste
tabele.
Un control care prezint
utilizatorilor
list
de
de
formularului
valorile
care
date
sau
ale
de
la
provin din
conexiunea de date la un
document XML, baz de
date,
serviciu
Web
26
sau
list
de
selecteaz
care
provin din
conexiunea de date la un
document XML, baz de
date,
serviciu
Web
sau
Caset list
utilizatorilor
list
de
selecteaz
de
formularului
valorile
care
date
sau
ale
de
la
provin din
conexiunea de date la un
document XML, baz de
date,
Caset
(CheckBox
de
Web
sau
selectare
pentru
serviciu
un
formular Web)
da/nu
sau
adevrat/fals,
27
ptrat
ajutorul
mic.
Cu
CheckBox-urilor
utilizatorilor s selecteze un
set de alegeri care se exclud
reciproc. Cnd se selecteaz
un buton de opiune dintr-un
grup, celelalte butoane de
opiune se debifeaz. Un
grup de butoane de opiune
este legat la un singur cmp
din sursa de date, iar fiecare
buton de opiune salveaz o
valoare
Buton
(de
diferit
respectivul cmp.
Un control care se poate
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 SI
DOCUMENTELOR DIN FORMATE
BRUTE
29
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
Petru a deschide un document Word existent avem mai multe posibiliti:
Localizm n calculator documentul i efectum dublu clic pe pictograma acestuia.
Lansm n execuie aplicaia Word i din meniul Fiier selectm opiunea Deschidere, se
va deschide fereastra Deschidere cu ajutorul creia vom cuta fiierul dorit. Dup gsirea
fiierului se execut dublu clic pe acesta sau se selecteaz si se apas butonul Deschide.
Microsoft Word ne ofer posibilitatea de a deschide mai multe documente n acelai timp,
acestea fiind marcate pe bara de Start sau n meniul Fereastr. Schimbarea fiierului n
care se dorete scrierea se realizeaz prin click pe numele documentului deschis pe bara
de Start.
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.
urmtoarelor
posibiliti:
Meniul Fiier nchidere
sau se poate apsa pe butonul de nchidere
aplicaiei
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.
33
Microsoft
Word
permite
anularea
de pe bara
34
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
. Odat ce ai selectat textul, putei de asemenea sa-l copiai. Pentru copiere se apas pe
butonul Copiere
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.
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.
36
Cursiv
Culoare text
Desprirea n silabe
Desprirea n silabe se poate face n dou feluri:
OK.
Formatarea paragrafelor
Pentru a vizualiza paragrafele introduse ntr-un text se activeaz butonul
Afiare/Ascundere aflat pe bara de butoane.
Paragrafele pot fi aliniate la:
stnga - pentru alinierea paragrafului la stnga se selecteaz paragraful i se apas
pe butonul
centru - pentru alinierea paragrafului la centru se selecteaz paragraful i se apas
pe butonul
dreapta - pentru alinierea paragrafului la dreapta se selecteaz paragraful i se
apas pe butonul
37
Indentarea paragrafelor
Indentarea unui paragraf reprezint deplasarea testului fa de marginile
documentului stnga i dreapta la o anumit distan. Pentru a realiza acest lucru se
selecteaz paragraful i din opiunea Indentare a ferestrei Paragraf se alege distana la
care se dorete s se fac indentarea paragrafului.
Folosirea i setarea tabulatorilor
Exist patru tipuri de tabulatori:
Tabulator de aliniere la stnga
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
inserare
dat curent
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
sau
, sgei cu
. 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
FRAMEWORK.NET
44
SOFTWARE,
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
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).
Ca un element de portabilitate, trebuie spus c .NET Framework este implementarea unui
standard numit Common Language Infrastructure (http://www.ecmainternational.
org/publications/standards/Ecma-335.htm), ceea ce permite rularea aplicaiilor .NET, n
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
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
56
Crearea unei pagini web folosind cod HTML cu exemple de formatare a textului
Probleme propuse:
<html>
<head>
<title>Stiluri pentru blocuri de text </title>
</head>
<body>
<b>Text scris cu caractere ingrosate.</b>
<br> <big>Text cu caractere marite cu o unitate <big>mai mare<big> i mai mare<big>
i mai mare.</big></big></big></big><br>
<small>Textul este scris cu caractere micsorate cu o unitate <small>mai
mic.</small></small><br>
<i>Text scris cu caractere italice.</i>
<br> n aceasta linie <sup>sus</sup> este superscript iar <sub>jos</sub> este
subscript.<br>
<strike>Aceasta linie este n intregime sectionata de o linie orizontala.</strike> <br>
n aceasta linie urmatorul cuvant este <u>subliniat</u>, iar cuvantul <s>strike</s>
sectionat. <br> Acest cuvant clipeste
<blink>Blink</blink>
</body>
</html>
==============================================================
<html><head>
<title> Linii orizontale</title></head>
<body><h1 align="center"> Tipuri de linii orizontale </h1> O linie implicita alinierea
stanga, latime 100%, grosime 2 cu umbra.
57
58
<HTML>
<HEAD>
<TITLE>Imagini</TITLE>
</HEAD>
<BODY>
<CENTER><B>Adaugarea imaginilor in paginile web</B>
<BR>
<IMG SRC=uk_steag.jpg >
</CENTER>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Imagini</TITLE></HEAD>
<BODY BACKGROUND=background.jpg>
<CENTER><B>Adaugarea imaginilor in paginile web</B>
<BR>
<IMG SRC=uk_steag.jpg >
59
Crearea unei pagini web folosind cod HTML cu exemple de imagini i background
60
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>
61
62
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.
63
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.
64
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>
65
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>
66
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>
67
<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>
68
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>
69
70
71
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>
72
73
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:
74
75
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"/>
76
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.
77
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.
78
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
79
Deservirea
unei
pagini
statice,
PHP
80
fara
interventia
interpretorului
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.
81
1.
2.
3.
4.
5.
6.
82
presupunem
-
Daca
il
ca
!
fisierul
accesam
in
se
numeste
browser
salut.php.
folosind
adresa
procesarii
afisat
de
browser
va
fi
"Salut!".
83
'<html><body>';
'</body></html>';
?>
84
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
browser. La inceput, acest lucru poate genera confuzii, intrucat sursa
HTML este diferita de ceea ce se afiseaza efectiv in browser.
Spre exemplu, fie urmatoarea secventa de cod:
<?php
print
"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";
85
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
print
"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
86
"1";
"2";
"3";
?>
Rezultatul va fi
123
S-a afisat doar ce s-a indicat, 3 caractere, pe o singura linie, fara
spatii.
Un alt lucru important de retinut este faptul ca odata printat, un text
nu mai poate fi "sters". Nu exista "undo" pentru un print. Se poate
captura intregul continut ce se transmite la finalul executiei, dar nu se
poate altera textul afisat de o instructiune print anume.
Intelegand aceste aspecte va va fi mai usor in lucrul cu PHP si in modul
in care verificati rezultatele scripturilor voastre.
87
<?
/* taguri scurte, acceptarea lor de catre web-server depinde
de configurare */
?>
<%
/* taguri in stilul asp, acceptarea lor de catre web-server
depinde de configurare */
%>
Codul
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.
88
"Text";
"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".
89
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.
Instructiunea poate fi simpla (o singura instructiune) sau un bloc (mai
multe instructiuni delimitate de acolade). Regula este ca atunci cand
este nevoie sa se execute mai mult de o instructiune, trebuie creat
un
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
90
?>
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
echo
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
91
?>
Nota: in acest exemplu nu este nici o diferenta intre modul de afisare a
sirurilor delimitate prin ghilimele si cele delimitate prin apostrof. Cu
toate astea, PHP trateaza in mod diferit aceste caractere. Mai multe
explicatii si exemple sunt prezentate in pagina "Variabile.Constante".
<?php
"Ma numesc \"Alex\"!"; // sir ce contine ghilimele, se
foloseste \"
print
<<<TXT
92
?>
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.
93
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).
94
95
96
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;
Afisarea variabilelor
Afisarea se realizeaza utilizand oricare din instructiunile de afisare:
$variabila = "Text";
$randNou = "<br>";
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";
97
Verificarea
daca
o
variabila
e
definita
Se pot folosi 2 functii: isset si empty .
// definim o variabila, cealalta definire nu se executa
$var = 0;
// $var2 = 1;
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
98
textul.
($$nume)
$obiect = 'masina';
$masina = "Chevrolet";
$avion = "Boeing";
$tren = "TGV";
$$obiect; // Chevrolet
${$obiect}; // Chevrolet
99
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' );
}
Asadar constantele de definesc folosind define:
define(
'NUME', "Flo" );
define(
'VARSTA', 10 );
define(
"ADEVARAT", true );
Pentru
a verifica
daca o constanta
functia defined
if( defined( 'NUME' ) ) {
print
}
if ( !defined( 'VARSTA' ) ) {
define(
'VARSTA' , 2 );
}
print
100
este definita,
se foloseste
$_GET );
/* afiseaza:
Array
(
[nume] => Alex
[varsta] => 12
[ocupatie] => elev
)
*/
Nota:
numele
parametrilor
au
rol
de cheie in
vectorul
$_GET.
101
102
103
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)
Mai jos sunt explicate aceste constante.
LINE
Returneaza linia curenta a scriptului PHP.
<?php
# afiseaza numarul liniei pe care este scrisa instructiunea
echo
echo
__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
104
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";
105
$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.
106
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;
107
++$a;
$a = 1
++$a; // afiseaza 2 - mai intai $a creste cu o
unitate, apoi este afisata noua valoare
print
print
108
Operatori de atribuire
$a = 1; // atribuire simpla
$a += 4; // echivalent cu $a = $a + 4; $a are valoarea 5
acum
$a -= 1; // echivalent cu $a = $a - 1;
$a *= 2; // echivalent cu $a = $a * 2;
$a /= 3; // echivalent cu $a = $a / 3;
$a %= 2; // echivalent cu $a = $a % 2; restul impartirii lui
$a la 2
$a = &$b; /* $a este o referinta la $b, adica ambele
variabile fac referire
la aceeasi entitate; daca $a se schimba, se va schimba si
$b.
Altfel spus, $a este un alias pentru $b */
$s = "Salut"; // atribuire simpla
$s .= " straine!"; // echivalent $s = $s . " straine!";
109
$a = "Eu am";
print
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>";
110
Alti operatori
// script.php
include( 'config.php' );
echo
?>
111
require( 'fisier_inexistent.php' );
iar executia se intrerupe
echo
// genereaza un warning
// genereaza o eroare
?>
Cele doua functii au fiecare cate o
varianta: include_once respectiv require_once. Aceste forme, dupa cum
si numele o spune, includ fisierul specificat o singura data, astfel incat,
daca fisierul solicitat a fost deja inclus la o noua apelare
a include_once sau require_once acesta nu va fi inclus a doua oara.
Aceste forme ale functiilor sunt utile atunci cand fisierle incluse contin
declaratii ce trebuie sa fie facute o singura data.
Functia mail()
PHP poate trimite emailuri daca pe serverul curent este instalata si o
aplicatie de email (un server de email). Nu este nevoie de configurari
suplimentare atat timp cat serverul de email nu are restrictii si poate fi
accesat de aplicatiile locale. Intr-o instalare pe calculatorul personal,
cum este cea descrisa in primele pagini ale acestui tutorial, nu
este posibila trimiterea de mesage email, iar functia mail va returna o
eroare. Pe un web-server configurat complet si corect, cum sunt
serverele ce ofera gazduirea site-urilor, functiamail functioneaza corect.
<?php
// trimitere mesaj simplu
mail('adresa@exemple.com',
= 'adresa@example.com';
112
?>
Functii matematice
Limbajul PHP dispune de majoritatea functiilor matematice uzuale.
Cateva dintre ele sunt prezentate mai jos cu titlu exemplificativ. Lista
completa poate fi gasita pe site-ul de documentatie PHP.
<?php
echo abs(-7);
echo sin(60);
echo decbin(12);
16, 10);
// returneaza convesia
dintr-o baza in alta, afiseaza 2011
echo round(12.3);
echo rand(10,
113
set_time_limit(0);
echo
flush();
?>
Functii de transformare base64
Functiile de codificare base64 sunt folosite pentru
codificarea/decodificarea unui text in si din formatul Base64.
<?php
$text = 'Tutorial PHP in limba romana';
echo base64_encode($text);
// afiseaza
VHV0b3JpYWwgUEhQIGluIGxpbWJhIHJvbWFuYQ==
echo base64_decode('VHV0b3JpYWwgUEhQIGluIGxpbWJhIHJvbWFuYQ==');
114
115
116
}
echo
117
si
cat
timp
conditia
este
adevarata,
repet-o".
118
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 );
# operatia: afisarea elementului curent al vectorului
# conditia de oprire: s-a ajuns la finalul vectorului
(implicita)
foreach( $vector as $element) {
print
"$element ";
119
// 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
}
/* afiseaza
Mo inseamna luni
Tu inseamna marti
We inseamna miercuri
Th inseamna joi
Fr inseamna vineri
Sa inseamna sambata
Su inseamna duminica
*/
120
'<ul>';
}
echo
'</ul>';
?>
Rezultat:
121
Romania
France
Bulgaria
United Kingdom
122
}
echo
"</select>\n";
?>
123
'<br />';
}
$i++; # cresc pe $i
}
# daca s-a ajuns la sfarsitul sirului de email-uri si $gasit
este tot false
# inseamna ca nu exista nici un element valid
if( !$gasit ) echo 'N-am gasit nici un email valid!<br />';
?>
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).
124
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
$vector, 3 ) ); // 4, 5, 6
print_r( array_slice(
$vector, 3, 2 ) ); // 4, 5
print_r( array_slice(
$vector, -5, 3 ) ); // 2, 3, 4
125
$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 );
126
}
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!
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
127
$vectAs );
/* afiseaza
array(3) {
["unu"]=>
string(3) "one"
["doi"]=>
string(3) "two"
["trei"]=>
int(3)
}
*/
$s ); // 19
128
print substr(
print substr(
print substr(
$sir, -3 ); // CSS
$sir{5}; // P
$sir{ strlen($sir)-1 }; // S
Transformarea sirului
# inlocuirea unor secvente
print str_replace(
print strtolower(
print ucfirst(
print ucwords(
ok
'); // ok
129
130
$first;
// value
$arr[1]; // baz
parse_str($str,
$output);
$output['first'];
// value
$output['arr'][1]; // baz
Masuri de siguranta
print addslashes(
vino-ncoa\'!
# functia inversa este stripslashes();
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.
131
// 1333952692
?>
132
);
// 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
133
echo date("Y-m-d")
echo date("F
2012 09:24:52
echo date("D,
doar ziua
// afiseaza Tuesday
?>
134
"Data nu exista";
} else {
echo
}
// Rezultat: Data este valida
# similar se foloseste si strtotime
135
"Data nu exista";
} else {
echo
}
// Rezultat: Data este valida
?>
136
LC_TIME , 'ROM_ROM' );
"\n";
}
// afiseaza luna curenta
print
?>
Rezultatul (este posibil sa nu fie in limba romana!):
January
February
March
April
May
June
July
August
September
October
November
December
Luna curenta este: April
137
(
);
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
de vreo actiune speciala; si exista functii definite de utilizator, scrise
practic de programatori. Pentru ca acestea sa poata fi folosite este
nevoie sa fie declarate (si implementate).
Exemplu de functie definita de utilizator:
<?php
# functiile se declara folosind cuvantul cheie "function"
urmat de numele functiei
# numele functiei trebuie sa fie orice identificator valid
(adica sa inceapa cu
# litere sau cu caracterul _ ) si sa nu contina caractere
speciale sau spatiu
138
'<select>';
"<option>{$luni[ $i ]}</option>\n";
}
echo
'</select>';
}
# mai jos vom folosi functia pentru a afisa un drop-down cu
lunile anului:
echo
afisLuna();
echo
afisLuna();
?>
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(
'afisLuna' );
139
call_user_func(
'afisLuna' );
}
function alta() {
print
}
# declar o variabila care sa aiba ca valoare numele functiei
$functie = 'unu';
# variabila $functie poate sa se schimbe in functie de
diferite conditii
# in cazul nostru, daca ziua curenta e prima zi din luna,
valoarea va fi 'unu'
if( date( 'd' ) == 1 ) $functie = 'unu';
else $functie = 'alta';
# la final apelez dinamic functia data de variabila
# Interpretorul nu stie exact care functie va fi - el doar
executa ce-i transmite variabila
# eventual pot face niste validari:
# - function_exists verifica daca functia transmisa a fost
definita
140
$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;
}
# apelez functia
afisMesaj(); // nu va afisa nimic!!
?>
Functia nu va afisa mesajul, asa cum v-ati fi gandit la prima vedere.
Asta pentru ca ce este definit in afara functiei nu este recunoscut in
interior. In mod similar, variabilele definite in interiorul unei
functii se pierd si NU sunt disponibile in afara acesteia.
Exista totusi o modalitate prin care variabilele definite in afara unei
functii sa fie 'aduse' in interiorul ei: folosind intructiunea global.
141
$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
142
verificareDate();
preluareMesajeInbox();
afisareInbox();
143
$x = 1; $y = 4;
print
$x = 4; $a = 3; $b = 5;
minim( $x, minim( $a, $b ) ); // parametrii primului
apel sunt: variabila $x
print
144
?>
Nota: intrucat functia minim() returneaza o valoare, ea poate fi folosita
ca si cum ar fi un numar normal. De aceea apelul de mai sus este
valid. Alte exemple valide sunt mai jos:
<?php
$a = 1 + minim( 4, 3 );
if( minim( $a, 4 ) > 5 ) { echo "If-ul este True"; }
else { echo "If-ul este False"; }
?>
O facilitate avansata oferita de limbajul PHP este folosirea valorilor
predefinite pentru parametrii functiilor. Aceasta permite ca o functie sa
nu fie apelata cu toti parametrii ei, urmand ca pentru valorile care
lipsesc sa fie folosite valorile predefinite. Functia minim() definita mai
sus poate fi rescrisa in felul urmator:
<?php
function minim($a = 1, $b = 2) {
if( $a < $b ) return $a;
else return $b;
}
?>
Declararea functiei de mai sus se traduce in felul urmator: daca functia
minim() nu este apelata cu toti parametrii, atunci foloseste valoarea 1
pt $a si valoarea 2 pt $b in calculele din interiorul functiei. In acest
caz, functia se poate apela in felul urmator:
<?php
echo
145
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
func_num_args, func_get_args, func_get_arg - functii ajutatoare
folosite in cazul functiilor apelate cu un numar variabil de parametrii
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
146
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
147
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.
148
}
?>
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
149
}
if( isset( $_POST[ 'textfl' ] ) && !empty( $_POST[
'textfl' ] ) ) {
print
. " caractere";
}
}
?>
150
151
1.
2.
3.
4.
5.
152
153
2.
154
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
'Ati fost autentificat. Veti fi
echo
redirectionat...';
exit;
} else {
# nu s-a facut login
$mesaj = 'Username-ul sau parola sunt
gresite';
}
}
}
?>
<html>
155
}
?>
</body>
</html>
156
} else {
157
'<tr>';
echo
echo
echo
echo
echo
echo
'</tr>';
'</td>';
}
# afisez cate anunturi exista
'</table><p>', 'Anunturi salvate: ', count(
$anunturi ), '</p>';
echo
}
?>
Asa cum se poate observa, se verifica mai intai daca exista date
( count( $anunturi ) == 0 verifica numarul de elemente din vector).
Daca nu exista anunturi, se afiseaza un mesaj specific.
In caz contrar, atunci cand exista anunturi salvate, acestea sunt afisate
cu ajutorul structurii repetitiveforeach. Pentru detalii
consultati sectiunea de structuri repetitive a site-ului.
In cadrul structurii, este afisat cate un rand de tabel ce contine datele
anuntului. La final, sub tabel este afisat un mesaj cu numarul total de
inregistrari gasite.
Sectiunea "Adaugare anunt"
Sub lista de anunturi, pe aceeasi pagina este afisat si formularul pentru
adaugarea de noi inregistrari. Acesta este de tip POST, care trimite
datele catre fisierul anunturi-post.php. Prin apasarea pe butonul
158
159
160
161
<fieldset>
<legend>Moneda</legend>
<input type="text" name="From" value="EUR"
style="width: 100px" />
- moneda sursa<br />
<input type="text" name="To" value="RON"
style="width: 100px" />
- moneda in care se
face conversia<br />
</fieldset>
<fieldset>
<input type="submit" name="image"
value="Convertire" />
</fieldset>
</form>
Formular de cautare locuri de munca pe site-ul ejobs.ro
<form action="http://www.ejobs.ro/user/searchjobs"
id="searchjob" method="post" >
<input type="hidden" value="" name="refine"/>
<input type="hidden" value="" name="allof"/>
<table cellspacing="0" cellpadding="0" border="0" >
<tr>
<td valign="middle" style="padding-left:
3px;"><span>Locuri de munca:</span></td>
<td valign="middle" style="padding-left: 9px;"
rowspan="5">
<input type="submit" value="Cauta Job >>"
name="cauta_job" />
</td>
</tr>
<tr>
<td valign="middle" style="padding-left: 3px;">
162
163
personal
pe
server
(upload
de
fisiere)
164
165
}
} 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 ) {
"A intervenit o eroare
(#{$_FILES['fisier']['error']})";
print
} 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']);
if (move_uploaded_file($_FILES['fisier']
['tmp_name'], $uploadfile)) {
print
} else {
print
}
}
}
166
} 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,
167
"$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
Headerele sunt trimise de browser in mod implicit, utilizatorul nu
trebuie sa faca ceva anume pentru asta. De asemenea, headerele nu
pot fi (usor) modificate inainte de a fi trimise.
Response headers
168
169
// spune browserului sa
'Location: http://www.punctsivirgula.ro/' );
'Location: /');
'Location: http://www.google.ro' );
170
'Location: http://www.punctsivirgula.ro'
);
}
exit; # dupa header() trebuie oprita executia
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
header(
"Location: /" );
exit;
?>
171
# timit un
mesaj de eroare
"<html><title>Document inexistent</head>
<body><h1>Documentul nu a fost
gasit.</h1>Parametrul
<tt>file</tt> trebuie sa specifice un
fisier existent in
folderul curent. Incercati din
nou.</body></html>";
172
exit;
}
# 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
# in functie de tip, trimit browserului un anumit
Content-Type
# este necesar pentru ca browserul sa stie ce tip de
fisier va fi descarcat
switch( $type ) {
case 'pdf':
header( 'Content-type: application/pdf' ); //
fisierul va fi PDF
'Content-type: image/gif' );
break;
case 'jpg':
# daca nu specific un break se va executa
instructiunea de la urmatoarea
# ramura 'case'.
# Cu alte cuvinte pentru 'jpg' si 'jpeg' este
aceeasi instructiune
case 'jpeg':
header(
'Content-type: image/jpeg' );
break;
173
'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\"");
# trimit continutul fisierului de descarcat
readfile(
'.'.DIRECTORY_SEPARATOR.'resurse'.DIRECTORY_SEPARATOR.$_GET[
'file' ] );
174
"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>
<h1><b>Formular cautare carti in baza de date</b></h1>
<form action="rezultate.php" method="POST">
Alegeti tipul de cautare:
<select name="tipcautare">
<option value="autor">Autor</option>
<option value="titlu">Titlu</option>
175
176
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;
177
178
179
180
181
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>
182
183
184
185
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.
186
# vizualizarea cookie-urilor
if( isset( $_COOKIE[ 'Test' ] ) ) {
echo
}
if( isset( $_COOKIE[ 'Test2' ] ) ) {
echo
}
// Rezultat (e nevoie de refresh prima data)
//
//
187
setcookie(
'ctest', 'verificare' );
creat=1' );
exit;
} else {
# se va executa asta
parametrul GET, deci dupa
188
= $_COOKIE[ 'visits' ];
189
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';
190
191
echo session_id();
echo
session_write_close();
scriptul curent
192
$_SESSION[ 'text' ];
// afiseaza a
echo
// afiseaza c
?>
193
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
194
195
$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
196
197
echo
?>
'fisier.txt' );
// copiere fisier
copy(
'sursa.txt', 'destinatie.txt' );
198
// 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' );
?>
199
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
200
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
201
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.
202
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:
203
Tipul
Lungimea
Descrierea
204
205
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:
206
207
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>
Elementul class se similar cu id dar spre deosebire de acesta poate fi folosit de mai multe
ori sau pentru zone mai mari. Ca si la id necesita existenta comezilor CSS in zona HEAD
sau intr-un fisier extern.
Exemplu: folosirea elementului class
208
209
210
211
212
213
214
215
216
217
218
219
disc
disc
cerc
patrat
numere intregi
numere romane, caractere mici (i, ii, iii, iv)
numere romane, caractere mari (I, II, III,
IV)
upper-alpha litere mari (A, B, C, D)
lower-alpha litere mici (a, b, c, d)
none
nimic
Exemplu: lista ordonata folosind marcaje cu litere mici
<html>
<head>
<title>Exemplu 6_1</title>
<style type="text/css">
<!-li {list-style-type: lower-alpha;}
-->
</style>
</head>
<body>
Necesar materiale:
220
221
222
223
224
225
226
227
228
229
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.
230
231
232
233
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
Obiectul Session este creat pe serverul web la prima accesare a sitului de ctre un
utilizator i rmne n memorie n principiu att timp ct utilizatorul rmne conectat la
site. Exist i excepii, dar ele nu fac obiectul acestui material.
Pentru a aduga un obiect n sesiune, trebuie doar s scriem un cod de genul urmtor:
protected void Button1_Click(object sender, EventArgs e)
{
Session[sir] = test;
}
Session este de fapt un dicionar (list de perechi cheie valoare), n care valorile sunt de
tip object. Ceea ce nseamn c la citirea unor valori din sesiune va trebui s realizm o
conversie de tip.
234
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.
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).
235
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.
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.
236
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.
Windows Integrated. Acest mod autentific utilizatorii folosind lista de useri de pe server
(Domain Controller). Drepturile userilor n aplicaia web este dat de nivelul de privilegii
al contului respectiv.
Aplicaie web disponibil pe Internet, dar cu acces privat.
Utilizatorii companiei pot accesa aplicaia din afara Intranetului, folosind conturi din lista
serverului (Domain Controller).
Aplicaii web comerciale. Forms Authentication Aplicaii care au nevoie de informaii
confideniale i eventual n care sunt mai multe tipuri de utilizatori.
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.
237
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
5. Din nou, IIS autentific clientul ca fiind un utilizator anonim i trimite cererea ctre
ASP.NET
6. ASP.NET autentific clientul pe baza informaiilor furnizate. De asemenea genereaz i
un cookie. Cookie reprezint un mic fiier text ce pstreaz diverse informaii despre
utilizatorul respectiv, informaii folosite la urmtoarea vizit a sa pe site-ul respectiv, la
autentificare, sau n diverse alte scopuri.
7. Pagina securizat cerut i noul cookie sunt returnate clientului. Atta timp ct acest
cookie rmne valid, clientul poate solicita i vizualiza orice pagin securizat ce
utilizeaz aceleai informaii de autentificare.
238
exemple
de
utilizare
Visual
Studio
2005
de
la
adresa
239
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.
Cea mai simpla si cea mai raspandita metoda de a include scripturi in document este cea
dintai, in care tag-urile folosite pentru a semnala inceputul si sfarsitul codului Javascript
sunt <SCRIPT> respectiv </SCRIPT>. Tag-ul de inceput arata in felul urmator:
<SCRIPT language="Javascript">
Fiecare tag de acest tip trebuie sa includa atributul language. Deoarece <SCRIPT> este un
tag general ce semnaleaza ca declaratiile continute sunt un script executabil si nu un cod
HTML obisnuit, acest tag este conceput pentru a fi recunoscut de orice browser care
lucreaza cu scripturi. Comanda language=Javascript ii spune browserului ca urmeaza un
cod in limbajul Javascript, si nu in alt limbaj, cum ar fi de exemplu VBScript.
Versiunea Javascript pentru Interner Explorer se numeste JScript. In timp ce IE
recunoaste comanda language="Javascript", Netscape Navigator ignora atributul
language="Jscript, deci pentru ca scriptul sa functioneze corect pe ambele browsere,
folositi language="Javascript. Codul javascript se incheie cu tag-ul </SCRIPT> :
240
<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>
Desi majoritatea browserelor lucreaza cu scripturi, exista si unele browsere mai vechi
care nu recunosc tag-ul <SCRIPT>. In general, browserele ignora tag-urile pe care nu le
cunosc, dar aceasta nu este valabil si pentru scripturi, deoarece acestea au mai multe linii
de text. Browserele vechi nu vor cauta tag-ul de sfarsit </SCRIPT> si vor afisa continutul
scriptului ca pe un text normal. Pentru a rezolva problema, trebuie ca aceste browsere sa
sara peste declaratiile din tag-ul <SCRIPT>. Pentru aceasta, include codul intr-un
comentariu HTML. Astfel, browserele vechi vor ignora textul comentariului, in timp ce
browserele care recunosc Javascript vor executa codul:
<SCRIPT language="Javascript">
/* <!-- Deschide comentariul HTML care
ascunde scriptul de browserele vechi*/
......Declaratii Javascript .......
/* --> Inchide comentariul si browserul va interpreta
normal codul care urmeaza */
241
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>
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.
242
<html>
<head>
<title>
exemplu
</title>
</head>
<body>
<h1>
Text HTML
</h1>
<h1>
<script type="text/javascript">
document.write("Text JAVASCRIPT");
</script>
</h1>
</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
<body> .... </body>
Coresp. JavaScript
document
243
<form
HTML
name="formular">
Buton
... </form>
<INPUT
document.formular
document.formular.buton
TYPE="button"
name="buton">
Imagine
<IMG
document.imagine
name="imagine">
write() este o metoda. O metoda ne face sa ne gandim la actiune, au efect asupra
obiectelor. Metodele au tot timpul paranteze ( ). O sa mai intalnim in tutorial metode si
obiecte si atuci o sa le intelegeti mai bine rolul.
S-a folosim si un fisier extern (exemplu2.js)
Fisierl HTML are codul de mai jos
<html>
<head>
<title>exemplu2</title>
<script
type="text/javascript"
src="exemplu2.js">
</script>
</head>
<body>
<h1>
Text
HTML
</h1>
244
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;)
- pasul urmator este definirea functie scrieText(). Aceasta se face intre acolade
({ }).Aceasta functie cauta dupa ID-ul "text1" in documentul HTML si unde il gaseste
inlocuieste continutul tagului respectiv cu textul pe care l-am introdus in ghilimele.
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 //:
/*
245
comentariu
1
comentariu
<noscript>
Browserul dumneavoastra nu suporta javascript. Pentru a
beneficia de toate facilitatile acestui site schimbati browserul
sau activati Javascript
</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):
246
if (navigator.cookieEnabled) {
alert ("cookies activate!!!");
}
else {
247
248
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 {
alert ("Nu esti de acord")
};
FUNCTII Java Script
Sintaxa pentru crearea unei functii este urmatoarea:
249
function
NumeFunctie(var1,var2,...,varX)
{
ceva cod
}
In caz ca nu are parametrii numele functiei va trebui urmat de paranteze ( ).
function NumeFunctie()
{
ceva cod
}
Iata un exemplu foarte simplu de functie fara parametrii:
<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>
250
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
ori avem nevoie sa efectuam operatia asupra altor parametrii, ci vom folosi doar o alta
adresare a functiei, folosind parametrii.
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);
//
251
<html>
<head> <title> exemplu </title>
<script
type="text/javascript"
src="script.js">
</script>
</head>
<body>
<h1> Exemplu link destept </h1>
<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:
252
controlClick; /* cauta in document elementul care are idul redirect, actiunea este onclick (cand se face click pe
elementul respectiv) si trimite la functia controlClick */
}
function controlClick() {
alert("Link controlat!! Atentie!!");
return false; /* nu ne lasa sa mergem mai departe. Daca
puneam return true ne lasa sa trecem la pagina la care
trimite link-ul */
}
Exemplu cu return false Exemplu cu return true
Daca dorim ca utilizatorii care au JS activat sa ajunga pe o pagina si cei care-l au
dezactivat pe alta pagina cam asta trebuie sa facem:
window.onload = functieI;
function functieI() {
document.getElementById("redirect").onclick
controlClick;}
function controlClick() {
window.location = "paginajs.html";
253
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
JavaScript activat sau nu este suportat, acesta nu va putea sa interpreteze codul JS si-l va
executa doar pe cel html.
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>
<h1> Exemplu link destept </h1>
<h2 align="center">
<a href="www.google.com" id="redirect"> Link "destept"
JavaScript </a>
</h2>
254
window.onload = functieI;
function functieI() {
document.getElementById("redirect").onclick
controlClick;}
function controlClick() {
if(this.toString().indexOf("etutoriale") < 0) {
alert("Nu suntem responsabile de continutul acestui site.
Aceasta pagina este in afara domeniului nostru!!");
}
}
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
255
256
257
la
metoda,
nu
la
proprietate.
obiect.prorietate
obiect.metoda()
sir)
se
foloseste
pentru
prelua
258
text.
259
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,
260
incep
implicit
de
la
0.
nume_colegi[0] = "Cristi"
nume_colegi[1] = "Ion"
nume_colegi[2] = "Simona"
nume_colegi[3] = "Adi"
coleg = nume_colegi[0]
colega = nume_colegi[2]
nr_colegi = nume_colegi.length
Returneaza
Returneaza
inversul
parte
specificata
unui
a
tablou
unui
tablou
261
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).
262
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:
- 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.)
263
264
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()
265
PI - Returneaza PI
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:
266
parinte,
cum
sunt
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>
267
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>
268
269
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){
270
271
function evalid(){
var emailID=document.eFormular.txtEmail
if ((emailID.value==null)||(emailID.value=="")){
alert("Va rog sa introduceti o adresa de email")
emailID.focus()
return false
}
if (everif(emailID.value)==false){
emailID.value=""
emailID.focus()
return false
}
return true
}
</script>
<form name="eFormular" method="post" action="#"
onSubmit="return evalid()">
<p>Enter an Email Address :
<input type="text" name="txtEmail">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
EXEMPLU
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
272
273
274
PARTEA VII
VALIDAREA DATELOR
275
Existenta
Natura
Lungime
Semn
276
"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 gse ti func ii 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
277
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
csua
de
text
asociat
prin
278
lng
validatoarele
prezentate
mai
sus,
programatorul
poate
crea
279
PARTEA VIII
ASIGURAREA
SECURITATII
DATELOR SI A DOCUMENTELOR
280
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
281
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.
282
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.
283
284
PARTEA IX
UTILIZAREA
DOCUMENTELOR
PERIFERICE SI SPECIFICE
285
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)
Prelucrarea datelor se poate realiza manual sau cu ajutorul echipamentelor electronice de
calcul. Prelucrarea automat a datelor presupune att resurse materiale (echipamente
electronice de calcul), ct i umane (operatori, programatori), organizate ntr-o form care
s permit funcionarea acestora ca un ansamblu unitar; aceast form poart denumirea
de sistem de prelucrare automat a datelor (SPAD).
Prelucrarea datelor presupune totalitatea transformrilor, ca form i coninut a datelor.
Dintre transformrile cele mai importante se pot enumera:
1. Generarea: reprezint operaia prin care se obin date primare (sursa);
286
287
288
289
sistemului
de
calcul
destinat
pstrrii
datelor
290
291
292
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
293
294
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;
295
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
296
297
scanner de mn are dimensiuni reduse, este mai lent i este util pentru
prelucrarea documentelor mici.
298
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
299
300
301
302
303
PARTEA X
ANALIZAREA SCOPULUI PAGINII
WEB
304
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.
305
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:
306
307
308
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 site-
309
310
PARTEA XI
PROIECTAREA SITE-ULUI WEB
311
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.
312
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.
313
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.
314
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.
315
PARTEA XII
PROCESAREA IMAGINILOR,
CREAREA DE ANIMAII I FLASHURI
316
317
318
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).
319
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.
320
321
platform multimedia;
plugin;
player;
program;
format multimedia;
format de fiier;
tehnologie;
dispozitiv de memorie;
etc.
322
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.
323
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".
324
325
PARTEA XIII
ELABORAREA DE PROTOTIPURI
326
Introducere
n dezvoltarea de software, un prototip este un model rudimentar de lucru al unui
produs sau de sistem de informare, construit de obicei pentru scopuri demonstrative sau
ca parte a procesului de dezvoltare. Un prototip simuleaz, de obicei, doar cteva aspecte
ale soluiei finale, i poate fi complet diferit de produsul final.
nainte de a investi bani, timp i energie n realizarea unui site web propriu dar i pentru a
avea o privire de ansamblu, trebuie rspuns la cteva ntrebari generale :
Care este audiena? Care este nivelul de pregatire, ce anume o intereseaz, ce fel
de aptitudini i cunotine are?
327
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:
328
329
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
330
331
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.
Crearea elementelor dinamice
Pentru ca toate informaiile s fie prezentate ntr-un mod atractiv i original, o pagin web
poate s fie simpl sau mparit n:
332
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.
333
PARTEA XIV
REALIZAREA SITE-ULUI
334
335
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
336
337
PARTEA XV
TESTAREA SITE-ULUI
338
339
340
341
342
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.
343
PARTEA XVI
PUBLICAREA SITE-ULUI
344
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
345
346
347
348
programe
FTP
sunt
CuteFTP
(http://www.cuteftp.com)
si
WS_FTP
(http://ipswitch.com). Odata ce ati instalat pe computerul dumneavoastra un client FTP, vati nregistrat numele de domeniu si aveti un cont la un serviciu de gazduire totul este
pregatit pentru transferul fisierelor care compun site-ul pe serverul gazda.
Pentru a realiza transferul fisierelor, n general va trebui sa urmati urmatorii pasi:
Conectarea la Internet
Deschiderea programului FTP. Veti observa o serie de casete de dialog n care trebuie
introduse informatiile necesare programului pentru a realiza conexiunea cu computerul
gazda.
- Pentru a face conexiunea cu serverul trebuie sa furnizati programului adresa FTP a hostului dumneavoastra. Aceasta va este furnizata de firma de hosting la deschiderea contului.
De asemenea, programul va va cere numele de utilizator si parola pe care le-ati stabilit la
deschiderea contului. Nu uitati sa de-bifati optiunea Anonymous din meniul Login. Prin
introducerea numelui de utilizator si a parolei veti capata acces la contul dumneavoastra
si veti putea intra n directorul unde vor fi plasate fisierele site-ului.
O alta informatie care trebuie furnizata programului este tipul fisierelor transferate. n
general pentru fisierele HTML se foloseste optiunea ASCII iar pentru celelalt fisiere,
optiunea binary. Mai simplu, puteti alege optiunea AutoDetect prin care programul
determina singur tipul fisierului si modul cum va face transmiterea lui.
Celelalte casete de dialog pot fi lasate necompletate sau cu setarile preexistente.
349
350
351
PARTEA XVII
NTREINEREA SIT-ULUI
352
353
354
355
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
356
357
358