Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Php


Qdidactic » stiinta & tehnica » informatica » php
Aplicatie – pagina web „burse socrates”



Aplicatie – pagina web „burse socrates”


APLICATIE – PAGINA WEB „BURSE SOCRATES”




1. Prezentarea temei



Tema acestei lucrari este realizarea unei pagini web cu subiectul „Burse Socrates” utilizand, in principal, PHP si MySql.

Utilizarea Php face ca site-ul sa fie unul dinamic adica are o interfata prin care administratorul site-ului poate sa actualizeze continutul site-ului, fiind usor de intretinut, modernizat si dezvoltat. De asemenea foloseste formulare HTML, permitand utilizatorilor sa efectueze cautari, sa introduca informatii etc;

Subiectul site-ului  este unul de interes major pentru studentii Facultatii de Matematica si Informatica din cadrul Universitatii Transilvania Brasov , mai ales pentru ca facultatea nu are un site cu informatii personalizate despre inscrierea la Bursele Socrates, universitatiile partenere ale facultatii sau o lista cu studentii care au participat la acest program.

Programele SOCRATES - ERASMUS ofera studentilor din Romania posibilitatea sa studieze in universitati din Europa, pe o perioada de maximum 12 luni, cu recunoasterea disciplinelor studiate, in acord cu sistemul de credite transferabile. Aceste programe se stabilesc anual pe baza unor acorduri bilaterale intre Universitatea Transilvania din Brasov si diferite universitati din Europa. Selectarea studentilor participanti de la Facultatea de Matematica-Informatica din Brasov se efectueaza de catre facultate, in functie de situatia scolara si de gradul de cunoastere a unei limbi de circulatie internationala.



2. Analiza completa a situatiei existente





Utilizatorii site-ului sunt de doua tipuri: administrator(care poate fi un profesor) si utilizator fara drepturi de administrare care este de obicei student.

Admininstratorul site-ului este unic si poate modifica, actualiza si moderniza informatiile de pe site si poate vizualiza utilizatorii precum si toate informatiile de pe site.

Pentru a fi utilizator pe site-ul Socrates trebuie sa te inscrii in baza de date printr-un formular aflat pe site in care adaugi niste informatii de baza (nume,prenume) precum si adresa de email si o parola care sunt necesare pentru autentificarea pe site.

Numai dupa autentificare poti vizualiza toate informatiile existente pe site, altfel se poate vizualiza doar prima pagina precum si o pagina cu formularul pentru inscriere pe site si formularul de autentificare in care trebuie introdusa adresa de email si parola pentru utilizatorul respecti



3. Structura site-ului








4. Realizarea modulelor componente




A.     BAZA DE DATE A APLICATIEI „BURSE SOCRATES”



Baza de date cu care lucreaza site-ul se numeste „continut” si are in componenta 6 tabele de tipul InnoDB:


o      users

o      student

o      uploads

o      urls

o      tara

o      url_asociere



TABELUL users



Contine campurile:


Camp

Descriere

Tip

Atribute

user_id

cheie primara a tabelului users (se auto-incrementeaza)

int (10)

UNSIGNED

AUTO_INCREMENT

NOT NULL

email

Adresa casutei postale a studentului

varchar(40)

NOT NULL

pass

Parola contului activat pe site-ul „Burse Socrates”

char(40)

NOT NULL

first_name

Numele utilizatorului

varchar(15)

NOT NULL

last_name

Prenumele utilizatorului

varchar(40)

NOT NULL

drepturi_admin

Contine valorile: „nu ” sau  „da” in functie de drepturile utilizatorului

varchar(3)

NOT NULL

Default : „nu”

registration_date

Data inregistrarii utilizatorului

datetime

NOT NULL








TABELUL student



Contine campurile:



Camp

Descriere

Tip

Atribute

id_student

cheie primara (se auto-incrementeaza)

int(10)

UNSIGNED

AUTO_INCREMENT

NOT NULL

nume

Numele studentului

varchar(15)

NOT NULL

prenume

Prenumele studentului

varchar(30)

NOT NULL

email

Email-ul studentului

varchar(40)

NOT NULL

grupa

Grupa

int(8)

NOT NULL

an

Anul in care a fost plecat studentul

varchar(10)

NOT NULL

universitate

Universitatea la care a studiat studentul in timpul programului „Socrates”

varchar(30),

NOT NULL

facultate

Facultatea la care a studiat studentul in timpul programului Socrates

varchar(30),

NOT NULL

oras

Orasul in care este universitatea

varchar(15),

NOT NULL

tara

Tara in care a fost plecat studentul in timpul programului Socrates

varchar(15),

NOT NULL

data_inregistrarii

Data adaugarii studentului in baza de date

datetime

NOT NULL













TABELUL uploads



Contine campurile:



Camp

Descriere

Tip

Atribute

upload_id

cheie primara(se auto-incrementeaza)

int(10)

UNSIGNED

AUTO_INCREMENT

NOT NULL

file_name

Numele fisierului dat de script

varchar(30)

NOT NULL

file_size

Marimea fisierului

int(6)

NOT NULL

UNSIGNED

fyle_type

Tipul fisierului

varchar(40),

NOT NULL


description

Descrierea fisierului

varchar(100),

NOT NULL

Default: „null”

Atributul: „NULL”

date_entered

Are prin definitie setate data si ora de pe server, din momentul introducerii datelor in tabel

timestamp

NOT NULL

Atributul:ON UPDATE CURRENT_TIMESTAMP

Default : CURRENT_TIMESTAMP




TABELUL urls



Contine campurile:



Camp

Descriere

Tip

Atribute

url_id

Cheie primara (se auto-incrementeaza)

smallint(4)

UNSIGNED

AUTO_INCREMENT

NOT NULL

url

Adresa URL a site-ului universitatii

varchar(60)

NOT NULL

nume

Numele universitatii

varchar(60)

NOT NULL

cod

Codul din cadrul programului Socrates

varchar(10)

NOT NULL






TABELUL tara


Contine campurile:



Camp

Descriere

Tip

Atribute

tara_id

Cheie primara (se auto-incrementeaza)

tinyint(3)

UNSIGNED

AUTO_INCREMENT

NOT NULL

tara

Numele tarii din care face parte universitatea

varchar(20)

NOT NULL




TABELUL   url_asociere


Face legatura intre tara si urls de aceea contine campurile url_id si tara_id acestea fiind chei primare in cele doua tabele.



Contine campurile:



Camp

Descriere

Tip

Atribute

ua_id

