Sunteți pe pagina 1din 83

UNIVERSITATEA HYPERION Facultatea de Matematic Informatic Specializarea Informatic

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

LUCRARE DE LICEN

Absolvent:

AROIU PAUL-SAMSON
Coordonator:

Lector univ.

ERBNESCU LIVIU

Bucureti 2012

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Cuprins
Introducere ........................................................................................................................ 4 Capitolul 1 STUDIUL ACTUAL ................................................................................... 5 1.1. 1.2. Specialitate a ideii ........................................................................................... 5 ncarcarea aplicaiei......................................................................................... 5

Capitolul 2 ARHITECTURA APLICAIEI .................................................................. 6 2.1. Structura interfeei ............................................................................................... 6 2.1.1. Afiarea datelor (Cadrul 1) ........................................................................... 7 2.1.2. Meniu (Cadrul 2) .......................................................................................... 8 2.1.3. Submeniul (Cadrul 3) ................................................................................... 9 2.1.4. Bara de meniu (Cadrul 4) ........................................................................... 10 2.2. Structura bazei de date ...................................................................................... 11 2.2.1. Noiuni teoretice ......................................................................................... 11 2.2.2. Modelul relaional ...................................................................................... 11 2.2.3. Constrngeri de integritate ......................................................................... 11 2.2.4. Tabelele aplicaiei dezvoltate ..................................................................... 12 2.2.5. Gruparea tabelelor ...................................................................................... 13 2.3. Fluxul informaional .......................................................................................... 13 2.3.1. Fluxul informaional al aplicatiei dezvoltate .............................................. 14 Cpitolul 3 DEZVOLTAREA APLICAIEI................................................................. 16 3.1. Modul de conectare ........................................................................................... 16 3.2. Setarea sesiunii de autentificare ........................................................................ 16 3.3. Modul de interogare SQL .................................................................................. 17 3.4. Funcii JavaScript i stiluri CSS ........................................................................ 17 3.5. Modul de iniializare a erorilor .......................................................................... 22 3.6. Descrierea formularelor de baz........................................................................ 22 3.6.1. Noiuni teoretice ......................................................................................... 22 3.6.2. Formularul de nregistrare .......................................................................... 25 3.6.3. Formularul de autentificare ........................................................................ 30 3.6.4. Formularul de adugare a polielor n gestiune .......................................... 34 3.6.5. Formularul de emitere a polielor RCA ...................................................... 39 3.6.6. Formularul de adugare al agentilor ........................................................... 47 3.6.7. Formularul de ataare a documentelor ....................................................... 52 2

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.7. Descrierea rapoartelor de baz .......................................................................... 54 3.7.1. Raportare - lista clienti ............................................................................... 54 3.7.2. Raportare - polite emise pe o perioada de timp .......................................... 57 3.7.3. Raportare - polie care expir pe o perioad de timp ................................. 63 3.7.4. Raportare - polite anulate pe o perioada de timp........................................ 69 Cpitolul 4 VALIDAREA DATELOR .......................................................................... 73 4.1. Modul validare a formularelor .......................................................................... 73 4.1.1. Validarea formularului de autentificare ........................................................ 73 4.1.2. Validarea formularului de nregistrare ......................................................... 74 4.1.3. Validarea formularului - adaugare agent nou ............................................... 75 4.1.3. Validarea formularului - adaugare client nou ............................................... 77 Anexa 1 - Harta aplicaiei...............................................................................................80 Anexa 2 - Materialul suport ............................................................................................81 Concluzii.........................................................................................................................82 Bibliografie.....................................................................................................................83

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Introducere

Datorit experienei dobndite n domeniul asigurrilor, mi-am propus dezvoltarea unei aplicaii web de gestionare a polielor de asigurare. Aceast aplicaie are ca scop gestionarea propriului portofoliu de clieni i permite efectuarea procesului de supervizare a polielor n raport cu timpul. Deasemenea ea poate fi utilizat i cu scopul supervizrii unei mici subreele de ageni, capabil s efectueze numeroase rapoarte de gestionare a polielor de asigurare n functie de agenii existeni. ntruct domeniul asigurrilor din ziua de astzi este extrem de vast, n ceea ce privesc produsele de asigurare existente la fiecare companie n parte, m-am limitat la un singur tip de asigurare i anume polia obligatorie de rspundere civil auto RCA. Pentru crearea aplicaiei am utilizat numeroase limbaje de programare precum HTML (HyperText Markup Language), PHP (Hypertext Preprocessor), JavaScript (limbaj de programare orientat pe obiect) i MSSQL. Ea este alctuit din dou pri generale: baz de date ce are rolul de stocare a tuturor datelor n tabele diferite i interfaa web ce are rolul de comunicare prtmanent cu aceasta, ce permite manipularea datelor de gestionat. Modul n care datele sunt preluate, procesate i stocate n baza de date se face printr-o conexiune din PHP ctre Serverul SQL. Lucrarea de fa conine prezentarea n detaliu pentru fiecare modul component al aplicaiei raportat la studiul actual, astfel nct s poat servi cu uurin drept material de studiu i/sau de lucru pentru toi cei care pot fi interesai de acest domeniu (studeni ai facultilor de profil, asigurtori i/sau ali operatori din domeniul serviciilor financiare).

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Capitolul 1 STUDIUL ACTUAL


1.1. Specialitate a ideii
Pentru buna desfaurare a activitaii unui agent de asigurare, att modul de lucru ct i cel de organizare joac un rol deosebit de important n domeniul asigurarilor, accentul fiind pus pe supervizarea unui portofoliu propriu de clieni. Aplicaia dezvoltat are ca scop gestionarea acestui portofoliu ntr-o baz de date foarte bine structurat care permite stocarea tuturor datelor specifice acestui tip de activitate. Aplicaia poate fi deasemenea utilizat i n cazuri mai complexe precum o mic reea de ageni din diferite locatii. Principalele elemente de acces la acceast platform fiind un calculator i o conexiune de internet.

1.2. ncarcrea aplicaiei


Aceast aplicaie este creat cu scopul de a fi ncarcat pe un site avnd un acces destul de eficient. Ea poate fi accesat n orice moment de ctre orice agent alturat grupului de utilizatori. Deasemenea aplicaia poate rula i pe un server local configurat corespunztor cerinelor de utilizare fr a fi nevoie de o conexiune internet. Pentru ca acest lucru s fie posibil utilizatorul trebuie s-i instaleze urmtoarele programe: PHP 5, Apache 2.2, MSSQL i un browser recent precum Internet Explorer 8, Google Chrome, etc. Modul de implementare al acestei aplicaii este unul destul de simplu, iar la baza funcionrii acestuia st HTML-ul extins cu ajutorul altor limbaje de programare precum: PHP, JavaScript i CSS. Pentru a putea instala i pune n folosina aceast aplicaie trebuiesc instalate i configurate urmtoarele programe dup cum urmeaz: Instalare MSSQL; Instalare PHP 5; Instalare Apache 2.2; Configurare utilizator si modul de conectare MSSQL; Configurarea directoarelor din PHP 5; Configurarea directoarelor din Apache 2.2

Pentru aceast configurare de sistem consultai Anexa 2 aferent acestei lucrri.

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Capitolul 2 ARHITECTURA APLICAIEI


2.1. Structura interfeei
Structura arhitectural a aplicaiei dezvoltate este conceput la nivel de cadru sau frame. Cadrele sau frame-urile, sunt folosite pentru mprirea ferestrei browswe-ului astfel nct s fie afiate mai multe pagini n aceeai fereastr de browser. Un frame (cadru) este o parte din suprafaa ferestrei browserului ce prezint n interior un document propriu (n general un document HTML). n cazul aplicaiei mele interfaa acesteia am mprit-o n patru mari cadre dup cum urmeaz: 1. afiare_date.php; 2. meniu.php; 3. submeniu.php; 4. bara_meniu.php.

Configurarea cadrelor (descrierea codului):


<frameset cols="22%,78%" border="2" bordercolor="#333333"> <frameset rows="300, 450" border="5" bordercolor="#0000FF"> <frame src="/submeniu.php" name="submeniu" frameborder="1" bordercolor="#000000" scrolling="yes" noresize="noresize" /> <frame src="/meniu.php" name="meniu" scrolling="yes" noresize="noresize"> </frameset> <frameset rows="8%, 92%" border="5" bordercolor="#6633CC"> <frame src="/bara_meniu.php" scrolling="no" noresize="noresize"/> <frame src="/afisare_date.php" name="afisare_date" scrolling="auto" noresize="noresize"> </frameset> </frameset>

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

2.1.1. Afiarea datelor (Cadrul 1) Acest modul joac rolul unui spaiu de lucru, deoarece aici sunt afiate marea majoritate a formularelor de inserare i interogare a bazei de date. Dup cum se poate vedea n imaginea alaturat n partea superioar stng a acesteia am implementat afiarea unui tabel de stare a aplicaiei care afiaz numele de utilizator, id-ul i versiunea bazei de date curente. Pentru a ne fi mai uor de inspectat acest modul v rog s gsiti codul acestui tabel n cele ce urmeaz.
<?php // CODUL PHP //INTEROGARE MSSQL DE EXTRAGERE A VERSIUNI CURENTE A BAZEI DE DATE $selectie_versiune_db = "select versiune from setari"; $info_versiune = mssql_query($selectie_versiune_db); // SELECTARE DATE DE AUTENTIFICARE $selectie_utilizator ="select nume, prenume, idutilizator from autentificare where idutilizator='".$_SESSION["autentificare"]."'"; $info_utilizator=mssql_query($selectie_utilizator); // PRELUARE VERSIUNE DIN BAZA DE DATE while($afisare_versiune = mssql_fetch_assoc($info_versiune)) { $versiune_db = $afisare_versiune['versiune'];} // PRELUARE DATE DE AUTENTIFICARE DIN BAZA DE DATE while($selectie_utilizator = mssql_fetch_assoc($info_utilizator)) { $nume_db = $selectie_utilizator['nume']; $prenume_db = $selectie_utilizator['prenume']; $id_utilizator_db = $selectie_utilizator['idutilizator']; } ?>

Codul HTML de creare a tabelului nebordurat din partea stnga.


<!-- TABEL DE AFISARE A DATELOR --> <table width="310" > <tr> <td width="20"></td> <td width="100"><span style=" color: #FFF; font-family:'Times New Times, serif;"><b>Utilizator:</b></span></td> <td width="200"><span style=" color:#FFF; font-family:'Times New Times, serif;"><?php echo $nume_db." ".$prenume_db ;?></span></td> </tr> <tr> <td width="20"></td> <td width="100"><span style=" color: #FFF; font-family:'Times New Times, serif;"><b>ID utilizator:</b></span></td> <td width="200"><span style=" color:#FFF; font-family:'Times New Times, serif;"><?php echo $id_utilizator_db ;?></span>

Roman', Roman',

Roman', Roman',

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </td> </tr> <tr> <td width="20"></td> <td width="100"><span style=" color:#FFF; font-family:'Times New Roman', Times, serif;"><b>Versiune BD:</b></span></td> <td width="200"><span style=" color:#FFF; font-family:'Times New Roman', Times, serif;"><?php echo $versiune_db; ?></span></td> </tr> </table>

2.1.2. Meniu (Cadrul 2) Dup cum se poate observa n imaginea alaturat meniul acestei aplicaii este alctuit din 12 module, fiecare fiind mprit la rndul su n alte submodule. Toate acestea, ns, au o importan deosebit, deoarece pentru a emite o poli n sistem, trebuie mai nti ca seria acesteia s existe n baza de date. Introducerea acestor serii se poate realiza din seciunea procese verbale > adaug polie n gestiune. Prin implementarea primului modul (Emitere electronic) al acestui meniu se dorete ca pe viitor poliele ce se vor emite electronic direct de pe marile platforme ale firmelor de asigurare s poat fi salvate direct n acceast baz de date prin intermediul acestei interfee. Codul folosit pentru crearea acestui cadru este:
<!-- TABEL DE AFISARE A BUTOANELOR DE MENIU --> <table width="100%" align="center" > <tr><td colspan="2" > <img src="/butoane/butoane meniu/emitere_electronica.png" width="100%" height="30" onclick="redirectare1('/pagini_meniu/emitere_electronica.php');"/> </td></tr> <tr><td> <img src="/butoane/butoane meniu/agenti.png" width="100%" height="25" onclick="redirectare2('/pagini_meniu/agenti.php'); " /> </td></tr> <tr><td > <img src="/butoane/butoane meniu/asigurari.png" alt="" width="100%" height="25" onclick="redirectare2('/pagini_meniu/asigurari.php');"/> </td></tr> <tr><td> <img src="/butoane/butoane meniu/borderouri.png" width="100%" height="25" onclick="redirectare2('/pagini_meniu/borderouri.php');" /> </td></tr> <tr><td> <img src="/butoane/butoane meniu/clienti.png" width="100%" height="25" onclick="redirectare2('/pagini_meniu/clienti.php');" /> </td></tr> <tr><td > <img src="/butoane/butoane meniu/comisioane.png" width="100%" height="25" onclick="redirectare2('/pagini_meniu/comisioane.php');"/>

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </td></tr> <tr><td > <img src="/butoane/butoane meniu/companii.png" width="100%" height="25" onclick="redirectare2('pagini_meniu/compani.php')"/> </td></tr> <tr><td> <img src="/butoane/butoane meniu/curs_valutar.png" width="100%" height="25" onclick="redirectare2('pagini_meniu/curs_valutar.php')"/> </td></tr> <tr><td > <img src="/butoane/butoane meniu/op_doc.png" width="100%" height="25" onclick="redirectare2('pagini_meniu/operatii_cu_doc.php')"/> </td></tr> <tr><td> <img src="/butoane/butoane meniu/polite.png" width="100%" height="25" onclick="redirectare2('pagini_meniu/polite.php')"/> </td></tr> <tr><td> <img src="/butoane/butoane meniu/pv.png" width="100%" height="25" onclick="redirectare2('pagini_meniu/pv.php')"/> </td></tr> <tr><td colspan="2"> <img src="/butoane/butoane meniu/rapoarte.png" width="100%" height="30" onclick="redirectare1('pagini_meniu/rapoarte.php')" /> </td></tr> </table>

2.1.3. Submeniul (Cadrul 3) n acest cadru sunt afiate ancorele de legtur ale submeniului n raport cu opiunea din meniu selectat: Obs: Privind imaginea alaturat observm faptul c odat cu selectarea butonului agenti din meniu (Cadrul 2), n submeniu (Cadrul 3) ne sunt afiate noile opiuni ce pot fi accesate. Principalele avantaje ale acestui submeniu este de a simplifica, ordona i sorta optiunile meniului pentru un aspect modern si o accesare simplificat. n momentul n care ne autentificm sau este inaccesat, submeniul are o valoare prestabilit format din dou pari (A i B) precum se poate observa n imaginea din partea dreapt. A. n aceast zon va aprea sigla sau poza unui agent n funcie de setarile aferente. B. n aceast zon va aprea numele filialei sau a persoanei coordonatoare a aplicaiei.

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

2.1.4. Bara de meniu (Cadrul 4)

Bara de meniu a aplicaiei este extrem de simpl alcatuit din: - O funcie de afiare a orei i datei locale; - Butonul Hart conine harta aplicatiei; - Butonul Setri conine un set de setri ale aplicaiei; - Butonul Deconectare permite deconectarea utilizatorului. Codul surs:
<!-- TABEL DE AFISARE A BAREI DE MENIU --> <table width="100%" height="100%"> <tr><td> <form name="form" method="post" action="bara_meniu.php"> <div align="center"> <table width="100%" height="100%" background="/imagini/fundal_bara_meniu.jpg"> <tr><td width="25%" align="center"> <!- AFISARE DATA SI ORA --> <div style="width:100%; text-align:center" id="dataora" ></div> </td><td> <!- AFISARE NUME APLICATIE --> <div align="center"><span style="font-size:24px; font-family:'Comic Sans MS', cursive; color:#60F" ><b>Licenta 2012</b></span></div> </td><td width="100"> <input type="hidden" name="hidden" value="1"/> </td><td width="5%"> <div align="center"><input type="image" src="/butoane/harta_aplicatie.png" height="45" width="45" name="Setari aplicatie" title="Harta aplicatie" class="image"/> </div> </td><td width="5%"> <div align="center"><input type="image" src="/butoane/setari.jpg" height="45" width="45" name="Setari aplicatie" title="Setari aplicatie" class="image"/> </div> </td><td width="5%"> <div align="center"><input type="image" src="/butoane/deconectare.png" height="45" width="60" name="deconectare" value="10" onclick="if (!confirm('Doriti sa va deconectati ?')) return false; deconectare('/autentificare.php');" title="Deconectati-va" class="image"/> </div> </td></tr> </table> </div> </form> </td></tr> </table>

10

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

2.2. Structura bazei de date


