Accesul Unei Baze de Date Folosind Tehnologia Asp

I. MEMORIU TEHNIC

1.1 Introducere

Tehnologia care are la bază SSI este limitată în privința comenziilor/scripturilor permise de serverul web SSI. Producătorii paginilor web aveau nevoie de o cale pentru a intercala codul procesat dinamic in fișierele HTML în vederea procesării de către serverul web la cerere. De exemplu ce se poate întămpla dacă trebuiau definite operații care nu erau suportate de către sistemul de operare al clientului (tradițional SSI) după o logică proprie? Era nevoie de un hibrid CGI-SSI pentru ca fiecare site web să-și poată creea propriul său set de tag-uri personale. Așa a apărut ASP-ul.

ASP-ul este o extensie de tip server a serverului web IIS (Internet Information Service) realizat de Microsoft. (Apache contine MOD_ASP în acest moment deci se pot realiza pagini ASP și pe serverele Apache. De asemenea, o serie de alți producători oferă funcționalitate ASP și pentru servere non-IIS). ASP permite programatorilor să codeze tag-uri personale în VBScript sau în JavaScript. Aceste pagini pot fi interpretate de IIS înainte ca ele să fie trimise clientului.

În acest moment Apache și ActiveState produc interpretoare Perl tot mai puternice astfel încăt, în acest moment, Perl împreună cu MOD_Perl este la fel de rapid ca și ASP și oferă aceeași funcționalitate.

O pagină ASP este în principiu un simplu fișier text cu extensia .asp care conține cod HTML si script-uri. Aceste script-uri, de obicei în Vbasic implică posibilitatea includerii unei programări logice în cadrul fișierelor HTML care va fi interpretată dinamic pe măsură ce pagina web este prelucrată de serverul web și oferă de asemenea acces la orice obiect instanțiat în cadrul serverului.

Precum toate tehnologiile server, funcționalitatea oferită de ASP este transmisibilă în mod complet înspre/dinspre browser. Toate procesările au loc pe server iar rezultatele lor sunt afișate ca text HTML sau imagini. Astfel, un programator poate ușor folosi puterea Excel-ului sau PowerPoint-ului în cadrul serverului pentru a genera grafice și hărți care pot fi ușor văzute de un client ce rulează un browser care are la bază Unix-ul.

Ca și SSI-ul, ASP oferă un mijloc de specificare a ”tag-ului” cu instrucțiuni care vor fi interpretate de către server-ul web. Totuși, în mod diferit de SSI, ASP deține un set de obiecte robust care poate fi folosit pentru o programare serioasă. Oferă de asemenea abilitatea de a instanția resurse bazate pe partea de server (orice componentă COM).

ASP-ul are un întreg set de obiecte care acoperă convenabil toate aspectele cheie ale creării paginilor web dinamice.

Ierarhia de bază a obiectelor alcătuiește Scripting Context Object (care nu va fi folosit în sine) și arată în felul următor:

Fig. 1.1.1 Obiectele ASP

Obiectul Request

Obiectul Request este folosit pentru a prelua informațiile de la client care sunt trimise prin intermediul cererii HTTP. Obiectele Request și Response suportă colecțiile:

ClientCertificate – pentru preluarea câmpurilor de certificare din cadrul cererii întreprinse de serverul web. Câmpurile care pot fi cerute sunt specificate în standardul X.509

QueryString – pentru preluarea textului asemănător unui nume

Form – pentru preluarea datelor dintr-un form HTML

Cookies – pentru preluarea valorii unei aplicații de tip cookie definite anterior

ServerVariables – pentru preluarea unei informații HTTP gen numele server-ului

Obiectul Response

Obiectul Response este folosit pentru a trimite informații unui client. Acest obiect suportă doar Cookies ca și collection (pentru setarea valorilor de tip cookie). De asemenea mai suportă un număr de proprietăți și metode. Proprietățile curente suportate sunt:

Buffer – setează buffer-ul paginii trimise spre afișare de către server. Când este setat pe True, serverul nu va trimite un răspuns până când toate script-urile de pe server ale paginii curente au fost procesate, sau până când metodele Flush sau End au fost apelate.

ContentType – pentru setarea tipului conținutului (ex: text/HTML, Excel, etc.)

Expires – setează expirarea (data când datele utilizatorului respectivei pagini sunt considerate invalide) setată în minutes (ex.: expiră în 10 minutes).

ExpiresAbsolute – permite setarea datei de expirație într-un mod absolut.

Status – returneaza linia de statut (definită în specificația HTTP pentru server).

Următoarele metode (methods) sunt suportate de obiectul Response:

AddHeader – adaugă un header HTML cu o valoare specificată

AppendToLog – apelează un șir la sfârșitul fișierului log de pe serverul web

BinaryWrite – scrie date în mod binar (ex.. date tabelare în Excel )

Clear – șterge orice ieșire HTML buffer-ată.

End – stopează procesarea script-ului.

Flush – trimite toate informațiile către buffer.

Redirect – redirecționează utilizatorul spre altă locație URL

Write – permite scrierea în mediul HTML. Acțiunea poate fi realizată rin construcția

Response.write("hello")

sau comanda mai scurtă:

<%="hello"%>

Obiectul Server

Obiectul Server suportă o proprietate, ScriptTimeout, care permite setarea valorii momentului în care script-ul va fi oprit din procesare, și următoarele metode:

CreateObject – pentru crearea unei instanțe a unei componente tip server. Această componentă poate fi orice componentă care e instalată pe server (precum ActiveX ).

HTMLEncode – pentru codarea șirului specific în format HTML

MapPath – pentru maparea căii virtuale către o structură fizică de directoare. Apoi se poate aplica aceasta cale unei componente care creează acel director sau fișier specific pe server.

URLEncode – aplică codarea URL unui șir specific.

Obiectul Session

Obiectul Session este folosit pentru stocarea informației despre sesiunea curentă a utilizatorului server-ului web. Variabilele stocate cu acest obiect există atâta timp cât sesiunea utilizatorului este activă, chiar dacă se folosesc mai multe aplicații. Acest obiect suportă o metodă, Abandon, care abandonează sesiunea curentă a serverului web, distrugând orice obiect, și suportă două proprietăți, SessionID, conținând identificatorul pentru sesiunea curentă, și Timeout, care specifică o valoare de tip time-out valabilă sesiunii. Un lucru de reținut despre identificatorul sesiune: Nu e de tip GUID. Este disponibil doar atâta timp cât sesiunea web este pornită. Dacă serviciul de server-web este oprit (shut down), identificatorii vor fi reinițializați. Deci nu trebuie folosiți pentru creerea ID-urilor de tip login.

Obiectul Application

Obiectul Application poate stoca informații care rezistă pe tot parcursul aplicației (un grup de pagini cu un root comun). În general, acesta este întreg timpul cât serverul IIS funcționează. Acest lucru îl face un loc ideal de stocare a informației care trebuie să existe pe o perioadă îndelungată independentă de utilizator (precum un contor al site-ului). Partea rea a acestui tip de obiect îl constituie posibilitatea apariției unei erori care nefiind tratată în mod particular pentru fiecare utilizator ar putea apărea de mii de ori precum un mesaj de alertă general.

Deoarece obiectul Application este accesibil tuturor utilizatorilor, threading-ul poate deveni un coșmar în implementare.

1.2 Modelul paginilor de server active (ASP)

Un script ASP începe să ruleze cănd un browser solicită un fișier .asp de pe serverul web. În acel moment serverul web apelează fișierul .asp, execută local toate comenzile acestuia pas cu pas și trimite pagina HTML browser-ului client.

Astfel nu poate apărea problema ca browser-ul client să nu știe interpreta instrucțiunile respective deoarece serverul special configurat se ocupă de întregul proces

Paginile de server active pot fi folosite sub următoarele servere web:

Microsoft Internet Information Server, versiunea 3.0 sub Windows NT. Server

Microsoft Peer Web Services, versiunea 3.0 sub Windows NT. Workstation

Microsoft Personal Web Server sub Windows 95/98

Fig. 1.2.1 Modelul ASP

Un fișier ASP este un fișier text care poate conține combinații de:

text

tag-uri HTML

comenzi de tip script. Acestea specifică computerului să facă o operație, de pildă să atribuie o valoare unei variabile.

Tot o comandă de acest tip specifică server-ului web să trimită o variabilă browser-ului. O astfel de operație este realizată de o expresie de tip output.

Un script mai poate combina comenzile în proceduri. O procedură este o secvență de comenzi și propoziții care are un nume și acționează ca o unitate.

Execuția script-ului implică trimiterea unei serii de comenzi unui motor de tip script care le va interpreta și retransmite computer-ului. Script-urile sunt scrise în limbaje care au reguli specifice, de aceea pentru posibilitatea rulării lor trebuie folosit un interpretor care înțelege

limbajul folosit. ASP oferă suport de tip script pentru limbajele VBScript și Jscript. Limbajul scripting primar, daca nu se specifică este implicit VBScript.

Din punct de vedere al sintaxei, ASP nu este un limbaj de tip script, dar oferă un mediu de procesare a script-urilor incorporabil în fișierele HTML.

Tag-urile HTML se diferențiază de text prin intermediul delimitatorilor. Un delimitator reprezinta un caracter sau o secvență de caractere care marchează începutul și sfărșitul unei unități. În cazul HTML-ului, se folosesc pe post de delimitatori caracterele < și > .

