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("\"",""",$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");
?>
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Pagina Web Interactiva Utilizand Php Si Mysql (ID: 150090)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