2.2.1. Noiuni teoretice O baz de date (database) este o colecie de date creat i meninut computerizat, care permite operaii de inserare, actualizare, tergere i interogare a datelor. Utilizatorii unei baze de date pot accesa datele memorate prin intermediul unui program numit Sistem de Gestiune a Bazei de Date - SGBD - (Database Management System - DBMS), care recepioneaz cererile utilizatorilor (pentru operaii de introducere, tergere, modificare sau interogare), le interpreteaz, executa operaiile corespunztoare i returneaz rezultatul ctre utilizatori. Fiecare sistem de gestiune administreaz datele conform unui anumit model de date. Exista mai multe modele de date utilizate n sistemele SGBD: modelul ierarhic, modelul reea, modelul relaional, modelul obiect-orientat, modelul obiectrelational. Dintre acestea, n momentul de fa, modelul relaional este cel mai larg rspndit, n special n aplicaiile comerciale i acesta va fi studiat n continuare n aceast lucrare. 2.2.2. Modelul relaional n modelul relaional o baz de date este compus dintr-o mulime finit de relaii, fiecare relaie reprezentnd un tip de entitate sau o asociere dintre dou sau mai multe tipuri (mulimi) de entiti. Din aceast definiie rezult c ntr-o baz de date fiecare relaie este unic (nu exist dou sau mai multe relaii de acelai fel), dat fiind c o baz de date este o mulime de relaii. 2.2.3. Constrngeri de integritate Relaiile unei baze de date reflect realitatea modelat i de aceea valorile pe care le conin trebuie s respecte anumite reguli, care s corespund celor din realitate. Constrngerile de integritate (integrity constraints) sunt reguli care se definesc la proiectarea unei bazei de date i care trebuie s fie respectate de orice stare a acesteia. Din punct de vedere al locului unde sunt definite, constrngerile pot fi constrngeri intra-relaie i constrngeri inter-relaii. Constrngerile intra-relaie sunt reguli care se impun n cadrul unei singure relaii i asigur integritatea datelor acesteia. Ele sunt, la rndul lor, de trei categorii: constrngeri de domeniu, constrngeri de tuplu i constrngeri impuse prin dependente de date (dependente funcionale, multivalorice sau de jonciune). Constrngerile inter-relaii sunt reguli care se impun ntre dou sau mai multe relaii. Cele mai importante constrngeri inter-relaii sunt constrngerile de integritarea refereniala, care se realizeaz prin intermediul cheilor strine i asigur asocierea corect a relaiilor. Din punct de vedere al modului de definire, constrngerile unei baze de date pot fi inerente, implicite i explicite. Constrngerile inerente sunt cele ale modelului de date nsui, care nu trebuie s fie specificate la definirea relaiilor, dar sunt respectate prin modul n care se construiesc relaiile. Constrngerile implicite sunt cele reprezentate n mod implicit n schemele relaiilor prin intermediul instruciunilor de definire a datelor. Pentru fiecare model de date exista un set de constrngeri implicite care se definesc odat cu definirea schemelor de date ale acestuia. Pentru modelul relaional, constrngerile de domeniu, constrngerile de tuplu i constrngerile de integritate referenial sunt exemple de constrngeri implicite. Constrngerile implicite sunt memorate n baza de date i sistemul de gestiune impune automat respectarea acestora. Constrngerile explicite sunt constrngeri suplimentare pe care trebuie s le respecte relaiile unei baze de date i care nu sunt impuse automat de sistemul SGBD, ci prin proceduri speciale. Ca exemple de constrngeri explicite sunt unele dependentele de date . Constrngerile de domeniu sunt condiii impuse valorilor atributelor, astfel nct acestea s corespund semnificaiei pe care o au n realitatea modelat. Dat fiind c, n reprezentarea relaiei printr-un tabel, valorile atributelor sunt reprezentate pe coloane, 11

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

constrngerile de domeniu se mai numesc i constrngeri de coloan. Dintre constrngerile de domeniu, constrngerea NOT NULL i constrngerea de valoare implicit (DEFAULT) sunt constrngeri cu caracter mai general, care se pot aplica oricrui atribut; constrngerea de verificare (CHECK) se poate aplica unor anumite atribute, n funcie de semnificaia acestora. Constrngerile de tuplu: cheia primar i chei secundare. O relaie este definit ca o mulime de tupluri, deci tuplurile unei relaii trebuie s fie distincte. Aceasta nseamn c ntr-o relaie nu pot exista dou (sau mai multe) tupluri care s conin aceeai combinaie de valori ale tuturor atributelor. De obicei, ntr-o schem de relaie exista o submulime de atribute SK cu proprietatea c, n orice stare s-ar afla relaia, nu exist dou tupluri distincte ale relaiei care s aib aceeai combinaie de valori ale atributelor submulimii respective. 2.2.4. Tabelele aplicaiei dezvoltate Baza de date a aplicaiei este creata n MSSQL Server 2005 i este alctuit din 19 tabele precum se poate observa n imaginea din partea stng. Aferent studiului actual accestea nu sunt folosite n totalitate. ntrucat se dorete o funcionalite completa a acestei aplicaii am creat toate aceste tabele necesare, iar tabelele folosite n momentul de fat sunt: Agent Autentificare CursuriValutare Monede PJuridica PolitaAuto Setari Asigurari Clienti FirmaAsigurare PFizica Polita PVIPolite Sucursala

12

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

2.2.5. Gruparea tabelelor Dup cum putei observa n imaginea de mai jos, ce reprezint organigrama aplicaiei dezvoltate, relaionarea tabelelor este destul de vizibil. De fapt aceast imagine este o captur de ecran generat cu ajutorul programului MSSQL.

2.3. Fluxul informaional


Fluxul informaional reprezint cantitatea de informaii care este vehiculat ntre emitorul i beneficiarul pe circuitul informaional, caracterizat prin anumite caracteristici: lungime; vitez de deplasare; fiabilitate; cost, etc. Indiferent de tip, este necesar ca circuitele informaionale s fie ct mai directe, n sensul evitrii la maximum a punctelor intermediare de trecere, ceea ce determin att creterea vitezei de vehiculare a informaiilor, ct i diminuarea apariiei deficienelor informaionale.

13

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

2.3.1. Fluxul informaional al aplicatiei dezvoltate ok


Utilizator

Creare cont Autentificare

Opiune AGENT adauga adauga ASIGURARI adauga CLIENI adauga modifica

OK

EROARE

sterge modifica sterge modifica sterge modifica COMPANI adauga curs CURS VALUTAR Anulare doc OPERATI DOC emite POLI adauga PV Sterge PV PV Adauga polie n gestiune modifica detalii convertor Sterge doc sterge

DECONECTARE

14

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Observaie: Din punct de vedere al fluxului informaional creat, putem spune c este unul fiabil, destul de simplu, care permite o manipulare rapid a informaiilor. Pentru ca acest flux s existe este nevoie de un utilizator care s efectueze anumite operaii pe care sistemul creat este capabil s le execute. Exemplu: Autentificarea i introducerea unui agent nou. *Pentru autentificare este nevoie de un nume de utilizator i parol. *Pentru introducerea agentului este nevoie de datele personale ale acestuia. Pasul 1 Pasul 2 Pasul 3 Pasul 4 se creaz noul utilizator completnd formularul specific; se accept mesajul de confirmare a contului; se trece la pasul urmator. utilizatorul se autentific cu datele opinute; dac d eroare verific pasul 1; altfel se trece la pasul urmtor. se alege opiunea AGENI din seciunea MENIU; se selecteaz opiunea ADAUG AGENT NOU din seciunea SUBMENIU; se introduc datele agentului; se acioneaz butonul ADAUGA; se accept mesajul de confirmare; se trece la pasul urmtor. se acioneaz butonul DECONECTARE din bara de meniu a aplicaiei; se accept mesajul de deconectare a utilizatorului i se revine automat la pasul 1.

15

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Cpitolul 3 DEZVOLTAREA APLICAIEI


3.1. Modul de conectare
Conexiunea interfeei la baza de date MSSQL se realizeaz cu ajutorul limbajului de programare web PHP, folosind funcia mssql_connect. ntruct aceast funcie este folosit n mod frecvent, am salvat coninutul acesteia ntr-un fiier ce poart numele de conexiune.php, urmnd a fi inclus n toate formularele care necesit o conexiune cu baza de date. Codul surs al acestui fiier este urmtorul:
<?php // FUNCTIA DE CONEXIUNE function conexiune_mssql() { $server_sql = "PAUL-75ED8D6653\SQLEXPRESS"; $baza_de_date = "Licenta2012"; $user_baza_de_date = "paul"; $parola_user_baza_de_date = "paul"; $conexiune_php_mssql = mssql_connect($server_sql, $user_baza_de_date, $parola_user_baza_de_date); mssql_select_db($baza_de_date, $conexiune_php_mssql); } conexiune_mssql(); ?>

Codul PHP de includere a fiierului conexiune.php:


<?php // INCLUDE CONEXIUNEA LA MSSQL include ("functi_php/conexiune.php"); ?>

3.2. Setarea sesiunii de autentificare


Ce este o sesiune? O sesiune reprezint una din cile de a pstra datele de lucru ale unei aplicaii atunci cnd se face transferul de la o pagin la alta. PHP folosete n mod nativ sesiuni, aa cum fac i limbajele ASP i ColdFusion. Lucrul cu sesiuni nu este complicat. Fiecare sesiune trebuie declarat la nceputul paginii, cu ajutorul funciei: Start_session (); Aceast funcie face c PHP s nregistreze un identificator unic al sesiunii (ID), iar acel identificator este trimis utilizatorului printr-un cookie. Totodat, pe server se creaz un fiier care va reine valorile variabilelor folosite n aceast sesiune. Fiierul are numele la fel cu identificatorul ID al sesiunii. La fel ca i conexiunea, sesiunea acestei aplicaii (codul surs) am salvat-o ntr-un fiier ce poart numele de sesiune.php, i este setat dup cum urmeaz: 16

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

session_start(); if(!isset($_SESSION["autentificare"])) $_SESSION["autentificare"]= $id_utilizator_db;

Coninutul fiierului sesiune.php este urmtorul:


<?php session_start(); if ($_SESSION["autentificare"] == "") {header("Location:autentificare.php");} ?>

Observaie important: Variabilele definite n sesiuni pot fi folosite ntr-o pagin doar dup ce a fost executat comada session_start (); Aceast comand i spune PHP-ului s verifice dac exist o sesiune i atunci s foloseasc variabilele acelei sesiuni c variabile globale. Funciile session_start (), ca i setcookie () trebuie folosite ntotdeauna chiar la nceputul fiierului. Dac se trimite altceva ctre browser nainte de folosirea lor atunci vor exista erori la folosirea sesiunii sau a cookie-urilor. Fiierul sesiune.php este inclus in paginile aplicaiei cu ajutorul urmtorului fragment de cod:
<?php include ("sesiune.php"); ?>

3.3. Modul de interogare SQL


Interogarea bazei de date se face cu ajutorul funciei mssql_query apelat direct din corpul fiecarui formular creat. Aadar pentru fiecare formular capabil s execute o anumit operaie de transformare a bazei de date (inserare, tergere, actualizare, etc.), exist una sau mai multe interogari ncorporate n corpul acestuia.

3.4. Funcii JavaScript i stiluri CSS


Pentru dezvoltarea dinamismului i aspectului aplicaiei am folosit: Funcii JavaScript precum: Redirectare pagin
function redirectare(pagina) { location.href = pagina }

Aceast funcie este o funcie JavaScript ce realizeaz redirectarea utilizatorului ctre alte pagini dorite. La nivel de formular aceast funcie se apeleaz cu ajutorul atruibutului onclick.

17

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Redirectare submeniu.php (Cadrul 3)


function redirectare2(pagina) { top.frames['submeniu'].location.h ref = pagina }

Aceast funcie este o funcie JavaScript ce realizeaz deschiderea unei pagini n cadrul numrul 3 sau n frame-ul submeniu.php. La nivel de formular aceast funcie se apeleaz cu ajutorul atruibutului onclick.

Redirectare afisare_date.php (Cadrul 1)


function redirectare1(pagina) { top.frames['afisare_date'].locati on.href = pagina }

Aceast funcie este o funcie JavaScript ce realizeaz deschiderea unei pagini n cadrul numrul 1 sau n frame-ul afisare_date.php. La nivel de formular aceast funcie se apeleaz cu ajutorul atruibutului onclick.

Aspecte CSS Ce este CSS? CSS este acronimul pentru Cascading Style Sheets. Cu alte cuvinte CSS este un limbaj (style language) care definete "layout-ul" pentru documentele HTML. CSS acoper culori, font-uri, margini (borders), linii, nlime, lime, imagini de fundal, poziii avansate i multe alte opiuni. HTML este de multe ori folosit necorespunztor pentru a crea layoutul site-urilor de internet. CSS ofer mai multe opiuni, este mai exact i sofisticat. n plus, este suportat de toate browserele actuale. Care este diferena dintre CSS i HTML? HTML este folosit pentru a structura coninutul n timp ce CSS este folosit pentru a formata coninutul. n perioada de nceput a web-ului, HTML era folosit numai pentru structura textului. Textul se putea marca cu taguri precum <hl> i <p> pentru a marca titlul su un paragraf. Odat cu creterea popularitii web-ului designeri au nceput s caute diferite posibiliti de a aduga layout documentelor online. Pentru a rspunde acestor cerine, productorii de browsere (n acea vreme Microsoft i Netscape) au inventat noi taguri HTML precum <font> care difer fa de tagurile originale HTML prin faptul c definesc layoutul i nu structur. Acest lucru a dus i la o situaie unde tagurile originale de structur ca <table> s fie folosite necorespunztor pe pagini de layout (to layout pages). Multe taguri noi de layout precum <blink> erau recunoscute numai de unele browsere. O formul comun ce aprea pe siteuri era "Avei nevoie de browserul X pentru a vedea aceast pagin". CSS a fost inventat pentru a remedia aceast situaie, furnizndu-le designerilor faciliti sofisticate pentru editarea layoutului, suportate de toate browserele. n acelai timp, separarea site-urilor de prezentare pentru documente de coninutul documentelor uureaz foarte mult ntreinerea lor.

18

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Ce avantaje aduce CSS? CSS a reprezentat un element revoluionar n lumea web-designului. Beneficiile concrete includ: Controlarea layoutului documentelor dintr-o singur pagin de stiluri; Control mai exact al layoutului; Aplicare de layouturi diferite pentru tipuri media diferite (ecran, printare, etc); Tehnici numeroase i sofisticate. n cadrul aplicaiei dezvoltate am folosit urmtoarele stiluri CSS: Excluderea marginilor Cadrul 4 (bara_meniu.php)
body { background-image: url(imagini/fundal_frame_bara_meniu.jpg); margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; }

Cu ajutorul acestui script am exclus marginile cadrului 4, setnd astfel fiecare margine cu valoarea 0. Acest script este inclus n corpul formularelor cu ajutorul tag-uluib <link>.

Codul de includere este dup cum urmez:


<link rel="stylesheet" type="text/css" href="../fisiere_css/excludere_margini.css" media="screen"/>

Setarea fundalului a cmpurilor de tip text i a opacitii imaginilor Cu ajutorul acestui script am realizat setarea fundalului cmpurilor de tip input:focus text dup cum se poate observa n imaginea { background-color: #99F;} de mai jos. Acest fundal apare odata cu img { opacity:1.0; selectarea cmpului respectiv. filter:alpha(opacity=100); } Tot cu ajutorul acestui script am img:hover realizat efectul de opacitate al imaginilor. { opacity:0.5;
filter:alpha(opacity=50); } input.image { opacity:1.0; filter:alpha(opacity=100); } input.image:hover { opacity:0.5; filter:alpha(opacity=50); }

Acest efect se poate observa atunci cnd una din imaginile formularelor este selectat sau traversat de cursorul mouse-ului. Iniial valoarea opacitaii unei imagini este de 100% iar n momentul n care aceasta este selectat sau traversat de cursorul mouse-ului aceasta se rezum la 50%. 19

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Aceast diferen a opacitii se poate observa n imaginile de mai jos:

nainte de selectare

Dup selectare

Acest script este inclus n corpul formularelor cu ajutorul tag-uluib <link>. Codul de includere este dup cum urmez:
<link rel="stylesheet" type="text/css" href="../fisiere_css/focus.css" media="screen"/>

Aspect calendar Pentru aspectul calendarului din partea stnga cu ajutorul limbajului CSS am setat: Modul de afiare a datei curente .today avnd culoarea albastr; font Sans-serif; mrimea font-ului de 12pt bolduit; Modul de afiare a zilei curente .days avnd culoarea roie; font Sans-serif; mrimea font-ului de 10pt bolduit; aliniat la centru; Modul de afiare al datei n caseta text .dates avnd culoarea neagr; font Sans-serif; mrimea font-ului de 10pt bolduit; aliniat la centru; Codul CSS al acestui aspect este dup cum urmeaz:
.today {COLOR: blue; FONT-FAMILY: sans-serif; FONT-SIZE: 12pt; FONT-WEIGHT: bold} .days {COLOR: read; FONT-FAMILY: sans-serif; FONT-SIZE: 10pt; FONT-WEIGHT: bold; TEXT-ALIGN: center} .dates {COLOR: black; FONT-FAMILY: sans-serif; FONT-SIZE: 10pt; font-weight:bold; text-align:center}

Acest script este inclus n corpul formularelor cu ajutorul tag-uluib <link>. Codul de includere este dup cum urmez:
<link rel="stylesheet" type="text/css" href="../fisiere_css/calendar.css" media="screen"/>

20

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Fundalul formularelor Exemple: Formular: Adaug firm de asigurare

Formular: Adaug sucursal