Similar, ASP-ul folosește delimitatorii <% și %>. De exemplu comanda

<%rubrică=”sport”%>

atribuie parametrului rubrică valoarea”sport” (de tip text).

Pentru expresiile de tip output se folosesc delimitatorii <%= %>. Pentru exemplul de mai sus, expresia:

<% =rubrică%>

trimite spre browser textul “sport”.

Unul din marile avantaje ale acestei tehnologii îl constituie posibilitatea de acces la o bază de date într-un mod mult mai securizat, ținănd cont că toate operațiile au loc pe server. Astfel a fost necesar integrarea unor instrucțiuni specializate în lucrul cu bazele de date.

Avănd în vedere cererea pe piață la scară mare a programelor care să realizeze diferite sarcini cu aplicatibilitate preponderentă în domeniul contabilității, al comerțului electronic, s-a încercat realizarea unui suport căt mai bun pentru această gamă de aplicații în tehnologie ASP.

Un desen reprezentativ al celor spuse puțin mai sus ar arăta în felul următor:

Fig. 1.2.2 ASP-ul intermediază schimbul de informații

dintre client si baza de date

Considerănd benefică aceasta introducere în tehnologia ASP, se va trece mai departe la studiul teoretic al temei proiectului, anume latura ASP care se ocupă cu accesul la o bază de date. Mai întăi se vor explica principiile care stau la baza realizării accesului, urmănd ca pe parcurs să se explice metoda optimă aleasă pentru realizarea legăturii între aplicația ASP și baza de date.

1.3 Baze de date

Avantajul utilizării bazelor de date este binecunoscut utilizatorilor familiarizați cu aplicațiile care necesită o stocare pe anumite criterii a informației care va putea fi apoi accesată ușor, în funcție de criteriile dorite.

Printre cele mai puternice editoare de baze de date se numără Microsoft Access si SQL.

Pentru început se va face o comparație între aceste două medii urmând a se explica în detaliu modalitatea de acces prin intermediul unei pagini ASP la o bază de date creată cu Microsoft Access 2000.

Comparație între Access 97/2000 și SQL Server 7.0/2000

În această parte vor fi prezentate câteva caracteristici generale ale Access 97/2000 și SQL Server 7.0/2000, restricțiile acestora precum și comparația dintre aceste produse.

Access 97/2000

Microsoft oferă o familie întreagă de unelte de tip bază de date în variantă desktop,

server, și pentru conectivitate deschisă. Pentru desktop Microsoft oferă Microsoft Access 97/2000. Microsoft Access 97/2000 este un sistem foarte dotat în managementul

bazelor de date relaționale multi-utilizator destinat sistemelor de operare Microsoft Windows (precum Windows9x, Windows NT, Windows2000). Access 97/2000 este vizual orientat și ușorelor care să realizeze diferite sarcini cu aplicatibilitate preponderentă în domeniul contabilității, al comerțului electronic, s-a încercat realizarea unui suport căt mai bun pentru această gamă de aplicații în tehnologie ASP.

Un desen reprezentativ al celor spuse puțin mai sus ar arăta în felul următor:

Fig. 1.2.2 ASP-ul intermediază schimbul de informații

dintre client si baza de date

Considerănd benefică aceasta introducere în tehnologia ASP, se va trece mai departe la studiul teoretic al temei proiectului, anume latura ASP care se ocupă cu accesul la o bază de date. Mai întăi se vor explica principiile care stau la baza realizării accesului, urmănd ca pe parcurs să se explice metoda optimă aleasă pentru realizarea legăturii între aplicația ASP și baza de date.

1.3 Baze de date

Avantajul utilizării bazelor de date este binecunoscut utilizatorilor familiarizați cu aplicațiile care necesită o stocare pe anumite criterii a informației care va putea fi apoi accesată ușor, în funcție de criteriile dorite.

Printre cele mai puternice editoare de baze de date se numără Microsoft Access si SQL.

Pentru început se va face o comparație între aceste două medii urmând a se explica în detaliu modalitatea de acces prin intermediul unei pagini ASP la o bază de date creată cu Microsoft Access 2000.

Comparație între Access 97/2000 și SQL Server 7.0/2000

În această parte vor fi prezentate câteva caracteristici generale ale Access 97/2000 și SQL Server 7.0/2000, restricțiile acestora precum și comparația dintre aceste produse.

Access 97/2000

Microsoft oferă o familie întreagă de unelte de tip bază de date în variantă desktop,

server, și pentru conectivitate deschisă. Pentru desktop Microsoft oferă Microsoft Access 97/2000. Microsoft Access 97/2000 este un sistem foarte dotat în managementul

bazelor de date relaționale multi-utilizator destinat sistemelor de operare Microsoft Windows (precum Windows9x, Windows NT, Windows2000). Access 97/2000 este vizual orientat și ușor de folosit. O aplicatibilitate mare își găsește în cadrul meniurilor drag-and-drop, în designul vizual pentru chestionare, form-uri și rapoarte.

Access 97/2000 vine cu un mediu de dezvoltare integrat (IDE), incluzând o compilare incrementală, un debugger full interactiv vizual, puncte tip break, etc. Aceste capabilități se

combină și fac din Microsoft Access o platformă puternică pentru dezvoltarea soluțiilor bază de date client-server.

Iată caracteristicile generale ale Access 97/2000:

Deși mărimea maximă a unei baze de date este de 1 Gb, baza de date poate include legături spre tabele în alte fișiere, iar mărimea totală este limitată doar de capacitatea memoriei disponibile.

Numărul de caractere într-un câmp de date poate atinge 65,535 caractere în momentul introducerii datelor prin intermediul interfaței utilizator sau poate atinge 1 Gb când datele sunt introduse programat.

Access 2000 poate închide nivelul rând în comparație cu Access 97.

SQL Server 7.0/2000

Pentru un motor de tip server în soluțiile client-server Microsoft oferă Microsoft SQL Server 7.0/2000.

Nu există atât de multe diferențe în arhitectura internă între SQL Server 7.0 și SQL Server 2000. SQL Server 2000 oferă aceleași opțiuni ca și SQL Server 7.0: funcții de auto-creștere, motor nou de stocare, capabilitatea de închidere la nivel de rând etc. Deci, caracteristicile generale ale acestor versiuni sunt identice.

Iată caracteristicile generale ale SQL Server 97/2000:

SQL Server 2000 Enterprise Edition pe o platformă Windows 2000 DataCenter

poate suporta până la 32 de procesoare și adresa 64GB de memorie fizică (RAM) pe un

computer!

1.4 Acces ASP la bazele de date

Componenta de acces la baza de date folosește obiecte de date active (ADO) în vederea unui acces simplu la informațiile stocate într-o baza de date (sau într-o altă structură tabelară) care se potrivește cu standardul ODBC (Open Database Connectivity).

Pentru a putea avea acces la o bază de date, vor trebui parcurși o serie de pași care implică câteva etape bine stabilite ce trebuiesc urmate consecutiv:

Stabilirea locației bazei de date (în ideea în care este deja creeată).În exemplul următor vom creea baza de date în ambele variante expuse anterior și anume folosind Microsoft Access 2000 respectiv SQL Server 7.0

Stabilirea unei legături ODBC cu numele sursei de date (DNS)

Crearea paginii ASP care realizeauă accesul propriu zis

Aceste etape vor fi detaliate acum în parte:

1. Ca și exemplu am ales o bază de date simplă care include un tabel cu profiturile realizare zilnic de o anumită firmă. Tabelul se numește Diagrama, conține 2 coloane etichetate Data respectiv Profitul și mai multe înregistrări ce reprezintă zilele lunii iunie ale anului curent în care se vor stoca profiturile aferente.

1.4.1 Varianta Microsoft Access 2000

Se lansează Microsoft Access 2000 din pachetul MS Office 2000.

Se acționează butonul New , moment în care va apărea o rubrică gen:

Fig. 1.4.1 Crearea unei noi baze de date .mdb

Se selectează opțiunea Database și se specifică numele fișierului sub care se va salva noua bază de date: în cazul de față profit.mdb. Apoi se va selecta Create table by entering data ceea ce va duce la posibilitatea introducerii valorilor dorite pe rubrici. La sfârșit, tabelul va trebui să aibă o formă gen:

Fig. 1.4.2 Completarea tabelului cu datele dorite

Acum se va trece la salvarea bazei de date. În momentul selectării opțiunii Save Us, utilizatorul va introduce numele tabelului de referință pentru un viitor acces.(valoarea implicită este Table1). Pentru exemplul nostru se va tasta Diagrama.

Fig. 1.4.3 Salvarea tabelului sub numele dorit

Dacă se dorește specificarea unei parole de acces la baza de date creată se va:

Selecta opțiunea Tools -> Security -> Set Database Password…

Fig. 1.4.4 Setarea parolei bazei de date

De asemenea tot din cadrul meniului Tools ->Security dar prin selectarea opțiunii User and Group Accounts… se pot specifica permisiunile utilizatorilor care vor accesa baza de date:

Fig. 1.4.5 Setarea permisiilor utilizatorilor și grupurilor

Astfel am creat baza de date profit.mdb.Mai jos este ilustrat modul final în care trebuie să apară noua bază de date.

Fig. 1.4.6 Imagine finală a bazei de date create

În continuare se vor ilustra pașii necesari pentru a crea o bază de date identică dar utilizand de această dată SQL Server 7.0.Apoi se vor explica pe rând pașii 2. și 3. rămași pentru accesul la înregistrările noi create.

