Dezvoltarea Unei Aplicatii Web Pentru Promovarea In Cariera
Dezvoltarea unei aplicații WEB pentru promovarea in carieră
Cuprins
INTRODUCERE
MOTIVAȚIA ALEGERII TEMEI
Capitolul 1. Considerații teoretice despre php
1.1 Despre limbajul PHP
1.2 Variabile in PHP
1.2.1 Atribuirea de valori variabilelor
1.2.2 Accesarea variabilelor
1.2.3 Schimbarea tipului unei variabile
1.2.4 Funcția isset()
1.3 Operatori in PHP
1.3.1 Operatori aritmetici
1.3.2 Operatori de comparație
1.3.3 Operatori de incrementare și decrementare
1.3.4 Operatori logici
1.4 Structuri de control în PHP
1.4.1 Instrucțiuni condiționate
1.4.2 Instrucțiuni de ciclare
1.5 Funcții în PHP
1.5.1 Apelarea unei funcții
1.5.2 Definirea unei funcții
1.5.3 Parametrii unei funcții
1.5.4 Variabile de tip funcție
1.6 Formulare HTML
.6.1 Crearea formularelor HTML
1.6.2 Câmpuri de text
1.6.3 Zone de text, Comentarii
1.6.4 Butoane
1.6.5 Liste Drop-Down / Select
1.6.6 Câmpuri de tip parolă
1.7 Sesiuni în PHP
1.7.1 Crearea unei sesiuni
1.7.2 Protejarea informatiilor din sesiuni
1.7.3 Ștergerea sesiunilor
1.8 PHP și MySQL
1.8.1 Conectarea la serverul Mysql
1.8.2 Conectarea la baza de date
1.8.3 Afișarea erorilor MySql
1.8.4 Funcția mysql_query()
1.8.5 Crearea tabelelor
1.8.6 Inserarea datelor în tabel
1.8.7 Modificarea datelor in tabel
1.8.8 Preluarea rezultatelor interogărilor SELECT
Capitolul 2. Despre dezvoltarea aplicației web
2.1 Baza de date a site-ului
2.1.1 Conectarea la baza de date
2.2 Structura în pagina web
2.3 Bara de stare a utilizatorului
2.4 Meniul principal
2.4 Elementul slideshow al paginii
2.5 Înregistrarea utilizatorilor
2.5.1 Crearea unui cont de tip companie
2.5.2 Crearea unui cont de tip candidat
2.5.3 Autentificarea utilizatorilor pe site
2.6 Bara de căutare
2.7 Pagina de Anunțuri
2.8 Adăugarea unui nou anunț
2.9 Pagina Despre noi
2.10 Pagina de Contact
2.11 Footer-ul
Concluzii
Bibliografie
Anexe
INTRODUCERE
Obiectivul propus în această lucrare este de a crea o aplicație de tip website dedicată acelora care sunt în căutarea unui loc de muncă
Lucrarea constă în două mari capitole:
În primul capitol se abordează aspectele teoretice ale limbajului de programare PHP, fiind prezentate toate acele elemente folosite în crearea aplicației precum baze de date, modul în care se gestionează datele acesteia (inserarea, modificarea sau ștergerea datelor din baza de date),
sesiuni, structuri de control sau alte elemente.
Cel de-al doilea capitol reprezintă partea principală a lucrarii și prezintă pas cu pas aplicația, abordând fiecare element al site-ului, modul în care acesta funcționează, precum și câteva secvențe de cod pentru a explica modul în care sunt create elementele respective.
Dezvoltarea aplicației este realizată cu ajutorul limbajului de scripting PHP, elemente HTML împreună cu limbajul de stilizare CSS precum și utilizarea bazelor de date MySQL și a comenzilor SQL.
MOTIVAȚIA ALEGERII TEMEI
Tema pe care o voi dezbate în cadrul lucrarii de licență se numește Dezvoltarea unei aplicații WEB pentru promovarea în carieră și constă într-o platformă dedicată acelor oameni care sunt în căutarea unui job.
„Somajul a devenit o problema , odata cu dezvoltarea industriala , incepand cu a doua jumatate a secolului al XVIII – lea , in perioadele de recesiune , cand intreprinderile industriale isi micsorau productia si, ca urmare, eliberau un numar important de muncitori, care deveneau someri.Somajul este un fenomen economic cauzat de crizele sau recesiunile economice, care consta in aceea ca o parte dintre salariati raman fara lucru, ca urmare a decalajului dintre cererea si oferta de forta de munca.” [http://www.referat.ro/referate_despre/somajul_in_romania_referat.html]
În ziua de astăzi șomajul în rândul tinerilor este destul de ridicat, iar un prim motiv pentru care am ales această temă este de a oferi o șansă în plus acestora în ași găsi un loc de muncă.
Un alt motiv pentru care am ales această temă este pasiunea pentru programarea WEB și dezvoltarea de aplicații WEB.
Capitolul 1. Considerații teoretice despre php
1.1 Despre limbajul PHP
Limbajul PHP este un limbaj de programare destinat în primul rând Internetului, aducând
dinamică unei pagini web. Este unul dintre cele mai importante limbaje de programare web
open-source (codul sursă este public, fiind accesibil tuturor) și server-side (rularea sa nu se face pe calculatorul celui care vizualizează pagina, ci pe server-ul care o conține).
Este unul dintre cele mai folosite limbaje de programare server-side. Statisticile arată că la 1 mai 2008, suportul PHP este prezent pe 20 de milioane dintr-ul total de 70 de milioane de
website-uri active din lumea întreagă.
Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor sale
caracteristici:
Familiaritatea – sintaxa limbajului este foarte ușoară, fiind foarte la îndemână în
special pentru programatorii care cunosc limbajul C;
Simplitatea – sintaxa limbajului este destul de liberă. Nu este nevoie de includere de
biblioteci sau de directive de compilare, codul PHP inclus într-un document fiind trecut între niște marcaje speciale;
Securitatea – PHP-ul pune la dispoziția programatorilor un set flexibil și eficient de
măsuri de siguranță;
Flexibilitatea – fiind apărut din necesitatea dezvoltării web-ului, PHP a fost
modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit
server web, PHP-ul a fost integrat pentru numeroasele servere web exitente: Apache, IIS, Zeus, etc.
Gratuitatea – este, probabil, cea mai importantă caracteristică a PHP-ului. Dezvoltarea
PHP-ului sub licența open-source a determinat adaptarea rapidă a sa la nevoile web-ului,
eficientizarea și securizarea codului.
1.2 Variabile in PHP
Variabilele sunt elemente ce au o anumita valoare la un moment dat. Valoare unei variabile se poate schimba de-a lungul executiei unui script.
Există câteva reguli la crearea variabilelor in PHP. Toate variabilele trebuie sa fie prefixate de simbolul $ (dolar), unde acest simbol spune exact preprocesorului PHP că are de aface cu o variabilă. Numele variabilei trebuie sa aibă primul caracter o literă sau simbolul _ (underscore), iar în rest numele variabilei poate sa conțină litere, numere sau din nou simbolul underscore. Orice alt caracter este considerat invalid in numirea variabilelor.
Exemple de variabile:
$_numeVar // validă
$myVar21 // validă
$_1Var // invalidă – caracterul underscore trebuie urmat de o literă
$1Num // invalidă – trebuie să inceapă cu o literă sau underscore
$_var-nr // invalidă – conține caracter non alfanumeric (-)
Variabilele în PHP sunt case-sensitive, însemnând că limbajul PHP consideră folosirea $_numeVar diferită față de o varibila $_numevar.
1.2.1 Atribuirea de valori variabilelor
Variabilelor li se atribuie valori folosind operatorul de atribuire. Acesta este reprezentat de caracterul =. Pentru a atribui o valoare, numele variabilei trebuie să fie plasat in stânga operatorului și în dreapta acestuia se scrie valoarea ce este atribuită variabilei. În final ca orice altă instrucțune PHP, expresia se termină folosind ;.
1.2.2 Accesarea variabilelor
Odată creata o variabilă si atribuirea unei valori acesteia, ea poate fi accesată mai târziu in program. În practica, o variabilă se poate accesa făcând o referință la numele variabilei create.
Ca exemplu, folosit și în aplicație, pentru a afișa un mesaj de eroare în caz ca câmpul nume este necompletat se acceseaza variabila $numeErr:
<?php
$numeErr = "";
$nume = $_POST['reg_nume'];
if (empty($nume)) {
$numeErr = "<img src='eroareimg.png'> Câmpul <strong>Nume</strong> este obligatoriu!";
}
?>
<form>
<label>Nume </label> <input name="reg_nume" id="user" type="text" class="field-long" placeholder="Introduceți numele dv." value="<?php if (isset($uname)){echo htmlentities($username);} ?>"/> <span class="validation-error"><?php echo $numeErr;?></span>
<form>
Dacă câmpul nume nu a fost completat atunci se afișează mesajul "Câmpul Nume este obligatoriu!".
12.3 Schimbarea tipului unei variabile
PHP suportă mai multe tipuri de variabile (integer, float, boolean, array, object, resource și string). Este un limbaj de tip loosely typed, adică permite modificarea tipului variabilei în orice moment al vieții prin atribuirea unei valori de tip diferit decât cel inițial.
Exemplu în care se crează o variabilă de tip integer atribuindu-i valoarea 6, apoi tipul variabilei se modifică în tipul string prin atribuirea unei valori de tip string:
<?php
$numar = 6; // variabila este de tip integer
$numar = "sase"; // variabila s-a schimbat in tipul string
?>
1.2.4 Funcția isset()
Uneori este necesar să se verifice dacă o variabilă are o valoare atribuită sau nu. Acest lucru se face prin apelarea funcției isset() și se introduce ca argument numele variabilei.
Dacă funcției i se dă mai mulți parametri, atunci aceasta va returna TRUE doar dacă toți parametrii sunt setați. Modul în care se face evaluarea este de la stânga la dreapta și se oprește atunci când se detectează o variabilă nestabilită.
Exemplu folosit în aplicație cu funcția isset:
<?php
if(isset($_SESSION))
{
}
else if(!isset($_SESSION))
{
session_start();
}
?>
Dacă există o sesiune deja creată atunci nu se execută nimic, în schimb dacă funcția nu a găsit o sesiune existentă atunci se va crea una nouă.
1.3 Operatori in PHP
Operatorii în PHP, ca în orice alt limbaj de programare, dau posibilitatea de a efectua operații asupra variabilelor și valorilor (atribuire, adunare, scădere, multiplicare și concatenare)
Operatorii lucrează cu operanzii care reprezintă variabilele si valorile care sunt folosite in a efectua operațiile respective.
1.3.1 Operatori aritmetici
Operatorii aritmetici oferă posibilitatea de a efectua operații matematice.
1.3.2 Operatori de comparație
Operatorii de comparație oferă posibilitatea de a compara o valoare cu alta și să se returneze un rezultat adevărat sau fals, în funcție de rezultatul operației.
1.3.3 Operatori de incrementare și decrementare
Aceștia constau din operatorii ++ (pentru incrementare) și – (pentru decrementare). Un astfel de operator în combinație cu un operand (numele variabilei la care se dorește modificarea respectivă) are ca efect incrementarea sau decrementarea cu 1 a valorii unei variabile.
1.3.4 Operatori logici
Sunt cunoscuși și ca operatori booleni pentru că evaluează o expresie și returneaza true sau false, permițând luarea de decizii cu privire la modul în care un script ar trebui să procedeze.
1.4 Structuri de control în PHP
În utilizarea limbajului PHP, este nevoie de inteligența și logică în creare și dezvoltarea aplicațiilor WEB. Astfel, pentru a putea construi scripturi PHP logice, este necesar ca programul să poată lua decizii și să repete mai multe operații bazate pe anumite criterii.
De exemplu, poate este necesar să se repete o anumită secvența dintr-un script de mai multe ori, sau să se efectueze o operație anume doar dacă una sau mai multe condiții sunt adevărate. (exemplu: să se permită logarea unui user pe un website doar dacă parola introdusă este validă).
1.4.1 Instrucțiuni condiționate
Instrucțiunile condiționate oferă posibilitatea de a stabili anumite decizii în limbaje scripting ca PHP. De regulă, instrucțiunile condiționate decid dacă o parte a unui script este executat sau nu, în funcție de rezultatul unei expresii. (de exemplu, dacă o expresie returnează o valoare de tip boolean true sau false).
PHP suportă trei inscrucțiuni de decizie: etici
Operatorii aritmetici oferă posibilitatea de a efectua operații matematice.
1.3.2 Operatori de comparație
Operatorii de comparație oferă posibilitatea de a compara o valoare cu alta și să se returneze un rezultat adevărat sau fals, în funcție de rezultatul operației.
1.3.3 Operatori de incrementare și decrementare
Aceștia constau din operatorii ++ (pentru incrementare) și – (pentru decrementare). Un astfel de operator în combinație cu un operand (numele variabilei la care se dorește modificarea respectivă) are ca efect incrementarea sau decrementarea cu 1 a valorii unei variabile.
1.3.4 Operatori logici
Sunt cunoscuși și ca operatori booleni pentru că evaluează o expresie și returneaza true sau false, permițând luarea de decizii cu privire la modul în care un script ar trebui să procedeze.
1.4 Structuri de control în PHP
În utilizarea limbajului PHP, este nevoie de inteligența și logică în creare și dezvoltarea aplicațiilor WEB. Astfel, pentru a putea construi scripturi PHP logice, este necesar ca programul să poată lua decizii și să repete mai multe operații bazate pe anumite criterii.
De exemplu, poate este necesar să se repete o anumită secvența dintr-un script de mai multe ori, sau să se efectueze o operație anume doar dacă una sau mai multe condiții sunt adevărate. (exemplu: să se permită logarea unui user pe un website doar dacă parola introdusă este validă).
1.4.1 Instrucțiuni condiționate
Instrucțiunile condiționate oferă posibilitatea de a stabili anumite decizii în limbaje scripting ca PHP. De regulă, instrucțiunile condiționate decid dacă o parte a unui script este executat sau nu, în funcție de rezultatul unei expresii. (de exemplu, dacă o expresie returnează o valoare de tip boolean true sau false).
PHP suportă trei inscrucțiuni de decizie:
if
if… else
switch
Instrucțiunea if
Instrucțiunea if permite evaluarea unei expresii, iar dacă condiția respectivă este îndeplinită se va executa un anumit bloc de instrucțiuni. Pentru construirea unei structuri de control if, se începe cu prima linie care conține expresia care trebuie evaluată, aflată între paranteze. Dupa stabilirea condiției, a doua etapă presupune specificarea instrucțunilor care se vor executa daca expresia evaluată este adevărată, acestea fiind plasate intre acolade.
Sintaxa:
if (conditie) { bloc de instructiuni }
Instrucțiunea if… else
Instrucțiunea if permite utilizatorului să specifice ce se va întâmpla dacă o expresie este evaluată ca adevărată, însă această formă a instrucțiunii nu oferă posibilitatea de specifica o altă acțiune dacă a rezultat faptul că evaluarea expresiei este falsă. Astfel, există instrucțiunea if… else care permite efectuarea unor acțuni dacă expresia evaluată e falsă.
Sintaxa structurii if…else este acceasi cu instrucțiunea if, cu excepția că poate exista și o ramură alternativă else care poate fi utilizată pentru a specifica o acțune alternativă.
Sintaxa:
if (conditie) { bloc de instructiuni 1 }else{
bloc de instructiuni 2 }
Instrucțiunea switch
Instrucțiunea switch este utilizată atunci când trebuie să se evalueze un număr mare de expresii, astfel se poate evita folosirea structurii if având foarte multe ramuri de else.
Se poate introduce un număr nelimitat de cazuri, atâtea cât este nevoie de a verifica dacă valoarea instrucțiuni switch coincide cu valorile posibile specificate. Dacă s-a găsit o valoare corespunzătoare expresiei atunci, se execută instrucțiunile asociate cazului respectiv. Instrucțiunea break are rolul de a evita executarea restului de cazuri posibile dacă s-a îndeplinit o condiție, în timp ce instrucțiunea default specifică acțiunea standard care se va lua dacă nu s-a găsit nicio soluție.
Sintaxa:
switch (condiție)
{
case 1:
bloc de instrucțiuni dacă condiție = 1;
break;
case 2:
bloc de instrucțiuni dacă condiție = 2;
break;
case 3:
bloc de instrucțiuni dacă condiție = 3;
break;
default:
bloc de instrucțiuni dacă condiție este diferit de 1 și 2;
break;
}
1.4.2 Instrucțiuni de ciclare
Este acceptat faptul că calculatoarele sunt performante în efectuarea de operații repetitive de un număr infinit de ori, făcând acest lucru foarte rapid. Este de asemenea cunoscut că un calculator nu va face nimic până nu îi este specificat de programator ce să facă.
Instrucțiunile de ciclare sunt mecanismul primar prin care se spune calculatorului să efectueze aceeași operație în repetate rânduri pâna când una sau mai multe criterii sunt îndeplinite.
PHP suportă patru inscrucțiuni de ciclare:
for – execută un bloc de instrucțiuni de un anumit numar de ori.
while – execută un bloc de instrucțiuni atâta timp cât o condiție este adevărată.
do…while – execută un bloc de instrucțiuni o singură dată, apoi se evaluează o anumită condiție, iar cât timp aceasta este adevărată se repetă execuția blocului de instrucțiuni.
foreach – execută un bloc de instrucțiuni pentru fiecare element dintr-un array.
Instrucțiunea for
Instrucțiunea for se folosește atunci când se cunoaște de câte ori trebuie să se execute un anumit bloc de instrucțiuni.
Sintaxă:
for (inițializare; condiție; incrementare)
{
bloc de instrucțiuni;
}
Instrucțiunea while
Instrucțiunea while se caracterizează prin faptul că execută un bloc de instrucțiuni atâta timp cât o expresie testată este adevărată.
Sintaxa:
while (condiție)
{
bloc de instruțiuni;
}
Exemplu cu instrucțiunea while, folosit și în aplicație, care afișează o listă de anunțuri împreună cu căteva detalii despre fiecare:
<?php
while($row = mysql_fetch_array($sql)) {
$idanunt = $row['id_anunt'];
$titlu = $row['titluanunt'];
$companie = $row['numefirma'];
$oras = $row['numeoras'];
$domeniu = $row['numedomeniu'];
$output .=<<<HTML
<br>
<table id="anunt">
<tr>
<td class='left'><a href="detaliu_anunt.php?id=$idanunt" style="color: blue; text-decoration: none">$titlu</a><br>Companie: $companie<br>Domeniu: $domeniu</td>
<td class='right'>$oras</td>
</tr>
</table>
HTML;
}
?>
Instrucțiunea do… while
Structura do… while va executa un bloc de instrucțiuni cel puțin odată, pentru ca apoi să se execute din nou dacă condiția impusă este adevărată.
Sintaxa:
do
{
bloc de instruțiuni;
}while (condiție);
Instrucțiunea foreach
Instrucțiunea statement is used to loop through arrays. For each pass the value of the current array element is assigned to $value and the array pointer is moved by one and in the next pass next element will be processed.
Instrucțiunea are rolul de a parcurge structuri de tip array. Prin utilizarea foreach se realizează o iterație asupra tuturor elementelor unui vector sau array. Astfel, această instrucțiune nu poate fi utilizată pentru variabile de alt tip decât cel array, deoarece acest lucru va conduce la erori.
Sintaxa:
foreach (array as valoare)
{
bloc de instruțiuni;
}
1.5 Funcții în PHP
O funcție este un bloc de instrucțiuni care e reprezentat printr-un nume și efectuează o anumită sarcină, cu posibilitatea de acționa asupra unui set de valori date, sau parametri, putând să returneze o singură valoare. Funcțiile au un timp de compilare mic, necontând de câte ori sunt apelate, ele sunt compilate o singurî dată într-o pagină. De asemenea, ele sunt fiabile deoarece permit rezolvarea de bug-uri într-un singur loc, nefiind nevoie să se intervină acolo unde se execută de fiecare dată secvența respectivă. Totodată, o funcție are rolul de a izola secvențe de cod care efectuează anumite sarcini, oferind fiabilitate și din acest punct de vedere.
1.5.1 Apelarea unei funcții
Într-un program PHP o funcție poate fi predefinită (funcții incluse în limbajul PHP) sau poate fi definită de utilizator. Indiferent de originea lor, toate funcțiile sunt evaluate în același fel:
$valoare = nume_funcție( [ parametru, … ] );
Numărul de parametri diferă de la funcție la funcție și poate chiar varia pentru aceeași funcție. Ca parametri pentru o funcție, se poate utiliza orice expresie validă și e necesar să fie introduși în ordinea corectă prevăzută de funcție. O funcție poate preciza ce parametri ar putea lua și la ce valori se poate ajunge.
1.5.2 Definirea unei funcții
Pentru a defini o funcție se utilizează sintaxa:
funcție [&] nume_funcție ( [ parametru [, … ] ] )
{
bloc de instrucțiuni,
}
Blocul de instrucțiuni poate să includă HTML. Se poate declara o funcție PHP care nu conține deloc cod PHP. Numele funcției poate fi orice șir de caracter care începe cu o literă și este urmat de zero sau mai multe litere, underscore, sau orice alte caracatere. Numele funcțiilor sunt case-insensitive, așadar, spre exemplu, se poate apela funcția sin() ca sin(1), SIN(1), SiN(1), deoarece toate aceste variante fac referire spre aceeași funcție.
De regulă, funcțiile returnează o valoare. Pentru a returna o valoare, se utilizează instrucțiunea return prin scrierea acesteia în interiorul funcției. Când se execută instrucțiunea return, va incheia funcția și va întoarce valoarea argumentului sau ca valoare a funcției.
Exemplu unde putem apela funcția respectivă îmtr-o pagină PHP, iar la deschiderea acesteia se va afișa mesajul concatenat:
<?php
function strcat($stânga, $dreapta) {
return $stânga . $dreapta;
}
$primul = "Aceasta este ";
$aldoilea = " o pagina WEB!";
echo strcat($primul, $aldoilea);
?>
1.5.3 Parametrii unei funcții
O funcție poate avea un număr arbitrar de argumente, declarândule la definirea funcției.
Există două moduri de a transmite parametrii unei funcții. Primul și cel mai utilizat este cel de transmitere prin valoare. Celălalt mod este de transmitere prin referință.
Transmiterea parametrilor prin valoare
În majoritatea cazurilor, parametri se pasează prin valoare. Argumentul este orice expresie validă. Expresia este evaluată, iar valoarea rezultată este atribuită unei variabile din funcție.
Transmiterea parametrilor prin referință
Transmiterea prin referință permite accesul direct al unei funcții către o variabilă. Pentru a fi transmis prin referință, argumentul trebuie să fie o variabilă, se indică faptul că un anumit argument a unei funcții este transmis prin referință trecând numele variabilei în lista parametrilor împreună cu caracterul ampersand (&) .
Parametrii cu valori implicite
Câteodată, este nevoie ca o funcție să accepte un anumit parametru în anumite cazuri. De exemplu, când se apelează o funcție care returnează preferințele pentru un site. Funcția va lua un parametru cu numele preferinței returnate. Acest lucru se realizează folosind valori implicite.
Pentru a specifica un parametru implicit, se atribuie valoarea parametrului în declarația funcției. Valoarea atribuită parametrului ca valoare implicită nu poate fi o expresie complexă, poate fi doar o constantă.
O funcție poate avea un număr arbitrar de parametri cu valori implicite. Desigur, aceștia trebuie introduși după toți parametri care nu au astfel de valori implicite.
Funcții cu număr variabil de parametrii
Există funcții care pot avea un număr variabil de argumente. Pentru a declara o funcție cu un număr variabil de argumente, aceasta se va declara fără parametrii.
function nume_funcție( ) {
// instrucțiuni
}
PHP oferă trei funcții predefinite care se folosesc pentru a accesa parametri funcției noastre:
func_get_args() – returnează un array cu toți parametrii transmiși funcției
func_get_args() – returnează numărul de parametrii a unei funcții
func_get_arg() – returnează un anume parametru din funcție
1.5.4 Variabile de tip funcție
PHP oferă posibilitatea de a apela funcții având ca parametru valoarea unei variabile. De exemplu, folosind funcția switch care are o variabilă ca argument, pentru a determina care funcție să se execute:
switch($funcție) {
case 'prima':
funcție1( );
break;
case 'a_doua':
funcție2( );
break;
}
În acest caz, se poate folosi o funcție de tip variabilă pentru a apela funcția dorită. Pentru a crea o astfel de funcție, se includ parametrii funcției între paranteze după variabilă. Dacă o funcție cautată nu este găsită, o eroare va apărea în executarea codului respectiv. Ca metodî de prevenire, se poate folosi funcția predefinită function_exists() pentru a determina dacă există sau nu o soluție (funcție) pentru variabilă înainte de apelarea funcției.
if(function_exists($funcție)) {
$funcție(); // dacă $funcție e "prima" funcția funcție1( ) se va apela, etc…
}
1.6 Formulare HTML
O parte importantă în dezvoltarea unei aplicații WEB implică gestionarea interacțiunii cu utilizatorul prin intermediul pagini WEB. Una din cele mai întâlnite sarcine în dezvoltarea WEB presupune oferirea către utilizator a unui formular pentru a colecta informații, iar apoi procesarea acelor informații.
.6.1 Crearea formularelor HTML
Formularele web sunt create utilizând elementul HTML <FORM> împreună cu diverse obiecte grafice (ca o linie de text, un buton etc.)
Formularele HTML sunt folosite pentru a colecta informații de la utilizator. De regulă, utilizatorul introduce informații în formular prin completarea de câmpuri de text, selectând o anumită informație dintr-o listă sau alegând dintr-un meniu de tip “dropdown”. După completarea formularului informațiile sunt transmise către server pentru procesare.
Un formular sunt create utilizând tag-ul <form>. Acest element conține un atribut care specifică scriptului că trebuie să transmită mai multe informații colectate de la utilizator către server. Informațiile pot fi transmise folosind două metode, prin GET sau POST. Cu GET, toata informația este trimisă prin intermediul adresei URL, iar POST este folosit, de regulă, pentru volume mari de informații.
1.6.2 Câmpuri de text
Cel mai întâlnit obiect într-un formular este câmpul de text. Acesta constă într-o linie de text în interiorul formularului în care utilizatorul poate scrie o informație. Sintaxa este urmatoarea:
<input type="TEXT" name="nume_obiect" id="id_obiect" value="valoare" size="30">
Există câteva atribute a unui câmp de text:
type – specifică faptul ca tipul câmpului este de tip TEXT.
name – numele prin intermediul căruia se va face referire în programul PHP/JavaScript.
id – este utilizat atunci când se accesează câmpul de text folosind metoda getElementById()
value – inserează în câmpul de text o valoare inițială (opțional).
size – specifică numărul maxim de caractere care poate fi introdus în câmpul de text
1.6.3 Zone de text, Comentarii
O zonă de text este creată folosind tag-ul ;textarea: și se diferă de un câmp de text prin faptul că permie utilizatorului să introducă mai multe linii de text. Există câteva atribute care permit controlul asupra unui obiect de tip TextArea, stabilind marimea în funcție de numărul de lini și coloane, dacă se permite ascunderea textului etc.
Pentru a crea o zonă de text se specifică prima dată atributele rows și cols în interiorul tag-ului <textarea>. Atributul rows va stabilii înălțimea câmpului în linii de text iar atributul cols stabilește lungimea unei linii de text. De asemenea, există doua opțiuni pentru atributul wrap, virtual și physical, care permit stabilirea modului în care textul sa va comporta atunci când s-a depăși spațiul total al cămpului.
<textarea name="nume" rows="10" cols="60" wrap="virtual"> Un text inițial </textarea>
1.6.4 Butoane
Butoanele sunt probabil al doilea cel mai folosit element în dezvoltarea unui formular HTML. Există trei tipuri de butoane. Butoanele utilizează și ele tag-ul <input>, atributul type este apoi folosit pentru a specifica ce fel de buton se crează. Cele 3 tipuri sunt:
type="BUTTON" – Un buton simplu care nu efectuează nicio acțiune atâta timp cât nu I se atribuie un eveniment.
type="SUBMIT" – atunci când este apăsat are rolul de a transmite datele din formular către server flosind setările definite în tag-ul <Form>. Dacă atributul onsubmit s-a specifica la crearea formularului atunci acesta se va executa înainte ca informațiile din formular sa fie procesate.
type="RESET" – la apăsarea lui toate câmpurile formularului se vor elibera, sau se vor reseta la valorile inițiale (dacă s-a specificat vreuna).
Un buton de tip submit poate fi creat astfel:
<form name="registerForm" method="GET" action="/subscribe.php">
<input type="TEXT" name="myName" value=""/>
<input type="TEXT" name="myPhone" value=""/>
<input type="SUBMIT" name="buttonName" value="Procesare">
</form>
1.6.5 Liste Drop-Down / Select
Un obiect de tip select oferă o lista de opțiuni din care utilizatorul poate alege (denumit și CombBox în alte medii de interfața grafică). Un element de tip select se crează folosind tag-ul <select> împreună cu tag-ul <option> care specifică optțiunile care se vor afișa în lista respectivă.
Sintaxa este următoarea:
<select>
<option value=" opțiune" >opțiune1</option>
<option> opțiune2</option>
<option> opțiune3</option>
</select>
Există mai multe atribute a unei structuri select:
name – numele prin intermediul căruia se va face referire în programul PHP/JavaScript.
size – specifică câte opțiuni să fie vizibile la un moment dat. Standard, se afișează o singură opțiune.
multiple – permite alegerea de opțiuni multiple dintr-o listă.
value – specifică ce va fi trimis server-ului dacă o anumită opțiune este selectată. Aceasta nu este întotdeauna aceeași cu numele opțiuni din meniu.
De asemenea se poate stabili o opțiune default care va fi afișată și trimisă dacă utilizatorul nu a selectat altceva din lista respectivă, folosind elementul <option selected>.
1.6.6 Câmpuri de tip parolă
Ca orice alt câmp HTML, este folosit pentru a colecta date de la utilizator, dar limitat la o parolă sau un id care nu vor fi vizibile pe ecran atunci când vor fi introduse. Pe măsură ce utilizatorul completează câmpul respectiv, caractere de tip '*' vor apărea pentru fiecare caracter inserat.
Sintaxa unui câmp de tip parolă este următoarea:
<input type="PASSWORD" name="nume" size="10" />
1.7 Sesiuni în PHP
Sesiunile reprezintă o modalitate a limbajului PHP de a păssra anumite informații de la o pagină la alta. Cu alte cuvinte, chiar dacă accesăm o altă pagină anumite informații vor ramâne salvate în sesiune, și vor putea fi folosite în pagina curentă.
Sesiunile sunt foarte uzuale, de exemplu, în scripturile de autentificare pe site. În momentul în care se face autentificarea, se compară numele și parola cu cele din baza de date, iar dacă sunt corecte sunt salvate într-o sesiune. În momentul în care accesăm o alta pagină, afisăm în aceasta anumite informații pe baza acestor sesiuni în funcție de fiecare persoană autentificată.
Sesiunile pot depozita o cantitate mai mare de informații, spre deosebire de cookie. Un alt avantaj al acestora este că rămân salvate doar pe perioada în care browser-ul este deschis. După închiderea browser-ului acestea vor disparea. În acest fel se îngreunează munca răufăcătorilor de a fura sesiunile altuia, spre deosebire de cookie-uri care pot fi furate oricând (dacă nu există prtecție).
1.7.1 Crearea unei sesiuni
Pentru a putea lucra cu sesiuni, este necesară introducerea funcției session_start() înainte de a fi trimise orice informații către browser. De regulă, funcția se scrie pe prima linie din fișier în fișier pentru a fi vizibilă și pentru a ști rapid dacă funcția există sau nu.
Pentru a crea o sesiune se flosește sintaxa:
$_SESSION['nume'] = 'valoare'
Unde "nume" reprezintă numele sesiunii, iar "valoare" reprezintă valoarea pe care o va avea aceasta. Exemplu:
<?php
session_start();
?>
<head>
<title>Titlul paginii</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
if(isset($_SESSION['user'])) {
echo "Bine ai venit $_SESSION['user']";
}
?>
</body>
</html>
Acest exemplu afisează un mesaj dupa ce s-a facut autentificarea și s-a salvat în sesiune numele respectiv folosind sintaxa $_SESSION['nume'] = 'valoare'. Funcția isset() verifică dacă sesiunea respectivă are valoare diferită de NULL (daca există), dacă are, afișează mesajul respectiv.
1.7.2 Protejarea informatiilor din sesiuni
Deoarece persoane neautorizate pot avea acces la alte sesiuni, este bine ca acestea sa fie criptate cu funcțiile md5(), sha1() etc. În momentul în care se verifică dacă sesiunea are valoare, se face un select țn baza de date dupa sesiunea respectivă, dacă aceasta există înseamnă că persoana respectivă este cea autentificată. Desigur țn baza de date trebuie ca informația respectivă sa fie tot criptată cu același algoritm cu care s-a criptat si valoarea sesiunii.
1.7.3 Ștergerea sesiunilor
Variabila $_SESSION reprezintă de fapt o matrice, în care fiecare $_SESSION['nume_sesiune'] este un element al acesteia. Pentru a șterge toate elementele acestui array se folosește funcția unset($_SESSION). Daca dorim ștergerea doar unui anumit element din matrice folosim unset($_SESSION['nume_sesiune']). Aceste sesiuni sunt salvate în fișiere temporare. Pentru a șterge toate aceste date se folosește funcția session_destroy().
1.8 PHP și MySQL
O bază de date lucrează împreună cu consola MySql, așadar PHP are suport pentru lucrul cu bazele de date. Tot ce se poate face cu consola MySql se poate face și dintr-un script php.
1.8.1 Conectarea la serverul Mysql
Pentru a putea utiliza o bază de date cu ajutorul php, este necesară conectarea la serverul respectiv și apoi accesarea bazei de date. Pentru a face acest lucru se folosește funcția mysql_connect() ce are sintaxa:
mysql_connect('nume_gazda', 'nume_utilizator', 'parola')
Unde "nume_gazda" reprezintă serverul la care se face conectarea, "nume_utilizator" este numele utilizatorului creat, iar "parola" este parola folosita de acel utilizator. Pe localhost, de obicei numele serverului este "localhost", numele de utilizator este "root" si fară parolă.
Functia returnează TRUE în caz de succes, altfel returneaza FALSE. După execuatarea scriptului, pentru închiderea cnexiunii la server se folosește funcția mysql_close(), însa nu este neaparată nevoie de aceasta deoarece conexiunea se închide singură după ce se execută scriptul.
1.8.2 Conectarea la baza de date
Pentru conectarea la baza de date se folosețte funcția mysql_select_db() ce are următoarea sintaxa:
mysql_select_db('baza_date', conexiune)
Unde "baza_date" reprezinăa numele bazei de date, iar "conexiune" reprezintă sintaxa pentru conectarea la serverul Mysql.
Exemplu (din aplicație) de conectare la baza de date
<?php
$server = "localhost";
$database = "firstjob";
$username = "root";
$password = "halep";
// conectarea la serverul MySQL
$connect = mysql_connect($server,$username,$password) or die('Nu ma pot conecta la server');
// selecteaza baza de date firstjob
mysql_select_db($database, $connect) or die('Nu ma pot conecta la baza de date');
?>
Prima dată se memorează datele de autentificare, baza de date la care se dorește conectarea, precum și numele serverului. Apoi se apelează comanda mysql_connect() având ca parametri variabilele care conțin datele de autentificare, care va efectua conectarea către server..
Dacă conectarea s-a efectuat cu succes atunci se poate selecta și baaa de date dorită. Folosind comanda mysql_select_db().
1.8.3 Afișarea erorilor MySql
Biblioteca MySql din Php dispune de două funcții care fac referire la erorile apărute în execuția scriptului: mysql_errno() și mysql_error(). Funcția mysql_errno() returnează un cod numeric de eroare, iar funcția mysql_error() returnează informații despre eroarea respectivă. Aceste erori sunt disponibile numai dacă s-a reușit conectarea la serverul MySql.
Pentru a afișa o eroare a bazei de date, de regulă se utilizează funcția die() care are rolul de a opri de tot execuția scriptului și de a afișa pe o pagină nouă eroarea respectivă. Ca parametrii, funcția die() poate avea un text definit de programator cu privire la eroare respectivă sau poate avea și mysql_error() care returnează acel cod numeric al erorii.
1.8.4 Funcția mysql_query()
Aceasta este o funcție foarte importantă deoarece în funcție de rezultatul interogarii, returnează TRUE sau FALSE. Funcția are urmatoarea sintaxă:
mysql_query('interogare')// unde "interogare" reprezintă interogarea făcută la serverul MySql
Exemplu folosit în aplicație:
<?php
$query = "SELECT id_anunt, titluanunt, numefirma, numeoras, numedomeniu
FROM anunturi
WHERE titluanunt LIKE '%$titlu%'";
$sql = mysql_query($query);
?>
1.8.5 Crearea tabelelor
Crearea unui tabel presupune numirea tabelului și definirea coloanelor împreună cu tipul acestora. Sintaxa pentru crearea unui tabel este de forma:
CREATE TABLE nume_tabel(
nume_col1 tipdata,
nume_col2 tipdata,
nume_col3 tipdata,
…..
nume_colnt ipdata,
PRIMARY KEY( una sau mai multe coloane )
);
Câteva tipuri de date, cele mai utilizate, sunt:
CHARACTER – pentru șiruri de caractere
BOOLEAN – memrează valori de tip TRUE sau FALSE
INTEGER – pentru numere și cifre
VARCHAR – poate conține atât numere cât și valori de tip string.
Exemplu:
<?php
CREATE TABLE `anunturi` (
`id_anunt` int(11) NOT NULL,
`numefirma` varchar(30) NOT NULL,
`titluanunt` varchar(30) NOT NULL,
`Domeniu` int(10) NOT NULL,
`Oras` int(10) NOT NULL,
`nivel` varchar(30) NOT NULL,
`tip` varchar(30) NOT NULL,
`cerintejob` varchar(1000) NOT NULL,
`descrierefirma` varchar(500) NOT NULL,
`beneficii` varchar(500) NOT NULL,
`contact` varchar(100) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;?>
?>
Folosing comanda CREATE TABLE împreună cu numele tabelului se generează tabelul iar între acolade sunt introduse toate datele(coloanele) necesare anunțului precum și tipul acestora..
1.8.6 Inserarea datelor în tabel
În principal, comanda INSERT se flosește pentru a adăuga noi rânduri într-un tabel al bazei de date. Sintaxa este de forma:
INSERT INTO TABLE_NAME (column1, column2, column3,…columnN)]
VALUES (value1, value2, value3,…valueN);
De exemplu la înregistrarea unui utilizator pe site, se folosește comanda INSERT pentru a memora datele de autentificare a acestuia într-o tabelă (users):
<?php
$uname = $_POST['reg_username'];
$email = $_POST['reg_email'];
$pass = $_POST['reg_pass'];
mysql_query("INSERT INTO users (Username, Parola, Email) VALUES ('$uname', '$pass', '$email')");
?>
1.8.7 Modificarea datelor in tabel
Comanda UPDATE se utilizează atunci când se dorește mdificarea anmitor rânduri / înregistrări existente deja într-un tabel. Se poate flosi împreună cu instrucțiunea WHERE pentru a modidfica rândurile selectate, altfel se vor modifica toate înregistrarile tabelului. Comanda are următoarea sintaxă:
UPDATE table_name
SET column1 = value1, column2 = value2…., columnN = valueN
WHERE [condition];
1.8.8 Preluarea rezultatelor interogărilor SELECT
În continuare sunt prezentate modurile prin care se pot prelua rezultatele obținute în urma executării comenzii SELECT.
Funcția mysql_fetch_assoc()
Această funcție adaugă datele într-o matrice unde pentru fiecare element avem chei cu numele coloanelor iar valoarile lor sunt datele din rândul respectiv.
Funcția mysql_fetch_array()
Această funcție, ca și mysql_fetch_assoc(), adaugă datele într-o matrice unde pentru fiecare element avem chei cu numele coloanelor iar valoarile lor sunt datele din rândul respectiv.
Al doilea atribut al funcției mysql_fetch_array() poate fi:
MYSQL_BOTH – acesta crează un array în care cheile pot fi atât numerele coloanelor, cât și numele acestora.
MYSQL_ASSOC – acesta crează un array în care cheile pot fi doar numele coloanelor.
MYSQL_NUM – acesta returnează un array în care cheile pot fi doar numerele coloanelor.
Acest parametru este opțional, nu trebuie adăugat obligatoriu. Însa dacă nu este adăugat se utilizează în mod implicit atributul MYSQL_BOTH.
Funcția mysql_fetch_row()
Această funcție adaugă datele într-o matrice unde fiecare cheie conține numărul coloanei respective. Funcția este asemenea cu mysql_fetch_array() când se folosește atributul MYSQL_NUM.
Funcția mysql_fetch_object()
Această funcție adaugă datele în perechi de forma $row->coloana.
Capitolul 2. Despre dezvoltarea aplicației web
Aplicația constă într-un website dedicat căutării de locuri de munca.
Pentru dezvoltarea aplicației am folosit limbajul de programare PHP, elemente HTML împreună cu limbajul de stilizare CSS. De asemenea, platforma conține și o bază de date unde sunt stochate informații necesare funcționarii eficiente a aplicației.
Platforma constă în 2 secțiuni importante:
Secțiunea pentru companii
Secțiunea pentru candidați
Secțiunea pentru companii cuprinde: o pagină care permite adăugarea de noi anunțuri, o pagină de profil a companiei, o pagină care permite administrarea anunțurilor, vizualizarea aplicanților la job-ul respectiv.
Secțiunea pentru candidați conține o pagină de profil a candidatului, afișarea unei liste cu toate anunțurile adăugate de către companii, un modul de căutare de job-uri (cu posibilitatea de a filtra căutarea după oraș și domeniu), o pagină detaliată a fiecărui anunț unde se găsesc mai multe detalii și totodată posibilitatea de a aplica pentru acel job.
2.1 Baza de date a site-ului
Cea mai importantă parte a aplicației este baza de date pentru că fără ea nu s-ar putea stocha și folosi informațiile eficient și sigur.
Baza de date a site-ului conține tabelele anunturi, candidati, companii, users, aplicari structurate astfel:
Figura 2.2.1 Relația dintre tabele ale bazei de date.
Figura 2.2.2 Tabele bazei de date
2.1.1 Conectarea la baza de date
Conectarea la baza de date a site-ului este primul lucru care se execută pe orice pagină și constă în următorul lucru:
<?php
$server = "localhost";
$database = "firstjob";
$username = "root";
$password = "halep";
// conectarea la serverul MySQL
$connect = mysql_connect($server,$username,$password) or die( mysql_error() );
// selecteaza baza de date firstjob
mysql_select_db($database, $connect) or die( mysql_error() );
?>
Prima dată se memorează datele de autentificare, baza de date la care se dorește conectarea, precum și numele serverului. Apoi se apelează comanda mysql_connect() având ca parametri variabilele care conțin datele de autentificare, care va efectua conectarea către server..
Dacă conectarea s-a efectuat cu succes atunci se poate selecta și baaa de date dorită. Folosind comanda mysql_select_db(). Dacă nu s-a reușit conectarea la server sau la baza de date atunci funcția die va opri execuția scriptului și va afișa un mesaj de eroare pe o pagină nouă, conform funcției mysql_error().
2.2 Structura în pagina web
Figura 2.2.1 Structura pagini web.
Fiecare pagină a site-ului este formată din partea de header (partea de sus a paginii), care conține o bară de stare a utilizatorului care accesează pagina web, apoi o imagine cu sigla / logo-ul pagini împreună cu un chenar cu o serie de imagini derulante cu diferite mesaje care caracterizează platforma respectivă. Partea de header mai conține și un meniu cu toate celelalte pagini ale site-ului și care permite navigarea între acestea.
Partea de mijloc (conținutul propriu-zis al paginii) care conține diferite date și elemente (bara de căutare, formulare etc): Această secțiune este diferită pe fiecare pagina a site-ului.
În partea de jos a paginii există footer-ul, care este parte comună tuturor paginilor și conține mai multe link-uri utile legat de website.
2.3 Bara de stare a utilizatorului
Această bară poate avea 2 stări: o stare când utilizatorul accesează site-ul ca vizitator (figura 2.1) și o stare a utilizatorului autentificat (figura 2.2).
Figura 2.3.1 Bara de stare a utilizatorului neautentificat (vizitator)
Elementul din figura de mai sus cuprinde un link către pagina de login a utilizatorului. În cazul în care acesta nu este încă înregistrat pe site, există un alt link de Înregisrare care are un mic submeniu din care se poate alege tipul contului care se dorește a fi creat (companie sau candidat). După alegerea tipului de cont dorit se afișează un formular de înregistrare.
Figura 2.3.2 Bara de stare a utilizatorului autentificat.
În figura 2.2, în cazul în care utilizatorul este logat, bara de stare afișează un link cu numele acestuia către profilul personal. Dacă se dorește terminarea sesiunii (deconectare din cont), se poate face accesând linkul de Ieșire.
2.4 Meniul principal
Tot în partea de header, aplicația este prevăzută cu un meniu care oferă posibilitatea de a naviga de la o pagină la alta (figura 2.3). Pagina principală este ceea care duce către secțiunea principală a site-ului (este și cea care se afișează atunci când se deschide site-ul). Opțiunea Adauga Anunt este dedicată companilor și trimite către o pagină care cuprinde un formular cu adăugare de noi anunțuri. Meniul Cauta job este dedicat utilizatorilor candidați și oferă o bară de căutare unde se poate căuta job-ul dorit în funcție de preferințe. Următorul meniu, Anunturi, afișează o pagină cu toate anunțurile / job-urile existente pe site. Opțiunea Despre noi oferă informații despre platforma FirstJob, iar meniul Contact trimite către o pagină care permite contactarea unei persoane care administrează site-ul.
Figura 2.4.1 Meniu
2.4 Elementul slideshow al paginii
În partea de sus a pagini se află o structură tip slideshow care afișează și derulează mai multe mesaje caracteristice site-ului. Mesajele respective sunt de fapt câteva imagini care se schimbă de la una la alta, având și o tranziție de tip fade in fade out.
Figura 2.4.1 Prima imagine din Slideshow
Figura 2.4.1 A doua imagine care se afișează
Figura 2.4.1 Ultima pagină a Slideshow-ului
Procesul prin care se derulează acest lucru este:
<div class="slide-container">
<img class="slide1" src="images/1.png">
<img class="slide2" src="images/2.png">
<img class="slide3" src="images/3.png">
</div>
Mai întâi am creat partea HTML unde ce cnține un element de tip div unde urmează să se afișeze imaginile respective. În interiorul structuri se specifică sursele fiecărei imagini.
Derularea propriu-zisă a imaginilor și efectele de tranziție ale acestoră sunt create cu limbajul CSS astfel:
.slide-container {
position: relative;
height: 400px;
width: 711px;
overflow: hidden;
margin: 0 auto;
}
.slide-container img {
position: absolute;
top: 0;
left: 0;
opacity: 0;
}
.slide1 { -webkit-animation: fade 12s; }
.slide2 { -webkit-animation: fade 12s 4s; }
.slide3 {
-webkit-animation: fade 12s 8s;
-moz-animation-fill-mode:forwards; }
@-webkit-keyframes fade {
0% { opacity: 0; }
10% { opacity: 1; }
20% { opacity: 1; }
30% { opacity: 0; }
100% { opacity: 0; }
}
Pentru efectul de tranziție am creat funcția fade care nu face altceva decât să crească și să descrească opacitatea imagini treptat.
Fiecare imagine se deruluează în funcție de timpul specificat, astfel prima imagine se va afișa normal în primul moment, apoi a doua imagine apare după 4 secunde față de momentul afișarii primei imagini, iar a treia apare după 8 secunde față de prima imagine.
2.5 Înregistrarea utilizatorilor
Pentru creare unui nou cont pe site există două opțiuni: prima este accea a creării unui cont de tip companie (destinat utilizatorilor care publică și administrează anunțurile pe site), iar cea dea doua opțiune este crearea unui cont de tip candidat (destinat acelor utilizatori care sunt în căutarea anunțului / job-ului dorit)
2.5.1 Crearea unui cont de tip companie
Pentru crearea unui cont destinat companiei se accesează din bara de stare a utilizatorului submeniul de Înregistrare și se alegea crearea unui cont de tip companie care va afișa o pagină cu următorul formular:
Formularul conține următoarele câmpuri, unde cele marcate cu * sunt obligatorii:
O linie de text pentru introducerea numelui de utilizator
O linie de text destinată numelui companiei
Un element de tip select pentru selectarea domeniului de muncă corespunzător companiei
Două cămpuri de text pentru scrierea unei adrese de email, respectiv confirmarea acesteia
O altă listă de tip select pentru alegerea orașului
O linie de text pentru introducerea numărului de telefon al companiei, acesta nefiind obligatoriu să fie completat
Alte 2 câmpuri de text de tip parolă, unul pentru scrierea parolei dorite iar celalalt pentru confirmarea acesteia.
Butonul de tip submit pentru crearea contului.
Figura 2.5.1.1 Formular pentru crearea unui cont pentru companie
După completarea formularului și acționarea butonului de Înregistrare aplicația intră într-o serie de verificari cu privire la datele introduse de către utilizator (mai exact dacă au rămas câmpuri necompletate, dacă deja există numele de utilizator în baza de date, dacă adresa de email este validă și dacă parola a fost introdusă corect), iar dacă totul este în regulă se vor intrduce în baza de date datele utilizatorului și se va afișa un mesaj de succes.
Figura 2.5.1.2 Afișarea unui mesaj de succes în creare contului
Datele de înregistrare sunt introduse în baza de date astfel:
<?php
$result = mysql_query("INSERT INTO users (Username, Parola, Email) VALUES ('$uname', '$pass1', '$email1')");
$rowSQL = mysql_query( "SELECT MAX( id ) AS max FROM `users`;" );
$row = mysql_fetch_array( $rowSQL );
$id_companie = $row['max'];
mysql_query("INSERT INTO companii (NumeCompanie, Oras, Telefon, Domeniu, userid) VALUES ('$numecomp', '$oras', '$telefon', '$domeniu', '$id_companie')") or die('Eroare creare cont companie!');
?>
În primă fază se introduc în tabela users principalele date de autentificare (numele de utilizator, parola și email), iar apoi în variabila $id_cmpanie se memorează ultimul id al utilizatorului adăugat care va fi inserat împreună cu celelalte date ale utilizatorului (numele companiei, oras, domeniu, telefon, userid) în tabela companii.
Figura 2.5.1.3 Tabela users
În tabela users se introduc principalele date de autentificare: username, parla și email împreună. Fiecare user are un id unic.
Figura 2.5.1.4 Tabela companie
În tabela companie se introduc principalele date de autentificare: numele companiei, orasul, domeniul si telefon. Coloana user id este cheia straina care indică tipul utilizatorului.
2.5.2 Crearea unui cont de tip candidat
Pagina pentru crearea contului de candidat se accesează tot din submeniul de Înregistrare din bara de stare a utilizatorului și constă de asemenea într-un formular HTML ce cuprinde câmpurile necesare creării contului respectiv, dar cu mici deosebiri.
Figura 2.5.2.1 Formular pentru crearea unui cont pentru candidat
Formularul cuprinde următoarele câmpuri, unde cele marcate cu * sunt obligatorii:
O linie de text pentru introducerea numelui de utilizator
O linie de text destinată numelui
O linie de text pentru scrierea prenumelui
Un element de tip select pentru selectarea județului
Două cămpuri de text pentru scrierea unei adrese de email, respectiv confirmarea acesteia
O linie de text pentru introducerea numărului de telefon al companiei, acesta nefiind obligatoriu să fie completat
Alte 2 câmpuri de text de tip parolă, unul pentru scrierea parolei dorite iar celalalt pentru confirmarea acesteia.
Butonul de tip submit pentru crearea contului.
Ca și în cazul creării contului de tip companie, odată completat formularul și acționarea butonului de Înregistrare aplicația intră într-o serie de verificari cu privire la datele introduse de către utilizator (mai exact dacă au rămas câmpuri necompletate, dacă deja există numele de utilizator în baza de date, dacă adresa de email este validă și dacă parola a fost introdusă corect), iar dacă totul este în regulă se vor intrduce în baza de date datele utilizatorului și se va afișa un mesaj de succes.
Figura 2.5.2.2 Afișarea unui mesaj de succes în creare contului
Informațiile introduse de utilizator sunt preluate din formular și sunt introduse în baza de date astfel:
<?php
$result = mysql_query("INSERT INTO users (Username, Parola, Email) VALUES ('$uname', '$pass1', '$email1')");
$rowSQL = mysql_query( "SELECT MAX( id ) AS max FROM `users`;" );
$row = mysql_fetch_array( $rowSQL );
$id_candidat = $row['max'];
mysql_query("INSERT INTO candidati (Nume, Prenume, Judet, Telefon, userid) VALUES ('$nume', '$prenume', '$judet', '$telefon', '$id_candidat')") or die('Eroare candidat!');
?>
Prima dată se introduc în tabela users principalele date de autentificare (numele de utilizator, parola și email), iar apoi în variabila $id_candidat se memorează ultimul id al utilizatorului adăugat care va fi inserat împreună cu celelalte date ale utilizatorului (nume, prenume, judet, telefon, userid) în tabela candidati.
Figura 2.5.2.3 Tabela users
În tabela users se introduc principalele date de autentificare: username, parla și email împreună. Fiecare user are un id unic.
Figura 2.5.2.4 Tabela candidati
În tabela candidati se introduc principalele date de autentificare: numele companiei, orasul, domeniul si telefon. Coloana user id este cheia straina care indică tipul utilizatorului.
2.5.3 Autentificarea utilizatorilor pe site
Pentru a putea utiliza toate facilitățile site-ului, este necesară autentificarea utilizatorului folosind pagina de login, care poate fi accesată dând click pe linkul de autentificare din bara de stare a utilizatorului.
Pagina de autentificare constă de asemenea într-un formular HTML unde utilizatorul introduce datele de autentificare obținute la momentul înregistrării (mai exact numele de utilizator și parola).
Formularul este alcătuit din următoarele elemente :
Cămpul de tip text unde se introduce numele utilizator
Un alt câmp de text pentru parolă
Butonul de autentificare, care este de tip submit.
Figura 2.5.3.1 Pagina de autentificare
După completarea formularului și executarea butonului, se execută procesul de autentificare a utilizatorului pe site astfel:
<?php
$formok = true;
$username=$_POST['log_username'];
$password=$_POST['log_pass'];
$query = mysql_query("SELECT * FROM users WHERE Username = '$username' AND Parola = '$password'");
$count = mysql_num_rows($query);
if (empty($username)) {
$formok = false;
$nameErr = "<img src='eroareimg.png'> <strong>Nume utilizator</strong> este obligatoriu!";
}
if (empty($password)) {
$formok = false;
$passErr = "<img src='eroareimg.png'> <strong>Parola</strong> este obligatorie!";
}
if ($count == 1) {
$_SESSION['login_id']=$id;
$_SESSION['login_user']=$username; // Initializare sesiune
header("location: profile.php");
}else
{
$error = "<br>Nume sau parola incorecte!<br>";
}
?>
Prima dată se memorează valorile introduse de către utilizator în două variabile ($username și &password), apoi folosind comanda SQL SELECT se caută în tabela users un nume de utilizator care corespunde cu cel introdus de utilizator în formular. Dacă s-a găsit un rezultat se trece mai departe și se intră în contul utilizatorului (ce presupune începerea unei noi sesiuni și se va trimite către pagina de profil a acestuia), în schimb dacă nu s-a găsit user-ul introdus în baza de date atunci se va afișa un mesaj de eroare.
Figura 2.5.3.2 Afișare eroare
În cazul de mai sus numele de utilizator nu s-a găsit și astfel nu se poate efectua operația de autentificare. Așadar utilizatorul trebuie să acceseze pagina pentru crearea unui nou cont.
2.6 Bara de căutare
Bara de căutare se găsește atât pe pagina principală cât și pe pagina proprie destinată căutării de job-uri. Aceasta este creată sub forma unui formular HTML, astfel se permite preluarea datelor de la utilizator în vederea efectuării operației de căutare și de afișare a rezultatelor.
Figura 2.6.1 Bara de căutare
Formularul de căutare cuprinde următoarele elemente:
O linie de text care permite introducerea cuvintelor cheie după care să se efectueze căutarea. Câmpul este obligatoriu să fie completat, astfel căutarea va afișa un mesaj de eroare.
Un element de tip select care constă într-o listă cu principalele orașe. Această listă funcționează ca filtru al cautării, dacă se dorește căutarea unui job într-un anumit oraș. Acest câmp nu este obligatoriu să fie bifat.
O altă listă de tip select ce permite filtrarea căutarii în funcție de domeniul ales. De asemenea, și acest câmp poate să rămână necmpletat.
Odată completate câmpurile respective se poate procesa căutarea prin apăsarea butonului Cauta.
Procesul de căutare constă în preluarea datelor introduse de către utilizator și căutarea în baza de date (în tabela anunturi) titlul introdus. Interogarea bazei de date se face prin execuția cătorva comenzi SQL de forma:
SELECT nume_colana FROM nume_tabel WHERE nume_colana LIKE cuvinte_cheie;
Modul în care se face căutarea este:
SELECT id_anunt, titluanunt, numefirma, numeoras, numedomeniu
FROM anunturi
WHERE titluanunt LIKE '%$titlu%';
Comanda de mai sus selectează din baza de date toate informațile (coloanele) care se vor afișa atunci când se va găsi un rezultat cu job-ul respectiv, apoi prin comanda LIKE se verifică dacă cuvântul-cheie introdus în bara de căutare, memorat în variabila $titlu, există în coloana titluanunt a tabelului.
De exemplu dacă căutăm cuvântul-cheie "programator", fară niciun filtru se va afișă:
Figura 2.6.2 Exemplu de căutare
Rezultatul este afișat sub forma unui chenar având titlul job-ului după care s-a căutat (acesta fiind totodată un link către o pagină detaliată a anunțului respectiv), numele companiei, domeniul de muncă și orașul.
2.7 Pagina de Anunțuri
Această pagină afișează toate anunțurile existente pe site, fiecare anunț fiind încadrat într-un chenar având ca informații generale titlu anunțului (job-ul), numele cmpaniei, dmeniul de muncă și orașul.
Figura 2.7.1 Pagina de anunțuri
Secvența de cod care afișează lista cu toate anunțurile este următoarea:
<?php
$result = mysql_query("SELECT * FROM anunturi);
while($row = mysql_fetch_array($result)){
$idanunt = $row['id_anunt'];
$titlu = $row['titluanunt'];
$companie = $row['numefirma'];
$oras = $row['numeoras'];
$domeniu = $row['numedomeniu'];
?>
<table id="anunt">
<tr>
<td class="left">
<?php
echo '<a href="detaliu_anunt.php?id='.$idanunt.'" style="color: blue; text-decoration:none">'.$titlu.'</a><br>';
echo 'Companie: ' .$companie."<br>";
echo 'Domeniu: ' .$domeniu; ?>
</td>
<td class="right"><?php echo $oras; ?></td>
</tr>
</table>
<?php
}
?>
Mai întâi se interghează baza de date și se selectează din tabela anunturi coloanele necesare, apoi printr-o buclă while care verifică câte rezultate a returnat interogarea, se atribuie unor variabile valorile selectate pentru fiecare anunt (id_anunt, titluanunt, numefirma, numeoras, numedomeniu). După memorarea valorilor se afișează fiecare anunț sub forma unui chenar (bazat pe un tabel html cu un rând și 2 coloane) introducănd ca date ale anunțului variabilele tocmai create.
Dacă se dorește se poate da click pe titlul anunțului, astfel se va afișa o pagină detaliată pentru anunțul respectiv. Aici fiecare utilizator candidat poate vedea mai multe informații despre anunțul respectiv și de asemenea exisță un buton pentru a aplica la acel job.
Figura 2.7.2 Pagina detaliată a unui anunț
Dacă s-a aplicat pentru un job, atunci se preia id-ul utilizatorului curent autentificat, apoi se va introduce în tabele aplicari din baza de date id-ul respectiv împreuna cu id-ul anunțului la care s-a făcut aplicarea respectivă. De asemenea se va afișa un mesaj de succes.
Figura 2.7.3 După executarea butonului de aplicare se afișează un mesaj
2.8 Adăugarea unui nou anunț
Pagina de adăugare de noi anunțuri este destinată acelor utilizatori de tip companie, care pot adăuga un nou anunț completând următorul formular HTML:
Formularul conține mai multe câmpuri:
o linie de text pentru titlul anunțului (numele job-ului)
o linie de text cu numele companiei care adaugă noul anunț
o listă de tip select unde se poate selecta domeniul corespunzător
o altă listă pentru selectarea orașului
o lista de tip select cu privire la nivelul de studii (Liceu, Facultate, Master sau Doctorat)
4 câmpuri de tip textarea unde se pt introduce detalii despre cerințele job-ului, informații despre companie, beneficiile oferite de către companie și informații de contact.
Butonul de tip submit pentru trimiterea, procesarea și publicarea anunțului pe site.
Figura 2.8.1 Formular de adăugare anunț
După completarea tuturor câmpurilor, accesând butonul de trimitere a anunțului, datele introduse vor fi trimise către server pentru stocharea lor în baza de date, mai exact în tabela numită anunturi. Procesul constă mai întâi într-o verificare, dacă fiecare câmp este completat atunci se poate introduce noul anunț în baza de date și de asemenea pe pagina de anunșuri a site-ului. Dacă după verificare s-a găsit unul s-au mai multe câmpuri necompletate se va afișa un mesaj de eroare corespunzător, deoarece în acest formular toate câmpurile sunt obligatorii (după cum e indicat de caracterul *)
Figura 2.8.2 Afișarea de erori
Datele sunt introduse în baza de date prin comanda SQL:
INSERT INTO anunturi
(titluanunt, numefirma, Domeniu, Oras, nivel, tip, cerintejob, descrierefirma, beneficii, contact) VALUES
('$titlu', '$firma', '$domeniu', '$oras', '$nivel', '$tip', '$cerinte', '$des_firma', '$beneficii', '$contact')
Unde variabilele inserate au ca valori datele introduse de către utilizator în formular.
Astfel tabela de anunturi din baza de date va arată astfel, fiecare anunț avân un numar de identificare unic (id):
Figura 2.8.3 Tabelul anunturi cu toate anunturile adăugate
2.9 Pagina Despre noi
În această pagină se află o scurtă descriere despre platforma respectivă.
Figura 2.9.1 Pagina cu detalii despre website
2.10 Pagina de Contact
Pagina de contact oferă posibilitatea utilizatrilor să contacteze administratorul site-ului în cazul unor probleme sau orice alt subiect legat de funcționarea platformei.
Pagina conține un formular HTML ce conține următoarele elemente:
Un câmp de tip text destinat introducerii numelui și prenumelui, acest câmp nefiind obligatoriu să fie completat
Un câmp de tip email pentru introducerea email-ului. Acest câmp este obligatoriu deoarece pe adresa de email introdusă se va trimite răspunsul către utilizator.
Elementul de tip textarea unde se scrie mesajul dorit.
Butonul de tip submit pentru trimiterea mesajului.
Figura 2.10.1 Formular de contact
După trimiterea mesajului se va afișa un mesaj de succes.
2.11 Footer-ul
În partea de jos a paginii se află footer-ul care este comun tuturor paginilor și este alcătuit din mai multe legături (linkuri) utile utilizatorului, câteva documente (modele de CV), sau linkuri către alte website-uri similare.
Figura 2.9.1 Footer
Prima secțiune este cea a candidaților. Primul link, cel numit Locuri de muncă trimite către pagina de anunțuri a site-ului. Caută job va afișa pagina pentru căutare de anunțuri (aceasta conținând bara de căutare).
A doua secțiune este a companiilor și conține un link către pagina de adăugare de noi anunțuri (cu formularul respectiv) și o legătură către crearea unui nou cont utilizator.
Secțiunea a treia cuprinde: un link FAQ cere afișează o pagină cu un ghid de utilizare a platformei, Model CV va afișa într-o pagină nouă de tip pdf un document ce conține mdelul unui CV simplu și linkul Model CV European afișează de asemenea un document pdf având ca conținut un model de CV european.
Ultima secțiune conține mai multe linkuri cu website-uri care fac parte din aceeași categorie.
Figura 2.9.2 Afișare document pdf cu Model CV european (Europass)
Figura 2.9.2 Afișare document pdf cu model de CV simplu
Concluzii
Scopul propus de această lucrare a fost acela de a aduce la cunoștința faptul ca la momentul actual problema găsiri de locuri de muncă este una destul de profundă, mai ales în rândul tinerilor, iar după parerea mea una din cele mai bune soluții o reprezintă Internetul unde printr-un simplu website care oferă o gamă largă de job-uri adăugate de către companii, dă posibilitatea acelora ce iși doresc un loc de munca de a vedea oferta actuală pe piața muncii simplu și rapid.
Tema lucrării a fost aleasă așa fel încât să vină în sprijinul celor care încă nu au un loc de muncă și doresc să înceapă o carieră în plan profesional. Lucrarea a fost structurată în două secțiuni, prima constând intr-o teoretică, iar cea de a doua expune modul de funcționare a platformei.
Bibliografie
Techotopia 2008, PHP Essentials
http://www.seap.usv.ro/~valeriul/lupu/html_php_mysql.pdf, (data accesării: 05.2015).
http://www.infoap.utcluj.ro/multi/programming_PHP.pdf, (data accesării: 05.2015).
http://www.tutorialeweb.net/php/php-mysql.php, (data accesării: 05.2015).
http://www.tutorialeweb.net/php/php-mysq2.php, (data accesării: 05.2015).
http://www.tutorialeweb.net/php/sesiuni.php, (data accesării: 05.2015).
Bibliografie
Techotopia 2008, PHP Essentials
http://www.seap.usv.ro/~valeriul/lupu/html_php_mysql.pdf, (data accesării: 05.2015).
http://www.infoap.utcluj.ro/multi/programming_PHP.pdf, (data accesării: 05.2015).
http://www.tutorialeweb.net/php/php-mysql.php, (data accesării: 05.2015).
http://www.tutorialeweb.net/php/php-mysq2.php, (data accesării: 05.2015).
http://www.tutorialeweb.net/php/sesiuni.php, (data accesării: 05.2015).
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Dezvoltarea Unei Aplicatii Web Pentru Promovarea In Cariera (ID: 149732)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
