Documente Academic
Documente Profesional
Documente Cultură
Curs Web
Curs Web
Cuprins
Cuprins.......................................................................................................... 1 Introducere definiiile ................................................................................... 3 Ce nseamn WWW (World Wide Web)?.................................................. 3 Cum funcioneaz WWW? ....................................................................... 3 Cum aduce browserul paginile de web?.................................................... 3 Cum afieaz browser-ul paginile? ........................................................... 4 Cine face standardele web?...................................................................... 4 Ce este un fiier HTML?............................................................................ 4 1 Structura standard a unui document html (HTML 4.01)........................... 5 Primul cod html ......................................................................................... 5 Ce extensie folosim pentru fiierele documentelor web: HTM sau HTML . 7 2 Tagurile HTML ...................................................................................... 10 Tag-urile HTML ....................................................................................... 10 Elementele HTML ................................................................................... 10 Atributele tag-urilor .................................................................................. 11 Tag-urile HTML de baz.......................................................................... 12 Headings (titlurile ntr-o pagin) .............................................................. 12 Paragrafe ................................................................................................ 13 Rnd nou................................................................................................. 14 Comentarii in HTML ................................................................................ 14 Vizualizarea sursei unui document HTML ............................................... 15 Tag-uri pentru formatarea textului ........................................................... 18 3 Hiperlink ................................................................................................... 27 Ancora..................................................................................................... 27 Atributul href............................................................................................ 27 Atributul target......................................................................................... 28 Atributul name ......................................................................................... 28 4 -Tabele ..................................................................................................... 34 Tag-uri specifice tabelelor ....................................................................... 34 Atributul borders...................................................................................... 35 Capul de tabel ......................................................................................... 36 4 - Liste ....................................................................................................... 46 Tag-uri pentru liste .................................................................................. 46 Liste neordonate ..................................................................................... 46 Liste ordonate ......................................................................................... 47 Liste de definiii ....................................................................................... 48 5 - Imagini ................................................................................................... 52 Tag-uri pentru imagini ............................................................................. 52 Atributul alt .............................................................................................. 53 6 - Culori HTML........................................................................................... 57
Cuprins Valorile culorilor....................................................................................... 57 Numele culorilor ...................................................................................... 57 7 Poziionarea coninutului unei pagini html ............................................. 58 7.1 Frame-uri........................................................................................... 58 8 CSS....................................................................................................... 66 Tag-urile de style..................................................................................... 66 Foaia de stil extern ................................................................................ 66 Foaia de stil intern ................................................................................. 67 Declararea stilului n cadrul instruciunii html .......................................... 67 Sintaxa CSS............................................................................................ 69 Gruparea selectorilor............................................................................... 70 Selectorul de tip clas ............................................................................. 71 Proprietile CSS pentru background (fundal)......................................... 73 Proprietile CSS pentru text................................................................... 77 Proprietile CSS pentru fonturi............................................................... 79 Pseudoclase............................................................................................ 82 9- PHP......................................................................................................... 84 Sintaxa php ............................................................................................. 84 Afiarea n php ........................................................................................ 85 Variabile in PHP ...................................................................................... 90 Operatori PHP......................................................................................... 94 10. Formulare.............................................................................................. 97 11. Instructiuni php.................................................................................... 102 IF........................................................................................................... 102 Instructiunea ELSE ............................................................................... 103 Instructiunea ELSEIF ............................................................................ 103 Instructiunea SWITCH .......................................................................... 104 Bucla WHILE......................................................................................... 104 Structura FOR ....................................................................................... 105 12-13. Conectarea la MySQL folosind PHP .............................................. 106 Instruciunea SELECT........................................................................... 106 INSERT ................................................................................................. 109 UPDATE................................................................................................ 111 DELETE ................................................................................................ 112
Laborator 1
Introducere definiiile
Ce nseamn WWW (World Wide Web)?
foarte des World Wide Web (WWW) este denumit prescurtat Web-ul. este o reea de calculatoare mondial. se folosete protocolul de comunicaie HTTP (HyperText Transfer Protocol).
browserul face o cerere ctre server (request). cerere standard ctre un server conine o adresa. exemplu: http://www.csac.ulbsibiu.ro/orar.htm
Laborator 1
Exemplu:
Laborator 1
Observaie: Nu lsai un spaiu dup < pentru c browserul nu mai recunoate instruciunea. Salvam fiierul cu numele "prima.htm". Pornim browserul i deschidem fiierul prima.htm Ar trebui s se afieze:
Laborator 1
Explicarea exemplului: nainte de a ncepe observam c avem mai multe perechi de tag-uri. Primul marcheaz nceputul unui bloc de text iar tag-ul care ncepe cu / i are acelai nume cu tag-ul de deschidere marcheaz terminarea blocului de text. Primul tag dintr-un document HTML este un comentariu.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Acest comentariu este important pentru standardizarea documentelor html. Pentru web-ul semantic care va urma este deosebit de important respectarea standardelor. Motoarele de cutare inteligente vor ti nsemntatea tag-urilor iar astfel rezultatele cutrilor vor fi mult mai precise. Comentariul din exemplul de mai sus specific faptul c documentul html care urmeaz este scris conform standardului HTML 4.01 Transitional iar acest standard se gsete la URN-ul
http://www.w3.org/TR/html4/loose.dtd
Tag-ul <html>. Acesta are rolul de a anuna browserul c urmeaz un document HTML. La sfritul documentului avem </html> acesta atenionnd browserul ca a ajuns la sfritul documentului HTML. n continuare avem doua delimitri importante ale documentului
Laborator 1
partea de head i cea de body Blocul de text dintre <head> i </head> este informaia din header. Foarte important: informaia din cadrul header-ului nu se afieaz n fereastra browserului. Ea este destinat descrierii documentului. Tag-urile <title> marcheaz titlul documentului si acesta va fi afiat pe fereastra browserului.
Tag-urile de <body>delimiteaz zona de text care va fi afiat n cadrul ferestrei browser-ului. Textul delimitat de<b> si </b> va fi afiat ngroat.
Laborator 1 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <body> <p>Acesta e un paragraf.</p> <p>In limba engeleza un paragraf se marcheaza printr-un rand liber.</p> <p>Acesta e un paragraf.</p> </body> </html>
Laborator 1
Observaie:
n exemplele de cod html ce vor urma nu se va reproduce n totalitate structura standard a unui document html. Aceast cerin rmne valabil n realizarea exemplelor de ctre studeni.
Laborator 2
2 Tagurile HTML
Fiierele HTML sunt fiiere text care conin elemente HTML. Elementele HTML sunt definite cu ajutorul tag-urilor.
Tag-urile HTML
Tag-urile HTML se folosesc pentru a delimita elemente HTML; forma unui tag este <nume_tag> De obicei tag-urile sunt perechi: <nume_tag> bla, bla </nume_tag> Textul delimitat de cele doua tag-uri se numete coninutul elementului
Elementele HTML
Revenim la exemplul dat:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <head> <title>prima</title> </head> <body> Buna ziua Web <b>bla bla</b> </body> </html>
Din acest fiier un element HTML este: <b>bla bla</b> Tag-ul <b> are ca scop definirea unui element HTML care sa fie afiat bold. Un alt exemplu de element HTML: <body> Buna ziua Web <b>bla bla</b>
10
Laborator 2
</body> Tag-ul <body> definete un element HTML care conine corpul documentului HTML. Recomandare: W3C recomanda utilizarea literelor mici n scrierea tag-urilor, aceasta fiind recomandarea pentru standardul HTML 4. Pentru cei ce se pregtesc s scrie tag-uri conform standardului XHTML 1.0 utilizarea literelor mici este obligatorie.
Atributele tag-urilor
Tag-urile pot avea atribute <nume_tag atr> bla, bla </nume_tag> In exemplul de mai sus atr este atributul tagului. Aceste atribute pot aduce informaii suplimentare despre elementele HTML. Exemplu: <body bgcolor="red">. n exemplul de mai sus tag-ul <body> a primit atributul bgcolor adic se specific browserului c fundalul paginii este rou. ntotdeauna atributele sunt nsoite de o valoare care trebuie scris ntre La noi valoarea atributului bgcolor este red. Observaii: 1. ntotdeauna atributul pentru tag se adaug doar tag-ului de deschidere. Adic
<body bgcolor="red">. Bla.. Bla </body>.
2. Valorile atributelor pentru atribute trebuie s fie scrise ntotdeauna ntre ghilimele. Se pot utiliza si . n cazurile rare cnd valoarea atributului necesita ghilimele atunci se poate proceda conform
11
Laborator 2
exemplului:
name='Ion zis "Macelarul" '
12
Laborator 2
Observaie: Se aduga automat de ctre browser un rnd liber nainte i dup declararea unui heading.
Paragrafe
Paragrafele sunt definite cu ajutorul tagului <p>.
<p>Un paragraf</p> <p>Alt paragraf</p> <p>Bala, bla, bla</p>
Observaie: Se aduga automat de ctre browser un rnd liber nainte i dup declararea unui paragraf.
13
Laborator 2
Rnd nou
Pentru a fora trecerea la rnd nou fr nceperea unui paragraf nou se utilizeaz tag-ul <br /> Exemplu:
<p>Acesta <br> este un para<br>graf cu tre<br>cere fortata la rand nou</p><p> aici incepe un nou paragraf</p>
Observaie: Tag-ul <br /> nu are un tag de nchidere (slash-ul de la sfrit ine loc de tag de nchidere).
Comentarii in HTML
Pentru a insera un comentariu se foloseste tag-ul <!--.>
<!--Un comentariu destept-->
14
Laborator 2
Observatie: Important este doar semnul exclamrii i este necesar doar dup deschiderea parantezei unghiulare! Comentariul nu este afiat de ctre browser dar cteodat este bine sa-l folosim pentru lizibilitatea codului.
Exemple
1. Centrarea unui heading n pagina: <html> <body>
<h1 align="center">Acesta e un heading 1</h1> <p>Heading-ul de sus este aliniat centrat. Heading-ul de sus este aliniat centrat. Heading-ul de sus este aliniat centrat.</p> </body> </html>
15
Laborator 2
2. Linie orizontal
<html> <body> <p>Tag-ul hr defineste o linie orizontal:</p> <hr> <p>un paragraf</p> <hr> <p>alta minune</p> <hr> <p>un nou paragraf</p> </body> </html>
16
Laborator 2
17
Laborator 2
18
Laborator 2
Caractere speciale
Unele caractere cum ar fi < au n HTML un rol special i de aceea nu pot fi folosite n cadrul textului. Pentru a putea totui utiliza semnul mai mic ca vom folosi entitile de caractere (caractere speciale) Caracterul special are trei pri: 1. ncepe cu & 2. nume sau un numr precedat de semnul # 3. la final au semnul (;).
19
Laborator 2
Exemplu:
<p> Acesta este semnul mai mic: &l</p> <p> Acesta este semnul mai mic: <</p>
20
Laborator 2
Exemple diverse:
1. Formatarea textului
<html> <body> <b>text bold</b> <br> <strong> text strong </strong> <br> <big> text big </big> <br> <em> text emphasized </em> <br> <i> text italic </i> <br> <small> text small </small> <br>text <sub> subscript </sub> <br> text <sup> superscript </sup> </body> </html>
21
Laborator 2
22
Laborator 2
23
Laborator 2
4. Acronime si abrevieri
<html> <body> <abbr title="Uniunea Europeana">EU</abbr> <br> <acronym title="World Wide Web">WWW</acronym> <p>La tag-ul de acronim atributul title afiseaza un hint cand userul trece cu mouseul peste acronim in text</p> <p>functioneaza doar de la IE 5 </p> </body> </html>
24
Laborator 2
25
Laborator 2
26
Laborator 3
3 Hiperlink
Ancora
Tag Descriere <a> Definete o ancora (legtur) Pentru a crea o legtur spre un alt document WEB, se utilizeaz tag-ul <a> (ancora). O ancora poate indica spre orice resurs din web: o pagina web, o imagine, un fiier de sunet, un film etc. Tag-ul <a> poate primi atribute.
Atributul href
n cazul acesta ancora va crea o legtur spre un alt document. Sintaxa pentru crearea unei legturi: <a href="url">textul meu care se va afisa si care este subliniat albastru</a> T ag-ul <a> primete ca atribut pe href care ia ca valoare adresa resursei spre care ancora face legtura. Cuvintele scrise ntre cele doua tag-uri <a> ..... /a> vor fi afiate de ctre browser ca hiperlink. Exemplu:
<a href="http://www.csac.ulbsibiu.ro/">Situl Catedrei de Calculatoare si Automatizari</a>
27
Laborator 3
Atributul target
Acest atribut se folosete pentru a defini locul unde se va deschide documentul spre care se face legtura. Daca acest atribut nu se specific atunci pagina se va deschide n fereastra browserului n locul acelei care a fcut legtura. Pentru deschiderea documentului spre care se face legtura ntr-o nou fereastr se va folosi atributul target cu valoarea _blank Exemplu
<a href=http://www.csac.ulbsibiu.ro/ target=_blank>Situl Catedrei de Calculatoare si Automatizari</a>
Atributul name
Atributul name este utilizat pentru a crea o ancora cu nume. Aceste ancore sunt foarte des utilizate n cadrul documentelor mari. Pentru a ajunge la un anumit punct din document acela se marcheaz ca fiind o ancora cu nume. Avnd aceasta ancora din orice document se poate sri direct la seciunea din document marcat de ea. Acest lucru uureaz enorm navigarea prin document. Sintaxa pentru crearea unei ancore cu nume este:
<a name="nume eticheta">textul de afisat</a>
Exemplu
<a name="cap1">Capitolul 1</a>
Observaie: O ancora cu nume nu se va afia de ctre browser ntr-un mod anume. Pentru a face o legtur spre o ancor cu nume se adaug la sfritul numelui documentului spre care se face legtura semnul #
28
Laborator 3
urmat de numele ancorei. (Daca suna prea complicat urmrii exemplul): Exemplu Pas 1. n documentul ex1.htm avem mai multe denumiri de capitole. Pentru a sri mai uor la nceputul fiecrui capitol definim cte o ancora cu nume:
<html> <head> <body> <a name=cap1> Capitolul 1</a> <p> In capitolul 1 povestim basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari ....... </p> <a name=cap2> Capitolul 2</a> <p> In capitolul 2 povestim iarasi basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si intamplari basme si
29
Laborator 3 intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme intamplari basme </body> </html> si si si si si si si si si si si si si si intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari intamplari basme si basme si basme si basme si basme si basme si basme si basme si basme si basme si basme si basme si basme si ....... </p>
Pas 2. Definim legtura direct spre o ancora cu nume. Presupunem ca avem un document web care conine cuprinsul...
<html> <head> </head> <body> <p> Cuprinsul</p> <a href=ex1.htm#cap1 target=_blank>Capitolul 1</a><br> <a href=ex1.htm#cap2 target=_blank>Capitolul 2</a><br> </body> </html>
Observaie: Daca se dorete saltul n cadrul aceluiai document atunci la definirea legturii se poate utiliza doar numele ancorei precedat de # fr a mai specifica numele fiierului. Exemplu
<a href=#cap1 target=_blank>Capitolul 1</a><br>
Observaie general:
30
Laborator 3
ntotdeauna este bine s adugai la sfrit un / cnd dai adresa spre un subfolder: Ex corect:
href=www.csac.ulbsibiu.ro/orar/
Daca nu punei si / la sfrit atunci browserul va face doua cereri: prima n care va aduga automat / iar a doua cnd va face cererea cu / adugat. Ex. incorect:
href=www.csac.ulbsibiu.ro/orar
Exemple diverse
1. Crearea unei legturi
<html> <body> <p> <a href="ex13.htm"> acest text</a> este un link spre pagina ex13.htm </p> <p> <a href="http://www.csac.ulbsibiu.ro/" target="_blank"> acest text</a> este un link la pagina catedrei si se deschide intr-o fereastra noua </p> </body> </html>
31
Laborator 3
32
Laborator 3
Observaie: Aici am folosit un tag <img> care l vom parcurge mai trziu. Atributul src indic sursa pozei adic numele fiierului care trebuie s fie n acelai director cu fiierul html. 3. Un link spre o adresa de mail
<html> <body> <p> un link catre o adresa de mail - daca aveti un client de mail instalat la click pe acest link se deschide fereastra clientului de mail: <a href="mailto:radu.kretzulescu@ulbsibiu.ro?sub ject=salutare"> trimite-ma</a> </p> </body> </html>
33
Laborator 4
4 -Tabele
Tag-uri specifice tabelelor
Tag <table> <th> <tr> <td> <caption> <colgroup> <col> <thead> <tbody> <tfoot> Descriere Definete un tabel Definete header-ul unui tabel Definete un rnd (linie) n tabel Definete o celula n tabel Definete caption-ul tabelului Definete un grup de coloane ale tabelului Definete valorile atributelor a unei sau mai multor coloane dintr-un tabel Definete un rnd de head Definete corpul tabelului Definete footer-ul tabelului
Tabele
Tabelele se definesc cu ajutorul tag-ului <table>. Tabelele se mpart in linii care se definesc cu ajutorul tag-ului <tr> (table row). Liniile tabelului se mpart in celule cu ajutorul tag-ului <td> (table data) O celul dintr-un tabel poate conine: text, imagini, paragrafe, forme, tabele, liste etc. Exemplu:
<table border="l"> <tr> <td>rand 1, celula <td>rand 1, celula </tr> <tr> <td>rand 2, celula <td>rand 2, celula </tr> </table> l</td> 2</td> l</td> 2</td>
34
Laborator 4
Atributul borders
Daca nu se specifica acest atribut tabelul va fi afiat fr linii. n unele cazuri acest lucru este bun deoarece cu ajutorul tabelelor se poate asigura mprirea paginii web astfel nct informaia s poat fi structurat. Ex. n partea stnga se va afia o celula care conine un meniu de navigare iar n dreapta coninutul ..... Pentru a afia liniile tabelului atributul borders se utilizeaz astfel:
<table border="1"> <tr> <td>rand 1, celula 1</td> <td>rand 1, celula 2</td> </tr> </table>
35
Laborator 4
Capul de tabel
Capul de table sau heading se definesc ntr-un table cu tag-ul <th>.
<table border="1"> <tr> <th>Cap de coloana 1</th> <th>Cap de coloana 2</th> </tr> <tr> <td>rand 1 <td>rand 1 </tr> <tr> <td>rand 2 <td>rand 2 celula K/td> celula 2</td> celula K/td> celula 2</td> </tr> </table>
36
Laborator 4
Observaie: Capul de tabel apare bold fr a fi nevoie de editare special! Celule goale ntr-un tabel Tabelele care conin celule goale nu sunt afiate corect de toate browser-ele. Problema care apare este lipsa chenarului n jurul celulei care nu conine nimic.
<html> <body> <table border="1"> <tr> <th>Cap de coloana <th>Cap de coloana </tr> <tr> <td>rand 1, ce1ula <td>rand 1, celula </tr> <tr> <td>rand 2, celula <td></td> </tr> </table> </body> </html>
37
Laborator 4
38
Laborator 4
Exemple diverse
1. Tabel cu caption (cu titlu)
<html> <body> <h4> Acest tabel are un caption adica un titlu pe mijloc si o margine mai groasa rosie: </h4> <table border="2" bordercolor="red"> <caption>titlul tabelului</caption> <tr> <td>unu</td> <td>doi</td> <td>trei</td> </tr> <tr> <td>patru</td> <td>cinci</td> <td>o mie douasute saptezeci si trei</td> </tr> </table> </body> </html>
39
Laborator 4 <h4>celula peste doua coloane:</h4> <table border="1"> <tr> <th>Nume</th> <th colspan="2">telefon</th> </tr> <tr> <td>Stefan Cel Mare</td> <td>0230.414055</td> <td>230.4141195</td> </tr> </table> <h4>celula peste doua randuri:</h4> <table border="1"> <tr> <th>Nume:</th> <td>Stefan Cel Mare</td> </tr> <tr> <th rowspan="2">telefon:</th> <td>0230.414055</td> </tr> <tr> <td>230.4141195</td> </tr> </table> </body> </html>
40
Laborator 4 paragraf</p> <p>un alt paragraf</p> </td> <td>celula aceasta contine un tabel: <table border="1" bordercolor="blue"> <tr> <td>A</td> <td>B</td> </tr> <tr> <td>C</td> <td>D</td> </tr> </table> </td> </tr> <tr> <td>celula contine o lista <ul> <li>unu</li> <li>doi</li> <li>trei</li> </ul> </td> <td>salut</td> </tr> </table> </body> </html>
41
Laborator 4
42
Laborator 4 <td> </td> </tr> </table> <h3> Exemplu de table cu cellspacing</h3> <table border="1" cellspacing="10"> <tr> <th>Cap de coloana 1</th> <th>Cap de coloana 2</th> </tr> <tr> <td>rand 1, ce1ula 1</td> <td>rand 1, celula 2</td> </tr> <tr> <td>rand 2, celula 1</td> <td> </td> </tr> </table> </body> </html>
43
Laborator 4
6. Adugarea de culoare sau imagine pe fundalul tabelului cu ajutorul atributelor bgcolor si background.
<html> <body> <h4>culoare de fungdal pe intreg tabelul:</h4> <table border="1" bgcolor="green"> <tr> <td>pam</td> <td>pim</td> </tr> <tr> <td>pim</td> <td>pam</td> </tr> </table> <h4>o imagine pe fundalul tabelului:</h4> <table border="1" background="04.gif"> <tr> <td>pam</td> <td>pim</td> </tr> <tr> <td>pim</td> <td>pam</td> </tr> </table> </body> </html>
44
Laborator 4
6. Adugare de culoare sau imagine pe fundalul unei celule cu ajutorul atributelor bgcolor si background
<html> <body> <h4>culoare de fungdalul unei celule:</h4> <table border="1"> <tr> <td bgcolor="green">pam</td> <td>pim</td> </tr> <tr> <td>pim</td> <td>pam</td> </tr> </table> <h4>o imagine pe fundalul unei celule:</h4> <table border="1"> <tr> <td>pam</td> <td background="04.gif">pim</td> </tr> <tr> <td>pim</td> <td>pam</td> </tr> </table> </body> </html>
45
Laborator 4
4 - Liste
Tag-uri pentru liste
Tag
Descriere <ol> Definete o lista ordonata <ul> Definete o lista neordonata <li> Definete un element al listei <dl> Definete o lista de definiii <dt> Definete un termen al listei de definiii <dd> Definete o descriere <dir> Nu se mai utilizeaz. Se folosete <ul> <menu> Nu se mai utilizeaz. Se folosete <ul>
Liste neordonate
O lista neordonat este o list n care elementele listei sunt marcate cu o bulin la nceput - de obicei un cerc mic negru. O lista neordonata ncepe cu tag-ul <ul>. Fiecare element al listei ncepe cu <li>.
<ul> <li>banane</li> <li>portocale</li> <li>struguri</li> </ul>
46
Laborator 4
n interiorul fiecrui element al unei liste pot fi puse paragrafe, imagini, link-uri, alte liste etc.
Liste ordonate
O lista ordonata este o lista n care elementele listei sunt numerotate. O lista ordonata ncepe cu <ol> iar fiecare element cu tag-ul <li>
<ol> <li>banane</li> <li>portocale</li> <li>struguri</li> </ol>
47
Laborator 4
Liste de definiii
Lista de definiii este o lista de termeni si explicarea acestora. O lista de definiii ncepe tag-ul <dl>. Fiecare termen din lista ncepe cu tagul <dt> . Fiecare definiie a unei liste de definiii ncepe cu tag-ul <dd>.
<dl> <dt>Prajitura</dt> <dd>Ceva de obicei dulce si bun</dd> <dt>Masina</dt> <dd>O chestie pe 4 roti care are tractiune proprie</dd> </dl>
48
Laborator 4
Exemple
1. Alte tipuri de liste neordonate
<html> <body> <h4>Disc bullets:</h4> <ul type="disc"> <li>Pim</li> <li>Pam</li> <li>Pum</li> <li>Pom</li> </ul> <h4>Circle bullets:</h4> <ul type="circle"> <li>Pim</li> <li>Pam</li> <li>Pum</li> <li>Pom</li> </ul> <h4>Square bullets:</h4> <ul type="square"> <li>Pim</li> <li>Pam</li> <li>Pum</li> <li>Pom</li> </ul> </body> </html>
49
Laborator 4
50
Laborator 4 <li>Pam</li> <li>Pum</li> <li>Pom</li> </ol> <h4> lista numerotata cu litere mici:</h4> <ol type="a"> <li>Pim</li> <li>Pam</li> <li>Pum</li> <li>Pom</li> </ol> <h4> lista numerotata cu cifre romane mari:</h4> <ol type="I"> <li>Pim</li> <li>Pam</li> <li>Pum</li> <li>Pom</li> </ol> <h4> lista numerotata cu cifre romane mici:</h4> <ol type="i"> <li>Pim</li> <li>Pam</li> <li>Pum</li> <li>Pom</li> </ol> </body> </html>
51
Laborator 5
5 - Imagini
Tag-uri pentru imagini
Tag <img> <map> <area> Descriere Definete o imagine Definete o harta a imaginii Definete o zona n cadrul harii unei imagini
Pentru a defini o imagine n HTML avem nevoie de tag-ul <img>. Pentru a afia o imagine trebuie s specificam valoarea atributului src (sursa). Sursa este chiar URL-ul imaginii pe care vrem sa o afiam. Sintaxa este: <img src="url"> Browserul pune ntotdeauna imaginea n locul n care ntlnete tag-ul <img>. Exemplu:
<html> <body> <p> pam pam</p> <img src="04.gif"> </body> </html>
52
Laborator 5
Atributul alt
Acest atribut se folosete pentru a afia un text alternativ pentru o imagine. Adic n cazul n care browserul nu poate afia imaginea atunci n spaiul rezervat imaginii apare textul specificat de atributul alt. Foarte important!!! Fr acest atribut validatorul de cod html nu va valida documentul (http://validator.w3c.org) Sintaxa: <img src="04.gif" alt="Smiley"> Utilizarea acestui atribut este o practic buna mai ales pentru cei ce navigheaz fr s-i afieze si pozele.
<html> <body> <p> pam pam</p> <img src="05.gif" alt="Smiley"> </body> </html>
53
Laborator 5
54
Laborator 5 In acest paragraf imaginea ramane in stanga si textul curge frumos in jurul ei bla, bla, bla, bla, bla, bla, bla,bla, bla,bla,bla,bla,bla,bla,bla,bla, </p> <p> <img src ="04.gif" align ="right"> In acest paragraf imaginea ramane in dreapta si textul curge frumos in jurul ei bla,bla,bla,bla,bla,bla,bla,bla, bla,bla,bla,bla,bla,bla,bla,bla, </p> </body> </html>
3. Mrimea pozelor:
<html> <body> <p> <img src="04.gif" width="15" height="15"> </p> <p> <img src="04.gif" width="30" height="30"> </p> <p> <img src="04.gif" width="45" height="45"> </p> <p> Atentie putem micsora sau mari imaginile cu cele doua atribute width si height dar atentie calitatea pozei are de suferit. Asa ca marimea pozei trebuie sa fie stabilita din programul de editare al pozelor! </p> </body> </html>
55
Laborator 5
56
Laborator 6-7
6 - Culori HTML
Culorile se obin utiliznd modelul RGB (RED, GREEN, BLUE)
Valorile culorilor
Culorile sunt definite cu ajutorul notaiei hexazecimale pentru fiecare dintre cele trei culori de baza: rou, verde, albastru. Cea mai mica valoare care se poate da unei culori este #00 iar cea mai mare este #FF Tabelul de mai jos arata unele combinaii de culori Culoare
Numele culorilor
Doar 16 nume de culori sunt recunoscute de ctre standardul HTML 4.0. Acestea sunt: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white i yellow. Pentru toate celelalte nuane se impune folosirea codului hexa.
57
Laborator 6-7
58
Laborator 6-7
<frame>
<noframes> Definete o seciune n care se pune cod pentru browserele care nu suporta tag-ul de frame <iframe> Definete o fereastra interioara paginii
Cu ajutorul frame-urilor se pot afia n aceeai fereastr a browserului mai multe fiiere htm. Fiecare fiier este independent de celelalte. Probleme care apar sunt: Browserele vechi nu suporta acest tag Tiprirea ntregii ferestre fiind compusa din mai multe cadre este mai complicata Motoarele de cutare returneaz doar urn-ul unui singur frame ceea ce duce in multe situaii la pierderea sistemului de navigare. Pentru a mpri o fereastra a browser-ului in mai multe frame-uri avem nevoie de 2 tag-uri: <frameset> care descrie modul cum se mparte fereastra <frame> care definete ce fiier se pune intr-un cadru De obicei frame-urile se utilizeaz la crearea sistemului de navigare care sa fie vizibil tot timpul. Astfel ntr-un frame se ncrca fiierul care conine doar sistemul de navigare iar in celalalt(e) coninutul fiierelor spre care indica sistemul de navigare. Avantaje: Nu se mai rencrca la fiecare click pe un link tot sistemul de navigare. Tagul frameset Tag-ul <frameset> definete modul in cte linii sau coloane se mparte fereastra browserului i ct de mari s fie acestea n comparaie cu fereastra browserului. Atenie nu se pot defini simultan linii si coloane! Exemplu:
<frameset cols="25%,75%">
59
Primul tag indica faptul ca fereastra browserului nostru se mparte n dou coloane prima avnd o lime de 25% din limea ferestrei iar a doua de 75%. Atributele tag-ului frameset Atribut Valoare Descriere cols rows pixels % * pixels % * Definete numrul i mrimea coloanelor Definete numrul i mrimea liniilor
Tagul Frame Tag-ul <frame> definete ce fiier HTML se va pune in fiecare cadru descris n <frameset>. n exemplul de mai sus am definit dou coloane. Pentru a defini care fiiere s se afieze n aceste coloane se va proceda astfel: Presupunem c avem dou fiiere cu numele 1.htm si 2.htm. Pentru a afia fiierul 1.htm pe prima coloana i pe 2.htm pe a doua coloan completm codul prezentat n exemplul de mai sus astfel:
<frameset cols="25%,75%"> <frame src="1.htm"> <frame src="2.htm"> </frameset>
Atributele tag-ului frame Atribut Valoare frameborder marginheight marginwidth name 01 pixels pixels frame_name
Descriere Specifica faptul ca se afieaz sau nu marginea frame-ului Definete marginile de sus si jos in cadrul frame-ului Definete marginile din tanga i dreapta in cadrul frame-ului Definete un nume unic atribuit frame-ului (se folosete n script-uri)
60
Laborator 6-7
Cnd ia valoarea noresize atunci utilizatorul nu poate modifica limea coloanei sau liniei Determina afiarea unui scrollbar Definete URL-ul documentului de afiat
2. Frame-uri orizontale
<html> <head> </head> <frameset rows="25%,75%"> <frame src="1.htm"> <frame src="2.htm"> </frameset> </html>
61
Laborator 6-7
3. Frame-uri mixte:
<html> <head> </head> <frameset rows="25%,75%"> <frame src="1.htm"> <frameset cols="200, *"> <frame src="2.htm"> <frame src="3.htm"> </frameset> </frameset> </html>
62
Laborator 6-7
Observaie: la toate exmplele de mai sus utilizatorul poate modifica limea frame-urilor. Pentru a bloca acest lucru utilizam atributul de noresize.
<html> <head> </head> <frameset rows="25%,75%"> <frame noresize="noresize" src="1.htm"> <frameset cols="200, *"> <frame noresize="noresize" src="2.htm"> <frame noresize="noresize" src="3.htm"> </frameset> </frameset> </html>
4. Utilizarea atributului name Acest atribut se folosete pentru a identifica unic un frame. Se folosete in cazurile n care ntr-un frameset avem un frame care conine i stemul de navigare iar afiajul se face n alt frame. n acest caz frame-ul n care se face afiarea trebuie identificat cu ajutorul atributului name.
<html> <head> </head> <frameset rows="25%,75%"> <frame noresize="noresize" src="1.htm"> <frameset cols="200, *"> <frame noresize="noresize" src="2.htm"> <frame name="principal" noresize="noresize" src="3.htm"> </frameset> </frameset> </html> Prezentam mai jos codul modificat al fisierului 2.htm <html> <head> </head> <body bgcolor="00FFFF"> <a href="3.htm" target="principal"> doi </a> </body> </html>
63
Laborator 6-7
Observm faptul c la tag-ul <a> am adugat atributul target care a primit valoarea atributului name din frame-ul 3 declarat n frameset.
5. Inline frame
<html> <body> <iframe src="3.htm"></iframe> <p>ar trebui sa se vada deasupra acestui rand o fereastra daca browserul nu este prea vechi</p> </body> </html>
64
Laborator 6-7
O alt variant e a aranja coninutul unei pagini html este utilizarea tabelelor sau a diviziunilor (tag-ul div). Practic aceste sunt cele mai bune variante deoarece motoarele de cutare vor returna ntotdeauna i meniul de navigare al sitului. Lucrul cu tabele este puin mai greoi fa de cel cu diviziuni. La utilizarea diviziunilor se impune aranjarea n pagin a acestora cu ajutorul css-ului
65
Laborator 8
8 CSS
Tag-urile de style
Tag <style> <link> <div> <span> <font> <basefont> <center> Descriere Definete o definire de stil Definete o resurs a unei referine Definete o seciune a unui document Definete o seciune n document Depreciat. Se folosete styles Depreciat. Se folosete styles Depreciat. Se folosete styles
n capitolele anterioare am menionat faptul c n standardul HTML 4 se recomand iar n standardul XHTML se impune formatarea textului unui document html n afara sa cu ajutorul unei foi de stil. Declararea unui stil se poate face n trei moduri: n foaie extern documentului HTML n foaie intern n cadrul instruciunii html
66
Laborator 8
Exemplu:
<head> <link rel="stylesheet" type="text/css" href="silul_meu.css"> </head>
67
Laborator 8
n continuare vom prezenta principalele elemente ale CSS Ce este CSS? CSS este prescurtarea de la Cascading Style Sheets (foi de stiluri cascadate) Stilurile definesc modul de afiare a elementelor HTML Stilurile sunt coninute n foi de stiluri - Style Sheets Stilurile au fost adugate n HTML pentru a rezolva o problem i anume separarea formei de coninut Foile de stil externe sunt salvate n fiiere CSS Definirea multipl de stiluri se va cascada n una singur. Problema pe care o rezolv utilizarea stilurilor de editare este faptul c se separ coninutul unui document HTML, marcat prin diverse tag-uri care l mpart n paragrafe, tabele, titluri etc., de forma sa. Pentru motoarele de cutare viitoare i chiar pentru web-ul semantic aceast separare este esenial. Astfel deja n standardul XHTML nu se mai accept tag-uri de formatare a textului cum ar fi <font> cu atributele sale de size, color,.... Problema formatrii externe a unui document HTML a fost rezolvat cu ajutorul CSS-urilor care sunt recunoscute deja de ctre Netscape Navigator 4 i IE 4. CSS-urile salveaz foarte mult munc. Dac dorii s modificai modul cum arat un sit ntreg este de ajuns s se modifice fiierul CSS. Ar fi foarte incomod s modificai de sute de ori tag-ul <font> Ordinea de cascadare a stilurilor. La nceputul acestui capitol am prezentat mai multe modaliti de a declara un stil: n cadrul unui tag, n partea de <head> a documentului, ntr-un fier extern CSS sau chiar n mai multe fiiere externe. Toate aceste stiluri se vor cascada ntr-unul nou, virtual dup urmtoarea regul - unde 1 are cea mai mic prioritate iar 4 cea mai mare: 1. Setri default ale browser-ului 2. Foaie de stil extern - fiier CSS 3. Foaie de stil intern - declarare n interiorul tag-ului <head> 4. Declarare n interiorul elementului HTML Practic o declarare de stil n cadrul unui element HTML va suprascrie orice stil declarat n partea de <head> i orice stil declarat ntr-un
68
Laborator 8
fiier extern CSS. n continuare ne vom ocupa de sintaxa declarrii unui stil i de tipurile de stiluri
Sintaxa CSS
Sintaxa CSS este alctuit din 3 pri: un selector o proprietate o valoare atribuit proprietii Mod de redactare:
selector {proprietate: valoare}
Selectorul este de obicei chiar elementul/tag-ul HTML pe care dorim s-l definim Proprietatea este atributul elementului HTML pe care dorim s-l modificm Valoarea proprietii este chiar valoarea pe care dorim s o atribuim atributului elementului HTML Trebuie s reinem faptul c n sintax proprietatea este separat de valoare prin dou puncte. Dac o valoare este compus din mai multe cuvinte atunci n cadrul sintaxei acestea se pun ntre ghilimele. Dac se dorete stabilirea mai multor proprieti pentru un singur selector acestea se vor separa cu punct i virgul Exemple: Ex1 Ex2 Ex3
body {color: red} p {font-family: "sans serif"} p{ font-family: verdana; color: green; text-align: right }
Exemplul 1 stabilete pentru tag-ul <body> atributul color cu valoarea red adic textul delimitat de acest tag se va scrie cu culoarea roie
69
Laborator 8
Exemplul 2 stabilete pentru tag-ul de paragraf <p> atributul fontfamily cu valoarea sans serif adic textul delimitat de acest tag va fi scris utiliznd fontul sans serfi Exemplul 3 stabilete mai multe proprieti pentru tag-ul <p>. Observm c acestea sunt separate de ; Exist 3 tipuri de selectori: selector html selector class selector ID HTMLSelector {Property:Value;}
<style type="text/css"> p {font-family:arial; font-size:14px; color:red} </style>
. ClassSelector {Property:Value;}
#IDSelector {Property:Value;}
<style type="text/css"> #layer1 {position:absolute; left:100;top:100; z-Index:0} #layer2 {position:absolute; left:140;top:140; z-Index:1} </style>
Gruparea selectorilor
Selectorii pot fi grupai. Separarea lor se face cu virgul. Exemplu
h1,h2,h3 { color: blue }
70
Laborator 8
71
Laborator 8
Ceea ce este foarte important este faptul c ulterior se mai pot face modificri iar acestea se vor face n toate paragrafele care au ca atribut clasa respectiv. ATENIE: Un element HTML poate primi un singur atribut class. n declararea unui selector de clase se poate omite numele tag-ului, selectorul fiind acum unul general Exemplu:
72
Laborator 8
backgroundattachment
Stabilete faptul c o poz de pe fundal rmne fix sau se mic odat coninutul
73
Laborator 8
color-rgb color-hex color- Seteaz culoarea de fundal a unui element nume HTML transparent url none top left top center top right center left center center center right bottom left bottom center bottom right x-% y-% x-pos y-pos Seteaz o imagine pe fundalul elementului HTML Seteaz locul de unde ncepe poziionarea pozei de pe fundal
backgroundrepeat
repeat repeat-x repeat-y Seteaz modul cum/dac se repet o no-repeat imagine pe fundal
74
Arat astfel:
75
Laborator 8
76
Laborator 8
letter-spacing
normal length
77
Laborator 8
text-align text-decoration
text-indent text-transform
Lungime px Indenteaz prima linie dintr-un element HTML % Controleaz modul de afiare a none capitalize literelor unui text: cu MAJUSCULE uppercase ..... lowercase normal length Mrete sau micoreaz spaiul dintre cuvinte
word-spacing
78
Laborator 8
font-family
family-name generic-family
O list de nume de fonturi care se vor utiliza dac exist pe maina pe care ruleaz browserul n ordinea stabilit
79
Laborator 8
font-size
xx-small x-small small medium large x-large xx-large smaller larger mrime % normal wider narrower ultra-condensed extra-condensed condensed semi-condensed semi-expanded expanded extra-expanded ultra-expanded normal italic oblique normal small-caps
font-stretch
font-style
font-variant
80
Laborator 8
font-weight
normal bold bolder lighter 100 200 300 400 500 600 700 800 900
81
Laborator 8
Pseudoclase
a:link Definete stilul pentru link-uri nevizitate a:visited Definete stilul pentru link-uri vizitate a:active Definete stilul pentru link-uri active Link-ul devine activ la click a:hover Definete stilul pentru link-uri plutitoare Un link plutete cnd mouse-ul se afl deasupra link-ului
82
Laborator 8
Exemplu:
<style type="text/css"> a:link {text-decoration: none} a:visited {text-decoration: none} a:active {text-decoration: none} a:hover {text-decoration: underline overline; color: red;} </style>
Cu ajutorul acestor pseudoclase se pot realiza foarte uor meniuri de navigare astfel nct putem renuna la meniurile tip flash sau javascript care sunt ignorate de ctre motoarele de cutare.
83
Laborator 9
9- PHP
Observaie general: Scripturile php incluse n codul html sunt executate pe server. Asta are ca efect faptul c dac ncercai s vizualizai codul surs unei pagini web dinamice o s observai c el conine doar tag-uri html, acestea fiind rezultatul obinut n urma interpretrii codului php. PHP (se pronunta pe-ha-pe) este un limbaj de programare ce ruleaza server, proiectat special pentru WEB. Intr-o pagina HTML puteti ingloba cod PHP care va fi executat la fiecare vizitare a paginii. Codul dumneavoastr PHP este interpretat pe serverul WEB si genereaz un cod HTML care va fi vzut de utilizator (clientului (browserului) fiindu-i transmis numai cod interpretat ca si HTML).
Sintaxa php
Un fiier php conine tag-uri normale de html i cod php. Marcarea nceputului codului php se face cu <?php iar sfritul blocului de cod php cu ?> Exemplu: Clasicul exemplu cu Hellou lume transformat n script php:
84
Laborator 9 <html> <body> <?php echo "Hellou lume"; ?> </body> </html>
Observaii: Fiierul de mai sus trebuie salvat cu extensia php pentru ca severul de web s transmit fiierul interpretorului php Rezultatul va fi:
iar codul sursa returnat (vizibil de altfel cu View Source) este urmtorul:
<html> <body> Hellou lume</body> </html>
Un bloc de script php poate fi inserat n orice loc a unui document html. Fiecare instruciune php trebuie separata de o alta instruciune cu ;
Afiarea n php
1. 2. 3. 4. 5. Afiarea cu ajutorul lui echo Elemente de formatare a codului sursa Afiarea elementelor HTML Escape-ul pentru anumite semne Afiarea semnelor speciale din PHP
85
Laborator 9
Pentru a afia ceva n PHP (adic codul html pentru o pagin) se pot utiliza mai multe funcii: echo, print i printf. Funcia printf() se utilizeaz asemntor ca n C n sensul c permite formatarea afirilor. Noi vom folosi funcia echo care este puin mai rapida ca print. Diferena dintre echo si print este ca print returneaz ntotdeauna valoarea 1 dup ce a fost executata si deci poate fi utilizata n construcii mai complexe. Exemplu 1
<?php echo "Acesta este textul care se va afia"; ?>
Dup cum se observ lipsesc parantezele specifice funciilor. Asta se ntmpla deoarece echo nu este o funcie ci doar un constructor al limbajului PHP. n schimb dac am folosi printf() atunci trebuie utilizate parantezele. Exemplu 2
<?php echo "Acesta este textul care se va afia"; echo "Acesta este al doilea text care se va afia"; ?>
86
Laborator 9
Observm ca al doilea string a fost adugat primului fr salt la rnd nou cu toate ca am avut doua echo n codul php. Problema este ca dup afiarea primului string cursorul imaginar al PHP-ului a rmas dup primul string, al doilea echo fiind afiat ncepnd cu acea poziie. Pentru a avea un salt la linie noua trebuie sa utilizam elemente de formatare 2. Elemente de formatare Pentru a fora salt la rnd nou n php utilizam string-ul \n Exemplul 3
<?php echo "Acesta este textul care se va afia\n"; echo "Acesta este al doilea text care se va afia"; ?>
Rezultatul este
Adic cam tot ca la exemplul anterior. Totui dac vedem codul generat de php observm modificarea.
87
Laborator 9
n principiu utilizm elementele de formatare pentru lizibilitatea codului. Totui pentru a putea afia si n fereastra browser-ului cele dou string-uri pe doua rnduri mai utilizam si elemente html. 3. Afiarea elementelor html cu ajutorul lui php Pentru a fora un salt la rnd nou utilizam elementul html <br> Exemplul 4
<?php echo "Acesta este textul care se va afia<br>\n"; echo "Acesta este al doilea text care se va afia"; ?>
Rezultatul este:
88
Laborator 9
4. Escape-ul anumitor semne Titlul este ales nefericit. Ce vrea sa spun este faptul c anumite semne cum sunt ghilimelele, slash-ul etc. sunt interpretate de ctre php. Adic dac avem un text care ar conine ghilimele am avea probleme la afiarea sa. Exemplu:
<?php echo "Acesta este "textul" care se va afia<br>\n"; echo "Acesta este al doilea text\scris care se va afia"; ?>
Dac vom lsa php-ul s interpreteze acest script vom obine un rezultat nesatisfctor:
Linia a doua conine mai mult de 2 ghilimele i acest lucru duce la eroarea afiata. Pentru a evita astfel de probleme trebuie s marcam ghilimelele care sunt necesare n text i care nu fac parte din sintax. Acest lucru se face cu ajutorul escape-ului se pune un \ naintea ghilimelelor: Codul ar trebui s arate astfel:
<?php echo "Acesta este \"textul\" care se va afia<br>\n"; echo "Acesta este al doilea text\\scris care se va afia"; ?>
89
Laborator 9
Observm faptul c pentru a afia un \ a trebuit s adugam n codul sursa un al doilea \. 5. Afiarea semnelor speciale din PHP Sunt cazuri n care am dori s afim semnul $. n PHP acesta este un semn rezervat pentru variabile n sensul c orice sir de caractere care ncepe cu $ este considerat nume de variabil. Pentru a rezolva aceast problem utilizm tot semnul de escape \ Exemplu:
<?php echo "Semnul de dolar \$ este o unitate monetara"; ?>
Variabile in PHP
1. Declararea variabilelor 2. Atribuirea de valori 2.1 iruri de caractere 2.1.1Operator de concatenare 2.2 Numere 1. Declararea variabilelor Toate variabilele ncep cu semnul de dolar $ urmat de _ sau o litera. Variabilele sunt case-sensitive astfel nct $ID nu este aceeai
90
Laborator 9
variabila ca $Id. 2. Atribuirea de valori unei variabile Atribuirea unei valori (indiferent ca este vorba de string, integer, float, sau bool) se face cu operatorul de atribuire =. 2.1 iruri de caractere Exemplu 1:
<?php $xy = "Salutare!"; $ 10 = "Studenti"; ?>
In ambele cazuri variabilelor $xy si $_10 li se atribuie cate un string. Acesta poate fi ulterior afiat cu echo. 2.1.1 Operator de concatenare Pentru a uni doua iruri de caractere se utilizeaz operatorul . (punct). Exemplu 2:
<?php $variable = "Buna"." ziua!"; echo $variable; echo "Salutare"."studenti"; ?>
Se pot uni inclusiv o variabila de tip string cu un string sau dou variabile de tip string. Exemplu 3:
<?php $bla = "Mama"; $name = $bla." mea"; // va uni coninutul lui $bla + " mea" (cu spaiu) echo $name; // va afia "Mama mea" echo $name." si a ta";// va afia "Mama mea si a ta" ?>
ntr-o expresie se pot utiliza mai muli operatori de concatenare. Oricum nu se va ine cont dac se unesc string-uri sau variabile. Exemplu 4:
91
Laborator 9 <?php $prenume = "Radu"; $nume = "Cretulescu"; $Nume = $prenume." ".$nume; // Variabilele conin iruri de caractere si //trebuie sa adugam manual un spaiu echo $name; //
2.2 Numere 2.2.1 Tipuri de variabile 2.2.2 Numere int 2.2.3 Numere float 2.2.1 Tipuri de variabile In PHP se cunosc doua tipuri de numere: ntregi (int) i n virgul
92
Laborator 9
mobil (float sau double) 2.2.2 Numere ntregi La atribuirea valorii unei variabile se stabilete automat tipul variabilei. Daca dorim sa definim o variabila int atunci ii atribuim direct o valoare ntreaga. Exemplu 1:
<?php $valoare = 3; echo "Numarul ales este ".$valoare."\n"; echo 100; ?>
2.2.3 Numere float Numerele care conin parte zecimal sunt de tip float
<?php $g = 9.81; echo "Constanta gravitaionala g= ".$g." unitatea de masura\n"; ?>
La acest tip de numere este important s reinem c separatorul zecimal este semnul punct, semnul virgula se utilizeaz pentru separarea parametrilor unei funcii Exemplu 2:
<?php xyz(5.6); // 5.6 este un parametru de tip float al funciei xyz abc(5,6); // 5 si 6 sunt doi parametric ai funciei abc abc(5, 6); // ca si mai sus ?>
Mai apare nc o problem: Punctul este i operatorul de concatenare. Daca am dori s unim dou numere avem urmtoarele posibiliti: 1. Atribuim mai nti numerele unor variabile si apoi unim acestea cu operatorul punct.
<?php $unitati = 4; $zeci = 5; echo $zeci.$unitati; ?>
93
Laborator 9
2. Dac dorim s unim dou valori ntregi cu ajutorul operatorului punct atunci trebuie s inseram cte un spaiu nainte si dup operator.
<?php echo 4 . 5; // Afiseaza 45 echo 4.5; // Afiseaza 4.5 ?>
Operatori PHP
Operatori aritmetici Operator Descriere + * / % Adunare Scdere nmulire mprire Modul (rest) Exemplu Rezultat x=2 x+2 x=2 5-x x=4 x*5 15/5 5/2 5%2 10%8 10%2 x=5 X++ x=5 x-4 3 20 3 2.5 120
++ --
Incrementare Decrementare
x=6 x=4
Operatori de atribuire
94
Laborator 9
Operator = += -= *= /= %=
Operatori de comparare Operator Descriere == != > < >= <= este egal cu nu este egal cu este mai mare ca este mai mic ca este mai mic sau egal ca
Exemplu 5==8 returneaz false 5!=8 returneaz true 5>8 returneaz false 5<8 returneaz true 5<=8 returneaz true
Operatori logici Operator Descriere Exemplu && si x=6 y=3 (x < 10 && y > 1) returneaz true
||
sau
95
Laborator 9
not
Probleme: 1. Dai un exemplu de script n care declarm un string 2. Dai un exemplu de utilizare a escape-ului pentru anumite semne
96
Laborator 10
10. Formulare
Elementul FORM
<form [action=url] [method=get/post] [enctype=MIMEType] [onsubmit=script] [onreset=script] [acceptcharset=set_caractere] [core] [international] [events]> </form> <input [type=text|password|checkbox|radio|submit|ima ge|reset|button|hidden|file] [name=nume] [value=valoare] [checked] [disabled] [readonly] [size=latime] [maxlength=cuvinte_maxime] [src=url] [alt=altText] [usemap=url] [align=left|center|right|justify] [tabindex=numar] [accesskey=keyCombo] [onfocus=script] [onblur=script] [onselect=script] [onchange=script] [accept=set_caractere] [core] [international] [events]>
Elementul INPUT
Acest element input este cel mai important in utilizarea formularelor. Explicarea valorilor Type ale elementului INPUT Exemplu:
<input type=submit name=Buton value=Buton>
97
Exemplu:
Elementul SELECT Acest element este folosit pentru crearea unei liste de opiuni, fie ca un meniu care se desfoar, fie ca o caseta cu lista. Fiecare din optiunile din lista reprezint un element OPTION.
<select [name=nume] [size=latime] [multiple] [disabled] [tabindex=numar] [onfocus=script] [onblur=script] [onchange=script] [core] [international] [events]>
98
Laborator 10
Exemplu select:
<select name=test> <option value=optiune <option value=optiune <option value=optiune <option value=optiune </select> 1>Optiune 2>Optiune 3>Optiune 4>Optiune 1</option> 2</option> 3</option> 4</option>
Arat astfel:
<select name=test multiple size=3> <option value=optiune 1>Optiune 1</option> <option value=optiune 2>Optiune 2</option> <option value=optiune 3>Optiune 3</option> <option value=optiune 4>Optiune 4</option> <option value=optiune 5>Optiune 5</option> <option value=optiune 6>Optiune 6</option> </select>
Elementul TEXTAREA Acest element este asemntor cu cel text numai ca aici se poate tasta ntr-o sectiune mult mai mare dect n cazul text.
<textarea [name=nume] [rows=nr_randuri] [cols=nr_coloane] [disabled] [readonly] [tabindex=numar] [onfocus=script] [onblur=script] [onselect=script] [onchange=script] [core] [international] [events]</textarea>
99
Laborator 10
Exemplu textarea:
<textarea name=nume cols=40 rows=10>Text initial</textarea>
Exemplu de formular
<form action=formular.php method="get"> <table> <tr> <td colspan=2> <input type="radio" name="a" value="h"> domnul <input type="radio" name="a" value="f"> doamna <tr> <td>name: <td><input type="text" name="nu" size="20"> <tr> <td>vorname: <td><input type="text" name=pre" size="20">
100
Formularul prezentat n exemplul de mai sus este pur cod html, deci este static. Importante sunt datele pe care le trimite. n cazul nostru din formularul de mai sus datele vor fi trimise, conform cu atributul action la scrptul formular.php. Acesta le va prelua n funce de metoda cu care au fost trimise datele n variabila global $_POST[] sau $_GET[]. n cazul nostru datele au fost trimise cu ajutorul metodei get. Scriptul formular.php arat astfel.
<?php $nume=$_GET['Nu']; $prenume=$_GET['Pre']; $titlu=$_GET['A']; if ($titlu=="Do") echo "Domnul"; else echo "Doamna"; echo "Numele este:" $nume; echo "Prenumele este:" $prenume; ?>
101
Laborator 12-13
Punei codul intr-un fisier if.php, salvai si apoi vizualizai n explorer accesnd http://localhost/... Observai, condiia noastr, si anume aceea ca valoarea rezultata in urma adunrii dintre variabila a (12) si variabila b (8) sa fie egala cu numrul 20, este adevrata si in acest caz, codul de dup { si respectiv } a fost executat. Daca valoarea adunrii dintre variabila a si variabila b nu era 20, atunci afiarea in browser era nula.
<?php $a = 155; $b = 8; $rezultat = $a + $b; if($rezultat == '20') { echo 'Rezultatul este perfect'; } ?>
In conditiile noastre, dupa cum vedeti, ne folosim de operatorii din PHP pe care i-am scris mai sus
102
Laborator 12-13
Instructiunea ELSE
De multe ori, pe lng decizia de a executa o aciune, atunci cnd condiia este adevrata, dorii sa executai o alta care in caz contrar (in cazul in care condiia nu este adevrata) sa returneze o alta bucata de cod.
<?php $a = 20; $b = 8; $rezultat = $a + $b; if($rezultat == '20') { echo 'Rezultatul este perfect'; } else { echo 'Rezultatul nu este egal cu cel din conditie'; } ?>
Instructiunea ELSEIF
Aceasta instruciune este (dupa cum vedeti) o combinaie dintre instruciunea if si cea else. Aceasta poate verifica fiecare condiie pana in momentul in care una dintre condiiile gsite returneaz o valoare adevrata.
<?php $a = 20; $b = 1; $rezultat = $a + $b; if($rezultat == '20') { echo 'Rezultatul este egal cu 20'; } elseif ($rezultat == '21') { echo 'Rezultatul este egal cu 21'; } else { echo 'Rezultatul nu este egal cu cel din conditie'; } ?>
103
Laborator 12-13
Instructiunea SWITCH
Aceasta instruciune funcioneaz asemntor cu cea if, ins permite condiiilor sa aib mai mult de 2 valori. Intr-o instruciune if, condiia poate fi adevrat sau fals, ins intr-o instruciune switch condiia poate lua orice numr de valori diferite. Aceasta instruciune trebuie sa conin o instruciune case care sa manevreze fiecare valoare pe care o doriti.
<?php if(!isset($_GET['modul'])) $_GET['modul'] = ''; switch($_GET['modul']) { case '': echo 'Pagina switch.php'; break; case 'pagina1': echo 'Pagina switch.php?modul=pagina1'; break; case 'pagina2': echo 'Pagina switch.php?modul=pagina2'; break; } ?>
Bucla WHILE
Cel mai simplu tip de bucla PHP este while. Asemenea instruciunii if, ea se bazeaz pe o aciune. Diferena dintre if si while este aceea ca instruciunea if, daca gsete adevrata condiia, afieaz o singura data bucata de cod din ea, insa in condiia while, daca rezultatul este adevrat, bucata de cod din ea se va repeta atta timp cat conditia este adevarata.
<?php $numar = 1; while($numar <= 5) echo $numar.'<br>'; $numar++; } ?>
104
Laborator 12-13
Structura FOR
O alternativa cu o funcionalitate mai ridicata pentru utilizarea buclelor este structura repetitiva for. Sintaxa este foarte asemntoare cu cea din limbajele C/C++ i anume:
for(expresie1; condiie; expresie2) { //instructiune }
Prima expresie este evaluata o singura data, nainte de nceperea execuiei ciclului. Expresia condiie este testata naintea fiecrei repetri a buclei. Daca expresia returneaz fals, repetarea se oprete. Expresia 2 este executata la sfarsitul fiecarei repetari. Instructiunea se executa la fiecare repetare a buclei. Oricare dintre cele trei expresii poate lipsi; in cazul in care o expresie lipseste, se considera ca ea are valoarea true. Bucla WHILE si FOR sunt identice din puct de vedere functional insa bucla FOR este putin mai complexa.
<?php for ($variabila = 1; $variabila <= 10; $variabila++) { echo $variabila.'<br>'; } ?>
Sa mai luam un exemplu de lucru cu bucla for. Creati o pagina cu numele for.php, introduceti codul urmator apoi testati in browser.
<?php echo "<table border=\"1\">\n<tr><td>Celula</td></tr>\n"; $culoare = "yellow";
if($culoare == "yellow") $culoare = "red"; else $culoare = "yellow"; echo "<tr><td bgcolor=".$culoare.">".$variabila."</td></tr> \n"; } echo "</table>"; ?>
105
Laborator 12-13
Acesta este fisierul de configurare cu care vom realiza conexiunea la baza noastra de date. Modificai valoarea variabilei $passw cu parola pe care ati setat-o dumneavoastra bazei de date. Variabila $host este definita cu valoarea localhost deoarece aceasta este adresa serverului. (Adica, serverul Apache+PHP este instalat pe acelasi calculator ca si pachetul MySQL) Variabila $user este definita cu valoarea root, acesta fiind utilizatorul cu toate drepturile de acces asupra bazei de date, administratorul. Variabila $db_name este definita cu valoarea teste, aceasta fiind numele bazei de date asupra careia lucram. Salvati, si inchideti fisierul.
Instruciunea SELECT
Creati un nou fisier cu numele extragere_date.php si introduceti in
106
Laborator 12-13
el urmatorul cod:
<?php require_once('config.php'); // Selectare dare din baza de date $cerereSQL = 'SELECT * FROM `formular`'; $rezultat = mysql_query($cerereSQL); while($rand = mysql_fetch_array($rezultat)) { echo $rand['nume']; } ?>
Salvati fisierul si apoi accesati in browser Observati ca daca ati introdus o singura valoare in cmpul nume din tabela formular, aceasta se va afia pe pagina, daca sunt mai multe intrri ele se vor afisa una in continuarea celeilalte. Pentru a le afisa una sub alta modificai linia echo $rand['nume']; in
echo $rand['nume'].<br>;
Si acum sa analizam codul PHP. Prima linie din script trebuie sa fie functia require_once, funcie care include, o singura data, in pagina noastra extragere_date.php pagina config.php; adic datele din config.php vor fi transmise in pagina noastr. $cerereSQL = 'SELECT * FROM `formular`'; - In aceasta linie avem variabila $cerereSQL cu valoarea cererii SQL pentru a extrage datele din tabela formular. Ea se interpreteaz cam asa: SELECTEAZA tot DIN formular. $rezultat = mysql_query($cerereSQL); - In aceasta linie avem variabila $rezultat cu valoarea functiei mysql_query, functie care realizeaza deschiderea conexiunii. while($rand = mysql_fetch_array($rezultat)) { echo $rand['nume']; } In aceasta parte de cod observam bucla while, bucla care am invatat cum se folosete echo $rand['nume']; - In acest echo apar valorile coloanei nume din tabelul formular.
107
Laborator 12-13
In interiorul acestei bucle putem afisa si prenumele, si varsta, modificand constructia echo, si anume: echo $rand['nume'].' '.$rand['prenume'].' '.$rand['varsta'].' <br>'; Salvati si apoi testati in browser.
In cererea noastra SQL am selectat * adica tot din tabela formular, insa se poate selecta numai un camp sau mai multe.. si anume: $cerereSQL = 'SELECT `nume,prenume` FROM `formular`'; Sintaxa SELECT:
SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
108
Laborator 12-13 [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr, ... [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name'] [FROM table_references [WHERE where_definition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_definition] [ORDER BY {col_name | expr | position} [ASC | DESC] , ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [FOR UPDATE | LOCK IN SHARE MODE]]
Sa luam urmatorul exemplu, pentru a selecta tot din tabela formular, si sa ii punem o conditie WHERE.
<?php require_once('config.php'); // Selectare dare din baza de date $cerereSQL = 'SELECT * FROM formular WHERE nume="orice" '; $rezultat = mysql_query($cerereSQL); while($rand = mysql_fetch_array($rezultat)) { echo $rand['nume'].' '.$rand['prenume'].' '.$rand['varsta'].' <br>'; } ?>
Salvati si apoi vizualizati in browser. Observati ca avem conditia WHERE nume="orice", iar rezultatul o sa fie numai prima linie din tabela formular, deoarece primul nume de acolo este egal cu numele dat de noi in conditie.
INSERT
Sintaxa insert se folosete pentru a aduga date in baza de date. Sa luam urmtorul exemplu:
<?php require_once('config.php');
109
Laborator 12-13 $cerereSQL = "INSERT INTO `formular` (`nume` , `prenume`, `varsta`) VALUES ('Ivascu', 'Valentin', '20')"; mysql_query($cerereSQL); echo 'Am adaugat valorile in baza de date'; ?>
Creai un fiier nou in folderul tutorial si numii-l introducere_date.php, apoi introducei codul PHP de mai sus, salvati si vizualizati in browser.
Apoi accesati baza de date prin scriptul phpMyAdmin, intrati la tutorial, dupa care apasati pe tabela formular si sus pe butonul Navigare. Observati ca au fost adaugate datele in tabela formular. Sintaxa INSERT:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] sau: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name SET col_name={expr | DEFAULT}, ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]
sau:
110
Laborator 12-13
UPDATE
Sintaxa update se folosete pentru a modifica datele existente din baza de date. Sa luam urmatorul exemplu:
<?php require_once('config.php'); $cerereSQL = "UPDATE `formular` SET nume='nume', prenume='prenume' WHERE nume='orice' "; mysql_query($cerereSQL); echo 'Am modificat valorile campurilor nume si prenume unde numele este orice in baza de date'; ?>
Creati un fisier nou in folderul tutorial, numiti-l modificare_date.php si introduceti codul PHP de mai sus, dupa care salvati si vizualizati in browser.
Accesati baza de date prin phpMyAdmin si observati ca prima coloana a fost modificata.
111
Laborator 12-13 Sintaxa multipla UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] tbl_name name2=expr2 ...]
DELETE
Sintaxa delete se folosete pentru a terge datele existente din baza de date. Sa luam urmatorul exemplu:
<?php require_once('config.php'); $cerereSQL = "DELETE FROM `formular` WHERE nume='nume'"; mysql_query($cerereSQL); echo 'Am sters coloana cu campul nume = nume din baza de date'; ?>
Creati un fisier nou in folderul tutorial si numiti-l stergere_date.php, troduceti codul PHP de mai sus, salvati si vizualizati in browser.
Accesati baza de date prin phpMyAdmin si observati ca prima coloana a fost stearsa. Sintaxa DELETE : Sintaxa simpla
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY
112
Laborator 12-13 ...] [LIMIT row_count] Sintaxa multipla DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*] ...] FROM table_references [WHERE where_definition] DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*] ...] USING table_references [WHERE where_definition]
sau:
Exerciii: 1. Realizai un script care se conectaz la baza de date teste fcnd legtura ntre tabela profi i tabela materii pe baza unei chei primare id_profi. 2. Selectai profeorii care predau o anumit materie
113