Fundalul gri al acestor formulare precum i a celorlalte sunt setate cu ajutorul urmtorului script CSS:
body { background-color: #CCC; }

Acest script este salvat ntr-un fisier de tip css cu numele de fundal_formulare.css.

Includerea acestui fiier n corpul tuturor formularelor se face cu ajutorul tag-ului <link> i arat n felul urmtor:
<link rel="stylesheet" type="text/css" href="../fisiere_css/calendar.css" media="screen"/>

Crearea unui astfel de fiier css reprezint un avantaj deosebit, deoarece dac dorim s modificm culoarea de fundal sau s inseram o imagine de fundal tuturor formularelor, este deajuns s modificm doar acest fiier. Fundalul opiunilor din submeniu Dup cum se poate vedea n imaginea din partea stng pentru a fi posibil schimbarea fundalului opiunii n momentul seleciei sale am folosit urmtorul script CSS.

td:hover { background-color: #0F9; } body { background-color: #CCC;}

21

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.5. Modul de iniializare a erorilor


<?php ini_set('display_errors','On'); error_reporting(-1); ?>

Pentru a nu exista erori am folosit acest script PHP care dup acionarea butonului submit mi returneaz erorile posibile la nivel de formular. Dup depistarea acestora ele sunt tratate corespunztor una cte una. Pentru a m face nteles mai jos am inserat o captur de ecran cu o situaie similar.

3.6. Descrierea formularelor de baz


3.6.1. Noiuni teoretice FORMULARUL Un formular este un ansamblu de zone active alctuit din butoane, casete de selecie, cmpuri de editare etc. Formularele ne asigur construirea unor pagini Web care permit utilizatorilor s introduc efectiv informaii i s le transmit serverului. Formularele pot varia de la o simpl caset text, pentru introducerea unui ir de caractere pe post de cheie de cutare - element caracteristic tuturor motoarelor de cutare din Web - pn la o structur complex, cu multiple seciuni, care ofer faciliti puternice de transmisie a datelor. O sesiune cu o pagin web ce conine un formular cuprinde urmtoarele etape: 1. Utilizatorul completeaz formularul i l expediaz unui server. 2. O aplicaie dedicat de pe server analizeaz formularul completat i (dac este necesar) stocheaz datele ntr-o baz de date. 3. Dac este necesar serverul expediaz un rspuns utilizatorului. Un formular este definit ntr-un bloc delimitat de etichetele corespondente <form> i </form>. ELEMENTELE UNUI FORMULAR Majoritatea elementelor unui formular sunt definite cu ajutorul etichetei <input>. Pentru a preciza tipul elementului se folosete atributul type al etichetei <input>. 22

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Cmpul de editare text Pentru un cmp de editare, acest atribut primete valoarea "text". Alte atribute pentru un element <input> sunt: - Atributul name, permite ataarea unui nume fiecrui element al formularului. - Atributul value, care permite atribuirea unei valori iniiale unui element al formularului. Pentru elementul <input> de tipul cmp de editare (type = "text"), alte dou atribute pot fi utile: - Atributul size specific limea cmpului de editare depete aceasta lime, atunci se execut automat o derulare acestui cmp; - Atributul maxlength specific numrul maxim de caractere pe care le poate primi un cmp de editare; caracterele tastate peste numrul maxim sunt ignorate. Observaii: - Dac atributul type lipsete ntr-un element <input>, atunci cmpul respectiv este considerat n mod prestabilit ca fiind de tip "text". - Formularele cu un singur cmp (de tip text) nu au nevoie de un buton de expediere, datele sunt expediate automat dup completarea i apsarea tastei ENTER. Butonul submit Un buton de expediere al unui formular se introduce cu ajutorul etichetei <input>, n care atributul type este configurat la valoarea "submit". Acest element poate primi un nume prin atributul name. Pe buton apare scris "Submit Query" sau valoarea atributului value, dac aceast valoare a fost stabilit. Butonul Reset Dac un element de tip <input> are atributul type configurat la valoarea "reset", atunci n formular se introduce un buton pe care scrie "Reset". La apsarea acestui buton, toate elementele din formular primesc valorile prestabilite (definit odat cu formularul), chiar dac aceste valori au fost modificate de utilizator. Un buton Reset poate primi un nume cu ajutorul atributului name i o valoare printr-un atribut value. Un asemenea buton afieaz textul "Reset" dac atributul value lipsete. Cmp de editare de tip "password" Dac se utilizeaz eticheta <input> avnd atributul type configurat la valoarea "password", atunci n formular se introduce un element asemntor cu un cmp de editare obinuit (introdus prin type="text"). Toate atributele unui cmp de editare rmn valabile. Singura deosebire const n faptul c acest cmp de editare nu afieaz caracterele n clar, ci numai caractere *, care ascund de privirile altui utilizator aflat n apropiere valoarea introdus ntr-un asemenea cmp. La expedierea formularului ns, valoarea tastat ntr-un cmp de tip "password" se transmite n clar.

23

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Butoanele radio Butoanele radio permit alegerea, la un moment dat, a unei singure variante din mai multe posibile. Butoanele radio se introduc prin eticheta <input> cu atributul type avnd valoarea "radio". La expedierea formularului se va transmite una dintre perechile "sex=b" sau "sex=f", n funcie de alegerea fcut de utilizator. Casete de validare O caset de validare (checkbox) permite selectarea sau deselectarea unei opiuni. Pentru inserarea unei casete de validare se utilizeaz eticheta <input> cu atributul type configurat la valoarea "checkbox". Observaii: - Fiecare caset poate avea un nume definit prin atributul name. - Fiecare caset poate avea valoarea prestabilit "selectat" definit prin atributul checked. Casete de fiiere ntr-o pereche "name = value" a unui formular se poate folosi ntregul coninut al unui fiier pe post de valoare. Pentru aceasta se nsereaz un element <input> ntr-un formular, cu atributul type avnd valoarea "file" (fiier). Atributele pentru un element de tip caseta de fiiere: - Atributul name permite ataarea unui nume - Atributul value primete ca valoare adresa URL a fiierului care va fi expediat o dat cu formularul. Aceast valoare poate fi atribuit direct atributului value, se poate fi tastata ntr-un cmp de editare ce apare o dat cu formularul sau poate fi selectat prin intermediul unei casete de tip File Upload sau Choose File care apare la apsarea butonului Browse... din formular; - Atributul enctype precizeaz metoda utilizat la criptarea fiierului de expediat. Valoarea acestui atribut este "multipart/form-data". Liste de selecie O list de selecie permite utilizatorului s aleag unul sau mai multe elemente dintr-o list finit. Lista de selecie este inclus n formular cu ajutorul etichetelor corespondente <select>i </select>. O list de selecie poate avea urmtoarele atribute: - Atributul name, care ataeaz listei un nume (utilizat n perechile "name=value" expediat serverului); - Atributul size, care precizeaz (printr-un numr ntreg pozitiv, valoarea prestabilit fiind 1) cte elemente din list sunt vizibile la un moment dat pe ecran (celelalte devenind vizibile prin acionarea barei de derulare ataate automat listei). Elementele unei liste de selecie sunt incluse n lista cu ajutorul etichetei <option>. Dou atribute ale etichetei option se dovedesc utile: - Atributul value primete ca valore un text care va fi expediat server-ului n perechea "name=value"; dac acest atribut lipsete, atunci ctre server va fi expediat textul ce urmeaz dup <option>; - Atributul selected (fr alte valori) permite selectarea prestabilit a unui element al listei.

24

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Lista de selecie cu selecii multiple O list de selecie ce permite selecii multiple se creeaz ntocmai ca o list de selecie obinuit. n plus, eticheta <select> are un atribut multiple (fr alte valori). Cnd formularul este expediat ctre server pentru fiecare element selectat al listei care este se nsereaz cte o pereche "name=value" unde name este numele listei. Cmpuri de editare multilinie ntr-un formular cmpuri de editare multilinie pot fi incluse cu ajutorul etichetei <textarea>. Eticheta are urmtoarele atribute: - Atributul cols, care specific numrul de caractere afiate ntr-o linie; - Atributul rows, care specific numrul de linii afiate simultan; - Atributul name, care permite ataarea unui nume cmpului de editare multilinie; - Atributul wrap, (de la "word wrap"=trecerea cuvintelor pe rndul urmator0, care determin determina comportamentul cmpului de editare fa de sfritul de linie. Acest atribut poate primi urmtoarele valori: A) " off "; n acest caz: ntreruperea cuvintelor la marginea dreapt a editorului se produce numai cnd dorete utilizatorul; Caracterul de sfrit de linie este inclus n textul transmis serverului o dat cu formularul; B) " hard "; n acest caz: Se produce ntreruperea cuvintelor la marginea dreapt a editorului; Caracterul de sfrit de linie este inclus n textul transmis serverului o dat cu formularul; C) " soft "; n acest caz: Se produce ntreruperea cuvintelor la marginea dreapt a editorului; Nu se include caracterul de sfrit de linie n textul transmis serverului o dat cu formularul; n ceea ce urmeaz v voi prezenta formularele HTML, create, ale acestei aplicaii, deoarece au o importan deosebit i anume; de cele mai multe ori formularele HTML sunt create pentru a fi folosite mpreuna cu alte programe i scripturi web, cum sunt PHP, JavaScript i altele permind o dezvoltare complex a celor propuse. 3.6.2. Formularul de nregistrare Formularul din partea stng este destul de simplu, creat cu scopul de a permite crarea noilor utilizatorilori. Acesta este alcatuit din: 7 cmpuri de tip text; 1 cmp de tip select; 2 cmpuri de tip password; 1 buton submit; 1 buton de nchidere a ferestrei; 1 cmp hidden avnd valoarea 1.

25

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Codul surs al acestui formular este dupa cum urmeaz:


<?php // INITIALIZAREA ERORILOR ini_set('display_errors','On'); error_reporting(-1); // INCLUDEREA FUNCTIEI DE CONEXIUNE PHP include ("../functi_php/conexiune.php") ?> <head> <!--TITLUL PAGINII--> <title>Inregistrare</title> <!--INSERARE IMAGINE DE FUNDAL CU AJUTORUL CSS--> <style type="text/css"> body { background-image: url(../imagini/FUNDAL.jpg); } </style> <!--INCLUDEREA FISIERELOR UZUALE --> <!--INCLUDE FUNCTIE DE VALIDARE JAVASCRIPT A FORMULARULUI --> <script type="text/javascript" src="/functi_js/validare_inregistrare.js"> </script> <!INCLUDE FUNCTIE JAVASCRIPT DE REDIRECTARE A PAGINII --> <script type="text/javascript" src="/functi_js/redirectare_pagina.js"></script> <!INCLUDE FUNCTIA JAVASCRIPT DE PROCESARE A CALENDARULUI--> <script type="text/javascript" src="/functi_js/calendar.js"></script> <!--INCLUDEREA FISIERULUI CSS PENTRU ASPECTUL CALENDARULUI --> <link rel="stylesheet" href="/fisiere_css/calendar.css" media="screen"/> <!--INCLUDE FISIERUL CSS DE EFECTE A IMAGINILOR SI CAMPURILOR DE TIP TEXT --> <link rel="stylesheet" href="../fisiere_css/focus.css" media="screen"/> </head> <body> <?php // PRELUARE DATE DIN FORMULAR CU PHP $nume = $_POST['nume']; $prenume = $_POST['prenume']; $data_nasteri = $_POST['data']; $gen = $_POST['gen']; $tara = $_POST['tara']; $localitate = $_POST['localitate']; $email = $_POST['email']; $nume_utilizator = $_POST['nume_utilizator']; $parola_utilizator = $_POST['parola_utilizator']; $confirmare_parola = $_POST['confirmare_parola']; $camp_hidden = $_POST['camp_hidden']; // INTEROGAREA BBAZEI DE DATE MSSQL $interogare_sql = "insert into autentificare(nume, prenume, data_nasteri, gen, tara, localitate, email, nume_utilizator, parola_utilizator, permisiuni) values('$nume', '$prenume', '$data_nasteri', '$gen', '$tara', '$localitate', '$email', '$nume_utilizator', '".md5($parola_utilizator)."', '')"; //CONDITIE DE ACTIUNE if($camp_hidden == 1) { $query = mssql_query($interogare_sql); } // CONDITIE DE CONFIRMARE if($query) { header ('Location:/mesaje/mesaj_1.html'); } ?>

26

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

<!CREAREA FORMULARULUI CU AJUTORUL LIMBAJULUI HTML <form name="inregistrare" action="inregistrare.php" method="post"> <table align="center" width="600" bgcolor="#0033CC"> <tr> <td colspan="4" align="center"> <table> <tr> <td><span style="font-size: 40px; color: #FFF"><b>Inregistrare utilizator nou</b></span> </td> <td width="50"></td> <td width="60" align="right"><img src="/butoane/close.jpg" title="Inchide" name="Innapoi" height="30" width="30" onClick="redirectare('/autentificare.php');"/></td> </tr> </table> </td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Nume:</span></td> <td width="270" height="40"><div align="center"><input type="text" size="35" maxlength="20" name="nume" id="nume" style="font-weight:bold;" value="<?php echo $nume; //afisezi in value valoare preluata din formular; ?>"/></div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Prenume:</span></td> <td width="270" height="40"><div align="center"><input type="text" style="font-weight:bold;" size="35" maxlength="20" name="prenume" id="prenume" value="<?php echo $prenume; ?>"/></div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Data nasterii:</span></td> <td width="270" height="40"> <div align="center"><INPUT type="text" id="data" name="data" size="30" style="font-weight:bold;" readonly="readonly"/> <img src="/butoane/calendar.png" width="25" height="25" onClick="toggleCalendar('data');"/></div> </td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Gen:</span></td>

27

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td width="270" height="40"> <div align="center"> <select name="gen" style="font-weight:bold;"> <option>-Selecteaza-</option> <option>Masculin</option> <option>Feminin</option> </select> </div> </td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Tara/Localitate:</span></td> <td width="270" height="40"> <div align="center"> <input type="text" style="font-weight:bold;" size="14" maxlength="20" name="tara" id="tara" value="<?php echo $tara; ?>"/>/ <input type="text" style="font-weight:bold;" size="14" maxlength="20" name="localitate" id="localitate" value="<?php echo $localitate; ?>"/> </div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">E-mail:</span></td> <td width="270" height="40"><div align="center"><input type="text" style="font-weight:bold;" size="35" maxlength="50" name="email" id="email" value="<?php echo $email; ?>"/></div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Utilizator:</span></td> <td width="270" height="40"><div align="center"><input type="text" style="font-weight:bold;" size="35" maxlength="20" name="nume_utilizator" id="nume_utilizator" value="<?php echo $nume_utilizator; ?>"/></div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Parola:</span></td> <td width="270" height="40"><div align="center"><input type="password" class="fundalinput" size="35" name="parola_utilizator" id="parola_utilizator" value="<?php echo $parola_utilizator; ?>"/></div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr>

28

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> <td width="270" height="40"><span style="font-size:30px; color:#000">Confirmare parola:</span></td> <td width="270" height="40"><div align="center"><input type="password" class="fundalinput" size="35" name="confirmare_parola" id="confirmare_parola" value="<?php echo $confirmare_parola; ?>"/></div></td> <td width="30"><div align="center"><img src="../imagini/bordura.jpg" width="15" height="45"/></div></td> </tr> <tr> <td colspan="4" align="center" height="70"><input type="image" src="/butoane/validare.jpg" id="unid" height="50" width="150" title="Inregistrare" onClick="return validare_inregistrare(this.form)" class="image"/> </td> </tr> <input type="hidden" name="camp_hidden" id="camp_hidden" value="1" /> </form> </body> </html>

Dup cum se poate observa n interogarea SQL de mai jos putem observa modul de inserare a datelor n tabelul de autentificare.
// INTEROGAREA BAZEI DE DATE MSSQL $interogare_sql = "insert into autentificare(nume, prenume, data_nasteri, gen, tara, localitate, email, nume_utilizator, parola_utilizator, permisiuni) values('$nume', '$prenume', '$data_nasteri', '$gen', '$tara', '$localitate', '$email', '$nume_utilizator', '".md5($parola_utilizator)."', '')";

De remarcat este faptul c n coloana parola_utilizator datele sunt inserate in mod criptat de tip MD5. Algoritmul MD5 calculeaz pentru un ir oarecare o sum de control corespunztoare, un ir va ntoarce ntotdeauna aceeai sum de control, ns orice modificare a irului, chiar o modificare infim, duce la modificri majore a sumei de control MD5. MD5 este numit adesea un algoritm de criptare, lucru nu tocmai potrivit deoarece algoritmul MD5 nu permite decriptarea datelor. Suma de control MD5 (MD5 hash) este un numr cu lungimea de 128 bii. Uzual acest numr este reprezentat ca un ir de 32 de caractere, reprezentarea hexazecimal a numrului respectiv. Indiferent de lungimea irului algoritmul asigura obinerea unei sume MD5 cu lumgimea de 128 de bii (32 caractere n reprezentarea hexazecimal); chiar i pentru un ir vid, acesta returnnd "d41d8cd98f00b204e9800998ecf8427e". O caracteristic important este faptul c nu se poate determina irul care a generat o anumit sum de control MD5, acest lucru recomandnd MD5 pentru stocarea parolelor i alte verificri de integritate a datelor. Vezi mai multe despre spargerea unui cod MD5. Pentru crearea acestui formular, modul de scriere al codului surs este unul logic i anume: Initializarea erorilor posibile, pentru corectarea acestora i simplificarea sarcinii de lucru; Includerea funciei de conexiune; n seciunea head am inclus: Titlul pagini; Scriptul CSS de setare a fundalului prin inserarea unei imagini de fundal; Scriptul CSS pentrul aspectul calendarului; Scriptul CSS pentru efectul tag-urilor <img> i <input>; Funcia JavaScript de redirectare a pagini; 29

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Funcia JavaScript de procesare a calendarului; Funcia JavaScript de validare a formularului; n seciunea body am conceput urmtoarele scripturi: Un fiier PHP care preia datele din formularul HTML cu ajutorul metodei POST n care am inclus interogarea MSSQL de inserare a datelor preluate; Scriptul de creare a formularului HTML propriuzis. 3.6.3. Formularul de autentificare Acest formular este creat cu scopul de a permite accesul utilizatorilor la interfaa aplicaiei. El este format din: - 1 cmp de tip text; - 1 cmp de tip password; - 1 buton submit; - 2 butoane de redirectare; - 1 cmp hidden avnd valoarea 1.

Procesul de conectare Pentru realizarea procesului de autentificare n baza de date trebuie s existe un nume de utilizator i o parol asociat acestuia, deoarece dup completarea acestui formular de autentificare i acionare a butonului de conectare are loc o interogare de selecie SQL ntorcndu-mi un id sau valoarea NULL n caz c nu exist. Daca dup interogarea SQL id-ul rezultat este diferit de valoarea NULL acsta este setat ca valoare a sesiunii de autentificare permind navigarea n paginile aplicaiei. Codul surs al acestui formular este urmtorul:
<?php // INITIALIZAREA ERORILOR ini_set('display_errors','On'); error_reporting(-1); // SETARE SESIUNE DE AUTENTIFICARE session_start(); if(!isset($_SESSION["autentificare"])) // INCLUDE CONEXIUNEA LA MSSQL include ("functi_php/conexiune.php"); ?> <head> <title>Autentificare</title> <!TITLUL PAGINI <!SETAREA IMAGINI DE FUNDAL SI A DIMENSIUNILOR ACESTEIA <style type="text/css"> body { background-image: url(imagini/FUNDAL.jpg);

30

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE background-size:1100px 750px; background-position:center; } </style> <!INCLUDE FISIER CSS DE EFECT AL IMAGINILOR SI IMPUT <link rel="stylesheet" type="text/css" href="../fisiere_css/focus.css" media="screen"/> <!FUNCTIE JAVASCRIPT DE REDIRECTARE A PAGINI --> <script type="text/javascript" src="/functi_js/redirectare_pagina.js"></script> <!FUNCTIE JAVASCRIPT DE VERIFICARE A DATELOR INTRODUSE <script type="text/javascript" src="/functi_js/verificare_date_autentificare.js"></script> </head> <body> <?php // PRELUARE DATE DIN FORMULAR $nume_utilizator = $_POST['nume_utilizator']; $parola_utilizator = $_POST['parola_utilizator']; $camp_hidden = $_POST['camp_hidden']; // INTEROGARE MSSQL DE EXTRAGERE A DATELOR DE AUTENTIFICARE $interogare_sql = "select idutilizator from autentificare where nume_utilizator='$nume_utilizator' and parola_utilizator = '".md5($parola_utilizator)."' "; // INTEROGARE MSSQL DE EXTRAGERE A VERSIUNI ACTUALE A BAZEI DE DATE $selectie_versiune_db = "select versiune from setari"; $info_versiune = mssql_query($selectie_versiune_db); $query = mssql_query($interogare_sql); // PRELUARE VERSIUNE DIN BAZA DE DATE CU AJUTORUL LUI WHILE while($afisare_versiune = mssql_fetch_assoc($info_versiune)) { $versiune_db = $afisare_versiune['versiune']; } // PRELUARE DATE DATE DE AUTENTIFICARE CU AJUTORUL LUI WHILE while($selectie = mssql_fetch_assoc($query)) { $nume_utilizator_db = $selectie['nume_utilizator']; $parola_utilizator_db = $selectie['parola_utilizator']; $id_utilizator_db = $selectie['idutilizator']; } // CONDITIE DE AUTENTIFICARE if($camp_hidden == 1) { if ($id_utilizator_db != "") { // REDIRECTARE PE PAGINA utilizator.php header ('Location:utilizator.php'); // SETARE SESIUNE CU VALOAREA ID_UTILIZATOR $_SESSION["autentificare"]= $id_utilizator_db; } else { echo ' <script type="text/javascript"> <!-window.alert("Utilizator sau parola gresita!"); </script>'; } } ?>