Varianta SQL Server 7.0

Se deschide SQL Server 7.0 Enterprise Manager (Start ( Programs (SQL Server 7.0 (Enterprise Manager). Se extinde arborele Enterprise Manager selectându-se Server-ul SQL sub care se adaugă baza de date până se ajunge la rubrica Database.

Fig. 1.4.7 Crearea unei noi baze de date sub SQL

Se dă click dreapta pe nodul Database și se selectează opțiunea ”New Database…”

În cadrul căsuței ”Database Properties” se introduce în câmpul Name

.

Fig. 1.4.8 Denumirea bazei de date – Profit

Click pe butonul OK.

Până acum am creat baza de date profit unde vom putea introduce viitoarele tabele.

Pentru a crea tabelul Diagrama se vor parcurge următorii pași:

Se extinde nodul Database din Enterprise Manager.

Se dă click dreapta pe nodul profit.

Se selectează opțiunea New -> Table. În cadrul dialogului Choose Name se introduce în dreptul rubricii Enter a name for the table numele tabloului și anume Diagrama.

Se acționează butonul Ok. În dreptul cutiei de dialog Add Table se vor introduce informațiile dorite.

Seînchide fereastra de dialog New Table.

Astfel s-a creat și tabelul dorit în interiorul bazei de date. Pentru a adăuga date în cadrul tabelului Diagrama se va extinde nodul bazei de date profit din Enterprise Manager și:

Se dă dublu-click pe Tables iar în dreapta Manager-ului Enterprise se va activa click dreapta pe Diagrama.

Se selectează Open Table -> Return all rows urmând ca în cadrul opțiunii Data in table Diagrama să se introducă datele dorite.

Fig. 1.4.9 Completarea tabelului Diagrama

Acum, ținând cont că avem baza de date completată este nevoie de realizarea unei conexiuni ODBC cu baza de date. Pentru aceasta se vor realiza următoarele sarcini:

Se deschide Start -> Setting-> Control Panel. Se dă dublu-click pe icoana Data Sources (ODBC) din Control Panel.

Se selectează System DSN din fereastra de dialog ODBC Data Source Administrator.

Click pe butonul Add. În fereastra Create New Data Source se marchează SQL Server Se dă click pe Finish

Fig. 1.4.10 Realizarea conexiunii ODBC

Acum, în fereastra Create a New Data Source to SQL Server se va:

Introduce profit în câmpul Name. De data aceasta nu specifică numele bazei, ci al DSN-ului.. S-a păstrat același nume doar pentru simplitate, deși din considerente de securitate nu e o idee chiar atât de bună.

În interiorul câmpului Description , se introduce o scurtă descriere a DSN-ului. Aici s-a scris Profit Sample DSN.

Din căsuța Server, se selectează Serverul SQL la care va avea loc conexiunea. Deoarece, instanța SQL Server există pe aceeași mașină unde s-a creat DSN-ul, se va selecta (local).

Click pe butonul Next.

Fig. 1.4.11 Atașarea conexiunii de serverul SQL

În cadrul celei de-a doua ferestre de dialog Create a New Data Source to SQL Server:

Se selectează butonul de tip radio With SQL Server authentication using a login ID and password entered by the user pentru a indica tipul securității bazei -implementată de SQL Server și nu de Windows NT.

Se selectează opțiunea Connect to SQL Server to obtain default settings for the additional configuration options.

La rubrica Login ID se introduce ”sa” de exemplu.

Se lasă rubrica Password goală.

Click pe butonul Next.

Notă: S-a folosit "sa" pentru login ID împreună cu o parolă în alb de conveniență. Acesta este stilul default de administrare al contului pentru SQL Server. Din nou, specific faptul că doresc să arăt modalitatea de creare a bazei de date și a legăturii și nu alte considerente de implementare a securității.

Fig. 1.4.12 Specificarea unui eventual cont de login-izare și a parolei

În cadrul celei de-a treia ferestre de dialog Create a New Data Source to SQL Server:

Se selectează Change the default database și se alege Diagrama din opțiunea de sus.

Click pe butonul Next.

Fig. 1.4.13 Terminarea procesului

În cadrul celei de-a patra ferestre de dialog Create a New Data Source to SQL Server:  

Click pe butonul Finish.

Fig. 1.4.14 Stabilirea ultimelor setări

În cadrul ferestrei de dialog ODBC Microsoft SQL Server Setup se va da:

Click pe Test Data Source. . . butonul de asigurare a conexiunii ODBC corect create.

Click pe butonul OK pentru completarea procesului de setup ODBC DSN.

În final SQL va afișa toate caracteristicile și setările bazei de date create împreună cu

datele conexiunii ODBC:

Fig. 1.4.15 Ecran final cu afișarea tuturor setărilor

Am creat bazele de date, tabelul cu informațiile dorite și conexiunea ODBC DSN. Următorul pas va evidenția modalitatea de compunere a codului paginii ASP pentru accesarea datelor.

Ținând cont că aplicația implementată accesesază baze de date create în Microsoft Access 2000 (de tip .mdb) deoarece nu s-a justificat alegerea unor baze de date sub SQL Server 7.0, pasul 3 rămas va fi explicat pentru varianta de acces a unei astfel de baze.

1.5 Crearea paginii ASP

1. Se începe cu codul ASP script standard în care se specifică limbajul folosit VBScript

și modul de specificare în pagină:

<% @LANGUAGE="VBSCRIPT" %>

<%

Option Explicit

2. Se dimensionează toate variables care vor fi folosite:

Dim Conn, rs

3. Se creeaza Conexiunea și obiectele tip Record:

set conn=Server.CreateObject("ADODB.Connection")

set rs = Server.CreateObject("ADODB.recordset")

4. Se setează conexiunea obiectelor conform standardului OLEDB:

conn.Provider="Microsoft.Jet.OLEDB.4.0"

5. Se deschide conexiunea:

conn.Open(Server.Mappath("profit.mdb"))

6. Se deschid înregistrările și are loc poziționarea pe prima înregistrare:

rs.open "Diagrama", conn, 2, 2

rs.movefirst

7. Se stabilește tipul tabelului HTML:

Response.Write ("<TABLE BORDER=1 CELLPAADING=0 CELLSPACING=0 ALIGN=CENTER>" & "<tr>")

8. Folosind un ciclu valid până în momentul terminării înregistrărilor se afișează pe ecran conținutul bazei de date profit.mdb , totul aranjat în tabelul nou construit:

do until rs.EOF

Response.Write ("<td>")

Response.Write rs("DATA")

Response.Write ("</td>")

Response.Write ("<td>")

Response.Write rs("PROFITUL")

Response.Write ("</td>")

Response.Write ("<tr>")

rs.MoveNext

Loop

Response.Write("</table>")

9. Se închid toate obiectele de referință:

rs.Close

Set rs = Nothing

Conn.Close

Set Conn = Nothing

%>

Acesta este codul sursă pentru realizarea accesului la baza de date profit.mdb

Lansând browser-ul Internet Explorer 5.0 și tastând

http://localhost/numefișier.asp

va apărea un tabel cu datele scoase din Diagrama.

Tabelul este ilustrat în figura de pe pagina următoare.

Fig. 1.5.1 Accesarea conținutului fișierului profit.mbd

Așadar acesta ar fi modul optim de fișier tip ASP pentru un acces la o bază de date.

În continuare se vor studia punctele cheie ale aplicației care însoțește acest proiect.

II. BREVIAR DE CALCUL

2.1 Introducere în aplicație

Persoanele care accesează frecvent rețeaua Internet în zilele de astăzi pot remarca prezența tot mai mare a site-urilor realizate în format .asp sau .jsp care sunt specializate în domenii gen comerțul electronic. Din ce în ce mai des apare conceptul de cumpărare on-line,

fapt ce implică în general posibilitatea unui acces structurat, dinamic și eficient către o bibliotecă de date sortate pe domeniile de utilizare a firmei respective.

Utilizatorul conectat poate selecta produsul dorit și apoi transmite o cerere de cumpărare care

duce la procesul de validare a unui mijloc de plată (gen VISA CARD, MASTER CARD, AMERICAN EXPRESS CARD, sau cec). În acest moment aplicația (interconectată cu minim o bancă pentru verificarea existenței cardului introdus de client drept sursă de plată) va ști să realizeze tranzacția propriu-zisă și va semnala serviciului de mesagerie toate datele necesare pentru buna livrare a produsului comandat la adresa specificată. Avantajele unor asemenea servicii este imens: singurele greutăți care pot apărea sunt cele din punct de vedere al securității și al posibilității semnării unor astfel de înțelegeri cu anumite bănci.

Aplicația ce va fi prezentată simulează o firmă virtuală RAIDOMI care are ca domeniu de activitate comercializarea de componente și sisteme de calcul. Nefiind obiectul principal al proiectului, gradul de securizare al aplicației este mediu; ceea ce se va studia este modul de acces al informașiei stocate în fișierele de tip mdb de pe server prin intermediul paginilor ASP.

O detaliere a facilităților aplicației ar include posibilitatatea de:

creere a unui cont personalizat în cadrul site-ului (sign-up pentru clienți)

accesare (login) a conturilor în diferite ipostaze gen (client, contabil , patron)

modificare a datelor personale (pentru clienți)

download a ofertei de componente (pentru clienți)

vizualizare a ofertelor personalizate (prețuri variabile în funcție de investițiile efectuate în trecut – pentru membrii)

cumpărare pe componente sau în sistem (pentru membrii)

testare (de tip benchmark) pe diferite domenii gen programare,multimedia,jocuri comandare a anumitor componente sau al sistemului dorit (pentru membrii)

notificare rapidă prin SMS a comenzii dorite persoanei de contact (pentru membrii)

verificare a stocurilor firmei precum și modificarea acestora (doar pt. contabil)

înregistrare a profitului realizat prin comercializarea componentelor (doar pt. contabil)

aducere la zi a sumelor investite de clienții fideli ai firmei (doar pt. contabil)

vizualizare a profitului în orice moment pe ziua respectivă (doar pt. patron)

În continuare se vor explica punctele cheie ale programului menționat mai sus.

Vor fi studiate sursele importante de tip ASP care tratează diferitele situații enumerate anterior. Pentru o bună înțelegere a aplicației vor fi prezentate mai întâi organigramele fișierelor ASP.

2.2 Organigramele surselor ASP principale

1. NEWMEMB.ASP – fișier care are ca scop crearea unui nou membru al firmei (nou client)

2. MEMBSUBM.ASP – fișier care realizează partea de acces al unui cont existent (pt. membrii-clienții care au cont deja creat)

3. UPDMEM.ASP – fișier care permite modificarea datelor personale din cont (pt. membrii-clienții care au deja un cont creat)

4. CODCOMP.ASP – fișier rezervat secțiunii de cumpărare pe componente. Clientul poate selecta ce componente dorește (multiplă selecție mărește nr. de bucăți)

5. CODSIS.ASP – fișier rezervat secțiunii de cumpărare a unui sistem întreg. Clientul își va selecta pe rând componentele (poate chiar renunța la alegerea câtorva)

2.3 Instrucțiuni folosite în cadrul fișierelor ASP cheie

Din motive de spațiu, nu se vor explica instrucțiunile care țin de partea HTML ci doar script-urile ASP care realizează acțiunile mai importante:

Codcomp.asp

Acest fișier se ocupă de secțiunea rezervată cumpărăturilor pe componente. Utilizatorul va putea selecta tipul componentelor dorite precum și numărul de bucăți al fiecăreia.

Principalele comenzi date în cadrul fișierului sunt:

<%

Session("LOGIN")=2

If Session("n")>-1 THEN

Session("Prettotal")=Session("Prettotal")+Request.QueryString("varPret")

Response.Write(Session("Prettotal"))

End IF

%>

variabila Login ia valoarea 2. Se testează starea în care ne aflăm și se reactualizează prețul

comenzii care se va afișa pe ecran:

<%

Session("n")=Session("n")+1

IF Session("n")=0 THEN

dim cosc(4,20)

Session("CUMPCOS")=cosc

Response.End

End If

dim bal,randn,balv

randn=0

balv=0

se incrementează valoarea lui n deoarece s-a dat comanda unei achiziții. Dacă este pentru

prima dată atunci au loc definirile de tablou general și variabile locale. Tabloul trebuie apoi mapat spre un obiect numit aici CUMPCOS (înainte de părăsirea paginii).

cosc=Session("CUMPCOS")

for bal=1 to Session("n")

If cosc(1,bal)=Request.QueryString("varModel") THEN randn=1

Session("CUMPCOS")=cosc

next

se preia din obiectul CUMPCOS tabelul stocat în matricea cosc. Apoi se verifică dacă

rubrica componentei pe care s-a dat click este aceeași cu cea așteptată.

If randn=1 THEN Session("n")=Session("n")-1

If randn=0 THEN cosc(0,Session("n"))=Request.QueryString("varProd")

If randn=0 THEN cosc(1,Session("n"))=Request.QueryString("varModel")

If randn=0 THEN cosc(2,Session("n"))=cosc(2,Session("n"))+rand+1

If randn=0 THEN cosc(3,Session("n"))=Request.QueryString("varPret")

If randn=0 THEN cosc(4,Session("n"))=Request.QueryString("Rubr")

If randn=1 THEN cosc(2,Session("balv"))=cosc(2,Session("balv"))+1

Session("CUMPCOS")=cosc

for bal=1 to Session("n")

în caz de corespondență, se salvează în matricea cosc caracteristicile componentei

selectate și apoi se începe ciclul de afișare a tabelului.

<%Response.Write(Session("CUMPCOS")(0,bal))%>&nbsp

<%Response.Write(Session("CUMPCOS")(1,bal))%></font></i></b></td>

<td width="25" align="center"><b><i><font face="Arial" color="#00FF99" size="1">

<%Response.Write(Session("CUMPCOS")(2,bal))%></font></i></b></td>

<td width="30" align="center"><b><i><font face="Arial" color="#00FF99" size="1">

<%Response.Write(Session("CUMPCOS")(3,bal))%></td></font></font></tr><font color="#FF0000" size="4"><font color="#FF0000" size="4">

<%next%>

acestea sunt comenzile pentru afișarea unui rând ân cadrul paginii ce va fi trimise spre

utilizator.

Codsis.asp

Fișierul este rezervat cumpărăturilor de sisteme complete de calcul (se poate renunța doar la componentele care nu sunt primordiale gen kituri multimedia etc.)

<%

Session("LOGIN")=2

Session("Link")="codsis.asp"

Dim Comptabel(1,16),bal,varFMPR,varFSBBIOS,adun

Comptabel(1,1)="PLACA DE BAZA"

Comptabel(1,2)="PROCESOR"

Comptabel(1,3)="COOLER"

Comptabel(1,4)="MEMORIE"

Comptabel(1,5)="HARDDISK"

Comptabel(1,6)="FLOPPY"

Comptabel(1,7)="PLACA VIDEO"

Comptabel(1,8)="CDROM"

Comptabel(1,9)="DVD"

Comptabel(1,10)="CDWRITER"

Comptabel(1,11)="SOUND CARD"

Comptabel(1,12)="BOXE"

Comptabel(1,13)="MONITOR"

Comptabel(1,14)="CARCASA"

Comptabel(1,15)="TASTATURA"

Comptabel(1,16)=""

%>

la început se definesc variabilele. De această dată algoritmul e puțin mai dificil deoarece

trebuie urmată o procedură ordonată de cumpărare și nu aleatoare. În acest scop se definește un vector Comptabel care conține informația referitoare la rubricile ce pot fi selectate.

<%

adun=1

Session("n")=Session("n")+1

If Request.QueryString("Rubr")=Comptabel(1,Session("n")) Then adun=0

If (Session("n")-adun)=5 or (Session("n")-adun)>6 and (Session("n")-adun)<15 Then%>

<a href="codsis.asp?varModel=-&amp;varProd=-&amp;varPret=0&amp;Rubr=<%=Comptabel(1,Session("n")-adun+1)%>" target="drsus"><font face="Times New Roman" size="2"><span style="background-color: #000080">NU DORESC COMPONENTA</span></font></a></font></i></b></p>

<%End IF%>

acum urmează un artificiu interesant: deoarece la fiecare alegere se incrementează

variabila n cu 1 (chiar dacă s-a ales o componentă dintr-o rubrică greșită) se inițializează variabila adun cu 1 sau 0 în funcție de caz. Astfel diferența (n-adun) va fi aceeași în ambele cazuri iar opțiunea Nu doresc componenta va apărea doar atunci când trebuie și va putea fi aleasă pentru saltul respectiv. Dacă se alege atunci are loc o reapelare a aceeași pagini dar cu informația cuvenită în plus, permitând astfel afișarea tabelului nou (în care este specificat vizual nealegerea componentei respective.De asemenea prețul total nu se modifică.)

IF Comptabel(1,Session("n"))=Request.QueryString("Rubr") THEN

coss(0,Session("n"))=Request.QueryString("varProd")

coss(1,Session("n"))=Request.QueryString("varModel")

coss(2,Session("n"))=Request.QueryString("varPret")

IF Session("n")=1 THEN coss(0,22)=Request.QueryString("varFSBMB")

IF Session("n")=2 THEN coss(0,21)=Request.QueryString("varFSBPR")

IF Session("n")=2 THEN coss(0,20)=Request.QueryString("varFRPR")

IF Session("n")=2 THEN coss(0,19)=Request.QueryString("varVIOPR")

IF Session("n")=4 THEN coss(0,18)=Request.QueryString("varFSBMEM")

IF Session("n")=4 THEN coss(0,17)=Request.QueryString("varCantMEM")

IF Session("n")=1 THEN coss(1,17)=Request.QueryString("varNotaMB")

IF Session("n")=2 THEN coss(1,18)=Request.QueryString("varNotaPROC")

IF Session("n")=4 THEN coss(1,19)=Request.QueryString("varNotaMEM")

IF Session("n")=5 THEN coss(1,20)=Request.QueryString("varNotaHDD")

IF Session("n")=7 THEN coss(1,21)=Request.QueryString("varNotaPVIDEO")

IF Session("n")=8 THEN coss(1,22)=Request.QueryString("varNotaCDROM")

IF Session("n")=9 THEN coss(2,17)=Request.QueryString("varNotaDVD")

IF Session("n")=10 THEN coss(2,18)=Request.QueryString("varNotaCDW")

IF Session("n")=11 THEN coss(2,19)=Request.QueryString("varNotaSOUNDB")

IF Session("n")=12 THEN coss(2,20)=Request.QueryString("varNotaBOXE")

IF Session("n")=13 THEN coss(2,21)=Request.QueryString("varNotaMON")

Else

Session("n")=Session("n")-1

End If

Session("CUMPCOS")=coss

for bal=1 to Session("n")

%>

dacă rubrica coincide, au loc definirile cuvenite. De data aceasta, pentru anumite momente

ale constituirii sistemului au loc și câteva definiri care vor folosi în momentul testării sistemului (pentru rubrica rezervată simulării capturii dinamice a bios-ului). În caz contrar, bineînțeles, se decrementează variabila n. La sfârșit se salvează totul în obiectul CUMPCOS.

Apoi începe într-un ciclu afișarea cuvenită.

<%If bal<16 THEN %><p align=”center”><b><font color=”#CC0099” size=”2”>PAS <%=(Session(“n”)+1)%>. SELECTATI <%Response.Write (Comptabel(1,Session(“n”)+1))%></font></b></p>

<%

End If

până când nu s-au epuizat rubricile, adică bal<16, se va afișa:

(valoare) n. Selectați Rubrica (valoare) n

If Session("n")=15 and Request.QueryString("Rubr")="TASTATURA" THEN

varFMPR=int(coss(0,20)/126*2)/2

varFSBBIOS=133

If coss(0,22)=200 or coss(0,21)=100 or coss(0,18)=100 Then

varFMPR=coss(0,20)/100

varFSBBIOS=100

End If

If coss(1,8)="-" Then coss(1,8)="None"

If coss(1,9)="-" Then coss(1,9)="None"

If coss(1,10)="-" Then coss(1,10)="None"

%>

după alegerea completă a componentelor are loc stabilirea frecvenței la care va funcționa

ansamblul (placă de bază, procesor, memorie). De asemenea se mai stabilesc și dispozitivele care vor fi atașate cablurilor PRIMARY, SECONDARY MASTER&SLAVE. În caz că nu au fost selectate va apărea în BIOS bineînțeles NONE.

Testare.asp

În momentul în care utilizatorul dorește să afle comportarea sistemului ales în aplicațiile tip Programare, Multimedia, Jocuri accesează prin intermediul comenzii Testează sistemul fișierul testare.asp. Acesta preia toate informațiile din fișierul codsis.asp și furnizează o captură dinamică a bios-ului (simulare) precum și partea de benchmark.

<%

'SECTIUNEA DE BENCHMARK A SISTEMULUI

dim benchm1,benchm2,benchm3,coss,norm1,norm2,norm3

coss=Session("CUMPCOS")

norm1=62/370

norm2=62/450

norm3=62/200

benchm1=int((coss(1,17)*4+coss(1,18)*5+coss(1,19)*5+coss(1,20)*3+coss(1,21)*10+coss(1,22)*2+coss(2,19)*3+coss(2,20)*2+coss(2,21)*3)*norm1)

benchm2=int((coss(1,17)*4+coss(1,18)*5+coss(1,19)*5+coss(1,20)*5+coss(1,21)*6+coss(1,22)*4+coss(2,17)*3+coss(2,18)*4+coss(2,19)*4+coss(2,20)*3+coss(2,21)*2)*norm2)

benchm3=int((coss(1,17)*5+coss(1,18)*6+coss(1,19)*5+coss(1,20)*2+coss(2,21)*2)*norm3)

Session("CUMPCOS")=coss

%>

fiecare tip de componentă intervine în proporții diferite în funcție de aplicație. Pe baza

formulelor adecvate se va calcula competivitatea sistemului în cele 3 domenii enumerate, rezultând valorile benchm1, benchm2, benchm3.

<tr>

<td width="173"><table border="0" cellpadding="0" cellspacing="0" width="3*<%=benchm1%>"><%for i=1 to benchm1%><td width="3"><img border="0" src="unit.gif"></td><%next%></table></td>

<td width="27"><font size="2" color="#FFFFFF"><b><%Response.Write (i*3*12)%></td>

<td width="171"><table border="0" cellpadding="0" cellspacing="0" width="3*<%=benchm2%>"><%for i=1 to benchm2%><td width="3"><img border="0" src="unit.gif"></td><%next%></table></td>

<td width="28"><font size="2" color="#FFFFFF"><b><%Response.Write (i*3*12)%></td>

<td width="183"><table border="0" cellpadding="0" cellspacing="0" width="3*<%=benchm3%>"><%for i=1 to benchm3%><td width="3"><img border="0" src="unit.gif"></td><%next%></table></td>

<td width="23"><font size="2" color="#FFFFFF"><b><%Response.Write (i*3*12)%></td>

</tr>

metoda de simulare tip “fluid” a testelor benchmark este realizată prin intermediul unor

tabele care într-un ciclu până la o valoare specificată afișează câte o imagine de culoare diferită pentru fiecare sistem etalon existent.

2.4 Tehnici de bază folosite în cadrul fișierelor ASP

Aplicația conține toate cele 4 tehnici (găsite pe web) de preluare a unor informații de la utilizator și transmitere a acestora spre alte fișiere pentru prelucrări ulterioare:

Trecerea variabilelor de la o pagină la alta este una din cele mai importante sarcini într-o aplicație de tip ASP.

În exemplele ce vor fi date se vor folosi 2 variabile: nume și vârstă.

Metoda GET

FIȘIER : SENDING.HTML

<form name="sending" method="GET" action="getting.asp" target="_self">
    </FONT><font size="2">Nume :</font><br>
    <input name="nume" size="22" >
    <br>
    <font size="2">Vârstă:</font><br>
    <input name="vârstă" size="14" >
    <br> 
    <input type="submit" value="Send" name="Send">
</form>

Acest fișier preia în două câmpuri valorile pentru Nume si Vârstă și apelează apoi fișierul getting.asp

FIȘIER : GETTING.ASP

<%
    'querystring obține informația

    gotnume = Request.querystring("nume")
    gotvârstă = Request.querystring("vârstă")
%>

În cadrul variabilelor noi gotnume și gotvârstă se introduc valorile Nume si Vârstă preluate.

Metoda POST

FIȘIER : SENDING.HTML

<form name="sending" method="POST" action="getting.asp" target="_self">
    </FONT><font size="2">Nume :</font><br>
    <input name="nume" size="22" >
<br>
    <font size="2">Vârstă:</font><br>
    <input name="vârstă" size="14" >

    <br> 
    <input type="submit" value="Send" name="Send"> </form>

De data aceasta se folosește metoda post, una din cele mai folosite deoarece este mult mai confidențială și nu arată conținutul variabilelor la transfer.

FIȘIER : GETTING.ASP

<%
    'the request.form gets the info within the boxes of the form actioned
    'from the previous HTML/ASP
    gotnume = Request.form("nume")
    gotvârstă = Request.form("vârstă")
%>

Valorile variabilelor Nume si Vârstă sunt preluate cu instrucțiunea Request.Form.

Metoda bazată pe o imagine sau un link

FIȘIER : SENDING.ASP

<%

nume=”Adi”

vârstă=”23”

%>

    <a href="getting.asp?nume=<%=nume%>&vârstă=<%=vârstă%>" target="_self" >
        <img src="images/button_gotogetting.gif" name="pic">
    </a>

Variabilele Nume si Vârstă sunt transferate fișierului getting.asp ca și parametrii ai link-ului imaginii specificate mai sus.

FIȘIER : GETTING.ASP

<%
    gotnume = request.querystring("nume")
    gotvârstă = request.querystring("vârstă")
%>

Printr-un fișier similar se citesc apoi valorile variabilelor transferate.

Metoda variabilelor sesiune

FIȘIER : SENDING.ASP

<%
    session("nume") = "Adi"

    session("vârstă") = "23"
%>

FIȘIER : GETTING.ASP

<%
    gotnume = session("nume")
    gotvârstă = session("vârstă")
%>

Este metoda cea mai simplă de transfer dar nu e indicată pentru variabile multiple deoarece ocupă spațiu vital din memorie, ținând cont că aceste variabile rămân definite atâta timp cât este validă sesiunea.

2.5 Artificii VBScript și JScript folosite

Meta-refresh

Permite un refresh specificat în secunde al paginii. Parametrii: perioada și pagina destinație.

<META HTTP-EQUIV = "REFRESH" CONTENT="5; URL=index.asp">

History-go(-1)

Permite revenirea la pagina anterioară în momentul unui click. Poate da valoarea unei variabile. Se poate folosi și combinat cu Meta-Refresh în cadrul parametului URL.

<a onClick="JavaScript:history.go(-1)">BACK</a> apare butonul BACK ca link.

urmPag="JavaScript:window.history.go(-1);" variabila urmPag ia acea valoare

Force.Reload

Utilă în momentul în care se dorește încărcarea paginii de pe server și nu din cache.

<script language="JavaScript"><!– if (document.images) location.reload(true); // forțează o reîncărcare de pe server else location.href = location.href; // doar reîncarcă pagina //–></script>

Acest proces se va tot relua, de aceea trebuie verificat dacă nu cumva pagina s-a reîncărcat în ultima secundă de exemplu:

<script language="JavaScript"><!– function forceReload() { if (document.images) location.replace(location.href + '?' + (new Date()).getTime()); else location.href = location.href + '?' + (new Date()).getTime(); } var lastTime = location.search.substring(1) – 0; if ((new Date()).getTime() – lastTime > 1000) forceReload(); //–></script>

Cache

Utilă pentru a preveni procesul de stocare cache a paginii încărcate. Cu albastru e ilustrată varianta HTML iar cu roșu varianta ce trebuie integrată într-o pagină ASP:

<META HTTP-EQUIV="pragma" CONTENT="no-cache">

<META HTTP-EQUIV="cache-control" CONTENT="private">

<%

Response.Expires = 0

Response.Expiresabsolute = Now() – 1

Response.AddHeader "pragma","no-cache"

Response.AddHeader "cache-control","private"

Response.CacheControl = "no-cache"

%>

Response.End / Response.Clear / Response.Flush

Utile când se tratează anumite excepții:

Response.End dacă se dorește stoparea procesării script-ului.

Response.Clear pentru ștergerea oricărei ieșiri HTML buffer-ate.

Response.Flush pentru trimiterea tuturor informațiilor către buffer.

Response.Redirect / Server.Transfer / Server.Execute

Pentru cedarea controlului unei alte pagini.

Response.Redirect “url” instrucțiune apărută mai demult.

Server.Transfer “url” acționează eficient în înlocuirea instrucțiunii Response.Redirect

Server.Execute “url” la fel ca și Server.Transfer, dar controlul revine paginii vechi

Transfer de tabel între fișiere

Înainte de a părăsi primul fișier se stochează datele într-un obiect, iar când trecem în celălalt fișier se map-ează obiectul spre un nou tabel (în cazul acesta un vector sau o matrice).

Session("CUMPCOS")=cosc

cosc=Session("CUMPCOS")

III. REZULTATE EXPERIMENTALE

Pe parcursul crearii aplicației s-a folosit pe post de editor Microsoft Frontpage 2000. Bazele de date au fost create cu Microsoft Access 2000. Pentru vizualizare s-a apelat la browser-ul Internet Explorer 5.0. Imaginile preluate au fost capturate cu utilitarul PhotoStyler.Proiectul a fost realizat sub platforma Windows 2000 Professional.

În continuare se vor prezenta rezultatele obținute in urma rulării aplicației. Se vor parcurge pe rând etapele exemplului pentru realizarea unei imagini mai bune per ansamblu.

Aplicația se lansează printr-o comandă specifică: http://host/index.asp

unde host are valoarea IP-ului serverului pe care este stocată pagina sau numele serverului respectiv dacă calculatorul client este legat in rețea cu serverul gazdă.

Va apare pagina principală a firmei virtuale Raidomi. fig 3.1

Fig. 3.1 Pagina principală Raidomi – index.asp

Deasupra logo-ului firmei utilizatorul are acces la meniul principal care îi oferă o serie intreagă de opțiuni grupate pe rubrici :

Rubrica Opțiuni posibile

Despre noi Scurt istoric Unde ne gasiti? Parteneri Oferta noastra

Structura paginii Prezentare Ce veti gasi? Recomandarii Pe viitor…

Utilizatori Inscrie-te! Intra in cont

Contact Sugestii… Echipa noastra

O captură a meniului cu toate opțiunile (forțată) este evidențiată în fig. 3.2

Fig. 3.2 Meniul principal Raidomi (applet) – meniu2.htm

Opțiunea Scurt istoric oferă câteva informații despre activitatea firmei precum si noutățile pe care le aduce cu sine noul site www.raidomi.ro. fig. 3.3

Fig. 3.3 Scurt istoric Raidomi – istoric.asp

Opțiunea Unde ne gasiti? specifică amplasamentul sediului, magazinului si service-ului Raidomi. fig. 3.4

Fig. 3.4 Unde ne gasiti? – negasiti.asp

Opțiunea Parteneri specifică numele unor parteneri cu care firma Raidomi duce tratative. Sunt ilustrate pozele firmelor de renume mondial producătoare de componente. fig. 3.5

Fig. 3.5 Parteneri – parteneri.asp

Opțiunea Oferta noastra ofera posibilitatea efectuarii de download pe calculatorul client al ofertei de componente in format .xls (fisier Excel) .Această ofertă de prețuri este aplicabilă clientilor noi care nu au un cont creat si este arhivată in format zip. Totodată există posibilitatea crearii unui nou cont sau intrarea in cont (valabilă doar pentru membrii) fig. 3.6

Fig. 3.6 Of erta noastră – ouroferta.asp

Opțiunea Prezentare oferă informații despre clientela căreia i se adresează site-ul. fig. 3.7

Fig. 3.7 Prezentare – prezentare.asp

Opțiunea Ce veti gasi? specifică multiplele avantaje oferite de firma Raidomi. fig. 3.8

Fig. 3.8 Ce veți găsi? – cevetigasi.asp

Î fucție de alegerea făcută se vor accesa fișierele .asp corespunzătoare:

a) Posibilitatea de a deveni mebru -> cvgsign.asp fig. 3.9

Fig. 3.9 Posibilitatea de a deveni membru – cvgsign.asp

b) Oferte avantajoase personalizate -> cvgoferte.asp fig. 3.10

Fig. 3.10 Oferte avantajoase personalizate – cvgoferte.asp

c) Posibilitatea de testare a sistemului -> cvgtest.asp fig. 3.11

