Sunteți pe pagina 1din 61

Website informatii

CUPRINS
CUPRINS...............................................................................................................................1
Introducere.............................................................................................................................2
Capitolul 1 - Sistem informatic i baze de date.....................................................................2
1.1. Sistem informatic (Si).................................................................................................2
1.2. Baza de date................................................................................................................4
Capitolul 2 - Structura aplicaiei............................................................................................6
2.1. Design si grafic.........................................................................................................6
2.2. Fiierele aplicatiei.......................................................................................................8
2.3. Descrierea functionalitatii fiierelor.........................................................................10
Capitolul 3 - Proiectarea Bazei de date...............................................................................15
3.1. Relatiile intre tabele..................................................................................................15
Capitolul 4 - Instalarea bazei de date pe sistem..................................................................19
4.1. Etapele instalarii.......................................................................................................19
4.2. Crearea tabelelor cu ajutorul fisierului SQL............................................................20
4.3. Introducerea datelor in baza cu ajutorul fisierului SQL...........................................23
4. 4. Conectarea la server si la baza de date....................................................................24
Capitolul 5 - Descrierea mediilor de programare si a softwarelor utilizate in crearea
aplicaiei...............................................................................................................................26
5.1. Limbajul HTML.......................................................................................................26
5.2. CSS (Cascading Style Sheets)..................................................................................29
5.3. Limbajul PHP...........................................................................................................30
5.4. Sistemul de baze de date MySQL............................................................................33
5.5. Serverul Apache........................................................................................................35
Capitolul 6 - Manual de utilizare al aplicaiei.....................................................................36
6.1. Modul Vizualizare.....................................................................................................36
6.2. Modulul Administrare...............................................................................................41
Concluzii..............................................................................................................................44
Bibliografie..........................................................................................................................45
Anexe - fragmente din codul surs......................................................................................47

-1-

Website informatii

Introducere

Aplicatie de gestiune a informatiilor, site de prezentare de stiri din diferite domenii, stiri
impartite pe categorii si subcvategorii. Vizitatorii pot vizualiza stirile si pot scrie comentarii
asupralor. Administratorul / administratorii pot gestiona toate entitatile - stiri, categorii,
subcategorii.

Capitolul 1 - Sistem informatic i baze de date

1.1. Sistem informatic (Si)


Sistem informatic (Si)
- sistem informational automatizat;
- ansamblu de echipamente (hardware), programe (software) i proceduri organizationale
(orgware) pentru prelucrarea informaiei.
Sistem informatic
- pentru asistarea deciziilor i sisteme expert (judecarea situatiilor concrete, putin structrate);
- pentru mamagement (marketing, planificare nevoi materiale, personal);
- pentru prelucrarea tranzactiilor (conturi, facturi, stocuri, foarte structurate).
Etapele ciclului de viata al sistemului informational: - proiectare, realizare, ntretinere i
mbunatatire.
Fise de date: colectie de nume, formata din toate aparitiile unui anumit tip de nregistrari
logice.

-2-

Website informatii
Baza de date: (BD) - colectie de aparitii ale mai multor tipuri de nregistrari logice, continnd
relatii ntre nregistrari agregate de date i date elementare.
Sistem de gestiune a bazei de date: (SGBD) - ansamblul de programe destinate crearii,
ntretinarrii i exploatarii unei baze de date.
Clasificare SGBD
- ierarhice (fiiere adnci, structuri arborescente);
- reticulare (fiiere adnci, structuri de tip retea, Conference on Data System Lauquages, cod
ASyL, 1971);
- rationale (fiiere plate, tabele, structuri de tip retea, Cod D 1970).
SGBDR: MS Access 2.0, dBase, FoxPro, Paradox, MS SQL, MySQL.
Arhitectura i funcionarea SGBD
A. Programul - apeleaza SGBD, indicnd numele din program al tipului datei i valoarea
cheii nregistrarii cerute.
B. SGBD - obtine subschema folosita de programul extern i examineaza descrierea datei;
- obtine schema i determina tipul logic al datelor necesare;
- examineaza descrierea fizica a bazei de date i determina nregistrarea fizica necesara;
- trimite o comanda ctre sistemul de operare (SO), cernd citirea nregistrarii fizice.
C. SO - interactioneaza cu dispozitivele de stocare a datelor;
- transfera datele cerute de la dispozitiv la zonele tampon ale SO.
D. SGBD - deduce prin subschema nregistrarea logica necesara i eventual, transforma
datele;
- transfera datele din zonele tampon n zona de lucru a programului;
- furnizeaza programului informatia de stocare asupra operarii (eventual indica eroarea).
E. Programul - opereaza asupra datelor, n zona sa de lucru.

-3-

Website informatii

1.2. Baza de date


Utilizatori din diverse domenii de activitate au resimtit nevoia sa mentina o evidenta a
informaiei. Bazele de date ofera mecanismul organizat de stocare, manipulare i extragere a
informaiei.
Acest lucru se realizeaza cu ajutorul tabelelor. Ca i n cazul tabelelor din Excel, tabelele
bazelor de date constau din linii i coloane. Fiecare coloana conine un atribut diferit, iar
fiecarei linii ii corespunde o inregistrare.
Sa ne imaginam, de exemplu, formarea unei baze de date, tabelara, ce conine nume de
persoane i numerele lor de telefon. Vom construi coloane denumite Nume, Prenume i
Nr. Telefon. Apoi, vom continua sa adaugam linii, una sub alta, care sa contina datele pe
care dorim sa le inregistram. Astfel, daca vom introduce datele de contact a circa 50 de elevi,
sa presupunem, vom obtine un tabel cu 50 de linii.
Modalitatea de identificare i extragere a inregistrarilor dintr-o baza de date se face prin
intermediul cheilor. Fiecare baza de date are una sau mai multe coloane definite a fi chei
primare sau chei simple, unica pentru fiecare tip de inregistrarea Bazei de Date.
De exemplu, sa presupunem ca tabelul Elevii Claselor a XII-a, conine datele de contact a
fiecarui elev al claselor a XII-a.. Va trebui sa selectam o cheie primara care sa identifice
fiecare elev. Aceasta cheie nu ar trebui sa fie numele elevului, deoarece exista posibilitatea ca
doi elevi sa aiba acelasi nume. O alegere mai buna ar fi numarul matricol sau Codul Numeric
Personal. Odata alegerea facuta,. baza de date va trebui informata asupra unicitatii acesteia,
iar fiecare incercare de a dubla cheia primara, nu va fi acceptata de sistem.
Exista Baze de Date capabile sa genereze propriile chei primare (ex. Microsoft Access).
O altfel de cheie folosita de baza de date este cheia compusa Aceasta este destinata sa
creeze o anume relatie intre tabele.

-4-

Website informatii
Spre exemplu, daca dorim sa adaugam la baza de date un tabel cu datele de contact ale tuturor
elevilor Colegiului National Matei Basarab (si denumit CNMB), dar i cu alte date (numele
cadrelor didactice, orar, programa scolara, etc), ar fi impropriu sa regasim aceeasi informaie
(date de contact elevi clasele a XII-a) n doua tabele.
n schimb, se poate crea o relatie intre cele doua tabele.
Sa presupunem ca tabelul CNMB foloseste n calitate de cheie primara o coloana cu
denumirea Profil clasa. Pentru a crea o relatie intre cele doua tabele, vom aduaga o noua
coloana n tabelul Elevii Claselor a XII-a, intitulata Profil, iar pe fiecare linie vom
inregistra profilul de invatamant al fiecarui elev de clasa a XII-a.
Astfel, coloana Profil din tabelul Elevii Claselor a XII-a va deveni cheie compusa n
relatia cu tabelul CNMB, informaie ce o vom aduce la cunostinta Bazei de Date, care va
asigura ca toate inregistrarile din coloana Profil, tabelul Elevi clasa a XII-a vor avea
corespondenta n tabelul CNMB
Modalitatea de interactionare cu baza de date
Cea mai raspandita modalitate de interactionare cu baza de date este un limbaj standard
denumit Structured Query Language (SQL). Comenzile SQL pot fi impartite n doua sublimbaje principale:
Data Definition Language (DDL) conine comenzi folosite pentru a crea sau distruge baza de
date sau obiecte din baza de date
Dupa ce structura Bazei de Date este definite de DDL, utilizatorii pot folosi, n continuare,
sub-limbajul Data Manipulation Language pentru a inregistra, extrage sau modifica datele din
continutul Bazei de Date.
n prezent, se folosesc, pe scara larga, interfete grafice (Graphical User Interface) care
simplifica mult administrarea Bazei de date dar familiarizarea cu limbajul SQL este esentiala,
aceasta reprezentand fundamentul Bazelor de Date.
n concluzie, baza de date prezint, n principal, urmtoarele avantaje:
- posibilitatea extragerii inregistrarilor ce corespund anumitor criterii
- actualizarea simultana a inregistrarilor
- interconectarea datelor din diferite tabele
- realizarea de calcule complexe

