Sunteți pe pagina 1din 55

UNIVERSITATEA TEHNICA CLUJ-NAPOCA 1

PROIECT DISERTAŢIE

INTRODUCERE

1. OBIECTIVE
Obiectivul prezentei lucrări îl constituie realizarea unui site web într-o primă
formulă,ce va fi îmbunătăţită în continuare, a Colegiului Tehnic Bistriţa, aparţinător
de Universitatea Tehnică Cluj-Napoca.
Dezvoltarea crescândă a Internetului, cât şi concurenţa cu alte institute de
învăţământ superior impune o adaptare din mers a modului de a ne face cunoscuţi
ca ofertă de învăţământ superior. Realizarea unui acces şi prin Internet la diferite
informaţii de interes pentru viitorii dar şi actualii studenţi a impus realizarea unor
pagini de prezentare a Colegiului Tehnic din Bistriţa.

2. CERINŢE

Cerinţele pentru realizarea unui site web modern impun următoarele:


- design atractiv, simplu şi modern al paginilor;
- încărcare rapidă a paginilor şi de către mai multe browsere (Internet Explorer,
Netscape, Opera, etc);
- realizarea de efecte dinamice;
- integrarea de formulare pentru trimiterea de informaţii de către client;

- legarea site-ului de baze de date ce stochează diferite informaţii de interes


pentru vizitatori.

2. RESTRICŢII
Principalele constrângeri pe care le întâmpină un web designer se referă la:
- evitarea integrării în site a imaginilor cu volum mare de memorie, lucru ce
conduce la încărcarea cu greutate a paginilor, uneori şi la blocaje, în cazul unor
conexiuni de mici performanţe;
- evitarea pe cât posibil a lucrului cu fram-uri, care de asemenea determină
încărcarea greoaie a paginilor;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 2

PROIECT DISERTAŢIE

- tratarea scripturilor JavaScript astfel încât să fie recunoscute de diferite


browsere

VARIANTE DE REZOLVARE A TEMEI


În ceea ce priveşte tehnologia utilizată, în faţa web designerului stau o serie de
opţiuni, legate în principal de:

- modul efectiv de redactare a codului de program (scriere de cod manual sau


utilizarea unor utilitare de generare a codului ca de ex macromedia
Dreamweaver, etc.);
- utilizarea unor editoare HTML specializate (de ex. TextPad sau PHP Editor), sau
scrierea de cod cu editoare uzuale (de ex. NotePad, etc.)

- alegerea unei variante de server web, cu limbajul de scriptare orientat server,


respectiv sistemul de gestiune al bazelor de date relaţionale;aici sunt de ales
variante ca server web Microsoft IIS cu ASP şi Microsoft SQL, respectiv server
web Apach, cu PHP şi MySQL.

JUSTIFICAREA METODEI ALESE


Pentru prezenta lucrare a fost aleasă varianta de server Apache, cu limbajul de
scriptare orientat server PHP şi cu serverul de baze de date MySQL, întrucât aceste
softuri sunt fără licenţe şi programarea se face mai uşor decît în ASP.
În ceea ce priveşte realizarea codului de HTML a fost utilizat utilitarul Macromedia
Dreamweaver, iar pentru partea de cod PHP editorul HTML TextPad.

PREZENTAREA DETALIATĂ A CERINŢELOR


APLICAŢIEI
Prezenta aplicaţie trebuie să ofere informaţii de prezentare a Colegiului Tehnic
Bistriţa, oferta de învăţământ, structrată pe:
- învăţmânt de scurtă durată
- învăţmânt de lungă durată
- studii postuniversitare

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 3

PROIECT DISERTAŢIE

Site-ul trebuie să prezinte un istoric al acestei şcoli, precum şi planurile de


şcolarizare pe diferiţii ani universitari de când funcţionează şcoala.

PREZENTAREA SOFTWARE-ULUI APLICAŢIEI


Prezenta lucrare utilizează următoarele softuri:
- server web: Apache
- limbaj de scriptare orientat server: PHP
- limbaj de scriptare orientat client JavaScript
- limbaj de realizare a paginilor: HTML
- sistem de baze de date şi server de baze de date MySQL
- utilitar de creare a bazelor de date şi tabelelor PHP MyAdmin

Unul dintre cei mai utilizaţi termeni astăzi este Internetul. Dar o definiţie a acestuia
a fost dată de abia în anul 1995 de către Federal Networking Council ca fiind:
 un sistem informaţional care utilizează în mod unitar acelaşi spaţiu de
adrese bazat pe IP sau pe viitoarele sale extensii
 este capabil să asigure comunicarea prin suita de protocoale TCP/IP
sau prin viitoarele sale extensii
 oferă acces, public sau privat, la serviciile de comunicaţii de nivel înalt.
Există mai multe metode de acces la informaţia stocată pe un calculator prin
intermediul reţelei Internet:
 FTP (File Transfer Protocol) serviciul pentru transfer fişiere
 Telnet serviciul pentru acces la distanţă
 Elecronic Mail serviciul de mesagerie electronică
 News serviciul de ştiri
 World Wide Web altă metodă de acces la informaţia stocată pe un
calculator aflat oriunde în lume
World Wide Web utilizează tehnologia client-server.
Pentru a comunica între ele două calculatoare în cadrul serviciului WWW, utilizează
protocolul HTTP (HyperText Transfer Protocol). HyperTextul este text îmbogăţit cu
alte tipuri de informaţii: sunete, imagini, etc. un fişier ce conţine hipertext este
scris într-un limbaj numit HTML (HyperText Markup Language)

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 4

PROIECT DISERTAŢIE

1. Introducere în HTML
HiperText Markup Language (HTML) este un limbaj “gazdă” în care sunt încapsulate
obiectele şi aplicaţiile pe Internet. HTML este un limbaj care permite inserarea de:
 text
 sunete, imagini şi filme
 indicatori de prezentare a informaţiei
 legături (link-uri) către alte pagini Web aflate oriunde în lume
 aplicaţii (programe JavaScript, Java etc.)
Limbajul HTML este destinat realizării de pagini Web. Aceste pagini sunt nişte
fişiere ce au extensia .htm sau .html. Paginile Web create cu ajutorul acestui limbaj
au următoarele caracteristici:
 sunt multimedia, adică conţin informaţii sub formă de text, imagini,
sunete etc.
 sunt interactive, adică răspund la cererea utilizatorului
 sunt independente de platforma hardware şi software, adică se văd la
fel pe orice calculator, având instalat orice sistem de operare şi utilizând
orice browser.

1.1 Elementele standard ale unui document HTML


Crearea unei pagini Web presupune:
 Editarea fişierului HTML utilizând: un editor de texte obişnuit (Notepad,
Wordpad, Word, etc.) sau un editor de texte dedicat (Netscape Composer ,
Internet Explorer)
 Salvarea paginii Web cu extensia .html sau .htm într-un site Web
 Rezolvarea referinţelor conţinute în pagina Web (legături, imagini,
sunete, etc.)
 Vizualizarea paginii cu ajutorul unui browser.
O pagină HTML standard este o succesiune de blocuri ce pot fi imbricare. Un bloc
este delimitat de simboluri speciale numite marcaje sau tag-uri. Aceste simboluri
speciale sunt incluse între paranteze <....> si transmit comenzi către browser
pentru a afişa pagina într-un anumit mod.
Elementele standard ale unui document HTML sunt:

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 5

PROIECT DISERTAŢIE

 Blocul extern : <html>....</html>


 Blocuri incluse : <head>....</head> si <body>....</body>. Blocul
<body>...</body> cuprinde conţinul propriu-zis al paginii HTML, adică ceea
ce va fi afişat în fereastra browser-ului.
Orice etichetă poate fi scrisă atât cu litere mari, cât şi cu litere mici.
Pentru un stil mai elegant se recomandă ca fiecare pagina HTML să aibă un titlu.
Acest lucru se realizează cu ajutorul unui bloc <title>....</title>.
Tag-ul <br> este folosit pentru trecerea la o linie nouă. In acest caz nu există
</br>, este deci vorba despre un tag vid. <br> poate fi utilizat în interiorul altor
tag-uri, cum ar fi headere sau liste.

1.2. Stabilirea caracteristicilor textului de bază


Textul afişat este caracterizat de atributele:
 Mărime
 Culoare
 Font
Poziţionarea conţinutului paginii Web faţă de marginile ferestrei browser-ului se
poate face cu ajutorul a două atribute ale etichetei <body>
 leftmargin (stabileşte distanţa dintre marginea din stânga a ferestrei
browser-ului şi marginea din stânga a conţinutului paginii);
 topmargin (stabileşte distanţa dintre marginea de sus a ferestrei
browser-ului şi marginea de sus a conţinutului paginii);
<html>
<head><title>Igiena generala</title></head>
<body leftmargin=”40” top margin=”10%”>
</body>
</html>

1.3. Stabilirea tipurilor de caractere, a culorii de font şi a culorii


de text
Pentru ca un textul să apară în pagină îngroşat, trebuie inclus între
delimitatorii<b>şi</b>.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 6

PROIECT DISERTAŢIE