Fig. 3.11 Posibilitatea de testare a sistemului – cvgtest.asp

d) Concursuri cu premii substanțiale -> cvgconc.asp fig. 3.12

Fig. 3.12 Concursuri cu premii substanțiale -> cvgconc.asp

Opțiunea Recomandări indică setările ideale ale clientului pentru vizualizarea in condiții optime a paginii firmei Raidomi. fig. 3.13

Fig. 3.13 Recomandări -> sugestii.asp

Opțiunea Pe viitor … ilustrează serviciile pe care firma Raidomi încearcă sa le ofere într-un viitor apropiat. fig. 3.14

Fig. 3.14 Pe viitor -> peviitor.asp

Opțiunea Sugestii ….oferă posibilitatea utilizatorilor sa-și exprime părerea asupra site-ului, aceștia putând trimite părerile proprii redacției pentru eventualele îmbunătățiri fig. 3.15

Fig. 3.15 Sugestii -> sugestii.asp

Opțiunea Echipa noastra permite contactul cu membrii firmei fig. 3.16

Dând click pe poză se poate trimite un mail destinat informaticianului, contabilei sau chiar patronului Raidomi.

Fig. 3.16 Echipa noastră -> echipa.asp

Am lăsat la final rubrica Utilizatori deoarece prin intermediul ei se avansează în aplicație. Este rezervată celor care vor să-si creeze un cont real in cadrul firmei Raidomi. Se poate alege opțiunea Inscrie-te! sau Intra in cont.