31

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <?php // AFISARE VERSIUNE CURENTA CU PHP echo "<table width=\"100%\"> <tr> <td align=\"left\"><b>Versiune:</b>$versiune_db</td> </tr> </table>"; ?> <!--FORMULAR DE AUTENTIFICARE--> <form name="autentificare" id="autentificare" method="post" action="autentificare.php" > </br></br></br></br></br></br></br> <table width="358" align="center" background="imagini/fundal_autentificare.jpg" id="id1"> <tr height="40"> <td height="30" width="327" colspan="2"> <table width="300" height="150" background="imagini/fundal_autentificare.jpg" align="center"> <tr> <td colspan="3"><div align="center"> <table width="300" height="30" > <tr height="30"> <td height="10" width="250" colspan="3"><div align="center" span style="color:#FFF; font-style:italic; font-size:20px;font-family:Verdana, Geneva, sans-serif"><b>Autentificare</b></div></td> <td align="right"><img src="butoane/close.jpg" height="20" width="20" onClick="redirectare('/index.html');" title="Inapoi la site" class="image"/></td> </tr> </table> </div></td> </tr> <tr height="40"> <td width="50" height="30"><div align="left"><span style="color:#9F0; font-family:'Comic Sans MS', cursive; font-size:18px;"><b>Utilizator:</b></span></div></td> <td height="30" width="200" colspan="2"><div align="right"><img src="/iconite/utilizator.png" width="35" height="35" align="left"/><input type="text" class="fundalinput" id="nume_utilizator" name="nume_utilizator" width="150" /></div></td> </tr> <tr height="40"> <td width="50" height="30"><div align="left"><span style="color:#9F0; font-family:'Comic Sans MS', cursive; font-size:18px;"><b>Parola:</b></span></div></td> <td height="30" width="200" colspan="2"><div align="right"><img src="/iconite/parola.png" width="35" height="35" align="left"/><input type="password" class="fundalinput" id="parola_utilizator" name="parola_utilizator" width="150" onKeyPress="" /></div></td> </tr> <tr height="40"> <td colspan="3" > <table width="300" height="30"> <tr> <td> <div align="left"><img src="butoane/inregistrare.jpg" height="40" width="150" name="Cont nou" onClick="redirectare('/formulare/inregistrare.php');" title="Creaza-ti un cont." class="image"/></div></td> <td><div align="right"><input type="image" width="150" height="40" src="/butoane/buton_conectare.png" name="submit" onClick="return verifica(this.form);" title="Conectare" class="image"/></div> </td>

32

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </tr> </table> </td> </tr> </table></td></tr> </table> <input type="hidden" name="camp_hidden" id="camp_hidden" value="1" /> </form> </body> </html>

Pentru crearea acestui formular am utilizat urmtorul fir logic: Iniializarea erorilor posibile; Setarea sesiunii de autentificare; Includerea conexiuni la baza de date MSSQL; n seciunea head am inclus urmatoarele: Titlul pagini; Scriptul CSS de setare a imagini de fundal i a dimensiuni acesteia; Scriptul CSS de efect al opacitai imaginilor i fundal a tag-urilor input; Funcia JavaScript de redirectare a pagini; Funcia JavaScript de verificare a datelor introduse; n seciunea body am inclus urmatoarele: Script PHP de preluare a datelor din formular; Script PHP de preluare a datelor din baza de date MSSQL; Script PHP de extragere a versiuni curente din baza de date MSSQL; Script HTML de structurare a formularului HTML.

33

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.6.4. Formularul de adugare a polielor n gestiune Pentru ca o poli s poat fi emis n cadrul acestei aplicai, mai nti seria i numrul acesteia trebuie s existe inserate n tabelul polie aparinnd bazei de date MSSQL. Pentru a face posibil acest lucru am creat urmtorul formular. Acest formular este capabil s insereze n tabelul polie att seria poliei ct i un set de numere aferente acestora.

Exemplu: *Introducerea n gestiune a 20 de polie RCA aparinnd companiei Astra Asigurari S.A. avnd seria SP. Numerele acestor polie reprezint intervalul de numere consecutive de la 1234567 pn la 1234588. Pentru efectuarea acestei operai se procedeaz astfel: Se selecteaz sucursala Astra Asigurri S.A. ; Se lelecteaz procesul verbal de intrare ; Se selecteaz tipul de asigurare RCA ; Se selecteaz agentul dorit ; Se introduce seria polielor SP ; Se introduce numrul de nceput al polielor, adic 1234567; Se introduce numrul de sfrit al polielor, adic 1234588 ; Se apas butonul submit.

34

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Codul surs al acestui formular este dup cum urmeaz:


<?php // INCLUDEREA SESIUNII SI A CONEXIUNII include ("../sesiune.php"); include ("../functi_php/conexiune.php") ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <!-- INCLUDEREA FUNCTIEI DE VALIDARE A DATELOR INTRODUSE--> <script type="text/javascript" src="../functi_js/validare_polita.js"></script> <!-- INCLUDEREA FUNCTIEI DE REDIRECTARE A PAGINI--> <script type="text/javascript" src="/functi_js/redirectare_pagina.js"></script> <!-- INCLUDEREA FISIERULUI CSS PENTRU EFECTUL DE FUNDAL INPUT--> <link rel="stylesheet" type="text/css" href="../fisiere_css/focus.css" media="screen"/> <!-- INCLUDEREA FISIERULUI CSS DE SETARE A FUNDALULUI PAGINILOR--> <link rel="stylesheet" type="text/css" href="/fisiere_css/aspecte_paginare.css"/> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Adauga polite in gestiune</title> <!-- TITLU PAGINA --> </head> <body> <!-- TABELUL CE CONTINE NUMELE FORMULARULUI SI BUTONUL DE INCHIDERE--> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr><td width="50" height="80"><img src="/iconite/db1.png" width="70" height="80" align="left"/></td> <td><div align="center"><span style="color:#000 font-family:'Times New Roman', Times, serif; font-size:36px;"><b>Adauga polite in gestiune</b> </span></div></td> <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="redirectare('/afisare_date.php');" title="Inchide"/> </div></td> </tr> </table> <br/><!-- SPATIU INTRE TABELE (UN RAND)--> <fieldset style="color: #009"> <!--CREARE FILEDSET--> <legend><span style="color:#000; font-size:20px;">Introduceti datele</span></legend> <!-- LEGENDA FILEDSET-ULUI --> <div align="center"> <!-- POZITIONAREA LA CENTRU A FORMULARULUI --> <!-- CREAREA FORMULARULUI HTML SUB FORMA DE TABEL --> <form name="form" action="adauga_polite.php" method="post"> <table width="90%"> <tr> <td width="50%"><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Sucursala:</span></td> <td> <select name="Sucursala" id="Sucursala"> <option value="0">-----------------Selectati-----------------</option> <?php //INTEROGARE MSSQL $interogare_suc = "select idSucursala, Denumire from Sucursala order by Denumire"; $selectare_suc = mssql_query($interogare_suc); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_suc = mssql_fetch_assoc($selectare_suc)) { $var_1a = $afisare_suc['idSucursala']; $var_2a = $afisare_suc['Denumire']; echo ' <option value="'.$var_1a.'">'.$var_2a.' </option>';

35

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE } $Sucursala = $_POST['Sucursala']; ?> </select> <input type="image" src="../iconite/ok.png" width="40" height="40" class="image" /> </td></tr> </table> </form> <form name="form" action="adauga_polite.php" method="post"> <table width="90%"> <tr> <td><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Proces verbal de intrare:</span></td> <td> <select name="PVI" id="PVI"> <option value="0">-----------------Selectati-----------------</option> <?php //INTEROGARE MSSQL $interogare_pvi = "select idPviPolite, idSucursala, NrPviPolite, DataPviPolite from PVIPolite where idSucursala='$Sucursala'"; $selectare_pvi = mssql_query($interogare_pvi); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_pvi = mssql_fetch_assoc($selectare_pvi)) { $var_1 = $afisare_pvi['idPviPolite']; $var_2 = $afisare_pvi['NrPviPolite']; $var_3 = $afisare_pvi['DataPviPolite']; echo ' <option value="'.$var_1.'"> '.$var_2.' / '.$var_3.' </option>'; } $pvi = $_POST['pvi']; //INTEROGARE MSSQL $interogare_pv = "select idPviPolite, NrPviPolite, DataPviPolite from PVIPolite where idPviPolite='$pvi'"; $selectare_pv = mssql_query($interogare_pv); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_pv = mssql_fetch_assoc($selectare_pv)) { $var_a = $afisare_pv['idPviPolite']; $var_b = $afisare_pv['NrPviPolite']; $var_c = $afisare_pv['DataPviPolite']; } ?> </select> </td></tr> <tr> <td><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Tip asigurare:</span></td> <td> <select name="Asigurare" id="Asigurare"> <option name="optiune" value="1">-----------------Selectati-----------------</option> <?php //INTEROGARE MSSQL $interogare_asig = "select idAsig, TipAsigurare from Asigurari order by TipAsigurare"; $selectare_asig = mssql_query($interogare_asig); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_asig = mssql_fetch_assoc($selectare_asig)) { $var_1 = $afisare_asig['idAsig']; $var_2 = $afisare_asig['TipAsigurare'];

36

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE echo ' <option name="optiune" value="'.$var_1.'">'.$var_2.' </option>'; } ?> </select> </td> </tr> <tr> <td><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Agent:</span></td> <td> <select name="Agent" id="Agent"> <option name="optiune" value="1">-----------------Selectati-----------------</option> <?php //INTEROGARE MSSQL $interogare_agenti = "select idAgent, NumeAg, PrenumeAg from agent order by NumeAg"; $selectare_agenti = mssql_query($interogare_agenti); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_agenti = mssql_fetch_assoc($selectare_agenti)) { $var_1 = $afisare_agenti['idAgent']; $var_2 = $afisare_agenti['NumeAg']; $var_3 = $afisare_agenti['PrenumeAg']; echo ' <option name="optiune" value="'.$var_1.'">'.$var_2.' '.$var_3.' id = '.$var_1.' </option>'; } ?> </select> </td></tr> <tr> <td height="10" width="50%"><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Serie polita:</span></td> <td align="left"><input type="text" name="SeriePolita" size="30"/></td> </tr> <tr> <td height="10" width="50%"><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Inceput numar polita:</span></td> <td align="left"><input type="text" name="inceput_polita" size="30"/></td> </tr> <tr> <td height="10" width="50%"><span style="color:#000; font-family:'Times New Roman', Times, serif; font-size:20px;">Sfarsit numar polita:</span></td> <td align="left"><input type="text" name="sfarsit_polita" size="30"/></td> </tr> <tr> <td colspan="2"><div align="center"><input type="image" src="../iconite/ok.png" name="submit" class="image" title="Adauga polite" onClick="return verifica(this.form)" /></div> <input type="hidden" value="1" name="hidden"/> </td> </tr> </table> </form> </div> </fieldset> <?php // PRELUAREA DATELOR DIN FORMULAR

37

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE $hidden = $_POST['hidden']; $Sucursala = $_POST['Sucursala']; $PVI = $_POST['PVI']; $Asigurare = $_POST['Asigurare']; $SeriePolita = $_POST['SeriePolita']; $inceput_polita = $_POST['inceput_polita']; $sfarsit_polita = $_POST['sfarsit_polita']; $Agent = $_POST['Agent']; $a = ($sfarsit_polita - $inceput_polita); //INSERARE DATE $strSQL = "select NrPolita from Polita where (NrPolita='$inceput_polita')"; $objQuery = mssql_query($strSQL); $objResult = mssql_fetch_array($objQuery); if ($hidden ==1) {if($objResult) { echo ' <script type="text/javascript"> alert("Polita '.$SeriePolita.' '.$inceput_polita.' exista in baza de date !") </script>'; } else { $strSQL = " declare @a int set @a = $inceput_polita while @a <= $sfarsit_polita begin insert into Polita(idPviPolite,idAsig,SeriePolita,NrPolita,idAgent) values('$PVI','$Asigurare','$SeriePolita', @a ,'$Agent') select @a = @a + 1 end"; $objQuery = mssql_query($strSQL); if($objQuery) { echo '<script type="text/javascript"> alert("Efectuau! Ai inserat '.$a.' polite.") </script>'; } else { echo' <script type="text/javascript"> alert("Eroare MSSQL: Operatie nereusita. ") </script>'; } } } ?> </body> </html>

38

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.6.5. Formularul de emitere a polielor RCA

Acest formular permite emiterea unei polie RCA n baza de date. El este alctuit din 7 butoane slelect, 18 cmpuri text, 6 imagini (5 dintre acestea folosite drept butoane cu ajutorul funciilor JavaScript) i un buton submit de validare i trimitere a datelor completate ctre server. Codul surs al acestui formular este dup cum urmeaz:
<?php // INCLUDEREA SESIUNII DE AUTENTIFICARE include ("../sesiune.php"); ?> <?php // INCLUDEREA CONEXIUNII CATRE MSSQL include ("../functi_php/conexiune.php") ?> <head> <!-- INCEPUT DE ANTET --> <!-- INCLUDEREA FUNCTIILOR JAVASCRIPT DE REDIRECTARE --> <script type="text/javascript" src="/functi_js/redirectare_pagina.js"> </script> <!-- INCLUDEREA FUNCTIEI JAVASCRIPT DE PROCESARE A CALENDARULUI --> <script type="text/javascript" src="../functi_js/calendar.js"></script> <!-- INCLUDEREA STILURILOR CSS PENTRU CALENDARE --> <link rel="stylesheet" type="text/css" href="../functi_js/calendar.js" media="screen"/> <!-- INCLUDEREA STILURILOR CSS PENTRU FOCUSUL CASETELOR TEXT --> <link rel="stylesheet" type="text/css" href="../fisiere_css/focus.css" media="screen"/>

39

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <!-- SETAREA TITLULUI --> <title>Emite RCA</title> </head> <!-- SFARSIT DE ANTET --> <body> <!-- INCEPUTUL CORPULUI DE PAGINA --> <!-- BARA DE SUS A FORMULARULUI SETATA ACU AJUTORUL TABELULUI URMATOR --> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr> <td width="50" height="80"><img src="/iconite/db1.png" width="64" height="64" align="left"/> </td> <td><div align="center"><span style="color:#000 font-family:'Times New Roman', Times, serif; font-size:36px;"><b>Emite polita RCA</b></span></div></td> <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="if (!confirm('Doriti sa abandonati emiterea politei ?'))return false; redirectare('/afisare_date.php');" title="Inchide"/></div></td> </tr> </table> <!-- CREAREA FORMULARULUI HTML --> <fieldset style="background-color:#999;"> <br/> <form action="emite_RCA.php" method="post"> <table width="85%" border="0" align="center" bgcolor="#CCCCCC"> <tr> <td width="15%" height="35"><b>Polita</b> </td> <td colspan="2" width="30%"> <select name="Polita" style="font-weight:bold;"> <option name="optiune" value="">---------Selectati---------</option> <?php //INTEROGARE MSSQL $interogare_polita = "select idPolita, idAgent, idAsig, NrPolita, SeriePolita from Polita where idClient is null order by NrPolita"; $selectare_polita = mssql_query($interogare_polita); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_polita = mssql_fetch_assoc($selectare_polita)) { $var_polita1 = $afisare_polita['idPolita']; $var_polita2 = $afisare_polita['NrPolita']; $var_polita3 = $afisare_polita['SeriePolita']; echo ' <option name="optiune" value="'.$var_polita1.'"> '.$var_polita3.' '.$var_polita2.' </option>'; } ?> </select></td><td width="20%"><b>Sucursala</b></td> <td colspan="2"> <select name="Sucursala" style="font-weight:bold;"> <option value="0">-------------------Selectati-------------------</option> <?php //INTEROGARE MSSQL $interogare_suc = "select idSucursala, Denumire from Sucursala order by Denumire "; $selectare_suc = mssql_query($interogare_suc); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_suc = mssql_fetch_assoc($selectare_suc)) { $var_suc1 = $afisare_suc['idSucursala']; $var_suc2 = $afisare_suc['Denumire']; echo ' <option value="'.$var_suc1.'">'.$var_suc2.' </option>'; } ?> </select>

40

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </td></tr> <tr><td><b>Asigurare</b></td> <td colspan="2"> <select name="TipAsigurare" style="font-weight:bold;"> <option name="optiune" value="0">---------Selectati---------</option> <?php //INTEROGARE MSSQL $interogare_asig = "select idAsig, TipAsigurare from Asigurari order by TipAsigurare"; $selectare_asig = mssql_query($interogare_asig); // PRELUAREA VALORILOR DIN BAZA DE DATE while($afisare_asig = mssql_fetch_assoc($selectare_asig)) { $var_asig1 = $afisare_asig['idAsig']; $var_asig2 = $afisare_asig['TipAsigurare']; echo ' <option name="optiune" value="'.$var_asig1.'">'.$var_asig2.' </option>'; } ?> </select> </td> <td><b>Client _<img src="../iconite/adauga_client.png" width="25" height="25" title="Adauga client nou" onclick="redirectare('/formulare/client_nou.php');"/>_</b></td> <td colspan="2"> <select name="Client" style="font-weight:bold;"> <option name="optiune" value="0">-------------------Selectati-------------------</option> <?php //INTEROGARE MS SQL $interogare_cl = "select IdClient as id, DenumirePj as nume , CUI as prenume from PJuridica union select IdClient as id, Nume as nume, Prenume as prenume from Pfizica"; $selectare_cl = mssql_query($interogare_cl); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_cl= mssql_fetch_assoc($selectare_cl)) { $var_cl1 = $afisare_cl['id']; $var_cl2 = $afisare_cl['nume']; $var_cl3 = $afisare_cl['prenume']; $var_cl4 = $afisare_cl['DenumirePj']; echo ' <option name="optiune" value="'.$var_cl1.'">'.$var_cl2.' '.$var_cl3.' </option>'; } ?> </select> </td> </tr> <tr> <td colspan="6"><b>Data emiterii</b> <input name="datapolita" size="5" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datapolita'); redirectare('javascript:')"/> <b>data de inceput</b> <input name="datainceput" size="6" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datainceput'); redirectare('javascript:')"/> <b>data expirarii</b> <input name="datasfarsit" size="6" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datasfarsit'); redirectare('javascript:')"/> <table bgcolor=#ffffff border=1 cellpadding=0 cellspacing=3 id=calendar style="display: none; position: absolute; z-index: 4" >