-5-

Website informatii

Capitolul 2 - Structura aplicaiei

2.1. Design si grafic


Site-ul este impartit astfel:
1. Partea de sus (header-ul), este alctuit din:
- imaginea-antet care este prezenta n toate paginile website-ului

- sumarul general

2. n stnga se afla categoriile

-6-

Website informatii
3. n partea din dreapta, opiunile utilizatorului de adaugare a site-ului la Favorites, setare site
ca Home Page si, eventual, diverse reclame.

4. n partea de jos, numele proprietarului website-ului i inchiderea site-ului din punct de


vedere al culorilor.

5. n interior, coninutul specific al fiecrei pagini.

-7-

Website informatii

2.2. Fiierele aplicatiei


Organizarea generala
Website-ul este structurat modular. Elementele grafice sunt asezate n site intr-un tabel cu un
rand i trei coloane. Deasupra tabelului se afla imaginea antet, iar n tabel:
- n coloana din stnga categoriile / subcategoriile
- n coloana din mijloc, continutul specific al paginii
- n coloana din dreapta, casuta de autentificare, opiunile utilizatorului daca acesta este logat,
casuta de cautare i opiuni pentru adaugarea paginii n lista de Favorites, respectiv de setare a
paginii ca Home Page.
Fiierele
index1.php
- conine partea de sus a fiecarei pagini (imaginea-antet), codul de deschidere a tabelului
folosit pentru design, deschiderea i inchiderea primei coloane (in care se afla sumarul) i
deschiderea celei de a doua coloane
index2.php
- conine inchiderea celei de a doua coloane, deschiderea i inchiderea coloanei a treia,
inchiderea tabelului.
Paginile sunt structurate astfel:
n partea de sus, includerea fiierului index1.php.
n mijloc, continutul.
n partea de jos, includerea fiierului index2.php.
De exemplu, pagina contact.php:
<?
$titlu_pagina = "Contact";
include ("index1.php");

-8-

Website informatii
?>

<?
include ("index2.php");
?>
Inainte de a fi inclus fiierul index1.php, este initializata variabila $titlu_pagina care conine
titlul paginii i care va fi afisata de index1.php. Aceasta organizare foloseste la afiarea titlului
fiecarei pagini n acelasi fel.

-9-

Website informatii

2.3. Descrierea functionalitatii fiierelor


Sumarul general
Start - fiierul index.php
Pagina de start. .
Opinii - formular1.php
Forma n care utilizatorul i introduce cateva date personale, precum i o intrebare sau o
opinie referitoare la site.
Contact - contact.php
Date referitoare la site, realizator, adresa, telefon, e-mail.

Fiierele incluse n index1.php (in partea stnga a site-ului)


index1datesite.php
Contine date despre site.
index1sumar.php
Afiseaza categoriile din baza de date.

Fiierele incluse n index2.php (in partea dreapta a site-ului)


index2login.php
Afiseaza forma de conectare i opiunile unui utilizator neconectat (creare cont nou i
trimitere parola n cazul n care acesta a uitat-o).
Daca utilizatorul este conectat, sunt afisate opiunile de modificare date i log out.
index2fav.php

- 10 -

Website informatii
Cod javascript pentru adaugarea paginii n lista de Favorites, respectiv de setare a paginii ca
Home Page.

Fiiere auxiliare
conectare_la_bd.php
Contine comenzile de conectare la server i baza de date.
data_curenta.php
Preia data curenta a sistemului n variabila $data_curenta.
favicon.ico
Imagine care apare n dreptul numelui site-ului cand acesta este adaugat n lista de Favorites.

animated_favicon1.gif
Fisierul iconita animata.
stil.css
Fiier tip css n care sunt setate opiunile de culoare ale textelor, linkurilor i controalelor din
site.

Fiiere de lucru cu stiri


stire_detalii.php
Afiseaza toate detaliile despre stire.

- 11 -

Website informatii

Fiiere de lucru cu conturi de utilizator


La creare cont
- se face un numar random care se scrie in coloana numar de validare si 0 la camp validat.
- se trimite e-mail la adresa introdusa de utilizator si un link. cand se da click pe link, se scrie
1 in campul validat.
user_creare1.php
Formularul pentru crearea contului.
user_creare2.php
Preia datele din user_creare1b.php, le verifica si, daca sunt corecte, le salveaza n baza de date
n tabela tbl_useri.
user_modificare1.php
Incarca datele contului pentru a fi vizualizate inainte de modificare.
user_modificare2.php
Preia datele din user_modificare1.php, le verifica si, daca sunt corecte, le salveaza n baza de
date.
user_trimitere_parola1.php
Utilizatorul introduce numele de utilizator.
user_trimitere_parola2.php
Preia datele introduse n user_trimitere_parola1.php, verifica daca exista date n baza cu
solicitarea dorita si, daca exista, trimite parola la adresa din baza de date.

- 12 -

Website informatii
Fisierele din modulul administrare
Acestea sunt accesibile numai de catre administratorii site-ului si folosesc acestora pentru a
actualiza datele.
Fiiere de lucru cu categorii
Au prefixul categ_. Contin opiuni de lucru cu categoriile: afiare, introducere, modificare,
tergere.

Fiiere de lucru cu subcategorii


Au prefixul subcateg_. Contin opiuni de lucru cu subcategoriile: afiare, introducere,
modificare, tergere.

Fiiere de lucru cu stiri


Au prefixul stire_. Contin opiuni de lucru cu stirile: afiare, introducere, modificare,
tergere.
Pentru a introduce o stire, trebuie inainte sa fi fost introduse n baza de date categoria.

Fiiere de lucru cu conturi de utilizator


Au prefixul user_. Contin opiuni de lucru cu utilizatori: afiare, introducere, modificare,
tergere.

Alte fiiere
login1.php

- 13 -

Website informatii
Afiseaza formularul de logare. Utilizatorul introduce datele de autentificare, apoi apasa
butonul de Login. Datele sunt trimise ctre fiierul login2.php.
login2.php
Preia datele introduse de utilizator n formularul de la login1.php, verifica daca exista n baza
de date combinatia user+parola introdusa si, daca da, afiseaza sumarul i salveaza id-ul
utilizatorului logat n sesiune.
index0sumar.php
Contine opiunile oferite de modulul de administrare. Este afisat daca utilizatorul s-a
autentificat cu succes.
index1.php i index2.php
Au roluri asemanatoare cu fiierele similare din modulul de vizitare, continand structura
superioare, respectiv inferioara a site-ului.

- 14 -

Website informatii

Capitolul 3 - Proiectarea Bazei de date

3.1. Relatiile intre tabele


Baza de date este alctuit din tabelele urmatoare:

Descriere tabele
tbstiri_categorii

Coloan

Tip

Nul Setare de baz Comentarii

id_categ

int(4)

Nu

nume_categ varchar(100) Nu
ordine

int(10)

Nu 100

- 15 -

Website informatii

tbstiri_comentarii

Coloan

Tip

Nul Setare de baz Comentarii

id_com

int(11)

Nu

id_user

int(11)

Nu 0

id_item

int(11)

Nu 0

comentariu longtext

Nu

vizibil

int(3)

Nu 0

ip

