Pagina Web Interactiva Utilizand Php Si Mysql

Cuprins

INTRODUCERE

Proiectul cu TEMA: „Realizarea unei pagini web interactive la firma PC-SHOP SRL utilizând PHP și MySQL” a fost realizată în urma analizei asupra sistemului de activitate a S.C. PC-SHOP S.R.L care are nevoie de o pagina pentru comenzi online.

Fără îndoială, Internetul are în prezent un impact extraordinar asupra lumii afacerilor. Aceasta se datorează avantajelor evidente pe care le prezintă atât comercianților, cât și cumpărătorilor, în comparație cu mijloacele tradiționale de desfășurare a activităților comerciale.

Comerțul electronic se referă la desfășurarea activităților specifice mediului de afaceri (tranzacții) într-un sistem automatizat integrat pentru schimbul de informații utilizând mijloace electronice (rețele de calculatoare).

În comerțul electronic informația circulă între agenții implicați în afacere (vânzător, cumpărător, bancă, transportator, agent de service), fără a utiliza suportul de hârtie (imprimantă sau fax).

Prin costurile reduse pe care le implică deschiderea unui magazin virtual, firmele mici se confruntă cu o barieră mai puțin în calea intrării pe piețele dominate până acum de firme mari. Mai mult, o firmă mică, prin flexibilitatea și deschiderea la nou de care poate da dovadă, se bucură de un mare avantaj față de o firmă mare, dominată de birocrație și conservatorism.

Spre deosebire de angajații obișnuiți, care au nevoie de salarii, un program de lucru, concediu, a căror productivitate variază și sunt subiectivi, un web site oferă informații despre firmă și produsele sale sau preia și procesează comenzi 24 de ore din 24, 7 zile din 7, cu costuri minime. Aceasta mai aduce un avantaj și in cazul extinderii pe piețele externe, când diferența de fus orar ar fi putut îngreuna contactele dintre firme. De asemenea, îmbunătățește comunicarea cu clienții, care nu mai sunt obligați să respecte un anume program, putând obține informații sau lansa comenzi oricând doresc.

Costurile de funcționare pot fi reduse drastic prin automatizarea procesului de comandă. De asemenea există posibilitatea automatizării complete printr-o integrare cu sistemul de gestiune, ceea ce poate duce la o creștere a productivității generale a firmei.

Spre deosebire de o ființă umană, calculatorul poate reține nu numai numele și datele personale ale tuturor clienților, dar și preferințele acestora, fiind capabil să adapteze oferta și modul de prezentare al produselor după profilul fiecărui client. Studiul clienților pe Internet poate fi realizat fără ca aceștia să-și dea măcar seama, fiind disponibile informații ca: localizarea, tipul browserului și al sistemului de operare, site-ul de unde vine, obiceiuri de navigare. Din aceasta cauza, mulți văd acest lucru ca pe o încălcare a intimității persoanei.

Deși, prin comparație cu deschiderea unui magazin obișnuit, costurile lansării unui magazin virtual sunt mult mai reduse, de multe ori nu pot fi totuși evaluate corect. O firmă care nu are implementat deja un sistem informatic de gestiune, sau ai cărei angajați nu au cunoștințe tehnice minime, se poate confrunta cu creșterea costului de lansare peste așteptări, datorate necesității achiziționării de sisteme sau de training pentru angajați. Cu toate acestea, numărul magazinelor virtuale autohtone este în continuă creștere, sumele tranzacționate crescând și ele.

Acest proiect prezintă realizarea unui site web ce va avea rolul unui magazin virtual, punând în valoare avantajele comerțului electronic amintite anterior. În plus, utilizarea site-ului nu va presupune nici un fel de cunoștiințe tehnice din partea utilizatorului, acesta putând fi utilizat cu ușurință atât de utilizatorii experimentați cât și de cei începători.

Cap. 1. Studiul, analiza și prezentarea sistemului actual

S.C. PC-SHOP S.R.L. s-a infintat in luna martie, anul 2003 cu obiectivul principal axat pe vanzarile de componente software si hardware pe Internet pe plan national.S.C. PC-SHOP S.R.L. este înregistrată la Oficiul Registrului Comerțului sub nr.40/7032/04.11.2003 și este plătitoare de TVA. Sediul social al firmei, precum și depozitul sunt localizate in București, Bld. Camil Ressu nr.12, sector 3. Societatea detine un punct de lucru la adresa: Bld. Magheru nr.3, sector 1, Bucuresti .

Societatea a pornit in anul 2003 de la ideea de a promova alt tip de comert decat cel clasic, intr-un mediu propice afacerilor, in plina dezvoltare precum este Internetul.

Datorita raspandirii continue a accesului la Internet catre utilizatorii deopotriva casnici si corporatii, societatea a continuat sa imbunatateasca accesibilitatea in cadrul site-ului pentru a facilita o comunicare cat mai eficienta cu potentialii clienti.Aceasta strategie de conlucrare eficienta cu clientii continua sa modeleze si felul cum S.C. PC-SHOP S.R.L se dezvolta ca organizare interna.

Rolul și poziția agenției in sistemul economico-social național și in ramura de activitate

Obiectul de activitate al societății este : “Comerț cu amănuntul prin corespondență” Cod C.A.E.N. – 5621;

Aceasta clasa include:

– vânzarile cu amanuntul ale oricaror feluri de produse, prin corespondenta,

alese de cumparatori pe baza de cataloage sau orice alt tip de oferta.

– vânzarile directe, prin intermediul televiziunii, radioului, telefonic, sau prin

Internet.

S.C. PC-SHOP S.R.L comercializeaza o gama diversificata componente electronice si IT si executa anumite servicii cu referire stricta la domeniul IT.

1.1.2. Obiectivele urmarite de catre societatea PC-SHOP prin intermediul ferestrei catre piata online si anume site-ul www.pc-shop.ro sunt doua:

maximizarea profitului in conditiile sustinerii unei strategii de pret echitabila fata de clienti

sustinerea de campanii publicitare prin intermediul inregistrarii la un motor de cautare (e.g.Google) si bannere publicitare pe alte site-uri de profil ale partenerilor de afaceri

De asemeni societatea PC-SHOP colaboreaza cu diverse societati si companii dezvoltatoare de software si firme de distributie pe plan national in domeniul subansamblelor si aplicatiilor software destinate echipamentelor de calcul precum: Caro Group, UltraPro, IT-Direct,Ubisoft, Gameloft.

Studiul și analiza sistemului existent al S.C PC-SHOP SRL

Comerțul electronic se referă la desfășurarea activităților specifice mediului de afaceri (tranzacții) într-un sistem automatizat integrat pentru schimbul de informații utilizând mijloace electronice (rețele de calculatoare).O definiție posibilă a Comerțului Electronic ar fi : “orice formă de tranzacții în afaceri în cadrul căreia părțile interacționează electronic în loc de realizarea de schimburi fizice sau contact fizic direct.”

În comerțul electronic informația circulă între agenții implicați în afacere (vânzător, cumpărător, bancă,

transportator, agent de service), fără a utiliza suportul de hârtie (imprimantă sau fax).

Conceptul de distributie nu trebuie confundat cu miscarea produselor, in timp ce miscare produselor are in vedere deplasarea fizica a produselor de la productie la consum , conceptul de distributie are in vedere un proces mai larg , care incepe in momentul in care produsul este gata pentru a fi lansat pe piata si se sfarseste odata cu consumarea actului de vanzare la consumaturul final . In acest interval de timp si spatiu au loc o serie de activitati economice , cum ar fi : livrarea produselor, transportul acestora , depozitarea si conservare lor , stocarea , vanzarea cu ridicata si cu amanuntul ; mobilizarea resurselor materiale , financiare si umane necesare realizarii procesului respectiv; stabilirea modalitatilor de transfer a titlului de proprietate si asigurarea practica a acestor titluri .

Toate acestea au drept satisfacerea corespunzatoare a nevoilor consumatorilor si , prin acesta , cresterea cifrei de afaceri , generatoare de profit , a fiecarei firme implicate in tranzactiile comerciale .

Prin politica de distribuție trebuie să se asigure livrarea produselor către clienți în urmatoarele condiții , care de altfel , sunt și componente ale calității:

produsele trebuie să ajungă la clienți în stare bună

în cantitatea comandată

la locul stabilit

la timpul stabilit

1.2.1 Prezentarea activității de desfacere la S.C. PC-SHOP S.R.L.

Activitatea de desfacere în cadrul firmei S.C PC-SHOP S.R.L. se desfășoară pe două ramuri:

Desfacere en-gros

Desfacere en-detail

Desfacerea en-gros este realizată cu ajutorul unei echipe de angajati ai firmei cu contract de colaborare pe o perioada determinata , care are ca scop:

asigurarea cererii, din punct de vedere cantitativ, calitativ și

structural

Desfacea en-gros a produselor comandate in urma achitarii acestora la destinatia finala din București.

Desfacerea en-detail este realizată prin intermediul magazinului on-line al firmei.

Managementul desfacerii produselor cuprinde activitățile prin care se asigură vânzarea produselor, implicând stabilirea formelor de distributie repezentate de ridicarea produselor de la sediul firmei sau livrearea lor la client si prin desfacerea produselor se încheie ciclul economic al firmei.

În componența managementului desfacerii produselor se cuprind următoarele activități specifice:

Efectuarea unor studii de piață pentru a cunoaște mărimea cererii de produse sau de servicii, respectiv poziția pe piață a concurenților.

Asigurarea unui portofoliu de comenzi primite de la consumatori și încheierea contractelor de livrare cu aceștia.

Elaborarea planului de desfacere al firmei și a programelor operative de livrări.

Crearea unor rețele proprii de desfacere a produselor pe piața internă, acestea având avantajul că permit o cunoaștere directă a reacției consumatorilor și în consecință măresc flexibilitatea firmei.

Organizarea unor rețele proprii de service a produselor, prin aceasta urmărindu-se mărirea satisfacției consumatorilor, respectiv fidelizarea lor.

Stabilirea nivelului optim al stocurilor de produse, în concordanță cu clauzele contractelor economice încheiate cu beneficiarii produselor..

Formarea loturilor de livrare potrivit clauzelor fiecărui contract de livrare.

Organizarea activității operative de livrare a produselor finite către beneficiari.

Urmărirea continuă a nivelului stocului de produse aflat în depozit pentru a preîntâmpina situațiile de insuficiență a produselor, care ar afecta ritmicitatea livrărilor la beneficiari.

1.2.2.Activitatea societatii S.C. PC-SHOP S.R.L

Societatea comercializeaza urmatoarele produse si ofera servicii:

Componente hardware: procesoare, placi de baza, subsisteme multimedia (audio/video), memorii (flash si non-volatile), dispozitive de stocare optice si magnetice, dispozitive de afisare : proiectoare ,display-uri (CRT si TFT), dispozitive periferice de control, componente pentru achizitionarea semnalului video si audio (tuner tv, placi captura), carcase si surse de alimentare.

Componente software: sisteme de operare (Microsoft Windows, Linux, BeOS, Solaris), pachete profesionale de editare text (Microsoft Office, Quark eXpress, Adobe Pagemaker), pachete profesionale pentru editarea multimedia si mediu web (Pinnacle Studio Pro 10, Sonic Foundry Vegas, Macromedia Flash), software antivirus (Kaspersky, Bitdefender, McAfee, Nod32), software destinat entertainment-ului

Consumabile: cartuse si tonere destinate imprimantelor, hartie imprimanta, cabluri si conectori