41

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <tbody> <tr> <td colspan=7 valign=center> <!-- month combo box --> <select id=month onchange=newcalendar()> <script language=javascript> // output months into the document. // select current month. for (var intloop = 0; intloop < months.length; intloop++) document.write("<option " + (today.month == intloop ? "selected" : "") + ">" + months[intloop]); </script> </select> <!-- year combo box --> <select id=year onchange=newcalendar()> <script language=javascript> // output years into the document. // select current year. for (var intloop = 1900; intloop < 2101; intloop++) document.write("<option " + (today.year == intloop ? "selected" : "") + ">" + intloop); </script></select> </td> </tr> <tr class=days> <!-- generate column for each day. --> <script language=javascript> // output days. for (var intloop = 0; intloop < days.length; intloop++) document.write("<td>" + days[intloop] + "</td>"); </script> </tr> <tbody class=dates id=daylist onclick="getdate('')" valign=center> <!-- generate grid for individual days. --> <script language=javascript> for (var intweeks = 0; intweeks < 6; intweeks++) { document.write("<tr>"); for (var intdays = 0; intdays < days.length; intdays++) document.write("<td></td>"); document.write("</tr>"); } </script> <!-- generate today day. --></tbody> <tbody> <tr> <td class=today colspan=5 id=todayday onclick=gettodayday()></td> <td align=right colspan=2><a href="javascript:hidecalendar();"><span style="color: black; font-size: 15px"><b>hide</b></span></a></td> </tr> </tbody> </table> </td> </tr> <tr> <td><strong>Sasiu</strong></td> <td colspan="2"><input type="text" name="SerieSasiu" style="font-weight:bold;" maxlength="17"/></td> <td colspan="3" rowspan="8" > <table width="100%" border="0"> <tr> <td width="50%"><strong>Culoare</strong></td> <td>

42

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <select name="Culoare" style="font-weight:bold;"> <option value="">---------Selectati---------</option> <option value="Alb">Alb</option> <option value="Albastru">Albastru</option> <option value="Galben">Galben</option> <option value="Grena">Grena</option> <option value="Gri">Gri</option> <option value="Negru">Negru</option> <option value="Portocaliu">Portocaliu</option> <option value="Rosu">Rosu</option> <option value="Verde">Verde</option> <option value="Visiniu">Visiniu</option> </select></td> </tr> <tr> <td><strong>Vigneta</strong></td> <td><input type="text" name="Vigneta" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Suma asigurata</strong></td> <td><input type="text" name="SumaAsigurata" style="font-weight:bold;"/></td> </tr> </table> <fieldset> <legend><strong>Detalii plata</strong></legend> <table width="100%" border="0" bgcolor="#CCCCC0"> <tr> <td width="50%"><strong>Valoare prima</strong></td> <td><input type="text" name="ValoarePolita" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Moneda</strong></td> <td> <select name="Moneda" style="font-weight:bold;"> <option name="optiune" value="0">---------Selectati---------</option> <?php //INTEROGARE MS SQL $interogare_moneda = "select Moneda from Monede order by Moneda"; $selectare_moneda = mssql_query($interogare_moneda); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_moneda= mssql_fetch_assoc($selectare_moneda)) { $var_moneda1 = $afisare_moneda['Moneda']; echo '<option name="optiune" value="'.$var_moneda1.'"> '.$var_moneda1.' </option>'; } ?> </select> </td> </tr> <tr> <td><strong>Data platii</strong></td> <td><INPUT name="DataPlata" size="14" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onClick="toggleCalendar('DataPlata'); redirectare('JavaScript:')"/></td> </tr> <tr> <td><strong>Document de plata</strong></td> <td><input type="text" name="DocumentPlata" style="font-weight:bold;"/></td> </tr> </table>

43

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </fieldset> </td> </tr> <tr> <td><strong>Nr. auto</strong></td> <td colspan="2"><input type="text" name="NrInmatriculare" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Cilindri</strong></td> <td colspan="2"><input type="text" name="CapacitateCilindrica" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Putere</strong></td> <td colspan="2"> <input type="text" name="PutereMotor" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Nr. locuri</strong></td> <td colspan="2"><input type="text" name="NrLocuri" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Masa</strong></td> <td colspan="2"><input type="text" name="Tonaj" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>An fabricatie</strong></td> <td colspan="2"><input type="text" name="AnFabricatie" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Serie CIV</strong></td> <td colspan="2"><input type="text" name="CIV" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Categorie</strong></td> <td colspan="2"><select name="Categorie" style="font-weight:bold;"> <option value="">---------Selectati---------</option> <option value="Autoturism">Autoturism</option> <option value="Autoutilitara">Autoutilitara</option> <option value="Moped">Moped</option> <option value="Motoreta">Motoreta</option> <option value="Tranvai">Tranvai</option> </select> </td> <td colspan="3" rowspan="2" align="center"> <table width="100%" align="center"> <tr> <td width="40%" align="center"><strong>Agent</strong><br/><select name="Agent"> <option name="optiune" value="1">---------Selectati---------</option>

44

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <?php //INTEROGARE MSSQL $interogare_agenti = "select idAgent, NumeAg, PrenumeAg from agent order by NumeAg"; $selectare_agenti = mssql_query($interogare_agenti); // PRELUARE VALORI DIN BAZA DE DATE while($afisare_agenti = mssql_fetch_assoc($selectare_agenti)) { $var_1 = $afisare_agenti['idAgent']; $var_2 = $afisare_agenti['NumeAg']; $var_3 = $afisare_agenti['PrenumeAg']; echo '<option name="optiune" value="'.$var_1.'">'.$var_2.' '.$var_3.' </option>'; } ?> </select></td> <td align="center"><input type="submit" value=" Emite polita " class="image"/></td> </tr> </table> </td> <td rowspan="2"></td> </tr> <tr> <td><strong>Marca</strong></td> <td colspan="2"><input type="text" name="Marca" style="font-weight:bold;"/></td> </tr> <tr> <td><strong>Mentiuni</strong></td> <td colspan="5"> <input type="text" maxlength="1000" name="Mentiuni" size="50" /> </td></tr> </table> <br/> <input type="hidden" name="hidden" value="1" /> </form> </fieldset> <?php // PRELUAREA DATELOR DIN FORMULAR CU PHP $Mentiuni = $_POST['Mentiuni']; $Sucursala = $_POST['Sucursala']; $TipAsigurare = $_POST['TipAsigurare']; $Client = $_POST['Client']; $NrPolita = $_POST['NrPolita']; $DataPolita = $_POST['DataPolita']; $DataInceput = $_POST['DataInceput']; $DataSfarsit = $_POST['DataSfarsit']; $SerieSasiu = $_POST['SerieSasiu']; $NrInmatriculare = $_POST['NrInmatriculare']; $CapacitateCilindrica = $_POST['CapacitateCilindrica']; $PutereMotor = $_POST['PutereMotor']; $NrLocuri = $_POST['NrLocuri']; $Tonaj = $_POST['Tonaj']; $AnFabricatie = $_POST['AnFabricatie']; $CIV = $_POST['CIV']; $Categorie = $_POST['Categorie']; $Marca = $_POST['Marca']; $Culoare = $_POST['Culoare']; $Vigneta = $_POST['Vigneta']; $SumaAsigurata = $_POST['SumaAsigurata']; $ValoarePolita = $_POST['ValoarePolita'];

45

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE $Moneda = $_POST['Moneda']; $DataPlata = $_POST['DataPlata']; $DocumentPlata = $_POST['DocumentPlata']; $Agent = $_POST['Agent']; $Polita = $_POST['Polita']; $hidden = $_POST['hidden']; if ($hidden == 1) { $strSQL ="update Polita set idAgent='$Agent', idAsig='$TipAsigurare', idClient='$Client', ValoarePolita='$ValoarePolita', DocumentPlata='$DocumentPlata', DataPolita='$DataPolita', DataPlata='$DataPlata', DataInceput='$DataInceput', DataSfarsit='$DataSfarsit', Moneda='$Moneda' where idPolita='$Polita'; insert into PolitaAuto (idPolita, SerieSasiu, NrInmatriculare, CapacitateCilindrica, PutereMotor, NrLocuri, Tonaj, AnFabricatie, CIV, Categorie, Marca, Culoare, SumaAsigurata, Vigneta, MentiuniSpecAuto) values ('$Polita', '$SerieSasiu', '$NrInmatriculare', '$CapacitateCilindrica', '$PutereMotor', '$NrLocuri', '$Tonaj', '$AnFabricatie', '$CIV', '$Categorie', '$Marca', '$Culoare', '$SumaAsigurata', '$Vigneta', '$Mentiuni')"; $objQuery = mssql_query($strSQL); if($objQuery) { echo '<script type="text/javascript"> alert("Polita a fost emisa cu succes!") </script>'; } else { echo' <script type="text/javascript"> alert("Eroare MSSQL: Operatie nereusita!") </script>'; } } ?> </body> </html>

46

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.6.6. Formularul de adaugare al agentilor

Acest formular HTML a fost creat cu scopul inserri datelor solicitate aferent unui agent n tabelul Autentificare ce aparine bazei de date. Ca i arhitectur el este alctuit din 18 casete de tip text, o imagine simpl afiat n partea stng sus, 2 imagini de tip button i un submit te tip image situat n partea de subsol a formularului. Codul surs al acestui formular HTML este dup cum urmeaz:
<?php // INCLUDERE SESIUNE DE AUTENTIFICARE include ("../sesiune.php"); ?> <?php // INCLUDERE CONEXIUNE MSSQL include ("../functi_php/conexiune.php") ?> <head> <!-- SETARE TITLU PAGINA --> <title>Adaugare agent nou</title> <!-- STILURI - ASPECTE DE PAGINA --> <link rel="stylesheet" type="text/css" href="/fisiere_css/aspecte_paginare.css"/> <!-- STILURI DE FOCUSARE A CAMPURILOR TEXT --> <link rel="stylesheet" type="text/css" href="../fisiere_css/focus.css" media="screen"/> <!-- FUNCTI JAVASCRIPT DE REDIRECTARE --> <script type="text/javascript" src="/functi_js/redirectare_pagina.js"></script> <!-- FUNCTIE JAVASCRIPT DE FU --> <script type="text/javascript" src="/functi_js/validare_adaugaAg.js"></script> <script type="text/javascript" src="/functi_js/calendar.js"></script> <link rel="stylesheet" href="/fisiere_css/calendar.css" media="screen"/> </head> <body> <?php

47

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE // PRELUARE DATE DIN FORMULAR $NumeAg $PrenumeAg $SerieBuletinAg $NumarBuletinAg $TelefonAg1 $TelefonAg2 $CNPAg $StradaAg $OrasAg $SectorAg $BlocAg $EtajAg $ApartamentAg $EmailAg $ContractAg $DataContractAg $CodCSA $IBANAg $hidden //INSERARE DATE $strSQL = "select NumeAg, PrenumeAg from Agent where (NumeAg='$NumeAg' and PrenumeAg='$PrenumeAg')"; $objQuery = mssql_query($strSQL); $objResult = mssql_fetch_array($objQuery); if ($hidden ==1) { if($objResult) { echo ' <script type="text/javascript"> alert("Agentul '.$NumeAg.' '.$PrenumeAg.' exista in baza de date.") </script>'; } else { $strSQL = ""; $strSQL = "insert into agent"; $strSQL .="(NumeAg, PrenumeAg, SerieBuletinAg, NumarBuletinAg, TelefonAg1, TelefonAg2, CNPAg, StradaAg, OrasAg, SectorAg,BlocAg, EtajAg, ApartamentAg, EmailAg, ContractAg, DataContractAg, CodCSA, IBANAg)"; $strSQL .="VALUES "; $strSQL .="('$NumeAg', '$PrenumeAg', '$SerieBuletinAg', '$NumarBuletinAg', '$TelefonAg1', '$TelefonAg2', '$CNPAg', '$StradaAg', '$OrasAg', '$SectorAg', '$BlocAg', '$EtajAg', '$ApartamentAg', '$EmailAg', '$ContractAg', '$DataContractAg', '$CodCSA', '$IBANAg')"; $objQuery = mssql_query($strSQL); if($objQuery) { echo ' <script type="text/javascript"> alert("Agentul '.$NumeAg.' '.$PrenumeAg.' a fost adaugat cu succes!") </script>'; = $_POST['NumeAg']; = $_POST['PrenumeAg']; $_POST['SerieBuletinAg']; $_POST['NumarBuletinAg']; = $_POST['TelefonAg1']; = $_POST['TelefonAg2']; = $_POST['CNPAg']; $_POST['StradaAg']; = $_POST['OrasAg']; $_POST['SectorAg']; = $_POST['BlocAg']; = $_POST['EtajAg']; $_POST['ApartamentAg']; $_POST['EmailAg']; = $_POST['ContractAg']; $_POST['DataContractAg']; = $_POST['CodCSA']; = $_POST['IBANAg']; = $_POST['hidden'];

= =

= = = = =

48

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE } else { echo' <script type="text/javascript"> alert("Eroare MSSQL: Agentul '.$NumeAg.' '.$PrenumeAg.' nu a putut fi salvat!") </script>'; } } } ?> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr> <td ><div align="center"><span style="color:#FFF; font-family:'Times New Roman', Times, serif; font-size:36px;"><img src="/iconite/utilizator.png" width="50" height="50" align="left"/><b>Adauga agent nou</b></span></div></td> <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="redirectare('/afisare_date.php');" title="Inchide"/></div></td> </tr> </table><br /> <div style="border:solid; color: #93C"> <form name="adauga_agent" action="adauga_agent.php" method="post" > <table width="100%" > <tr> <td width="20%">Nume</td> <td width="30%"><input type="text" name="NumeAg" maxlength="30" size="30" /></td> <td width="20%">Prenume</td> <td width="30%"><input type="text" name="PrenumeAg" maxlength="30" size="30" /></td> </tr> <tr> <td>Serie buletin</td> <td><input type="text" name="SerieBuletinAg" maxlength="2" size="30" /></td> <td>Numar buletin</td> <td><input type="text" name="NumarBuletinAg" maxlength="6" size="30" /></td> </tr> <tr> <td>Telefon mobil</td> <td><input type="text" name="TelefonAg1" maxlength="30" size="30" /></td> <td>Telefon fix</td> <td><input type="text" name="TelefonAg2" maxlength="30" size="30" /></td> </tr> <tr> <td>CNP</td> <td><input type="text" name="CNPAg" maxlength="13" size="30" /></td> <td>Strada / nr</td> <td><input type="text" name="StradaAg" maxlength="30" size="30" /></td> </tr> <tr> <td>Oras</td> <td><input type="text" name="OrasAg" maxlength="30" size="30" /></td> <td>Sector</td> <td><input type="text" name="SectorAg" maxlength="30" size="30" /></td> </tr>

49

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <tr> <td>Bloc</td> <td><input type="text" name="BlocAg" maxlength="30" size="30" /></td> <td>Etaj</td> <td><input type="text" name="EtajAg" maxlength="30" size="30" /></td> </tr> <tr> <td>Apartament</td> <td><input type="text" name="ApartamentAg" maxlength="30" size="30" /></td> <td>Email</td> <td><input type="text" name="EmailAg" maxlength="50" size="30" /></td> </tr> <tr> <td>Numar contract</td> <td><input type="text" name="ContractAg" maxlength="30" size="30" /></td> <td>Data contract</td> <td><INPUT type="text" id="data" name="DataContractAg" size="25" readonly="readonly" /> <img src="/butoane/calendar.png" width="25" height="25" title="Calendar" onClick="toggleCalendar('data');"/> <table bgcolor=#ffffff border=1 cellpadding=0 cellspacing=3 id=calendar style="display: none; position: absolute; z-index: 10"> <tbody> <tr> <td colspan=7 valign=center> <!-- month combo box --> <select id=month onchange=newcalendar()> <script language=javascript> // output months into the document. // select current month. for (var intloop = 0; intloop < months.length; intloop++) document.write("<option " + (today.month == intloop ? "selected" : "") + ">" + months[intloop]); </script> </select> <!-- year combo box --> <select id=year onchange=newcalendar()> <script language=javascript> // output years into the document. // select current year. for (var intloop = 1900; intloop < 2101; intloop++) document.write("<option " + (today.year == intloop ? "selected" : "") + ">" + intloop); </script> </select> </td> </tr> <tr class=days> <!-- generate column for each day. --> <script language=javascript> // output days. for (var intloop = 0; intloop < days.length; intloop++) document.write("<td>" + days[intloop] + "</td>"); </script> </tr> <tbody class=dates id=daylist onclick="getdate('')" valign=center> <!-- generate grid for individual days. -->

50

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <script language=javascript> for (var intweeks = 0; intweeks < 6; intweeks++) { document.write("<tr>"); for (var intdays = 0; intdays < days.length; intdays++) document.write("<td></td>"); document.write("</tr>"); } </script> <!-- generate today day. --></tbody> <tbody> <tr> <td class=today colspan=5 id=todayday onclick=gettodayday()></td> <td align=right colspan=2><a href="javascript:hidecalendar();"><span style="color: black; font-size: 15px"><b>hide</b></span></a></td> </tr> </tbody> </table> </td> </tr> <tr> <td>Cod CSA</td> <td><input type="text" name="CodCSA" maxlength="30" size="30" /></td> <td>IBAN</td> <td><input type="text" name="IBANAg" maxlength="24" size="30" /></td> </tr> <tr> <td colspan="4"><div align="center" style="border:inset "><input type="image" src="/butoane/buton_conectare.png" width="100" height="60" name="submit" value="Adauga agent" title="Adauga agent" onClick="return verifica(this.form)" class="image"/></div></td> </tr> </table> <input type="hidden" name="hidden" value="1"/> </form> </div> </body> </html>

51

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.6.7. Formularul de ataare a documentelor

