nagykereskedelmi webáruház fejlesztése

56
SZAKDOLGOZAT Nagykereskedelmi webáruház fejlesztése Konzulens: Ujvárosi György Dózsa György Gazdasági és Mőszaki Szakközépiskola és Szakiskola Kalocsa Készítette: Zsáki Erik Számítástechnikai programozó OKJ 54 4641 05 Dózsa György Gazdasági és Mőszaki Szakközépiskola és Szakiskola Kalocsa 2007

Upload: informatikaanyag

Post on 08-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 1/56

SZAKDOLGOZATNagykereskedelmi webáruház fejlesztése

Konzulens:Ujvárosi György

Dózsa György Gazdaságiés MőszakiSzakközépiskola és SzakiskolaKalocsa 

Készítette:Zsáki Erik Számítástechnikai programozóOKJ 54 4641 05

Dózsa György Gazdaságiés MőszakiSzakközépiskola és SzakiskolaKalocsa

2 0 0 7

Page 2: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 2/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

1

Tartalomjegyzék 1.  BEVEZETİ ....................................................... ............................................................ .............................. 2 

2.  A MAGYAR ONLINE KERESKEDELEM................................................................ .............................. 3 

3.  HASZNÁLT ESZKÖZÖK.............................................................. ............................................................ 5 

3.1.  PHP ............................................................ ............................................................ .............................. 5 3.2.  MYSQL ...................................................... ............................................................ .............................. 6 3.3.  APACHE ...................................................... ............................................................ .............................. 6 3.4.  HTML............................................................................. ............................................................ .......... 6 3.5.  CSS.................................................... ............................................................ ........................................ 7 3.6.  BÖNGÉSZİK .......................................................... ............................................................ .................... 8 

4.  A SZOFTVER-FOLYAMAT TEVÉKENYSÉGEI [5] ........................................................ .................... 9 

4.1.  SZOFTVER SPECIFIKÁCIÓ.....................................................................................................................11  4.1.1.    A megrendelı szemszögébıl .......................................................... ................................................ 11 4.1.2.   Funkciók .......................................................... ............................................................ .................. 12 4.1.3.    A vásárlás folyamata ........................................................... .......................................................... 14 

4.1.4.    A termék útja a vásárlóhoz ............................................................ ................................................ 14 4.1.5.    Az oldallal szembeni elvárások......................................................................................................14 4.1.6.    Felhasználói eset diagrammok ...................................................... ................................................ 16  

4.2.  SZOFTVER -TERVEZÉS ÉS IMPLEMENTÁCIÓ ..........................................................................................17  4.2.1.    Általános felépítés..........................................................................................................................17  4.2.2.   Az adminisztrációs és a felhasználói (vevı) oldal kinézete............................................................18 4.2.3.    Az adatbázis tervezése [4] ................................................... .......................................................... 20 4.2.4.  Mysql használata PHP-ból............................................................................................................27  4.2.5.    Program kódolása ..................................................... ............................................................. ....... 30 4.2.5.1.    Admin beléptetése ........................................................... .......................................................... 31 4.2.5.2.    Kategória törlése ......................................................................................................................33 4.2.5.3.    Képek feltöltése.........................................................................................................................35 4.2.5.4.    Rendelések teljesítése................................................................................................................36  

4.2.5.5.   A kosár mőködése .....................................................................................................................38 4.2.5.6.    Keresés a termékek között.........................................................................................................41 4.2.5.7.    Képek megjelenítése..................................................................................................................45 

4.3.  SZOFTVER VALIDÁCIÓ .........................................................................................................................47  4.3.1.  Tesztelés.........................................................................................................................................47   

4.4.  SZOFTVER KARBANTARTÁS.................................................................................................................50  4.4.1.  Továbbfejlesztési lehetıségek ........................................................ ................................................ 50 

5.  FELHASZNÁLÓI DOKUMENTÁCIÓ .................................................. ................................................ 51 

5.1.  WEBÁRUHÁZ TELEPÍTÉSE ....................................................................................................................51  5.2.  ÜZEMELTETÉSI LEÍRÁS ........................................................................................................................52  5.3.  TESZT ADATOK ....................................................................................................................................52  5.4.  SZÜKSÉGES HARDVER ÉS SZOFTVER ....................................................................................................52  

6.  ÖSSZEFOGLALÁS......................................................................... .......................................................... 53 7.  FELHASZNÁLT SZAKIRODALOM ÉS FORRÁSOK............... ......................................................... 54 

8.  MELLÉKLET................................ ............................................................ ................................................ 55 

Page 3: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 3/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

2

1. Bevezetı

Egy nagykereskedelmi webáruház megvalósítása a célom, ami különféle növényeket,

mezıgazdasági termékeket, kész élelmiszereket, ıstermelık végtermékeit értékesít.

Az internet térhódításával az online kereskedelem is jelentıs tömegbázist tudhat maga

mögött. Ma Magyarországon ez a fajta értékesítési mód még nem annyira elterjedt, ennek oka

az internetes infrastruktúra, és a magyar vásárlói szokások.

Az áruház a virtuális és valós világ összekapcsolásával alkot kereskedelmi egységet majd.

A termékek kiválasztása és rendelése a világhálón, átvétele a valós világban, személyesentörténik. Így a vásárlók nagyobb bizalommal lesznek, gyorsabb szállítást és

 problémamegoldást remélhetnek.

Könnyen használható és praktikus felülettel kell rendelkeznie, a vásárlók és az eladók felé

egyaránt. Biztosítva az egyértelmőséget, és egyszerő fizetési módot a vásárlók részére.

Funkcióiban lehetı legjobban közelítse meg a „megszokott” (nem interneten keresztül

történı) vásárlás formáját.

A vevık döntı többsége nem érdekelt az informatikában, számukra ez a vásárlási formacsak egy eszköz (mint például egy gépjármő, pénztárgép, vagy banki szolgáltatás).

Természetesen némi tudás szükséges részükrıl, amit a lehetı legjobban minimalizálni kell a

fejlesztés során.

Megvalósításhoz a jól bevált Apache, MySQL, PHP hármast veszem igénybe. Az

információk tárolása adatbázisban történik, melybıl a php segítségével dinamikus, könnyen

karbantartható oldalt képez. Ma már ez az egyik legelterjedtebb technika, ami kiváló alapot

 biztosít a webáruháznak.

Azért esett választásom erre a témára, mert az informatikán belül számomra az egyik 

legérdekesebb téma az internet. A megvalósítás folyamán átfogó képet kapok a mőködésérıl,

és lehetıségeirıl, melyet késıbbi munkáim során kívánok kamatoztatni. Emellett családi

vállalkozásunk hasonló kereskedelemben érintett, ezért számomra ismertek a követelmények,

elvárások, és jól követhetı lesz számomra, miként állja meg helyét a termék egy esetleges

tényleges bevezetés után.

Page 4: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 4/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

3

2. A magyar online kereskedelem

„Miközben Magyarországon több százezren használják az elektronikus banki

szolgáltatásokat, az internetes vásárlás egyelıre a hagyományos kiskereskedelem csupán 0,1

százalékát teszi ki. Az e-kereskedelem legnagyobb kerékkötıje, hogy ragaszkodunk a

hagyományos vásárlási formákhoz. Ám lassan felnı az a korosztály, amely hozzászokott a

világhálón való böngészéshez, és nem idegenkedik az on-line vásárlástól. A kereskedelem

szereplıinek is szemléletváltozásra van szükségük: üzleti modelljeiket át kell dolgozniuk az