Birotica: imprimante, faxuri, medii de stocare optica sau magnetica (CD, DVD, DVD-RAM, FloppyDisk etc.)

Service post garantie si transport in regim de urgenta.

1.2.3 Studiul sistemului de conducere S.C. PC-SHOP S.R.L

Figura.1 Organigrama S.C. PC-SHOP S.R.L.

Director general

ATRIBUȚII ȘI OBLIGAȚII:

Evaluează și aprobã împreunã cu echipa managerială a departamentelor planuri de dezvoltare și retehnologizare pentru anul următor, analizează și evaluează noi oportunități de marketing adresate pieței formate din clienții și partenerii firmei, definesteplanurile de dezvoltare și capacitățile de adaptare a departamentelor la noile cerințe și nevoi ale pieței cu ținta clientela actuala și potențială.

Face parte din echipa managerialã

Aprobã sau respinge unele mãsuri, în funcție de necesitățile societății și informațiile provenite din cadrul departamentelor, încheie cu alte firme contracte de colaborare și alte documente oficiale la nivelul societății comerciale

Se ocupã cu raportările și analiza economicã a societății

Încheie cu alte firme contracte de colaborare, contracte de servicii, contracte de sponsorizări și alte documente oficiale la nivelul societății comerciale

Cerinte de competenta profesionala:

Studii superioare de lunga durata in domeniu

Experienta profesionala minim 5 ani (3 ani in domeniu)

Coordonarea departamentelor : tehnic, economic si vanzari

Atributiile postului :

analizeaza cerintele clientului si stabileste factorii implicati in procesul de analiza

negociaza si aproba conditiile generale de contractare

analizeaza si aproba modificarile aduse ulterior contractului incheiat

decide ce activitatii fac obiectul subcontractarii

Program de lucru – 8 ore

Manager Vanzari:

ATRIBUTII SI OBLIGATII:

analizeaza realizarile serviciului de proiectare cu privire la produse noi

raporteaza directorului general situatia vanzarilor, realizarile serviciului de proiectare si evolutia sistemului informatic

coordoneaza în mod direct serviciul informatic

– primeste rapoarte zilnice cu privire la evolutia pietei

intocmeste rapoarte zilnice despre evolutia vanzarilor si realizarile tuturor compartimentelor pe baza constatarilor si a rapoartelor pe care le primeste de la departamentele aflate în subordine

1.2.4. Alcatuirea sistemului informational condus din cadrul S.C. PC-SHOP S.R.L

– Departamentul Financiar-Contabil

– Departament Vanzari

– Departament Aprovizionare/Transport

Departamentul Financiar-Contabil

Serviciul Financiar

ATRIBUTII SI OBLIGATII:

intocmeste registru de casa zilnic pentru operatiile de plati si incasarile în numerar

raporteaza directorului economic situatia financiara

pe baza fisei de pontaj lunare primita de la departamentul resurse umane intocmeste statele de plata

urmareste buna incasare a obligatiilor de plata de la clienti si planifica si onoreaza obligatiile fata de furnizor

inregistreaza în evidenta contabila extrasele de cont ridicate zilnic de la banca unde sunt evidentiate incasari si plati cu ajutorul mijloacelor de plata electronice

Serviciul contabil:

ATRIBUTII SI OBLIGATII:

urmaresc si inregistreaza incasarile de la clienti

intocmeste lunar rapoarte de activitate

intocmeste balanta de verificare si date cu privire la situatia economico-financiara

inregistreaza în contabilitate amortizarile mijloacelor fixe, uzura obiectelor de inventar

asigura inregistrarea corecta si cronologica a tuturor achizitiilor produse

raporteaza directorului economic situatia contabila

analizeaza zilnic bugetul de venituri si cheltuieli

Departamentul de vanzari este condus de un manager de vanzari care se ocupa de activitatea de desfacere a firmei.

ATRIBUTII SI OBLIGATII:

prelucrarea comenzilor primite de la clienti

centralizeaza comenzile pe fiecare client în parte în fisa clientului

solicita directorului de marketing aprobare pentru acordarea de termene de plata flexibile în functie de particularitatile fiecarui client

totalizeaza comenzile la fiecare sfarsit de zi operand scaderea din stocuri a fiecarui produs

raporteaza directorului de marketing evolutia clientilor

Departamentul de aprovizionare are ca angajati soferii care se ocupa cu aprovizionarea de la furnizori si ditribuirea propriu-zisa a produselor la beneficiari.

ATRIBUTII SI OBLIGATII:

achizitioneaza produsele în functie de comenzile primite de la managerul de vanzari

achizitioneaza produse destinate vanzarii în functie de comenzile primite de la departamentul de vanzari

analizeaza preturile oferite de diversi furnizori

negociaza cu furnizorii termenele de plata

emit documente de plata la achizitiile de produse, document inregistrat intr-un registru special si transmis zilnic serviciului financiar – contabil pentru a fi incluse în bugetul de venituri si cheltuieli

raporteaza directorului de productie evolutia preturilor pentru materiile prime si analizeaza calitatea materiilor prime ce urmeaza a fi achizitionate

– sa nu paraseasca programul de lucru fara aprobare

– sa completeze corect foile de parcurs , si sa le predea la termenul stabilit

– raspunde pentru pagubele produse societatii sau tertilor din vina sa

– sa cunoasca legea privind circulatia pe drumurile publice

– indeplineste orice alta sarcina ce ii este incredintata de catre superiorii sai

1.3 Analiza sistemului informational decizional al agentului economic

1.3.1 Principalelor fluxuri informationale și proceduri de prelucrare

Descrierea documentelor necesare:

Comanda

listă a produselor cerute unui furnizor, în care se specifică produsul, unitatea de măsură, cantitatea, prețul de achiziție, valoarea fără TVA și data solicitată pentru livrare

Registru de evidenta comenzi

document de evidenta a comenzilor în care se specifica un numar curent, numele clientului, data la care s-a facut comanda si valoarea produselor comandate.

Fisa client

document anexat la registru de evidenta comenzi în care se specifica numarul comenzii, data si valoarea comenzii.

Registru de predare-primire comenzi

document folosit de agentii de vanzari la primirea comenzilor în care se specifica numele clientului, numarul comenzii, numele si prenumele agentului care a preluat comanda si semnatura de primire a acestuia.

Fisa depozit

document de gestiune a produselor din stoc, în care se specifică date despre produs (intrări, ieșiri, stoc) și tipul și numărul documentelor pe baza cărora s-au făcut operațiile

Factura

document fiscal întocmit în trei exemplare (pentru cumpărător, înregistrare în contabilitate, arhivare) la vânzarea sau cumpărarea unor produse

este reprezentata in prima faza prin antetul firmei cu data despre adresa , nr de telefon si mail , codul unic de inregistrare, capitalul social , cont IBAN, banca ; in cea de-a doua numarul facturii si avizului de insotire a marfii si data emiterii, fiind urmata de o a treia cu date despre cumparator. In continuare se desriu: denumirea produselor , unitatea de masura, cantitatea si valoarea fara TVA si TVA-ul , semnatura furnizorului in stanga, la mijloc vom avea date privind expeditia si semnatura de primire , iar in dreapta acestuia avem totalul de plata si semnatura de primire .

Aviz de insotire a marfii

document de gestiune ce însoțește produsul și marchează schimbarea gestiunii și în care se specifică date despre produse, unitatea de măsură, cantitatea livrată, prețul unitar și valoarea produsului

Analiza contractului

activități sistematice efectuate înainte de semnarea contractului pentru a se asigura că sunt definite în mod corespunzător, fără ambiguități, condițiile referitoare la realizarea și calitatea produsului și că acestea sunt documentate și pot fi îndeplinite.

Contract

document cu caracter juridic încheiat între S.C. PC-SHOP S.R.L și client cu privire la comercializarea de produse sau prestarea unor activități.

Fluxul Documentelor

Contractul de Munca:

CONTRACT INDIVIDUAL DE MUNCĂ

încheiat și înregistrat sub nr. ..…/…….. în registrul general de evidență a salariaților*)

A. Părțile contractului

Angajator Persoana juridică/fizică ………………………………………….., cu sediul/domiciliul…………………………….. ………….……………………………, înregistrată la registrul comerțului /autoritățile administrației publice din

…………………, sub numărul……………., cod fiscal…………….., telefon ……………….., reprezentată legal

prin ………………………., în calitate de …………………………..……,

și salariatul/salariata–Dl/Dna…………………………………….,domiciliat(ă) în localitatea ………………………….., str.

…………………….. nr. ………., județul ………………………, posesor al actului de identitate BI /CI / Pașaport seria ……….., nr…..……………., eliberat/eliberată de …………………………………… la data de ………………, CNP

………………………………….., /permis de munca seria …… nr. …………… din data………………

am încheiat prezentul contract individual de muncă în următoarele condiții asupra cărora am convenit:

B. Obiectul contractului …………………………………………………………………..

C. Durata contractului:

a) nedeterminată, salariatul/salariata ………………………………………….. urmând să înceapă activitatea la data de ……………..;

b) determinată, de …………..luni, pe perioada cuprinsă între data de ……………….. și data de ………………../pe perioada suspendării contractului individual de muncă al titularului de post;

D. Locul de muncă

1. Activitatea se desfășoară la ……………………………………….………………………………………….

2. În lipsa unui loc de muncă fix salariatul va desfășura activitatea astfel ………………………………….

E. Felul muncii

Funcția/meseria ……………………………………………………. conform Clasificării Ocupațiilor din România;

F. Atribuțiile postului

Atribuțiilepostului sunt prevăzute în fișa postului, anexă la contractul individual de muncă*).

G. Condiții de muncă:

1. Activitatea se desfășoară în conformitate cu prevederile Legii nr. 31/1991

2. Activitatea prestată se desfășoară în condiții normale /deosebite/speciale de muncă potrivit Legii nr. 19/2000 privind sistemul public de pensii și alte drepturi de asigurări sociale, cu modificările și completările ulterioare

H. Durata muncii:

1. O normă întreagă, durata timpului de lucru fiind de ………. ore/zi ……….. ore/săptămână

a) Repartizarea programului de lucru se face după cum urmează ……………………. (ore zi/ore noapte / inegal);

b) Programul de lucru se poate modifica în condițiile regulamentului intern/contractului colectiv de muncă aplicabil.

2. O fracțiune de normă de …… ore/zi (cel puțin 2 ore/zi), ……….. ….ore / săptămână;

a) Repartizarea programului de lucru se face după cum urmează …………………….(ore zi/ore noapte);

b) Programul de lucru se poate modifica în condițiile regulamentului intern/contractului colectiv de muncă aplicabil

c) Nu se vor efectua ore suplimentare,cu excepția cazurilor de forță majoră sau pentru alte lucrări urgente destinate prevenirii producerii unor accidente sau înlăturării consecințelor acestora.

I. Concediul

Durata concediului anual de odihnă este de ……………………………. zile lucrătoare, în raport cu durata muncii ( normă întreagă, fracțiune de normă).

De asemenea, beneficiază de un concediu suplimentar de ………………………

J. Salariul:

1. Salariul de bază lunar brut …………………………………… lei.

2. Alte elemente constitutive :

a) sporuri ……………………….………………;

b) indemnizații …………………………..…;

c) alte adaosuri…………………….;

3. Orele suplimentare prestate în afara programului normal de lucru sau în zilele în care nu se lucrează ori în zilele de sărbători legale se compensează cu ore libere plătite sau se plătesc cu un spor la salariu, conform contractului colectiv de muncă aplicabil sau Legii nr. 53/2003Codul muncii.