Acest formular permite ataarea documentelor suplimentare unei polie prin arhivarea acestora ntr-un folder purtnd numele ID-ului de client. Acest operaie este executat cu ajutorul urmtorului cod surs:
<head> <title>Arhivare electronica</title> <!-- SETAREA TITLULUI DE PAGINA --> <!-- INCLUDEREA STILURILOR CSS DE TRANSPARENTA A BUTOANELO--> <link rel="stylesheet" type="text/css" href="../fisiere_css/focus.css" media="screen"/> </head> <body> <?php session_start(); $a=$_SESSION["arhiva"]; <!-- LOCATIA UNDE SE VOR SALVA DOCUMENTELE--> $updir = 'ArhivaElectronica/Clienti/'; <!-- MARIMEA MAXIMA A UNU DOCUMENT IN MB --> $max_size = 500; <!-- TIPURILE DE EXTENSI PERMISE --> $allowtype = array('doc', 'docx', 'xls', 'xlsx', 'bmp', 'flv', 'gif', 'jpg', 'jpeg', 'mp3', 'pdf', 'png', 'rar', 'zip'); $rezultat = array(); if (!is_dir($updir.$a)) mkdir($updir.$a, 0777); if (isset($_FILES['file_up'])) { for($f=0; $f<count($_FILES['file_up']['name']); $f++) { $nume_f = $_FILES['file_up']['name'][$f]; if (strlen($nume_f)>3) { $type = end(explode('.', strtolower($nume_f))); if (in_array($type, $allowtype)) { if ($_FILES['file_up']['size'][$f]<=$max_size*1000) {

52

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE if ($_FILES['file_up']['error'][$f]==0) { $thefile = $updir.$a . '/'. $nume_f; if (!move_uploaded_file ($_FILES['file_up']['tmp_name'][$f], $thefile)) { $rezultat[$f] = ' Fisierul '. $nume_f. ' nu a putut fi copiat, incercati din nou'; } else { $rezultat[$f] = '<b>'.$nume_f.'</b>'; } } } else { $rezultat[$f] = 'Fisierul <b>'. $nume_f. '</b> depaseste marimea permisa de maxim <i>'. $max_size. 'KB</i>'; } } else { $rezultat[$f] = 'Fisierul <b>'. $nume_f. '</b> nu are tipul de extensie permis'; } } } $_SESSION['rezultat'] = implode('<br />', $rezultat); header('Location: '. basename($_SERVER['PHP_SELF']). '?re=up'); } ?> <!-- CREAREA FORMULARULUI HTML --> <div align="center"> <fieldset id="incarca_documente" style="background: #FCF"> <legend><span style="color:#03F; font-size:18px; font:'Times New Roman', Times, serif;"><b>Incarca documente:</b></span></legend> <!-- Formularul cu mai multe campuri pt. upload --> <form id="uploadform" action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data"> <table> <tr> <td> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /><br /> <input type="file" class="file_up" name="file_up[]" /> </td> </tr> <tr> <td height="50"> <table width="100%"> <tr> <td align="center"><input type="submit" value=" Incarca " id="submit" class="image"/></td> <td align="center"><input type="button" value=" Inchide " onclick="self.close();" class="image"/></td> </tr> </table> </td> </tr> <tr> <td>

53

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

<?php if (isset($_GET['re']) && isset($_SESSION['rezultat'])) { echo '<h4>Fisiere incarcate:</h4>'. $_SESSION['rezultat']; unset($_SESSION['rezultat']); } ?> </td> </tr> </table> </form> </fieldset> </div> </body> </html>

3.7. Descrierea rapoartelor de baz


Deoarece principalul rol al acestei aplicaii este acela de evideniere al tuturor datelor ce sunt introduse n acest sistem, n continuare v voi prezenta cteva dintre cele mai importante rapoarte pe care acest sistem este capabil s le genereze. 3.7.1. Raportare - list clieni

Acest raport este generat cu ajutorul funciei while i printat (afiat) cu ajutorul limbajului PHP sub form de tabel.

54

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Codul surs al acestui raport este dup cum urmeaz:


<?php // INITIALIZAREA ERORILOR DIN PAGINA ini_set('display_errors','On'); error_reporting(-1); ?> <?php // INCLUDEREA SESIUNII DE AUTENTIFICARE include ("../../sesiune.php"); // INCLUDEREA CONEXIUNII CU BAZA DE DATE include ("../../functi_php/conexiune.php"); ?> <!-- INCLUDEREA JUNCTIEI JAVASCRIPT DE REDIRECTARE --> <script type="text/javascript" src="../../functi_js/redirectare_pagina.js"></script> <!-- INCLUDERE STILURI CSS PENTRU FOCUS A IMAGINILOR --> <link rel="stylesheet" type="text/css" href="../../fisiere_css/focus.css" media="screen"/> <!-- INCLUDERE STILURI CSS DE AFISARE A PAGINII --> <link rel="stylesheet" type="text/css" href="../../fisiere_css/aspecte_paginare.css"/> <head> <title>Lista clienti</title> <!-- SETARE TITLU PAGINA --> </head> <body> <!-- ANTETUL PAGINI TIP TABEL HTML --> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr> <td width="50" height="50"><img src="/iconite/raport1.png" width="50" height="50" align="left"/> </td> <td><div align="center"><span style="color:#000 font-family:'Times New Roman', Times, serif; font-size:36px;"><b>Lista clienti</b></span></div></td> <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="redirectare('/utilizator.php');" title="Inchide"/></div></td> </tr> </table> <br/> <?php $a=1; // INITIALIZAREA NUMARULUI CURENT //INTEROGARE MS SQL $interogare="select cl.idclient as [id], pf.Nume +' '+pf.Prenume as [pf], pj.DenumirePj as [pj], pj.CUI as [cui], pf.CNP as [cnp], pf.sex as [sex], CONVERT(char(11), pf.DataNasterii, 106) as [na], pf.LocMunca as [munca], pf.Functie as [functie], pj.CodCAEN as [caen], pj.RegCom as [reg], pj.PersoanaContactPj as [pc], cl.Judet as [jud], cl.Localitate as [loc], cl.Sector as [sect], cl.Numar as [nr], cl.Etaj as [et],

55

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE cl.Apartament as [ap], cl.Telefon1 as [t1], cl.Telefon2 as [t2], cl.Mail as [m], cl.Fax as [f], pj.BancaPJ as [b], pj.IBAN as [i] FROM dbo.Clienti AS cl full JOIN dbo.PJuridica AS pj ON cl.idclient = pj.idclient full JOIN dbo.PFizica AS pf ON cl.idclient = pf.idclient order by Telefon2"; $rezultat = mssql_query($interogare); while ($row = mssql_fetch_assoc($rezultat)) { $var_1 = $row['id']; $var_2 = $row['pf']; $var_3 = $row['pj']; $var_4 = $row['cui']; $var_5 = $row['cnp']; $var_6 = $row['sex']; $var_7 = $row['na']; $var_8 = $row['munca']; $var_9 = $row['functie']; $var_10 = $row['caen']; $var_11 = $row['reg']; $var_12 = $row['pc']; $var_13 = $row['jud']; $var_14 = $row['loc']; $var_15 = $row['sect']; $var_16 = $row['nr']; $var_17 = $row['et']; $var_18 = $row['ap']; $var_19 = $row['t1']; $var_20 = $row['t2']; $var_21 = $row['m']; $var_22 = $row['f']; $var_23 = $row['b']; $var_24 = $row['i'];

echo '<div style="border:solid; border-color:#000;"> <fieldset> <legend> |||||Nr.ctr: <strong>'.$a++.'</strong>||||| Client: <strong>'.$var_3.' '.$var_2.' ||||| CNP/CUI: '.$var_4.' '.$var_5.' ||||| ID client: '.$var_1.' |||||</strong></legend> <table width="100%" border="0"> <tr> <td rowspan="2" colspan="2" width="25%"><fieldset><legend>Date de contact</legend>Telefon1: '.$var_19.' <br/> Telefon2: '.$var_20.' <br/> Mail: '.$var_21.' <br/> Fax: '.$var_22.'<br/>Persoana: '.$var_12.'<br/></fieldset></td> <td>Data nasterii/RegCom: '.$var_7.' '.$var_11.' <br/>CAEN:'.$var_10.' <br/>Cont banca: '.$var_23.'</td> <td colspan="5">Loc de munca: '.$var_8.' <BR/>Functie: '.$var_9.' <BR/>IBAN: '.$var_24.'</td> </tr> <tr>

56

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td colspan="7"><fieldset><legend>Adresa:</legend>Judet: '.$var_13.', Localitate: '.$var_14.', Sector: '.$var_15.', Numar: '.$var_16.', Etaj: '.$var_17.', Apartament: '.$var_18.'</fieldset></td> </tr> </table> </fildset> </div> '; } ?> </fildset> </body> </html>

3.7.2. Raportare - polite emise pe o perioada de timp

Acest raport permite extragerea din baza de date a polielor ce au data de nceput (data emiterii) cuprins n intervalul de timp setat cu ajutorul celor dou cmpuri text aferente calendarului JavaScript. De exemplu n cazul imagini de mai sus am selectat perioada 1 Mai 2012 - 31 Mai 2012, iar la acionarea butonului submit (Afiaz) mi-au fost returnate cu ajutorul lui select cele dou polie emise conform seleciei ordonate dup data emiteri. Codul surs al acestui formular este dup cum urmeaz:
<?php // INITIALIZAREA ERORILOR DIN PAGINA ini_set('display_errors','On'); error_reporting(-1); ?>

57

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

<?php // INCLUDEREA SESIUNII DE AUTENTIFICARE include ("../../sesiune.php"); // INCLUDEREA CONEXIUNII CU BAZA DE DATE include ("../../functi_php/conexiune.php"); ?> <!-- INCLUDEREA JUNCTIEI JAVASCRIPT DE REDIRECTARE --> <script type="text/javascript" src="../../functi_js/redirectare_pagina.js"></script> <!-- INCLUDERE STILURI CSS PENTRU FOCUS A IMAGINILOR --> <link rel="stylesheet" type="text/css" href="../../fisiere_css/focus.css" media="screen"/><script type="text/javascript" src="../../functi_js/calendar.js"></script> <!-- INCLUDERE STILURI CSS PENTRU AFISAREAA CALENDARULUI --> <link rel="stylesheet" type="text/css" href="../../functi_js/calendar.js" media="screen"/> <!-- INCLUDERE STILURI CSS PENTRU ASPECTUL DE PAGINARE --> <link rel="stylesheet" type="text/css" href="../../fisiere_css/aspecte_paginare.css"/> <head> <title>Polite emise</title><!-- SETAREA TITLULUI DE PAGINA --> </head> <body><!-- SETAREA ANTETULUI DE PAGINA SUB FORMA DE TABEL HTML --> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr> <td width="50" height="50"><img src="/iconite/raport1.png" width="50" height="50" align="left"/> </td> <td><div align="center"><span style="color:#000 font-family:'Times New Roman', Times, serif; font-size:36px;"><b>Polite emise</b></span></div></td> <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="redirectare('/utilizator.php');" title="Inchide"/></div></td> </tr> </table> <br/> <fieldset> <legend><b> Selectati perioada de raportare dorita </b> </legend> <form action="polite_emise.php" method="post"> <!-- CREAREA FORMULARULUI HTML --> <table width="100%" border="0"> <tr> <td><b>Data de inceput</b> <INPUT name="DataInceput" size="15" style="font-weight:bold;" /> <img src="/butoane/calendar.png" width="25" height="25" onClick="toggleCalendar('DataInceput'); redirectare('JavaScript:')"/></td> <td><b>Data de sfarsit</b> <INPUT name="DataSfarsit" size="15" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onClick="toggleCalendar('DataSfarsit'); redirectare('JavaScript:')"/> <table bgcolor=#ffffff border=1 cellpadding=0 cellspacing=3 id=calendar style="display: none; position: absolute; z-index: 4" > <tbody> <tr> <td colspan=7 valign=center> <!-- month combo box --> <select id=month onchange=newcalendar()> <script language=javascript> // output months into the document. // select current month. for (var intloop = 0; intloop < months.length; intloop++)

58

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE document.write("<option " + (today.month == intloop ? "selected" : "") + ">" + months[intloop]); </script> </select> <!-- year combo box --> <select id=year onchange=newcalendar()> <script language=javascript> // output years into the document. // select current year. for (var intloop = 1900; intloop < 2101; intloop++) document.write("<option " + (today.year == intloop ? "selected" : "") + ">" + intloop); </script> </select> </td> </tr> <tr class=days> <!-- generate column for each day. --> <script language=javascript> // output days. for (var intloop = 0; intloop < days.length; intloop++) document.write("<td>" + days[intloop] + "</td>"); </script> </tr> <tbody class=dates id=daylist onclick="getdate('')" valign=center> <!-- generate grid for individual days. --> <script language=javascript> for (var intweeks = 0; intweeks < 6; intweeks++) { document.write("<tr>"); for (var intdays = 0; intdays < days.length; intdays++) document.write("<td></td>"); document.write("</tr>"); } </script> <!-- generate today day. --></tbody> <tbody> <tr> <td class=today colspan=5 id=todayday onclick=gettodayday()></td> <td align=right colspan=2><a href="javascript:hidecalendar();"><span style="color: black; font-size: 15px"><b>hide</b></span></a></td> </tr> </tbody> </table></td> <td><input type="submit" value=" Afiseaza "/></td> </tr> </table> </form> <?php //PRELUAREA CELOR DOUA CAMPURI $DataInceput = $_POST['DataInceput']; $DataSfarsit = $_POST['DataSfarsit']; $a=1; // INITIALIZAREA NUMARULUI CURENT CU VALOAREA 1 // PRINTAREA CAPULUI DE TABEL echo '<table width="100%" bgcolor="#333399"> <tr> <td align="center" width="43" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Nr. <br/> ctr.</td>

59

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td align="center" width="103" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Polita <br/> Serie/Nr.</td> <td align="center" width="123" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Companie</td> <td width="143" align="center" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Asigurat</td> <td width="93" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Telefon</td> <td width="68" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Data emiteri</td> <td width="68" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Data de inceput</td> <td width="68" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Data expirari</td> <td width="53" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Prima incasata</td> <td width="53" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Moneda</td> <td width="" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Agent</td> </tr></table>'; //INTEROGARE MS SQL $interogare=" select polita.idPolita AS [ID polita], polita.SeriePolita AS [Serie polita], polita.NrPolita AS [Numar polita], asigurare.TipAsigurare AS [Tip asigurare], dbo.Sucursala.Denumire AS [Firma emitenta], clientpf.Nume +' '+ clientpf.Prenume AS [Client PF], clientpj.DenumirePj AS [Client PJ],CONVERT(char(11), polita.DataPolita, 103) AS [Data Polita], CONVERT(char(11), polita.DataInceput, 103) AS [Data inceput], CONVERT(char(11), polita.DataSfarsit, 103) AS [Data Sfarsit], polita.ValoarePolita AS [Prima incasata], polita.Moneda AS [Moneda], agent.NumeAg +' '+ agent.PrenumeAg AS Agent, client.Telefon1 AS Telefon1, client.Telefon2 AS Telefon2, detali.NrInmatriculare AS [Nr auto], detali.SerieSasiu AS [Sasiu], detali.CapacitateCilindrica AS [Cilindri], detali.PutereMotor AS [Putere], detali.NRLocuri AS [Locuri], detali.Tonaj AS [Masa], detali.AnFabricatie AS [An fabricatie], detali.CIV AS [Serie CIV], detali.Categorie AS [Categorie], detali.Marca AS [Marca si model], detali.Culoare AS [Culoare], detali.Vigneta AS [Vigneta],

60

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE detali.MentiuniSpecAuto AS [Mentiuni] FROM dbo.Agent AS agent INNER JOIN dbo.Polita AS polita ON agent.IdAgent = polita.idAgent FULL JOIN dbo.PolitaAuto AS detali ON polita.idPolita = detali.idPolita FULL JOIN dbo.Asigurari AS asigurare ON asigurare.idAsig = polita.idAsig FULL JOIN dbo.PVIPolite AS pv ON polita.idPviPolite = pv.idPVIPolite FULL JOIN dbo.Sucursala ON pv.idSucursala = dbo.Sucursala.idSucursala FULL JOIN dbo.FirmaAsigurare ON dbo.Sucursala.idFAsig = dbo.FirmaAsigurare.idFAsig FULL JOIN dbo.Clienti AS client ON polita.idClient = client.idClient FULL JOIN dbo.PJuridica AS clientpj ON polita.idClient = clientpj.idClient FULL JOIN dbo.PFizica AS clientpf ON polita.idClient = clientpf.idClient where polita.DataPolita between '".$DataInceput."' and '".$DataSfarsit."' and polita.DataAnulare is null ORDER BY DataPolita"; $rezultat = mssql_query($interogare); while ($row = mssql_fetch_assoc($rezultat)) { $var_2 = $row['Serie polita'].'<br>'; $var_3 = $row['Numar polita'].'<br>'; $var_4 = $row['Tip asigurare'].'<br>'; $var_5 = $row['Firma emitenta']; $var_6 = $row['Client PF']; $var_7 = $row['Client PJ']; $var_8 = $row['Data Polita']; $var_9 = $row['Data inceput']; $var_10 = $row['Data Sfarsit']; $var_11 = $row['Prima incasata']; $var_12 = $row['Moneda']; $var_13 = $row['Agent']; $var_14 = $row['Telefon1']; $var_15 = $row['Telefon2']; $var_16 = $row['Nr auto']; $var_17 = $row['Sasiu']; $var_1 = $row['Cilindri']; $var_18 = $row['Putere']; $var_19 = $row['Locuri']; $var_20 = $row['Masa']; $var_21 = $row['An fabricatie']; $var_22 = $row['Serie CIV']; $var_23 = $row['Categorie']; $var_24 = $row['Marca si model']; $var_25 = $row['Culoare']; $var_26 = $row['Vigneta']; $var_27 = $row['Mentiuni']; // PRINTARE VALORI SUB FORMA DE TABEL PHP echo '<div style="border:solid; border-color:#000;"> <table width="100%" border="1" bgcolor="#9999CC"> <tr > <td width="40" align="center" style="font-size:14px; font-weight:bold;">'.$a++.'</td> <td width="100" align="center" style="font-size:12px; font-weight:bold;">'.$var_2.' '.$var_3.'</td>