Cheie primara (se auto-incrementeaza)

smallint(4)

UNSIGNED

AUTO_INCREMENT

NOT NULL

url_id

Id-ul url-ului, care este acelasi cu cel din tabelul urls

smallint(4) 

UNSIGNED

NOT NULL

tara_id

Id-ul tarii care este acelasi cu cel din tabelul tara

tinyint(3) 

UNSIGNED

NOT NULL

data

Data introducerii adresei url in baza de date

timestamp

Atribut: ON UPDATE CURRENT_TIMESTAMP

Default : CURRENT_TIMESTAMP

Approved

Contine valoarea „nu” sau „da” in functie de aprobarea asocierii adresei URL in baza de date, cu o tara

char(1)

NOT NULL

Default: „nu”




B.     REALIZAREA SCRIPTURILOR



CREAREA SABLOANELOR  



Pagina web cu Burse Socrates este formata din scripturi PHP care sunt organizate cu ajutorul unor sabloane de tip .html care aseaza informatiile in pagina cu ajutorul tabelelor dar si a meniurilor. De asemenea sabloanele folosesc foile CSS creand un aspect placut aplicatiei.


Fisierul „header.html”


Inainte de afisarea meniurilor, fisierul antet „header.html” deschide sesiunile si buffere-le de iesire , care vor fi inchise in fisierele de subsol prin functia ob_flush().

Exista doua tipuri de meniuri si anume meniul principal realizat cu ajutorul CSS si meniurile verticale realizate cu evenimente html.

Meniul principal arata diferit in functie de autentificare si de tipul utilizatorului. Atunci cand nici un utilizator nu este autentificat meniul principal are in componenta numai link-urile catre pagina principala, inregistrare si autentificare.


if (isset($_SESSION['user_id']) AND (substr($_SERVER['PHP_SELF'], -10) != 'logout.php')) se afiseaza meniul:



Cand utilizatorul este administrator, atat meniul principal cat si cele verticale contin link-uri catre toate paginile existente in site adica adminstratorul site-ului are drepturi atat de vizualizare a informatiilor cat si de modificare si actualizare a acestora.


if ($_SESSION['drepturi_admin']=='da') atunci se afiseaza urmatorul meniu:



Utilizatorul simplu fara drepturi de administrare poate vedea urmatorul meniu din care are acces la informatiile principale insa nu poate adauga in baza de date si nu poate vizualiza utilizatorii site-ului.



Aceste meniuri sunt afisate cu ajutorul scriptului header.html care este inclus in fiecare script .php care deschide o noua pagina.

Scriptul „header.html” include in componenta sa functiile startTime() si checkTime() realizate cu ajutorul JavaScript care returneaza ora de pe serverul pe care este pus site-ul.


Fisierul „footer.html”


Fiecare script include, la sfarsit, fisierul „footer.html” care este fisierul de subsol si care inchide tabelul definit in fisierul antet, si mai adauga paginii, un clip realizat in Adobe Flash CS3 care termina pagina de inregistrare.




CREAREA FISIERELOR DE CONFIGURARE



Site-ul web utilizeaza doua scripturi de configurare. Primul,  „config.inc.php”, gestioneaza erorile si poate fi folosit in alte scopuri cum ar fi definirea functiilor si stabilirea constantelor. Scriptul „mysql_connect.php” stocheaza toate informatiile referitoare la baza de date.


Scriptul „config.inc.php”


Unicul scop al fisierului de configurare este stabilirea politicii de gestionare a erorilor pentru site. Tehnica utilizata este crearea propriei functii de tratare a erorilor, care afiseaza impreuna cu mesajul de eroare specific, toate variabilele existente, precum si data si ora curenta.

Cu ajutorul acestui script, pe parcursul etapei de productie a site-ului, erorile sunt tratate mai discret. Astfel mesajele de eroare detaliate nu vor fi afisate in browserul web, ci vor fi expediate la adresa de posta electronica care este definita cu ajutorul variabilei „$email” din cadrul scriptului. Mesajele de eroare nu identifica intotdeauna o problema ,ele pot fi doar notificari, de aceea vor fi raportate prin posta electronica, fiind ingnorate in browserul web.

Variabila $live din cadrul acestui script este cea mai importanta si are valoarea FALSE adica mesajele de eroare detaliate sunt transmise catre browserul web. Dupa ce site-ul devine operational aceasta variabila trebuie setata la valoarea TRUE , astfel ca mesajele detaliate sa nu fie vizibile pentru utilizatorul web. Pentru a definii adresa de email la care sa fie trimise mesajele de eroare se va seta variabila $email cu adresa de posta electronica respectiva:

$email = 'adresaDeEmail';

Functia de tratare a erorilor primeste cinci argumente: numarul de eroare, mesajul de eroare, scriptul in care a aparut eroarea, numarul liniei unde a aparut eroarea si un tablou cu variabilele existente.

Instructiunea „global” este invocata pentru a simplifica accesul la variabilele $live si $email;

Variabila $e_vars este un tablou care contine toate variabilele existente in momentul aparitiei erorii, impreuna cu valorile acestora. Functia print_r() se foloseste pentru a adauga continutul variabilei $e_vars la variabila $message.

Functia set_error_handler() este utilizata pentru a cere codului PHP sa foloseasca procedura de tratare a erorilor definita mai sus.

set_error_handler ('my_error_handler');


Scriptul „mysql_connect.php”


Scopul principal al acestui script este conectarea la MySql si selectarea bazei de date. De asemenea scriptul defineste functia escape_data(), care este utilizata pentru prelucrarea tuturor datelor din formular inainte de utilizarea lor intr-o interogare SQL.

Daca apare o problema, aceasta pagina va folosi instrumente de tratare a erorilor definite in scriptul config.inc.php. Pentru aceasta este utilizata functia trigger_error(), care permite codului PHP sa fie semnalata aparitia unei erori.

In acest script se configureaza informatiile de acces la baza de date , adica utilizatorul, parola ,numele bazei de date cu care lucreaza aplicatia si host-ul care este „localhost” atat timp cat aplicatia ruleaza pe serverul Apache instalat pe calculatorul personal cu ajutorul aplicatiei WampSever. Pentru aplicatia rulata pe calculatorul personal setarile sunt:

DEFINE ('DB_USER', 'root');

DEFINE ('DB_PASSWORD', '');

DEFINE ('DB_HOST', 'localhost');

DEFINE ('DB_NAME', 'continut');                   