4. Data/datele la care se plătește salariul este/sunt ……………………. .;

K. Drepturi și obligații ale părților privind sănătatea și securitatea în muncă:

a) echipament individual de protecție …………………………………;

b) echipament individual de lucru ………………………………………;

c) materiale igienicosanitare………………………………;

d) alimentație de protecție ……………………………….…;

e) alte drepturi și obligații privind sănătatea și securitatea în muncă …………………………………………..

………………………………………………………………………………………………………………………;

L. Alte clauze:

a) perioada de proba este de ………………………………………………………;

b) perioada de preaviz, în cazul concedierii, este de ………………………zile lucrătoare, conform Legii nr. 53/2003Codul

Muncii sau contractului colectiv de muncă;

c) perioada de preaviz în cazul demisiei este de ……zile calendaristice, conform Legii nr. 53/2003 Codul

Muncii sau contractului colectiv de muncă;

d) în cazul în care salariatul urmează să își desfășoare activitatea în străinătate, informațiile prevăzute de art. 18 alin. (1) din Legea nr. 53/2003 Codul Muncii se vor regăsi și în contractul individual de muncă;

e) alte clauze;

M. Drepturi și obligații generale ale părților:

1. Salariatul are, în principal, următoarele drepturi:

a) dreptul la salarizare pentru munca depusă;

b) dreptul la repaus zilnic și săptămânal;

c) dreptul la concediu de odihnă anual;

d) dreptul la egalitate de șanse și de tratament;

e) dreptul la securitate și sănătate în muncă;

f) dreptul la formare profesională, în condițiile actelor adiționale;

2. Salariatului îi revin, în principal, următoarele obligații:

a) obligația de a realiza norma de muncă sau, după caz, de a îndeplini atribuțiile ce îi revin conform fișei postului;

b) obligația de a respecta disciplina muncii;

c) obligația de fidelitate față de angajator în executarea atribuțiilor de serviciu;

d) obligația de a respecta măsurile de securitate și sănătate a muncii în unitate;

e) obligația de a respecta secretul de serviciu.

3. Angajatorul are, în principal, următoarele drepturi:

a) să dea dispoziții cu caracter obligatoriu pentru salariat, sub rezerva legalității lor;

b) să exercite controlul asupra modului de îndeplinire a sarcinilor de serviciu;

c) să constate săvârșirea abaterilor disciplinare și să aplice sancțiunile corespunzătoare, potrivit legii, contractului colectiv de muncă aplicabil și regulamentului intern.

4. Angajatorului în revin, în principal, următoarele obligații:

a) să acorde salariatului toate drepturile ce decurg din contractele individuale de muncă, din contractul colectiv de muncă aplicabil și din lege;

b) să asigure permanent condițiile tehnice și organizatorice avute în vedere la elaborarea normelor de muncă și condițiile corespunzătoare de muncă;

c) să informeze salariatul asupra condițiilor de muncă și asupra elementelor care privesc desfășurarea relațiilor de muncă;

d) să elibereze, la cerere, toate documentele care atestă calitatea de salariat a solicitantului;

e) să asigure confidențialitatea datelor cu caracter personal a acestuia;

N. Dispoziții finale

Prevederile prezentului contract individual de muncă se completează cu dispozițiile Legii nr. 53/2003 Codul

Muncii și ale contractului colectiv de muncă aplicabil încheiat la nivelul angajatorului/ grup de angajatori /ramură /național, înregistrat sub nr. ………………./……………… la D.G.M.S.S a județului/municipiului

…………………/M.M.S.S.

Orice modificare privind clauzele contractuale în timpul executării contractului individual de muncă impune încheierea unui act adițional la contract, conform dispozițiilor legale.

Prezentul contract s-a încheiat în ____ exemplare, câte unul pentru fiecare parte.

O. Conflictele în legătură cu încheierea, executarea, modificarea, suspendarea sau încetarea prezentului contract individual de muncă sunt soluționate de către instanța judecătorească competentă material și teritorial, potrivit legii.

Angajator,

……………………………..

Reprezentant legal,

………………………………

Salariat,

………………………..

Pe data de ………………………………….. prezentul contract încetează in temeiul art. …………….. din

Legea nr. 53/2003Codul Muncii, în urma îndeplinirii procedurii legale .

Angajator, ……………………

Registru de evidenta comenzi:

Model Factura:

S.C. PC-SHOP SRL FACTURA

Bld. Camil Ressu Nr. 12

Sector 3

Bucuresti

VAT: RO 1126032

e-mail: [anonimizat]

Tel/Fax: 031/8030555 Factura #1

Mobil: 0722 280900 Data:12.12.2012

Cumparator:

S.C. ANTEL SRL

Alba Iulia 505700 Alba

Str. Eroilor Nr. 14

Tel:

Fax:

e-mail:

Model Factura

Banca: BCR – Sucursala Dristor

IBAN: RO32RNCB0060009269810001

Aviz de insotire a marfii:

Figura .12 Aviz de Insotire a Marfi – S.C. PC-SHOP S.R.L.

1.3.3. Dotare tehnica

Societatea detine 11 computere folosite in cadrul fiecarui departament. Acestea au urmatoarea configuratie:

Model Procesor: Intel Dual-Core 1460;

Capacitate memorie (MB): 1024 DDR 2 667 MHz;

Placa video: nVidia GeForce 8600GT 256 mb;

Capacitate HDD: 160 GB;

Viteza de rotatie (rpm): 7200;

SO: Windows XP.

Monitor : Samsung 17(inch) LCD

Imprimanta: EPSON matriciala

Analiza critica si directii de perfectionare a sistemului actual

Analiza Critica:

In momentul actual S.C PC-SHOP SRL nu detine o pagina web unde sa aiba expuse produsele pentru vanzare , deaceea se doreste implentarea unei aplicatii web pentru listarea produselor dar si pentru a facilita comanda lor online in mod rapid .

Directii de perfectionare:

Pentru ca afacerea sa fie de succes, trebuie ca ea sa fie cunoscuta. Prin accesarea internetului, vizitatorul are acces mai rapid la date , informatii doar prin apasarea unui click.

Am ales acest mod de prezentare deoarece in zilele noastre internetul este la baza oricarei afaceri, el oferind o gama variata de informatie.

Acest site va avea un rol foarte important in politica de dezvoltare a societatii , in primul rand pe site vor fi prezentate toate produsele distribuite de S.C PC-SHOP SRL , dar si posibilitatea de comanda online intr-un mod foarte rapid si usor.

Trimiterea de newslettere, oferte promotionale, cu alte cuvinte interacțiunea cu vizitatorul poate crește rata vizitării site-ului, și implicit cresterea vanzarilor.

Cap. 2. Proiectarea de ansamblu a sistemului informatic

Definirea obiectivelor

Obiectivele sistemului informatic au fost stabilite în urma unor investigații complexe a stării și comportării sistemului economic efectuate împreună cu cadrele de conducere de la toate nivelurile ierarhice ale unității.

Principalele obiective ce trebuie urmărite în dezvoltarea aplicației sunt:

posibilitatea vizitatorilor site-ului companiei de a efectua comenzi online;

monitorizarea în timp real a comenzilor efectuate;

generarea unor rapoarte referitoare la numărul și valoarea comenzilor efectuate într-o perioadă de timp;

posibilitatea afișării unor prețuri diferite în funcție de discountul acordat unui client;

ușurința în folosire a aplicației;

flexibilitatea aplicației pentru a asigura o implementare rapidă a unor noi funcții;

implementarea într-un interval de timp redus.

Estimarea necesarului de resurse

Resurse umane

Pentru realizarea acestui site este nevoie de 1 programator, 1 designer, 1 administrator linux, 2 operatori pentru introducerea datelor, care să se asigure că la sfârșitul termenului de realizare a site-ului acesta poate fi pus on-line, deși pentru o perioadă de probă este de dorit de a merge cu ambele sisteme în paralel.

Resurse financiare

Pentru realizarea acestui site se estimează o suma de 3150 EURO, ce includ:

costul serverului;

instalarea și buna funcționare a sistemului de operare ce va susține site-ul;

costul propriu-zis al site-ului.

Toate prețurile sunt exprimate fără TVA. Se va calcula prețul in RON lacursul BNR din ziua facturării.

2.3 Modelarea prelucrărilor

Orice abordare a sistemului informațional trebuie să se concentreze în principal asupra fluxului de date și asupra secvenței de prelucrări care se efectuează asupra acestor date, în scopul fundamentării deciziilor pentru factorii de conducere, prin oferirea de informații corecte și în timp util.

Modelarea logică a prelucrărilor își propune să repartizeze activitățile pe posturi de lucru și să proiecteze tipul de prelucrări.

În cadrul modelului prelucrărilor fiecare operație se descompune în faze de lucru, iar

o succesiune de faze aparținând aceluiași proces va forma o procedură.

2.4 Diagrama Entitate – Asociere

Acest model de proiectare a unei baze de date este folosit în momentul de concepere generală a unei baze de date. Etapele proiectării :

analiza de sistem — se scot în evidență componentele principale ale sistemului, se clasifică și se pun în evidență relațiile dintre aceste componente.

proiectarea logică a bazei de date în modelul entitate-asociere. Se subliniază mulțimile și asocierile.

Obiectivele acestui pas sunt următoarele:

determinarea datelor ce trebuiesc stocate în contextul aplicației.

descrierea informațiilor necesare despre obiectele respective și legăturile între diversele clase de obiecte.

determinarea tipurilor de prelucrări care se vor executa asupra bazei de date.

2.5 Stabilirea platformei hardware și software și de comunicații

Principala caracteristică a noului sistem propus este faptul că nu necesită resurse hardware deosebite. Fiind proiectat ca un sistem client / server, singurul calculator care necesită dotări deosebite este serverul.

Calculatoarele client au nevoie decât de un browser instalat și o conexiune la server fie prin internet fie prin rețeaua locală.

Deși aplicația poate rula și pe un server foarte puțin competitiv din punct de vedere al vitezei de procesare, pentru un timp de acces cât mai mic și pentru a putea susține nu număr mare de vizitatori conectați simultan se recomandă folosirea unui server cu următoarea configurație hardware:

Procesor: Intel Celeron 2 / Pentium 4, 2 Ghz;

Memorie RAM: minim 1024 MB;

Capacitate Hard Disk: minim 60 GB;

Placă rețea: 10/100 Mbps;

Placă video cu o memorie de cel putin 2 MB.

Platforma software necesară pentru server este următoarea:

Sistemul de operare de tip UNIX/LINUX;

Limbajul de programare PHP;

Serverul MySQL;

Serverul Apache;

Serverul BIND (Berkeley Internet Name Domain).

Platforma software necesară pentru calculatoarele client este urmatoarea:

Sistemul de operare Microsoft Windows 98/2000/XP/Vista;

Browserul pentru internet Mozilla Firefox sau Internet Explorer cu suport JavaScript.

2.6 Componente soft utilizate pentru realizarea aplicației

PHP și MySQL

PHP – MySQL constituie una dintre cele mai bune soluții pentru site-urile web ce folosesc baze de date. Un raport neoficial arată că în perioada iunie 1998 – martie 1999 numărul calculatoarelor gazdă ce foloseau PHP a crescut de la 7500 la 410000.