Pentru ca un text să fie scris cu caractere mai mari cu o unitate decât cele curente,
acesta trebuie inclus într-un bloc delimitat de etichetele <big> şi </big>.
Pentru ca un text să fie scris cu caractere înclinat, acesta trebuie inclus într-un bloc
delimitat de etichetele <i> şi </i>.
Pentru ca un text să fie scris cu caratere subliniate , acesta trebuie inclus într-un
bloc delimitat de etichetele <u> şi </u>.
<html>
<head><title>scenarii</title></head>
<body bgcolor=”FFC4FF”></bgcolor>
<align=”center”><b><i>scenarii<big>scenarii<big>scenarii<big>
scenarii<big> scenarii<big>scenarii</big></big></big></big></big>
</body><html>
Culoarea de font a unei pagini Web poate fi precizată în două moduri:
1. Print-un nume de culoare : red, white, black, yellow, blue, green,etc.
2. Prin construcţia “#rrggbb” unde r , g, sau b sunt cifre hexagonale şi pot lua
valori 0, 1, 2, ....9,a,A,......f, F; se pot defini astfel 65536 de culori. Culoarea unei
pagini se precizează prin intermediul unui atribut al etichetei <body>.
Culoarea de text se face prin intermediul atributului text al etichetei <body> se
folosesc sintaxele :
<body text =”#rrggbb”>...</body> schimbă culoarea scrisului pentru toată
pagina.
<font color =”#rrggbb”>...</font> impune pentru textul dintre marcaje
culoarea ”#rrggbb”.
<html><head><title>Armăturii </title></head>
<body bgcolor=”B6B66D”></bgcolor>
<font color=”00AA00”>Ceaiul </font>
Armăturile sunt produse specifice industriei extractive,prelucrătoare de materii
prime.
</body>
</html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 7

PROIECT DISERTAŢIE

1.4. Etichete la nivel de bloc de text


Indentarea unui bloc se realizează incluzând etichetele
<blockquote>....</blockquote>. Indentarea constă în deplasarea marginii din
stânga a textului la dreapta la o anumită distanţă faţă de marginea paginii.
<html>
<head><title><Introducere</title></head>
<body bgcolor=”FFFF00”></bgcolor>
Seminarul este alcătuit din şapte teme.
<blockquote>
Firma ARIO-SA produce armaturi industriale din oţel
</blockquote>
</body>
</html>
Blocuri <div>
Modalitatea cea mai eficientă de delimitare şi formatare a unui bloc de text este
folosirea delimitatorilor <div>...</div>. Un parametru foarte util pentru stabilirea
caracteristicilor unui bloc <div> este align. Valorile posibile ale acestui parametru
sunt:
 “left”(aliniere la stanga);
 “center”(aliniere centrala);
 “right”(aliniere la dreapta)
<html>
<head><title>Familia</title></head>
<body bgcolor=”2F1F89”></bgcolor>
<font color =”2F1F89”>Familia</font>
<div align=”right”>
MOTTO:
“Când ţi se dă o şansă să fii tu însuţi şi când acorzi această şansă celuilalt
înseamnă că vă iubiţi”.
</div>
</body></html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 8

PROIECT DISERTAŢIE

Blocuri paragraf
Trecerea la o linie nouă se mai poate realiza si cu ajutorul etichetei paragraf <p>.
Spre deosebire de eticheta <br> eticheta <p> permite:
 inserarea unui spaţiu suplimentar înainte de blocul paragraf;
 inserarea unui spaţiu suplimentar după blocul paragraf, dacă se
foloseşte delimitatorul </p>
 alinierea textului cu ajutorul atributului align având valorile posibile
,,left”, ,,center”, ,,right”.
<html>
<head><title>alegerea hranei</title></head>
<body bgcolor="00C431"></bgcolor>
<H2align="center"><B><I><FONTCOLOR="FF0000"><U>Reform&atilde
&icircn diet&atilde</U></FONT></i></B></H2><br>
<img src="little fruits.bmp" border=2 align="left">
<P align="center"><font color="ff0000">Noi insine trebuie s&atilde suferim
urm&atilderile nerespect&atilderii
acestor legi.
</p>
</body>
</html>
Blocuri de titlu
Intr-un text sunt necesare titluri de capitole de diferite dimensiuni. Acestea pot fi
introduse cu ajutorul etichetelor <h1>, <h2>, <h3>, <h4>, <h5>, <h6>.
Toate aceste etichete se referă la un bloc de text şi trebuie însoţite de o etichetă
similară adică <h3>...</h3>. Aceste etichete acceptă atributul align, pentru
alinierea blocului de text, la stânga , în centru şi la dreapta.
Tag-ul <h1> permite scrierea unui titlu cu caracterele cele mai mari , pe când
<h6> foloseşte caracterele cele mai mici.
<html>
<head><title>Alegerea armăturii</title></head>
<body bgcolor=”00C431”>
<h2 align=”center”><font color=”FF0000”>Alegerea armăturii</font>
</center></h2>
<p>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 9

PROIECT DISERTAŢIE

Armăturile industriale din oţel se folosesc in industria petrochimică.


</body>
</html>

Liniile orizontale într-o pagina Web se inserează cu ajutorul etichetei <hr>.


Pentru a configura o linie orizontală se utilizează următoarele atribute ale etichetei
<hr>:
 align permite alinierea liniei orizontale. Valorile posibile sunt “left”,
“center”, “right”.
 widht permite alegerea lungimii liniei .Valorile posibile sunt:
 numere întregi pozitive reprezentând lungimea liniei , în pixeli;
 numere între 1 şi 100 urmate de semnul % reprezentând procentul din
lăţimea paginii pe care se întinde linia.
 size permite alegerea grosimii liniei. Valorile posibile sunt numere
întregi pozitive reprezentând grosimea liniei în pixeli;
 color permite definirea culorii liniei.
 Blocul inclus în eticheta <center>...</center> aliniază centrat toate
elementele pe care le conţine ca în exemplu următor:

<html>
<head><title> Armaturi industriale </title></head>
<body background=”back030.gif”>
<p>
Folosirea acestora este determinata de condiţiile de exploatare.
<center>
<hr width=10%>
<hr width=30%>
</center>
</body>
</html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 10

PROIECT DISERTAŢIE

1.5.Introducerea listelor într-opagină WEB


Lista neordonată reprezintă un bloc de text delimitat de etichetele corespondente
<ul> si <ul>(“unordered list”) . Fiecare element al listei este iniţiat de eticheta
<li> .Tag-urile <ul> şi <li> pot avea un atribut type care stabileşte caracterul
afişat în faţa fiecărui element al listei. Valorile posibile ale acestui atribut sunt:
 “square” (pătrat)
• “disc” (disc plin)
• “circle” (cerc)
In următorul exemplu am expus o pagină Web ce conţine o listă neordonată:
<html>
<head><title>Introducere</title></head>
<body bgcolor=”FFFF00”></bgcolor>
<ul type=”disc”><li>Alimentaţia</ul>
<ul type=”disc”><li>Profilaxia fumatului</ul>
<ul type=”disc”><li>Profilaxia folosiri alcoolului şi a drogurilor</ul>
<ul type=”disc”><li>Familia</ul>
</body>
</html>
Lista ordonată este acel bloc de text delimitat de etichetele corespondente
<ol>text </ol> (ordered list). Fiecare element al listei este iniţiat de eticheta
<li>.
Tag-urile <ol> si <li> pot avea un atribut type care stabileşte tipul de caractere
utilizate pentru ordonarea listei. Valorile posibile sunt:
 ,,A” pentru ordonare de tipul A, B, C, etc.;
 ,,a” pentru ordonare de tipul a, b, c, etc.;
 ,,I” pentru ordonare de tipul I, II, III, etc.;
 ,,i” pentru ordonare de tipul i, ii, iii, etc.;
 ,,1” pentru ordonare de tipul 1, 2, 3,etc.
Listele ordonate pot fi imbricate între ele şi cu liste neordonate ca în exemplul din
proiect:
<html>
<head><title>Cuprins</title></head>
<body background=”back045.gif”>
<h2 align=”left”><font color=”444444”><i>Cuprins</i></font></h2>
- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 11

PROIECT DISERTAŢIE

<h2 align=”left”><i><font color=”444444>Partea teoretică</font></i>


<ol type=”A”>
<li> Introducere
<li> Sugestii
<li>Produse
<ul><li>Nomenclator produse</ul>
<ol type=”a”>
<li> RSP-uri
<li> RIV-uri
<li>RSF-uri
<li>RRV-uri
</ol>
<li>Clienti
<li>Statistici
</ol>
<ul>
<li> Formular de precomanda
</ul>
</body>
</html>

1.6 Introducerea imaginilor într-o pagină WEB


O facilitate extraordinară a limbajului HTML este posibilitatea de a include imagini.
Imaginile sunt stocate în fişiere cu diverse formate. O parte din formatele acceptate
de browsere sunt:
 GIF cu extensia .gif;
 JPEG cu extensia .jpg sau .jpeg;
 BMP cu extensia .bmp.
Pentru a insera într-o pagina Web o imagine, se utilizează eticheta <img>. Pentru
a putea fi identificată imaginea ce urmează a fi inserată, se utilizează un atribut al
etichetei <img> şi anume src. Dacă imaginea se află în acelaşi director cu fişierul
HTML care face referire la imagine, atunci adresa imaginii este formată din numele
imaginii, inclusiv extensia.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 12

PROIECT DISERTAŢIE

Pentru o mai plăcută prezentare a unei imagini putem aplica şi un chenar. De


asemenea celulele unui tabel pot conţine imagini.
<html>
<head><title>Armaturi</head></head>
<h1 align=”center”>Tabel cu tipuri de armaturi</h1>
<tr><td><img src=”lime.gif”><td>
<img src=”rsp.gif”>
<tr><td><img src=”rrv.gif”><td>
<img src=”riv.gif”>
</table></body>
</html>
Imaginile pot fi folosite pentru crearea unor legături (link-uri) cu alte pagini din
proiect. O legătura introduce în pagina Web o zona “activă”.
<html>
<head><title>tipuri de armaturi</title></head>
<h2 align=”center”>alegerea armaturilor</h2>
Robineţii cu tija ascendenta <a href=”rspta.html”><img src=”rsp.jpg”>
</a> se folosesc la temperaturi de peste 450 C.
</body>
</html>
Imaginile în fişiere externe necesită un timp îndelungat de încărcare în browser,
deseori în pagina Web este preferată inserarea numai unei legături către imagini,
lăsând utilizatorului posibilitatea de a le încărca sau nu.
<html>
<head><title>tipuri</title></head>
<body>
<h2 align=”center”>tipuri uzuale de armaturi
</h2> <a href=”tab1.html”>. Efectuaţi clic pentru a putea vedea
imaginea</a> rsp.rrc,rsf,riv.
</body>
</html>
Un truc des întilnit este acela de a utiliza o imagine de rezoluţie scăzută pe post de
legătura către aceeaşi imagine, dar stocată într-un fişier cu o rezoluţie foarte bunaă
<html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 13