Deoarece mai multe scripturi din cadrul acestei aplicatii folosesc functia escape_data() aceasta este definita in fisierul mysql_connect.php. Functia este definita ca o modalitate de „curatare ” a informatiilor definite de utilizator, inainte de a le introduce in baza de date.

Functia ini_get() utilizata in cadrul functiei escape_data(), returneaza TRUE sau FALSE in functie de starea optiunii de configurare „magic_quotes_gpc”. Daca optiunea este activata, inseamna ca in date au fost deja inserate caracterele slash(„/”) care trebuiesc eliminate inainte de a insera secvente escape specifice bazei de date.

In cadrul functiei escape_data se mai verifica si daca exista functia mysql_real_escape_string() , (care a fost adaugata in Php incepand cu versiunea 4.3) . In cazul afirmativ conexiunea la baza de date este facuta diponibila printr-o instructiune „global”, apoi functia mysql_real_escape_string() este aplicata datelor, dupa eliminarea spatiilor suplimentare. Daca functia nu este disponibila este aplicata datelor functia mysql_escape_string(), care functioneaza aproape la fel doar ca nu necesita o conexiune cu baza de date.


// creeaza functia escape data

function escape_data ($data)

//verifica daca exista functia mysql_real_escape_string()

if (function_exists('mysql_real_escape_string')) else

return $data;

} // sfarsitul functiei




PAGINA PRINCIPALA



Este afisata atunci cand un utilizator acceseaza adresa site-ului Socrates, cu alte cuvinte este prima pagina afisata in cadrul site-ului si scriptul se numeste „index.php”. Contine informatii si un mic istoric al Burselor Socrates.


Scriptul „index.php”


In acest script se seteaza variabila cu numele paginii, variabila care va fi utilizata in cadrul scriptului „header.html”, inclus in „index.php”:

$page_title = 'Site Socrates - HOME';

include ('header.html');

Pagina mai contine si doua clipuri realizate in Adobe Flash CS3, scriptul importand fisierele de tip „.swf”. Aceste clipuri sunt introduse in cadrul paginii pentru a crea un aspect placut.




INREGISTRARE



In cazul in care utilizatorul nu are cont pe acest site se poate inregistra pentru a avea acces la pagini.


Scriptul „register.php”


Realizeaza aceasta inregistrare a utilizatorilor si include in cadrul sau scriptul „config.inc.php” cu ajutorul functiei required_once() care garanteaza includerea fisierului o singura data:

require_once ('config.inc.php');.

Acest script de inregistrare foloseste expresii regulate pentru securitate si un formular cu date persistente pentru a usura munca utilizatorului. De asemenea, scriptul trimite un mesaj utilizatorului dupa o inregistrare reusita sau esuata.

Formularul de inscriere va fi validat folosind expresii regulate adica textul introdus in formular trebuie sa aiba o anumita forma. De exemplu la adresa de email textul din text box-ul de introducere este format din cinci parti si trebuie sa contina in prima parte orice litera sau cifra inclusiv underline, caracterul punct si liniuta( „_”, „.” si „-”) apoi trebuie sa aiba in componenta caracterul „@”, din nou orice litera, cifra sau liniuta si punct,apoi trebuie sa contina neaparat caracterul punct si dupa el intre 2 si 4 caractere de tip litera. Acest lucru se defineste cu ajutorul urmatorului cod:


if (eregi ('^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]$', stripslashes(trim($_POST['email']))))


else


Daca sunt indeplinite toate conditiile introducerii in formular si daca parolele din cele doua text box-uri coincid, atunci se verifica daca nu cumva aceasta adresa de email a mai fost introdusa in baza de date deoarece nu dorim ca aceeasi persoana sa isi faca mai multe conturi pe site iar acest lucru poate fi verificat cel mai bine si mai credibil cu ajutorul adresei de email.

In cazul in care adresa de email nu a fost gasita in baza de date atunci utilizatorul poate fi inregistrat pe site.

Inserarea in baza de date se face cu ajutorul comenzii:


$query = 'INSERT INTO users (email, pass, first_name, last_name, registration_date) VALUES ('$e', SHA('$p'), '$fn', '$ln', NOW() )';


Informatiile despre utilizator sunt adaugate in baza de date parola fiind criptata cu ajutorul functiei MySql „SHA()”, iar la data inregistrari se va insera data si ora din momentul activarii contului.

Daca dupa inserarea in baza de date a fost afectat un singur rand din tabela adica daca inserarea a rulat asa cum trebuie, atunci este afisat pe pagina site-ului un mesaj in care se specifica faptul ca utilizatorul a fost inregistrat cu succes.

In cazul in care utilizatorul a completat gresit formularul sau daca in baza de date nu s-au inregistrat informatiile atunci utilizatorul primeste un mesaj in care se specifica acest lucru si el va trebui sa modifice datele din formularul pe care l-a completat. Nu toate informatiile trebuiesc rescrise deoarece formularul are date persitente, deci vor trebui modificate doar datele gresit introduse.

La sfarsit scriptul include fisierul „footer.html” care este fisierul de subsol si care inchide tabelul definit in fisierul antet, si mai adauga paginii un clip realizat in Adobe Flash CS3 care termina pagina de inregistrare.




AUTENTIFICARE



Scriptul „login.php”


Pentru autentificare pe site-ul „Socrates” se acceseaza pagina „login.php” care, la fel ca celelalte, include atat scriptul de configurare config.inc.php cat si fisierul de antet si de subsol „header.html” respectiv „footer.html” precum si fisierul de conectare la baza de date in cazul in care formularul completat de utilizator este validat adica, daca contine informatiile necesare autentificarii. Formularul este validat numai daca datele din formular au o anumita forma verificata cu ajutorul expresiilor regulate.

Se selecteaza apoi din baza de date campurile user_id, camp unic pentru fiecare utilizator, numele si campul drepturi_admin pentru utilizatorul care are email-ul si parola specificate in formular.


$query = 'SELECT user_id, first_name,drepturi_admin FROM users WHERE (email='$e' AND pass=SHA('$p'))';                   


Daca este gasita o corespondenta in baza de date, utilizatorului i se permite deschiderea sesiunii de lucru si este redirectionat catre pagina principala unde meniul principal ii da posibilitatea sa aleaga ce va face in continuare.

Procesul de deschidere a sesiunii de lucru consta din stocarea valorilor extrase din baza de date in sesiune (care a fost activata deja in fisierul „header.html” inclus la inceput in script).

$_SESSION['user_id'] = $row[0];

$_SESSION['first_name'] = $row[1];