MySQL este un server de baze de date, mic, compact, ideal pentru aplicațiile mici – și nu numai. Ca o completare a suportului standard SQL, MySQL este compatibil cu un număr mare de platforme, deținând abilități multifir pentru server UNIX, rezultând astfel performanțe ridicate. MySQL poate rula și pe sisteme non-Unix, pe sistemele de tip Windows NT rulând ca un serviciu, în timp ce pe cele Windows 9x rulează ca un proces normal.

PHP este un limbaj de script pe partea de server. Asemeni scripturilor ASP, scripturile PHP sunt procesate de către un server web. După ce serverul interpretează codul PHP, returnează rezultatul către browser sub formă de cod HTML.

Ca o completare a caracterului liber (deși MySQL are totuși unele restricții privind licența), combinația PHP – MySQL este de asemenea independentă de, ceea ce înseamnă că aplicații dezvoltate pentru sisteme Windows vor rula la fel de bine pe sisteme Unix. De asemenea, PHP poate fi rulat ca un proces CGI extern, ca un interpretor independent de scripturi sau ca un modul al serverului web Apache.

PHP suportă, de asemenea, un număr mare de tipuri de baze de date, inclusiv Informix, Oracle, Sybase, Solid, și PostgreSQL – cât și ODBC.

PHP suportă o mulțime de facilități, în concordanță cu dezvoltarea tehnologică a internet-ului. Acestea includ mecanisme de autentificare, XML, crearea dinamică de imagini, suportul pentru partajarea memoriei, crearea dinamică de documente PDF fiind doar câteva dintre acestea. Trebuie menționat de asemenea că la PHP pot fi ușor adăugate module suplimentare, oricine putând realiza și adăuga propriile sale soluții.

2.6.1 PHP Hypertext Preprocessor

Fig 2.2 PHP – Web

PHP (PHP: Hypertext Prepocessor), cunoscut în versiunile mai vechi și sub numele de PHP/FI (Personal Homepage/Form Interpreter), a fost gândit inițial a fi o simplă aplicație CGI pentru interpretarea formularelor definite prin HTML și procesate de un program scris într-un limbaj Perl, script shell, executat pe server. În cazul interfeței CGI era necesară permisiunea de a rula programe pe server, ceea ce ducea la lacune în securitate și în plus la disocierea de documentul HTML a programului care procesa datele.

PHP reprezintă un pachet puternic care oferă un limbaj de programare accesibil din cadrul fișierelor HTML, limbaj asemănător cu Perl sau C, plus suport pentru manipularea bazelor de date într-un dialect SQL (dBase, Informix, MySQL, mSQL, Oracle, PostgreSQL, Solid, Sybase, ODBC etc.) și acces la sisteme hipermedia precum Hyperwave. De asemeni, PHP suportă încărcarea fișierelor de pe calculatorul client: upload și oferă suport pentru cookies (mecanism de stocare a datelor în navigatorul client pentru identificarea utilizatorilor, propus de Netscape).

Istoria PHP-ului începe la sfârșitul anului 1994, când Rasmus Lerdorf dezvoltă prima versiune, ca proiect personal. PHP-ul este făcut public la începutul anului 1995 sub denumirea de Personal Home Page Tools, fiind considerat un analizor simplist care interpreta câteva macrouri ce puteau fi incluse în cadrul documentelor HTML, permițând contorizarea accesului la paginile Web sau accesarea unei cărți de oaspeți (guestbook). Analizorul a fost rescris la mijlocul aceluiași an și denumit PHP/FI 2.0, unde FI era o alta aplicație scrisă de Rasmus Lerdorf, un interpretor de formulare HTML. A fost adăugat și suportul pentru bazele de date mSQL și astfel PHP/FI a început să aibă succes, fiind disponibil gratuit pe Web.

Programatorii Zeev Suraski și Andi Gutmans rescriu analizorul PHP și noua aplicație formează nucleul versiunii PHP 3.0 care include o parte din vechile surse PHP/FI 2.0. Relativ recent, la începutul anului 2000, a fost făcută publică versiunea PHP 4.0, utilizând puternicul motor de scriptare Zend și oferind suport nu numai pentru serverul Apache ci și pentru alte servere Web. De asemeni, PHP 4.0 oferă posibilitatea accesării documentelor XML via DOM.

Se estimează că numărul site-urilor care folosesc în prezent PHP este de peste un milion. Deja, pe Web, exista o multitudine de aplicații și utilitare concepute în PHP, care se regăsesc grupate și în așa-numitul PEAR (PHP Extension and Add-on Repository).

Ce este PHP?

PHP este o unealtă care permite crearea de pagini web în mod dinamic. Paginile web care conțin cod PHP sunt tratate exact ca o pagină HTML obișnuită, putând fi create și editate asemeni acesteia.

PHP este un limbaj de script care funcționează alături de un server Web.

<html>

<head>

<title>Exemplu</title>

</head>

<body>

<?php

echo("Exemplu de script PHP");

?>

</body>

</html>

Este de notat diferența față de alte limbaje script CGI scrise în limbaje precum Perl sau C: în loc de a scrie un program cu o multitudine de linii de comanda afișate în final într-o pagină HTML, se scrie o pagină HTML cu codul inclus pentru a realiza o acțiune precisă (în cazul nostru se va afișa un text).

Codul PHP este inclus între tag-urile speciale de început și de sfârșit care permit utilizatorului să treacă din "modul HTML" în "modul PHP".

Față de alte limbaje script, precum Javascript, la PHP codul se execută pe server. Dacă pe serverul Web se află un script similar celui anterior, clientul nu va primi decât rezultatul execuției scriptului, fără a avea nici o posibilitate de acces la codul care a produs rezultatul. Poate fi configurat serverul de Web să prelucreze (analizeze) toate fișierele HTML ca fișiere PHP. Astfel nu există nici un mijloc de a distinge paginile care sunt produse dinamic de paginile statice.

Limbajul PHP are de asemenea suport pentru diverse servicii server utilizând protocoale precum IMAP, SNMP, NNTP, POP3 și HTTP.

2.6.2 MySQL My Structured Query Language

Fig 2.3 MySQL – Server – PHP – Web

MySQL este cel mai popular suport de baze de date SQL, Open Source, fiind conceput și dezvoltat de MySQL AB, o companie ce furnizează servicii pentru bazele de date MySQL.

MySQL este un sistem de gestionare a bazelor de date.

O bază de date este o colecție structurată de date. Pentru a accesa, adăuga sau prelucra datele stocate într-o bază de date este necesar un sistem de gestiune a bazelor de date, cum este MySQL Server. Deoarece calculatoarele nu au probleme în privința volumului mare de date, sistemul de gestiune joacă un rol central în prelucrarea lor, atât ca parte a altor aplicații, cât și ca aplicație de sine stătătoare.

MySQL este un sistem relațional de gestionare a bazelor de date.

O bază de date relațională nu stochează informațiile într-o singură tabelă, ci în mai multe tabele separate. Aceasta duce la o flexibilitate și o viteză sporită. Tabelele sunt legate între ele prin relații definite, făcând posibilă astfel combinarea datelor din mai multe tabele, la cerere.

MySQL este Open Source.

Open Source înseamnă că oricine are posibilitatea de a folosi MySQL sau de a-l modifica. Codul sursă poate fi deci studiat și modificat în funcție de necesitățile proprii.

De ce serverul de baze de date MySQL?

Serverul MySQL a fost inițial creat pentru lucrul cu baze de date mari, fiind mult mai rapid decât soluțiile existente. Și-a demonstrat calitățile în practică, fiind folosit cu succes ani la rând în medii cu cerințe deosebite. Dezvoltarea constantă a MySQL a făcut ca azi acesta să poată oferi un set de funcții bogat și util. Conectivitatea, viteza și securitatea fac din MySQL Server cea mai potrivită soluție pentru accesarea bazelor de date pe Internet.

Tipuri de tabele MySQL

Începând cu MySQL versiunea 3.23.6 se poate alege între trei formate de tabele de bază (ISAM, HEAP și MyISAM). Versiunile mai noi suportă și alte tipuri de tabele, ca InnoDB sau BDB.

La crearea unei tabele trebuie specificat tipul acesteia. MySQL va crea întotdeauna un fișier cu extensia „frm” pentru a păstra structura tabelei. Indecșii și datele vor fi stocate în alte fișiere, în funcție de tipul tabelei.

Dacă nu se specifică tipul tabelei, va fi creată o tabelă de tipul MyISAM. De asemenea, același tip de tabelă va fi creat în cazul în care tipul specificat nu a aparținut sistemului MySQL. Aceasta reprezintă un avantaj în cazul în care se copiază tabele de la o versiune de MySQL la alta, diferită.

O tabelă poate fi convertită de la un tip la altul cu ajutorul instrucțiunii ALTER TABLE. MySQL suportă două categorii de tabele: tabele securizate (InnoDB și BDB) și nesecurizate (HEAP, ISAM, MERGE și MyISAM).

2.7 Normalizarea bazei de date

Normalizarea este formalizarea procesului de proiectare pentru realizarea unei baze de date care să fie în concordanță cu conceptul de formă normală. Se adresează diferitelor feluri în care căutăm valorile duplicat în baza de date. Există mai multe nivele ale formei normale, fiecare dintre ele necesită ca cel precedent să fie satisfăcut.

Procesul de normalizare se bazează pe colectarea exhaustivă a unei liste de elemente care să fie menținute în baza de date. Teoretic este posibil, deși nu este foarte practic, să plasăm toate atributele într-o singură tabelă. Pentru cele mai bune rezultate se începe cu o dezasamblare a bazei de date.

Prima formă normală. Se reduc entitățile la prima formă normală prin eliminarea atributelor repetitive și a celor cu valori multiple către entități copil. Trebuie îndeplinite următoarele condiții:

• înregistrările din coloane sunt de o singură valoare

• înregistrările din coloane sunt de același tip

• fiecare înregistrare este unică

• ordinea coloanelor este nesemnificativă

• ordinea înregistrărilor este nesemnificativă

• fiecare coloană are un nume unic

A doua formă normală. Se reduce prima formă normală la cea de-a doua formă normală prin eliminarea atributelor care nu depind în mod direct de întreaga cheie primară. Scopul acestei forme normale este acela de a asigura că fiecare coloană este definită în tabela care trebuie. Folosirea unor nume mai formale s-ar putea să clarifice această declarație. Trebuie să se asigure că fiecare atribut se ține în entitatea pe care o descrie.

A treia formă normală. Se reduc entitățile celei de-a doua forme normale la cea de-a treia formă normală prin eliminarea atributelor care depind de altele, atribute ne-cheie. În principiu aceasta înseamnă că nu trebuie stocate date care pot fi derivate din alte coloane sau care aparțin altei tabele.

2.8 Calendarul de realizare

realizare design + configurare server: 7 zile;

realizarea structurii conceptuale a bazei de date: 3 zile;

programarea site-ului și implementarea designului: 25 zile;

testarea site-ului și aducerea lui la un conținut cât mai apropiat cu cel ce rulează: 7 zile;

În concluzie, termenul aproximativ de predare a lucrării este de 40 de zile lucrătoare și va fi respectat dacă nu intervin alte dispoziții din partea clientului și dacă informațiile necesare pentru o bună desfășurare a proiectului sunt difuzate la timp.

Cap. 3: Proiectarea și programarea în PHP a magazinului virtual

Aplicatia proiectata are ca obiectiv promovarea și comanda on-line de produse IT. Fiecare vânzare va fi precedată de o comandă, care va trebui confirmată pentru ca livrarea să aibă loc. Confirmarea se va face telefonic dar si prin e-mail, astfel că serverul pe care magazinul va fi instalat va trebui să fie capabil să trimită și să recepționeze e-mail-uri.