varchar(50) Nu

data_com datetime

Nu

tbstiri_itemi

Coloan

Tip

Nul Setare de baz Comentarii

id_item

int(10)

Nu

titlu

varchar(200) Nu

descriere

text

autor

varchar(100) Nu

id_categ

int(4)

Nu
Nu 0

id_subcateg1 int(4)

Nu

id_subcateg2 int(4)

Nu

id_sursa

int(4)

Da NULL

id_user

int(4)

Nu 0

cale_imagine varchar(100) Da NULL


data

date

Nu 2007-01-01

nota

int(10)

Nu 9

numar_note int(10)

Nu 1

tbstiri_subcategorii

- 16 -

Website informatii
Coloan

Tip

Nul Setare de baz Comentarii

id_subcateg

int(4)

Nu

nume_subcateg varchar(100) Nu
id_categ

int(4)

Nu

ordine

int(10)

Nu 50

tbstiri_useri

Coloan

Tip

Nul Setare de baz

id_user

int(11)

Nu

id_tip_user

int(11)

Nu 0

username

varchar(50) Nu

parola

varchar(50) Nu

numar_de_validare int(20)

Nu

validat

int(2)

Nu

numeprenume

varchar(100) Nu

email

varchar(50) Nu

telefon

varchar(50) Nu

datanasterii

date

Nu 2007-01-01

data_ultima_logare date

Nu 2007-01-01

data_ora_ultim_joc datetime

Nu 2007-01-01 00:00:00

jocuri_disputate

Nu 0

int(20)

tbstiri_useri_logari

Coloan

Tip

Nul Setare de baz Comentarii

id_ul

int(10)

Nu

username

varchar(50) Nu

data_logare date

Nu 2007-01-01

- 17 -

Comentarii

Website informatii

Capitolul 4 - Instalarea bazei de date pe sistem

4.1. Etapele instalarii


Baza de date se poate crea manual, cu ajutorul utilitarului PhpMyAdmin sau a altui utilitar de
gestiune a bazei sau se poate crea cu ajutorul comenzilor SQL. Prima varianta este mai usoara
in prima faza, dar, daca se doreste mutarea / copierea site-ului pe un alt server, a doua varianta
este singura folositoare.
Cele doua etape pentru instalarea bazei de date pe sistem sunt:
1. Crearea tabelelor
2. Introducerea datelor in baza
In continuare, sunt prezentate detaliat cele doua etape.

- 18 -

Website informatii

4.2. Crearea tabelelor cu ajutorul fisierului SQL