$_SESSION['drepturi_admin'] = $row[2];


Apoi se inchide conexiunea la baza de date si se efectueaza redirectionarea utilizatorului catre pagina de baza.

Functia ob_end_clean() va sterge buferul existent (bufferele de iesire sunt activate tot in fisierul header.html) deoarece nu va mai fi utilizat.

Pentru redirectionarea utilizatorului in pagina principala se determina adresa absoluta a acesteia:


$url = 'https://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);

if ((substr($url, -1) == '/') OR (substr($url, -1) == '') )

$url .= '/index.php';

Mai intai se atribuie variabilei $url valoarea „https://” plus numele gazdei (care este in acest caz „localhost”). La aceasta valoare se adauga directorul curent, folosind functia dirname(), in cazul in care redirectionarea se face intr-un subdosar. Deoarece existenta unui subdosar ar putea adauga un caracter slash sau backslash, trebuie verificata existenta acestor caractere si ele trebuiesc eliminate. Acest lucru se face cu ajutorul functiei substr() pentru a verifica daca ultimul caracter din sirul $url este slash sau backslash. Deoarece caracterul este folosit ca secventa escape in PHP trebuie folosit pentru referirea la caracterul (backslash). Daca sirul $url se termina cu unul dintre aceste caractere, este apelata functia substr() pentru a elimina ultimul caracter din sirul $url. In ultima linie din codul de mai sus este adaugat la sirul $url numele paginii unde va fi redirectionat utilizatorul.

Daca totul a mers bine atunci functia header() trimite utilizatorul catre adresa din variabila $url, apoi scriptul se termina prin apelarea functiei exit(), ceea ce inseamna ca restul scriptului nu va mai fi executat.

In cazul in care nu este gasita o corespondenta in baza de date sau nu au fost introduse informatiile corespunzatoare, atunci sunt afisate mesajele de eroare respective si apoi formularul de autentificare in care vor fi modificate informatiile.




UNIVERSITATI PARTENERE



Scriptul se numeste „link.php” si defineste pagina de baza a modulului Universitati partenere.

Acest script include in componenta sa trei scripturi .html si anume scriptul pentru antet „header.html” ; „headerlink.html” si scriptul pentru subsol „footer.html”.

Atat scriptul „header.html” cat si „footer.html” au fost decrise anterior. Si acest script le foloseste pentru a definii meniul principal si pentru a termina tabelul inceput in fisierul de antet („footer.html”)


Scriptul „headerlink.html”


Este un script care realizeaza meniul vertical in cadrul modulului „Universitati partenere”. Meniul este realizat cu ajutorul evenimentelor html si a tabelelor cu diferite atribute.


<a href='index.php'><h4 class='meniu' id='MyHeading' onMouseOver='document.all.MyHeading.innerText=' >Home ' ' > <font color='#FFFFFF' face='Times New Roman, Times, serif'>Home</font></h4></a>


Pentru realizarea unui link care duce catre o alta pagina s-a folosit tagul <a href=””> precum si evenimentul „onMouseOver”. Pentru fiecare link a fost definit un „id” cu nume specific. In acest exemplu numele obiectului este „MyHeading”, iar evenimentul spune ca in momentul in care mouse-ul este pus pe link-ul respectiv atunci textul va lua atributele din clasa „meniu” care se afla in scriptul „CSS.css”


.meniu




LINK-URI UNIVERSITATI PARTENERE



Scriptul „view_urls.php”



Scriptul pentru vizulizarea adreselor URL a universitatilor partenere Socrates ale Facultatii de Matematica-Informatica are doua sectiuni: Partea superioara care afiseaza un meniu derulant cu tarile partenere si partea inferioara care afiseaza toate legaturile pentru o anumita categorie. La prima accesare a paginii de catre utilizator, nu este afisata nici o adresa URL a nici unei tari. Dupa ce utilizatorul selecteaza o tara si trimite formularul, pagina este afisata din nou, listand adresele URL corespunzatoare tarii respective, iar meniul derulant este in continuare disponibil. In cazul in care utilizatorul este administratorul, aceasta pagina ofera si legaturi catre fisierul „edit_url.php” pentru editarea adreselor.

In cadrul scriptului, dupa crearea formularului pentru alegerea tarii (formularul foloseste metoda „get” si este transmis inapoi in aceeasi pagina), se creaza o interogare a bazei de date in care se gasesc toate tarile disponibile si se adauga in meniul derulant. Apoi se verifica daca a fost selectata vreo tara si se regasesc in baza de date toate informatiile pentru universitatile din tara respectiva.


$query = 'SELECT u.url_id, url, nume, cod FROM urls AS u, url_asociere AS ua WHERE u.url_id = ua.url_id AND ua.tara_id=$type AND ua.approved = 'Y' ORDER BY data DESC';


Aceasta interogare este o uniune JOIN intre doua tabele (urls si url_asociere) si foloseste o conditie WHERE.

Se foloseste o variabila $first care initial primeste valoarea „true”. Ea indica daca tabelul HTML trebuie activat inainte de afisarea primei inregistrari si de asemenea este folosita pentru a testa daca exista sau nu adrese URL returnate de interogare.

Structura ciclica „while” din cadrul acestui script returneaza inregistrarile regasite de interogare. In cadrul buclei „while”, fiecare inregistrare este afisata pe ecran intr-un tabel in care prima coloana este un link si reprezinta numele universitatii regasite in baza de date, a doua coloana contine descrierea, iar a treia este afisata numai in cazul in care utilizatorul este administratorul. Este o legatura de editare care transfera identificatorul adresei URL catre pagina „edit_url.php”. Inainte de afisarea primei inregistrari, tabelul si antetul tabelului vor fi trimise catre browser. Aceasta operatie are loc daca variabila $first are valoarea „TRUE”, iar aceasta se intampla la prima parcurgere a buclei. Variabila este configurata apoi la valoarea „FALSE” , astfel incat antetul tabelului sa nu fie afisat pentru fiecare inregistrare returnata.


while ($row = mysql_fetch_array ($result, MYSQL_ASSOC))


echo'</tr>';

$first = FALSE; // a fost returnata o inregistrare.

}


// scrie fiecare inregistrare.

echo '<tr>

<td align='right'></td>

<td >--</td>

<td align='left'><a href='https://' target='_new'></a></td>';


if ($_SESSION['drepturi_admin']=='da')

'>edit</a></td>';

}

echo '</tr>n';



La sfarsitul scriptului este inclus fisierul de subsol „footer.html”.