3.1 Proiectarea de ansamblu

Proiectarea de ansamblu a sistemului informatic și succesiunea activitatilor din cadrul proiectarilor este urmatoarae:

definirea obiectivelor

locul aplicației in sistem

definirea ieșirilor

definirea intrărilor

Obiectivele sistemului

Proiectarea sistemului trebuie să răspundă de urmatoarele cerinte:

Flexibilitate;

Fiabilitate;

Ușurința în folosire;

Implementarea cât mai rapidă;

Cost redus;

Eficiența redusă.

Proiectarea sistemului varealiză:

Proiectarea sistemului integrat al cererilor și ofertelor de munca;

Proiectarea paginilor web care va avea la bază informații despre procesul activitrăților;

Reproiectarea unei părți a sistemului existent;

Sistemul de inregistrarea cererilor și ofertelor de munca trebuie sș realizeze urmatoarere informații:

Asigură securitatea și confidențialitatea datelor;

Stocarea datelor;

Transmiterea datelor;.

Proiectarea bazei de date trebuie să aibă urmatoarele cerinte tehnice:

Să fie în formă normala 3;

Să raspunda restricțiilor de:

Unicitate a cheii;

Integritate a domeniului;

Integritate a relației;

Integritate de referință;

3.2 Model relațional al bazei de date.

Modelul relațional este un model logig al bazei de date care sa impus datorită naturaleții sale și simplității în înțelegerea și manipularea structurilor de date. Rrezentarea unei baze de date sub formă de relații se numește model relațional al bazei de date.

O relație este formată dintr-un tabel bidimensional în care coloanele corespund atributelor iar fiecare linie corespunde unei entități.

Fiecare relație se identifică printr-un nume unic în cadrul unei baze de date.

Fiecare atribut are un nume unic și trebuie să sugereze semnificația acestuia.

O linie a relației se numește tuplu al relației .Prin relație materializăm o clasă de entități în care fiecare tuplu reprezintă o entitate.

3.3 Schema Conceptuala a bazei de date

Fig. 3.1 – Schema BD

3.4 Structura bazei de date

Baza de date folosită este cea aparținând serverului MySQL și conține 5 tabele: ss_categories, ss_ordered_carts, ss_orders, ss_products, ss_special_offers.

Fig. 3.2 – tabele bazei de date

Tabela ss_categories este de tip InnoDB și are următoarele câmpuri:

Fig. 3.3 – Tabela Categorii

categoryID – cheia primară a tabelei

name – nume categorie

description – descriere

picture – fotografie

Tabela ss_ordered_carts este de tip InnoDB și are următoarele câmpuri:

Fig. 3.4 – Tabela – ordered carts

productID – id produs – cheie primara

orderID – id comanda

name – nume produs

price – pret

quantity – cantitate

Tabela ss_orders este de tip InnoDB și are următoarele câmpuri:

Fig. 3.5 – Tabela 0rders

orderID – id vanzare – cheie primara

order_time – data efectuari comenzi

cust_firstname – nume client

cust_lastname – prenume client

cust_email – email client

cust_country – tara de resedinta a clientului

cust_zip – codul postal

cust_address – adresa

cust_phone – nr. telefon

Tabela ss_special_offers este de tip InnoDB și are următoarele câmpuri:

Fig. 3.6 – Tabela Oferte speciale

offerID – oferta ID – cheie primara

product ID – produsID

sort_order – sortare

Tabela ss_products este de tip InnoDB și are următoarele câmpuri:

Fig. 3.7 – Tabela produse

productID – ID produs – cheie primada

categoryID – ID categorie

name – nume produs

description – descriere largita

customers_rating – rezultatul votului

price – pret

picture – poza

in stock – in stoc da/nu

thumbnail – poza mica

customer_votes – voturile clientilor

big_picture – poza mare

brief_description – descriere scurta

list_price – listare pret

product_code – codul produsului

3.5 Definirea documentelor de ieșire

Prin ieșirile unui subsistem informatic se va înțelege totalitatea informațiilor furnizate de acesta beneficiarilor interni și externi, respectiv rapoarte, note de informare-rapoatre, etc.

Definirea ieșirilor fiecărui subsistem informatic, presupune, în primul rând, stabilirea la nivel global, a informațiilor necesare conducerilor de pe diferite trepte ierarhice ale sistemului, specificând pentru fiecare în parte: aspectele programatice (legate de utilitate) și aspectele semantice (legate de conținut).

La nivel global, se vor prezentă toate caracteristicile ieșirilor sistemului proiectat, cum ar fi de exemplu: periodicitatea, numărul de exemplare, destinația fiecărui exemplar și tipul de exemplar.

Din panoul de administrator se pot prelua datele necesare pentru procesarea comenzii și anume:

Date Contact: Nume / Preume / Email / Telefon / Adresă / Oraș / Cod Poștal

Produse: Denumire Produs / Nr Produse Comandate

Total: Costul Produselor

3.6 Definirea documentelor de intrare

Prin ”intrările” sistemului vom înțelege totalitatea datelor care reflectă starea și dinamica fenomenelor și proceselor economice din domeniul analizat, care sunt necesare creării, actualizării bazei de date și obținerii situațiilor de ”ieșire”.

Pentru proiectarea videoformatelor de intrare, există două moduri de desfășurare a dialogului operator-calculator și anume:

întrebare-răspuns cu defilarea liniilor ecranului

afișarea machetei de introducere a datelor de intrare

Trimite Comanda

Imediat după ce utilizatorul a adăugat în coșul de cumpărături produsele dorite urmează completarea formularului de trimitere a comenzii . Pentru a putea trimite comanda utilizatorul trebuie să completeze următoarele câmpuri:

”Nume” – Numele Utilizatorului

”Prenume” – Prenumele Utilizatorului

”Email” – Adresa E-mail

”Telefon” – Număr de Telefon

”Adresă” – Adresa unde vor fi livrate produsele comandate

”Oraș” – Orașul unde vor fi livrate produsele

”Judet” – Judetul unde vor fi livrate produsele

”Cod Poștal” – Codul Orașului

”Tara” – Tara unde vor fi livrare produsele

Odată câmpurile completate se apasă butonul trimite , iar comanda va fi trimisă către un administrator.

Adaugă Categorie

Pentru adăugarea unei noi categorii de produse este necesară completarea a 4 câmpuri:

”Parinte” – Categorie Principală / Subcategorie dacă este selectată o categorie existentă.

”Nume Categorie” – Numele Categoriei

”Logo” – Poza aferenta pentru aceasta categorie

”Descriere” – Descrierea sumara a categoriei adaugate

Dupa completarea acestor campuri se apasa butonul „Salveaza”

Adaugă Produs

Adăugarea unui nou produs în baza de date de către administrator se face completând un formular .

” Categorie” – Categoria unde apare produsul

” Denumire” – Nume produs

” Preț” – Prețul produsului

” Preț Nou” – Dacă se va completa câmpul Preț Nou – Produsul respectiv urmează să apară în categoria de PROMOȚII.

” Poza” – Upload fotografie produs

” În Stoc” – Da/Nu – Produsul se află sau nu în stoc.

” Descriere” – Descrierea produsului respectiv

Dupa completarea acestor campuri se apasa butonul „Salveaza”

Setari Generale

Configurare

” Nume Site” – Setare nume site.

” Url” – Adresa site (ex: www.pc-shop.ro).

” Admin Email” – Setare adresa e-mail administrator.

” Verificare Email” – Verificare e-mail.

Moneda

” Simbol Moneda” – Setare simbol moneda (ex: RON , $ , €)

” Moneda Curenta” – Setare Moneda

” Monede Acceptate” – Lista monede acceptate (ex: RON , USD , EURO)

Parola Admin – Schimbare Parola

” User” – Editare user administrator.

” Parola Veche” – Parola Veche

” Parola Noua” – Adaugare Parola Noua

” Confirmare Parola Noua” – Verificare Parola Noua

Pagini Site – Editare Pagini

” Pg. Despre Noi” – Editare pagina Despre Noi

” Pg. Plata si Livrare” – Editare pagina Plata si Livrare

3.7 Descrierea funcțiilor utilizate în aplicație:

isset() – funcție care verifică dacă a fost setată o valoare a unei variabile;

strlen() – funcție ce returnează lungimea unui șir de caractere;

require() – funcție care include în scriptul curent conținutul unui fișier cu verificarea de a fi introdus o singură dată (spre deosebire de funcția include() – care permite includerea fișierului de mai multe ori) ;

printf() – funcție care afișeaza un șir de caractere formatat;

crypt($pass, "BB") – funcție care criptează un șir de caractere ($pass) după o cheie de criptare (BB);

mail($to, $subject, $message, $headers) – funcție folosită pentru a trimite un email (de la $to, cu subiectul $subiect, având ca mesaj $message cu headerele adiționale $header);

strcmp() – funcție care compară două șiruri de caractere (asemănător funcției standard în C)

trim() – funcție care elimină spațiile goale de la începutul și sfârșitul unui șir de caractere specificat ca parametru (asemănător funcției standard în C);

mysql_query() – trimite o comandă mysql bazei de date active de pe server;

mysql_fetch_array() – returnează o linie din rezultatul comenzii;

mysql_error() – returnează mesajul de eroare sub formă de șir de caractere generat de baza de date mysql dacă este cazul;

mysql_num_rows() – returnează numărul de linii din rezultatul unei cereri mysql;

mysql_connect('localhost', $user, $pass) – deschide o conexiune către un server mysql (numele serverului – ‚localhost’, $user – username-ul si parola – $pass);

mysql_select_db($dbname) – alege o bază de date mysql după conectarea la un server mysql;

session_start() – inițializează o secțiune de date bazată pe ID-ul de sesiune trimis printr-o cerere GET sau POST;

session_destroy() – distruge toate datele asociate cu sesiunea curentă;

ob_start() – oprește afișarea bufferului până la terminarea execuției scriptului;

function draw_data_form($prefix, $an, $luna, $zi, $an_min, $an_max) – funcție definită de programator care generează codul HTML pentru afișarea datei calendaristice sub forma a trei elemente combo-box;

function verifica() – funcția folosită foarte des în proiect, care verifică datele trimise de un formular în vederea introducerii acestora într-un tabel (într-o bază de date);

function afis_next($p, $total) – funcție care afișează lista paginilor dintr-un meniu de afișare a anumitor informații;