61

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td width="120" style="font-size:12px; font-weight:bold;"><div align="left">'.$var_4.' '.$var_5.'</div></td> <td width="140" style="font-size:12px; font-weight:bold;"><div align="left">'.$var_6.' '.$var_7.'</div></td> <td width="90" align="center" style="font-size:12px; font-weight:bold;">'.$var_14.' '.$var_15.'</td> <td width="65" align="center" style="font-size:12px; font-weight:bold;">'.$var_8.'</td> <td width="65" align="center" style="font-size:12px; font-weight:bold;">'.$var_9.'</td> <td width="65" align="center" style="font-size:12px; font-weight:bold;">'.$var_10.'</td> <td width="50" align="right" style="font-size:12px; font-weight:bold;">'.$var_11.'</td> <td width="50" align="center" style="font-size:12px; font-weight:bold;">'.$var_12.'</td> <td width="" align="center" style="font-size:12px; font-weight:bold;">'.$var_13.'</td> </tr> <tr> <td colspan="11" > <fieldset> <legend><strong>Detalii auto</strong></legend> <table width="100%" bgcolor="#9999CC" > <tr> <td style="font-size:12px; font-weight:bold;">Nr auto: <input type="text" style="font-size:12px; font-weight:bold;" size="7" value="'.$var_16.'"/></td> <td style="font-size:12px; font-weight:bold;">Sasiu: <input type="text" style="font-size:12px; font-weight:bold;" size="20" value="'.$var_17.'"/></td> <td style="font-size:12px; font-weight:bold;">Cilindri: <input type="text" style="font-size:12px; font-weight:bold;" size="25" value="'.$var_1.'"/></td> <td style="font-size:12px; font-weight:bold;">Putere: <input type="text" style="font-size:12px; font-weight:bold;" size="10" value="'.$var_18.'"/></td> <td style="font-size:12px; font-weight:bold;">Nr locuri: <input type="text" style="font-size:12px; font-weight:bold;" size="8" value="'.$var_19.'"/></td> <td style="font-size:12px; font-weight:bold;">Masa: <input type="text" style="font-size:12px; font-weight:bold;" size="12" value="'.$var_20.'"/></td> <td style="font-size:12px; font-weight:bold;">An fab: <input type="text" style="font-size:12px; font-weight:bold;" size="12" value="'.$var_21.'"/></td> </tr> <tr> <td style="font-size:12px; font-weight:bold;">Serie CIV: <input type="text" style="font-size:12px; font-weight:bold;" size="7" value="'.$var_22.'"/></td> <td style="font-size:12px; font-weight:bold;">Categorie: <input type="text" style="font-size:12px; font-weight:bold;" size="20" value="'.$var_23.'"/></td>

62

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td style="font-size:12px; font-weight:bold;">Marca si model: <input type="text" style="font-size:12px; font-weight:bold;" size="25" value="'.$var_24.'"/></td> <td style="font-size:12px; font-weight:bold;">Culoare: <input type="text" style="font-size:12px; font-weight:bold;" size="10" value="'.$var_25.'"/></td> <td style="font-size:12px; font-weight:bold;">Vigneta: <input type="text" style="font-size:12px; font-weight:bold;" size="8" value="'.$var_26.'"/></td> <td style="font-size:12px; font-weight:bold;" colspan="3">Mentiuni:<input type="text" style="font-size:12px; font-weight:bold;" size="31" value="'.$var_27.'"/></td> </tr> </table> </fieldset> </td> </tr> </table> </div>'; } ?> </fildset> </body> </html>

3.7.3. Raportare - polie care expir pe o perioad de timp

Acest raport este capabil s extrag din baza de date poliele care expir ntr-o perioad de timp. De exemplu n imaginea de mai sus pentru perioada 1 Mai 2013 - 31 Mai 2013 la acionarea butonului submit (Afiaz) cu ajutorul lui select afiaz poliele a cror dat de sfrit (data expirrii) este cuprins n intervalul menionat. 63

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Acest lucru este posibil cu ajutorul codului surs dup cum urmeaz:
<?php // SETAREA SESIUNII DE AUTENTIFICARE include ("../../sesiune.php"); ?> // SETAREA CONEXIUNII LA BAZA DE DATE SQL <?php include ("../../functi_php/conexiune.php"); ?> <script type="text/javascript" src="../../functi_js/redirectare_pagina.js"></script> <script type="text/javascript" src="../../functi_js/calendar.js"></script> <link rel="stylesheet" type="text/css" href="../../functi_js/calendar.js" media="screen"/> <link rel="stylesheet" type="text/css" href="../../fisiere_css/focus.css" media="screen"/> <link rel="stylesheet" type="text/css" href="../../fisiere_css/aspecte_paginare.css"/> <head> <title>Expirari</title> </head> <body> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr> <td width="50" height="50"><img src="/iconite/raport1.png" width="50" height="50" align="left"/> </td> <td><div align="center"><span style="color:#000 font-family:'Times New Roman', Times, serif; font-size:36px;"><b>Expirari</b></span></div></td> <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="redirectare('/utilizator.php');" title="Inchide"/></div></td> </tr> </table> <br/> <fieldset> <legend><b> Selectati perioada de raportare dorita </b> </legend> <form action="expirari.php" method="post"> <table width="100%" border="0"> <tr> <td><b>Data de inceput</b> <input name="datainceput" size="15" style="font-weight:bold;" /> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datainceput'); redirectare('javascript:')"/></td> <td><b>data de sfarsit</b> <input name="datasfarsit" size="15" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datasfarsit'); redirectare('javascript:')"/> <table bgcolor=#ffffff border=1 cellpadding=0 cellspacing=3 id=calendar style="display: none; position: absolute; z-index: 4" > <tbody> <tr> <td colspan=7 valign=center> <!-- month combo box --> <select id=month onchange=newcalendar()> <script language=javascript> // output months into the document. // select current month. for (var intloop = 0; intloop < months.length; intloop++) document.write("<option " + (today.month == intloop ? "selected" : "") + ">" + months[intloop]);

64

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </script> </select> <!-- year combo box --> <select id=year onchange=newcalendar()> <script language=javascript> // output years into the document. // select current year. for (var intloop = 1900; intloop < 2101; intloop++) document.write("<option " + (today.year == intloop ? "selected" : "") + ">" + intloop); </script> </select> </td> </tr> <tr class=days> <!-- generate column for each day. --> <script language=javascript> // output days. for (var intloop = 0; intloop < days.length; intloop++) document.write("<td>" + days[intloop] + "</td>"); </script> </tr> <tbody class=dates id=daylist onclick="getdate('')" valign=center> <!-- generate grid for individual days. --> <script language=javascript> for (var intweeks = 0; intweeks < 6; intweeks++) { document.write("<tr>"); for (var intdays = 0; intdays < days.length; intdays++) document.write("<td></td>"); document.write("</tr>"); } </script> <!-- generate today day. --></tbody> <tbody> <tr> <td class=today colspan=5 id=todayday onclick=gettodayday()></td> <td align=right colspan=2><a href="javascript:hidecalendar();"><span style="color: black; font-size: 15px"><b>hide</b></span></a></td> </tr> </tbody> </table></td> <td><input type="submit" value=" Afiseaza "/></td> </tr> </table> </form> <?php $DataInceput = $_POST['DataInceput']; $DataSfarsit = $_POST['DataSfarsit']; $a=1; echo '<table width="100%" bgcolor="#333399"> <tr><td align="center" width="43" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Nr. <br/> ctr.</td> <td align="center" width="103" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Polita <br/> Serie/Nr.</td> <td align="center" width="123" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Companie</td>

65

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td width="143" align="center" style="font-size:14px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Asigurat</td> <td width="93" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Telefon</td> <td width="68" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Data emiteri</td> <td width="68" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Data de inceput</td> <td width="68" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Data expirari</td> <td width="53" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Prima incasata</td> <td width="53" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Moneda</td> <td width="" align="center" style="font-size:13px; font-weight:bold; font:Verdana, Geneva, sans-serif; color:#FFF">Agent</td> </tr></table>'; //INTEROGARE MS SQL $interogare=" select polita.idPolita AS [ID polita], polita.SeriePolita AS [Serie polita], polita.NrPolita AS [Numar polita], asigurare.TipAsigurare AS [Tip asigurare], dbo.Sucursala.Denumire AS [Firma emitenta], clientpf.Nume +' '+ clientpf.Prenume AS [Client PF], clientpj.DenumirePj AS [Client PJ], CONVERT(char(11), polita.DataPolita, 103) AS [Data Polita], CONVERT(char(11), polita.DataInceput, 103) AS [Data inceput], CONVERT(char(11), polita.DataSfarsit, 103) AS [Data Sfarsit], polita.ValoarePolita AS [Prima incasata], polita.Moneda AS [Moneda], agent.NumeAg +' '+ agent.PrenumeAg AS Agent, client.Telefon1 AS Telefon1, client.Telefon2 AS Telefon2, detali.NrInmatriculare AS [Nr auto], detali.SerieSasiu AS [Sasiu], detali.CapacitateCilindrica AS [Cilindri], detali.PutereMotor AS [Putere], detali.NRLocuri AS [Locuri], detali.Tonaj AS [Masa], detali.AnFabricatie AS [An fabricatie], detali.CIV AS [Serie CIV], detali.Categorie AS [Categorie], detali.Marca AS [Marca si model], detali.Culoare AS [Culoare], detali.Vigneta AS [Vigneta], detali.MentiuniSpecAuto AS [Mentiuni] FROM dbo.Agent AS agent INNER JOIN dbo.Polita AS polita ON agent.IdAgent = polita.idAgent full JOIN dbo.PolitaAuto AS detali ON polita.idPolita = detali.idPolita full JOIN dbo.Asigurari AS asigurare ON asigurare.idAsig = polita.idAsig full JOIN dbo.PVIPolite AS pv ON polita.idPviPolite = pv.idPVIPolite full JOIN dbo.Sucursala ON pv.idSucursala = dbo.Sucursala.idSucursala full JOIN

66

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE dbo.FirmaAsigurare ON dbo.Sucursala.idFAsig = dbo.FirmaAsigurare.idFAsig full JOIN dbo.Clienti AS client ON polita.idClient = client.idClient full JOIN dbo.PJuridica AS clientpj ON polita.idClient = clientpj.idClient full JOIN dbo.PFizica AS clientpf ON polita.idClient = clientpf.idClient where polita.DataSfarsit between '".$DataInceput."' and '".$DataSfarsit."' and polita.DataAnulare is null ORDER BY DataSfarsit"; $rezultat = mssql_query($interogare); while ($row = mssql_fetch_assoc($rezultat)) { $var_2 = $row['Serie polita'].'<br>'; $var_3 = $row['Numar polita'].'<br>'; $var_4 = $row['Tip asigurare'].'<br>'; $var_5 = $row['Firma emitenta']; $var_6 = $row['Client PF']; $var_7 = $row['Client PJ']; $var_8 = $row['Data Polita']; $var_9 = $row['Data inceput']; $var_10 = $row['Data Sfarsit']; $var_11 = $row['Prima incasata']; $var_12 = $row['Moneda']; $var_13 = $row['Agent']; $var_14 = $row['Telefon1']; $var_15 = $row['Telefon2']; $var_16 = $row['Nr auto']; $var_17 = $row['Sasiu']; $var_1 = $row['Cilindri']; $var_18 = $row['Putere']; $var_19 = $row['Locuri']; $var_20 = $row['Masa']; $var_21 = $row['An fabricatie']; $var_22 = $row['Serie CIV']; $var_23 = $row['Categorie']; $var_24 = $row['Marca si model']; $var_25 = $row['Culoare']; $var_26 = $row['Vigneta']; $var_27 = $row['Mentiuni']; echo '<div style="border:solid; border-color:#000;"> <table width="100%" border="1" bgcolor="#9999CC"> <tr > <td width="40" align="center" style="font-size:14px; font-weight:bold;">'.$a++.'</td> <td width="100" align="center" style="font-size:12px; font-weight:bold;">'.$var_2.' '.$var_3.'</td> <td width="120" style="font-size:12px; font-weight:bold;"><div align="left">'.$var_4.' '.$var_5.'</div></td> <td width="140" style="font-size:12px; font-weight:bold;"><div align="left">'.$var_6.' '.$var_7.'</div></td> <td width="90" align="center" style="font-size:12px; font-weight:bold;">'.$var_14.' '.$var_15.'</td> <td width="65" align="center" style="font-size:12px; font-weight:bold;">'.$var_8.'</td> <td width="65" align="center" style="font-size:12px; font-weight:bold;">'.$var_9.'</td> <td width="65" align="center" style="font-size:12px; font-weight:bold;">'.$var_10.'</td> <td width="50" align="right" style="font-size:12px; font-weight:bold;">'.$var_11.'</td> <td width="50" align="center" style="font-size:12px; font-weight:bold;">'.$var_12.'</td> <td width="" align="center" style="font-size:12px; font-weight:bold;">'.$var_13.'</td>

67

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE </tr> <tr> <td colspan="11" > <fieldset> <legend><strong>Detalii auto</strong></legend> <table width="100%" bgcolor="#9999CC" > <tr> <td style="font-size:12px; font-weight:bold;">Nr auto: <input type="text" style="font-size:12px; font-weight:bold;" size="7" value="'.$var_16.'"/></td> <td style="font-size:12px; font-weight:bold;">Sasiu: <input type="text" style="font-size:12px; font-weight:bold;" size="20" value="'.$var_17.'"/></td> <td style="font-size:12px; font-weight:bold;">Cilindri: <input type="text" style="font-size:12px; font-weight:bold;" size="25" value="'.$var_1.'"/></td> <td style="font-size:12px; font-weight:bold;">Putere: <input type="text" style="font-size:12px; font-weight:bold;" size="10" value="'.$var_18.'"/></td> <td style="font-size:12px; font-weight:bold;">Nr locuri: <input type="text" style="font-size:12px; font-weight:bold;" size="8" value="'.$var_19.'"/></td> <td style="font-size:12px; font-weight:bold;">Masa: <input type="text" style="font-size:12px; font-weight:bold;" size="12" value="'.$var_20.'"/></td> <td style="font-size:12px; font-weight:bold;">An fab: <input type="text" style="font-size:12px; font-weight:bold;" size="12" value="'.$var_21.'"/></td> </tr> <tr> <td style="font-size:12px; font-weight:bold;">Serie CIV: <input type="text" style="font-size:12px; font-weight:bold;" size="7" value="'.$var_22.'"/></td> <td style="font-size:12px; font-weight:bold;">Categorie: <input type="text" style="font-size:12px; font-weight:bold;" size="20" value="'.$var_23.'"/></td> <td style="font-size:12px; font-weight:bold;">Marca si model: <input type="text" style="font-size:12px; font-weight:bold;" size="25" value="'.$var_24.'"/></td> <td style="font-size:12px; font-weight:bold;">Culoare: <input type="text" style="font-size:12px; font-weight:bold;" size="10" value="'.$var_25.'"/></td> <td style="font-size:12px; font-weight:bold;">Vigneta: <input type="text" style="font-size:12px; font-weight:bold;" size="8" value="'.$var_26.'"/></td> <td style="font-size:12px; font-weight:bold;" colspan="3">Mentiuni:<input type="text" style="font-size:12px; font-weight:bold;" size="31" value="'.$var_27.'"/></td> </tr> </table> </fieldset> </td> </tr> </table> </div>'; } ?> </fildset> </body> </html>

68

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

3.7.4. Raportare - polite anulate pe o perioada de timp

Acest raport este capabil s-mi ntoarc poliele anulate, aflate n baza de date. Acest lucru este posibil cu ajutorul urmtorului cod sursa:
<?php // INCLUDERE SESIUNE DE AUTENTIFICARE include ("../../sesiune.php"); ?> <?php // INCLUDERE CONEXIULE LA MSSQL include ("../../functi_php/conexiune.php"); ?> <script type="text/javascript" src="../../functi_js/redirectare_pagina.js"></script> <script type="text/javascript" src="../../functi_js/calendar.js"></script> <link rel="stylesheet" type="text/css" href="../../functi_js/calendar.js" media="screen"/> <link rel="stylesheet" type="text/css" href="../../fisiere_css/focus.css" media="screen"/> <link rel="stylesheet" type="text/css" href="../../fisiere_css/aspecte_paginare.css"/> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Polite anulate</title> </head> <body> <table width="100%" background="/imagini/fundal_antet_formulare.png" > <tr> <td width="50" height="50"><img src="/iconite/raport1.png" width="50" height="50" align="left"/> </td> <td><div align="center"><span style="color:#000 font-family:'Times New Roman', Times, serif; font-size:36px;"><b>Polite anulate</b></span></div></td>

69

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE <td><div align="center"><img src="/butoane/close.jpg" width="30" height="30" onclick="redirectare('/afisare_date.php');" title="Inchide"/></div></td> </tr> </table> <br/> <fieldset> <legend><b> Selectati perioada de raportare dorita </b> </legend> <form action="polite_anulate.php" method="post"> <table width="100%" border="0"> <tr> <td><b>Data de inceput</b> <input name="datainceput" size="15" style="font-weight:bold;" /> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datainceput'); redirectare('javascript:')"/></td> <td><b>data de sfarsit</b> <input name="datasfarsit" size="15" style="font-weight:bold;"/> <img src="/butoane/calendar.png" width="25" height="25" onclick="togglecalendar('datasfarsit'); redirectare('javascript:')"/> <table bgcolor=#ffffff border=1 cellpadding=0 cellspacing=3 id=calendar style="display: none; position: absolute; z-index: 4" > <tbody> <tr> <td colspan=7 valign=center> <!-- month combo box --> <select id=month onchange=newcalendar()> <script language=javascript> // output months into the document. // select current month. for (var intloop = 0; intloop < months.length; intloop++) document.write("<option " + (today.month == intloop ? "selected" : "") + ">" + months[intloop]); </script> </select> <!-- year combo box --> <select id=year onchange=newcalendar()> <script language=javascript> // output years into the document. // select current year. for (var intloop = 1900; intloop < 2101; intloop++) document.write("<option " + (today.year == intloop ? "selected" : "") + ">" + intloop); </script> </select> </td> </tr> <tr class=days> <!-- generate column for each day. --> <script language=javascript> // output days. for (var intloop = 0; intloop < days.length; intloop++) document.write("<td>" + days[intloop] + "</td>"); </script> </tr> <tbody class=dates id=daylist onclick="getdate('')" valign=center> <!-- generate grid for individual days. --> <script language=javascript> for (var intweeks = 0; intweeks < 6; intweeks++) { document.write("<tr>"); for (var intdays = 0; intdays < days.length; intdays++) document.write("<td></td>");