PROIECT DISERTAŢIE

<head><title>generalitati</title></head>
<body>
<ul type=”disc”>
<li>80% din producţia anuală este destinată exportului
<li>20% din producţia anuală este destinată pieţei interne
<a href=”grafic.jpg”><img src=”grafic.jpg”></a>
<li>
</ul>
</body>
</html>

1.7 Tabele
Pentru a insera un tabel se folosesc etichetele corespondente
<table>....</table>
Un tabel este format din rânduri. Pentru a insera un rând într-un tabel se folosesc
etichetele <tr> şi </tr>(table row).
Un rând este format din mai multe celule ce conţin date. O celulă de date se
introduce cu eticheta <td> (table data).

Pentru a adăuga un chenar la un tabel , se utilizează un atribut al etichetei


<table> numit border.
 Atributul border poate să nu fie urmat de o valoare, caz în care tabelul
va avea un chenar de grosime prestabilită egala cu 1 pixel.
 O valoare egală cu 0 a grosimii semnifică absenţa chenarului.
 Când are grosime nenulă, chenarul unui tabel are un aspect
tridimensional.

Pentru a alinia un tabel într-o pagina Web se utilizează atributul align al


etichetei <table> cu următoarele valori posibile:”left”, “center” ,”right”

Culoarea de fond se stabileşte cu ajutorul atributului bgcolor care poate fi ataşat


întregului tabel prin eticheta <table>, unei linii prin eticheta <tr> sau unei celule
de date prin eticheta <td>. Valorile pe care le poate primi atributul bgcolor sunt
cele cunoscute pentru o culoare.
- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 14

PROIECT DISERTAŢIE

 Dacă în tabel sunt definite mai multe atribute bgcolor, atunci prioritatea este
următoarea: <td>, <tr>si <table>.
Ca o concluzie, toate tag-urile care descriu elementele unui tabel sunt cuprinse in
interiorul constructiei <table>. Acestea sunt:
<caption>-tag optional care specifică titlul tabelului;
<tr> -specifică liniile tabelului;
<td> -introduce celule individuale din liniile tabelului;
<th> -descrie celulule cap de tabel, fiind tot un tag opţional.
Dimensiunile unui tabel –lăţime şi înălţime - pot fi stabilite exact prin intermediul
a două atribute, width si height, ale etichetei <table>. Valorile acestor atribute
pot fi:
 Numere întregi pozitive reprezentând lăţimea, respectiv înălţimea în
pixeli a tabelului;
 Numere întregi între 1 şi 100, urmate de semnul % reprezentând
fracţiunea din lătimea, respectiv înăţimea totală a paginii.

Titlul unui tabel .


Se poate ataşa un titlu unui tabel cu ajutorul etichetei <caption>. 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 din valorile:
 ,,bottom” (sub tabel);
 ,,top” (deasupra tabelului);
 ,,left” (la stanga tabelului);
 ,,right” (la dreapta tabelului).

Capul de tabel este format din celule ce pot fi introduse cu eticheta <th>.
Alinierea pe orizontală a conţinutului unei celule se face cu ajutorul atributului
align , care poate lua valori:
 ,,left”;
 ,,center”;
 ,,right”;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 15

PROIECT DISERTAŢIE

In exemplu de mai jos am inclus toate aceste modalităţi de construire şi aranjare a


unui tabel într-o pagina Web. Exemplul este de fapt o parte din tabelul numit
,,beneficiari”.
Se pot construi tabele cu imagini şi texte împreună. Asfel în rândul de sus se află
imaginea , iar în rândul de jos se află textul.
<html>
<head><title>igiena generala</title></head>
<body background=”bacg077gif”>
<h2 align=”center”>Respiraţia şi lumina soarelui>
<center>
<table border>
<tr>
<td> <table border>
<tr><td><img src=”respiratie.jpg” width=”270” height=”330”><img
src=”aer.jpg” width=”270” height=”330>
<tr><td>text
</table>
<td><table border>
<tr><td><img src=”lumina.jpg” width=”250” height=”330”>
<tr><td>text
</table></table>
</body></html>

1.8 Legături – interactivitatea unei pagini WEB


Legăturile (link-urile) reprezintă partea cea mai importantă a unei pagini Web. Ele
transformă un text obişnuit în hipertext sau hipermedia, care permite trecerea
rapidă de la o informaţie aflată pe un anumit server la altă informatie memorată pe
un alt server aflat oriunde în lume.
Legăturile sunt zone active într-o pagina Web, adică zone de pe ecran sensibile la
apăsarea butonului stâng al mouse-ului. Un clic efectuat cu mouse-ul pe o legătură
este interpretat ca o cerere către un anumit server din Internet de a expedia către
calculatorul client o resursă indicată de legătura respectivă. In acest fel, paginile
Web devin interactive (adică răspund la acţiuni iniţiate de utilizator).
Paşii care se execută prin aplicarea acestor legături sunt următorii:
- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 16

PROIECT DISERTAŢIE

1. In pagina HTML se inserează legături prin intermediul unei etichete speciale <a>
şi a unui atribut href care ia ca valoare adresa unei surse solicitate. De exemplu
<a href = “cuprins.html”> zona activa </a>.

2. In pagina Web apar legături diferite la punctul 1) ca zone active. Când mouse-ul
se află deasupra unei zone active, cursorul mouse-ului ia în mod automat forma
unei mâini;
3. Efectuând clic pe o zona activă ce reprezintă o legătura din pagina Web,
browser-ul trimite către serverul care stochează noua resursa o cerere de a-i
expedia pagina respectivă;
4. Serverul WWW ce stochează noua resursă primeşte cererea si expediază către
utilizator resursa solicitată. Dacă aceasta este o noua pagină Web , atunci
serverul expediază un fişier HTML împreună cu fişierele imagine, sunet , referite
de acest fişier;
5. Calculatorul client primeşte resursa solicitată şi o încarcă în browser;
6. Pagina veche este înlocuită de pagina nouă în acelaşi browser sau este lansată
în execuţie o nouă instantă a browsr-rului care conţine noua pagină.

O legătură către o pagină aflată în acelaşi director


Legătura către o pagină aflată în acelaşi director se formează cu ajutorul etichetei
<a> (ancora).
Pentru a preciza pagina indicată de legatură se utilizează un atribut al etichetei <a>
numit href , care ia ca valoare numele fişierului HTML aflat in acelasi director, care
va înlocui vechea pagină.
Zona activă , adica zona din pagina Web care devine sensibilă la apăsarea butonului
stâng al mouse-ului, este formată din textul cuprins între etichetele <a> şi </a>.
<html>
<head><title>Dieta şi sănătatea</title></head>
<body>
<h2 align=”center”><b><u><i><font color=”FF0000”>Dieta si
sănătatea</font></i></u></b></h2>
<center><a href=”general.html”>Home</a></center>
</body>
</html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 17

PROIECT DISERTAŢIE

1.9 Utilizarea unei imagini ca zonă activă


Zona activă a unei legături este definită cu ajutorul etichetelor <a> şi </a>.
De obicei ea este un text care apare subliniat si de culoare albastra. In momentul in
care mouse-ul se afla deasupra zonei active, cursorul sau ia forma unei mâini care îi
indică utilizatorului să apese butonul mouse-ului.
Rolul de zona activă poate fi jucat şi de o imagine dacă inserarea ei are loc între
etichetele <a> si </a>.
<html>
<head><title>Obezitatea</title></head>
<body bgcolor=”FF8240”>
<h2 align=”center”><u><i><font color=”FF4F4F”>Evitati obezitatea
<font></i></u></h2>
<br>
Respectarea orarului meselor <a href=”dieta.html”><img
src=”gras1.jpg”></a> si exercitiile fizice , va vor ajuta sa eliminati greutatea
in exces.Daca depasiti cu 40% greutatea normala , creste riscul aparitiei
cancerului de colon, san, uter, sau vezica biliara.
</body>
</html>

1.10 Frame-uri
Cadrele ne permit sa definim in fereastra browser-ului subferestre in care sa fie
incarcate documente HTML diferite.
Cadrele sunt definite intr-un fisier special, in care blocul <body>...</body>
este inlocuit de blocul <frameset>...</frameset>. In interiorul acestui bloc, fiecare
cadru este introdus prin eticheta <frame>.un atribut obligatoriu al etichetei
<frame> este src, care primeste ca valoare adresa documentului HTML care va fi
incarcat in acel frame.
Definirea cadrelor se va face din aproape in aproape, prin impartirea ferestrelor in
linii si coloane:

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 18

PROIECT DISERTAŢIE

 Impartirea unei ferestre intr-un numar de subferestre de tip coloana


se face cu ajutorul atributului cols al etichetei <frameset> ce descrie acea
fereastra;
 Impartirea unei ferestre intr-un numar de subferestre de tip linie se
face cu ajutorul atributului rows al etichetei <frameset> ce descrie acea
fereastra;
 Valoarea atributelor cols si rows este o lista de elemente separata
prin virgula, care descriu modul in care de face impartirea.
Elementele listei pot fi:
I. Un numar intreg de pixeli;
II.Procente din dimensiunea ferestrei (numar intre 1 si 99 terminat
cu %);
III. n*, care inseamna n parti din spatiul ramas.
O pagina Web poate fi formata din:
 -doua cadre verticale egale;
 -trei cadre orizontale;
 -trei cadre mixte;
 -o matrice de 2*2 cadre;