function init_print() {

isNS=(document.layers==1);

print(); – inițializează listarea la imprimantă a unei pagini web;

Cap 4. Prezentarea Aplicației – Ghid de utilizare al magazinului virtual creat.

4.1 Functii ale aplicației

Interfata Utilizator

– se pot vizualiza produsele dupa categoria din care face parte;

– listare produse dupa producator;

– cautare produse (dupa numele produsului, dupa producator, cautare in detaliile produsului sau cautare in site);

– vizualizare shopping cart, posibilitate de modificare numar de produse, stergere produse din cart;

4.2 Structura magazinului

Structural, magazinul este compus din toua secțiuni:

Secțiunea de prezentare – client – comanda;

Secțiunea de administrare.

4.2.1. Secțiunea de prezentare – Prin intermediul acestei sectiuni utilizatorul poate vedea catalogul de produse disponibile la S.C. PC-SHOP S.R.L , acesta poate vedea detaliile produsului respectiv , pretul si nu in ultimul rand poate adauga produsul in cosul de cumparaturi pentru a efectua o comanda online.

Prima Pagina

In aceasta pagina este disponibil catalogul de produse aflate in stocul S.C. PC-SHOP S.R.L , se pot gasi ofertele speciale , informatii despre societatea noastra dar si conditiile de plata si livrare a produselor comandate.

Fig. 4.1 – Prima Pagina

Pagina – Lista Preturi

In aceasta pagina sunt listate preturile produselor oferite spre vanzare de catre S.C. PC-SHOP S.R.L

Fig. 4.2 – Lista Preturi

Pagina – Despre Noi

In aceasta pagina se gasesc informatii referitoare la firma S.C PC-SHOP S.R.L

Fig. 4.3 – Despre Noi

Pagina – Plata si Livrare

In aceasta pagina se gasesc informatii referitoare la plata si livrarea produselor comandate de client.

Fig. 4.4 – Plata si Livrare

Pagina – Listare Produse dintr-o categorie

Ex: Listarea produselor din categoria Laptop:

Fig. 4.5 – Listare Produse din Categoria Laptop

Pagina – Listare Produs Detaliat

In aceasta pagina clientul / vizitatorul poate vedea specificatiile detaliate ale produslui , poate efectua adaugarea produsului in cos , si daca este multumit poate lasa si un vot.

Fig. 4.6 – Listare Produs Detaliat

Pagina – Cosul de Cumparaturi

Aceasta pagina arata produsele adaugate de client in cos , permite stabilirea cantitati produselor comandate , permite stergerea unui produs care nu mai este dorit , este afisat pretul pe care clientul il are de platit pentru produsele comandate si nu in ultimul rand are posibilitatea de a trimite comanda.

Fig. 4.7 – Cosul de Cumparaturi

Pagina – Finalizarea Comenzii – Formular

Pentru a trimite comanda spre un operator uman clientul trebuie sa completeze datele necesare intocmiri actelor de vanzare a produselor comandate.

Fig. 4.8 – Formular date Client

4.2.2 Secțiunea de administrare este accesibilă administratorului magazinului virtual, care poate fi un angajat cu acces la produsele magazinului, nu neapărat programatorul magazinului. Un administrator are acces la toate paginile magazinului, în plus el putând adăuga sau modifica produse, vizualiza comenzi și formulare de contact ale utilizatorilor, modifica date, niveluri de acces ale utilizatorilor ori ștergere utilizatori, răspunde la mesaje sau ștergerea lor, prelucrare comenzi sau ștergere manuală a acestora în cazul în care nu sunt confirmate. Oricum, un administrator are acces la întreaga bază de date, putând manipula informația după dorință.

Pagina – Panou de Administrare

Prin intermediul acestui panou de administrare pot fi modificate toate datele afisate in acest magazin virtual. Pot fi vazute comenzile facute de client , pot fi modificate produsele , categoriile cat si alte setari aferente acestei aplicatii.

Fig. 4.9 – Panou de Administrare

Pagina – Adaugare Categorie

Pentru adăugarea unei noi categorii de produse este necesară completarea a 4 câmpuri:

”Parinte” – Categorie Principală / Subcategorie dacă este selectată o categorie existentă.

”Nume Categorie” – Numele Categoriei

”Logo” – Poza aferenta pentru aceasta categorie

”Descriere” – Descrierea sumara a categoriei adaugate

Dupa completarea acestor campuri se apasa butonul „Salveaza”

Fig. 4.10 – Adaugare Categorie

Pagina – Adaugare Produse

Adăugarea unui nou produs în baza de date de către administrator se face completând un formular .

” Categorie” – Categoria unde apare produsul

” Denumire” – Nume produs

” Preț” – Prețul produsului

” Preț Nou” – Dacă se va completa câmpul Preț Nou – Produsul respectiv urmează să apară în categoria de PROMOȚII.

” Poza” – Upload fotografie produs

” În Stoc” – Da/Nu – Produsul se află sau nu în stoc.

” Descriere” – Descrierea produsului respectiv

Dupa completarea acestor campuri se apasa butonul „Salveaza”

Fig. 4.11 – Adaugare Produse

Pagina – Listare Produse Adaugate

Ex: Listarea produselor din categoria LAPTOP , de aici se poate seta si oferta speciala care apare in cadrul primei pagina a aplicatiei , dar se si pot sterge produse.

Fig. 4.12 – Listare Produse Adaugate

Pagina – Oferte Speciale

Listarea Ofertelor Speciale , stabilirea ordinii in care acestea sa apara in prima pagina , dar si optiunea de stergere a ofertei atunci cand ea nu mai este disponibila.

Fig. 4.13 – Oferte Speciale

Pagina – Listare Comenzilor

Pagina de unde operatorul ia datele clientului pentru facturare .

Fig. 4.14 – Listare Comenzi

Pagina – Configurare – Setari Generale

Fig. 4.15 – Setari Generale

Setari Generale

Configurare

” Nume Site” – Setare nume site.

” Url” – Adresa site (ex: www.pc-shop.ro).

” Admin Email” – Setare adresa e-mail administrator.

” Verificare Email” – Verificare e-mail.

Moneda

” Simbol Moneda” – Setare simbol moneda (ex: RON , $ , €)

” Moneda Curenta” – Setare Moneda

” Monede Acceptate” – Lista monede acceptate (ex: RON , USD , EURO)

Pagina – Configurare – Parola Admin

Fig. 4.16 – Parola Admin

Parola Admin – Schimbare Parola

” User” – Editare user administrator.

” Parola Veche” – Parola Veche

” Parola Noua” – Adaugare Parola Noua

” Confirmare Parola Noua” – Verificare Parola Noua

Pagina – Configurare – Editare Pagini

Fig. 4.17 – Editare Pagini

Pagini Site – Editare Pagini

” Pg. Despre Noi” – Editare pagina Despre Noi

” Pg. Plata si Livrare” – Editare pagina Plata si Livrare

4.3 Implementarea aplicației

Pentru implementarea rapidă a aplicației se vor respecta următoarele norme:

Se vor difuza instrucțiunile de executare a procedurilor manuale și automate;

Se va instrui personalul utilizator al aplicației;

Se vor asigura condițiile organizatorice necesare funcționării sistemului;

Se vor asigura resursele hardware și spațiul corespunzător desfășurării lucrărilor de informatică (asigurarea materialelor consumabile; asigurarea integrității, securității și confidențialității datelor);

Se va asigura fondul informațional (pregătirea bazei de date inițiale atât manual cât și cu ajutorul programelor de conversie).

4.4 Instalarea aplicației

1. Instalați serverul de Apache (WAMP), accesand urmatorul link web: http://www.wampserver.com/dl.php (Nu modificati nimic din setarile implicite ale procesului de instalare – aplicatia trebuie instalata in C:\wamp)

2. Copiati aplicatia trimisa in directorul: C:\wamp\www\shop\

3. Dupa instalarea wampului, veti vedea o iconita mica, sub forma unui semicerc alb negru, in coltul din dreapta jos, acolo unde apare si ceasul de windows.

4. Dati click pe iconita WAMP-ului si undeva in meniul afisat, sus, o sa vedeti optiunea phpMyAdmin (pe a doua pozitie de sus);

5. Se va deschide intr-o fereastra phpMyAdminul. introduceti textul "shop" acolo unde apare "Create new database" si apasati butonul Create;

6. Dati click pe tabul de sus unde scrie "SQL" (al doilea, imediat dupa "Structure");

7. Duceti-va in c:\wamp\www\shop\db\ si deschideti cu Notepad fisierul "shop.sql"

8. Copiati continutul acestui fisier (Ctrl+A si apoi Ctrl+C)

9. Reveniti in fereastra phpMyAdmin-ului, si mutati cursorul acolo unde scrie "Run SQL query/queries on database shopping" si apoi apasati Ctrl+V (Paste)

10. Apasati pe butonul "Go" de jos si apoi un OK pentru confirmare.

11. Deschideti o noua fereastra de Internet Explorer si introduceti adresa:

http://localhost/shop/index.php (pentru interfata utilizator)

respectiv http://localhost/shop/admin.php (pentru interfata de administrare a aplicatiei, user: admin , pass: admin)

Concluzii

In ultimii ani prezența unei firme pe internet a devenit o chestiune la ordinea zilei, pentru unele din ele fiind chiar o necesitate. Costurile relativ mici (și in continua scadere) au permis chiar și firmelor mici sa aiba site-ul propriu. Dupa realizarea site-ului, in care firma se prezinta și iși descrie oferta de produse și servicii, aparea imediat nevoia de a le face publice. Astfel, marketingul a fost rapid extins și adaptat chestiunilor specifice sectorului internet.

Trebuie menționat că toate acestea au fost posibile datorita extinderii internetului și in sectorul utilizatorilor (surfer-ilor), fara acestia site-urile pierzandu-și din importanța. Totodata a crescut spectaculos și numarul de calculatoare conectate la internet. In aceste conditii lumea virtuala a internetului a devenit o realitate ce tinde chiar sa se substituie metodelor clasice de a afla informatii, de a comunică, de a vinde/cumpara, etc.

In acest sens, aplicația dezvoltata – constituie o solutie moderna și viabila pentru pentru implementarea unui magazin virtual ,ce are ca obiectiv comanda on-line a produselor sale.

Baza de date proiectata și utilizata este una relaționala conținand 5 de tabele, cu o structura complexa și intre care exista legaturi complexe . S-a acordat o atentie deosebita proiectarii bazei de date , astfel incat organizarea informatiilor sa fie cat mai logică și accesul la date sa se facă intr-un mod optim .

In total au fost scrise peste 30 de programe-script PHP și cateva programe-script JavaScript impartite in cinci module functionale – care conlucreaza impreuna, intr-un mod integrat, la buna functionare a site-ului.

De asemenea s-a acordat atenție aspectului grafic al aplicației , prin folosirea de cod CSS intercalat in cadrul programelor-script și prin folosirea unor aplicatii specifice pentru prelucrareaa grafică a imaginilor utilizate.

Modulul de administrare al aplicației – prin dimensiunile și complexitatea sa – poate fi considerat că un site-web de sine-statator, fiind implementat prin nu mai putin de 20 de scripturi PHP și alte cateva scripturi JavaScript.

Modulul de interfața al aplicației – ofera multiple modalitați de acces la informatiile si datele din cadrul site-ului.

Modularizarea aplicației – a condus la o structura flexibila a site-ului , fiind posibil astfel ca și alte componente ale aplicatiei – sectiuni ale celor cinci module principale, sa fie adaugate ulterior – in procesul de dezvoltare a aplicatiei.

Tendința continua de orientare a proceselor de comerț și business catre Internet duce la o crestere a dezvoltarii și utilizarii aplicatiilor de comert electronic și e-business.

Se constata o scădere a duratei de proiectare și implementare ale aplicatiilor e-business, datorata în principal necesitatii oportunitatilor de afaceri de a patrunde cât mai rapid pe piata. Scăderea duratei de ciclului de dezvoltare are consecinte negative asupra procesului de realizare a aplicatiilor în cazul în care nu se acorda o atentie sporita procesului de asigurare a calitatii.

Aparitia noilor tehnologii conduce la realizarea de aplicații de comerț electronic și e-business de calitate superioara si cu o fiabilitate ridicată.

BIBLIOGRAFIE:

1. „Proiectarea Sistemelor Informatice” – Metode de realizare

de V. Chichernea, C.Botezatu , Edit. Sylvi, București 2002;

2. „Proiectarea sistemelor informatice” – de V. Stanciu și colectiv,

Edit. DualTech, 2002;

3. „Proiectarea obiectuală a sistemelor informatice” –

de Prof. dr. Dorin Zaharie și alții, Edit. DualTech;

4. „Proiectarea sistemelor informatice prin limbajul

Unified modeling language” – de Niculae Davidescu , Edit. ALL Beck , 2003;

5. „Baze de date – proiectare, implementare, gestionare” – de T. Connolly,

C. Begg, A. Strachan, Edit. Teora, București 2001;

6. „Bazele Informaticii – Sisteme informatice pentru birou” –

de Virgil Chichernea, Edit. Sylvi, București 1998;

7. „Object Oriented Modeling and design for Database Applications” –

de Blaha M. și Premerlani W., Edit. Prentice Hall, 1997

8. „Data mining and Knowledge discovery in databases” – de Fayyad U.,

Edit. Communication of the ACM (Special issue), 1996;

9. „Query processing in databases systems” – de Kim W, Reiner D, Batory S.,

Edit. Springer Verlag, 1985;

10. „Object Oriented Concepts, databases and applications” – de Kim W,

Lochovskz F. H., Edit. Addison-Wesley, 1989;

11. „Sisteme informaționale economice” – de Oprea D., Edit. Economică, București 1997;

12. „SQL fără profesor, în 14 zile” – de J. Perkins, B. Morgan, Edit Teora,

București 1998;

13. „Sisteme informatice pentru management” – de Gh. Sabău, V. Avram,

Edit. Oscar print, București 1999;

14. „Proiectarea sistemelor informatice de gestiune” – de V. Stanciu,

Edit. CISON, București 2000;

15. „Aplicatii Web la cheie. Studii de caz implementate in PHP” – de

Buraga Sabin, Editura: Polirom 2003;

16. „PHP pentru World Wide Web in imagini” – de Ullman Larry,

Editura: Teora 2004;

17. „Invata singur PHP, MySQL si Apache” – de Julie C. Meloni,

Editura: Corint 2005

18. „PHP4” – de Bill McCarty, Editura: Teora 2004;

19. „Dezvoltarea aplicatiilor WEB cu PHP si MySQL” – Laura Thomson,

Editura: Teora 2004;

http://www.php.net/

http://www.php.net/quickref.php

http://www.phpromania.net

http://php.resourceindex.com/

http://www.phpmyadmin.net

www.mysql.com

Index.php

<?php

ini_set("display_errors", "1");

include("./cfg/connect.inc.php");

include("./includes/database/mysql.php");

include("./cfg/general.inc.php");

include("./cfg/appearence.inc.php");

include("./cfg/functions.php");

include("./cfg/category_functions.php");

include("./cfg/language_list.php");

session_start();

ini_set("display_errors", "1");

require 'smarty/smarty.class.php';

$smarty = new Smarty;

$smarty_mail = new Smarty;

if (isset($_POST["new_language"]))

{

$_SESSION["current_language"] = $_POST["new_language"];

}

if (!isset($_SESSION["current_language"]) ||

$_SESSION["current_language"] < 0 || $_SESSION["current_language"] > count($lang_list))

$_SESSION["current_language"] = 0;

if (isset($lang_list[$_SESSION["current_language"]]) && file_exists("./languages/".$lang_list[$_SESSION["current_language"]]->filename))

include("./languages/".$lang_list[$_SESSION["current_language"]]->filename);

else

{

die("<font color=red><b>ERROR: Couldn't find language file!</b></font>");

}

db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());