on-line üzletmenetre.” (forrás: http://www.piacesprofit.hu/?r=10530 )

1.ábra

Áruház célcsoportja azok a felhasználok, akik a nagykereskedelemben érdekeltek. Az

1.ábra a korcsoportok és azok internet használatának százalékos arányát fejezi ki.

Célközönség életkora 25-50 év közé tehetı (természetesen nem zárt az intervallum), és ennek 

a csoportnak kell, hogy megfeleljen a szolgáltatás.

2. ábra

Page 5: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 5/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

4

A 2. ábrán látható hogy az évek múlásával nı az interneten történı vásárlások száma. Egy

  jól kialakított kereskedelmi oldal esetében könnyebb megtartani, és „megszerezni” a

vásárlókat. Feltehetıen az elkövetkezı években jelentısen nıni fog az interneten vásárlók 

 bázisa, és nem lesz annyira idegen ez a vásárlási forma. A munkájukhoz internetet használók 

nagyobb része hatékonyabbnak találja az internet használatát (3. ábra).

3. ábra

Cél, hogy a felhasználók szemében egy eszközként szerepeljen a weboldal. A webáruház

üzemeltetıjének az-az érdeke, hogy egyes felhasználók rendszerességgel vásároljanak a már meglévı és új termékek közül. Amennyiben elégedettek a szolgáltatással, biztos lehet a

vásárlói kör kiszélesedésében, és az árú forgalom növekedésében.

Az interneten történı vásárlás elınyökkel jár a vásárló és az eladó számára egyaránt.

Eladó:•  Önkiszolgáló vendégek •  Vásárló adatainak gyors elérése•  Könnyebb elszámolás a hivatalos szervek felé•  Internet kapcsolattal bárhonnan elérhetı az áruház•  Kisebb munkaerıigény•  Hatékony kommunikáció a vevıkkel

Vevı:•  24 órás nyitva tartás•  Könnyen áttekinthetı, és szelektálható terméklista•  Gyors ügyintézés

Információk forrása [1]

Page 6: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 6/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

5

3. Használt eszközök 

3.1. PHP A PHP elterjedt nyílt forráskódú szerveroldali programozási nyelv. Szintaktikája leginkább

a C programozási nyelvéhez hasonlít. Megalkotója Rasmus Lerdorfd.

A PHP nyelv túlnıtt eredeti jelentıségén. Születésekor csupán egy makró készlet volt,

amely személyes honlapok karbantartására készült. Innen ered neve is: Personal Home Page

Tools. Késıbb a PHP képességei kibıvültek, így egy önállóan használható programozási

nyelv alakult ki, amely képes nagymérető webes adatbázis-alapú alkalmazások mőködtetésére

is.

A PHP jelenleg hivatalosan a PHP: Hypertext Preprocessor (Hiperszöveg Elıfeldolgozó)elnevezést használja.

Tulajdonképpen kiszolgáló-oldali programozási nyelv, amit jellemzıen HTML oldalakon

használnak. A hagyományos HTML lapokkal ellentétben azonban a kiszolgáló a PHP

 parancsokat nem küldi el az ügyfélnek, azokat a kiszolgáló oldalán a PHP-értelmezı dolgozza

fel. A programban lévı HTML elemek érintetlenül maradnak, de a PHP kódok lefutnak. A

kódok végezhetnek adatbázis-lekérdezéseket, dinamikusan létrehozhatnak képeket, fájlokat

olvashatnak és írhatnak, kapcsolatot létesíthetnek távoli kiszolgálókkal. A lehetıségek számavégtelen. A PHP kódok kimenete a megadott HTML elemekkel együtt kerül az ügyfélhez. A

Zend Technologies a PHP mögött álló elsı számú cég, a PHP alapjainak készítıi indították.

Az értelmezıt támogató kereskedelmi termékeket fejlesztenek, terméktámogatással. A

honlapjukon található referenciák egyértelmővé teszik a PHP egyre szélesedı elfogadottságát

a magasabb üzleti szektorban. A PHP továbbra is ingyenes termék, minden feladatra

elérhetıek költségmentes megoldások.

A PHP-t alapvetıen úgy tervezték, hogy alkalmas legyen számos operációs rendszeren valóhasználatra, együttmőködve különbözı kiszolgálókkal és adatbázis-kezelıkkel.

Hivatalos honlap: http://www.php.net/ 

Page 7: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 7/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

6

3.2. MySQL

A MySQL egy több felhasználós, többszálú, SQL-alapú relációs adatbázis-kezelı szerver.

Az MySQL az egyik legelterjedtebb adatbázis-kezelı, aminek egyik oka lehet, hogy a

teljesen nyílt forráskódú LAMP (Linux–Apache–MySQL–PHP) összeállítás részeként

költséghatékony és egyszerően beállítható megoldást ad dinamikus webhelyek szolgáltatására.

A MySQL adatbázisok adminisztrációjára a mellékelt parancssori eszközöket ( mysql  és

mysqladmin) használhatjuk. A MySQL honlapjáról grafikus felülető adminisztráló eszközök 

is letölthetık: MySQL Administrator és MySQL Query Browser .

Széles körben elterjedt és népszerő alternatíva a PHP nyelven írt, nyitott forráskódú

 phpMyAdmin. A  phpMyBackupPro (amelyet szintén PHP-ban írtak) adatbázisok (akár 

idızített, ismétlıdı) mentésére szolgál eszközül. A phpMyAdmin a MySQL adatbázisok WEB

alapú, teljes körő adminisztrációját teszi lehetıvé.

3.3. Apache

A legelterjedtebb nyílt forrású, szabadon terjeszthetı webszerver, amelynek különbözı

változatai többek között Windows, Linux és OS/2 operációs rendszerek alatt is futtathatóak.

3.4. HTML

A HTML ( H  yper T ext  M arkup Language) egy leíró nyelv, melyet weboldalak készítéséhez

fejlesztettek ki. Az SGML leegyszerősített változata, amely ma már internetes szabvánnyá

vált, a W3C (World Wide Web Consortium) támogatásával. Az aktuális változata a 4.01

amelyet lassan kiszorít az XHTML.

A HTML-t egy bizonyos Tim Berners-Lee fejlesztette ki. Akkor vált igazán népszerővé,

amikor (1993) elkészült (az NCSA webszerverhez) a Mosaic, az elsı grafikus internet-

 böngészı (Unix rendszereken), ami HTML-t jelenített meg. Ez a böngészı késıbb megjelent

Machintoson és Windowson is.

A Mosaic projektbıl késıbb kilépett néhány fontos ember, és megalapította a Netscape

Communications Corporationt, amely kifejlesztette a Netscape Navigátor böngészıt. Ez a

Page 8: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 8/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

7

legelterjedtebb és legnagyobb tudású böngészı volt 1996-ig, amikor is az Internet Explorer 

vált a leggyakrabban használt böngészıvé. A HTML nyelvet szabványosították, valamint

ápolását és továbbfejlesztését pedig a WWW Consorcium vette át.

HTML általában szöveges állományokban található meg olyan számítógépeken, melyek az

internethez kapcsolódnak. Ezek az állományok tartalmazzák azokat a szimbólumokat,

amelyek a megjelenítı programnak leírják, hogyan is kell megjeleníteni, illetve feldolgozni az

adott állomány tartalmát. Megjelenítı program lehet egy webböngészı (web browser), aural

 böngészı (olyan, amelyik a felhasználónak felolvassa a megjelenítendı szöveget), levelezı

  program (mint például: Mozilla Thunderbird, Microsoft Outlook, stb.), valamint egyéb

eszközök, például mobiltelefon.

Az XHTML a HTML megfogalmazása XML-ben (a HTML SGML-ben van definiálva).

Gyakorlatilag nincs jelentıs eltérés a két nyelv között, csak a formai követelmények lettek 

szigorúbbak.

3.5. Css

A CSS (C ascading  S tyle S heets) egy stílusleíró nyelv, mely a HTML vagy XHTML típusú

strukturált dokumentumok megjelenését írja le. Ezen kívül használható bármilyen XML alapúdokumentum stílusának leírására is. A CSS specifikációját a World Wide Web Consortium

felügyeli.

A CSS segítségével az oldalaknak professzionális megjelenítés adható, mindezt úgy, hogy

egy stíluslapot (css fájlt) kell hozzá rendelni az összes oldalhoz, így egy esetleges változást,

stílusbeli módosítást az összes szükséges helyen, egy mozdulattal végrehajtható, anélkül,

hogy hosszú órákat kellene tölteni a forráskódok kézi szerkesztésével.

Munkáim során a XAMPP telepítı csomagot használom, mely egyszerően és gyorsan

telepíti az Apache 2.2.4-t, a MySQL 5.0.33-t, a PHP 5.2.1 és PHP 4.4.5-t windows-os

környezetre.

http://www.apachefriends.org/en/xampp-windows.html 

Page 9: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 9/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

8

3.6. Böngészık 

Ezek a programok felelısek a felhasználói felületek megjelenítéséért. A webböngészık a

webszerverekkel HTTP protokollon keresztül kommunikálnak. A HTTP segítségével a

 böngészık adatokat küldhetnek a webszervereknek, valamint weblapokat tölthetnek le róluk.A leggyakrabban használt HTTP szabvány a HTTP/1.1, melynek teljes leírása az RFC 2616

alatt található meg.

Mivel többféle grafikus böngészı létezik, ezért a három leggyakrabban használt böngészı

használatával végzem az oldal fejlesztését.

•  Microsoft Internet Explorer 6

•  Mozilla Firefox

•  Opera

4. ábra

A 4. ábra szemlélteti az Adatbázis-szerver és a Web-szerver kapcsolatát Internetes

felhasználás esetén.[3]

Eszközökrıl szerzett információk [2]

Page 10: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 10/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

9

4. A szoftver-folyamat tevékenységei [5]

A szoftver folyamat olyan tevékenységek és kapcsolódó eredmények egymás utána, amely

egy szoftver terméket állít elı.

A jó szoftver tulajdonságai:

•  Rendelkezzen a felhasználó által elvárt funkciókkal és teljesítménnyel

•  Legyen karbantartható, üzembiztos

•  Használható

A szoftver folyamat négy alapvetı tevékenységre bontható

1.  Szoftver specifikáció:

Itt történik a szolgáltatások, követelmények meghatározása. Szükség esetén

megvalósíthatósági elemzés is történhet. Az egyes funkciókhoz prioritás rendelhetı.

2.  Szoftver-tervezés és implementáció: 

Elkezdıdik a specifikációt megvalósító szoftver struktúra megtervezése. Arhitekturális,

interfész, komponens, adatstruktúra, algoritmus tervezés. A terv kóddá (programmá)

alakítása, és a hibák eltávolítása.

3.  Szoftver validáció: 

Szoftver vizsgálata, hogy a specifikációnak, és a megrendelı igényeinek eleget tesz-e.

Rendszer tesztelése, szoftverben lévı hibák feltárása, egység teszt, elfogadási teszt.

4.  Szoftver karbantartás:

A szoftver javítása, adaptív változtatása, kibıvítése. Ez a szakasz tart legtovább a

szoftver-fejlesztésben.

A tervezés folyamán fontos jól ütemezni a megfelelı szakaszokat, a jól átgondolt tervezési

struktúra idıt és energiát takarít meg. Amennyiben a szoftver-fejlesztést csapatban (team)

végzik elengedhetetlen ez a struktúra, de egyszemélyes munkánál is célszerő betartani. Egy

komplex feladat esetén ez a struktúra leegyszerősíti, kezelhetı mértekre bontja az adott

feladatott.

Page 11: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 11/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

10

Különféle statikus és dinamikus modellek  jöttek létre a szoftver fejlesztés gyorsabb és

egyszerőbb elvégzése érdekében. Statikusra példa a vízesés modell (Waterfall), spirális

modell (Spiral), vagy az evolúciós fejlesztési modell (Evolutionary Prototyping), dinamikusra

 pedig a Scrum.

Az itt leírt négy tevékenység és a hozzájuk tartozó altevékenységek egy általános szoftver 

létrehozását adják meg. A webáruház esetében nincs szükség minden egyes részletre, és a

különbözı egységeket akár össze is lehet vonni. Ennek oka, hogy az oldal bonyolultsága nem

igényel ilyen színtő tervezést. Ezért a leírt egységet rugalmasan kezelve láttam neki az

áruház megalkotásának. Ez egy ilyen kisebb projekt esetében megengedhetı, egy túlzott

tervezés esetleg bonyolítaná a programot, de mindenképp idıveszteséggel járna. Ehhez a fajta

tervezéshez fontos ismerni az alapot jelentı szoftver-folyamat tevékenységeit, ezért kerülnek 

leírásra a tevékenységek.

Page 12: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 12/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

11

4.1. Szoftver SpecifikációEbben a részben a szoftver mőködését és a mőködésére vonatkozó megszorításokat

definiálom. Meghatározom a webáruház funkcióit és fıbb mőködési momentumait.

Fontos ezt a szakaszt jól átgondolni és megtervezni mivel késıbb a szoftver fejlesztés során

annál könnyebb lesz a munka. Validáció során ki fog derülni, hogy megfelel a szoftver a

követelményeknek. Ennek fényében lehet eszközölni változtatásokat a követelményekben, de

csak óvatosan, apróbb változtatások hasznosak lehetnek, viszont nagy átalakítások esetén

kérdéses, hogy meg fog-e felelni a szoftver a megbízónak.

Lényeges a megrendelıvel a hatékony kommunikáció, minél pontosabb leírást ad a

követelményekrıl, annál könnyebben és precízebben írható le a specifikáció.

Megvalósíthatósági tanulmány készítése, ez annak vizsgálata, hogy a megrendelı kívánságai

kielégíthetık-e az adott szoftver- és hardvertechnológia mellett. Esetleg felhozhatók példák,

illetve kiindulási alapnak már kész rendszer.

Ezek után az elemzési tevékenységekbıl összegyőjtött információkat rendszerezni kell.

4.1.1. A megrendelı szemszögébıl

Fogyasztók Az áruház kivitelezés elıtt feltétlenül tisztázni kell a célközönség szokásait, igényeit,

elvárásait a szolgáltatással kapcsolatban.

Gyakorlatban bárki igénybe veheti a szolgáltatás, de általánosságban kereskedık,

viszonteladók, cégek, és egyéb nagykereskedelemben érdekeltek lesznek partnerek.

Fizetési mód

A vevık nagy része még mindig a készpénzes fizetési módszert favorizálják. Ennek tükrében egy hitelesítı email elfogadása után kerülhet sor a tényleges (személyes)

vásárlásra.

Nyilvántartás

Remélhetıleg a vevık elégedettek lesznek a teljes szolgáltatással (az áru minısége is

megfelelı), és további megrendelésekre lehet majd számítani. İket szolgálja ki az-az

adatbázis, mely tartalmazza adataikat. Itt jelentkezik a „valóságos” vásárlás egyik eleme a

törzsvendég.

Page 13: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 13/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

12

Hitelesség

Úgy kell megalkotni a webáruházat, hogy az általa létrehozott dokumentumok hitelesek,

hibamentesek, könnyen értelmezhetık legyenek, és bizonyítékul szolgáljanak a vásárlást

illetıen. Természetesen nem fog hivatalos dokumentumként szolgálni, de megkönnyítiannak kitöltését (kézpénzfizetési számla).

Használhatóság

Alapkövetelmény mind az eladók, mind a vevık részére, hogy fizikai helytıl függetlenül 

tudják használni az áruházat.

4.1.2. FunkciókA vásárlói oldal:

Regisztráció: 

Bárki nézelıdhet, és pakolhatja kosarába a termékeket, de a megrendelések teljesítése csak a

regisztrált, és bejelentkezett tagokat illeti meg.

Belépés:

A regisztráció után teljes jogú ügyfele lesz az áruháznak a felhasználó. Rendelhet, írhat a

vendégkönyvbe, feliratkozhat a hírlevélre. A feledékenyebb felhasználóknak van lehetıségük 

arra, hogy lekérdezzék jelszavukat.

Kosár:

Az oldalon mindig látható lesz a kosár tartalma, és a végösszeg. A kosárban lévı tételeket

lehet módosítani, törölni, és érvényesíteni.

Hírlevél:

Bármikor fel és le lehet iratkozni.

Egy hírlevél modullal ellehet érni, hogy azok a látogatók, akik most csak nézelıdnek a

honlapon, késıbb vásároljanak .

Vendégkönyv:

Itt közölhetik a regisztrált felhasználók, észrevételeiket, problémáikat, igényeiket. Ennek 

alapján befolyásolhatnak más felhasználókat, remélhetıleg jó tapasztalataikat írják le, és így

 jobban megbíznak majd az áruházban.

Page 14: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 14/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

13

Keresés:

A felhasználóknak lehetıségük van keresni a termékek között, megadhatják keresési

feltételeiket.

Navigáció az oldalon:A felhasználók mindig pontosan tudni fogják, hogy az áruház melyik részén tartózkodnak 

éppen.

Adminisztrációs oldal:

Az áruháznak több adminisztrátora lehet, mint ahogy egy boltban több eladó. Számukra egy

gyors és könnyen használható felület kell, amin a következıket végezhetik el:

  Új kategória létrehozása•  Kategória módosítása

•  Kategória törlése

•  Új termék létrehozása

•  Termék módosítása

•  Termék törlése

•  Aktív termék 

•  Kép feltöltése a termékhez

•  Keresés a termékek között

•  Vendégkönyv karbantartása

•  Felhasználó törlése

•  Email küldése az összes, a hírlevélre feliratkozott, és az egyes felhasználóknak 

•  Oldal számlálóinak megtekintése, nullázása

•  Adminisztrátori jelszó módosítása

•  Új adminisztrátor felvétele

•  Kiszerelések és áfák felvétele, módosítása, törlése

•  Rendelések kezelése

•  Rendelések kiírása szöveges fájlba

Page 15: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 15/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

14

A szoftver kialakítása során nagyobb prioritást élveznek  a vásárlással kapcsolatos

funkciók, ilyen a kategóriákkal, termékekkel, megrendelésekkel kapcsolatos mőveletek. Csak 

ezek befejeztével jöhetnek az egyéb funkciók, vendégkönyv, hírlevél. Ennek elvében kerülnek 

kialakításra az egyes részegységek, idıben és energiában.

4.1.3. A vásárlás folyamata1.   Regisztráció: fontos hogy valós, és helyes adatokat közöljön a vásárló. A termékek 

  böngészése, kosárba helyezése regisztráció nélkül is megtörténhet. Regisztrációra a

kosár tartalmának megrendelésekor van szükség.

2.    Kategóriaválasztás illetve keresés: termékeket a jobb áttekinthetıség végett

kategóriákba kell sorolni. Innen, vagy keresés alapján választja ki a vevı a kívántterméket.

3.  Termék kiválasztása: miután kiválasztotta a kategóriát vagy lefutatta a megfelelı

keresést, megjelenek az egyes termékek. Itt végezhetı el a kosárba helyezés. Az adott

termékhez tartozhat egy kép is.

4.    A kosár : a vásárlás végeztével, az összesítés pontnál, ha be van jelentkezve

megrendelheti a kívánt termékeket.

4.1.4. A termék útja a vásárlóhozAmint a vásárló érvényesíti a kosár tartalmát, az eladóhoz megérkezik a rendelés kérelme.

Amennyiben a rendelés teljesíthetı, a vevı kap egy email-t, ami tudatja az üzlet létrejöttérıl.

A termékek átvétele az árusítónál történik, mivel az itt történı rendelések nagy része 100 kg

felett van, így a postai csomagküldés szóba sem jöhet. Ez a gyakorlatban bevett szokás.

Probléma estén jönnek jól a valós vásárlói adatok , lehetıség van felvenni a kapcsolatot avevıvel, és megoldani a problémát.

4.1.5. Az oldallal szembeni elvárásokFontos szót ejteni a felhasználói felületrıl, ami mind a vásárlói, mind az adminisztrációs

oldalra igaz. Az oldalak kinézetét a html és a css nyelv fogja meghatározni.

Page 16: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 16/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

15

A vásárlókör ismertében kell megtervezni az oldal felépítését, kinézetét. Figyelembe kell

venni a szabványokat, és az alapvetı ergonómiai szempontokat. Ez azért fontos, mert egy jól

kialakított webáruház szélesebb körben válik ismertté, népszerővé, remélhetıleg ennek 

függvényében a vásárlások száma is nıni fog.

Ellenkezı esetben, ha egy oldal lassú vagy nem lehet tájékozódni rajta, a felhasználók 

inkább továbbállnak és keresnek egy másik oldalt a témában.

Ehhez a következı tényezıket kell figyelembe venni:

•  Fontos a gyorsaság. Minél hamarabb tölti le az oldal a felhasználó, annál

élvezetesebb lesz számára a böngészés. A sebességet sok tényezı befolyásolja, a

kiszolgáló szerver teherbírása, sebessége, a felhasználó sávszélessége.•  Az oldal kinézete ne menjen a gyorsaság rovására. Legfontosabb az információ

szerzése, ehhez az információhoz kell minél hamarabb hozzájutattni a felhasználót.

Ennél az oknál fogva nem használok flash animációkat, nagymérető képeket,

különféle grafikus elemeket. A jól kiépített, könnyen használható felületnek nagyobb

hasznát veszik a felhasználók, mint egy túl díszített, képekkel teletőzdelt oldalnak.

•  Css használatával egyszerőbb egységes oldalakat készíteni, és változtatásokat is

könnyebben lehet eszközölni.

•  Lehetıleg minden böngészı program azonos formában jelenítse meg az oldalt.

Kisebb eltérések persze adódnak, de ez az oldal használhatóságát nem csorbíthatja.

•  Sütik (cookie) engedélyezése nélkül is teljes funkcionalitással mőködjön az oldal.

•  Navigáció: Egy felhasználó, ha az oldalhoz ér, könnyen fel tudja térképezni, mi hol

van, mire kell kattintani. A legfıbb cél, hogy a felhasználó az adott információt a

lehetı legrövidebb idın belül megtalálja.•  Javasolt a legtöbb gépen lévı alapértelmezett fontok  használata, mivel ezek 

általában könnyen olvasható betők.

•  Kerülendı a rikító, szemet fárasztó színösszeállítást.

Page 17: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 17/56

Page 18: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 18/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

17

4.2. Szoftver-tervezés és implementáció

Ez az eljárás, amelynek során a specifikáció egy futtatható rendszerré alakul át.

Szoftver-tervezés: olyan szoftver struktúra tervezése, amely megvalósítja a specifikációt.Implementáció: a tervezett struktúrának végrehajtható kóddá alakítása.

Az egész rendszert kisebb, kezelhetı mérető alrendszerekre kell bontani, melyek közt

definiálni kell a kapcsolatot (architekturális tervezés). Minden egyes alrendszer számára meg

kell tervezni a többi alrendszer felé mutatott interfészét (interfész tervezés). A

szolgáltatásokat el kell helyezni a komponensekben és meg kell tervezni a komponensek 

interfészeit (komponens tervezés).Meg kell határozni és részletesen meg kell tervezni az implementációban használandó

adatszerkezeteket (adatszerkezet tervezés). Végül a szolgáltatások biztosításához szükséges

algoritmusokat kell meghatározni (algoritmus tervezés).

4.2.1. Általános felépítésA specifikációban leírt webáruház megvalósításánál két nagy komponenst különböztetek 

meg. Az egyik a vevıi oldal, a másik az adminisztrációs oldal. Ezek mint funkcióban, mint

kinézetben különböznek, de mégis szoros kapcsolat van közöttük.

Felhasználói (vevı) oldal

Korábban már utaltam a felépítésének egyes részeire, mint például a regisztrálás. Csak 

vásárlás esetén fontos a regisztrációt igénylı bejelentkezés. Ennek köszönhetıen bárki

ismerkedhet az oldalal, pakolhat termékeket a kosár  ba, olvashat a vendégkönyv  ben. Így

elkerülhetık a feleslegesen történı regisztrációk, mivel csak akkor kell regisztrálni és bejelentkezni, ha valaki valóban szeretne vásárolni. A kosárba pakoláskor több lehetıség is

van a tartalom módosítására, megrendelés után erre már nincs lehetıség. Fontosak a helyesen

megadott személyes adatok, és mivel ezek változhatnak, lehetıséget kell biztosítani ezek 

módosítására (kivétel az email cím és a login név). A termékek kategóriák  ba vannak sorolva,

ezek alapján, vagy keresés segítségével találhatók meg az egyes termékek. A termékekhez

tartozhat egy kicsi kép, amire kattintva megjelenik annak nagyobb felbontású megfelelıje.

Ezeken túl, pár apróbb funkció is szerepel, például az elfelejtett jelszó lekérdezése, emailküldése az oldal email címére, vagy a navigálás az oldalon.

Page 19: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 19/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

18

Fontos hogy ellenırizve legyenek a felhasználóktól bekért adatok.

Az adminisztrációs (eladó) oldal

Az admin belépése az admin.php oldalon történik, helyen login név és jelszó esetében.

Itt határozza meg az eladó tulajdonképpen, hogy mi is jelenjen meg a vevık részére.

Központi helyen szerepelnek a termékek , melyek kategóriákba vannak sorolva, és egy

kiszerelés és egy áfa rendelıdik hozzájuk. Itt lehet feltölteni a szerverre a termékhez tartózó

kis és nagy képet. A felhasználó kérésére, vagy az admin döntésére törölhetı egy felhasználó.

Másik fontos rész a rendelések kezelése, két csoportjuk van. Teljesített, ezek már kiírhatók 

egy txt állományban, mivel már nincs fontos szerepük az oldal mőködésében. A másik a

teljesítés alatt álló rendelések, ha az eladó megállapítja a rendelés teljesíthetıségét, akkor a

vevı kap egy üzenetet, amivel tudatható a rendelés sikeressége.

Mivel több eladó is lehet, ezért egy admin felvehet másik admint is, az admin csak a

 jelszavát képes módosítani. Egy alapszintő vendégkönyv karbantartást is végez az admin,

ami csupán egy hozzászólás törlésében merül ki. Ekkor az admin kilép az adminisztrátori

felületrıl, és a vevıi oldalon találja magát.

4.2.2. Az adminisztrációs és a felhasználói (vevı) oldal kinézete

Már a kódolás során egy jól áttekinthetı felület kellett, melyen elkülöníthetık az egyes

egységek. Mivel kódolás közben is végzek hiba vizsgálatot, illetve ellenırzöm az

algoritmusok mőködésének helyességét ezért is fontos volt, hogy errıl a felületrıl tudjam

ellenırizni magam.

Az admin oldalon css segítségével egy gombhatású menüsor látható, mely menü pontok a

különbözı funkciókat tartalmazzák.

Page 20: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 20/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

19

7. ábra (admin felület kinézete)

A vevıi oldalon kinézetét és elrendezését szintén css segítségével, hoztam létre. Ennek a

résznek az érdekessége, hogy a jobb oldalon található úgynevezett „dobozok ” minden egyes

oldalon szerepelnek. Innen tájékozódhat a vevı az aktuális állapotáról, az elsı doboztulajdonképpen a menü. Itt tud a vevı belépni, regisztrálni, vendégkönyvet megnyitni, jelszót

lekérdezni, információkat szerezni az oldal mőködésérıl. Abban az esetben, ha bejelentkezett

a felhasználó, itt tud kilépni, és adatott módosítani. Következı doboz a kategóriák , itt lehet

  böngészni a termékek között, és itt érhetı el a keresés. A harmadik dobozban a kosár

aktuális tartalma látható, ha a kosár tartalmaz már terméket, akkor jelenik meg az összesítés 

hivatkozás. A negyedik doboz a számlálók at tartalmazza. Mivel az oldal dinamikus

tartalommal él, ebbıl következik hogy a dobozok mérete sem álladó. A cél az volt, hogy a

négy doboz egyként mozogjon, és tartalmuk ne fedje a másikat. Ennek megoldására a négy

doboz belekerül még egy dobozba, amit én csak „oldal   falnak ” hívok. Minden egyes doboz

egy php oldal tartalmaz. Melyet a require() függvénnyel hívok be, a következıképpen.

<div id="oldal_fal"><div id="login"> <?php require("include/login.php"); ?> </div><div id="kategoria"><?php require("kategoria.php");?> </div><div id="kosar"><?php require("kosar.php");?> </div>

<div id="lab"><?php require("lab.php");?></div></div>

Page 21: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 21/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

20

8. ábra (vásárlói felület kinézete)

Mint látható a kinézetnek nem tulajdonítottam nagy jelentıséget, mivel elsısorban php

  programozás a szakdolgozat alapja, és nem a html és css használata. Természetesen egy

minimális ismeret szükségez ahhoz, hogy a szoftver áttekinthetı, és használható legyen. Ez a

felület alkalmas erre a célra, és a korábban leírt egyszerőség is érvényes rá.

A két felvétel már a kész programról készült, így talán jobban szemlélteti az oldal

felépítését.

4.2.3. Az adatbázis tervezése [4]

•  Az adatbázis céljának meghatározása, a feladat megfogalmazása. Meg kell

határozni a tárolandó adatok körét, az adatbázis használatának módját és az általa

elvégzendı részfeladatokat.

Page 22: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 22/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

21

•  A szükséges táblák meghatározása. Az összegyőjtött információkat témakörökre,

táblákra kell bontani (normalizálás). Kerülni kell a többszörös adatbevitelt

(redundancia)

•  A táblák mezıinek meghatározása. El kell dönteni a táblában szereplı egyedekrıl,

hogy mit kell tudni róluk és ehhez milyen jellemzı adataikra lesz szükség. Ennek 

ismeretében kell meghatározni a mezıneveket. Figyelni kell, hogy van-e a táblának 

olyan mezıje, amely egyértelmően azonosítja a tábla rekordjait, vagyis betöltheti az

elsıdleges kulcs szerepét, ha nincs, akkor fel kell venni egy ilyen mezıt, amely (akár 

egy egyszerő sorszámozással) biztosítja a rekordok egyértelmő azonosítását.

•  Kapcsolatok felállítása a táblák között. Meg kell határozni, hogy milyen táblákból

kell összetartozó információkat kigyőjteni és biztosított-e közöttük a kapcsolat, ha

nincs, akkor gondoskodni kell úgynevezett kapcsolómezık közbeiktatásáról. A kulcs

mezıt mindkét kapcsolódó táblának tartalmaznia kell. Meg kell vizsgálni a

kapcsolatok típusát (amely lehet: egy az egyhez, egy a többhöz, több a többhöz) és az

adatintegritási szabályokat.

•  A bemutató változat elkészítése, a terv finomítása. A táblákat fizikailag is létre kell

hozni és próba-adatokkal feltöltve. Meg kell nézni, hogy mely mezık maradnak 

üresek, minden szükséges adat rögzül-e, és jól választottuk-e meg az elsıdleges

kulcsokat.

Az adatbázisnak tárolnia kell:

•  Felhasználókat és az adataikat

•  Adminisztrátorokat és az adataikat•  Termék kategóriákat

•  Termékeket és az adataikat

•  Termékekhez tartozó képek címeit

•  Rendeléseket

•  Vendégkönyvet

•  Számlálókat

•  Segéd táblákat

A fentebb említett tervezési pontokat most itt egybevonom, és úgy fejtem ki az adott táblát.

Page 23: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 23/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

22

 Admin tábal:

Itt tárolódik az adminisztrátoroknak a neve, login neve, és jelszava. Ennek a táblának a

segítségével lehet beléptetni az adminisztrátort az admin felületre. Önmagában az

admin_login is funkcionálna kulcs két, a könnyebb használat érdekében azonban az admin_id  

az elsıdleges kulcs. Ez a tábla nem áll kapcsolatban egyetlen másik táblával sem.

User tábla:

Itt tárolódnak a felhasználóknak az adatai. Nevük, jelszavuk, email címük, tartózkodásicímük, telefonszámuk, és az állapota a hírlevéllel (kér-e hírlevelet vagy sem). A

felhasználókról fontos nyilvántartani ezeket az adatokat, mivel ezek alapján rendelhetnek. Az

email címükre érkezik a hírlevél, az admin üzenete, értesítés a rendelésrıl, és a

feledékenyeknek a jelszavuk. Ezért fontos hogy az email cím valódi és egyedi legyen,

akárcsak a login név. Ennél a táblánál is bevezetem egy azonosító mezıt, a könnyebb

használat érdekében. Ez a tábla már kapcsolatban áll több táblával is. Egyrészt kapcsolódik a

vendégkönyv táblához, egy felhasználónak több hozzászólása lehet. Másrész kapcsolódik amegrendelések_fej táblához, egy a többhöz kapcsolattal.

Tábla USERFelhasználó azonosító(kulcs) user_idFelhasználó neve user_nevFelhasználó login neve user_loginFelhasználó jelszava user_jelszoFelhasználó email címe user_email

Felhasználó születésidátuma user_szul_idoFelhasználó országa user_orszagFelhasználó irányító száma user_ir_szamFelhasználó települése user_telepulFelhasználó utcája user_utFelhasználó ház száma user_haz_szamFelhasználó telefon száma user_telKér-e hírlevelet? hir_level

Tábla ADMINAdmin azonosító (kulcs) admin_idAdmin neve admin_nevAdmin login neve admin_loginAdmin jelszava admin_jelszo

Page 24: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 24/56

Page 25: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 25/56

Page 26: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 26/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

25

nagy szükség, azért a biztonság kedvéért egy txt fájlba kerülnek kiírásra, majd törlıdnek az

adatbázisból, úgyszintén törlıdnek a megrendelesek  tábla megfelelı sorai is. A tábla

kapcsolódik még az user táblához is, innen kerülnek megjelenítésre a megrendelı adatai.

Tábla MEGRENDELESEK_FEJRendelés azonosító (kulcs) rendel_idVásárló azonosító vasarlo_idA vásárlás dátuma vasarlas_datumTeljesített vagy feldolgozás alatt allapotVásárlás nettó összege osszeg

 Megrendelesek tábla:

Mint fentebb írtam itt vannak a megrendelesek_fej tábla rendelés azonosítójához tartozótermékek, és a rendelt mennyiségek. Vagyis egyrészt kapcsolódik a fej táblához, másrészt az

aru táblához.

Tábla MEGRENDELESEKMegrendelés azonosító (kulcs) sor_idEz azonosítja, hogy a rendelés melyik fejheztartozik fej_idA megrendelés terméke aru_idAz áru kiszerelésbıl rendelt mennyiség Mennyiseg

Vendegkonyv tábla:

Ez a tábla egy egyszerőbb vendégkönyvet tárol, ami ehhez az áruházhoz elegendı. A tábla

kapcsolatban van a user táblával, mivel fontos a hozzászólás szerzıje. A dátumot itt is a now()

függvény adja. A tárolandó szöveg pedig text típusú. A user táblával való kapcsolatnál fontos

megjegyezni, hogy egy felhasználó törlése nem vonja maga után a hozzászólás törlését.

Tábla VENDEGKONYV

Hozzászólás azonosító (kulcs) konyv_idA hozzászóló felhasználó azonosítója user_idHozzászólás dátuma datumHozzászólás szoveg

 Szamlalo tábla:

Ez a tábla statisztikai szerepeket szolgál, csupán egy sora van, amiben minden mezı

alapértelmezett értéke 0. Amikor egy megfelelı esemény bekövetkezik, a hozzá tartózó

számláló eggyel növekszik. Az adminisztrátornak lehetısége van a számlázok nullázására, és

Page 27: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 27/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

26

ennek következtében új számolást indítani. Ezt a feladatot egy szöveges fájl segítségével is

meg lehetne oldani, de meglátásom szerint adatbázis használata a praktikusabb.

Tábla SZAMLALOElküldött email-ek száma emailTörölt felhasználók száma torolt_user Az oldalt látogatók száma latogatokTeljesített rendelések száma rendelesElfelejtett jelszavak kérelmének száma felejt_emailVendégkönyvbe írások száma konyv_ir Vendégkönyvbe törlések száma konyv_torolBejelentkezések száma login

Regisztrációk száma regisztralt

Az adatbázis felépítését az 9. ábra szemlélteti

9. ábra

Page 28: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 28/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

27

4.2.4. Mysql használata PHP-ból

Miután elkészült az adatbázis, itt az ideje, hogy a php is használatba vegye. A php

rendelkezik a mysql adatbázis használatához szükséges függvényekkel. A kapcsolódáshoz

meg kell adni a szerver nevét, a felhasználói nevet és jelszót, ez a következıképpen néz ki.

mysql_connect($host,$user,$pass);

Ezt követıen a kívánt adatbázis kell megnyitni.

mysql_select_db($db);

Ezek után végezhetık mőveletek az adott adatbázissal. Mivel minden olyan php oldalnak 

tartalmaznia kell ezeknek az utasításoknak amiben adatbázis használ a program, ezért ez egy

külön php oldalon fog szerepelni amit mindig meg kell hívni. Így elkerülhetı a felesleges kód

ismétlés, és egy esetleges változtatást is csak egy helyen kell elvégezni.

Az  sql.php fájl tartalmazza a táblák létrehozásához szükséges összes információt, ez az

oldal a böngészıbıl megnyitva, automatikusan telepíti az oldal mőködéséhez szükségestáblákat, és adat sorokat.

Itt egy részlet, ami egyben példázza a táblák létrehozásának módját. Itt csak az az SQL

szkript szerepel, amely a termékek tárolásáért felelıs táblát hozza létre:

CREATE TABLE `aru` (`aru_id` int(11) NOT NULL auto_increment,`kat_id` int(11) NOT NULL,`aru_nev` varchar(20) collate latin1_general_ci NOT NULL,`kiszereles` varchar(20) collate latin1_general_ci NOT NULL,`aru_netto_ar` int(20) NOT NULL,`aru_leir` varchar(255) collate latin1_general_ci default NULL,`afa` int(3) default NULL,`allapot` enum('0','1') collate latin1_general_ci default NULL,PRIMARY KEY (`aru_id`)

)

Page 29: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 29/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

28

Következı lépés, hogy a tábla mezıit értékekkel kell feltölteni. Az elızı példánál maradva

egy termék felvétele lesz bemutatva. Részlet az admin felület termekek . php oldalról, ahol már 

a PHP szkript továbbítja az INSERT lekérdezést a MySQL kiszolgálónak:

$query_str="INSERT INTO aru(aru_nev,kat_id,kiszereles,aru_netto_ar,afa,allapot,aru_leir)VALUES('$_POST[uj_ter_nev]',$_POST[uj_ter_kat],'$_POST[uj_ter_kiszerel]',$_POST[uj_ter_ar],$_POST[uj_ter_afa],'1','$_POST[uj_ter_leir]')";

if(mysql_query($query_str)){$uzen=$admin_uzen[7];}else{$uzen=$admin_uzen[8];}

Ennek eredményeként bekerül az adatbázisba egy termék. A mysql  _ query() függvény

sikeres végrehajtás esetén TRUE -val tér vissza, hiba esetén pedig  FALSE -al az  INSERT -nél.Ezt kihasználva egy feltételes elágazás segítségével, egyszerően tudatható az adminnal a

mővelet sikeressége.

Adatok bevitele után szükséges lehet az adatok törlése. Szintén ezen az oldalon található a

termékek törlésére vonatkozó részlet is.

$query_str="DELETE FROM aru WHERE aru_id=$ertek";

if(mysql_query($query_str)){$uzen=$admin_uzen[6];}

A törlés esetében felmerülnek olyan problémák, amikor a kapcsolatban álló tábláknál az

egyik sor törlésével a másik táblából egy sor feleslegessé, értelmetlenné válik. Ebben az

esetben használatos a kaszkádolt törlés, ekkor az a bizonyos felesleges sor is törlıdik a

táblából. Az oldal esetében a legösszetettebb törlés, ha egy kategóriát kell törölni. Ebben az

esetben már nincs értelme megtartani azt az árut, aminek a kategóriája törölve lett, de az áru

törlésekor a hozzá kapcsolódó képeket is kell törölni, mivel azok is feleslegessé váltak. Ennek megoldása az elıbb leírt sorrend fordítottja. Elıször a termékekhez kapcsolódó képeket, majd

a kategóriához tartózó termékeket, végül a kategóriát kell törölni.

Az adatbázis használatának lényege az adatok használata. Ebben az esetben lekérdezésre

kerülnek a megadott tábla vagy táblák sorai és oszlopai

Itt egy egyszerő lekérdezés, ami a kategoria tábla összes sorát és oszlopát adja meg.SELECT * FROM kategoria

Page 30: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 30/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

29

Lekérdezések estében jóval összetettebb formák is léteznek, adható meg egy vagy több

feltétel a WHERE  záradékkal, több feltétel esetén azokat logikai mőveletekkel (AND/OR)

kapcsolhatjuk össze. Megadható több tábla lekérdezése a  JOIN ,  LEFT   JOIN ,  RIGHT   JOIN  

segítségével. A sorokat lehet rendezni (ORDER  BY ) csoportosítani (G ROUP BY ), és megadni

a lekérdezendı sorok számát ( LIMIT ). A  LIMIT használata nagy könnyedséget jelent majd a

termékek lapozásánál.

Felmerülhet az igény már felvett sor módosítására is. A következı rész a kategoriak . php-ból

a már létezı kategóriák módosításáért felelıs.

$query_str="UPDATE kategoria SET kat_nev='$_POST[kat_mod_nev]',kat_leir='$_POST[kat_mod_leir]' WHERE kat_id=$_POST[kat_mod_id]";

mysql_query($query_str);

A leírtak inkább mysql–el kapcsolatosak, nem pedig a php-val. Mégis fontosnak tartom

ezek ismeretét, hiszen a csak így képezhetı egyszerőn és gyorsan egy dinamikus

tartalommal rendelkezı weboldal. Számomra ez az egyik legérdekesebb rész a php-ban,

szerintem részben ennek köszönheti azt a széles elterjedést, ami manapság tapasztalható.

Page 31: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 31/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

30

4.2.5. Program kódolása

Következzék a tervezés során megfogalmazott információk forráskóddá alakítása,

 pontosabban azok felhasználása a kódoláshoz. Mivel az egész program forrásának ismertetésenem fér a szakdolgozat keretei közé, ezért csak a kulcs fontosságú és a számomra érdekes

részek kerülnek bemutatásra, ismertetésre. A forráskódot szükséges helyeken a szükséges

információval kommenteztem, így jobban áttekinthetı és értelmezhetı a kód. Az

áttekinthetıséghez kapcsolódik még a kódsorok betördelése, elkülönítése. Ezek 

használatával a már korábban kódolt részek is hamar értelmezhetıvé vállnak, és könnyebben

lehet összeilleszteni az egyes oldalakat. A részletek minden esetben a programból

származnak, azzal a kiegészítéssel, hogy a kommenteket nem jelenítem meg, mivel ezek ebben az esetben inkább zavaró tényezık. Néhány részletett folyamatábrával is szemléltetek.

Programozás során a függvények használatával egyszerősödik a forráskód, könnyebb azon

változtatni és az egyes függvények újrahasznosíthatók. A programozás során két fájlban

győjtöttem össze a függvényeket, egyik a vevıi oldal függvényeit tároló  fugveny.php, másik 

az admin  fugvenyek.php oldala. Elıfordul, hogy egyes függvényeket mindkét felület

használja.

A kódolás során használom a php szuperglobális változóit. Az egyik legfontosabb a

$_SESSION , ez tárolja a munkamenethez rendelt változókat. A php munkamenet kezelése

lehetıvé teszi adatok megırzését az egymást követı oldal lekérdezések között. Minden

látogató egy-egy egyedi azonosítót kap, az úgynevezett munkamenet azonosítót (session

azonosítót). Ez vagy egy sütiben (cookie) tárolódik a látogató gépén, vagy az URL-ben

közlekedik oldalról oldalra. A követelmények között szerepelt, hogy az oldal mőködjön a

sütik használata nélkül is. Ennek megvalósítására az URL-ben továbbítom a session

azonosítót, amit az SID érték tárol. Fontos még a $_POST és $_GET szuperglobál asszociatív

tömbök,  amelyek a HTTP protokoll POST illetve GET metódusai által a kiszolgálónak 

továbbított adatokat tárolják. A fenti tömbök kulcsai ezeknek az adatoknak az azonosítói,

mint karakterláncok. A $_POST tömb esetében például az őrlap egy adott mezıjének  name 

attribútum értéke.

Page 32: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 32/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

31

Eladói oldal

4.2.5.1.  Admin beléptetéseAz adminisztrátorok beléptetése az admin.php oldalon történik, ahol az adatbázisból vett

adatokkal ellenırzıdik a belépni kívánó eladó login neve és jelszava. Amennyiben helyesek 

az adatok az admin felület index. php oldalán találja magát.

if(!empty($_POST[admin_login]) && !empty($_POST[admin_jelszo])){

$query_str="SELECT * FROM admin WHERE admin_login='$_POST[admin_login]'";$eredmeny=mysql_query($query_str);

if(mysql_num_rows($eredmeny)==1){$elem=mysql_fetch_object($eredmeny);if($elem->admin_jelszo==$_POST[admin_jelszo]){

$_SESSION[admin_id]=$elem->admin_id;header("Location: admin/index.php?".SID);

}}

}

A $_POST[admin_login] és a $_POST[admin_jelszo] értékek a bejelentkezni kívánó

adminisztrátortól jönnek, ezek az értékek kerülnek összehasonlításra az admin táblából,

elıször a login név majd a jelszó. Egyezés esetében eltárolódik sessionben az admin

azonosítója, amelynek köszönhetıen látogathatja az admin felület összes oldalát. A header() 

függvény ezek után az admin felület index. php oldalára irányítja az eladót.

Az eltárolt admin azonosító segítségével nem kell minden egyes oldalon ezt a procedúrát

végigjárni. Az eladó simán váltogathat az oldala között, de az illetéktelenek elıtt továbbra is

rejtett kell, hogy maradjon az oldal. Ennek megoldása nagyon egyszerő, minden

adminisztrátori oldalon el kell helyezni a következı feltételt.

if(!isset($_SESSION[admin_id])){header("Location: ../admin.php");

}

Page 33: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 33/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

32

Ha a $_SESSION tömbben nincs beállítva az admin azonosító, akkor egyszerően

visszakerül a felhasználó a bejelentkezı oldalra, annál a felhasználónál, akinél be van állítva,

nem történik semmi.

Ezt kihasználva történik az eladó kiléptetése is.

if($_GET[kilep]==1){

session_destroy();header("Location: ../admin.php");

}

Amikor az eladó kilépés linkre kattint, a GET [kilep] értéke 1 lesz, és ekkor teljesül a feltétel.

A  session _ destroy() függvényt törli a session összes változóját, és ettıl fogva ismét be kell jelentkeznie az eladónak.

A beléptetés mőködését egy folyamatábrával is szemléltetem, ami a 10. ábra

10. ábra

Page 34: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 34/56

Page 35: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 35/56

Page 36: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 36/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

35

function kategoria_kiir_tabla(){

$query_str="SELECT * FROM kategoria ORDER BY kat_nev";$eredmeny=mysql_query($query_str);while($elem=mysql_fetch_object($eredmeny))

{echo "<tr><td>".$elem->kat_nev."</td><td>".$elem->kat_leir."</td><td><a href=\"kategoriak.php?id=".$elem-

>kat_id."&mod=1&".SID."\">Modosít</a></td><td>";

if(torolheto(0,$elem->kat_id,0)==1){

echo "Megrendelés alatt</td></tr>";}else{

echo "<a href=\"kategoriak.php?id=".$elem->kat_id."&del=1&".SID."\">Töröl</a></td></tr>"; }}}

Az adott kategória esetében teljesül a törölhetıség (nem tartozik teljesítetlen rendeléshez),

egy töröl link jelenik meg, melyre kattintva kapja értékül a $_GET[id] a törlendı kategória

azonosítóját.

4.2.5.3.Képek feltöltéseA törlés kapcsán felmerült hogy, a termek_kep mappában lévı képeket is törölni kell. Most

az kerül kifejtésre, hogyan kerülnek oda a képek. Egy képpárt lehetıség van hozzárendelni

egy termékhez a módosítás opcióban.

if(strlen($_FILES[kicsi_kep][tmp_name]) && strlen($_FILES[nagy_kep][tmp_name])){

$query_str="INSERT INTO kepek (aru_id) VALUES($_POST[kep_aru_id])";mysql_query($query_str);

$query_str="SELECT LAST_INSERT_ID() as id";$eredmeny= mysql_query($query_str);$elem=mysql_fetch_object($eredmeny);$kep_id=$elem->id;

$kicsi_nev="k_".$_POST[kep_aru_id]."_".$kep_id.".jpg";$nagy_nev="n_".$_POST[kep_aru_id]."_".$kep_id.".jpg";$query_str="UPDATE kepek SET kicsi_kep='$kicsi_nev', nagy_kep='$nagy_nev'

WHERE kep_id=$kep_id";mysql_query($query_str);

$mappa = '../termek_kep/';

Page 37: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 37/56

Page 38: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 38/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

37

állapota  Folyamatban, akkor a Teljesítés gombra kattintva lehet a rendelést teljesíteni. Az

állapot átállítása a következıképen történik.

$query_str="UPDATE megrendelesek_fej SET allapot='1' WHERErendel_id=$_GET[teljesit_id]";

mysql_query($query_str);

A $_GET[teljesit_id] tartalmazza a teljesített rendelés azonosítóját. Amennyiben az email

küldés lehetısége megvan (van email kiszolgáló telepítve), a rendszer értesíti a vevıt

rendelése elfogadásáról. Ehhez csupán a mail() függvényre van szükség.

mail($cim,$tema,$szoveg)

A teljesített rendelésekre tovább már nincs szükség, ezek egy txt fájlba kerülnek kiírásra.

Erre azért van szükség, mert ha módosítás történik az árukat illetıen, akkor a változtatás

 jelentkezik egy már leadott rendelésen. Ez programozás technikailag helyesen mőködne, de

ellentmond az úgynevezett „üzleti logikának”. Hiszen ha egy rendelés alatt álló termék ára

módosítva lesz, akkor maga a rendelés összege is módosul. A rendelések kiírásának az is

haszna, hogy a megrendelesek és megrendelesek_fej táblák feleslegessé vált sorai törlıdnek,

de továbbra is megtekintheti az eladó a teljesített megrendeléseket a következı formában.

11. ábra (Rendelések formátuma a txt fájlban)

A kiírt rendelések helye az admin mappán belüli a rendelesek mappában találhatók, a pontos

dátummal címezve.

Page 39: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 39/56

Page 40: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 40/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

39

$tomb=$_SESSION['kosar'];

foreach($tomb as $i=>$ertek){

echo $tomb[$i][1]."db ".kosarba_kiiras($tomb[$i][0])."<br>";

$osszeg +=kosar_osszeg($tomb[$i][0],$tomb[$i][1]);}

 Foreach segítségével bejárható az egész tömb, ez azért fontos mert, ha törlıdik egy termék 

a kosárból, akkor is kinyerhetı minden elem. A kosárban szereplı áru azonosítóját

$tomb[$i][0] a rendelt mennyiséget pedig $tomb[$i][1] tartalmazza. A kosár logikai

mőködését szemléltetı 12. ábrán látható, hogy mik a kosárba helyezés feltételei. Fontos

vizsgálni a rendelt mennyiséget, nem adható meg csak 0-tól nagyobb egész szám, mivel nincs

értelme például -1 vagy „a” mennyiségnek. Ezek után fontos eldönteni, hogy a kosár tartalmazza már a megrendelt terméket, ha igen akkor csak a mennyiséget kell növelni,

ellenben bekerül a kosárba a termék és a mennyiség is.

if($_POST[db]>0 && (((string)(int)$_POST[db]) === $_POST[db])){

$van=0;foreach($tomb as $i=>$ertek){

if($tomb[$i][0] ==$_POST[kos_aru_id]){

$van=1;$van_id= $i;

}}

if($van==1){

$tomb[$van_id][1]+=$_POST[db];

$_SESSION['kosar']=$tomb;}else{

$tomb[]=Array($_POST['kos_aru_id'],$_POST['db']);$_SESSION['kosar']=$tomb;

}}

A $_POST[db] tartalmazza a rendelt mennyiséget, a $_POST['kos_aru_id'] pedig a termék 

azonosítóját.

Page 41: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 41/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

40

A vevı dönthet úgy, hogy nem szeretné érvényesíteni a megrendelést, vagy kezdene egy

másikat, erre az esetre tudja a kosár teljes tartalmát üríteni. Ennek megoldása, hogy egy üres

tömböt kap értékül.

$_SESSION[kosar]=array();

A kosár összesítésénél lehetıség van egyesével törölni termékeket, és változtatni a rendelt

mennyiségen. Az unset() függvény segítségével van lehetıség a tömb egy sorának törlésére, a

$_GET[sor] tartalmazza a törölni kívánt sort.

unset($tomb[$_GET[sor]]);

$_SESSION['kosar']=$tomb;

Mennyiség módosítás esetében, ismét kell vizsgálni az értékre.

if($_POST[mod_db]>0 && (((string)(int)$_POST[mod_db]) === $_POST[mod_db])){$tomb[$_POST[sor_id]][1]=$_POST[mod_db];$_SESSION['kosar']=$tomb;

}

Ezen lehetıségeket használva a vevı összeállíthatja a rendelést, és ha be van jelentkezve

meg is rendelheti azt. A rendelést elıször az adatbázisban el kell tárolni, majd az elıbb leírt

módon üríteni a session-t. Az adatbázisba írásért a megrendeles() függvény a felelıs.

Mőködése a következı. Elıször a megrendelesek_fej táblába szúrja be az új megrendelés

adatait, majd az azonosítót lekérdezve a megrendelesek táblába belepakolja a fejhez tartozó

rendelt termékeket, és mennyiségeket.

function megrendeles(){

$query_str="INSERT INTOmegrendelesek_fej(vasarlo_id,vasarlas_datum,allapot,osszeg)

VALUE($_SESSION[id],now(),'0',$_SESSION[kosar_osszeg])";mysql_query($query_str);

$query_str="SELECT LAST_INSERT_ID() as id";$eredmeny= mysql_query($query_str);$elem=mysql_fetch_object($eredmeny);$megrendel_id=$elem->id;

Page 42: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 42/56

Page 43: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 43/56

Page 44: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 44/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

43

{$query_str.=" WHERE afa=$_POST[keres_ter_afa]";}else{$query_str.=" AND afa=$_POST[keres_ter_afa]";}

$and=1;

}

if(isset($_POST[ker_rendez])){

$query_str.=" ORDER BY $_POST[ker_rendez]";}

$_SESSION[sor]=mysql_num_rows(mysql_query($query_str));

return $query_str;}

A lekérdezés aszerint kerül összeállításra, hogy milyen keresési értékek lettek átadva. A

függvény visszatér a keresési stringgel, és megadja, hogy az adott kereséshez hány

eredménysor tartozik. Ez a lapozásnál hasznos, mivel ez alapján lehet eldönteni, hogy hány

terméket kell lapozhatóvá tenni. A lapozás megoldására a mysql LIMIT elıírását használtam.

Aminek meg kell adni azt, hogy hányadik sorttól, és mennyi sor írjon ki az adott

lekérdezésben. A lapozás mőködtetéséhez linkeken keresztül állítom be a kívánt oldalt.

A lekérdezés sessionban eltárolom, így mindig a megfelelı keresési feltételen belüllapozhatok. Akkor, ha a vevı a kosárba helyez, pontosan ugyan arra az oldalra kerül vissza,

ez igaz a bejelentkezésre is. Fontos ezt lekezelni, mivel ha ez nem így mőködne, az

megnehezítené a vásárlást, hiszen mindig újra kéne keresni, majd lapozni.

Az áttekinthetıség érdekében külön jönnek az egyes kód részletek, abban a sorrendben,

ahogy a forráskódban is vannak.

Amikor egy termék a kosárba kerül, marad az aktuális oldal.

$sor_szam=$_SESSION[sor];$elso=$_GET[elso];$query_str=$_SESSION['query_string'];

Itt hívódik meg a keresesi_string() függvény, minden egyes új keresés során.

Page 45: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 45/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

44

$query_str=keresesi_string("user");

Ez a rész akkor teljesül, ha léptetés van az oldalak között.

$query_str=$_SESSION[query_string];

Majd jöhet a megfelelı keresés beállítás után a mysql futtatás.

$sor_szam=$_SESSION[sor];$eredmeny=mysql_query($query_str." LIMIT $elso,5");

if(mysql_num_rows($eredmeny)==0){echo "<center>".$user_uzen[2]."</center>";}while($elem=mysql_fetch_object($eredmeny)){

A while ciklusban íródnak ki megfelelı formában a termékek. A forma kiírását nem

részletezem, ez inkább a html-hez tartozik. Az adatbázisból kinyert adatokat, táblázat

segítségével rendeztem a következı formába.

13. ábra(a termék kiírás elrendezése) 

A kosár gomb hatására lesz elküldve a termék azonosítója és a rendelt mennyiség.

Majd a mysql lekérdezést sessionban eltárolom.

$_SESSION['query_string']=$query_str;

Ez után jön az oldalak léptetését beállító kód sor. Vizsgálni kell, hogy van e léptetési

lehetıség valamely irányban. Ezt mindig az $elso értékéhez kell viszonyítani, ezért kell

 például a lekérdezés összes sorának a száma, mert így tudható meg, hogy az utolsó oldalon jár 

a vevı.

Page 46: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 46/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

45

if($elso>0){echo "<a href=\"".$_SERVER[PHP_SELF]."?elso=".($elso5)."&keres=3&".SID."\"> Elızı </a>";

}

echo ($utolso/5).". oldal ";

if($elso<$sor_szam-5){

echo "<a href=\"".$_SERVER[PHP_SELF]."?elso=".$utolso."&keres=3&".SID."\"> Következı </a>";

}

Ez a lapozás hasonlóan mőködik, ha a vevı a kategóriák szerint kíván válogatni, csak ott a

keresési string helyett egy lekérdezés van állandóan.

mysql_query("SELECT aru_id FROM aruWHERE kat_id=$_SESSION[kategoria] AND allapot='1'");

Az eladónak lehetısége van egy terméket aktivá, vagy passzivá tenni. A vevık csak az aktív

termékeket látják.

4.2.5.7.Képek megjelenítéseA termékekhez tartózó képek megjelenítéséért a kep_kirak() függvény a felelıs, amely

  paraméterként a termék azonosítóját várja. Egyszerő kivitelezés érdekében használok itt

  javascript-et. Akkor, ha az áruhoz nem tartozik kép, a kep mappában lévı k_nincs_kep.jpg  

képet illeszti be. Azoknál a termékeknél ahol van kép, ott a termek_kep mappában található

hozzátartozó képet jeleníti meg. A képre kattintva megjelenik a termékhez tartózó nagy kép,

ezért felelıs a script. Ekkor  a nagy_kep.php oldat nyitja meg egy külön ablakban, ami

megkapja a kép azonosítóját. A függvény egy <IMG> html elemmel tér vissza, ami bekerül az

elıbb leírt termék kiírásba.

function kep_kirak($aru_id){

$query_str="SELECT * FROM kepek WHERE aru_id=$aru_id";$eredmeny=mysql_query($query_str);

if(mysql_num_rows($eredmeny)==0){

$kep ="<img src=\"kep/k_nincs_kep.jpg\" border=0 width=100 height=100>";

Page 47: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 47/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

46

}else{

$elem=mysql_fetch_object($eredmeny);$kep="<a href=\"nagy_kep.php?kep_id=".$elem->kep_id."\" onclick=\"javascript:

window.open('nagy_kep.php?kep_id=".$elem->kep_id."','','resizable=no,toolbar=no,menubar=no,scrollbars=no,status=no,directories=no,width=600,height=500, top=200, left=200');return false\"><img src=\"termek_kep/".$elem->kicsi_kep."\" border=0 width=100 height=100></a>";

$_SESSION[kep_id]=$elem->kep_id;}return $kep;

}

A programban természetesen ennél több funkció van, és az általam leírt megoldások más

módszerekkel is megvalósíthatók. A programozás során voltak olyan problémák melyek igényelték azt, hogy más módszerrel közelítsem meg, mint ami az eredeti elképzelés volt. A

kódolás során igyekezetem úgy alkotni a forráskódot, hogy az esetleges változtatások minél

könnyebben menjenek.

Page 48: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 48/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

47

4.3. Szoftver validáció

Ebben a szakaszban a már  kész programot kell vizsgálni. Ellenırizni kell, hogy a

specifikációban leírtaknak eleget tesz-e a program. Majd tesztelni kell, hogy felszínrekerüljenek az egyes hibák.

A specifikációban foglalt összes megvalósítani kívánt egységet, sikeresen kódoltam. Az

egységek képesek együtt mőködni, és így egy rendszert alkotni. Igyekeztem már a tervezés

során úgy kialakítani a rendszert, hogy az esetleges javítások, és változtatások hamar és

könnyen elvégezhetık legyenek. Illetve új elemek, funkciók könnyen beépíthetık legyenek.

4.3.1. TesztelésA megvalósított rendszert tesztelni is kell, mivel így derül ki, hogy a specifikációnak 

megfelelı termék jött-e létre. A tesztelésnek több módszere is van, ezek közül igyekeztem

minél többet használni.

Elsı a kódolás közbeni tesztelés. Célszerő a kódoláskor professzionális fejlesztıi

környezeteket használni, mint például a  PHPED,a ZendStudio, vagy   EMS SQL Manager .

Ezeknél az eszközöknél már pusztán a szintaktikai kiemeléssel észrevehetık a hibák, és

egyes hibákat már ık is feltárnak. Elsıdleges hibaforrás az elgépelés  bıl, a rossz

szintaktikából fakad. Ezeket általában nem nehéz felderíteni és javítani, köszönhetıen az

eszközöknek, és a php által küldött hiba üzeneteknek, melyek megadják a hiba helyét is.

A kódolás során folyamatosan teszteltem, mint az egységeket, mint az addig kész

rendszert. A teszteléshez nagy segítség volt az echo() amivel az egyes értékeket tudtam

megjeleníteni. Fontos volt ez, mivel az oldalak között áramló adatokról mindig pontos képetkaptam, az értékek kiíratásával mindig eljutottam a probléma forrásához. Másik nagy segítség

a mysql_error() függvény volt, amely a mysql-tıl érkezı hibaüzeneteket jeleníti meg.

Egyes hibákról az admint és a vevıt is kell tájékoztatni, erre létrehoztam az uzen.php oldalt,

ahol tömbben tárolom az egyes üzeneteket.

$hiba[11]="Érvénytelen email forma!";

Page 49: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 49/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

48

Majd a megfelelı feltétel esetén iratom ki az üzenetet.

if(mysql_query($query_str)){$uzen=$admin_uzen[9];}

else{$uzen=$admin_uzen[10];}

echo $uzen;

Így egyrészt megállapíthatom az adott egységrıl a mőködés helyességét a tesztelés során, és

a késıbbiekben informálhatom a felhasználókat.

Fontos a vizsgálni a felhasználóktól érkezı adatokat, arra az esetre, ha nem a megfelelı

értéktartományból kívánnak értéket átadni. Ezen szélsıséges értékek kel is végeztem

teszteléseket, ebbıl tudhattam meg, hogy mőködnek-e a hibakezelési funkciók. A vizsgálatra

itt van két példa.

Ez a feltétel vizsgálja, hogy megfelelı-e a rendelt mennyiség

if($_POST[db]>0 && (((string)(int)$_POST[db]) === $_POST[db]))

Például ha, a rendelt mennyiségre „aaa” értéket adom meg, nem fog változni a kosár tartalma.

Ez pedig, hogy megfelelı-e a vevı által megadott email.

if(ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$",$_POST[reg_email]))

Ez az ellenırzés a http://weblabor.hu/forumok/temak/1809 helyrıl származik, úgy

gondoltam valamilyen szintő ellenırzést az email is kíván, ezért kerestem hozzá ezt a

kódrészletet, amely egy úgynevezett reguláris kifejezéssel veti össze adott email címet [13].

A tesztelés folyamán többször is kipróbáltam teljesen végig járva a vevık és eladók 

lehetıségeit, elvégeztem a rendelés összeállítását, bejelentkeztem, rendeltem, az admin

oldalról teljesítettem a rendelést. Termékeket, kategóriákat vittem fel, módosítottam, töröltem,

az adatokat, és visszaellenıriztem az adatbázisból. Igyekeztem a felhasználók szemszögébıl

elvégezni a tesztelést, bár a rendszerre már nem tudok laikus szemmel nézni. Éppen ezért

töltöm fel az oldalt egy ingyenes php kiszolgálására is alkalmas tárhelyre. Így élesben az

internetrıl is tudom tesztelni, és felmérhetem a hatékonyságát is. A tesztelésben megkértem

Page 50: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 50/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

49

számos ismerıst, hogy ellenırizzék le a rendszer mőködését, és osszák meg velem az

észrevételeiket. Abban az esetben, ha hibát vélnek felfedezni, kértem ıket a pontos

hibaismertetésre, esetleg dokumentálására. Az oldal üzemeltetése és tesztelése nem zárul be a

szagdolgozat elkészítésével, vagyis a mellékletben megadott címen bárki kipróbálhatja.

A tesztelés megkönnyítésére létrehoztam tesztadatokat, ami az áruház esetében valós

termékeket, árakat, kategóriákat, kiszerelések jelent. Azért jó valós adatok kal dolgozni, mert

így könnyebb észrevenni a hibákat. Ezeket az adatokat mellékelem a programhoz.

A tesztelés során felmerülı hibák nagy részét javítottam, de elıfordultak hibák, amiket

nem sikerült. Ilyen például a vendégkönyvbe íráskor, ha a szöveg automatikusan tördelıdik, a

hiba nem az oldal fı funkcióiban jelentkezett. Megoldás jelent, hogy az admin tudja törölni a

hozzászólást.

Hiba jelentkezik a mail() függvény használatakor, ha nincs email kiszolgáló telepítve. Az

email tesztelésénél az ingyen tárhelyen aktiváltam a mail  használatát, és mindent rendben

találtam.

A tesztelés során felmerült egy hiba a keresésnél. Az volt a hiányosság, hogy ha keresési érték 

nem számot kap értékül az összegnél, akkor hibás keresési eredményt ad vissza. Ezt a hibát az

egyik tesztelı ismerısöm jelezte, amit ki is javítottam.

Az oldal feltelepítettem egy szerverre, telepítettem a teszt adatokat, majd regisztráltam a

személyes adataimmal. Pakoltam termékeket a kosárba, változtattam a kosár összetételén,

majd megrendeltem. A telepítés során létrehozott adminnal belépve, érvényesítettem a

megrendelést, és meg is érkezett a hitelesítı email a címemre.

Teszteltem a jogosultságokat is. Megpróbáltam jogosultság nélkül belépni az admin

felületre úgy, hogy az URL-ben megadtam az egyik admin oldal címét. Az elvártak szerint

mőködött, visszadobott a beléptetı oldalra. Szintén ellenıriztem, hogy csak abban az esetben

tudok rendelni a vásárlói oldalról, ha be vagyok jelentkezve, és itt is rendben volt.

Page 51: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 51/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

50

4.4. Szoftver karbantartás

A szoftver karbantartása a rendszeren történı változtatások folyamata, miután a rendszer 

egyszer „munkába” állt. A karbantartás költsége akár a fejlesztés költségeinek többszöröse is

lehet, de sokkal kisebb kihívás, mint egy eredeti szoftver kifejlesztése. A szoftver 

életciklusának ez teszi ki a legnagyobb részét. Használat közben jelentkezı problémák 

kiküszöbölésébıl, és a felmerülı új igények kielégítésébıl áll ez a rész.

4.4.1. Továbbfejlesztési lehetıségekA program fejlesztése közben felmerültek már bennem fejlesztési lehetıségek, illetve már 

 bejáratott webáruházak megtekintésével is sok hasznos funkciót lehet ellesni.1.  Egy adott termékhez tartozó hozzászólások , ahol ki lehet fejteni a termékkel

kapcsolatos észrevételeket, véleményeket. Ennek a megoldása hasonló, mint a

vendégkönyvé.

2.  Több kép hozzárendelése egy termékhez, ehhez az adatbázis készen áll.

3.  Az áruház forgalmától függıen akár az eladó is kiszállíthatja a rendeléseket.

Ebben az esetben egy szállítási költség kalkulátor kell létrehozni.

4.  Egy termék  több kategóriába sorolása, ehhez egy kapcsolótáblát kellene

felvenni. Elıfordulnak olyan termékek, amiket nem is olyan egyszerő csak egy

kategóriába sorolni.

5.  A gyakran ismételt kérdések (GYIK ) oldal létrehozása. Az oldal üzemeltetése

során felmerülı kérdések, és megválaszolásuk egy dokumentumba győjtése.

6.  Az adminisztrátori tevékenységek naplózása. Ebbıl tudható meg, hogy az egyes

eladók milyen tevékenységeket és mikor végeztek. Ehhez egy olyan függvényt kell

létrehozni, amely az adott tevékenységnek megfelelı paramétereket eltárolja egy

dokumentumban.

7.  Stílus lapok  kialakítása. A felhasználóknak lehetıségük lenne az ı ízlésüket

kielégítı színsémákat használni. Ehhez a már létezı 1.css fájlt kellene átalakítani,

és tárolni melyik felhasználónak mi a sémája.

8.  Az oldal kinézetét egy grafikus szakemberrel együttmőködve továbbfejleszteni.

Page 52: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 52/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

51

5. Felhasználói dokumentáció

5.1. Webáruház telepítése

1.  Az áruházhoz tartozó fájlokat fel kell másolni a szerverre.

2.  A config.php fájlban a megadott helyen meg kell adni az oldal email címét, és a pénz

nemét.

3.  Az include/db.php fájlban meg kell adni a mysql használatos paramétereket, itt egy

 példa erre.

4.  Az  sql.php állomány futatása a böngészıben, amennyiben helyesek a mysql

használatához magadott paraméterek, ez a szkript telepíti a táblákat a megadott

adatbázisban. Alapértelmezésként létrehoz egy admint, ezzel lehet bejelentkezni

elıször az admin felületre.

5.  Amennyiben a futtatás után a „Törölje az  sql.php állományt” kiírás látható, és semmimás. Akkor a táblák telepítése sikeres volt. A késıbbi véletlen futtatás megelızve,

törölni kell a sql.php állományt.

6.  Az oldal használatra kész.

Az admin felületre a belépést, azt automatikusan létrejött admin felhasználóval történik.

Login név: admin

Jelszó: admin

A belépést követıen ajánlott a   jelszavat módosítani, illetve fel lehet venni új

adminisztrátort is.

Az oldal telepítésének leírást mellékeltem az a webáruházhoz is, Telepites.txt néven.

Page 53: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 53/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

52

5.2. Üzemeltetési leírásAz adminisztráció felület használatát tartalmazó leírás az Oldal adatai menüpontban a

Segítség linkre kattintva érhetı el. Azért döntöttem úgy, hogy az áruházba beépítem, mert így

mindig elérhetı lesz az oldal mőködésének leírása.

A vevıi oldalon is mellékelve van a használati útmutató, amit az  Információk menüpont

megnyitásával lehet elérni.

A teljesített rendelések elérhetık az admin mappán belüli rendelesek mappában.

A termékekhez rendelt képek a termek_kep mappában találhatók.

5.3. Teszt adatok Az áruházhoz mellékeltem teszt adatokat. Amiket a következıképpen kell telepíteni.

1.  A teszt_adat mappában lévı teszt_adat.php fájt futatni kell a böngészıben.

2.  A teszt_adat  mappán belüli termek_kep mappa tartalmazza a termékekhez

kapcsolódó képeket, ennek a tartalmát az áruház termek_kep mappájába kell

másolni.

5.4. Szükséges hardver és szoftver A vevı és az eladói oldal használatához és mőködtetéséhez egy internet böngészı program

szükséges.

Javasolt böngészık:Mozilla Firefox, Opera, Internet Exploer 

Ajánlott felbontás: 1024 X 786

Az áruház telepítéséhez szükséges egy webszerver, egy adatbázis kiszolgáló, és egy php

értelmezı. Ezen eszközök legegyszerőbb telepítési módja a XAMPP telepítı csomag

használata. Ami ingyenesen letölthetı a http://www.apachefriends.org/en/xampp.html címrıl,

de mellékelem a program mellé is.

Page 54: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 54/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

53

6. Összefoglalás

A szakdolgozat célja egy nagykereskedelemben használható, könnyen kezelhetı, és

karbantartható, termékek értékesítésére alkalmas program volt. A rögzített követelményeknek 

eleget téve sikerült létrehoznom ezt a kereskedelmi egységet. A fı funkciók mellet sikeresen

megvalósítottam az áruház hatékonyabb mőködését elısegítı egységeket is. Legfontosabb

funkció volt, a termékek és a hozzá tartozó adatok felvétele, karbantartása, majd a termékek 

értékesítése. A tesztelés során már kibontakozott egy kép bennem, hogy milyen

hatékonysággal képes ellátni a feladatát a szoftver, de az egyik fı célom, hogy az oldalt valós

vásárlói tevékenységek alatt mőködjön. Vagyis szeretném megoldani, hogy olyan

környezetben használják, mint amire terveztem. Remélhetıleg a közeljövıben ez meg fog

valósulni, és így tudni fogom milyen színvonalú terméket készítettem.

A téma kiválasztása óta szélesítettem ismereteimet és tapasztalataimat, átfogó képet kaptam

az aktuális technikákról. Megismertem a szoftverkészítés menetét, sikerült alkalmaznom a

nagyobb projektek esetében használatos elveket. Elsajátítottam a MySQL adatbázis kezelı

használatát alapszinten, és betekintést nyertem az adatbáziskezelés elméletébe. Sikeresen

telepítettem és használtam az Apache webszervert, és megfigyelhettem az internet mőködését

kicsit részletesebben. Ami számomra a leghasznosabb volt, hogy megtanultam egy olyan  programozási nyelvet, ami egyesíti az elıbb leírtakat, könnyen használható, bıséges

szakirodalommal rendelkezik, és rengeteg feladat megoldására képes. Ezért is kívánom mind

ez irányú tudásomat, mind az elkészített programot tovább bıvíteni. Reményeim szerint

szakdolgozatom jó ajánlólevél lehet, mivel ezen e területen áll szándékomban dolgozni a

 jövıben.

Page 55: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 55/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

54

7. Felhasznált szakirodalom és források 

[1] A magyar társadalom és az internet 2005 végénCím: http://www.tarki.hu/adatbank-h/kutjel/pdf/a880.pdf  

[2] WikipediaCím: http://hu.wikipedia.org/ 

[3] Adatbázisok elmélete, tervezése, és egy gyakorlati alkalmazás a B2C elektronikuskereskedelembılCím: http://www.peetsoft.hu/publikaciok/B2C_adatbazis_modellezes.pdf  

[4] forrás: http://www.ujhelyi.sulinet.hu/x3/c3/e_4.htm 

[5] Szervezési ismeretekkel kapcsolatos információk Cím: http://rs1.szif.hu/~heckenas/okt/lifecyc.pdf  

[6] Matt Zandstra: Tanuljuk meg a PHP4 használatát 24 óra alatt2001 Kiskapu Kft.

[7] Julie C. Meloni: Tanuljuk meg a MYSQL használatát 24 óra alatt2003 Kiskapu Kft.

[8] Varga Csaba: Webáruház fejlesztése

[9] Amit a CSS-rıl feltétlenül tudni kellCím: http://web.axelero.hu/fodorsi/html/css1.html 

[10] Horváth Sándor: Web oldalak használhatósága a példák tükrébenGAMF 2005

[11] PHP kézikönyvCím: http://www.php.net/manual/hu/ 

[12] Prog.huCím: http://www.prog.hu/katalog/4670/PHP.html 

[13] Weblabor Cím: http://weblabor.hu/ 

[14] Tutorial.huCím: http://www.tutorial.hu/ 

[15] Xampp telepítı készlet Cím: http://www.apachefriends.org/en/xampp.html 

Page 56: Nagykereskedelmi webáruház fejlesztése

8/6/2019 Nagykereskedelmi webáruház fejlesztése

http://slidepdf.com/reader/full/nagykereskedelmi-webaruhaz-fejlesztese 56/56

Zsáki Erik Nagykereskedelmi webáruház fejlesztése

8. Melléklet

•  A webáruház megtekinthetı az interneten a http://www.zoldsegshop.extra.hu/ címen.Létrehoztam egy vásárlót, amivel be lehet jelentkezni.

Login név: vasarlo 

Jelszó: vasarlo

•  Az eladói oldalra a bejelentkezés a http://www.zoldsegshop.extra.hu/admin.php 

címen, az alapértelmezett adminnal.

Login név: admin 

Jelszó: admin 

A mellékelt CD tartalma:

•  A szakdolgozat szövege doc és pdf kiterjesztésben

•  A weboldal forrása

 benne az adatbázist, és a teszt adatokat létrehozó php fájlok 

•  Xampp telepítı csomag