Atributul border al etichetei <frameset> permite configurarea latimii chenarelor
tuturor cadrelor incluse la un numar dorit de pixeli.
In urma dimensionarii chenarului unui cadru pot rezulta:
 -cadre cu chenare late;
 -cadre fara chenare;
Daca un cadru este prea mic pentru a afisa in intregime pagina specificata i se vor
atasa automat bare de defilare(scool).
Paginile din cadre contin numai sectiunea BODY
O pagina dintr-un cardu poate comanda ce pagina sa fie afisata intr-un alt cadru.
Pentru aceasta se foloseste marcajul <a> cu atributul TAGET care specifica numele
cadrului in care se va realiza afisarea.

1.11 Realizarea formularelor


Formularele sunt pagini Web speciale , avand rubrici care trebuie completate sau
validate. Continutul rubricilor (campurilor)este transferat serverului Web. Procesul
de transfer este comandat prin apasarea unui buton (buton submit) existent in
- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 19

PROIECT DISERTAŢIE

orice formular.Cand primeste fluxul de informatii, serverul Web lanseaza o aplicatie


asociata formularului denumit script CGI care prelucreaza datele primite.
Marcajul <FORM>…</FORM>
Zona din pagina Web care cuprinde campurile formularului este cuprinsa intre
marcaje >FORM> </FORM>. Marcajul <FORM> are doua atribute obligatorii:
 METHOD defineste modul in care sunt transmise datele
serverului. Atributul poate lua doua valori :
-METHOD=post daca datele vor fi trimise scriptului CGI ca si fisier
standard de intrare
-METHOD=get daca datele introduse vor fi transmise serverului intr-o
variabila de mediu a acestuia(QUIRY_STRING)
 ACTION specifica scriptul CGI care preluceaza informatia.

Marcajul <INPUT>…</INPUT>
Defineste caracteristicile unui camp al formularului. Atributele marcajului <INPUT>
sunt:
 TYPE=tip –defineste tipul campului
 NAME=nume-defineste numele simbolic al valorii campului
 VALUE= valoare-defineste continutul prestabilit al campului
 CHECKED=opt buton/ caseta validata in mod prestabilit
 SIZE=n numar de caractere al casetei de text afisate
 MAXLENGTH=m numarul maxim de caractere acceptate

Limbajul HTML permite definirea a noua tipuri de campuri:


1. Tipul TEXT impreuna cu atributul SIZE permite definirea unui camp pentru
introducerea unui sir de caractere:
<INPUT TYPE=text SIZE=25 NAME=”nume”>
2. Tipul PASSWORD (parola) permite introducerea unei parole .caracterele
introduse nu vor fi afisate, in camp aparand doar caractere*:
<INPUT TYPE=password NAME=”parola” SIZE=10>
3. Tipul CHECKBOX permite desenarea unei casete izolate de validare:
<INPUT TYPE=checkbox NAME =”clietnou” VALUE=”da”>
4. Tipul RADIO permite generarea unui ansamblu de butoane cu interblocare care
au acelasi nume.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 20

PROIECT DISERTAŢIE

5. Tipul buton SUBMIT are ca si efect transmiterea spre server a valorilor introduse
in campurile formularului
6. RESET permite utilizatorului sa stearga toate campurile formularului
<INPUT TYPE=reset VALUE =“ Anulare “>
7. FILE permite transmiterea spre server a unui fisier. Este recunoscut numai de
NETSCAPE
8. IMAGE permite folosirea in locul butonului submit , pe care il inlocuieste , a unei
imagini
<INPUT TYPE=image SRC=”poza.gif” ALT=”VALIDEZ” BORDER=0>
9. HIDDEN permite transmiterea informatiilor spre server fara ca utilizatorul sa le
vada pe ecran.
MARCAJUL<TEXTAREA>
Permite definirea unei zone in care se poate scrie un text mai mare , dispus de
regula pe mei multe linii.In acest mod se definesc de exemplu zonele in care cel
care a deschis o pagina isi poate scrie impresiile despre acestea.
Marcajul <SELECT>
Permite definirea listelor derulante .Meniul derulant prezinta o valoare. Executia
unui clic pe aceasta va provoca afisarea listei de optiuni , vizitatorul paginii putand
selecta optiunea dorita.

2. Tehnologia PHP - MySQL


APROAPE INTREAGA MUNCA A APLICATIILOR Web ARE LOC PE SERVER .
O aplicatie specifica numita Server deWeb este responsabila pentru comunicarea cu
browserul.
Arhitectura software a unei asfel de aplicatii Web pentru o pagina Web
dinamica in conectare cu BD este prezentata in figura:

BAZA DE DATE RELATIONALE


MySQL, ORACLE, MSSQL, ACCESS

SERVER WEB Limbaje de scriptare


Apache, PWS, IIS C, PHP, PERL, ASP, FSP, Cold Fusion

- IULIE 2003 -
Browser WEB
Internet Explorer
Netscape, Opera
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 21

PROIECT DISERTAŢIE

O bază de date relaţionale de tip server stochează orice informaţie pe care o solicită
aplicaţia. In final este nevoie de un limbaj de programare care să emită interogări
între serverul de Web şi serverul de baze de date; ea va fi utilizată pentru
realizarea unor sarcini de programare asupra informaţiei care vine spre şi de la
serverul de Web.
Serverul de Web rulează deasupra sistemului de operare ascultând cererile pe care
cineva le-ar putea face pe Web, raspunzand acestor cerere si oferind pagini Web
corespunzatoare.
Exista multe servere de Web din care insa 2 domina piata . Ele sunt APACHE si
MICROSOFT INTERNET INFORMATION SERVER(IS)

SERVERUL APACHE
Este cel mai popular server WEB existent. Ca si LINUXUL , PHP, MYSQL ele sunt
proiecte de tip “open source”. Lucraza cel mai bine in mediu UNIX dar ruleaza la fel
de bine in mediu Windows.
APACHE este un mare server de WEB. El este rapid si surprinzator de stabil.
Imbinarea dintre Serverul WEB APACHE si limbajul de scriptare PHP se poate face in
2 moduri:

1. PHP inglobat ca modul intern in APACHE


2. PHP ca aplicatie CGI(Common Gateroay Interface)

2.1. Introducere în PHP


PHP este un limbaj destinat scrierii scipturilor care vor fi interpretate de server-ul
Web. Limbajul face parte din categoria “open source” , gratuite si este remarcabil
prin flexibilitate usurinta in invatare si capacitatea de a rula pe multiple sisteme de
operare (Windows, Unix, Linux).
Limbajului PHP combinat cu serverul de baza de date MySOL reprezinta o
solutie foarte buna pentru realizarea rapida de aplicatii Web complexe.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 22

PROIECT DISERTAŢIE

Deoarece PHP a fost conceput ca limbaj de scripting pentru Web, faciliteaxa accesul
la variabile transmise de catre formularele HTML.

<html>
<head><title> formular simplu</title></head>
<body>
<FORM METHOD=”POST” ACTION=”PHPINFO.PHP”>
<br>tastati date:
<br><INPUT TYPE=”TEXT” NAME=”date”>
<br><br><INPUT TYPE=”SUBMIT”>
</FORM>
</body>
</html>
Datele de iesire catre browser se trimit utilizand constructia echo.
Forma acestei constructii este:
echo sir_expresie;
Exemplu:
echo “<br><b> Datele sunt elegante!</b>”;
Trimite browserului textul “Datele sunt elegante!”.Textul include etichete HTML,
care influenteaza modul de formatare a textelor, determinandu-le sa apara pe o
linie noua , scrise cu ajutorul caractererelor aldine.

2.2.Tehnologia PHP
In continuare voi prezenta principalele instrucţiuni ale acestui limbaj .
 Instucţiunile compuse folosesc caractere { }, iar pentru scrierea a mai
multor instrucţiuni pe un rând se utilizează separatorii “,”.
 Codul scris in PHP .este cuprins intre marcaje <?php si ?>. In afara
codului scris in PHP pot fi scrise marcaje HTML obisnuite, serverul
interpretandu-le ca atare si incluzandu-le in fisierul trimis browser-ului.
 Atribuirea se realizeaza folosind “=” si numele variabilelor incep cu un
caracter”$”.
 Conectarea la baza de date se realizeaza apeland succesiv functiile
PHP mysql_connect() si mysql_select_db().

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 23

PROIECT DISERTAŢIE

 Interogarile sunt utilizate folosind functia mysql_query()


 Sirurile de caractere sunt incluse in fisierul standard de iesire (trimis
browserului) folosind comanda echo.

Elementele de baza ale limbajului PHP sunt urmatoarele:

Variabile.
Dupa cum am precizat numele unei variabile incepe cu caracterul “$”.Variabilele pot
fi create de programator , prin atribuirea unei valori, sau in mod reflex, de catre
PHP, ca in cazul scripturilor care prelucreaza datele continute in formulare. In PHP
variabilele pot fi de tip integer, double, string, boolean sau array(sir). Exemple:
-$a=”informatica”; //$a este un sir de caractere
-$b=3; //$b este un intreg
-$c=3.14; //$c este un numar real
-$d=”6”; //$d este un sir de carctere
-$e=$b+$d; //$e=9, deci $d este un nr. intreg
-$f=TRUE; //$f este o variabila logica
-$luni=array(“ian”,”feb”,”mar”); //$g este un sir de valori

Sirurile de carctere sunt delimitate prin caractere “(ghilimele). Daca in sir exista
ghilimele , caractere $ sau caractere \, pentru a fi interpretate ca atare acestea pot
fi precedate de \.
Exemplu:
$a=”New York”;
$mesaj=”Excursie la $a”
deci variabilele prezentate in siruri delimitate prin chilimele vor fi inlocuite prin
valoarea lor , deci $mesaj=”Excursie la New York”.
Caracterul “.” este in PHP operatorul de concatenare.