db_select_db(DB_NAME) or die (db_error());

$currency_iso_3 = (defined('CONF_CURRENCY_ISO3')) ? CONF_CURRENCY_ISO3 : "USD" ;

$smarty->assign("currency_iso_3", $currency_iso_3);

$cats = array();

$i=0;

$q = db_query("SELECT categoryID, name, parent, products_count, description, picture FROM ".CATEGORIES_TABLE." where categoryID<>0 ORDER BY name") or die (db_error());

while ($row = db_fetch_row($q))

{

$cats[$i++] = $row;

}

if (isset($_GET["categoryID"]) || isset($_POST["categoryID"]))

$categoryID = isset($_GET["categoryID"]) ? $_GET["categoryID"] : $_POST["categoryID"];

else $categoryID = 0;

$categoryID = (int)$categoryID;

if (!isset($_GET["productID"]))

{

if (isset($_POST["productID"]))

{

$productID = (int)$_POST["productID"];

}

}

else

{

$productID = (int)$_GET["productID"];

}

//and different vars…

if (isset($_GET["register"]) || isset($_POST["register"]))

$register = isset($_GET["register"]) ? $_GET["register"] : $_POST["register"];

if (isset($_GET["update_details"]) || isset($_POST["update_details"]))

$update_details = isset($_GET["update_details"]) ? $_GET["update_details"] : $_POST["update_details"];

if (isset($_GET["order"]) || isset($_POST["order"]))

$order = isset($_GET["order"]) ? $_GET["order"] : $_POST["order"];

if (isset($_GET["check_order"]) || isset($_POST["check_order"]))

$check_order = isset($_GET["check_order"]) ? $_GET["check_order"] : $_POST["check_order"];

if (isset($_GET["proceed_ordering"]) || isset($_POST["proceed_ordering"]))

$proceed_ordering = isset($_GET["proceed_ordering"]) ? $_GET["proceed_ordering"] : $_POST["proceed_ordering"];

if (!isset($_SESSION["vote_completed"])) $_SESSION["vote_completed"] = array();

$offset = isset($_GET["offset"]) ? $_GET["offset"] : 0;

if ($offset<0 || $offset % CONF_PRODUCTS_PER_PAGE) $offset = 0;

Category.php

<?php

ini_set("display_errors", "1");

include("./cfg/connect.inc.php");

include("./includes/database/mysql.php");

include("./cfg/category_functions.php");

include("./cfg/general.inc.php");

db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());

db_select_db(DB_NAME) or die (db_error());

session_start();

include("./cfg/language_list.php");

if (!isset($_SESSION["current_language"]) ||

$_SESSION["current_language"] < 0 || $_SESSION["current_language"] > count($lang_list))

$_SESSION["current_language"] = 0;

if (isset($lang_list[$_SESSION["current_language"]]) && file_exists("./languages/".$lang_list[$_SESSION["current_language"]]->filename))

include("./languages/".$lang_list[$_SESSION["current_language"]]->filename);

else

{

die("<font color=red><b>ERROR: Couldn't find language file!</b></font>");

}

include("./checklogin.php");

if (!isset($_SESSION["log"]) || strcmp($_SESSION["log"],ADMIN_LOGIN))

{

die ("You are not authorized to view this page");

}

?><html>

<head>

<link rel=STYLESHEET href="images/backend/style-backend.css" type="text/css">

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo DEFAULT_CHARSET;?>">

<title><?php echo ADMIN_CATEGORY_TITLE;?></title>

<script>

function confirmDelete(text,url)

{

temp = window.confirm(text);

if (temp) //delete

{

window.location=url;

}

}

</script>

</head>

<body bgcolor=#D2D2FF>

<?php

function deleteSubCategories($parent)

{

$q = db_query("SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE parent=$parent and categoryID<>0") or die (db_error());

while ($row = db_fetch_row($q))

{

deleteSubCategories($row[0]);

}

$q = db_query("DELETE FROM ".CATEGORIES_TABLE." WHERE parent=$parent and categoryID<>0") or die (db_error());

$q = db_query("UPDATE ".PRODUCTS_TABLE." SET categoryID=0 WHERE categoryID=$parent") or die (db_error());

}

function category_Moves_To_Its_SubDirectories($cid, $new_parent)

{

$a = false;

$q = db_query("SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE parent=$cid and categoryID<>0") or die (db_error());

while ($row = db_fetch_row($q))

{

if ($row[0] == $new_parent) $a = true;

else

$a = category_Moves_To_Its_SubDirectories($row[0],$new_parent);

}

return $a;

}

if (!isset($w)) $w=-1;

if (isset($_GET["picture_remove"]))

{

$q = db_query("SELECT picture FROM ".CATEGORIES_TABLE." WHERE categoryID='".$_GET["c_id"]."' and categoryID<>0") or die (db_error());

$r = db_fetch_row($q)

?>

</td>

</tr>

<tr>

<td align=right><?php echo ADMIN_CATEGORY_DESC;?><br>(HTML)</td>

<td></td>

<td><textarea name="desc" rows=7 cols=22><?php echo str_replace("\"","&quot;",$d); ?></textarea></td>

</tr>

</table>

<p><center>

<input type="submit" value="<?php echo SAVE_BUTTON;?>" width=5>

<input type="hidden" name="save" value="yes">

<input type="button" value="<?php echo CANCEL_BUTTON;?>" onClick="window.close();">

<?php

if (isset($_GET["c_id"]))

{

echo "<input type=\"hidden\" name=\"must_delete\" value=\"".str_replace("\"","",$_GET["c_id"])."\">\n";

echo "<input type=\"button\" value=\"".DELETE_BUTTON."\" onClick=\"confirmDelete('".QUESTION_DELETE_CONFIRMATION."','category.php?c_id=".str_replace("\"","",$_GET["c_id"])."&del=1');\"";

}

?>

</center></p>

</form>

</body>

</html>

<?php }; ?>

Products.php

<?php

ini_set("display_errors", "1");

include("./cfg/connect.inc.php");

include("./includes/database/mysql.php");

include("./cfg/category_functions.php");

include("./cfg/general.inc.php");

db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());

db_select_db(DB_NAME) or die (db_error());

session_start();

include("./checklogin.php");

if (!isset($_SESSION["log"]) || strcmp($_SESSION["log"],ADMIN_LOGIN))

{

die ("You are not authorized to view this page");

}

$currency_iso_3 = (defined('CONF_CURRENCY_ISO3')) ? CONF_CURRENCY_ISO3 : "USD" ;

include("./cfg/language_list.php");

if (!isset($_SESSION["current_language"]) ||

$_SESSION["current_language"] < 0 || $_SESSION["current_language"] > count($lang_list))

$_SESSION["current_language"] = 0;

if (isset($lang_list[$_SESSION["current_language"]]) && file_exists("./languages/".$lang_list[$_SESSION["current_language"]]->filename))

include("./languages/".$lang_list[$_SESSION["current_language"]]->filename);

else

{

die("<font color=red><b>ERROR: Couldn't find language file!</b></font>");

}

if (!isset($_GET["productID"])) $_GET["productID"] = 0;

if (isset($_POST["save_product"]))