70

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE document.write("</tr>"); } </script> <!-- generate today day. --></tbody> <tbody> <tr> <td class=today colspan=5 id=todayday onclick=gettodayday()></td> <td align=right colspan=2><a href="javascript:hidecalendar();"><span style="color: black; font-size: 15px"><b>hide</b></span></a></td> </tr> </tbody> </table></td> <td ><input type="submit" value=" Afiseaza "/></td> </tr> </table> </form> <?php $DataInceput = $_POST['DataInceput']; $DataSfarsit = $_POST['DataSfarsit']; echo '<table width="100%" border="0" bgcolor="#333399"> <tr> <td align="center" width="40" style="font-size:14px; font-weight:bold;">Serie polita</td> <td align="center" width="80" style="font-size:14px; font-weight:bold;">Numar Polita</td> <td align="center" width="150" style="font-size:14px; font-weight:bold;">Companie</td> <td width="150" align="center" style="font-size:14px; font-weight:bold;">Asigurat</td> <td width="60" align="center" style="font-size:13px; font-weight:bold;">Data emiteri</td> <td width="60" align="center" style="font-size:13px; font-weight:bold;">Data de inceput</td> <td width="60" align="center" style="font-size:13px; font-weight:bold;">Data expirari</td> <td width="50" align="center" style="font-size:13px; font-weight:bold;">Prima incasata</td> <td width="40" align="center" style="font-size:13px; font-weight:bold;">Moneda</td> </tr> </table>'; //INTEROGARE MS SQL $interogare=" select polita.idPolita AS [ID polita], polita.SeriePolita AS [Serie polita], polita.NrPolita AS [Numar polita], asigurare.TipAsigurare AS [Tip asigurare], dbo.Sucursala.Denumire AS [Firma emitenta], clientpf.Nume +' '+ clientpf.Nume AS [Client PF], clientpj.DenumirePj AS [Client PJ],CONVERT(char(11), polita.DataPolita, 106) AS [Data Polita], CONVERT(char(11), polita.DataInceput, 106) AS [Data inceput], CONVERT(char(11), polita.DataSfarsit, 106) AS [Data Sfarsit], polita.ValoarePolita AS [Prima incasata], polita.Moneda AS [Moneda] FROM dbo.Agent AS agent JOIN dbo.Polita AS polita ON agent.IdAgent = polita.idAgent JOIN dbo.Asigurari AS asigurare ON asigurare.idAsig = polita.idAsig JOIN dbo.PVIPolite AS pv ON polita.idPviPolite = pv.idPVIPolite JOIN dbo.Sucursala ON pv.idSucursala = dbo.Sucursala.idSucursala JOIN

71

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE dbo.FirmaAsigurare ON dbo.Sucursala.idFAsig = dbo.FirmaAsigurare.idFAsig FULL JOIN dbo.PJuridica AS clientpj ON polita.idClient = clientpj.idClient FULL JOIN dbo.PFizica AS clientpf ON polita.idClient = clientpf.idClient where polita.DataAnulare between '".$DataInceput."' and '".$DataSfarsit."' and polita.DataAnulare is not null"; $rezultat = mssql_query($interogare); while ($row = mssql_fetch_assoc($rezultat)) { $var_2 = $row['Serie polita']; $var_3 = $row['Numar polita']; $var_4 = $row['Tip asigurare']; $var_5 = $row['Firma emitenta']; $var_6 = $row['Client PF']; $var_7 = $row['Client PJ']; $var_8 = $row['Data Polita']; $var_9 = $row['Data inceput']; $var_10 = $row['Data Sfarsit']; $var_11 = $row['Prima incasata'; $var_12 = $row['Moneda'];

echo '<table width="100%" border="0"> <tr bgcolor="#9999CC" > <td width="40" align="center" style="font-size:12px; font-weight:bold;">'.$var_2.'</td> <td width="80" align="center" style="font-size:12px; font-weight:bold;">'.$var_3.'</td> <td width="150" height="" style="font-size:12px; font-weight:bold;"><div align="left">'.$var_4.' '.$var_5.'</div></td> <td width="150" height="" style="font-size:12px; font-weight:bold;"><div align="left">'.$var_6.' '.$var_7.'</div></td> <td width="60" align="center" style="font-size:12px; font-weight:bold;">'.$var_8.'</td> <td width="60" align="center" style="font-size:12px; font-weight:bold;">'.$var_9.'</td> <td width="60" align="center" style="font-size:12px; font-weight:bold;">'.$var_10.'</td> <td width="50" align="right" style="font-size:12px; font-weight:bold;">'.$var_11.'</td> <td width="40" align="center" style="font-size:12px; font-weight:bold;">'.$var_12.'</td> </tr> </table>'; } ?> </fildset> </body> </html>

72

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Cpitolul 4 VALIDAREA DATELOR


4.1. Modul validare a formularelor
Validarea formularelor HTML folosite se face cu ajutorul limbajului JavaScript. De cele mai multe ori sunt folosite formularele pentru c datele introduse n acestea s fie trimise napoi la server pentru procesare sau prin pota electronic catre un cont de mail. Cu ajutorul limbajului JavaScript datele introduse ntr-un formular pot fi cu uurin verificate nainte de a fi transmise, astfel putem uura traficul i n plus ne putem asigura c s-au trimis datele corect. De exemplu: s nu se trimit input-uri fr date n ele, sau ca o adres de email s conin caracterul @. Pentru a nelege mai bine n cele ce urmeaz v voi prezenta cteva dintre validrile eseniale la nivel de formular. 4.1.1. Validarea formularului de autentificare Pentru validarea acestui formular HTML se folosete urmtorul cod:
<!-- FUNCTIA DE VALIDARE JAVASCRIPT --> function verifica(form) { <!-- CONDITIE DE COMPLETARE A CAMPURILOR--> if (form.nume_utilizator.value == "" & form.parola_utilizator.value == "") { alert("Campuri necompletate."); return false; } else if (form.nume_utilizator.value == "") { alert("Va rog introduceti numele dvs. de utilizator"); return false; } else if (form.parola_utilizator.value == "") { alert("Va rog introduceti parola dvs."); return false; } return true; }

Pentru apelarea acestei funcii la butonul submit al formularului de autentificare se adaug atributul onClick (onClick="return verifica(this.form);"), ce-mi returneaz funcia folosit. Codul surs al butonului submit:
<div align="right"><input type="image" width="150" height="40" src="/butoane/buton_conectare.png" name="submit" onClick="return verifica(this.form);" title="Conectare" class="image"/></div>

73

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

4.1.2. Validarea formularului de nregistrare Pentru validarea acestui formular HTML se folosete urmtorul cod:
<!-- FUNCTIA DE VALIDARE JAVASCRIPT --> function validare_inregistrare(form) { <!-- CARACTERE PERMISE --> var regx_lit = /^([a-zA-Z_ -]+)$/; <!-- LITERE SI SPATII --> var regx_num = /^([0-9]+)$/; <!-- CIFRE SI SPATII --> <!-- VERIFICARE ADRESA DE EMAIL --> var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/; <!-- CONDITII DE VALIDARE --> if (form.nume.value == "" && form.prenume.value == "" && form.data.value == "" && form.gen.value == "" && form.tara.value == "" && form.localitate.value == "" && form.email.value == "" && form.nume_utilizator.value == "" && form.parola_utilizator.value == "" && form.confirmare_parola.value == "") { alert("Campuri necompletate!"); return false; } else if (form.nume.value == "") { alert("Introduceti numele dumneavoastra!"); return false; } else if(form.nume.value.search(regx_lit)==-1) { alert("Pentru introducerea numelui folositi doar litere."); return false; } else if (form.prenume.value == "") { alert("Introduceti prenumele dumneavoastra!"); return false; } else if(form.prenume.value.search(regx_lit)==-1) { alert("Pentru introducerea prenumelui folositi doar litere."); return false; } else if (form.data.value == "") { alert("Selectati data dumneavoastra de nastere."); return false; } else if (form.tara.value == "") { alert("Introduceti tara dumneavoastar de origine!"); return false; } else if(form.tara.value.search(regx_lit)==-1) { alert("Pentru introducerea tari folositi doar litere."); return false; } else if (form.localitate.value == "") { alert("Introduceti localitatea dumneavoastar de origine!"); return false; } else if(form.localitate.value.search(regx_lit)==-1) { alert("Pentru introducerea localitati folositi doar litere."); return false; } else if (form.email.value == "") { alert("Introduceti emailul dumneavoastra!"); return false;

74

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE } else if(form.email.value.search(regx_mail)==-1) { alert("Introduceti o adresa de e-mail valida."); return false; } else if (form.nume_utilizator.value == "") { alert("Creaza-ti numele de utilizator"); return false; } else if (form.parola_utilizator.value == "") { alert("Parola neintrodusa!"); return false; } else if (form.confirmare_parola.value == "") { alert("Parola neconfirmara!"); return false; } return true; }

Pentru apelarea acestei funcii din formularul HTML de nregistrare am folosit urmtorul cod surs, adugnd butonului submit din cadrul acestui formular HTML atributul onClick dup cum urmeaz:
<input type="image" src="/butoane/validare.jpg" id="unid" height="50" width="150" title="Inregistrare" onClick="return validare_inregistrare(this.form)" class="image"/>

4.1.3. Validarea formularului - adugare agent nou Pentru validarea acestui formular HTML se folosete urmtorul cod:
<!-- FUNCTIA DE VALIDARE JAVASCRIPT --> function verifica(form) { <!-- REGEXP CARE SA PERMITE DOAR LITERE, SPATII, NUMERE SI LINIUTE "-", "_"--> var regx_chr = /^([0-9_-]+)$/; var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/; <!-- PUNEREA CONDITIILOR --> if (form.NumeAg.value == "" && form.PrenumeAg.value == "" && form.SerieBuletinAg.value == "" && form.NumarBuletinAg.value == "" && form.CNPAg.value == "" && form.StradaAg.value == "" && form.OrasAg.value == "" && form.SectorAg.value == "" && form.ContractAg.value == "" ) { alert("Campuri necompletate!"); return false; } else if (form.NumeAg.value == "") { alert("Introduceti numele agentului!"); return false; }

75

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE else if (form.PrenumeAg.value == "") { alert("Introduceti prenumele agentului!"); return false; } else if (form.SerieBuletinAg.value == "") { alert("Introduceti seria de buletin a agentului!"); return false; } else if (form.NumarBuletinAg.value == "") { alert("Introduceti numarul de buletin al agentului!."); return false; } else if (form.CNPAg.value == "") { alert("Introduceti CNP-ul agentului!"); return false; } else if (form.StradaAg.value == "") { alert("Strada neintrodusa!!"); return false; } else if (form.OrasAg.value == "") { alert("Oras neintrodus!"); return false; } else if (form.SectorAg.value == "") { alert("Sector neintrodus!"); return false; } else if (form.ContractAg.value == "") { alert("Numar contract agent neintrodus!"); return false; } else if (form.DataContractAg.value == "") { alert("Selectati data contractului!"); return false; } else if (form.CodCSA.value == "") { alert("Cod CSA neintrodus!"); return false; } else if(form.NumeAg.value.length<3 || form.NumeAg.value.length>18 || form.NumeAg.value.search(regx_chr)==-1) { alert("wefwefe"); } return true; }

Pentru apelarea acestei funcii din formularul HTML de adugare a agentilor am folosit urmtorul cod surs, adugnd butonului submit din cadrul acestui formular HTML atributul onClick dup cum urmeaz:
<input type="image" src="/butoane/buton_conectare.png" width="100" height="60" name="submit" value="Adauga agent" title="Adauga agent" onClick="return verifica(this.form)" class="image"/>

76

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

4.1.3. Validarea formularului - adaugare client nou Pentru validarea acestui formular HTML se folosete urmtorul cod:
<!-- FUNCTIE DE VALIDARE A PERSOANELOR FIZICE --> function verifica_pf(form) { var regx_lit = /^([a-zA-Z_ -]+)$/; var regx_num = /^([0-9]+)$/; var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/; var confirmare = false; if (form.Nume.value == "" && form.Prenume.value == "" && form.CNP.value == "" && form.data.value == "" && form.Functie.value == "" && form.LocMunca.value == "" && form.Localitate.value == "" && form.Sector.value == "" && form.Strada.value == "" && form.Numar.value == "" && form.Bloc.value == "" && form.Etaj.value == "" && form.Apartament.value == "" && form.Telefon1.value == "" && form.Telefon2.value == "" && form.Fax.value == "" && form.Mail.value == "" ) { alert("Campuri necompletate!"); return false; } else if (form.Nume.value == "") { alert("Introduceti numele clientului!"); return false; } else if(form.Nume.value.search(regx_lit)==-1) { alert("Pentru introducerea numelui folositi doar litere."); return false; } else if (form.Prenume.value == "") { alert("Introduceti prenumele clientului!"); return false; } else if(form.Prenume.value.search(regx_lit)==-1) { alert("Pentru introducerea prenumelui folositi doar litere."); return false; } else if (form.CNP.value == "") { alert("Introduceti CNP-ul clientului!"); return false; } else if(form.CNP.value.search(regx_num)==-1 || form.CNP.value.length<13) { alert("Pentru introducerea CNP-ului folositi 13 cifre."); return false; } else if (form.data.value == "") { alert("Selectati data de nastare!"); return false; }

77

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE else if (form.Localitate.value == "") { alert("Introduceti localitatea."); return false; } else if (form.Sector.value == "") { alert("Sector neintrodus!"); return false; } else if (form.Strada.value == "") { alert("Strada neintrodusa!"); return false; } else if(form.Mail.value.search(regx_mail)==-1) { alert("Introduceti o adresa de e-mail valida."); return false; } else confirmare = true; return confirmare; } <!-- FUNCTIE DE VALIDARE A PERSOANELOR JURIDICE --> function verifica_pj(form) { var regx_lit = /^([a-zA-Z_ -]+)$/; var regx_num = /^([0-9]+)$/; var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/; var confirmare = false; if (form.DenumirePj.value == "" && form.CUI.value == "" && form.CodCAEN.value == "" && form.RegCom.value == "" && form.Banca.value == "" && form.IBAN.value == ""&& form.Localitatepj.value == "" && form.Sectorpj.value == "" && form.Stradapj.value == "" && form.Numarpj.value == "" && form.Blocpj.value == "" && form.Etajpj.value == "" && form.Apartamentpj.value == "" && form.Telefon1pj.value == "" && form.Telefon2pj.value == "" && form.Faxpj.value == ""&& form.Mailpj.value == "" /**/ ) { alert("Campuri necompletate!"); return false; } else if (form.DenumirePj.value == "") { alert("Introduceti denumirea clientului!"); return false; } else if(form.DenumirePj.value.search(regx_lit)==-1) { alert("Pentru introducerea numelui folositi doar litere."); return false; } else if (form.CUI.value == "") {

78

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE alert("Introduceti CUI-ul clientului!"); return false; } else if(form.CUI.value.search(regx_num)==-1) { alert("Pentru introducerea CUI-ului doar cifre."); return false; } else if (form.Localitatepj.value == "") { alert("Introduceti localitatea."); return false; } else if (form.Sectorpj.value == "") { alert("Sector neintrodus!"); return false; } else if (form.Stradapj.value == "") { alert("Strada neintrodusa!"); return false; } else if(form.Mailpj.value.search(regx_mail)==-1) { alert("Introduceti o adresa de e-mail valida."); return false; } else confirmare = true; return confirmare; }

Pentru apelarea acestor dou funcii din formularul HTML de adugare a noilor clieni, am folosit urmtorul cod surs, adugnd butonului submit din cadrul acestui formular HTML atributul onClick dup cum urmeaz: Pentru persoane fizice:
<input type="submit" name="adauga_pf" value=" Adauga PF onClick="return verifica_pf(this.form)" class="image"/> "

Pentru persoane juridice:


<input type="submit" name="adauga_pj" value=" Adauga PJ onClick="return verifica_pj(this.form)" class="image"/> "

79

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Anexa 1

80

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Anexa 2

81

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

Dup cum se poate observa n coninutul acestei lucrri, aplicaia dezvoltat este funcional i menit s efectueze operaiile de baza att ale unui agent de asigurare ct i ale unui coordonator de echip situat ca profesie n acest domeniu. Deoarece domeniul asigurrilor cuprinde un numr de produse extrem de vast ce difer de la o companie de asigurri la alta, scopul acestei lucrari a fost unul limitat permind atingerea total a obiectivelor vizate. n concluzie, odat instalat pe un computer aceast sistem informaional (interfa web asociat bazei de date create n acest sens), se pot gestiona date precum: date personale ale agenilor, clienilor, obiectelor asigurate precum i documente cu diferite extensi. n urma acestor operaii informatice se pot genera rapoartele necesare unui agent de asigurare ce joac un rol deosebit de important n activitatea de zi cu zi al acestuia. Pe lng toate aceste lucruri, acestei aplicaii i putem aduce o gam de mbuntiri posibile facnd-o mai accesibil, aadar, simplificnd modul de lucru al unui agent i economisind timpul alocat sarcinii sale de lucru. Conform afirmaiei fcute in s menionez cteva dintre mbuntirile ce se pot aduce: Implementarea unor noi formulare ce vor permite emiterea polielor facultative; Generarea unor noi rapoarte privind primele ncasate i nregistrarea procentelor privind rata de profit i cea de pierdere; Implementarea unui formular de stornare a comisioanelor pltite ctre ageni; Generarea borderourilor de predare a polielor de asigurare ctre teri; Generarea bonurilor de consum ce vor ine sub control gestiunea predat; Exportarea tuturor rapoartelor i a borderourilor cu extensi precum .pdf sau .xls .

82

APLICAIE WEB DE GESTIONARE A POLIELOR DE ASIGURARE

[1.] Tom Negrino i Dori Smith "JavScript pentru world wide web", Editura Corint, Bucureti, 2004; [2.] Jim Keogh, "JavaScript fara mistere", Editura Editura Rosetti Educational, 2005; [3.] Ben Forta, "SQL pentru nceptori", Editura Teora, Bucureti, 2002; [4.] Peterson J. "Baze de date pentru nceptori", Ed. All, 2003; [5.] S. Buraga, "Aplicatii Web la cheie", Editura Polirom, Iasi, 2003; [6.] L. Ullman, "PHP pentru World Wide Web", Editura Teora, Bucuresti, 2004; [7.] Site-ul oficial al Apache: http://www.apache.org; [8.] Site-ul oficial al PHP: http://www.php.net; [9.] Site-ul oficial al JavaScript: http://www.javascriptsource.com/; [10.] Site-ul oficial al MySQL: http://www.mysql.com; [11.] Tutoriale online HTML, PHP, SQL, JavaScript, CSS, etc.: http://www.marplo.net/; [12.] Tutoriale online HTML, PHP, SQL, JavaScript, CSS, etc.: http://w3schools.com/; [13.] Tutoriale online HTML, PHP, SQL, JavaScript, CSS, etc.: http://www.etutoriale.ro/; [14.] Iconie: http://www.iconfinder.com/;

83