Declararea sirurilor de valori se face cu ajutorul functiei array():


$luni=array(“ianuarie”, “februarie”,”martie”,”aprilie”);
$luni[4]=”mai”;
$luni[5]=”iunie”;
$luni[]=”iulie”;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 24

PROIECT DISERTAŢIE

echo ”Luna a doua este $luni[1].”;

Deoarece primul element dintr-un sir are indicele 0, efectul comenzii echo va fi
imprimarea sirului “Luna a doua este februarie”.Atribuirea $[]=”iulie”, este corecta,
elementul care va primi valoare fiind luni[6].

Siruri asociative Elementele dintr-un sir asociativ sunt perechi de forma


(cheie=>valoare).
Exemplu
$angajat=array(
“nume”=>”Moldovan”,
“prenume”=>”Vasile”,
“e-mail”=>ciobanuv@somewhere.com
);
Adaugare unei noi valori in sirul $angajat se poate face scriind:
$angajat[“varsta”]=32;
Pentru a extrage valoarea asociata cheii “prenume” din sirul $angajat se va scrie
$angajat[prenume].
Pentru a imprima toate valorile din sirul $angajat se poate folosi o constructie de
tipul list()=each(), ca in ciclul:
while (list($key,$value)=each($angajat))
{
echo ”cheie : $key, valoare :$value<br>\n”;
}
Accesarea variabilelor primite de la browser
Odata ce datele dintr-un formular au fost expediate , scriptul asociat primeste un
sir de caractere care contin perechi de valori nume=valoare
Separate prin caractere “&”.
Intr-un script PHP, numele diferitelor campuri $nume devin automat variabile
globale in cadrul scriptului si au valorile din campurile formularului. Aceasta este
valabil indiferent de modul de trimitere (post sau get).
Valorile primite de la browser pot fi accesate si prin sirurile asociative
$HTTP_POST_VARS sau $HTTP_GET_VARS, in functie de modul de expediere a

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 25

PROIECT DISERTAŢIE

datelor. Accesul la o valoare se face scriind $HTTP_POST_VARS[cheie], cheie fiind


numele campului formularului.

Functii PHP pentru testarea variabilelor


Rezultatul unei astfel de functii poate fi “FALSE” sau “TRUE”.
Functia isset($var) verifica daca variabilei $var indicata ca argument i s-a
atribuit deja o valoare.
Functia empty($var) are valoare “TRUE” daca variabila indicata ca argument
este neinitializata, este un sir de caractere de lungime 0 sau are valoarea intrega 0.
Exemplu:

if(empty($nume_client)) {
echo “Va rog sa completati numele dv.!”;
exit;
}

Functiile is_int($var), is_double($var), is_srting($var), is_array($var), si


is_bool($var) testeaza tipul variabilei indicate ca argument.

Modificarea tipului variabilelor


Modificarea tipului unei variabile se poate face in trei moduri:
• Folosind operatori de transtipaj:
$a=1
$b=(string)$a;
Operatorii posibili sunt (integer), (double), (array), (string).
• Folosind functia settype()
$a=1;
settype($a, “string”);
• Folosind functiile intval(), doubleval(), stringval(). Aceste functii nu modifica
tipul variabilei introduse ca argument dar returneaza o valoare apartinand tipului
cerut:
$a=”12”;
$b=intval($a) *2;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 26

PROIECT DISERTAŢIE

Instructiuni de control
Instrunctiunea if
Ca si in alte limbaje , instructiunea if are doua forme:
if(conditie)
{
actiune pentru conditie=adevarat(TRUE)
}
respectiv
if(conditie)
{
actiune pentru conditie=adevarat(TRUE)
}
else
{
actiune pentru conditie=fals(FALSE)
}
Conditia poate fi o expresie logica , scrisa folosind operatori relationali cunoscuti:<
<= > >= == !=(sau<>) respectiv &&(dar si and, operatorul si) || (dar si or,
operatorul sau), ! (negatie). Cele doua variante de operatori logici “si” respectiv
“sau” difera prin ordinea de evaluare a operanzilor.
Ca si in alte limbaje , conditie poate fi o expresie aritmetica , o valoare 0 a
acesteia fiind interpretata ca fals iar valoare diferita de 0 ca adevarat.

Instructiunea if...elsif
In PHP pot fi scrise constructii de forma :
If(conditie_1)
{
Actiuni pentru conditie_1=adevarat
}
elseif(conditie_2)
{

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 27

PROIECT DISERTAŢIE

Actiune pentru conditie_2=adevarat


}
elseif(conditie_3)
{
Actiune pentru conditie_3=adevarat
}
else
{
Actiuni pentru restul situatiilor
}
Instructiunea while indica repetarea unei actiuni atata vreme cat o conditie este
adevarata.Sintaxa instructiunii este:
while(conditie)
{
actiune
}
Exemple:
$query=”select nume, prenume from utilizatori”;
$rezultat=mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($rezultat))
{
echo $row[“nume”].” “.$row[“prenume”]. “<br> \n”;
}
aceasta structura de cod este specifica activitatii de recuperare de informatii dintr-o
baza de date.

Instructiunea do...while indica repetarea unei actiuni atata vreme cat o


conditie este adevarata.Spre deosebire de while , conditia este testata dupa
executarea cel putin o data a actiunii.

Instructiunea for are urmatoarea sintaxa:


for(exp1;exp2;exp3)
{
actiune

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 28

PROIECT DISERTAŢIE

}
Instructiunea foreach se foloseste exclusiv pentru prelucrarea elementelor
sirurilor. Este echivalenta constructiei list () =each() .
Sintaxa instructiunii este:
Foreach($nume_sir as $variabila)
{
actiune pentru valoarea curenta
}
Exemplu:
$nume = array(“Ion”, “Maria”, “George”);
foreach ($nume as $membru)
{
echo “$membru este invitat la cina.<br>\n”.

Instructiunile break si continue. Instructiunea break intrerupe un ciclu sau un


switch. Instructiunea care urmeaza dupa break este cea care urmeaza dupa
instructiunea switch sau dupa ciclul care contine break.
Instructiunea continue este folosita tot in interiorul ciclurilor si comanda
reluarea imediata a ciclului intrerupand sirul actiunilor din locul in care continue
este inserat si sfarsitul acestuia.
Exemplu :
<html>
<?php
$director =opendir (‘c:/apache/htdocs/postuniv/’);
echo “fisierele din directorul $director sunt:<br>\n”;
while ($fisier=readdir($director))
{
if (is_dir($fisier)) { continue; }
echo “$fisier<br> \n”;
}
closedir ($director);
?>
</html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 29

PROIECT DISERTAŢIE

Functiile opendir() respectiv closedir(0 deschid respectiv inchid un director iar


functia readdir() citeste o intrare din acest director.Tipul intrarii (fisier sau director)
este testat prin apelul functiei is_dir(0 si in caz pozitiv, intrarea este ignorata .

Functii Intr-o aplicatie scrisa in PHP pot fi intalnite doua tipuri de functii: functii
predefinite, apartinand limbajului
Functii definite de programator pentru a evita scrierea repetata a unor secvente de
cod sau pentru a usura intelegerea codului.

Definirea unei functii


Sintaxa unei functii scrise in PHP este urmatoarea:

Function nume([lista_parametri])
{
corpul_functiei
[return_expresie;]
}
Lista parametrilor transmisi unei functii poate lipsi. Daca functia nu returneaza
nimic functia nu poate figura intr-o expresie.Valoarea returnata de o functie poate
apartine oricarui tip: string, array, integer, double.

Vizibilitatea variabilelor.
In PHP o variabila declarata in afara oriecarei functii este o variabila globala iar o
variabila declarata intr-o functie este o variabila locala . Spre deosebire de alte
limbaje, pentru a fi vizibile intr-o functie, variabilele globale trebuie declarate
folosind declaratia global .
Exemplu:
Function suma ($b)
{
global $a;
$c=$a+$b;
return $c;
}
$a=100;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 30

PROIECT DISERTAŢIE

echo suma(12)

Functii predefinite
1) Functii pentru prelucrarea sirurilou de caractere.
PHP ofera o mare varietate de functii , peste 70 la numar, ceea ce face posibila
realizarea in acest limbaj a celor mai multe dintre prelucrarile posibile in alte
limbaje. Fiind orientat pe tratarea informatiilor continute in pagina Web, PHP pune
la dispozitie si o serie de functii specifice, deosebit de utile cum ar fi:

strip_tags() - realizeaza inlaturarea dintr-un sir de caractere a tuturor marcajelor


HTML sau PHP, cu exceptia unora specificate in mod explicit. Functia are urmatorul
prototip:
strip_tags(string sir [, string marcaje_permise]).

addslashes() - modifica un sir de caractere dat adaugand caractere ”\”(backslash)


in fata unor caractere ca: “ , ‘ , \.Prototipul functiei este:
string addslashes(string sir).
Functia este gandita sa ajute la formarea sirurilor de caractere care sunt inserate in
campuri apartinand unor tabele dintr-o baza de date.

stripslashes() - este o functie opusa functiei addslashes(). Ea suprima


caracterele adaugate ca urmare a apelarii functiei addslashes(). Prototipul functie
este:
string stripslashes(string sir).

str_replace() - realizeaza cautarea intr-un sir de caractere a unui subsir si


inlocuirea sa cu un alt sir.
Prototipul functie este:
string str_replace(string sir_cautat, string sir_substitutie, string sir_de_prelucrat)

substr_replace() - permite inlocuirea unei secvente de caractere dintr-un sir cu


un alt sir, dat ca argument.Functia prototip este:

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 31

PROIECT DISERTAŢIE

string substr_replace(string sir_de prelucrat, string sir_substitutie, int start [, int


lungime])
strcmp() – este o functie de comparare a doua siruri.Prototupul functiei este:
int strcmp(string sir1, string sir2).
Functia returneaza o valoare pozitiva daca primul sir este mai mare, 0 daca sirurile
sunt identice si o valoare negativa daca primul sir este mai mic.

substr() - returneaza o pozitie dintr-un sir indicata prin doua valori numerice.
Prototipul functiei este:
string substr(string sir_dat, int start [, int lungime]).
Daca parametrul lungime lipseste, subsirul returnat va contine toate caracterele de
la start pana la sfarsitul sirului.

htmlspecialchars() – este o functie care transforma caracterele < , >, & sau “ in
reprezentarile lor HTML: &lt, &gt, &amp;, si &quot;.In acest fel poate afisa intr-o
pagina Web codul HTML pentru realizarea unei actiuni.Prototipul functiei este:
String htmlspecialchars (string sir_dat).

printf() si sprintf() – sunt functii care opereaza ca in limbajul si permit scrierea


formatata respectiv construirea unui sir de caractere cu un format dat. Aceste
functii sunt utile cand modul de afisare a unor date este important.

2.3. Noţiuni de SQL


Crearea unei baze de date este o necesitate in zilele noastre. Fara acestea o mare
parte din activitatile desfasurate de oamenii din intreaga lume ar fi imposibil de
realizat. Unul dintre cele mai rapide servere de baze de date SQL este MySQL.
Iata cateva din facilitatile MySQL-ului.
 numarul de utilizatori ce se pot conecta simultan la serverul de baze
de date este nelimitat;
 suporta peste 50.000.000 de campuri pe fiecare baza de date in parte;
 administrarea privilegiilor utilizatorului este usoara si eficienta;
 viteza de executie a comenzilor SQL este extrem de mare ,poate chiar
cea mai mare;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 32

PROIECT DISERTAŢIE

Implementarea MySQL-ului in propriu server web nu necesita cheltuiele si poate fi


instalat pe calculatoare ce functioneaza sub diverse sisteme de operare (Windows,
Linux, Unix).
SQL este limbajul care serveste la comunicarea cu un srever de baze de date.
Pentru a da comenzile prezentate in continuare se va instala pe calculator MySQL si
se va deschide o fereastra (DOS sau LINUX) din care se vor introduce comenzile.In
cazul unui calculator functionanad sub Windows, conectarea pentru a lucra in mod
interactiv cu serverul MySQL instalat pe acelasi calculator se realizeaza lansand in
executie mysql.exe din directorul mysql\bin:

C: \mysql\bin>mysql
Welcom to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.28-gamma\
Type ‘help; ‘ or ‘\h’ for help. Type ‘\c’ to clear the buffer
mysql>

2.3.1. O modalitate de creare a unei baze de date


O baza de date relationale se numeste astfel datorita capacitatii sale de a stabili
relatii intre date din mai multe tabele. La inceput o baza de date nu contine tabele.
Pentru a crea un tabel intr-o baza de date se foloseste un sub-limbaj SQL special,
cunoscut sub numele de Data Definition Languege(DDL). Dar se pot emite comenzi
DDL si alte comenzi SQL prin intermediul unui interpretor SQL sau prin intermediul
PHP.
Tabelele sunt divizate la randul lor de catre o serie de inregistrari care le-am putea
considera ca fiind liniile tabelului.
O linie a unui tabel este impartita in mai multe campuri care pot stoca diferite tipuri
de date (numere intregi, numere reale, siruri de caractere, enumerari…)
 Pentru a crea un tabel intr-o baza de date , emitand comanda create table
mysql> CREATE TABLE
exemplu;
Orice comanda SQL trebuie urmata de separatorul “;”.
 Stergerea unei baze de date poate fi realizata cu ajutorul instructiunii “drop”.
mysql>DROP TABLE tabel;

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 33

PROIECT DISERTAŢIE

 Pentru a obtine o lista cu toate bazele de date se foloseste comanda “Show


Data-Bases”. Stergerea unui tabel este un act irevocabil.
 Modificarea unui tabel se poate face folosind comanda ALTER TABLE
mysql>ALTER TABLE tabel
 Adaugarea unei coloana la tabel se face cu ajutorul comenzii
mysql>ALTER TABLE tabel ADD coloana tip [optiuni];
unde tabel-numele tabelului care va fi modificat
coloana-numele coloanei ce va fi adaugata
tip-tipul noii coloane
[optiuni]-toate optiunile dorite precum si PRIMARY KEY.
PRIMARY KEY-este o instructiune ce creeaza un index pe baza primei coloane.
Folosirea acestei instructiuni este obligatorie atunci cand se defineste o coloana de tip
AUTO_INCREMENT.

2.3.2. Utilizarea bazelor de date MySQL


PHP include o biblioteca de functii care furnizeaza o interfata cu sistemul MYSQL de
gestiune a bazelor de date. Folosind aceste functii , un program PHP poate obtine
accesul la datele rezidente intr-o baza de date MYSQL si le poate modifica.
Majoritatea interactiunilor cu o baza de date se desfasoara dupa un model
secvential :
1. Se deschide o conexiune cu serverul MYSQL.
2. Se specifica baza de date la care se va obtine accesul.
3. Se emit interogari SQL se obtine accesul la rezultatele interogarilor si se executa
operatii non-SQL.
4. Se inchide conexiunea cu serverul MYSQL.
Pentru a ne putea conecta la un server MYSQL se invoca functia :
mysql_connect(nume_gazda, nume_utilizator, parola)
nume_gazda este numele gazdei pe care ruleaza serviciul MYSQL;
nume_utilizator este identificatorul de utilizator MYSQL care va fi folosit;
parola parola MYSQL asociata identificatorului de utilizator.
Exemplu:
$db = mysql_connect (“localhost”, “php”, “salut”);
if (!$db)

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 34

PROIECT DISERTAŢIE

die ( “Nu s-a reusit deschiderea bazei de date.”);


Dupa ce programul a obtinut o conexiune cu serverul MYSQL, programul poate
specifica baza de date la care va avea acces. Pentru aceasta se invoca functia:
mysql_select_db(baza_de_date)
Functia returneaza true daca poate obtine accesul la baza de date , respectiv false
in caz contrar.
Biblioteca MYSQL din PHP furnizeaza doua functii de verificare a erorilor:
mysql_errno()-returneaza un cod numeric de eroare
mysql_error()-returneaza o descriere textuala a erorii
exemplu:
mysql_select_db( “ testdb ”);
if(mysql_errno())
{
die (“<br>” . mysql_errno(). “ : “ .mysql_error(). “<br>”);
}

Din punct de vedere al limbajului PHP exista doua categorii de interogari SQL:
-Interogari SELECT, care returneaza randuri ale unui tabel
-Interogari UPDATE, INSERT, DELETE, care nu returneaza randuri ale unui tabel.
Ambele categorii de interogari sunt emise folosind functia
mysql_query()
Functia returneaza true daca serverul a reusit sa execute interogarea; in caz
contrar , returneaza false.
Pentru a verifica daca o interogare UPDATE, INSERT sau DELETE a avut efectul
dorit se poate folosi functia
mysql_affect_rows()- care returneaza numarul randurilor afectate de interogarea
cea mai recenta.
In cazul in care cea mai recenta interogare UPDATE, INSERT sau DELETE a esuat,
functia returneaza valoarea –1.
Pentru obtinerea valorii numarului de randuri se foloseste functia:
mysql_num_rows()
Pentru a obtine urmatorul rand din secventa setului de rezultate se foloseste
functia:
mysql_fetch_row()

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 35

PROIECT DISERTAŢIE

In general este mai convenabil sa se omita functia mysql_num_rows() si sa se


foloseasca in schimb o instructiune while.

Exemplu :
$interogare = “SELECT * FROM angajat”;
$rezultat = mysql_query($interogare);
if (mysql_errno())
{
die (* <br>” .mysql_errno().”: “.mysql_error(). “<br>”);
}
while ($rand = mysql_fetch_row($rezultat))
{
if (mysql_errno())
{
die(“<br>” . mysql_errno().”: “>mysql_error().”<br>”);
}
//aici se prelucreaza randul din setul de rezultate
}
Pentru a inchide o conexiune cu un server MYSQL se invoca functia:
mysql_close()
In general nu este necesara invocarea acestei functii deoarece PHP inchide automat
conexiunile deschise cu baza de date atunci cand un script isi inchide executia.

2.4. JavaScript

JavaScript a devenit rapid un important instrument de dezvoltare şi programare


Web, atât pentru îmbunătăţirea paginilor HTML, cât şi pentru aplicaţii complexe.
Cea mai importantă caracteristică a lui este înglobarea în pagina HTML şi
executarea sa din interiorul paginii.
JavaScript este dependent de mediu. Fiind un limbaj de scriptare, el depinde de
browser.
HTML oferă capacitatea de a crea pagini WEB statice. Deşi asemenea documente
pot fi creative, interesante şi în tot cazul utile,JavaScript oferă capacitatea de a face
ca paginile statice să devină dinamice, interactive faţă de acţiunile utilizatorilor.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 36

PROIECT DISERTAŢIE

Se pot plasa procese în spatele butoanelor,să rulaţi calcule cu date introduse prin
formulare, ori să efectuaţi acţiuni atunci când utilizatorul trece cursorul mouse-ului
peste un element HTML sau peste un obiect document.
Scripturile JavaScript sunt înglobate într-un document HTML folosind perechea de
etichete <script> şi </script>.
Într-un document HTML pot exista mai multe etichete <script> şi fiecare pereche
poate încadra mai multe seturi de instrucţiuni JavaScript.
Atributul type este necesar pentru a specifica limbajul în care este scris scriptul, iar
atributul src este folosit pentru a specifica numele fişierelor sursă JavaScript
externe.
Atributele etichetei <script>
defer – atribut boolean folosit pentru a anunţa browserul dacă scriptul din această
secţiune generează un conţinut
src – atribut care specifică locaţia unui URL a unui JavaScript sursă externă
type – atribut care a înlocuit language şi care anunţă browserul ce limbaj se
foloseşte între etichete
Crearea de programe cu JavaScript
Se crează pagina HTML, apoi se inserează etichetele <script> în secţiunea head
sau body a documentului.
Toate instrucţiunile JavaScript aflate în blocul unei funcţii sunt interpretate, iar
executarea nu se face până ce funcţia nu este apelatădintr-un eveniment
JavaScript.
Rezultatul executării acestor instrucţiuni va fi vizibil pentru utilizatori atunci când
văd prima dată pagina.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 37

PROIECT DISERTAŢIE

PREZENTAREA DETALIATĂ A MODULUI DE


REZOLVARE A TEMEI
Prezentul site este structurat în mai multe pagini, după următoarea schemă:
1. HARTA SITE-ULUI

INDEX.HTML

Prez..html Istoric.html Scolarizare.html Contact.html

Scurta.html 2000.php

Lunga.html 2001.php

Alte.html 2002.php

2003.php
2. Conţinutul paginilor
Pagina Index.html

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 38

PROIECT DISERTAŢIE

Codul de program este următorul:

<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer6" style="position:absolute; width:493px; height:405px; z-index:5; left: 253px; top: 110px"><img
src="Pics/ursasc/P2260051.jpg" width="640" height="480"></div>
</body>
</html>

Pagina Prez.html

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 39

PROIECT DISERTAŢIE

Codul de program este următorul:


<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer4" style="position:absolute; width:471px; height:60px; z-index:4; left: 23px; top: 104px">
<img src="Pics/fdi.jpg" width="468" height="61"></div>
<div id="Layer5" style="position:absolute; width:341px; height:78px; z-index:1; left: 509px; top: 104px; visibility:
visible"><a href="scurta.htm"><img src="Pics/button.jpg" width="315" height="27" border="0"></a><a
href="lunga.htm"><img src="Pics/button2.jpg" width="310" height="27" border="0"></a><a
href="alte.htm"><img src="Pics/button3.jpg" width="207" height="27" border="0"></a></div>
<div id="Layer6" style="position:absolute; width:625px; height:375px; z-index:5; left: 224px; top: 193px"><img
src="Pics/ursasc/P3170001.JPG" width="627" height="374"></div>
<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
</body>
</html>

Pagina Istoric.html

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 40

PROIECT DISERTAŢIE

Codul de program este următorul:

<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer6" style="position:absolute; width:613px; height:187px; z-index:5; left: 213px; top: 144px">
<div align="center">
<p><b><i><font size="+2">Scurt Istoric</font></i></b></p>
<p align="left">Colegiul Universitar Tehnic, Economic si de Administratie
din Bistrita are o istorie aparte, impusa de schimbarile social-economice
care au loc in societatea romana dupa 1989.La sfarsitul anului 2000, s-a
constituit Consortiul Intreprinderilor care sprijina constituirea si functionarea
Colegiului Tehnic la Bistrita cu implicarea factorilor publici locali sub
girul Universitatii Tehnice din Cluj-Napoca.Incepand cu anul universitar
2001-2002 Universitatea Tehnica din Cluj-Napoca a pornit cursurile de scolarizare
in cadrul invatamantului de scurta durata.In prezent Colegiul dispune de
spatii de curs si laboratoare, care permit o buna desfasuare a programei
de invatamant.</p>
</div>
</div>
<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
</body>
</html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 41

PROIECT DISERTAŢIE

Pagina Scolarizare.html

Codul de program este următorul:

<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 42

PROIECT DISERTAŢIE

src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img


src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer4" style="position:absolute; width:106px; height:143px; z-index:8; left: 273px; top: 270px"><a
href="2000.php"><img src="Pics/ani0.jpg" width="115" height="29" border="0"></a><a href="2001.php"><img
src="Pics/ani.jpg" width="117" height="29" border="0"></a><a href="2002.php"><img src="Pics/ani2.jpg"
width="117" height="29" border="0"></a><a href="2003.php"><img src="Pics/ani3.jpg" width="117" height="29"
border="0"></a></div>
<div id="Layer5" style="position:absolute; width:473px; height:62px; z-index:9; left: 283px; top: 110px"><img
src="Pics/plan.jpg" width="467" height="60"></div>
</body>
</html>

Pagina Contact.html

Codul de program este următorul:

<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 43

PROIECT DISERTAŢIE

// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer6" style="position:absolute; width:50px; height:44px; z-index:5; left: 213px; top: 144px"><img
src="Pics/carte.jpg" width="48" height="41" border="0">
</div>
<div id="Layer4" style="position:absolute; width:218px; height:140px; z-index:1; left: 272px; top: 146px">
<p> Secretar: Ing. <i>Ursa Reghina </i></p>
<p>Str. Rodnei Nr.23</p>
<p>Str. Ecaterina Teodoroiu Nr.2</p>
<p>Tel. 0745654135 ; 0263230643</p>
</div>
<div id="Layer5" style="position:absolute; width:52px; height:35px; z-index:6; left: 404px; top: 170px"><a
href="mailto:inaursa@personal.ro"><img src="Pics/mail.jpg" width="50" height="47" border="0"></a></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer7" style="position:absolute; width:389px; height:204px; z-index:7; left: 508px; top: 144px"><img
src="Pics/UTCLUJ/Imag0025.jpg" width="388" height="290"></div>
</body>
</html>

3. Baza de date MySQL


Baza de date MySQL a fost denumită UT_Bistrita şi conţine patru tabele: ani_univ,
colegiu, completari şi postuniv.

Structura tabelelor este următoarea:

1. Tabelul ani_univ

Nr. Atribute şi Cheie


Numele câmpului Tipul şi mărimea Null Index
crt. proprietăţi primară
1. id_anuniv tinyint(2) Nu • unsigned Da
• autoincrement
2. an_univ char(9) Nu

2. Tabelul colegiu

Nr. Atribute şi Cheie


Numele câmpului Tipul şi mărimea Null Index
crt. proprietăţi primară
1. id_curs tinyint(2) Nu • unsigned Da
• autoincrement
2. id_anuniv tinyint(2) Nu • unsigned
3. sectie char(3) Nu

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 44

PROIECT DISERTAŢIE

4. nr_buget tinyint(2) Nu • unsigned


5. nr_plata tinyint(2) Nu • unsigned
3. Tabelul completari

Nr. Atribute şi Cheie


Numele câmpului Tipul şi mărimea Null Index
crt. proprietăţi primară
1. id_curs tinyint(2) Nu • unsigned Da
• autoincrement
2. id_anuniv tinyint(2) Nu • unsigned
3. nr_stud tinyint(3) Nu • unsigned

4. Tabelul postuniv

Nr. Atribute şi Cheie


Numele câmpului Tipul şi mărimea Null Index
crt. proprietăţi primară
4. id_curs tinyint(2) Nu • unsigned Da
• autoincrement
5. id_anuniv tinyint(2) Nu • unsigned
6. nr_stud tinyint(3) Nu • unsigned

Cele patru tabele au un câmp comun, cu numele id_anuniv, care va fi folosit pentru
regăsirea datelor înrudite.

Pentru crearea bazei de date şi a tabelei s-a utilizat aplicaţia phpMyAdmin, aceasta
preferându-se datorită facilităţilor pe care le oferă atât în ce priveşte interfaţa
grafică deosebit de prietenoasă cât şi uşurinţei de a da comenzi, în raport cu modul
procedural din fereastra de comandă DOS.

4. Scripturile PHP
Extragerea datelor din baza de date MySQL se face cu ajutorul unor scripturi PHP,
acestea fiind conţinute de fişierele 2000.php, 2001.php, 2002.php şi 2003.php.

Fişierul 2000.php
<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 45

PROIECT DISERTAŢIE

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer4" style="position:absolute; width:364px; height:33px; z-index:8; left: 180px; top: 119px"><a
href="2001.php"><img src="Pics/ani.jpg" width="117" height="29" border="0"></a><a href="2002.php"><img
src="Pics/ani2.jpg" width="117" height="29" border="0"></a><a href="2003.php"><img src="Pics/ani3.jpg"
width="117" height="29" border="0"></a>
<?php

$link = mysql_connect("localhost", "ursa");


mysql_select_db("UT_Bistrita", $link);

$an="2000-2001";
echo "<H3>Anul universitar $an <H3>";

$interog1 = mysql_query("SELECT * FROM ani_univ WHERE an_univ = '$an'",$link);


$rdcrt1 = mysql_fetch_array($interog1);
$anunivcrt= $rdcrt1["id_anuniv"];

// Testare Colegiu

$interog2 = mysql_query("SELECT * FROM colegiu WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt2 = mysql_fetch_array($interog2)) {

echo "<B><I> Colegiul Tehnic Bistrita: <I><B>";

do {
echo "<ul>";

printf("<li>Sectia %s <br>Nr.loc.buget= %d, Nr.loc.plata=%d",


$rdcrt2["sectie"],$rdcrt2["nr_buget"],$rdcrt2["nr_plata"]);

echo "</ul>";

} while($rdcrt2=mysql_fetch_array($interog2));

// Testare Potuniversitara

$interog3 = mysql_query("SELECT * FROM postuniv WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt3 = mysql_fetch_array($interog3)) {

echo "<B><I> Scoala Potuniversitara: <I><B>";

do {

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 46

PROIECT DISERTAŢIE

echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt3["nr_stud"]);

echo "</ul>";

} while($rdcrt3=mysql_fetch_array($interog3));

// Testare Completari studii

$interog4 = mysql_query("SELECT * FROM completari WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt4 = mysql_fetch_array($interog4)) {

echo "<B><I> Completari studii: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt4["nr_stud"]);

echo "</ul>";

} while($rdcrt4=mysql_fetch_array($interog4));

?>
</div>
</body>
</html>

Fişierul 2001.php
<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 47

PROIECT DISERTAŢIE

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer4" style="position:absolute; width:364px; height:33px; z-index:8; left: 180px; top: 119px"><a
href="2001.php"><img src="Pics/ani.jpg" width="117" height="29" border="0"></a><a href="2002.php"><img
src="Pics/ani2.jpg" width="117" height="29" border="0"></a><a href="2003.php"><img src="Pics/ani3.jpg"
width="117" height="29" border="0"></a>
<?php

$link = mysql_connect("localhost", "ursa");


mysql_select_db("UT_Bistrita", $link);

$an="2001-2002";
echo "<H3>Anul universitar $an <H3>";

$interog1 = mysql_query("SELECT * FROM ani_univ WHERE an_univ = '$an'",$link);


$rdcrt1 = mysql_fetch_array($interog1);
$anunivcrt= $rdcrt1["id_anuniv"];

// Testare Colegiu

$interog2 = mysql_query("SELECT * FROM colegiu WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt2 = mysql_fetch_array($interog2)) {

echo "<B><I> Colegiul Tehnic Bistrita: <I><B>";

do {
echo "<ul>";

printf("<li>Sectia %s <br>Nr.loc.buget= %d, Nr.loc.plata=%d",


$rdcrt2["sectie"],$rdcrt2["nr_buget"],$rdcrt2["nr_plata"]);

echo "</ul>";

} while($rdcrt2=mysql_fetch_array($interog2));

// Testare Potuniversitara

$interog3 = mysql_query("SELECT * FROM postuniv WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt3 = mysql_fetch_array($interog3)) {

echo "<B><I> Scoala Potuniversitara: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt3["nr_stud"]);

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 48

PROIECT DISERTAŢIE

echo "</ul>";

} while($rdcrt3=mysql_fetch_array($interog3));

// Testare Completari studii

$interog4 = mysql_query("SELECT * FROM completari WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt4 = mysql_fetch_array($interog4)) {

echo "<B><I> Completari studii: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt4["nr_stud"]);

echo "</ul>";

} while($rdcrt4=mysql_fetch_array($interog4));

?>
</div>
</body>
</html>

Fişierul 2002.php
<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 49

PROIECT DISERTAŢIE

src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img


src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>
<div id="Layer4" style="position:absolute; width:364px; height:33px; z-index:8; left: 180px; top: 119px"><a
href="2001.php"><img src="Pics/ani.jpg" width="117" height="29" border="0"></a><a href="2002.php"><img
src="Pics/ani2.jpg" width="117" height="29" border="0"></a><a href="2003.php"><img src="Pics/ani3.jpg"
width="117" height="29" border="0"></a>
<?php

$link = mysql_connect("localhost", "ursa");


mysql_select_db("UT_Bistrita", $link);

$an="2002-2003";
echo "<H3>Anul universitar $an <H3>";

$interog1 = mysql_query("SELECT * FROM ani_univ WHERE an_univ = '$an'",$link);


$rdcrt1 = mysql_fetch_array($interog1);
$anunivcrt= $rdcrt1["id_anuniv"];

// Testare Colegiu

$interog2 = mysql_query("SELECT * FROM colegiu WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt2 = mysql_fetch_array($interog2)) {

echo "<B><I> Colegiul Tehnic Bistrita: <I><B>";

do {
echo "<ul>";

printf("<li>Sectia %s <br>Nr.loc.buget= %d, Nr.loc.plata=%d",


$rdcrt2["sectie"],$rdcrt2["nr_buget"],$rdcrt2["nr_plata"]);

echo "</ul>";

} while($rdcrt2=mysql_fetch_array($interog2));

// Testare Potuniversitara

$interog3 = mysql_query("SELECT * FROM postuniv WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt3 = mysql_fetch_array($interog3)) {

echo "<B><I> Scoala Potuniversitara: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt3["nr_stud"]);

echo "</ul>";

} while($rdcrt3=mysql_fetch_array($interog3));

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 50

PROIECT DISERTAŢIE

// Testare Completari studii

$interog4 = mysql_query("SELECT * FROM completari WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt4 = mysql_fetch_array($interog4)) {

echo "<B><I> Completari studii: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt4["nr_stud"]);

echo "</ul>";

} while($rdcrt4=mysql_fetch_array($interog4));

?>
</div>
</body>
</html>

Fişierul 2003.php
<html>
<head>
<title>Universitatea Tehnica</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">


<div id="Layer1" style="position:absolute; width:470px; height:55px; z-index:1; left: 280px; top: 25px"><img
src="Pics/banner.jpg" width="467" height="60"></div>

<div id="Layer2" style="position:absolute; width:46px; height:53px; z-index:2; left: 141px; top: 29px"><img
src="Pics/Siglaut.jpg" width="46" height="51"></div>
<div id="Layer3" style="position:absolute; width:123px; height:124px; z-index:3; left: 37px; top: 266px"><a
href="index.htm"><img src="Pics/buton.jpg" width="132" height="27" border="0"></a><a href="prez.htm"><img
src="Pics/buton2.jpg" width="132" height="27" border="0"></a><a href="istoric.htm"><img
src="Pics/buton3.jpg" width="132" height="27" border="0"></a><a href="scolarizare.htm"><img
src="Pics/buton4.jpg" width="132" height="27" border="0"></a><a href="contact.htm"><img
src="Pics/buton5.jpg" width="132" height="27" border="0"></a></div>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 51

PROIECT DISERTAŢIE

<div id="Layer4" style="position:absolute; width:364px; height:33px; z-index:8; left: 180px; top: 119px"><a
href="2001.php"><img src="Pics/ani.jpg" width="117" height="29" border="0"></a><a href="2002.php"><img
src="Pics/ani2.jpg" width="117" height="29" border="0"></a><a href="2003.php"><img src="Pics/ani3.jpg"
width="117" height="29" border="0"></a>
<?php

$link = mysql_connect("localhost", "ursa");


mysql_select_db("UT_Bistrita", $link);

$an="2003-2004";
echo "<H3>Anul universitar $an <H3>";

$interog1 = mysql_query("SELECT * FROM ani_univ WHERE an_univ = '$an'",$link);


$rdcrt1 = mysql_fetch_array($interog1);
$anunivcrt= $rdcrt1["id_anuniv"];

// Testare Colegiu

$interog2 = mysql_query("SELECT * FROM colegiu WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt2 = mysql_fetch_array($interog2)) {

echo "<B><I> Colegiul Tehnic Bistrita: <I><B>";

do {
echo "<ul>";

printf("<li>Sectia %s <br>Nr.loc.buget= %d, Nr.loc.plata=%d",


$rdcrt2["sectie"],$rdcrt2["nr_buget"],$rdcrt2["nr_plata"]);

echo "</ul>";

} while($rdcrt2=mysql_fetch_array($interog2));

// Testare Potuniversitara

$interog3 = mysql_query("SELECT * FROM postuniv WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt3 = mysql_fetch_array($interog3)) {

echo "<B><I> Scoala Potuniversitara: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt3["nr_stud"]);

echo "</ul>";

} while($rdcrt3=mysql_fetch_array($interog3));

// Testare Completari studii

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 52

PROIECT DISERTAŢIE

$interog4 = mysql_query("SELECT * FROM completari WHERE id_anuniv= '$anunivcrt'",$link);

if ($rdcrt4 = mysql_fetch_array($interog4)) {

echo "<B><I> Completari studii: <I><B>";

do {
echo "<ul>";

printf("<li>Nr.locuri = %d",$rdcrt4["nr_stud"]);

echo "</ul>";

} while($rdcrt4=mysql_fetch_array($interog4));

?>
</div>
</body>
</html>

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 53

PROIECT DISERTAŢIE

PREZENTAREA TESTELOR EFECTUATE ŞI A


REZULTATELOR OBŢINUTE
În urma procesării scripturilor, se obţine următorul rezultat:

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 54

PROIECT DISERTAŢIE

POSIBILITĂŢI DE CONTINUARE ŞI EXTINDERE A


TEMEI
Prezentul proiect oferă un site web al Colegiului Tehnic Bistriţa într-o fază
incipientă, cu posibilităţi largi de dezvoltare a site-ului în continuare.

Se are în vedere în acest sens dezvoltarea unor module care să permită studenţilor
de la toate formele de învăţământ oferite consultarea de la distanţă a unei baze de
date cu notele obţinute în cursul unui an universitar, a situaţiei cu taxele de
şcolarizare.

De asemenea, având în vedere perspectiva de dezvoltare a învăţământului tehnic


cu susţinerea Universităţii Tehnice Cluj-Napoca, publicarea pe site a ofertelor
viitoare de şcolarizare pentru locuitorii judeţului Bistriţa-Năsăud.

- IULIE 2003 -
UNIVERSITATEA TEHNICA CLUJ-NAPOCA 55

PROIECT DISERTAŢIE

BIBLIOGRAFIE

1. Conf. dr. ing. Mihai Damian Realizarea paginilor WEB – curs Posuniversitar

2. Teodor Gugoiu HTML prin exemple, Ed. Teora Buc., 2000

3. Dave Taylor Crearea paginilor WEB cu HTML4, Ed. Teora Buc. 1999

4. Emanuela Cerchez Internet, manual pentru liceu, Ed. Polirom Iaşi, 2000

5. Bill Mc Carty PHP 4, Ed. Teora, Buc., 2002

6. Jay Greenspan, Brad Bulger MySQL/PHP Database Applications, IDG Books Worldwide, 2001

7. Graeme Merall PHP/MySQL Tutorial

8. Guido Stepken MySQL Datenbankhandbuch, ver. 0.99 beta, 1999

9. *** Documentaţie originală PHP

10. *** Documentaţie originală MySQL

- IULIE 2003 -

S-ar putea să vă placă și