Dacă se selectează opțiunea Inscrie-te! atunci utilizatorul este rugat să-si introducă datele proprii: numele, prenumele, sexul, vârsta, nr. de telefon, adresa, ocupația, numele contului precum si parola dorită. Aceasta va trebui repetată pentru siguranța tastării corecte, caracterele fiind mascate. Procesul poate fi întrerupt prin selectarea link-ului Anuleaza.

Dacă s-au introdus întamplător date eronate, există posibilitatea ștergerii conținutului tuturor rubricilor prin selectarea butonului Sterge. După completarea întregului formular, prin acționarea butonului Adauga se trece la crearea contului. fig. 3.17

Există posibilitatea introducerii unui nume de cont deja existent fig. 3.18, a unui cont nul fig. 3.19, a unei parole nule fig. 3.20, a două parole diferite fig. 3.21 sau a necompletării întregului formular fig. 3.22. In aceste cazuri vor apărea in dreapta mesajele de atenționare specifice erorilor apărute, astfel utilizatorul având posibilitatea să-si corecteze greseala.

Dacă toate rubricile au fost introduse corect se creeaza noul cont cu datele noi specificate.

Astfel, in frame-ul din dreapta va apărea așa-numita “carte de vizită” a noului mebru Raidomi

Fig. 3.17 Inscrie-te! -> signup.asp