ADAUGARE LINK-URI UNIVERSITATI PARTENERE



Scriptul „add_url.php”


Realizeaza adaugarea in baza de date a adreselor URL a universitatilor partenere Socrates.

Scriptul contine un formular in care se va adauga adresa URL, numele universitatii, codul Socrates si tara in care se afla universitatea cu adresa respectiva. Adresa universitatii adaugata in formular va fi verificata cu ajutorul expresiilor regulate asa cum s-a procedat siin scriptul „register.php”.


if (eregi ('^([[:alnum:]-.])+(.)([[:alnum:]])([[:alnum:]/+=%&_.~?-]*)$', $_POST['url'])) else

$query = substr ($query, 0, -2);


Daca apare vreo problema, au loc trei evenimente. La inceput este afisat pe ecran un mesaj public. In a doua faza, pe ecran este afisat un mesaj pentru depanare (in folosul dezvoltatorului), continand eroarea Mysql si interogarea. In final adresa URL este eliminata din tabelul „urls”, deoarece, daca nu s-a putut face nici o asociere intre adresa URL si o anumita tara, adresa URL nu mai este necesara intrucat nu va fi niciodata gasita in site.

Formularul de intrare a datelor are patru campuri primele trei sunt de tip text iar al patrulea este de tip „select” si foloseste un tablou pentru numele selectat. Pentru a selecta tarile care vor fi scrise in cadrul campului „select” se va scrie o interogare SELECT.


<select name='tara[]'>

<option value='NULL'>Alege tara:</option>

<?php

$query = 'SELECT * FROM tara ORDER BY tara ASC';

$result = @mysql_query ($query);

while ($row = mysql_fetch_array ($result, MYSQL_NUM))

echo '>$row[1]</option>n';

}

?>

</select>


In ultima faza se inchide conexiunea la baza de date si se include fisierul de subsol.




EDITARE LINK-URI UNIVERSITATI PARTENERE



Scriptul „edit_url.php”


Permite administratorului sa editeze sau sa stearga o inregistrare URL existenta in baza de date.

Aceasta pagina functioneaza numai daca are acces permanent la identificatorul adresei URL adica la url_id pentru inregistrarea care va fi modificata. Daca nu a fost gasit un identificator atunci se va afisa un mesaj de eroare si se va termina executia acestui script.

Formularul din acest script are o pereche de butoane de tip „radio ” care permit utilizatorului sa aleaga daca doreste sa sterga sau sa modifice o inregistrare.

In cazul in care utilizatorul a optat pentru stergerea inregistrarii, vor fi rulate doua interogari de tip DELETE care sterg atat din tabelul urls inregistrarea cat si din tabelul de asociere, sterg asocierea id-ului URL cu id-ul tarii din care face parte universitatea stearsa.

Dupa stergere se va include fisierul de subsol si se va termina executia scriptului. In cazul in care utilizatorul opteaza pentru modificarea inregistrarii pagina va contine formularul de modificare in care sunt inscrise valorile din baza de date.

Daca formularul este transmis, dupa verificarea datelor introduse se actualizeaza tabelul „urls”.

Mai intai se regaseste tara din care face parte adresa. Pentru actualizarea listei de tari, trebuie sa stiu ce tara a fost initial si ce tara este acum. Tara originala este stocata ca o inregistrare ascunsa in formular. Pentru a o accesa se efectueaza in sens invers operatiile de serializare si codificare.

$tari_existente = unserialize(urldecode($_POST['tari_existente']));   

Apoi se determina ce actualizare de tara trebuie trebuie efectuata.




ADAUGARE TARI PARTENERE


Scriptul „add_tari.php”


Foloseste un formular cu un singur camp in care va fi specificata tara care vrem sa o adaugam in baza de date.

Dupa ce se verifica daca formularul a fost trimis, se verifica daca a fost adaugat ceva in campul formularului, apoi se verifica daca nu cumva tara exista deja in baza de date . In cazul in care nu exista, se defineste a interogare INSERT pentru adaugarea ei in baza de date si se va transmite un mesaj de succes.

In cazul in care tara este deja inregistrata in baza de date, se transmite un mesaj public de eroare , iar formularul este adaugat din nou, pentru ca utilizatorul sa poata sa adauge in continuare.

La sfarsitul scriptului se va adauga din nou fisierul de subsol „footer.html”




VIZUALIZARE DOCUMENTE - BURSA SOCRATES


Scriptul „view_files.php”


Realizeaza vizulizarea documentelor care au fost incarcate pe site.

Se utilizeaza, la fel ca in scriptul „view_urls.php”, o variabila $first pentru a crea un antet; dupa aceasta sunt listate pe ecran toate inregistrarile din tabelul „uploads”.

Se foloseste constanta MYSQL_ASSOCIATION impreuna cu functia mysql_fetch_array() si din acest motiv se face referire la variabila „$row[‚fs’]” pentru a afisa valorile.

Fiecare nume de fisier este o legatura catre fisierul „download_file.php” avand valoarea upload_id adaugata la adresa URL ca $uid. Aceasta valoare va fi utilizata de scriptul de descarcare pentru a sti ce fisier sa trimita catre browserul web.




DESCARCARE DOCUMENTE - BURSA SOCRATES



Scriptul „download_file.php”


Se verifica existenta unei valori „upload_id”, apoi se verifica informatiile pentru acest fisier cu ajutorul unei interogari SELECT.


$query = 'SELECT file_name, file_type, file_size FROM uploads WHERE upload_id=$uid';


Pentru a descarca fisierul, trebuie sa fie cunoscut numele, tipul si dimensiunea fisierului. Toate aceste informatii sunt regasite in baza de date utilizand valoarea $uid in interogare si apoi functia list().


list ($fn, $ft, $fs) = mysql_fetch_array ($result, MYSQL_NUM);


Pentru a determina numele fisierului, se defineste intreaga cale relativa a fisierului. Calea este „../uploads/” , plus identificatorul de incarcare. Configurarea caii ca variabila simplifica referirea fisierului ulterior in cadrul scriptului. Inainte de a incerca trimiterea fisierului catre browserul web se confirma existenta acestuia cu ajutorul functiei file_exist().


$the_file = 'uploads/' . $uid;  

// verifica daca exista fisierul.

if (file_exists ($the_file)) ', , '', $d)';


Interogarea foloseste tabloul multidimensional $_FILES si introduce in acesta numele fisierului, dimensiunea si tipul MIME (toate aceste informatii provenind din browserul web). De asemenea este memorata si descrierea fisierului.