{

if (!isset($_POST["price"]) || !$_POST["price"] || $_POST["price"] < 0)

$_POST["price"] = 0;

if (!isset($_POST["name"]) || trim($_POST["name"])=="") $_POST["name"] = "not defined";

$instock = (isset($_POST["in_stock"])) ? 1 : 0;

if ($_POST["save_product"]) { //if $_POST["save_product"] != 0 then update item

$q = db_query("SELECT picture, big_picture, thumbnail FROM ".PRODUCTS_TABLE." WHERE productID='".$_POST["save_product"]."'") or die (db_error());

$row = db_fetch_row($q);

//generating query

$s = "UPDATE ".PRODUCTS_TABLE." SET categoryID='".$_POST["categoryID"]."', name='".$_POST["name"]."', Price='".$_POST["price"]."', description='".$_POST["description"]."', in_stock=".$instock.", customers_rating='".$_POST["rating"]."', brief_description='".$_POST["brief_description"]."', list_price='".$_POST["list_price"]."', product_code='".$_POST["product_code"]."'";

$s1 = "";

//old pictures?

if (isset($_FILES["picture"]) && $_FILES["picture"]["name"])

{

//delete old picture

if ($row[0] && file_exists("./products_pictures/".$row[0]))

unlink("./products_pictures/".$row[0]);

}

if (isset($_FILES["big_picture"]) && $_FILES["big_picture"]["name"])

{

//delete old picture

if ($row[1] && file_exists("./products_pictures/".$row[1]))

unlink("./products_pictures/".$row[1]);

}

if (isset($_FILES["thumbnail"]) && $_FILES["thumbnail"]["name"])

{

//delete old picture

if ($row[2] && file_exists("./products_pictures/".$row[2]))

unlink("./products_pictures/".$row[2]);

}

$pid = $_POST["save_product"];

}

else

{

//add new product

db_query("INSERT INTO ".PRODUCTS_TABLE." (categoryID, name, description, customers_rating, Price, in_stock, customer_votes, items_sold, enabled, brief_description, list_price, product_code, picture, thumbnail, big_picture) VALUES ('".$_POST["categoryID"]."','".$_POST["name"]."','".$_POST["description"]."', 0, '".$_POST["price"]."', ".$instock.", 0, 0, 1, '".$_POST["brief_description"]."', '".$_POST["list_price"]."', '".$_POST["product_code"]."','','','');") or die (db_error());

$pid = db_insert_id();

$dont_update = 1; //don't update product

$s = "";

$s1 = "UPDATE ".PRODUCTS_TABLE." SET categoryID=categoryID";

}

//add pictures?

//regular photo

if (isset($_FILES["picture"]) && $_FILES["picture"]["name"] && preg_match('/\.(jpg|jpeg|gif|jpe|pcx|bmp)$/i', $_FILES["picture"]["name"])) //upload

{

$_FILES["picture"]["name"] = str_replace(" ","_",$_FILES["picture"]["name"]);

$r = move_uploaded_file($_FILES["picture"]["tmp_name"], "./products_pictures/".$_FILES["picture"]["name"]);

if (!$r) //failed 2 upload

{

echo "<center><font color=red>".ERROR_FAILED_TO_UPLOAD_FILE."</font>\n<br><br>\n";

echo "<a href=\"javascript:window.close();\">".CLOSE_BUTTON."</a></center></body>\n</html>";

exit;

}

SetRightsToUploadedFile( "./products_pictures/".$_FILES["picture"]["name"] );

$s .= ", picture='".$_FILES["picture"]["name"]."'";

$s1.= ", picture='".$_FILES["picture"]["name"]."'";

}

//enlarged photo

if (isset($_FILES["big_picture"]) && $_FILES["big_picture"]["name"] && preg_match('/\.(jpg|jpeg|gif|jpe|pcx|bmp)$/i', $_FILES["big_picture"]["name"]))

{

$_FILES["big_picture"]["name"] = str_replace(" ","_",$_FILES["big_picture"]["name"]);

$r = move_uploaded_file($_FILES["big_picture"]["tmp_name"], "./products_pictures/".$_FILES["big_picture"]["name"]);

if (!$r) //failed 2 upload

{

echo "<center><font color=red>".ERROR_FAILED_TO_UPLOAD_FILE."</font>\n<br><br>\n";

echo "<a href=\"javascript:window.close();\">".CLOSE_BUTTON."</a></center></body>\n</html>";

exit;

}

SetRightsToUploadedFile( "./products_pictures/".$_FILES["big_picture"]["name"] );

$s .= ", big_picture='".$_FILES["big_picture"]["name"]."'";

$s1.= ", big_picture='".$_FILES["big_picture"]["name"]."'";

}

//thumbnail

if (isset($_FILES["thumbnail"]) && $_FILES["thumbnail"]["name"] && preg_match('/\.(jpg|jpeg|gif|jpe|pcx|bmp)$/i', $_FILES["thumbnail"]["name"]))

{

$_FILES["thumbnail"]["name"] = str_replace(" ","_",$_FILES["thumbnail"]["name"]);

$r = move_uploaded_file($_FILES["thumbnail"]["tmp_name"], "./products_pictures/".$_FILES["thumbnail"]["name"]);

if (!$r) //failed 2 upload

{

echo "<center><font color=red>".ERROR_FAILED_TO_UPLOAD_FILE."</font>\n<br><br>\n";

echo "<a href=\"javascript:window.close();\">".CLOSE_BUTTON."</a></center></body>\n</html>";

exit;

}

SetRightsToUploadedFile( "./products_pictures/".$_FILES["thumbnail"]["name"] );

$s .= ", thumbnail='".$_FILES["thumbnail"]["name"]."'";

$s1.= ", thumbnail='".$_FILES["thumbnail"]["name"]."'";

}

if (!isset($dont_update)) //update product info

{

$s .= " WHERE productID='".$_POST["save_product"]."'";

db_query($s) or die (db_error());

$productID = $_POST["save_product"];

}

else //don't update (insert query is already completed)

{

$s1.= " WHERE productID=$pid";

db_query($s1) or die (db_error());

$productID = $pid;

}

update_products_Count_Value_For_Categories(0);

//close window

echo "<script>\n";

echo "window.opener.location.reload();\n";

echo "window.close();\n";

echo "</script>\n</body>\n</html>";

exit;

}

else

{

if ($_GET["productID"])

{

$q = db_query("SELECT categoryID, name, description, customers_rating, Price, picture, in_stock, thumbnail, big_picture, brief_description, list_price, product_code FROM ".PRODUCTS_TABLE." WHERE productID='".$_GET["productID"]."'") or die (db_error());

$row = db_fetch_row($q);

if (!$row)

{

echo "<center><font color=red>".ERROR_CANT_FIND_REQUIRED_PAGE."</font>\n<br><br>\n";

echo "<a href=\"javascript:window.close();\">".CLOSE_BUTTON."</a></center></body>\n</html>";

exit;

}

if (isset($_GET["picture_remove"]))

{

if ($_GET["picture_remove"] && file_exists("./products_pictures/".$row[$_GET["picture_remove"]]))

unlink("./products_pictures/".$row[$_GET["picture_remove"]]);

$picture = "none";

}

if (isset($_GET["delete"]))

{

if ($row[5] != "none" && $row[5] != "" && file_exists("./products_pictures/".$row[5]))

unlink("./products_pictures/".$row[5]);

if ($row[7] != "none" && $row[7] != "" && file_exists("./products_pictures/".$row[7]))

unlink("./products_pictures/".$row[7]);

if ($row[8] != "none" && $row[8] != "" && file_exists("./products_pictures/".$row[8]))

unlink("./products_pictures/".$row[8]);

$q = db_query("DELETE FROM ".PRODUCTS_TABLE." WHERE productID='".$_GET["productID"]."'") or die (db_error());

//close window

echo "<script>\n";

echo "window.opener.location.reload();\n";

echo "window.close();\n";

echo "</script>\n</body>\n</html>";

exit;

}

$title = $row[1];

}

else //creating new item

{

$title = ADMIN_PRODUCT_NEW;

$cat = isset($_GET["categoryID"]) ? $_GET["categoryID"] : 0;

$row = array($cat,"","","",0,"",1,"","","",0,"");

}

}

?>

Admin

<?php

ini_set("display_errors", "1");

function add_department($admin_dpt)

{

global $admin_departments;

$i = 0;

while ($i<count($admin_departments) && $admin_departments[$i]["sort_order"] < $admin_dpt["sort_order"]) $i++;

for ($j=count($admin_departments)-1; $j>=$i; $j–)

$admin_departments[$j+1] = $admin_departments[$j];

$admin_departments[$i] = $admin_dpt;

}

function __escape_string($_Data)

{

return str_replace("'", "\'", str_replace('\\', '\\\\', stripslashes($_Data)));

}

include("./cfg/connect.inc.php");

include("./includes/database/mysql.php");

include("./cfg/general.inc.php");

include("./cfg/appearence.inc.php");

include("./cfg/functions.php");

include("./cfg/category_functions.php");

include("./cfg/language_list.php");

session_start();

include("./checklogin.php");

if (!isset($_SESSION["log"]) || !isset($_SESSION["pass"]))

{

header("Location: access_admin.php");

die("<script>window.location='access_admin.php';</script>");

}

define('WORKING_THROUGH_ADMIN_SCRIPT', true);

if (isset($_GET["logout"]))

{

$_SESSION["log"] = "";

$_SESSION["pass"] = "";

unset($_SESSION["log"]);

unset($_SESSION["pass"]);

die("<script>window.location='access_admin.php';</script>");

}

require 'smarty/smarty.class.php';

$smarty = new Smarty;

$smarty_mail = new Smarty;

if (!isset($_SESSION["current_language"]) ||

$_SESSION["current_language"] < 0 || $_SESSION["current_language"] > count($lang_list))

$_SESSION["current_language"] = 0;

if (isset($lang_list[$_SESSION["current_language"]]) && file_exists("./languages/".$lang_list[$_SESSION["current_language"]]->filename))

include("./languages/".$lang_list[$_SESSION["current_language"]]->filename);

else

{

die("<font color=red><b>ERROR: Couldn't find language file!</b></font>");

}

db_connect(DB_HOST,DB_USER,DB_PASS) or die (db_error());

db_select_db(DB_NAME) or die (db_error());

$smarty->template_dir = $lang_list[$_SESSION["current_language"]]->template_path."/admin";

$smarty_mail->template_dir = $lang_list[$_SESSION["current_language"]]->template_path."/mail";

$currency_iso_3 = (defined('CONF_CURRENCY_ISO3')) ? CONF_CURRENCY_ISO3 : "USD" ;

$smarty->assign("currency_iso_3", $currency_iso_3);

function mark_as_selected($a,$b)

{

return !strcmp($a,$b) ? " selected" : "";

}

function get_NOTempty_elements_count($arr)

{

$n = 0;

for ($i=0;$i<count($arr);$i++)

if (trim($arr[$i]) != "") $n++;

return $n;

}

if (!isset($_GET["dpt"]))

{

$dpt = isset($_POST["dpt"]) ? $_POST["dpt"] : "";

}

else $dpt = $_GET["dpt"];

if (!isset($_GET["sub"]))

{

if (isset($_POST["sub"])) $sub = $_POST["sub"];

}

else $sub = $_GET["sub"];

$smarty->assign("admin_main_content_template", "default.tpl.html");

$smarty->assign("current_dpt", $dpt);

$q = db_query("select count(*) from ".ORDERS_TABLE) or die (db_error());

$n = db_fetch_row($q);

$smarty->assign("new_orders_count", $n[0]);

$admin_departments = array();

$includes_dir = opendir("./includes/admin");

$file_count = 0;

while ( ($inc_file = readdir($includes_dir)) != false )

if (strstr($inc_file,".php"))

{

include("./includes/admin/$inc_file");

$file_count++;

}

if (isset($sub)) $smarty->assign("current_sub", $sub);

$smarty->assign("admin_departments", $admin_departments);

$smarty->assign("admin_departments_count", $file_count);

$smarty->display($lang_list[$_SESSION["current_language"]]->template_path."admin/index.tpl.html");

?>

Config.inc

<?php

define('DB_HOST', 'localhost'); // database host

define('DB_USER', 'root'); // username

define('DB_PASS', ''); // password

define('DB_NAME', 'shop'); // database name

define('ADMIN_LOGIN', 'YWRtaW4='); //administrator's login

define('ADMIN_PASS', '21232f297a57a5a743894a0e4a801fc3'); //administrator's login

//database tables

include("./cfg/tables.inc.php");

?>

Similar Posts