Erorile posibile : Fig. 3.18 – 3.22

Fig. 3.18 Eroare datorată existenței contului -> contexistent.asp

Fig. 3.19 Eroare datorată neintroducerii unui nume de cont ->numecontlipsa.asp

Fig. 3.20 Eroare datorată neintroducerii parolei -> parolalipsa.asp

Fig. 3.21 Eroare datorată introducerii a două parole diferite -> paroladif.asp

Fig. 3.22 Eroare datorată necompletarii întregului formular -> datelipsa.asp

Dacă utilizatorul are deja creat un cont, va putea selecta opțiunea Intra in cont.

Acesta va specifica numele contului precum si parola adecvată. Intrarea in cont va avea loc in momentul apăsării butonului Login. fig. 3.23

Fig. 3.23 Intrarea in cont valabilă membrilor -> memblog.asp

Eroarea care poate apărea constă în introducerea unui nume de cont inexistent sau a parolei greșite. Utilizatorul va fi atenționat în acest caz cu un nou mesaj. fig. 3.24

Fig. 3.24 Eroare datorată inexisțentei contului sau parolei introduse greșit -> logfail.asp

Dacă contul există și parola este corectă procesul de login-izare se incheie. Datele clientului vor fi accesate si trimise sub forma unei “carți de vizită” unde, pe lângă datele proprii mai apar și informații despre calculatorul clientului (IP, nume calculator) precum si suma investită de clientul respectiv in produsele firmei Raidomi. fig. 3.25

Fig. 3.25 Contul personal al utilizatorului -> cont.asp