Fisierul va fi stocat pe server utilizand noul nume, ceea ce este mult mai sigur decat utilizarea numelui original.

Functia move_uploaded_file() este folosita pentru a muta fisierul temporar in locatia permanenta (in directorul uploads, cu noul nume). Daca mutarea s-a incheiat cu succes pe ecran este afisat un mesaj corespunzator. Daca fisierul nu a putut fi mutat va fi stearsa inregistrarea din baza de date, iar pe ecran va fi afisat un mesaj de eroare.

Formularul HTML de incarcare contine trei sectiuni necesare pentru incarcarile de fisiere: atributul „enctype” al formularului, intarea ascunsa MAX_FILE_SIZE si intrarea „file”.

Pentru a crea intrarile se foloseste o structura ciclica bazata pe variabila $counter. In cadrul buclei, cele doua intrari sunt afisate pe ecran utilizand nume unice.




STERGERE DOCUMENTE - BURSA SOCRATES



Scriptul „del_files.php”


Este apelat atunci cand se doreste stergerea unui fisier care a fost incarcat in directorul „uploads” si inregistrat in baza de date.

Aceasta pagina functioneaza numai daca are acces permanent la identificatorul fisierului adica la upload_id pentru inregistrarea care va fi modificata. Daca nu a fost gasit un identificator atunci se va afisa un mesaj de eroare si se va termina executia acestui script.

Formularul din acest script are o pereche de butoane de tip „radio ” care permit utilizatorului sa aleaga daca doreste sa sterga sau nu o inregistrare.

In cazul in care utilizatorul a optat pentru stergerea inregistrarii, va fi rulata o interogare de tip DELETE care sterge din tabelul uploads fisierul cu id-ul respecti


$query = 'DELETE FROM uploads WHERE upload_id=$id';              


Dupa stergere se va include fisierul de subsol si se va termina executia scriptului.

in cazul in care utilizatorul bifeaza butonul „NU” atunci se va afisa un mesaj cum ca fisierul nu a fost sters din baza de date si nici din directorul „uploads”.

Se inchide conexiunea la baza de date si se include fisierul de subsol „footer.html”.




VIZUALIZARE FOSTI STUDENTI SOCRATES



Scriptul „vezi_stud.php”


Realizeaza un tabel cu studentii participanti la Bursele Socrates cu posibilitatea sortarii inregistrarilor din tabel dupa fiecare camp din tabel, ascendent sau descendent. Sortarea dupa un anumit camp se face prin click pe numele campului in urma caruia se vor crea niste legaturi de sortare.

Inainte de interogarea principala se definesc legaturile prestabilite:


$link1 = '?sort=nd';

$link2 = '?sort=ga';

$link3 = '?sort=da';

$link4 = '?sort=aa';

$link5 = '?sort=ta';

$link6 = '?sort=ua';


Aceste variabile definesc valorile prestabilite ale legaturilor pentru coloanele din tabel. Fiecare legatura este de forma : vezi_stude.php? sort=XXX unde XXX reprezinta noua ordine de sortare.

In locul numelui se foloseste variabila $_SERVER[‚PHP_SELF’], aceasta reprezentand o cale prin care un script se poate referi la el insusi (acoladele sunt folosite pentru a evita erorile de analiza).

Structura SWITCH compara variabila $_GET[‚sort’] cu diferite valori pe care le asteapta scriptul. Daca de exemplu este egala cu „nd”, rezultatele ar trebui sa fie ordonate ascendent dupa nume. Variabila $order_by a carei valoare este stabilita aici va fi apoi folosita in interogarea SQL. Daca rezultatele vor fi afisate in ordine ascendenta dupa nume atunci legatura coloanei nume trebuie sa fie configurata incat sa determine afisarea rezultatelor in ordinea descendenta a numelui. Ca urmare pentru fiecare caz, din instructiunea SWITCH , legaturile corespunzatoare primesc noi valori.

Pentru fiecare caz este definita variabila $order_by care va fi folosita in interogare si este redefinita legatura corespunzatoare. Deoarece fiecare legatura a primit deja o valoare prestabilita este necesara modificarea unei singure valori pentru fiecare caz.

Variabila $sort va trebui sa fie adaugata la legaturile de paginare, la fel ca si variabilele $s si $np. Daca $_GET[‚sort’] are o valoare atunci $sort primeste valoarea respectiva, in caz contrar sunt folosite valorile $order_by si $sort prestabilite ale paginii.


switch ($_GET['sort']) {

case 'na':

$order_by = 'nume ASC';

$link1 = '?sort=nd';

break;

case 'nd':

$order_by = 'nume DESC';

$link1 = '?sort=na';

break;

case 'ga':

$order_by = 'grupa ASC';

$link2 = '?sort=gd';

break;

case 'gd':

$order_by = 'grupa DESC';

$link2 = '?sort=ga';

break;

case 'aa':

$order_by = 'an ASC';

$link4 = '?sort=ad';

break;

case 'ad':

$order_by = 'an DESC';

$link4 = '?sort=aa';

break;

case 'ta':

$order_by = 'tara ASC';

$link5 = '?sort=td';

break;

case 'td':

$order_by = 'tara DESC';

$link5 = '?sort=ta';

break;

case 'ua':

$order_by = 'universitate ASC';

$link6 = '?sort=ud';

break;

case 'ud':

$order_by = 'universitate DESC';

$link6 = '?sort=ua';

break;

case 'da':

$order_by = 'data_inregistrarii ASC';

$link3 = '?sort=dd';

break;

case 'dd':

$order_by = 'data_inregistrarii DESC';

$link3 = '?sort=da';

break;

default:

$order_by = 'nume DESC';

$sort = 'na';

break;

}

$sort = $_GET['sort'];


} else


Se va definii interogarea care selecteaza inregistrarile din baza de date folosind variabila $order_by.


$query = 'SELECT nume, prenume,grupa,an,tara,oras,universitate,facultate, DATE_FORMAT(data_inregistrarii, '%d-%M-%Y') AS dr, id_student FROM student ORDER BY $order_by LIMIT $start, $display';                


Variabila $order_by are in acest moment o valoare care indica modul in care vor fi ordonate rezultatele returnate.

Daca exista in baza de date mai multe inregistrari decat este setata variabila „$display” atunci ele vor fi afisate pe mai multe pagini.

Se determina apoi ce pagina a scriptului este, dupa care se fac butoanele

preview, next si numerele paginilor.




EDITARE STUDENTI



Scriptul „editare_studenti.php”


