Aplicație web pentru gestionarea depozitelor dintr -o unitate bancară COORDONATOR ȘTIINȚIFIC: Prof. univ. dr. Crețu Emil ABSOLVENT: Moraru V…. [623325]
UNIVERSITATEA “TITU MAIORESCU” DIN BUCUREȘTI
FACULTATEA DE INFORMATICĂ
LUCRARE DE LICENȚĂ
Aplicație web pentru gestionarea depozitelor
dintr -o unitate bancară
COORDONATOR ȘTIINȚIFIC:
Prof. univ. dr. Crețu Emil
ABSOLVENT: [anonimizat] 2017
2
Cuprins
Introducere…………………… ….………… …………….. …………………………………..4
Capitolul 1:Prezentarea tehnologiilor informatice utilizate pe ntru realizarea aplicației…..5
1.1 Adobe Photoshop CS 5.1…………………………………….. ……………………………… …5
1.1.1 Scurt istoric………………………………………………………………………. ………………………….5
1.1.2 Date curent e……………………………………………………………………………………… ………….5
1.1.3 Avantaje…………………………………………………………………………… ………………………….6
1.2. Ad obe Flash……………………………………………………………………………… ……………………7
1.2.1 Scurt istoric………………………………………………………………………. ………………………… .7
1.2.2 Scurtă descriere…………………………………………………………………. ………………………….7
1.2.3 Avantaje și dezavantaje………………………………………………………. ……………………….. ..7
1.2.3.1 Avantaje ……………………………………………………………………………7
1.2.3.2 Dezavantaje……………………………………………………………………… ..8
1.3 Adobe Dreamweaver………………………………………………………… .……….9
1.3.1 Scurta prezen tare…………………………………………………………………….9
1.4 MySQL……………………………………………………………………………….. 10
1.4.1 I ntroducere in MySQL…………………………………………………………… …10
1.4.2 Caracteristici de baza……………………………………………………………….. 10
1.4.3 Tipuri de coloane……………… ………………………………………………….. …10
1.4.4 Comenzi și functii…………………………………………………………………. ..11
1.4.5 Crearea și utilizarea unei baze de date…… ………… …… ……………………………1 1
3 Capitolul 2:Proiectarea de detaliu a aplicației informatice……………………………… ..12
2.1 Creare bara de meniuri și header…………… ………………… ….……………………… ..12
2.1.1Meniu……………………………………………………………………………… …12
2.1.2 Header…………………………………………………………………………….. ..14
2.2 Crearea formularelor………………………………………………………………… .15
2.3 Fișierul afișare cont………………………………………………………… ………………………………20
Capitolul 3:Detalierea functiilor folosite in aplicatia informatica……………………………….28
3.1 Funcția conexi une ……………………………………………………………………28
3.2 Funcția autentificare ………… ……………………………………………………….28
3.3 F uncția î nregistrare………………… ………………………………………………….30
3.4 Funcția dobândăZ i…………………………… ………………………………………32
3.5 Funcția tranzacție.. ……………………………………………………………………33
3.6 Funcția schimbare parolă.. ……………………………………………………………35
3.7 Funcția securitate IP………………. ………………………………………………………………………. 37
3.8 Funcția plată credit…………………………………… …………………………………………………….38
3.9 Funcția plată totală…………….. ……………………………………………………………………………40
Capitolul 4: Aplicaț ia „AM Bank”….. …………… ..………… ……………………………43
4.1 Crearea și utilizarea unui cont …………… ……………………………………………… 43
4.2 Modificarea parolei…………… ………… …………………………………… ………51
4.3 Atribuirea de credite con tului creat…………………………………………………… 52
4.4 Cerințe de sistem pentru aplicația ” AM Bank ”…………………………………………….. ……..56
Bibliografie ………………………………….. …………………………………………………………………….. 58
4
Introducere
În ultima perioadă dezvoltarea rapidă atât a resurselor software cât și hardware a
dus la o comunicare mai bună și la acces mult mai rapid la orice categorie de informații. În
această lucrare este prezentat un site dinamic, construit dupa exemplul unei bănci
reale. Site-ul a fost creat utilizand tehnologiile PHP si MySql. Pe langă prezentările despre
diferite tipuri de servicii oferite de banca “AM Bank” precum p lanuri de pensii, asigurări,
carduri cel mai important este serviciul de MyBanking.
Acest serviciu se activează din interfata site -ului pe baza numelui si codului
PIN.Prin conectarea la contul de utilizator, persoana ce are cont la ”AM Bank ” iși poate
gestiona banii din cont, poate face tranzacții cu alte conturi și iși poate verifica dar și
achita parțial sau integral creditele.
Pentru interfaț a site -ului au mai fost folosite aplicaț iile Adobe Photoshop CS 5.1,
Adobe Dreamweaver CS 5.1, Adobe Flash CS 5 .1.
Lucrarea este structurată in 4 capitole dupa cum urmează :
1. Prezentarea tehnologiilor informatice utilizate pentru realizarea aplica ției
2. Proiectarea interfetei aplicatiei informatice
3. Detalierea functilor folosite in aplicatia informatica
4. Aplicația “ AM Bank”
5 Prezentarea tehnologiilor informatice utilizate pentru
realizarea aplicației
1.1 Adobe Photoshop CS5.1
1.1.1 Scurt istoric
În februarie 1990 a fost distribuită prima versiune a programului de către frații
Knoll, Thomas si John. Totul începe cu tatal lor Glenn Knoll, pasionat de fotografie. Cei
doi frați au devenit interesați de prelucrarea imaginilor digitale. Având un interes comun
au decis să încerce să creeze un pachet grafic pentru calculatoarele personale.
Prima versiune se numea “Display” si includea chiar import -export de diferite
formate si corectie gamma. În 1988 se numea “ImagePro” și cei doi frați au încercat să
creeze o bază comercială pentru a crea o afacere. O singură companie din Silicon Valley,
BarneyScan a distribuit p rogramul deja numit “Photoshop” într -un total de 200 de copii,
impreuna cu scanerele lor, fără nici un cost suplimentar pentru client. În septembrie 1988
Thomas și John și -au atins scopul : au semnat un contract de licențiere a programului
Photoshop către Adobe, iar după 10 luni de dezvoltare , în februarie 1990 a apărut
Photoshop 1.0.
În prezent Thomas este implicat tot in proiectul Photoshop, John și -a continuat
cariera la Industrial Light and Magic participând la proiecte mari precum Mission
Impossible, Star Trek si Star Wars, iar tatal lor continua să fie profesor.
1.1.2 Date curente
Adobe Photshop este unul dintre cele mai cunoscute programe de editare de
imagini și grafică. Este folosit de artiști graficieni, designeri dar și de oameni ob ișnuiți.
Este un program cu int erfața intuitiva, permițând o multitudine de modifică ri necesare
6 profesionistilor dar și utilizatorilor obisnui ți: editarea luminozităț ii și culorii, aplicarea
efectelor pe imagini sau doar pe anumite zone (selecț ii), retuș area imaginilor degradate ,
etc. Ultima versiune a programului este Photoshop CS6.
1.1.3 Avantaje
Principalele element e prin care Photshop se diferențiază de aplicațiile concurente și
prin care stabileș te noi standarde în industria prelucrării de imag ini digitale sunt:
Selec țiile
Straturile (Layers)
Măștile (Masks)
Canalele (Channels)
Retuș area
Optimizarea imaginilor pentru Web
7 1.2 Adobe Flash CS5.1
1.2.1 Scurt istoric
În 1993 Future Wave (companie inițiata de arhitectul Jonathan Gray) lansează
SmartSketch, program în care se putea desena cu creionul optic. Acest model este la fel cu
cel din versiunile actuale de Flash.
În 1995 din cauza “eșecului” aplicației SmartSketch și deoarece cei doi inițiatori
erau în imposibilitatea de a plăti angajații, se declară falimentari și încearca să vândă
ultima lor aplicație “FutureSplash Animator” către Adobe, fiind refuzați.
În anul 1996, atunci când Microsoft este interesat de o animație simpla pentru
pagina lor web, Macromedia întelege că soluția este oferită d e FutureSplashAnimator,
devine interesată de achiziționarea firmei (falimentare) FutureWave iar FutureSplash
devine Flash 1.0.
1.2.2 Scurtă descriere
Cu ajutorul aplicaț iei Flash se pot crea elemente multimedia, efecte grafice,
animaț ii, cel mai mult fi ind folosite î n pagini web . Initial a fost dezvoltata de Macromedia
purtând numele de “Macromedia Flash”. Numele de “Adobe Flash” a revenit in anul 2005
odata cu achiziționarea de către Adobe a companiei Macromedia.
În Adobe Flash sunt unite elemente de p rogramare web și grafica vectorială,
devenind util atât pentru designeri cât și pentru dezvoltatorii web.
1.2.3 Avantaje și dezavantaje
1.2.3.1 Avantaje:
Nu sunt necesare cunostinte de HTML,XHTML : în cazul realiză rii unui site
in Flash, aplicaț ia poate f urniza at ât obiectul Flash câ t și codul HTML
necesar.
8 Îmbinarea cu ușurință a elementelor grafice cu scriptul : codurile
ActionScript atașate obiectelor din flash se realizează selectând obiectul și
scriind codul asociat obiectului într -o fereastră specială .
Transferabil ca flux de date : pentru a rula pe calculatorul clientului, un film
Flash nu trebuie să fie încarcat în î ntregime, player -ul va afișa cât este
încarcat din film asteptând încărcarea î n continuare.
1.2.3.2 Dezavantaje:
Utilizează foarte multe resur se: din cauza faptului că de fiecare dată trebuie
să reconstruiască elementele grafice, este un mare consumator de resurse
(memorie și procesor)
Motoarele de cautare nu pot indexa textul
Depinde de player: în cazul absenței aplicației Flash Player se ajung e în
imposibilitatea folosirii fișierelor
9 1.3 Adobe Dreamweaver CS5.1
1.3.1 Scurtă prezentare
Adobe Dreamweaver (numele inițial fiind Macromedia Dreamweaver) este o
aplicație pentru dezvoltare web dezvoltată de compania Adobe Sys tems. Versiunile
recente oferă suport pentru tehnologii web precum CSS, PHP, JavaScript. Produsul poate
fi rulat atât pe Windows cât și pe Mac OS. Este un editor de tipul WYSIWYG (What you
see is what you get), iar la ora actuala detine 80% din piață edito arelor de tip HTML.
Dreamweaver permite utilizarea majorității browserelor pentru a vizualiza site -ul web
creat. Odată cu versiunea MX, au fost introduse utilitare pentru generarea dinamică a
conținutului. Prezint ă câteva utilitare pentru administrarea sit e-urilor, precum cele pentru a
găsi și modifica o linie de cod, bazându -se pe parametrii precizaț i de utilizator.
10 1.4 MySQL
1.4.1 Introducere in MySql
MySQL este un sistem de ge stiune a bazelor de date relaționale . Este produs de
compania suedeză MySQ L AB, fiind cel mai popular SGBD open -source la ora actuala.
Acest lucru inseamnă ca MySQL poate fi descărcat de pe Internet și poate fi folosit fără a
plăti ceva . Deși cel mai frecvent este utilizat cu limbajul de programare PHP, cu ajutorul
MySQL se po t construi aplicații in orice limbaj de programare : C, C++, Java, Perl.
Popularitatea MySQL ca aplica ție web este legată strans de cea a PHP.Un
instrument de management este aplicația phpMyAdmin.
1.4.2 Caracteristici de baza
Caracteristicile de bază ale MySQL sunt:
– Este t estat cu o gamă largă de compilatoare diferite
– Poate funcționa pe diferite platforme
– Multi-threaded folosind thread -uri de kernel. Însemnând că poate lucra cu
ușuință pe mai multe procesoare
– Un sistem de alocare a memoriei foarte rapid ș i bazat pe thread -uri
– Join-uri ale tabelelor foarte rapide
– Sunt folosite tabele temporare stocate în memorie
– Funcțiile SQL sunt implementate folosind o bibliotecă de clase op timizată
și sunt foarte rapide.
1.4.3 Tipuri de coloane
MySQL oferă multe tipuri de date pentru coloane: numere întregi de 1,2,3,4 și 8
bytes lungime cu/fără semn, TEXT, DATETIME, FLOAT , DOUBLE , CHAR ,
VARCHAR , BLOB , DATE , TIME , TIMESTAMP , YEAR , SET, ENUM .
11 1.4.4 Comenzi și funcții
Comenzile DELETE, INSERT, REPLACE și UPDATE return ează numărul de
rânduri modificate.
Comanda SH OW se poate folosi pentru a obține informații despre bazele de date,
tabele și indecși.
Numele funcțiilor nu intră în conflict cu numele tabelelor sau cele ale coloanelor.
În acceași interogare pot fi folosi te tabele din baze de date diferite .
1.4.5 Crearea și utilizarea unei baze de date
Comanda SHOW este folosită pentru a vedea bazele existente pe un server.
mysql> SHOW DATABASES;
+–––- +
| Database |
+–––- +
| mysql |
| test |
| tmp |
+–––- +
Dacă baza de date test există, aceasta se poate accesa astfel:
mysql> USE test
Database changed
12 Proiectarea de detaliu a aplicației informatice
2.1 Creare Bara de meniuri și header
Adobe Flash CS5.1
2.1 Meniu :
Se alege poz iția butoa nelor și ordinea de apariț ie:
Se atribuie nume butoanelor conform site -ului:
13
Se atribuie linkuri butoanelor î n ActionScript 3.0:
Banca mea onClipEvent (load) {
num = 1;
link = "index.html";
}
Carduri și credite onClipEvent (load) {
num = 2;
link = "index -1.html";
}
Asigurari onClipEvent (load) {
num = 3;
link = "index -2.html";
}
Pensii onClipEvent (load) {
num = 4;
link = "index -3.html";
}
Contact onClipEvent (load) {
num = 5;
link = "index -4.html";
}
My Banking on (rollOver) {
gotoAn dPlay("s1");
}
on (releaseOutside, rollOut) {
gotoAndPlay("s2");
}
on (release) {
getURL("index.php");
;
14
2.1.2 Header :
Se alege dimensiunea și formatul header -ului:
Se creaz ă cele 3 slide -uri ce rulează automat la un interval de timp prestabilit .
Se pozi ționeaz ă textul și imaginile.
15 2.2 C rearea formularelor de
Inregistrare, Login, Schimbare parola și Transfer bani
cu Adobe Photoshop CS5.1 și Adobe Dreamweaver CS5.1
1. Se crează un layout tip imagine corespunz ător fiec ărui tip de formular:
Formular login:
Formular Înregistrare:
16
2. Se împarte imaginea î n cadre cu ajutorul comenzii slice:
Formular login:
Formular înregistrare :
17
3. Cu ajutorul func ției Save for Web & Devices, atribuim fiecărei secț iuni de slice
proprietatea corespunz ătoare (text pentru casuț e text și image pentru butoane)
18
4. Salvăm ca pagină html
5. Deschidem fișierul html creat și îi atribuim valori p entru că suțele de completare și
pentru butoane
Exemplu 1 (formular inregistrare ):
Nume: <INPUT TYPE="text"
name="nrcont">
Pin card:<INPUT TYPE="text"
name="pin">
Parola:
<INPUT TYPE="password"
name="pass">
Adresa:<INPUT TYPE="text"
name="adresa_inreg">
Telefon:<INPUT TYPE="text"
name="telefon_inreg">
Mail: <INPUT TYPE="text"
name="mail_inreg">
Buton creaza:
<input type="image"
src="images/CREAZA.jpg"
alt="Submit button">
De asemenea, pentru a se face legă tura cu baza de date, fișier ul va incepe cu:
<FORM METHOD="post" ACTION="index.php?pag=inregistrare.php">
Și se va termina cu î nchiderea formului: </form>
19 Exemplu 2 (formular login):
Numar cont:
<INPUT TYPE="text"
name="user">
Parola:
><INPUT TYPE="password"
name="parola">
Buton Login:
<input type="image"
src="images/login.jpg"
alt="Submit button">
Buton reset:
<input type="image"
src="images/reset.jpg"
alt="Reset button">
Buton inregistrare:
<a
href="index.php?pag=form
ular_autentificare.html">
<img
src="images/inregistrare.jp
g" width="108 "
height="24" border="0"
alt="">
De asemenea, pentru a se face legatura cu baza de date, fișier ul va incepe cu
<FORM METHOD="post" ACTION="index.php?pag=home_user.php">
20 Și se va termina cu î nchiderea formului: </form>
2.3 Fișierul afisare cont
Afișarea contului utilizatorului este realizat ă de codul php ce se gasește î n fișier ul
“afisare_c ont.php”.
La început ul fișier ului se re găsesc două verificări de tip “IF”, ce verifică dacă s-a
efectuat plata unui credit (parțială sau totală). În cazul în care a fost efectuată o plată
parțială, se va apela funcția plată _credit, iar dacă a fost efec tuată o plată integrală a
creditului se apeleaza funcția plată _totala_credit.
<?php
if($_POST['achitare'])
{
plată _credit($_POST['idcredit'], $_POST['suma']);
}
if($_POST['achitare_totala'])
{
plată _totala_credit($_POST['idcredit'],$_POST['suma_totala']);
}
În urma verificării, se face o interogare î n baza de date pentru a extrage datele
utiliza torului activ, iar acestea se afișează pe pagina “contul meu”, unde apare și meniul
pentru modificare parola, transfer nou și logout.
21
$con=conexiune();
$cerere="se lect
id,nume_prenume,tip_cont,data_creare,suma,moneda,dobanda,tip_cont,pf_pj from conturi
where nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$con);
$row=mysql_fetch_row($result);
echo '<h2>Contul meu</h2><br>';
echo '<p>Bine ati veni t : <font color="#09F"><b>'.$row[1].'</b></font></p>';
echo '<table width="100%" border=0 align="center">';
echo '<tr><td>Numar de cont: <font color="#09F"><b>'.$row[0].'</b></font><br>';
echo '<tr><td>Tip client: <font color="#09F"><b>'.$row[8].'</b></fo nt><br>';
echo 'Data crearii contului: <font color="#09F"><b>'.$row[3].'</b></font><br>';
echo 'Tipul contului: <font color="#09F"><b>'.$row[7].'</b></font><br>';
echo 'Moneda: <font color="#09F"><b>'.$row[5].'</b></font><br>';
echo 'Suma curenta: <font co lor="#09F"><b>'.$row[4].'</b></font><br>';
echo 'Dobanda: <font color="#09F"><b>'.$row[6].'</b></font></td>';
echo '<td> </td>';
echo '<td width="150"><p><font size="+2" color="#09F"><b>Meniu</b></font></p>';
echo '<a href="index.php?pag=afisare_cont. php"><b>Contul meu</b></a><br>';
if($_SESSION['logat']=='yes' && !$_GET['ie șire'])
22 {echo '<a href="index.php?pag=formular_transfer.html"><b>Transfer
nou</b></a><br>';}
if($_SESSION['logat']=='yes' && !$_GET['ie șire'])
{echo '<a href="index.php?pag=formular _parola.html"><b>Modificare
parola</b></a><br>';}
if($_SESSION['logat']=='yes' && !$_GET['ie șire'])
{echo '<a href="index.php?pag=formular_login.html&iesire=1"><b>Logout</b></a>';}
else
{echo '<a href="index.php?pag=login.php"><b>Login</b></a>';}
echo '</td>';
echo '</tr></table><br><br>';
În continuare se completeaz ă tabelul cu istoricul tranzacțiilor efectuate de că tre
utilizatorul activ, acestea se extrag din tabelul “tranzact ii” al bazei de date.
$cerere="select
a.id,a.id_cont_debitor,a.id_cont _primire,a.data,a.tip_tranzactie,a.moneda,a.suma_tranzacti
onata,a.comision,b.nume_prenume
from tranzactii a,conturi b
where b.nume_prenume='".$_SESSION['user']."' AND
(a.id_cont_debitor='".$_SESSION['user']."' OR
a.id_cont_primire='".$_SESSION['user']."' )
group by a.data
order by a.data";
$result=mysql_query($cerere,$con);
23 $linii=mysql_num_rows($result);
echo '<table width="100%" border=0 align="center">';
echo '<tr><td align="center"><h2>Istoric tranzactii</h2></td></tr>';
echo '</table>';
echo '<table w idth="100%" border="1px" BORDERCOLOR="#09F" align="center">';
echo '<tr><td>Numar tranzactie</td>';
echo '<td>Data</td>';
echo '<td>Tipul</td>';
echo '<td>Moneda</td>';
echo '<td>Din Contul</td>';
echo '<td>Catre Contul</td>';
echo '<td>Suma</td>';
echo '< td>Comision</td></tr>';
while($linii>0)
{
$row=mysql_fetch_row($result);
echo '<tr><td>'.$row[0].'</td>';
echo '<td>'.$row[3].'</td>';
echo '<td>'.$row[4].'</td>';
echo '<td>'.$row[5].'</td>';
echo '<td>'.$row[1].'</td>';
echo '<td>'.$row[2].'</td>';
echo '<td>'.$row[6].'</td>';
24 echo '<td>'.$row[7].'</td></tr>';
$linii=$linii -1;
}
echo '</table><br><br><br>
Creditele se extrag individual din tabelul “credite” al bazei de date (prin criteriul
“distinct” din interogarea “$cerere4”) și se afișează pe râ nd, în tabele diferite, fiecare
credit activ sau finalizat al utilizatorului, împreuna cu istoricul plăț ilor ratelor automate
sau voluntare (plăți instant ce efectuează plata unei porț iuni din credit sau plata integ rală a
creditului extragâ nd bani din contul cu rent al utilizatorului).
<h2>Credite</h2>';
$cerere4="select distinct(Tip_credit) from credite
where Persoana_imprumutata='".$_SESSION['user']."'";
$result4=mysql_query($cerere4,$con);
$linii3=mysql_num_rows($result4);
while($linii3>0)
{
$row4=mysql_fetch _row($result4);
$cerere3="select Tip_credit,Valoare_imprumutata, Data_creare_credit,
Numar_rate,Rata_lunara_fixa,Nr_tranzactie from credite
where Persoana_imprumutata='".$_SESSION['user']."' AND Tip_credit='".$row4[0]."'";
$result3=mysql_query($cerere3,$co n);
$row3=mysql_fetch_row($result3);
25 $cerere2="select
id_credit,Tip_credit,Valoare_introdusa_in_tranzactie,Valoare_imprumutata,Data_creare_c
redit,Suma_restanta,Numar_rate,
Rata_lunara_fixa,Data_ plată ,Nr_tranzactie,tip_ plată ,Nr_rate_restante from credite
where Persoana_imprumutata='".$_SESSION['user']."' AND Tip_credit='".$row4[0]."'";
$result2=mysql_query($cerere2,$con);
$linii2=mysql_num_rows($result2);
$cerere5="select min(Suma_restanta) from credite
where Persoana_imprumutata='".$_SESSION['user']."' AND Tip_credit='".$row4[0]."'";
$result5=mysql_query($cerere5,$con);
$row5=mysql_fetch_row($result5);
echo '<table width="100%" align="center">';
echo '<tr><td>Tip credit: <font color="#09F"><b>'.$row3[0].'</b></font><br>';
echo 'Data crearii credit: <font col or="#09F"><b>'.$row3[2].'</b></font><br>';
if($row5[0]>0)
{echo 'Stare cont: <font color="#09F"><b>Activ</b></font></td>';}
else
{echo 'Stare cont: <font color="#09F"><b>Finalizat</b></font></td>';}
echo '<td>Valoare imprumutata: <font color="#09F"><b>'.$r ow3[1].'</b></font><br>';
echo 'Numar rate: <font color="#09F"><b>'.$row3[3].'</b></font><br>';
echo 'Rata fixa lunara: <font color="#09F"><b>'.$row3[4].'</b></font></td></tr>';
echo '</table><br>';
//echo $row3[5];
echo '<table width="100%" border="1px" B ORDERCOLOR="#09F" align="center">';
26 echo '<tr><td>Numar tranzactie</td>';
echo '<td>Suma intordusa</td>';
echo '<td>Data</td>';
echo '<td>Tipul</td>';
echo '<td>Numar restant de rate</td>';
echo '<td>Valoare restanta de plată </td></tr>';
$row2=mysql_fetch_ row($result2);
while($linii2>1)
{
$row2=mysql_fetch_row($result2);
echo '<tr><td>'.$row2[9].'</td>';
echo '<td>'.$row2[2].'</td>';
echo '<td>'.$row2[8].'</td>';
echo '<td>'.$row2[10].'</td>';
echo '<td>'.$row2[11].'</td>';
echo '<td>'.$row2[5].'</td></tr>' ;
$linii2=$linii2 -1;
}
echo '</table>';
if($row2[5]>0)
{
echo '<table width="100%" align="center"><tr><td> </td><td align="left"
width="20%"><font color="#09F"><b> Plată instant:</b></font></td><td align="right"
width="35%">';
27 După fiecare tabel aferent creditelor, am creat u n form ce permite achitarea parțială
sau total ă a creditului respectiv.
echo '<FORM METHOD="post" ACTION="index.php?pag=afisare_cont.php">
<table align="left">
<tr>
<td> Suma platita: </td>
<td> <INPUT TYPE="text" name="suma"> </td>
</tr>
<tr>
<td> <INPUT TYPE="submit" name="achitare" value="Achita suma"> </td>
<td> <INPUT TYPE="submit" name="achitare_totala" value=" Plată totala">< /td>
<INPUT TYPE="hidden" name="idcredit" value="'.$row2[0].'">
<INPUT TYPE="hidden" name="suma_totala" value="'.$row5[0].'">
</tr>
</table>
</form>';
}
echo '</td></tr></table><br><br><br>';
$linii3=$linii3 -1;
}
mysql_close($con);
28 Detalierea fun cțiilor folosite în aplicația informatică
3.1 Funcția conexiune
Funcția “conexiune” face legatura cu baza de date “img 1”, iar pe aceast ă funcție se
bazează toate interogă rile (sele ct, insert, update) ce interacț ioneaz ă cu baza de date:
function co nexiune()
{
include 'constante.php';
$link = mysql_connect($hostname, $userdb, $pswdb);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db($bd, $link);
return $link;
}
3.2 Funcția de autentificare
Funcția “autentificare “ execut ă logarea utilizatorilor pe site verificâ nd utilizatorul și
parola introduse î n fereastra de login. În acela și timp funcția verifică dacă utilizatorul ce
doreste sa se logheze are cont în banca și dacă acesta are activat ă opțiunea de Home
Banking:
29 function autentificare()
{
$user=$_POST['user'];
$parola=$_POST['parola'];
$link = conexiune();
mysql_select_db('img', $link);
$cerere="select nume_prenume, parola, banking, nume_prenume from conturi
where lower(nume_prenume)='".strtolower($user)."'";
$result=mysql_query ($cerere,$link);
$linii=mysql_num_rows($result);
$row=mysql_fetch_row($result);
if(!$row[0])
{
$_SESSION['cont']='no';
}
else
{
$_SESSION['cont']='yes';
if($row[2]==0){
$_SESSION['logat']='no';
$_SESSION['banking']='no';
}
else
30 {
$_SESSION[ 'banking']='yes';
if($linii==1 && $row[1]==sha1($parola))
{
$_SESSION['user']=$user;
$_SESSION['logat']='yes';
$_SESSION['nume']=$row[3];
}
else
{
$_SESSION['logat']='no';
}
}
}
mysql_close($link);
}
3.3 Funcția de înregistrare
Funcția de “înregistrare” se ocupă de activarea opț iunii de Home B anking pentru
clienț ii care au deja cont în bancă , iar la înregistrare ace știa vor completa atât datele
personale cât si noua parolă , verifica rea clientului se face dec ât pe baza pin -ului de pe
card:
function inregi strare($cont, $pin, $parola, $adresa, $telefon, $mail)
{
31 $link = conexiune();
mysql_select_db('img', $link);
$cerere="select nume_prenume, pin_card from conturi
where nume_prenume='".$cont."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($r esult);
$passwordHash = sha1($parola);
if(!$row[0])
{
echo '<P ALIGN=CENTER><font color="red">Contul selectat este
inexistent!</font></p>';
include 'formular_autentificare.html';
}
else
{
if($row[1]==$pin)
{
$cerere="update conturi set parola='".$passwordH ash."' ,banking=1 ,adresa='".$adresa."'
,numar_telefon='".$telefon."' ,email='".$mail."' where nume_prenume='".$cont."'";
if (!mysql_query($cerere,$link))
{
die('Error: ' . mysql_error());
}
else
32 {echo "Inregistrare reusita!";}
//$result=mysql_qu ery($cerere,$link);
}
else
{
echo '<P ALIGN=CENTER><font color="red">Pinul introdus este incorect!</font></p>';
include 'formular_autentificare.html';
}
}
mysql_close($link);
}
3.4 Func ția dobandaZi
Pentru calculul dobânzii se utilizează o funcție ce calc ulează zilele ce au trecut de
la crearea contului, și de asem enea data de referință pentru calculul dobâ nzii, se resetează
la fiecare tranzacț ie ce are loc în contul utilizatorului:
function dateDiff($start, $end) {
$start_ts = strtotime($start);
$end_ts = strtotime($end);
$diff = $end_ts – $start_ts;
return round($diff / 86400);
}
33 3.5 Funcția tranzacție
Tranzacț iile între conturi apelează funcția “tranzactie” ce se ocup ă de extragerea
sumei tranzactionat e din contul celui care depune, și introducerea ac esteia în contul
recipientului. Funcția , în urma verificări i dacă cele doua conturi utilizează aceea și
monedă, introduce tranzacț ia în tabelul “tranzactii” din baza de date pentru a ține evidența
tranzacțiilor efectuat e pentru fiecare cont:
function tranz actie($cont, $suma, $pin)
{
$link = conexiune();
mysql_select_db('img', $link);
$today=date("Y -m-d H:i:s");
$cerere="select moneda from conturi
where nume_prenume='".$cont."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$moneda_v erif=$row[0];
$cerere="select pin_card,suma,moneda from conturi
where nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$moneda_util=$row[2];
if($row[0]==$pin)
{
34 if($moneda_util==$moneda_verif)
{
$_SESSION['eroare']='no';
$suma1=$row[1] -$suma -(0.02*$suma);
$cerere="update conturi set suma='".$suma1."' ,data_modif='".$today."' where
nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$link);
$cerere="select suma from conturi
where n ume_prenume='".$cont."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$suma2=$row[0]+$suma;
$cerere="update conturi set suma='".$suma2."' ,data_modif='".$today."' where
nume_prenume='".$cont."'";
$result=mysql_query($cerere,$link);
$comision=0.02;
$cerere="INSERT INTO tranzactii (`id` ,`id_cont_debitor` ,`id_cont_primire` ,`data`
,`tip_tranzactie` ,`moneda` ,`suma_tranzactionata` ,`comision`)
VALUES (NULL , '".$_SESSION['user']."', '".$cont."', CURRENT_TIMESTAMP ,
'transfer', '". $moneda_util."', '".$suma."', '".$comision."')";
$result=mysql_query($cerere,$link);
}
else
{
35 echo '<P ALIGN=CENTER><font color="red">Cele doua conturi nu folosesc aceeasi
moneda!</font></p>';
include 'formular_transfer.html';
$_SESSION['eroare']='yes';
}
}
else
{
echo '<P ALIGN=CENTER><font color="red">Pinul introdus este incorect!</font></p>';
include 'formular_transfer.html';
$_SESSION['eroare']='yes';
}
mysql_close($link);
}
3.6 Funcția schimbare parolă
Pentru schimbarea parolei se utilizează funcția “parola_sc”, funcție ce solicită ca
utilizatorul să ofere parola veche și pin-ul cardului înaintea introducerii noii parole:
function parola_sc($parola1, $parola2, $pin)
{
$link = conexiune();
mysql_select_db('img', $link);
$cerere="select parola,pin_car d from conturi
36 where nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$parola_verif=$row[0];
if(sha1($parola1)==$parola_verif)
{
if($pin==$row[1])
{
$_SESSION['eroare_p']='no';
$cerere="update con turi set parola='".sha1($parola2)."' where
nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$link);
}
else
{
echo '<P ALIGN=CENTER><font color="red">Pinul introdus nu este
corect!</font></p>';
include 'formular_parola.html';
$_SESSION['e roare_p']='yes';
}
}
else
{
37 echo '<P ALIGN=CENTER><font color="red">Parola curenta nu a fost introdusa
corect!</font></p>';
include 'formular_parola.html';
$_SESSION['eroare_p']='yes';
}
mysql_close($link);
}
3.7 Funcția securitate IP
În cadrul apl icație i a fost introdusă pentru sporirea securităț ii și o funcț ie ce
verifică ip-ul de pe care se acceseaz ă site-ul:
function getip()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass
from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
38 {
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
3.8 Funcția plată credit
Funcți a “plată credit” se ocupa de plata instant a creditului și este apelată din pagina
“afiș are cont”. Aceasta introduce in baza de date
function plată _credit($id, $suma)
{
$link = conexiune();
mysql_select_db('img', $link);
$today=date("Y -m-d H:i:s");
$cere re="select suma from conturi
where nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$suma1=$row[0] -$suma;
$cerere="update conturi set suma='".$suma1."' ,data_modif='".$today."' where
nume_prenume= '".$_SESSION['user']."'";
39 if (!mysql_query($cerere,$link))
{
die('Error: ' . mysql_error());
}
$cerere="select Suma_restanta from credite
where id_credit='".$id."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$suma2=$row[0] -$suma;
$cerere="select Nr_tranzactie, Persoana_imprumutata, Tip_credit,
Valoare_introdusa_in_tranzactie, Valoare_imprumutata, Data_creare_credit,tip_ plată ,
Data_ plată , Suma_restanta ,Numar_rate, Nr_rate_restante, Rata_lunara_fixa from credite
where id_ credit='".$id."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$rate_restante=$row[10] -1;
$cerere2="select max(id) from tranzactii";
$result2=mysql_query($cerere2,$link);
$row2=mysql_fetch_row($result2);
$numar_tranz=$row2[0]+1;
$cerere="INSERT INTO credite
(Nr_tranzactie,Persoana_imprumutata,Tip_credit,Valoare_introdusa_in_tranzactie,Valoare
_imprumutata,Data_creare_credit,tip_ plată ,Data_ plată ,Suma_restanta,Numar_rate,Nr_rate
_restante,Rata_lunara_fixa)
40 VALUES ('".$numar_tranz."', '" .$_SESSION['user']."' , '".$row[2]."' , '".$suma."' ,
'".$row[4]."' , '".$row[5]."', ' Plată instant',
'".$today."','".$suma2."','".$row[9]."','".$rate_restante."','".$row[11]."')";
if (!mysql_query($cerere,$link))
{
die('Error: ' . mysql_error());
}
$cerere="INSERT INTO tranzactii (id ,id_cont_debitor ,id_cont_primire ,data
,tip_tranzactie ,moneda ,suma_tranzactionata ,comision)
VALUES (NULL , '".$_SESSION['user']."', '".$row[2]."' , CURRENT_TIMESTAMP ,
'achitare credit', 'euro', '".$suma."', ' 0')";
if (!mysql_query($cerere,$link))
{
die('Error: ' . mysql_error());
}
mysql_close($link);
}
3.9 Funcția plată totală
În cazul plăț ii totale a creditului, se apeleaz ă funcția “plată _totala_credit”, ce nu
mai necesit ă introducerea sumei achitate , ci extrage din cont suma restant ă de plată pentru
credit și o scade din valoarea creditului, acesta devenind “Finalizat”:
function plată _totala_credit($id,$suma)
{
41 $link = conexiune();
mysql_select_db('img', $link);
$today=date("Y -m-d H:i:s");
$cerere=" select suma from conturi
where nume_prenume='".$_SESSION['user']."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$suma1=$row[0] -$suma;
$cerere="update conturi set suma='".$suma1."' ,data_modif='".$today."' where
nume_prenume='".$ _SESSION['user']."'";
if (!mysql_query($cerere,$link))
{
die('Error: ' . mysql_error());
}
$cerere="select Nr_tranzactie, Persoana_imprumutata, Tip_credit,
Valoare_introdusa_in_tranzactie, Valoare_imprumutata, Data_creare_credit,tip_ plată ,
Data_ plată , Suma_restanta ,Numar_rate, Nr_rate_restante, Rata_lunara_fixa from credite
where id_credit='".$id."'";
$result=mysql_query($cerere,$link);
$row=mysql_fetch_row($result);
$rate_restante=$row[10] -1;
$cerere2="select max(id) from tranzactii";
$result2=my sql_query($cerere2,$link);
$row2=mysql_fetch_row($result2);
42 $numar_tranz=$row2[0]+1;
$cerere="INSERT INTO credite
(Nr_tranzactie,Persoana_imprumutata,Tip_credit,Valoare_introdusa_in_tranzactie,Valoare
_imprumutata,Data_creare_credit,tip_ plată ,Data_ plată ,Suma_restanta,Numar_rate,Nr_rate
_restante,Rata_lunara_fixa)
VALUES ('".$numar_tranz."', '".$_SESSION['user']."' , '".$row[2]."' , '".$suma."' ,
'".$row[4]."' , '".$row[5]."', 'Achitare totala', '".$today."','0','".$row[9]."','0','".$row[11]."')";
if (!mysql _query($cerere,$link))
{
die('Error: ' . mysql_error());
}
$cerere="INSERT INTO tranzactii (id ,id_cont_debitor ,id_cont_primire ,data
,tip_tranzactie ,moneda ,suma_tranzactionata ,comision)
VALUES (NULL , '".$_SESSION['user']."', '".$row[2]."' , CURRENT_TIMESTAMP ,
'achitare credit', 'euro', '".$suma."', '0')";
if (!mysql_query($cerere,$link))
{
die('Error: ' . mysql_error());
}
mysql_close($link);
}
?>
43
Aplicația “AM Bank”
4.1 Crearea și utilizarea unui cont nou
Pentru a î nregistra un cont My Banking, ca î n orice exemplu real, trebuie ca
titularul contului să figureze în baza de date a bă ncii.Un cont bancar nu beneficiaz ă în mod
implicit de serviciu l My Banking, acesta trebuind să fie activat din interfa ța web a bă ncii
pe baza date lor de cont deja existente in bancă .
Contul de My Banking n u înregistreaz ă clienții noi ai băncii, ci exclusiv activeaz ă
un serviciu ce permite tranzacționări bancare î ntre conturi (sau pentru plata ratelor) f ără a
mai fi nevoia deplasării la unul din sedi ile bă ncii.Viceversa, nu se poate crea un cont My
Banking î n absența înregistră rii titu larului in bazele de date ale bă ncii.
44
1. Creăm un cont nou în baza de date prin interfața php Myadmin, lasâ nd
necompletate toate campurile inafara de numar cont , nume titular, moneda, tip cont
și cnp.
Celelalte câ mpuri se vor completa automat în momentul activă rii serviciului de My
Banking.
z
45
2. Din interfaț a web My Banking mergem la sec țiunea Î nregistrare și creem noul
cont:
46
3.Introducem datele corespunză toare noului cont (care va activa serviciul My Banking
al contului bancar existent):
Ni se va afiș a mesajul “Inre gistrare reusita!” care confirmă activarea serviciului My
Banking.
47
Datele introdus e sunt verifica te . Se verifică dacă numărul de telefon este de tip
numeric – php tip varchar; dacă adresa de mail este de tip email , etc.
Parola introdusă este automat encriptat ă pe protocolul A1H1:
3. Ne ducem la sectiunea de login și ne logam cu contul nou creat și parola setata la
creearea lui:
48
Astfel se ajunge la secțiunea contul meu:
Este evident că, contul nou creat nu are nici o înregistrare prezentă în istoricul de
tranzacț ii.
Astfel s uma de bani disponibilă î n cont este cea prestabilit ă de 100 000 de euro.
4. În meniul de Transfer nou, vom transfera suma de 10 .000 de euro contului
preexistent Alexandru Moraru și apăsăm pe butonul transferă :
49
50 După transfer suntem du și înapoi în secț iunea “Contul meu” unde observăm urmă toarele:
Suma de bani ramas ă este = suma inițială – banii transferați – comisionul bă ncii:
100000 -10000 -0.02*10000=90000 -200=89800 euro
În Isto ric tranzactii ne apare tranzacț ia nou efectua tă ală turi de datele ei: data
transferului, tipul transferului, moneda, contul din care s -au extras bani, suma și
comisionul bancii.
51
4.2 Modificarea parolei de cont My Banking
Modificarea parolei se face tot din interfaț a web a “co ntului meu” prin intermediul
opțiunii “modificare parola” , unde introducem parola actuală (pentru condiț ii de
securi tate), noua parol ă și pinul cardului:
După apasarea butonului “Schimba”, parola este automat modificat ă și encriptată
în baza de date.
52
4.3 Atribuirea de credite contului creat
În Mysql mergem la secț iunea credite și creem un credit nou pentru contul
“Exemplu cont” pe care îl alegem din lista oferită de banca AM Bank .
Pentru a vedea lista de credite posibile, mergem la sec țiunea “Carduri și credite” a
băncii.
Primul credit solicitat va fi un î mprumut de 30 .000 de euro prin creditul “Credit
pentru inv estiții imobiliare cu garanție ipotecara, in lei”, adică pentru achiziționarea unei
locuinț e. Acesta va avea o dob ândă anuală de 12% și va fi facut pe o perioadă de 4 ani.
Ca expresie de calcul, suma datorat ă băncii = 30000 + 30000*0.12*4 = 44400 însemnân d
suma imprumutată + dobâ nda anual ă aferent ă* numarul de ani in care trebuie restituit
împrumutul , iar dobanda lunara va fi de 925 de euro timp de 48 de luni.
53
Repetăm procedura prezentată mai sus și pentru a adaug ă un credit de nevoi person ale
în valoare de 15 .000 de eur o cu o dobândă de 12%, pe o perioadă de 3 ani (valoarea ce
trebuie restituită este de 15000+15000*0.12*3=20400 euro; rata fixa lunara fiind de
566.66 euro).
Revenim la secțiunea de My Banking, iar în contul “Exemplu cont” au apărut la
secțiunea “credite” ce le 2 împrumuturi fă cute:
Orice plată se efectuează la unul din credite se reg ăsește și în Istoricul de tranzacț ii,
unde se poate verifica numărul tranzacț iei, data și tipul ei (“achitare credit” in cazul
nostru), numele cre ditului la care s -a efectuat plată (“prima casa” ; “nevoi personale” etc.)
și suma care a fost platita pentru achitarea creditului.
Toate pla țile către împrumuturile făcute se fac din balanț a contul ui din care acestea
se efectuază .
După cum observă m, după plata a 3 rate î n fiecare dintre ce le 2 credite, balanța
totală rămasă î n cont este 8532 7 euro.
În acest caz banca nu percepe nici un fel de comision pentru plata creditelor.
54
Plata ratelor lunare se face automat in fiecare lun ă pentru fiecare dintre creditele
care au stare “activ” (adic ă incă sunt in curs de plată )
Dacă se doreș te plata unei sume mai mari de bani se poate face introduc ând suma
ce se dorește a se plă ti și se actioneaz ă butonul “achita suma”
55 Și rezulta extragerea sumei selectate din cont și plată imprumutului aferent:
De asemenea se poate plati intreaga sum ă rămasă restantă apăsâ nd butonul “ plată
totală”. În acel moment se extrag toți banii răma și restanț i din c ontul personal cu care se
achită creditul, iar acesta i și schimbă au tomat starea din “Activ” î n “Finalizat” și dispar
opțiunile de plată din dreptul tabelului contului achitat:
Numărul restant de rate evident că devine 0, de asemenea și valoarea restantă de
plată devine nulă.
56
4.4 Cerințe de sistem pentru aplicația ” AM Bank”
Dacă doriți să executați AM My Banking pe computerul dumneavoastră iată de
ce aveți nevoie:
Procesor de 1 GHz sau mai rapid pe 32 biți (x86) sau pe 64 biți ( x64)
128 MB RAM (pe 32 de biți) sau de 256 MB (pe 64 de biți)
spațiu disponibil pe hard disk de 100 MB (pe 32 de biți) sau de 200 MB (pe 64 de
biți)
Dispozitiv grafic DirectX 9 cu driver WDDM 1.0 sau mai recent
Cerințe suplimentare pentru a utiliza anumit e caracteristici:
Acces la Internet (poate fi contra cost)
În funcție de rezoluție, redarea video poate necesita memorie suplimentară și
hardware grafic avansat
Muzica și sunetele necesită ieșire audio
Funcționalitatea produsului și grafica pot varia în fu ncție de configurația sistemului. Unele
caracteristici pot necesita hardware complex sau suplimentar.
Computere cu procesoare multi -core:
AM My Banking a fost proiectat să funcționeze cu procesoarele multi -core din prezent.
Toate versiunile pe 32 de biți de Windows 7 pot accepta un număr de până la 32 de nuclee
de procesor, în timp ce versiunile pe 64 de biți pot accepta până la 256 de nuclee de
procesor.
57 Instalarea și lansarea in execuție:
AM My Banking nu necesită instalare pentru că este o platforma on line și poate fi accesat
de oriunde atât timp cât există o conexiune la internet.
58 Bibliografie
Botezatu, Cornelia Proiectarea sistemelor informatice. Metode sistemice. Editura
ProUniversitaria, Buc urești, 2007
Botezatu, Cornel ia, Iacob, Ionel Proiectarea sistemelor informatice. Studii de caz pentru
management ul activităților unei societăți. Editura Pro Universitaria , București, 2007
Crisan, Daniela Limbajul C / C++. Programare orientata obiect, Vol umul 2, Editura
UNIVERSITARĂ, București, 2006
http://www.tutorialeonline.net/ro/article/principalele -ferestre -de-lucru -in-adobe -flash -cs5
http://www.marplo.net/flash/ferestre -principale
http://www.marplo.net/flash/introducere -adobe -flash
http://startut.info/scoala -photoshop/interfata -photoshop -ului
http://ro.wikipedia.org/wiki/Photoshop
http://ro.wik ipedia.org/wiki/Adobe_Dreamweaver
http://www.adobe.com/products/photoshop.html?promoid=DINOG
http://ro.wikipedia.org/wik i/Adobe_Flash
http://www.adobe.com/products/flash.html
http://ro.wikipedia.org/wiki/PHP
http://ro.wikipedia.org/wiki/MySQL
http://www.scribd.com/doc/59168702/Aplicatie -a-Privind -Constru irea-Intr-un-Site-
Dinamic -Utilizand -Tehnologiile -PHP-Si-Mysql
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: Aplicație web pentru gestionarea depozitelor dintr -o unitate bancară COORDONATOR ȘTIINȚIFIC: Prof. univ. dr. Crețu Emil ABSOLVENT: Moraru V…. [623325] (ID: 623325)
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.