În cazul în care utilizatorul dorește să-și schimbe datele personale (schimbare de nume, ocupație, vârstă, număr telefon sau adresă) se poate selecta opțiunea Modificare date personale. Vor apărea in frame-ul principal datele personale ale utilizatorului existente în baza de date. Ele pot fi schimbate după plac. fig. 3.26

Fig. 3.26 Modificarea datelor personale -> membupd.asp

Dacă se dorește schimbarea parolei, este necesară introducerea vechii parole precum și a noii parole (de 2 ori pentru confirmare). Pentru toate greșelile posibile utilizatorul este atenționat

Erorile posibile : fig. 3.27 – 3.29

Fig. 3.27 Eroare datorată introducerii greșite a vechii parole -> parolvdif.asp

Fig. 3.28 Eroare datorată introducerii a 2 parole diferite -> paroladif.asp

Fig. 3.29 Eroare datorată introducerii unei vârste neplauzibile -> varstagres.asp

Dacă se selectează opțiunea Oferta dvs. în frame-ul principal va apărea un mesaj de întampinare care solicită alegerea metodei de cumpărare: pe componente sau un sistem întreg.

fig. 3.30

Fig. 3.30 Ecran de întâmpinare și de selecție a metodei de cumpărare -> oferta.asp

Real, oferta.asp este alcătuit din 2 frame-uri detcomp.asp (sus) si compintro.asp (jos).

În momentul selecției metodei de cumpărare, în frame-ul de jos se încarcă comp.asp, adică

lista de prețuri a componentelor aflate pe stoc. Acest acces este condiționat de un parametru

care are ca valoare in funcție de opțiunea aleasă valorile codcomp sau codsis. Astfel se va ști ce metodă s-a selectat.

A fost necesar acest artificiu pentru ca fiecare utilizator să aibă nu numai o ofertă proprie de prețuri în funcție de suma investită în firma Raidomi dar și o ofertă diferită în sistem față de cea pe componente (bineînțeles mai bună).

Oferta de componente este organizatăin următorul fel: componentele sunt listate pe categorii

una dupa alta iar pe coloane sunt dispuse informațiile adecvate fiecăreia: tipul componentei, firma producătoare, modelul, câteva caracteristici sumare mai importante, prețul normal, prețul personalizat valabil clientului precum și opțiunea de cumpărare tip coș. fig. 3.31

Fig. 3.31 Of erta selectată (componente sau în sistem) -> comp.asp

Dacă se doresc informații suplimentare despre vreo componentă precum și poza acesteia pentru eventualele lamuriri in privința alegerii se poate da click pe oricare din componente in cadrul rubricii Modelul (componentei).

Exemple sunt ilustrate în următoarele 2 figuri pentru o placă de bază ASUS A7V133 sau un procesor DURON 700Mhz fig. 3.32 – 3.33

Fig. 3.32 Date suplimentare pentru placa de bază ASUS A7V133 -> detcomp.asp

Fig. 3.33 Date suplimentare pentru procesorul DURON 700MHz -> detcomp.asp

Clientul își poate astfel selecta orice tipuri de componente in cantităățile dorite.In fig. 3.34 este ilustrat modul în care apare această listă de cumpărături.

Fig. 3.34 Lista de cumpărături pentru cumpărare pe componente -> codcomp.asp

Dacă s-a ales cumpărarea unui sistem întreg, utilizatorul iși va configura calculatorul dorit in câțiva pași care baleiază tipurile de componente ce constituiesc un sistem de calcul. Anumite componente trebuiesc neaparat selectate (gen placa de bază procesor, hardisk, placa video) fig. 3.35 iar peste altele se poate “sări” (gen kit multimedia, tastatură etc) fig. 3.36

În acest exemplu s-a renunțat la unitatea DVD prin selectarea opțiunii Nu doresc componenta.

De asemenea se poate renunța la intreg procesul prin selectarea opțiunii Anuleaza tot.

Fig. 3.35 Evidențierea pașilor pt. achiziția unui sistem întreg-> codsis.asp

Fig. 3.36 Renunțarea la unele din componente este posibilă -> codsis.asp

În momentul în care s-au selectat componentele dorite ce vor alcătui sistemul, clientul are posibilitatea de a testa calculatorul (un test tip benchmark) pentru a decide daca sistemul de calcul ales va corespunde cerințelor sale (performantă raportatĂ la preț). Se va da click pe opțiunea Testeazaă sistemul. pentru aflarea rezultatelor. fig. 3.37

Fig. 3.37 Odată ales sistemul există posibilitatea testării sale -> codsis.asp

Dacă s-a ales testarea sistemului se va lansa in execuție fisierul test.asp . Acesta conține o serie largă de variabile care sunt transferate din fișierul anterior codsis.asp pentru posibilitatea determinării performanței noului calculator.

O serie de condiții trebuiesc puse pentru o diagnosticare cat mai corectă : aflarea bus-ului general de funcționare (influențat de placa de baza, memorie, procesor), a factorului de multiplicare , determinarea dispozitivelor primare si secundare master respectiv slave.

Toate acestea pentru o “captură” cat mai reală a bios-ului.

Urmează apoi secțiunea rezervată performanței calculatorului, dispusa pe 3 domenii posibile de folosință a acestuia: jocuri, multimedia si programare. În cadrul fiecăruia depind doar anumite componente intr-o măsura variabilă. Pe baza unor formule matematice riguroase se calculează astfel un coeficient care ar indica

“ Cât de pregătit este calculatorul cel nou raportat la respectivul domeniu …”

Ca și etalon de comparație au fost alese alte 3 sisteme echipate în mod diferit.

Toate acestea sunt ilustrate in fig. 3.38

Fig. 3.38 Secțiunea rezervată testării sistemului ales pe diferite domenii -> test.asp

În ipoteza în care utilizatorul este mulțumit de noul sistem îl poate comanda cu ajutorul opțiunii Comandă acum. Astfel, în background va fi transmis un mail de inștiințare către firma Raidomi conținând datele cumpărătorului precum si configurația sistemului și automat

persoana care se ocupă de asamblarea sistemelor va fii avertizată printr-un SMS despre acest fapt. Toate acestea pentru rapiditatea recepției comenzii si onorarii acesteia într-un timp minim.

Dacă se alege opțiunea Inscrie-te! sau Intra in cont într-un moment în care utilizatorul este deja login-izat într-un anumit cont va apărea un mesaj precum cel ilustrat in fig. 3.39

Daca se alege optiunea NU se revine la starea anterioară. În caz contrar (se alege DA) se reincarca pagina de debut index.asp si astfel este initializată o noua sesiune.

Fig. 3.39 Evidențierea conceptului de sesiune curentă -> logout.asp

Cu excepția secțiunii de înscriere în cazul unui nou membru, de fiecare dată s-a folosit metoda de acces la o bază de date respectiv citire.

Pentru a demonstra si facilitatea de scriere într-o bază de date dar si pentru completarea aplicației într-un domeniu util si indispensabil – gestiunea financiară – s-a realizat si secțiunea rezervată Contabilului respectiv a Patronului.

Dacă în cadrul procesului de identificare se specifică user Contabil și se introduce parola adecvată se lansează o nouă aplicație independentă. Aici apar toate componentele dar și informații rezervate strict companiei gen prețul de achiziție al fiecărei componente, stocul existent precum si profitul zilei respective. Totodată sunt listate si conturile existente împreună cu sumele investite de membrii pentru eventualele modificări ulterioare.

“Contabilul” se va putea ocupa de gestiunea stocului respectiv de profiturile revenite prin vânzarea componentelor. Orice vânzare efectuată diminueaza stocul dar si sporește suma investită de un membru in companie ceea ce atrage dupa sine o altă ofertă de prețuri valabilă acestuia. Fig. 3.40 ilustrează cele spuse mai sus. Datele se prelucrează prin selectarea opțiunii Adauga.

Fig. 3.40 Secțiunea rezervată Contabilului -> bilant.asp

În cazul în care au fost cumpărate anumite componente, vor fi trecute valorile cu care s-au vândut acestea precum si numărul bucaților comercializate. fig. 3.41

Fig. 3.41 Modificarea stocului pentru aflarea profitului -> bilant.asp

Exemplu:

Există pe stoc 8 plăci de bază ASUS A7V133 si 10 procesoare DURON 750MHz. Acestea au fost achiziționate cu 138$ respectiv 51$ bucata.Dacă s-au vândut 2 plăci de bază și 4 procesoare de acest tip, cu prețurile de 180$ respectiv 60$ bucata membrilor ilustrați în

fig. 3.42 va rezulta un nou stoc în care plăcile de bază ASUS A7V133 sunt in număr de 6 iar procesoarele DURON 750Mhz tot in număr de 6. Profitul rezultat din aceste vânzări va fi de

(180-138)x2+(60-51)*4 120$. fig. 3.43 – 3.44 .Dacă se aplică un refresh paginii bilant.asp se poate evidenția noul stoc fig. 3.45

Fig. 3.42 Aducerea la zi a sumelor investite de clienti-> bilant.asp

Fig. 3.43 Evidențierea profitului detaliat pe componente -> vizbilant.asp

Fig. 3.44 Profitul total si noile sume investite de membrii -> vizbilant.asp

Fig. 3.45 Noul stoc în urma vânzărilor efectuate -> bilant.asp

Imaginile anterioare surprinse in fig. 3.42 – 3.45 sunt cuprinse in cadrul aplicației într-un singur frame si fișier vizbilant.asp.

Ceea ce va apărea în ansamblu în cadrul browser-ului este chiar fig. 3.46