Permite administratorului sa editeze o inregistrare , a unui student, existenta in baza de date.

Aceasta pagina functioneaza numai daca are acces permanent la identificatorul studentului adica la id_student pentru inregistrarea care va fi modificata. Daca nu a fost gasit un identificator atunci se va afisa un mesaj de eroare si se va termina executia acestui script.

In cazul in care utilizatorul opteaza pentru modificarea inregistrarii pagina contine formularul de modificare in care sunt inscrise valorile din baza de date.

Datele sunt preluate din baza de date cu ajutorul interogarii:


$query = 'SELECT nume, prenume, email,grupa,an, universitate, facultate, oras, tara FROM student WHERE id_student=$id';     


Daca formularul este transmis, dupa verificarea datelor introduse, se actualizeaza tabelul „student”.


$query = 'UPDATE student SET nume='$n', prenume='$p', email='$e', grupa='$g' , an='$a' , universitate='$u' , facultate='$f', oras='$o', tara='$t' WHERE id_student=$id';







STERGERE STUDENTI



Scriptul „sterg_studenti.php”


Se poate accesa numai daca este gasit un identificator al unui student, adica daca variabila $id are o valoare numerica. Valoarea acestei variabile este valida daca este confirmata printr-o interogare de tip SELECT


$query = 'SELECT CONCAT(nume, ', ', prenume) FROM student WHERE id_student=$id'; 


Aceasta interogare selecteaza atat numele cat si prenumele studentului (concatenate) care vor fi afisate in pagina atunci cand utilizatorul este intrebat daca doreste sa stearga studentul din baza de date.

Formularul acestei pagini contine doua butoane de tip radio si un buton de tip „submit” precum si un buton ascuns care are ca valoare variabila „$id” adica identificatorul studentului care va fi sters.

Dupa completarea formularului, se va sterge studentul din baza de date cu ajutorul interogarii:


$query = 'DELETE FROM student WHERE id_student=$id';            




ADAUGARE FOSTI STUDENTI SOCRATES



Scriptul „adauga_studenti.php”


La fel ca si in celelalte scripturi de adaugare se foloseste un formular cu mai multe campuri in care vor fi specificate informatiile care vrem sa le adaugam in baza de date.

Dupa ce se verifica daca formularul a fost trimis, se verifica daca au fost adaugate informatii in toate campurile formularului, informatii verificate cu ajutorul expresiilor regulate.

Se defineste o interogare INSERT pentru adaugarea studentului in baza de date si se va transmite un mesaj de succes.


$query = 'INSERT INTO student (email, nume, prenume, grupa, an, data_inregistrarii, tara, oras, universitate, facultate) VALUES ('$e', '$n', '$p', '$g', '$a', NOW(), '$t', '$o', '$u', '$f' ) ' ;                       


In cazul in care utilizatorul nu a completat corect formularul sau a uitat sa adauge o informatie , formularul este adaugat din nou, el avand date persistente,pentru ca utilizatorul sa poata sa completeze sau sa modifice datele.

SCHIMBARE PAROLA



Scriptul „change_password.php”


In cadrul acestei pagini, un utilizator poate sa isi schimbe parola din cadrul contului , daca are o sesiune deschisa.

Scriptul verifica daca exista variabila $_SESSION [ first_name’], daca variabila nu este configurata atunci utilizatorul va fi redirectionat catre pagina principala. Pentru redirectionarea utilizatorului in pagina principala se determina adresa absoluta a acesteia la fel ca si in scripturile anterioare:


if (!isset($_SESSION['first_name']))

// definesc adresa URL.

$url = 'https://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);

// verifica existenta slash sau backslash

if ((substr($url, -1) == '/') OR (substr($url, -1) == '') )

$url .= '/index.php'; // adauga pagina.

ob_end_clean(); // sterge buffer-ul.

header('Location: $url');

exit(); // iese din scriptul change_password.


In cazul in care variabila este configurata atunci se verifica daca parola corespunde cerintelor adica sa aiba intre 4 si 20 de caractere si sa fie formata numai din litere si cifre.

Se verifica daca parola din campul unu este aceeasi cu cea din campul doi. In cazul in care rezultatul verificarilor este „TRUE” , atunci se va executa interogarea UPDATE care realizeaza adaugarea noii parole in baza de date, in locul celei vechi.




IESIRE CONT


Scriptul „logout.php”


In cazul in care utilizatorul nu are deschisa o sesiune de lucru si se acceseaza aceasta pagina, atunci el va fi redirectionat catre pagina principala.

Daca utilizatorul are deschisa o sesiune de lucru, atunci sesiunea este inchisa, iar valorile referitoare la sesiune sunt resetate, datele din sesiune sunt sterse de pe server, iar modulul cookie de sesiune este sters.


$_SESSION = array();

session_destroy();

setcookie (session_name(), '', time()-300, '/', '', 0);


Functia session_name() stabileste numele sesiunii sau in cazul in care nu este specificat nici un argument atunci aceasta returneaza numele sesiunii curente. Se apeleaza aceasta functie ca parametru al functiei setcookie() pentru a stabili numele sesiunii corespunzator.

Se afiseaza apoi un mesaj de inchidere a sesiuni de lucru.





5. Cerinte tehnice minime necesare




Aplicatia poate rula pe orice calculator care are instalat:


o      WampServer sau cele trei software-uri instalate separat si anume Serverul Apache, PHP si MySql


o      Unul din browser-ele INTERNET EXPLORER, OPERA, MOZILLA FIREFOX. Aplicatia functioneaza pe aceste tipuri de browsere , insa s-a constatat ca in browserul MOZZILA precum si in OPERA meniul principal cat si cele verticale nu au un aspect tocmai placut de aceea este recomandat ca acest site sa fie folosit cu browserul INTERNET EXPLORER.




















VI. GHIDUL APLICATIEI




Aceasta aplicatie este o pagina web dedicata Burselor Socrates in care se pot afla diferite informatii despre participarea la astfel de burse. Programele SOCRATES - ERASMUS ofera studentilor din Romania posibilitatea sa studieze in universitati din Europa, pe o perioada de maximum 12 luni, cu recunoasterea disciplinelor studiate, in acord cu sistemul de credite transferabile. Aceste programe se stabilesc anual pe baza unor acorduri bilaterale intre Universitatea Transilvania din Brasov si diferite universitati din Europa. Selectarea studentilor participanti de la Facultatea de Matematica-Informatica din Brasov se efectueaza de catre facultate, in functie de situatia scolara si de gradul de cunoastere a unei limbi de circulatie internationala.