DROP TABLE IF EXISTS `tbstiri_categorii`;
CREATE TABLE IF NOT EXISTS `tbstiri_categorii` (
`id_categ` int(4) NOT NULL AUTO_INCREMENT,
`nume_categ` varchar(100) NOT NULL DEFAULT '',
`ordine` int(10) NOT NULL DEFAULT '100',
PRIMARY KEY (`id_categ`),
UNIQUE KEY `nume_categ` (`nume_categ`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
DROP TABLE IF EXISTS `tbstiri_comentarii`;
CREATE TABLE IF NOT EXISTS `tbstiri_comentarii` (
`id_com` int(11) NOT NULL AUTO_INCREMENT,
`id_user` int(11) NOT NULL DEFAULT '0',
`id_item` int(11) NOT NULL DEFAULT '0',
`comentariu` longtext NOT NULL,
`vizibil` int(3) NOT NULL DEFAULT '0',
`ip` varchar(50) NOT NULL DEFAULT '',
`data_com` datetime NOT NULL,
PRIMARY KEY (`id_com`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
DROP TABLE IF EXISTS `tbstiri_itemi`;
CREATE TABLE IF NOT EXISTS `tbstiri_itemi` (
`id_item` int(10) NOT NULL AUTO_INCREMENT,
`titlu` varchar(200) NOT NULL DEFAULT '',
`descriere` text NOT NULL,
`autor` varchar(100) NOT NULL DEFAULT '',
`id_categ` int(4) NOT NULL DEFAULT '0',
`id_subcateg1` int(4) NOT NULL,
`id_subcateg2` int(4) NOT NULL,

- 19 -

Website informatii
`id_sursa` int(4) DEFAULT NULL,
`id_user` int(4) NOT NULL DEFAULT '0',
`cale_imagine` varchar(100) DEFAULT NULL,
`data` date NOT NULL DEFAULT '2007-01-01',
`nota` int(10) NOT NULL DEFAULT '9',
`numar_note` int(10) NOT NULL DEFAULT '1',
PRIMARY KEY (`id_item`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
DROP TABLE IF EXISTS `tbstiri_subcategorii`;
CREATE TABLE IF NOT EXISTS `tbstiri_subcategorii` (
`id_subcateg` int(4) NOT NULL AUTO_INCREMENT,
`nume_subcateg` varchar(100) NOT NULL DEFAULT '',
`id_categ` int(4) NOT NULL DEFAULT '11',
`ordine` int(10) NOT NULL DEFAULT '50',
PRIMARY KEY (`id_subcateg`),
UNIQUE KEY `nume_subcateg` (`nume_subcateg`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
DROP TABLE IF EXISTS `tbstiri_useri`;
CREATE TABLE IF NOT EXISTS `tbstiri_useri` (
`id_user` int(11) NOT NULL AUTO_INCREMENT,
`id_tip_user` int(11) NOT NULL DEFAULT '0',
`username` varchar(50) NOT NULL DEFAULT '',
`parola` varchar(50) NOT NULL DEFAULT '',
`numar_de_validare` int(20) NOT NULL,
`validat` int(2) NOT NULL,
`numeprenume` varchar(100) NOT NULL DEFAULT '',
`email` varchar(50) NOT NULL DEFAULT '',
`telefon` varchar(50) NOT NULL DEFAULT '',
`datanasterii` date NOT NULL DEFAULT '2007-01-01',
`data_ultima_logare` date NOT NULL DEFAULT '2007-01-01',
`data_ora_ultim_joc` datetime NOT NULL DEFAULT '2007-01-01 00:00:00',
`jocuri_disputate` int(20) NOT NULL DEFAULT '0',

- 20 -

Website informatii
PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
DROP TABLE IF EXISTS `tbstiri_useri_logari`;
CREATE TABLE IF NOT EXISTS `tbstiri_useri_logari` (
`id_ul` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL DEFAULT '',
`data_logare` date NOT NULL DEFAULT '2007-01-01',
PRIMARY KEY (`id_ul`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

- 21 -

Website informatii

4.3. Introducerea datelor in baza cu ajutorul fisierului


SQL
INSERT INTO `tbstiri_categorii` (`id_categ`, `nume_categ`, `ordine`) VALUES
(1, 'Politic', 20),
(2, 'Social', 40),
(3, 'Economic', 60),
(4, 'Cultural', 80),
(5, 'Sport', 100);
INSERT INTO `tbstiri_useri` (`id_user`, `id_tip_user`, `username`, `parola`,
`numar_de_validare`, `validat`, `numeprenume`, `email`, `telefon`, `datanasterii`,
`data_ultima_logare`, `data_ora_ultim_joc`, `jocuri_disputate`) VALUES
(1, 1, 'Adrian', '12345', 0, 1, 'Adrian', 'adrian12@topmail.ro', '', '2007-01-01', '2007-01-01',
'2007-01-01 00:00:00', 0),
(2, 1, 'George', 'ladys15', 0, 1, 'George Ladys', 'george@ladys.ro', '', '2007-01-01', '2007-0101', '2007-01-01 00:00:00', 0);

- 22 -

Website informatii

4. 4. Conectarea la server si la baza de date


Initial este inclus fiierul conectare_la_bd.php, care conine datele i comenzile de conectare
la baza de date, precum i mesajele de eroare n cazul n care aceasta nu este efectuata cu
succes.
conectare_la_bd.php
<?
$nume_host = "hostname";
$nume_bd = "nume_bd";
$user_nume = "nume_user";
$user_parola = "qwert";
$conectare_la_server = mysql_connect ($nume_host, $user_nume, $user_parola);
if (!$conectare_la_server)
{
die('Eroare la conectarea la server: ' . mysql_error());
}
$conectare_la_bd = mysql_select_db ($nume_bd);
if (!$conectare_la_bd)
{
die ('Eroare la conectarea la baza de date: ' . mysql_error());
}
?>

n variabila $sql este construit sirul SQL care va extrage din baza datele dorite. Exemplu
$sql = "SELECT * FROM tbstiri_itemi INNER JOIN tbstiri_categorii
ON tbstiri_itemi.id_categ=tbstiri_categorii.id_categ";

- 23 -

Website informatii
Rularea sirului SQL construit se realizeaza cu comanda mysql_query, care trimite rezultatul
n variabila $rezultat.
$rezultat = mysql_query ($sql);
Este testat daca sirul SQL a fost rulat cu succes si, daca nu, este afisat un mesaj de eroare.
Altfel, cu ajutorul comenzii while ($row = mysql_fetch_array ($rezultat)) , sunt parcurse
randurile i afisate valorile din celule.

- 24 -

Website informatii

Capitolul 5 - Descrierea mediilor de programare si a softwarelor


utilizate in crearea aplicaiei
Website-ul este realizat folosind limbajele HTML i PHP i o baza de date MySQL, care este instalata
pe un server Apache.
Aceste tehnologii au avantajul ca sunt usor de utilizat i gestionat, respectiv sunt gratuite si, astfel, nu
necesita un cost suplimentar (pentru achizitionarea de licente) din partea firmei producatoare.

5.1. Limbajul HTML


Ce este HTML-ul?
Paginile pe internet sunt, de regula, realizate intr-un limbaj numit HTML - HyperText Mark-up
Language. Editarea acestora se poate face n orice program de editare texte, pornind chiar cu banalul
Notepad din Windows. Toate notiunile prezentate n acest ghid pot fi puse n practica utilizand
Notepad, astfel incat poti deschide Notepad acum.
HTML este prescurtarea HyperText Markup Language. HTML este cel mai popular limbaj a webului. Pagini i sit-uri web sunt scrise n HTML. Cu HTML i WWW, poti aduce n acelasi loc texte,
sunete, poze i link-uri. Documentele HTML pot fi compuse i editate pe orice tip de calculator.

Scrierea documentelor HTML


Dupa ce v-ati gasit un host pentru a va plasa site-ul sau pagina web, trebuie sa incepeti crearea
paginilor. Cand lucrezi cu HTML este foarte indicat de a avea 2 copii a documentului. O copie trebuie
sa fie pe spatiul alocat de host iar a doua pe hard-ul dumneavoastra, astfel problemele cu caderile de
curent, pierderea conexiunii la internet neafectand munca dumneavoastra. Se recomanda crearea unui
director pe hard disk pentru a pune n el documentele HTML, imaginile, sunetele care doriti sa apara
pe site.
Fiierul pe care il vom edita se va numi index.html. n general fiierul principal al unui site internet
(cel care se incarca atunci cand tastam o adresa de genul www.abc.abc) este numit index: index.html,
index.php, index.asp. Serverul poate fi configurat astfel incat prima pagina sa se numeasca default:
default.html sau default.php, etc.

- 25 -

Website informatii

Instructiunile pe care le folosim intr-o pagina HTML se numesc tag-uri i acestea indica browser-ului
(Netscape, Internet Explorer, etc) modul de prezentare a informaiei din pagina. Tag-urile se scriu intre
semnele < i >. Tag-urile nu trebuie scrise respectand reguli foarte stricte (nu e nevoie sa scrii numai
cate un tag pe rand sau sa foloseti numai litere mari, etc).

Structura documentelor HTML


Documentele HTML sunt fiiere ce contin texte i care primesc extensia .htm, .html, .shtml.
Documentele HTML au doua parti, "head"-ul i "body"-ul. "Body" este partea mai mare a
documentului n care se va gasi continutul paginii."Head"-ul unui document conine titlul acelui
document i o scurta descriere.

Structura unui document HTML (exemplu):


<html>
<head>
<title>Titlul paginii</title>
</head>
<body>
Continutul paginii
</body>
</html>
Pentru a intelege mai bine i usura munca, poti lasa spatii intre liniile documentului. Spatiile libere vor
fi ignorate de ctre browser n momentul interpretarii.

Tot ceea ce se gaseste intre tagurile title va fi titlul documentului, acesta va aprea n momentul
vizionarii documentului n susul paginii n bara pentru titlu (in stnga butoanelor de
minimalizare/maximalizare/inchidere ale paginii).

WWW = World Wide Web

- 26 -

Website informatii
De unde vine denumirea de www?
- WWW inseamna World wide web adica o retea de computere raspandita n lumea intreaga ce sunt
colegate intre ele.
HTTP-WEB?
- Toate calculatoarele folosesc un standard de comunicare intre ele numit HTTP(Hyper Text Transfer
protocol).
Ce inseamna HTTP sau cum funcioneaza acest standard?
- n traducere hyper text transfer protocol ar insemna un text care te duce la alt text sau un text care
sare la alt text ceea ce se i intimpla cand navigam pe web.
Ce insemna o pagina web?
- Intr-o pagina web sunt stocate informatii care pot fi vizualizate pe ecranaul calculatorului la o
anumita adresa web.
Cum se poate vizualiza o pagina web?
-O pagina web poate fi vizualizata cu ajutorul unui softwear numit Web browser cel mai cunoscut
fiind Internet Explorer dar ar mai fi i altele ca Opera, Netscape, Mozilla etc..
Unde sunt stocate paginile web?
-Paginile web sunt stocate pe un calculator numit Web server. Calculatoarele care vizualizeaza o
pagina web se numesc Web clients.
Cum ia Browser-ul o pagina de pe un Web Server?
-Browser-ul isi pagina dorita printr-o cerere care este un standard http.Cererea conine adresa paginii
respective (de exemplu:http://www.nume.com/opagina.html)
Cine stabileste standardul web?
-Standardul web este stabilit de consortiul W3C sau mai bine zis World Wide Web Consortium care
dicteaza specificatiile pentru web.
Standarde web sunt HTML, CSS, XML ultimul aparut ar fi XHTML 1.0.

- 27 -

Website informatii

5.2. CSS (Cascading Style Sheets)


CSS, prescurtarea de la Cascading Style Sheets, sunt etichete folosite pentru formatarea paginilor web
(de exemplu formatare text, background sau aranjare n pagina, etc.).
Beneficiile sintaxei CSS sunt:
- formatarea este introdusa intr-un singur loc pentru tot documentul
- editarea rapida a etichetelor
- datorita introducerii intr-un singur loc a etichetelor se obtine o micsorare a codului paginii, implicit
incarcarea mai rapida a acesteia
Sintaxa CSS este structurata pe trei nivele:
nivelul 1 fiind proprietatile etichetelor din documentul HTML, tip inline
nivelul 2 este informatia introdusa n blocul HEAD, tip embedded
nivelul 3 este reprezentat de comenzile aflate n pagini separate, tip externe
Cea mai mare importanta (suprascrie orice alt parametru) o are sintaxa de nivelul 1 iar cea mai mica
importanta o are cea de nivelul 3.
Folosirea unui fiier extern sau nivel 3 care sa contina comenzi CSS este foarte practic deoarece poate
fi utilizat n mai multe situatii (mai multe fiiere HTML pot folosi acelasi fiier extern CSS) eliminand
timpul necesar introducerii codului corespunzator n fiecare pagina i totodata editarea lor intr-un
singur loc pentru mai multe fiiere.
Extensia acestor fiiere este .css.

Legatura paginilor HTML cu fiierele extene CSS se face prin introducerea urmtoarei linii:
<link rel="stylesheet" type="text/css" href="fiier_css.css">
Atributele indica urmtoarele: rel - fiierul este tip styleshhet
type - tip text ce conine comenzi CSS
href - fiierul sau adresa fiierului CSS.

- 28 -

Website informatii

5.3. Limbajul PHP


PHP este abrevierea de la PHP Hypertext Preprocessor (similar cu GNU ce reprezinta abrevierea de
la GNUs Not Unix).
PHP este un limbaj de programare pentru creerea site urilor dinamice i interactive i a fost introdus
de Rasmus Lerdorf n 1994. De atunci PHP a suferit numeroase schimbari.
n termeni tehnici PHP4 este un limbaj tip script, cross platform, HTML embedded i server side.
Cross platform puteti rula PHP pe sisteme de operare diferite, n majoritatea cazurilor fara
modificari.
HTML embedded codul PHP este o mixtura de instructiuni PHP i cod HTML.
Server side programele scrise n PHP ruleaza pe un server (in general un Web Server cum ar fi
Apache, IIS, etc..).
PHP4 este ultima implementare stabila de PHP i ea ruleaza pe serverele unui numr mare de ISP, ceea
ce inseamna ca odata ce scrieti o aplicaie n PHP4, o puteti cu usurinta gazdui pe Web.

Scrierea programelor PHP


Programele PHP sunt o mixtura de trei elemente : text, cod HTML i script PHP.
Pentru ca paginile ce contin script PHP sa poata fi procesate de modulul PHP implementat n Apache
sau alt server de pagini Web este necesar ca paginile sa aiba acea extensie pe care ati specificat-o la
incarcarea modulului n serverul de web (standard, extensia implicita este .php).

Cum funcioneaza codul ?


Fiierul program1.php este trimis modulului de php incarcat n serverul de web. Modulul prelucreaza
NUMAI ce se afla intre tagurile <?php i ?> restul fiind trimis ctre serverul web fara a fi prelucrat
sau interpretat.
Rezultatul prelucrarii este i el trimis serverului de web care rimite mai departe ctre client (browser).

- 29 -

Website informatii
Comanda echo este folosita pentru trimiterea ctre serverul de web a textului inscris intre cele doua
ghilimele.
Fiecare linie de cod PHP (dupa terminare) trebuie inchisa de semnul punct-si-virgula (;).

Limbajul PHP
Variabila reprezinta un identificator la o locatie de memorie i se foloseste pentru stocarea,
prelucrarea i tergerea datelor.
Variabilele n PHP sunt apelate folosind prefixul $.
Ex: $nume=Teodor;
Dupa ce am initializat o variabila atribuindu-i o valoare putem folosi acea variabila.
Ex: print $nume;

Limitari i reguli ale variabilelor


n multe limbaje de programare exista o limitare a numarului de caractere din numele variabilei (intre
255-1000 caractere).
n PHP nu exista astfel de limitari.
O regula a variabilelor este ca ele trebuie sa inceapa cu o litera sau cu un underscore (dupa prefixul
$).
O alta regula este ca n corpul numelui variabilei sunt acceptate litere, numere i underscore, simboluri
precum +,-,* i & nefiind admise.
Variabilele n PHP sunt case-sensitive, adica $student este diferit de $Student .

Tipuri de date n PHP


PHP cuprinde mai multe tipuri de variabile, dintre care cele mai importante sunt cele ce contin valori
de tip text i numeric.
- string (text)
- integer (numeric)
- double (numeric)
- array
- object

- 30 -

Website informatii

Tipurile de date nu sunt stabilite de programator; PHP decide asupra lor atunci cand interpreteaza
codul.
Tipul de data string tot ce este cuprins intre ghilimele la initializare se considera string (chiar i
numerele).
Ex : $nume=Ionescu;
$nr=5;
Date de tip numeric
n PHP exista 2 tipuri de date numerice : integer i double.
Integer sunt numere fari virgula, n timp ce double reprezinta numere cu zecimale.

Constante
O variabila i poate modifica continutul de mai multe ori pe parcursul unui program. Daca dorim ca o
locatie de memorie sa nu poata fi schimbata pe parcursul unui program putem folosi instructiunea
define.
Ex: define(PI,3.1416);
Constantele sunt scrise prin conventie cu MAJUSCULE.
Constantele se pot afisa avand grija sa nu folositi semnul $.

- 31 -

Website informatii

5.4. Sistemul de baze de date MySQL


De ce MySQL?
Dac suntei n cutarea unui sistem gratuit sau necostisitor de gestiune a bazelor de date, putei alege
din mai multe opiuni: MySQL, mSQL, Postgres, unul din motoarele gratuite (dar fr suport)
furnizate de productorii comerciali i aa mai departe. Cnd comparai MySQL cu alte sisteme de
baze de date, gndii-v la ceea ce este cel mai important pentru dumneavoastr. Performan, suport,
caracteristici (conformant cu SQL, extensii etc.), condiii i restricii de liceniere, pre; toate acestea
constituie factori care trebuie luai n considerare. Date fiind aceste consideraii, MySQL are de oferit
numeroase caracteristici atractive:
Vitez. MySQL este rapid.
Programatorii pretind c MySQL este cel mai rapid sistem de baze de date pe care l putei gsi. Putei
verifica aceast afirmaie vizitnd http://www.mysql.com/benchmark.html , o pagin de comparaie a
performanelor.
Uurin n utilizare.
MySQL este un sistem de baze de date cu performane ridicate, dar relativ simplu, a crui configurare
i administrare sunt mult mai simple dect n cazul sistemelor mai mari.
Cost zero. MySQL este gratuit pentru majoritatea utilizrilor interne.
MySQL nu este un produs Open Source, dar, n general, poate fi folosit gratuit. Trebuie s consultai
manualul de referin MySQL pentru detalii privind licena, dar principiile de baz sunt urmtoarele:
- Programele client i biblioteca de programare a clienilor sunt gratuite, pe toate platformele.
- Pentru UNIX i alte platforme non-Windows, serverul MySQL poate fi folosit gratuit, cu excepia
situaiilor cnd dorii s vindei serverul sau alte programe sau servicii care impun utilizarea acestuia,
n aceast situaie, trebuie s obinei licen pentru server. Ideea este c, dac obinei un profit din
MySQL, este normal ca dezvoltatorii sistemului s primeasc o parte din acesta. (200 de dolari este o
nimica toat pentru un specialist SGBDR care v ajut s obinei un profit i exist o mulime de
programe gratuite pe care vi le putei procura pentru a folosi eficient sistemul.)
- Versiunea Windows a serverului MySQL impune obinerea unei licene.
- Versiunile mai vechi de MySQL sunt disponibile n condiiile licenei publice GNU (GPL) i pot fi
folosite n orice scopuri, fr nici o plat. MySQL 3.20.32a este disponibil n condiiile GPL.

- 32 -

Website informatii
Suport pentru limbaje de interogare.
MySQL nelege SQL (Structured Query Language - limbaj de interogare structurat), limbajul preferat
al tuturor sistemelor moderne de baze de date. De asemenea, putei avea acces la MySQL folosind
aplicaii care accept ODBC (Open Database Connectivity), un protocol de comunicaie cu bazele de
date creat de Microsoft.
La server se pot conecta mai muli clieni simultan.
Clienii pot folosi mai multe baze de date simultan. Putei obine acces la MySQL n mod interactiv,
folosind numeroase interfee care v permit s introducei interogri i s vizualizai rezultate: clieni
n linie de comand, browsere Web sau clieni X Window System. De asemenea, este disponibil o
varietate de interfee de programare pentru limbaje precum C, Perl, Java, PHP i Python. Astfel, avei
opiunea de a folosi programe client preambalate sau de a v scrie propriile programe client pentru
aplicaii personalizate.
Conectivitate i securitate.
MySQL poate fi folosit integral n reele, iar bazele de date sunt accesibile de oriunde din Internet,
deci v putei partaja datele cu oricine, oriunde. Dar MySQL are controlul accesului, astfel nct
persoanele care nu au dreptul s v citeasc datele nu vor avea aceast posibilitate.
Portabilitate.
MySQL ruleaz pe numeroase varieti de UNIX, precum i pe alte sisteme non-UNIX, ca Windows i
OS/2. MySQL ruleaz pe echipamente de la calculatoare de birou la servere cu performane ridicate.
Distribuie liber.
MySQL este uor de obinut; pentru aceasta, folosii-v browserul de Web. Dac nu nelegei
funcionarea unei componente sau suntei curios cu privire la un algoritm, v putei procura codul
surs i l putei examina. Dac nu v place modul de funcionare a unei componente, l putei
modifica.

- 33 -

Website informatii

5.5. Serverul Apache


Apache este un server HTTP cu structura publica (open-source) utilizat pentru a administra un site
web, care permite rularea fiierelor html, php, asp daca este configurat corect.
Apache numele provine de la a patchy server, fiind un server modular.
Apache este un puternic open source web server dezvoltat de ctre Apache Group. Acesta ruleza pe
sitemele de operare Unix, Linux, sau Windows; este o aplicaie ca o derivare a originalului server de
web NCSA dezvoltat de Universitate Illinois din Urbana-Champaigne. Apache este cel mai polpular
server web de pe internet i mult mai puternic decat Internet Information Server al firmei Microsoft,
cel mai apropiat competitor.
Apache este cel mai popular server web din 1996, proiectul Apache doreste sa dezvolte i sa mentina
un server HTTP open source pentru diferite sisteme de operare (linux,windows). Scopul acestui
acestui proiect este sa furnizeze un server sigur, eficient i extensibil.

- 34 -

Website informatii

Capitolul 6 - Manual de utilizare al aplicaiei

6.1. Modul Vizualizare


Este public pentru oricine
- sus, antetul site-ului
- in stanga sus, categoriile
- in stanga jos, subcategoriile
- in mijloc, stirile. Se da click si se deschide stirea completa
- in dreapta, casuta de logare si alte optiuni

- 35 -

Website informatii
Vizitatorul poate vizualiza i afla informatii despre produse, dar pentru a comenta, trebuie sa i creeze
un cont.
Creare cont

Dupa introducerea datelor, se da click pe butonul Creare cont nou.


Pasul urmator: Verificarea datelor introduse i crearea contului daca datele sunt valide.
Sunt verificate daca au fost introduse numele de utilizator i parola, iar la utilizator se face verificarea
ca acesta sa nu existe deja n baza de date. Daca datele sunt corecte, sunt salvate n baza de date.

Dupa crearea contului, utilizatorul trebuie sa se autentifice.

n locul casutelor de logare din dreapta apar opiunile utilizatorului conectat.

- 36 -

Website informatii

n stnga sunt afisate categoriile

In centru sunt afisate stirile:

Observatie: Optiunea de modificare apare daca este conectat un administrator.


Daca se da click pe "Continuare", se afiseaza stirea in detaliu.

- 37 -

Website informatii

Vizitatorul poate transmite opiniile proprii folosind formularul aferent.

- 38 -

Website informatii

- 39 -

Website informatii

6.2. Modulul Administrare


Functionalitati
- introducere, modificare, stergere, afisare stiri
- introducere, modificare, stergere, afisare categorii
- introducere, modificare, stergere, afisare subcategorii
Conturile de administrator sunt create de programator direct n MySQL.
Administratorul acceseaza pagina de login, unde introduce numele de utilizator i parola.

Daca datele sunt corecte, se afiseaza sumarul modului Administrare.

Iniial, nainte de introducerea de stiri, administratorul trebuie s introduc categoriile si


subcategoriile, ultimele nefiind, insa, obligatorii.
Introducere categorie

- 40 -

Website informatii
Campul ordine este folosit pentru a afisa pe site categoriile intr-o anumita ordine (aleasa de
administrator).

Introducere subcategorie

Introducere stire

- 41 -

Website informatii

Afisare / modificare / stergere categorii

Afisare / modificare / stergere stiri

- 42 -

Website informatii

Concluzii

Aplicatia ajuta la prezentarea stirilor unei mase mult mai mari de consumatori decat presa traditionala.
De asemenea, prezentarea este vizibila 24 de ore pe zi, n orice moment datele putand fi vazute.
Gestiunea este, de asemenea, usoara. Toate operatiile sunt usor de realizat si nu sunt consumatoare de
timp.
Pretul realizarii este mult mai mic, ulterior fiind necesare numai costuri de intretinere, de asemenea
reduse ca marime.
n concluzie finala, aplicatia ofera facilitati de care nu se poate sa nu se beneficieze intr-un prezent al
vitezei.

- 43 -

Website informatii

Bibliografie

Adrian Trac, Georgeta Manafu - Bazele programarii - Editura Arves, Craiova 2006
Florin Radulescu - Note de curs: Baze de date - Bucuresti 2007
Larry Ullman - PHP i MySQL pentru site-uri WEB dinamice - Editura Teora, Bucuresti 2005
L.Welling, L. Thomson - Dezvoltarea aplicaiilor WEB cu PHP i MySQL, Editia a II-a - Editura
Teora, Bucuresti 2004
Steven Holzner - Initiere n PHP 5 - Editura Teora, Bucuresti 2006
Larry Ullman - PHP i MySQL pentru site-uri WEB dinamice - Editura Teora, Bucuresti 2004
Larry Ulman - PHP pentru World Wide Web, n imagini - Editura Teora, Bucuresti 2006
Julie C. Meloni - PHP, MySQL i Apache - Editura Teora, Bucuresti 2006
Cristian Darie, Mihai Bucica - PHP5 i MySQL pentru comert electronic - Editura Teora, Bucuresti
2005
Charles Aulds - Administrarea serverului Apache - seria Linux - Editura Teora, Bucuresti 2005
John V. Petersen - Baze de date pentru ncepatori - Editura Teora, Bucuresti 2006
Microsoft Press - Microsoft FrontPage 2000, curs rapid - Editura Teora, Bucuresti 2001
Traian Anghel - Programarea n PHP. Ghid practic - Editura Polirom 2005
Traian Anghel - Dezvoltarea aplicaiilor WEB folosind XHTML, PHP i MySQL
Editura Polirom 2005
Julie C. Meloni - Invata singur Php, MySql i Apache - Editura Corint 2005

- 44 -

Website informatii

Dorin Iordache PHP, programare dinamica - Editura Cartea Universitara 2002


Preston Gralla - Cum funcioneaza ... Internetul - Editura ALL 2004
Karlins David - Macromedia Dreamweaver MX - Editura ALL 2004
Rzvan Daniel Zota - Reele de calculatoare n era Internet - Editura Economica 2005
John R. Levine,Carol Baroudi,Margaret Levine Young - Internet pentru ....amici! - Editura Tehnica
2001
Gabriela Grosseck - Marketing i comunicare pe Internet - Editura Lumen 2006

- 45 -

Website informatii

Anexe - fragmente din codul surs

index1.php
<? session_start(); ?>
<? include("index1datesite.php"); ?>
<? include("indexfc.php"); ?>
<? include("data_curenta.php"); ?>
<?
$id_categ = 1;
$nume_categ = "Website stiri, noutati";
if ($_GET['id_categ'] != "")
$id_categ = intval($_GET['id_categ']);
if ($_GET['nume_categ'] != "")
$nume_categ = $_GET['nume_categ'];
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="ro"/>
<title><? print $titlu_site . " - " . $titlu_pagina; ?></title>
<? $description = "Website stiri, noutati"; ?>
<? $keywords = "Website stiri, noutati"; ?>
<? $description = substr($description . ". " . $titlu_pagina, 0, 160); ?>
<meta name="description" content="<? print $description; ?>">
<meta name="keywords" content="<? print $keywords . "," . $titlu_pagina; ?>">
<!-- <? print $description . ". " . $titlu_pagina; ?> -->
<!-- <? print $keywords . ". " . $titlu_pagina; ?> -->
<meta name="robots" content="all">
<meta name="language" content="RO">

- 46 -

Website informatii
<meta name="REVISIT-AFTER" content="7 DAYS">
<link rel="stylesheet" type="text/css" href="stil.css">
<link rel="stylesheet" type="text/css" href="stil_butoane.css">
<link rel="shortcut icon" href="favicon.ico">
<link rel="icon" type="image/gif" href="animated_favicon1.gif">
</head>
<body>
<div align="center">
<table width="970" border="0" bordercolor="#808080" cellpadding="2" cellspacing="0">
<tr>
<td align='left'>
<img src="img/titlu.jpg" alt="<? print $titlu_site . " " . $titlu_pagina; ?>">
</td>
</tr>
</table>
</div>
<? include("index0sumar.php"); ?>
<div align='center'>
<table border='0' width='970' cellpadding='2' cellspacing='0'>
<tr>
<td width='200' valign='top'>
<? include("index1sumar.php"); ?>
</td>
<td width='570' valign='top'>
<br>
<div align="center">
<h1>
<? print ucfirst($titlu_pagina); ?>
</h1>
</div>

- 47 -

Website informatii

index2.php
</td>
<td width='200' valign='top'>
<? include("index2login.php"); ?>
<? include("index2fav.php"); ?>
</td>
</tr>
</table>
</div>

<div align="center">
<table background="img/linie.gif" width="970" border="0" cellpadding="2"
cellspacing="0">
<tr>
<td align='left'>
<p align="center">
<? print "<a href='" . $adresa_site . "' class='buttons'><b>&copy; " . $titlu_site .
"</b></a>"; ?>
</p>
</td>
</tr>
</table>
</div>
</body>
</html>

index1sumar.php
<div align="center">

- 48 -

Website informatii
<b>Stiri, noutati</b><br>
</div>
<?
include("conectare_la_bd.php");
$sql = "SELECT * FROM tbstiri_categorii ORDER BY ordine, nume_categ";
// print $sql . "<br>";
if (is_sir_sql_valid($sql) == 0) { include("index2.php"); die(); } $rezultat =
mysql_query($sql) or die("Eroare!");
$nr = mysql_num_rows($rezultat);
if ($nr == 0)
print "Nu exista date in baza! <br>";
else
{
while ($row = mysql_fetch_array($rezultat))
{
$id_categ = $row['id_categ'];
$nume_categ = ucfirst(trim($row['nume_categ']));
$adresa_imagine = "imgcateg/" . $id_categ . ".jpg";
if (!file_exists($adresa_imagine))
$adresa_imagine = "img/imagine_lipsa.jpg";
print "<a href='" . $adresa_site . "index.php?
id_categ=$id_categ&nume_categ=Stiri $nume_categ' title='" . $nume_categ . "'
class='buttons'>";
print "<img src='" . $adresa_imagine . "' height='15' border='0' alt='"
. $nume_categ . "'> ";
print "<b>" . $nume_categ . "</b></a><br>";
}
}
?>
<?
include("conectare_la_bd.php");

- 49 -

Website informatii
$sql = "SELECT * FROM tbstiri_subcategorii INNER JOIN tbstiri_categorii
ON tbstiri_subcategorii.id_categ=tbstiri_categorii.id_categ
ORDER BY tbstiri_categorii.ordine, tbstiri_subcategorii.ordine";
// print $sql . "<br>";
if (is_sir_sql_valid($sql) == 0) { include("index2.php"); die(); } $rezultat =
mysql_query($sql) or die("Eroare!");
$nr = mysql_num_rows($rezultat);
if ($nr > 0)
{
print "<b>Stiri subcategorii</b><br>";
$nume_categ_curenta = "";
while ($row = mysql_fetch_array($rezultat))
{
$id_subcateg = intval($row['id_subcateg']);
$nume_subcateg = ucfirst($row['nume_subcateg']);
$id_categ = $row['id_categ'];
$nume_categ = ucfirst(trim($row['nume_categ']));
if ($nume_categ_curenta != $nume_categ)
{
$nume_categ_curenta = $nume_categ;
print "<br><b>" . $nume_categ . "</b><br>";
}
$adresa_imagine = "imgsubcateg/" . $id_subcateg . ".jpg";
if (!file_exists($adresa_imagine))
$adresa_imagine = "img/imagine_lipsa.jpg";
print "<a href='" . $adresa_site . "index.php?
id_subcateg=$id_subcateg&nume_subcateg=Stiri $nume_subcateg' title='" .
$nume_subcateg . "' class='buttons'>";
print "<img src='" . $adresa_imagine . "' height='15' border='0' alt='"
. $nume_subcateg . "'> ";
print "<b>" . $nume_subcateg . "</b></a><br>";

- 50 -

Website informatii
}
}
?>

index0sumar.php
<div align="center">
<table background="img/linie.gif" width="970" border="0" cellpadding="2"
cellspacing="0">
<tr>
<td align='center'>
<a href="<? print $adresa_site; ?>" title="<? print ucfirst($titlu_site); ?>"
class="buttons">Start</a>
</td>
<td align='center'>
<a href="formular1.php" class="buttons">Opinii</a>
</td>
<td align='center'>
<a href="contact.php" class="buttons">Contact</a>
</td>
</tr>
</table>
</div>

index.php
<?
$id_categ = 1;
if ($_GET['id_categ'] != "")
$id_categ = intval($_GET['id_categ']);
$titlu_pagina = "Stiri ";

- 51 -

Website informatii

if ($_GET['titlu_pagina'] != "")
$titlu_pagina = $_GET['titlu_pagina'];
if ($_GET['nume_categ'] != "")
$titlu_pagina = $_GET['nume_categ'];
else
$titlu_pagina .= $_GET['id_categ'];
if ($_GET['autor'] != "")
$titlu_pagina .= " autor " . $_GET['autor'];
if ($_GET['nume_subcateg'] != "")
$titlu_pagina = $_GET['nume_subcateg'];
else
$titlu_pagina .= $_GET['id_subcateg'];
$titlu_pagina_fara_nrpag = $titlu_pagina;
if ($_GET['numar_pagina'] != "")
$titlu_pagina .= " Pagina " . $_GET['numar_pagina'];
include("index1.php");
$titlu_pagina = $titlu_pagina_fara_nrpag;
?>
<?
$adresa_imagine = "";
$id_categ = 1;
if ($_GET['id_categ'] != "")
{
$id_categ = intval($_GET['id_categ']);
$adresa_imagine_temp = "imgcateg/" . $id_categ . ".jpg";
if (file_exists($adresa_imagine_temp))
$adresa_imagine = $adresa_imagine_temp;
}

- 52 -

Website informatii

$id_subcateg = 1;
if ($_GET['id_subcateg'] != "")
{
$id_subcateg = intval($_GET['id_subcateg']);
$adresa_imagine_temp = "imgsubcateg/" . $id_subcateg . ".jpg";
if (file_exists($adresa_imagine_temp))
$adresa_imagine = $adresa_imagine_temp;
}
if ($adresa_imagine != "")
{
print "<p align='center'>";
print "<a href='" . $adresa_imagine . "' target='_blank' title='Imagine " .
$titlu_pagina . "'>";
print "<img src='" . $adresa_imagine . "' alt='" . $titlu_pagina . "' height='200'
border='0'></a>";
print "</p>";
}
include("conectare_la_bd.php");
$sql = "SELECT *
FROM tbstiri_itemi INNER JOIN tbstiri_categorii
ON tbstiri_itemi.id_categ=tbstiri_categorii.id_categ
WHERE data<='" . $data_curenta . "'";
if ($_GET['id_categ'] != "")
$sql .= " AND tbstiri_itemi.id_categ=" . $id_categ;
if ($_GET['autor'] != "")
$sql .= " AND autor='" . $_GET['autor'] . "'";
if ($_GET['id_subcateg'] != "")
$sql .= " AND tbstiri_itemi.id_subcateg1=" . $id_subcateg . " OR
tbstiri_itemi.id_subcateg2=" . $id_subcateg;
$sql .= " ORDER BY data DESC, id_item DESC ";

- 53 -

Website informatii
// print $sql . "<br>";

// COD PENTRU PAGINARE


// 3. PASTRARE IN sau PRELUARE DIN SESIUNE a SIRULUI DE CAUTARE (mai putin
LIMIT, adica numarul paginii de afisat)
include("conectare_la_bd.php");
$cpp = 10; // $cpp inseamna cate pe pagina
$numar_pagina = $_GET['numar_pagina'];
if ($numar_pagina == 0)
{
$numar_pagina = 1;
if (is_sir_sql_valid($sql) == 0) { include("index2.php"); die(); } $rezultat =
mysql_query($sql) or die("Eroare!");
$total_itemi = mysql_num_rows($rezultat);
$_SESSION['sir_cautare'] = $sql;
$i=1;
}
else
{
$sql = $_SESSION['sir_cautare'];
if (is_sir_sql_valid($sql) == 0) { include("index2.php"); die(); } $rezultat =
mysql_query($sql) or die("Eroare!");
$total_itemi = mysql_num_rows($rezultat);
}
$i = $numar_pagina * $cpp - $cpp;
$sql .= " LIMIT $i, $cpp";
// COD PENTRU PAGINARE
// print $sql . "<br>";
if (is_sir_sql_valid($sql) == 0) { include("index2.php"); die(); } $rezultat =
mysql_query($sql) or die("Eroare!");
$nr = mysql_num_rows($rezultat);
if ($nr == 0)

- 54 -

Website informatii
print "Nu exista date in baza! <br>";
else
{
while ($row = mysql_fetch_array($rezultat))
{
$id_item = $row['id_item'];
$titlu = ucfirst(trim($row['titlu']));
$descriere = ucfirst(trim($row['descriere']));
$autor = ucwords(trim($row['autor']));
$id_categ = $row['id_categ'];
$nume_categ = ucfirst(trim($row['nume_categ']));
$id_subcateg = intval($row['id_subcateg1']);
$data = $row['data'];
$zi = substr($data, 8, 2);
$luna = substr($data, 5, 2);
if ($titlu == strtoupper($titlu))
$titlu = strtolower($titlu);
$titlu = ucfirst($titlu);
$descriere = formatare_text($descriere);
print "<table border='0'>";
print "<tr><td valign='top'>";
// stabilire imagine de afisat
$adresa_imagine = "img/imagine_lipsa.jpg";
$adresa_imagine_temp = "imgcateg/" . $id_categ . ".jpg";
if (file_exists($adresa_imagine_temp))
$adresa_imagine = $adresa_imagine_temp;
$adresa_imagine_temp = "imgstiri/" . $id_item . ".jpg";
if (file_exists($adresa_imagine_temp))
$adresa_imagine = $adresa_imagine_temp;

- 55 -

Website informatii
else
if ($id_subcateg != 0 && $_GET['id_subcateg'] == "")
{
$adresa_imagine_temp = "imgsubcateg/" . $id_subcateg . ".jpg";
if (file_exists($adresa_imagine_temp))
$adresa_imagine = $adresa_imagine_temp;
}
if (file_exists($adresa_imagine))
{
print "<a href='" . $adresa_imagine . "' target='_blank' title='Imagine
" . $titlu_pagina . "'>";
print "<img src='" . $adresa_imagine . "' alt='" . $titlu_pagina . "'
height='100' border='0'></a>";
}
// stabilire imagine de afisat
print "</td><td valign='top'>";
print "<b><i>" . $zi . "-" . $luna . "</i></b>: ";
print "<b>" . $titlu . "</b><br>";
if ($_SESSION['id_tip_user_logat'] == 1) // daca e logat un admin
print "<a href='admin/stiri_modificare1.php?id_item=" . $id_item . "'
target='_blank'>Modificare</a><br>";
print substr($descriere,0,250);
print " <a href='stire_detalii.php?id_item=" . $id_item . "&titlu=" . $titlu .
"'>... [ continuare ]</a><br>";
print "Din categoria <a href='index.php?id_categ=" . $id_categ .
"&nume_categ=Stiri $nume_categ'>Stiri " . $nume_categ . "</a>";
if ($id_subcateg != 0 && $_GET['id_subcateg'] == "")
{
$sql2 = "SELECT * FROM tbstiri_subcategorii WHERE
id_subcateg=" . $id_subcateg . " LIMIT 0,1";
$rezultat2 = mysql_query($sql2) or die("Eroare!");
$nr2 = mysql_num_rows($rezultat2);
if ($nr2 > 0)

- 56 -

Website informatii
{
$row2 = mysql_fetch_array($rezultat2);
$nume_subcateg = ucfirst(trim($row2['nume_subcateg']));
print " - <a href='index.php?id_subcateg=" . $id_subcateg .
"&nume_subcateg=Stiri $nume_subcateg'>Stiri " . $nume_subcateg . "</a>";
}
}
print "</td></tr>";
print "<tr><td colspan='2'>";
print "<hr>";
print "</td></tr>";
print "</table>";
}
}

// COD PENTRU PAGINARE


$pagina_curenta_php = $_SERVER['PHP_SELF'];
print "Pagina curenta: <b>". $numar_pagina . "</b> / ";
$total_pagini = (int) (1 + ($total_itemi-1) / $cpp);
// print "Total pagini: " . $total_pagini . "<br>";
print "Total stiri " . $nume_categ_curenta . ": " . $total_itemi . "<br>";
print "Navigare la pagina: ";
for ($j=1; $j<=$total_pagini; $j++)
{
print "<a href='$pagina_curenta_php?titlu_pagina=$titlu_pagina&numar_pagina=" . $j
. "'>&nbsp;";
if ($j == $numar_pagina)
print "<b>[ " . $j . " ]</b>";
else
print $j;
print "&nbsp;</a> ";
}
print "<br>";

- 57 -

Website informatii

// linkuri pagina precedenta / pagina urmatoare


$prev = $numar_pagina-1;
if ($prev==0)
$prev=$total_pagini;
$next = $numar_pagina+1;
if ($next==$total_pagini+1)
$next=1;
print "<a href='$pagina_curenta_php?titlu_pagina=$titlu_pagina&numar_pagina=" .
$prev . "'>Pagina precedenta</a> ";
print "<a href='$pagina_curenta_php?titlu_pagina=$titlu_pagina&numar_pagina=" .
$next . "'>Pagina urmatoare</a> ";
// COD PENTRU PAGINARE
?>
<?
include("index2.php");
?>

stil.css
A:active, A:link, A:visited {
color: #0000FF;
}
A:hover {
color: #FFFFFF;
background-color: #0000FF;
}
A.linkmeniu, A.linkmeniu:link, A.linkmeniu:visited {
display: block;
width: 100%;
text-align: center;

- 58 -

Website informatii
text-decoration: none;
color: #0000FF;
font-family: Arial;
font-size: 10pt;
font-weight: bold;
}
A.linkmeniu:hover {
background-color: #0000FF;
color: #FFFFFF;
}
A.whitemeniu, A.whitemeniu:link, A.whitemeniu:visited {
background-color:#006BFF;
color: #FFFFFF;
}
A.whitemeniu:hover {
background-color: #FFFFCC;
color: #000000;
}

BODY {
background-color: #FFFFFF;
background-image: url("_bg1.jpg");
background-attachment: fixed;
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #0000FF;
scrollbar-face-color: #0066FF;
scrollbar-arrow-color: #FFFFFF;
scrollbar-track-color: #0077FF;
scrollbar-3dlight-color: #FFFFFF;
scrollbar-shadow-color: #FFFFFF;
scrollbar-highlight-color: #FFFFFF;

- 59 -

Website informatii
}
P, TD, H3, H4, H5, H6 {
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #0000FF;
}
H1, H2, H3, H4, H5, H6 {
font-family: Arial, Helvetica, sans-serif;
font-size: 12pt;
font-weight: bold;
color: #0000FF;
}
HR {
color: #0000FF;
}
.menutitle {
cursor:pointer;
margin-bottom: 5px;
background-color:#FFFFFF;
color:#0000FF;
width:120px;
padding:2px;
text-align:center;
font-weight:bold;
/*/*/border:1px solid #000000;/* */
}
.txt {
font-family: Arial, Helvetica, sans-serif;
/* font-size: 10px; */

- 60 -

Website informatii
color: #000066;
background: #FFFFFF;
border: 1px solid #000066;
padding-left: 3px;
}
.buton {
font-family: Arial, Helvetica, sans-serif;
/* font-size: 10px; */
font-weight: bold;
color: #000066;
background: #FFFFFF;
border: 1px solid #000066;
cursor: hand;
}

- 61 -

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