Fig. 3.46 Imagine de ansamblu a tuturor modificărilor efectuate -> vizbilant.asp

Ultima secțiune rezervată Patronului oferă doar un aspect (poate singurul care întradevăr contează privind lucrurile din această perspectiva) : profitul realizat pe ziua respectiva in $.

Pentru mai multe vănzari efectuate in aceeasi zi, profitul total crește iar la o nouă accesare este indicată noua valoare a acestuia. În momentul în care ceasul server-ului realizează trecerea la o nouă zi, automat profitul inregistrat prin vânzarea unor noi componente va figura în cadrul noii dâti.

O vedere ilustrativă în acest sens o constituie fig. 3.47

Fig. 3.47 Secțiunea rezervată Patronului pentru vizualizarea profitului-> patroni.asp

IV. CONCLUZII

ASP este întradevăr un instrument puternic specializat în domeniul paginilor web.

Oferă în primul rând un acces securizat (ușor controlabil) precum și metode dinamice de

Setare a variabilelor sau obiectelor definite.

4.1 Avantaje ASP

Editare, schimbare sau adăugare dinamică a conținutului unei pagini web.

Răspunde formularelor utilizatorului sau datelor introduse prin formurile HTML.

Accesează orice date sau baze de date și returnează rezultatul browser-ului.

Personalizează orice pagină web pentru a o face mult mai utilă pentru fiecare utilizator

Simplitate și viteză față de CGI sau Perl.

Oferă o securitate mare deoarece codul ASP nu poate fi văzut de browser.

Deoarece fișierele ASP sunt returnate sub formă HTML, pot fi vizualizate în orice browser

O programare ASP inteligentă poate minimiza traficul în rețea.

Dezavantaje ASP

Poate fi doar pe sisteme de operare Microsoft. (Windows NT Server, Windows 2000

Server etc).Totuși au început să apară și variante precum ChiliASP și InstantASP care nu necesită astfel de sisteme de operare.

Scripturile interpretează instrucțiuni bazate pe VbasicScript și JavaScript care nu

oferă un pachet atât de puternic precum întreg limbajul Java ce poate fi folosit în cazul tehnologiei concurente JSP (care va fi prezentată în comparație pe aceeași aplicație de Domokos Joszef).

4.3 Comentarii

Pe perioada realizării proiectului au intervenit următoarele probleme:

prima aplicație de test a fost realizată cu o serie de instrucțiuni care au fost

recunoscute de interpretorul VBasic de sub Windows 98. Datorită unor referiri menționate

pe Internet asupra noilor instrucțiuni ASP disponibile sub IIS în cadrul sistemului de operare Windows 2000 autorul a adaptat toate sursele într-o nouă formă care sub Windows 98 nu mai este recunoscută în totalitate (ex. Instrucțiunile Response.Redirect și Server.Transfer)

lipsa documentației în acest domeniu a forțat realizarea întregii aplicații doar cu

ajutorul informațiilor găsite pe Internet.

datorită problemelor menționate mai sus, autorul evaluează întreaga lucrare ca fiind

realizată la un nivel mediu. Totuși aplicația înglobează aproximativ 90% din toate artificiile găsite pe Internet în cadrul ASP-ului.

ca o estimare finală a complexității raportată la anumite porțiuni de program, autorul

ține să amintească câteva observații:

– pentru un control al traficului optim în ideea unui număr mare de utilizatori care accesează în același timp site-ul respectiv, întregul program ar trebui adaptat unor sesiuni de tip Cookie care ar păstra astfel informațiile tuturor conexiunilor efectuate precum și ID-ul utilizatorilor.

deoarece programul reprezintă o aplicație de nivel mijlociu, nu s-a justificat creerea unui

număr mare de obiecte sau clase care ar putea fi incluse doar. Însă în cadrul unei aplicații mari, acest lucru ar fi primordial.

secțiunea rezervată Contabulului sau Patronului a fost introdusă în ideea unei imagini de

ansamblu mai bune asupra posibilităților oferite de o astfel de aplicație. Bineînțeles, o mini-contabilitate ar implica mult mai multe lucruri de care trebuie să se țină cont, însă totul este realizabil și nu cu multe greutăți…

deoarece nu a constituit obiectul lucrării în cauză partea de securitate, aplicație conține

doar câteva elemente de siguranță care în schimb combinate cu setările din Serverul IIS pot oferi un minim de protecție. Totuși, dacă secțiunea de cumpărături ar fi aplicabilă prin intermediul unor cărți de credit în sistemul buy-online atunci s-ar cuveni câteva elemente în plus de protecție.

BIBLIOGRAFIE

De pe Internet …

http://www.askasp.com/display_message.asp?mid=911

http://asp101.aspin.com/

http://www.15seconds.com/

http://www.4guysfromrolla.com/webtech/faq/faqtoc.shtml

http://www.elementkjournals.com/asp/9905/asp9951.htm

http://serverobjects.com/comp/Asppop3.htm

http://pcquest.ciol.com/content/linux/299110114.asp

http://tech.irt.org/articles/script.htm

http://localhost/iisHelp/iis/misc/default.asp

http://www.p2p.wrox.com/asp/

http://www.persits.com/

http://www.simplythebest.net/info/asp.html

http://www.surf-net.co.uk/asp/default.asp

http://msdn.microsoft.com/WORKSHOP/SERVER/ASP/ACTIVE.ASP

http://www.w3schools.com/asp/asp_examples.asp

http://www.hotscripts.com/ASP/Web_Sites/

……. și multe alte site-uri…

Similar Posts

  • Modalitati de Utilizare a Internetului In Afaceri

    Capitolul 1 Introducere. Daca in anul 1888 primul catalog de vânzare a produselor a reprezentat un factor de noutate si o provocare majora pentru afaceri, creând modificări in modalitatea de vânzare a produselor, in prezent comerțul electronic este factorul care revoluționează modul de gândire al oamenilor de afaceri de pe întreg globul. Motorul care propulsează…

  • Implementarea Unei Teme In WordPress

    ϹUΡRІΝЅ ІNΤRΟDUCЕRЕ CАΡІΤΟLUL І. ΡRЕΖЕNΤАRЕА ЕNΤІΤĂȚІІ ЕCΟNΟΜІCЕ 1.1. Аsреctе gеnеrɑlе 1.2. Rоlul șі роzіțіɑ unіtățіі în еcоnоmіе 1.3. Rоlul șі роzіțіɑ unіtățіі în cоntехtul cоlɑbоrărіі іntеrnɑțіоnɑlе 1.4. Dоmеnіі dе ɑctіvіtɑtе ɑnɑlіzɑtе 1.4.1. Dеsfɑcеrеɑ șі rоlul fіrmеі în crеștеrеɑ еfіcіеnțеі еcоnоmіcе 1.4.2. Οrgɑnіzɑrеɑ іntеrnă ɑ subsіstеmuluі dе dеsfɑcеrе 1.4.3. Rеlɑțііlе іntеrnе ɑlе ɑctіvіtățіі dе dеsfɑcеrе ɑ…

  • Aplicatie Pentru Constructia DE Harti Digitale

    CUPRINS CAPITOLUL I INTRODUCERE Conceptul de hartă digitală …………………………………………………………………………..4 1.1. Definiții ……………………………………………………………………………………………..10 1.2. Reprezentare GIS. Repere istorice …………………………………………………………11 1.3. Structura proiectului …………………………………………………………………………….13 CAPITOLUL II FUNDAMENTE TEORETICE Ecuatia dreptei…………………… ……………………………………………………15 2.2. Formule de transformare a coordonatelor 3D în 2D ………………………………………15 2.3. Primitive grafice 3D…………………………………………………………………………………..19 2.4. Grafică 3D ……………………………………………………………………………………………….22 2.4.1. Spațiul tridimensional …………………………………………………………………………….22 2.4.2. Primitive grafice 3D…

  • Localizarea Si Monitorizarea Unui Autovehicul Folosind Api

    Localizarea și monitorizarea unui autovehicul folosind API Cuprins Introducere Capitolul 1. Prezentarea limbajului Java și Google Maps 1.1 Caracteristici JAVA 1.2 Platforme 1.3 Un limbaj compilat și interpretat 1.4 Structura limbajului 1.5 Platforma Google Maps 1.6 Curtis Wong, principal researcher, Microsoft Researcher 1.7 Tipuri de hartă și coordonatele hărților Capitolul 2. Android 2.1 Istoric și…

  • Capitolul I: Afișul – document de bibliotecă

    Contents Introducere Capitolul I: Afișul – document de bibliotecă Definirea afișului și a foii volante Repere privitoare la istoria afișului în spațiul românesc De la începuturi până în perioada interbelică Perioada regimului comunist 1990 – prezent Colecționari și colecții Imaginea colecțiilor de afișe în bibliotecile din România. Realități și perspective Capitolul II: Mihai Eminescu și…

  • Configurarea Obiectelor din Active Directory Folosind Php

    Lucrare de licențǎ Configurarea obiectelor din Active Directory folosind PHP Cuprins Introducere Serviciul de directoare Active Directory Lightweight Directory Access Protocol 2. Fundamente Teoretice 2.1 Construirea unei baze de date 2.2 Construirea unei ierarhii 2.3 Obiecte în Active Directory 2.4 Introducere in DNS 2.5 Construirea structurii Active Directory 2.6 Administrarea serviciilor Active Directory 2.7 Gestionarea…