Pentru a utiliza aceasta aplicatie, mai intai trebuie sa pornim WampServer asa cum a fost explicat in capitolul „Resurse”.

Apoi vom deschide un browser si vom tasta, in casuta adresei: „https://localhost”

La categoria „Yours Projects” vom alege numele proiectului adica numele aplicatiei : „Burse Socrates” si se va deschide pagina principala.





Aplicatia are doua tipuri de utilizatori si anume „administrator” si „utilizator simplu”. Pentru a crea un cont de utilizator vom alege din meniul principal optiunea „Inregistrare”.



Se va deschide o pagina care contine un formular. Se completeaza acest formular cu datele personale si o parola pentru contul de pe acest site. In urma completarii datelor se va afisa un mesaj de multumire. Din acest moment utilizatorul respectiv detine un cont pe site-ul „Socrates”.



Pentru a avea acces la informatiile de pe site utilizatorul trebuie sa se autentifice. Pentru autentificare se alege optiunea „Autentificare” din meniul principal. Se va afisa din nou un formular care trebuie completat cu adresa de email a utilizatorului, adresa care a fost adaugata la inregistrare precum si cu parola adaugata in acel moment.





UTILIZATORUL


Dupa autentificare utilizatorul va fi redirectionat catre pagina principala, de data aceasta, pagina are un meniu cu mai multe optiuni.



In cazul in care utilizatorul alege din meniu optiunea „Universitati partenere”, va fi afisata o pagina cu informatii despre universitatiile partenere ale Facultatii de Matematica si Informatica. De asemenea in partea stanga a paginii va fi afisat un nou meniu din care studentul poate sa aleaga vizualizarea link-urilor catre site-urile diferitelor universitati.



In cazul alegerii acestei optiuni se va afisa o pagina in care utilizatorul are posibilitatea sa aleaga o tara pentru care se vor afisa link-urile tuturor universitatilor partenere din acea tara, impreuna cu codul ERASMUS al universitatii respective.



Urmatoarea optiune din meniul principal este „Inscriere Bursa” care are in stanga optiunea „Vizualizare documente”. in cadrul acestei optiuni se va afisa o pagina cu lista tuturor documentelor importante incarcate de administrator.

Pentru a fi vizualizate, aceste documente trebuiesc descarcate de pe server adica se va da click pe numele documentului si va aparea o fereastra de download cu numele si tipul fisierului, precum si host-ul de pe care este preluata. In functie de dorinta se alege sa se deschida „OPEN” sau sa se salveze documentul ales pentru download („SAVE”). De asemenea se poate renunta la descarcare prin apasarea butonului „CANCEL”.



Optiunea „Vizualizare studenti” din cadrul „Studenti Socrates” va afisa o pagina cu un tabel al studentilor care au participat la acest program in anii anteriori.

Meniul principal afisat in cazul utilizatorului simplu, mai are inca o optiune in cadrul sau si anume: „Schimba parola”. Aceasta optiune poate fi selectata de utilizator in cazul in care el doreste sa isi modifice parola contului de pe acest site. Se va afisa un formular in care se poate completa noua parola si confirmarea acesteia, insa si noua parola trebuie sa respecte aceleasi criterii ca si la inregistrare si anume sa fie formata din 4 pana la 20 de caractere si sa contina numai litere si/sau cifre.



In momentul in care utilizatorul a terminat de vizualizat informatiile si doreste sa inchida aceasta aplicatie trebuie sa selecteze optiunea „Iesire cont” din cadrul meniului principal. Se va afisa un mesaj de multumire.



ADMINISTRATORUL


Exista un singur administrator, care pe langa accesul la paginile cu informatii, are si drepturi de modificare a paginilor, de stergere a informatiilor sau de adaugare.

De asemenea administratorul poate sa vizualizeze si tabelul cu utilizatorii.

in cadrul fiecarei optiuni din meniul principal, administratorul are dreptul sa adauge, sa sterga, sau sa modifice: link-urile universitatilor, informatiile despre studenti, precum si sa incarce fisiere in cadrul optiunii „Inscriere Bursa”. In momentul vizualizarii atat a studentilor cat si a link-urilor, administratorul are in dreptul fiecarei inregistrari din tabel, un link cu optiunea de editare/ modificare sau de stergere.



Optiunea „Adaugare documente” afiseaza un formular cu ajutorul caruia administratorul site-ului poate incarca fisiere. Formularul contine un camp obligatoriu in care trebuie adaugata calea pana la fisierul care va fi incarcat, impreuna cu numele acestuia. Al doilea camp este optional si se numeste „descriere” in care se pot adauga cateva cuvinte despre fisierul care va fi incarcat. Desi este optional, este recomandata completarea campului cu descrierea fisierului pentru o mai buna informare a utilizatorului.



Ca si in cazul utilizatorului, si administratorul are dreptul de a modifica parola contului sau in cadrul optiunii „Schimba parola”.

Pentru a sterge un fisier care a fost incarcat pe site, administratorul acceseaza pagina „Vezi documente” si in dreptul fiecarui document  va avea optiunea „Sterge”



VII. BIBLIOGRAFIE





o      PHP si MySQL pentru site-uri dinamice - Larry Ullman – Bucuresti, 2006



o      Dezvoltarea aplicatiilor WEB cu PHP si MySQL, Editia a II-a – Luke Welling si Laura Thomson – Editura Teora - 2005



o      PHP 5 Fast & Easy Web Development - Julie C. Meloni



o      Programare.org PHP – Manualul Programatorului – Mai 2005



o      Manual PHP - Grupul de Documentare PHP - 1997-2008



o      WEB DESIGN – curs – conf.dr. Livia Sangeorzan



o      https://www.php.net



o      https://www.tutoriale.far-php.ro



o      https://www.en.wampserver.com





Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright

stiinta

Php



Access
Autocad
Baze de date
C
Calculatoare
Catia
Excel
Foxpro
Grafica design
Html
Internet
Java
Linux
Mathcad
Matlab
Oracle
Outlook
Photoshop
Php
Powerpoint
Retele calculatoare
Sql
Windows
Word

Referate pe aceeasi tema


Sesiuni in PHP
Aplicatie – pagina web „burse socrates”
Wamp Server
MySql
Structuri de control in PHP



Ramai informat
Informatia de care ai nevoie
Acces nelimitat la mii de documente, referate, lucrari. Online e mai simplu.

Contribuie si tu!
Adauga online proiectul sau referatul tau.