Evropský polytechnický institut, s.r.o.
BAKALÁRSKA PRÁCA
2013 MARTIN GALOVIČ
Evropský polytechnický institut, s.r.o. v Kunovicích
Študijní
obor: Elektronické počítače
SOFTWARE ELEKTRONICKEJ AUKCIE PRE MESTSKÝ ÚRAD
V STAREJ TUREJ
(Bakalárska práca)
Autor: Martin GALOVIČ
Vedúci práce: Ing. Ján VOLÁR
Kunovice,
2013
Prehlasujem,
že som bakalársku prácu vypracoval samostatne pod vedením
Ing. Jána VOLÁRA a uviedol v zozname literatúry všetky použité literárne a
odborné zdroje.
Kunovice,
2013
Ďakujem
pánovi Ing. Jánovi VOLÁROVI za veľmi užitočnú metodickú pomoc, ktorú mi
poskytol pri apracovaní mojej bakalárskej práce.
Kunovice,
2013
Martin GALOVIČ
Obsah:
1 Teoretický základ pre
elektronické aukcie a obchod
1.1 Elektronický obchod a obchod na
internete
1.2 Vývoj elektronického obchodu
1.3 Internet ako predmet podnikania
1.4 Internet ako podpora obchodných aktivít
1.5 Internet ako prostriedok podnikania
1.6 Štruktúra systému elektronického obchodu
1.7 Výhody obchodovania prostredníctvom
internetu
1.8 Nevýhody obchodovania prostredníctvom
internetu
2 Analýza zadania - Ekonomické
efekty elektronických aukcií
2.5 Elektronicke aukcie a nákup aukčných
služieb
2.6 Používané elektronické aukcie podľa
spôsobu ich ukončenia
2.7 Elektronické aukcie podľa spôsobu
definovania začiatočje ceny
3 Analýza konkurencie - elektronické
aukcie na Slovensku..
3.1 Trh elektronických aukcií v čase -
základné trendy
3.2 Typy zákaziek s elektronickými aukciami
4 Návrh riešenia, implementácia,
testovanie, ekonomický prínos
4.6 História nástrojov použitých pre tvorbu
aukčného portálu
Zoznam grafov, tabuliek a obrázkov
Internetový elektronický obchod nie sú len webové stránky.
Elektronický obchod zahŕňa množstvo aplikácií ako elektronické
bankovníctvo, nákup v on-line obchodoch alias e-shopoch, hľadanie si práce, konanie
aukcií a spolupráca na rôznych výskumoch
a projektoch a v neposlednej podstatnej rade elektronické e-aukcie. Podobne
hotovostné ale i bezhotovostné transakcie sa realizujú v elektronickej forme,
napríklad platením platobnými kartami, využívaním elektronických e-šekov, alebo
v neposlednej rade platbou cez internetové bankovníctvo. Častými transakčnými príkladmi elektronického
obchodu sú napríklad:
Spoločnoti, ktoré sa rozhodnú prezentovať svoje
výrobky na celosvetovej sieti internet, sa zviditelnia pred konkurenciou, súčasťou
je i ľahšie a rýchlejšie získavanie zákazníkov
a zakázok, stávajú sa pružnejšími a samozrejme zvyšujú svoje zisky a
obraty a v prípade
e-aukcíi v štátnej samospráv aj transparentnosť výberu. Predovšetkým tieto podnety
sú motiváciou a hnacím motorom v manažmente viacerých firiem, podnikateľov a
úradov nielen v Slovenskej republike. Prezentáciou na internete sa môžu zvýšiť jak
spokojnosť zákazníkov, tak aj prestíž firiem. Je samozrejmé, že takáto firma má
väčšie možnosti výberu z ponúk od rôznych dodávateľov a tak isto aj subdodávateľov,
ktorí sa prihlasujú
a spravidla ponúkajú to, čo firma potrebuje pre svoj plynulý chod v rôznych
kvantitatívnych, kvalitatívnych a cenových ponukách. Malá nevýhoda celosvetovej
siete zvanej Internet je ten, že jej je dávaná vina a tým pádom aj všetkým počítačom
na ktorých internet beží, za zníženú aktivitu a interakciu v miestnej komunite,
ale zase na druhej strane je internet bránou do globálneho sveta prináša množstvo
už spomenutých výhod,
z ktorých jedinec a firmy môžu profitovať. Tým pádom všetci môžu myslieť
globálne
a umožniť obchodovať celý svet medzi sebou a naviazať taktiež medzinárodné
vzťahy medzi krajinami za účelom znižovania náklaov a zvyšovania profitu.
Snáď najviditelnejšia výhoda interntu je úspora
nákladov, pretože informácie vo vyšších
rýchlostiach šetria čas, ktorý buď šetrí, alebo zarába peniaze. Veľa funkcií
v podnikateľskom procese bolo automatizovaných, aby sa zefktivnili procesy a
zároveň znížili náklady na pacovnú silu.
Internetový
marketing, alebo online marketing, odkazuje na reklamné a marketingové
úsilie, ktoré používa web a e-maily pre riadenie priameho predaja cez
e-komerciu, rovnako ako predaj z webových stránok alebo e-mailu. Internetový
marketing a online reklamné úsilie sa zvyčajne používajú v spojení s tradičnými
typmi reklamy, ako je rádio, televízia, noviny a časopisy.
Internetový marketing môže byť tiež rozdelený do
viacerých špecializovaných oblastí, ako je webový marketing, e-mailový
marketing a sociálne mediálny marketing: Web marketing zahŕňa e-komerčné
webové stránky, propagačné a informatívne webové stránky, on-line reklamy vo
vyhľadávačoch a organické výsledky vyhľadávačov pomocou optimalizácie vo
vyhľadávačoch (SEO). E-mail marketing zahŕňa aj reklamné
a propagačné marketingové aktivity prostredníctvom e-mailových správ so
súčasnými
i potenciálnymi zákazníkmi. Sociálne mediálny marketing zahŕňa reklamu a
marketing (vrátane virálneho marketingu), úsilie prostredníctvom sociálnych
sietí.
1
Teoretický základ pre elektronické aukcie a obchod
Vznik intenetových e-aukcií a elektronického
internetového obchodu ako celku významne znížil rôzne vstupné prekážky a
nepríjemnosťi spojené s obchodovaním
s rôznymi typmi výrobkov a produktov. Pomocou internetovej siete sú predajcovia
a rôzne firmy, vrátane viacerých štátnych inštitúcií, schopní svoje výrobky a produkty
predávať rentabilnejšie a efektívnejšie.
Ako príklad by sa dal uviesť rok 2007, kde bolo v Spojených
štátoch amerických zrealizovaných zhruba 256 miliárd online transakcií, čo činilo
18 percentné navýšenie
v porovnaní s rokom predtým. Tento fakt pochádza zo správy "State of
Retailing On-line 2007", ktorá bola vydaná a zhotovená organizáciami ako
sú National Retail Federation
a Shop.org. V dnešnej dobe má zhruba 67 spoločností v zozname FORTUNE 1000
(zoznam veľkých korporácií v USA) výnosy z internetového elektronického
podnikania
v hodnote viac ako 10 miliónov amerických dolárov. Medzi pitatich najväčších
internetových e-predajcov patria : Amazon, Hewlett Packard, Staples, Dell a Office
Depot. Z prieskumu vyplýva, že do vrcholovej kategórie produktov predaných cez
internet patria veci ako knihy, muzika, potreby pre kancelárie, počítače a
iná elektronika pre spotrebné účely.
Existencia elektronického obchodovania by bez internetovej celosvetovej
globálnej siete nebola naozaj možná.
1.1
Elektronický
obchod a obchod na internete
Internetová sieť je sústava vzájomne prepojených rôznych
počítačov v sieti, ktoré sú postavené na spoločnej myšlienke a na rovnakých sieťových
protokoloch. Metóda ich vzájomného spojenia a možnosti vzájomnej kooperácie sú,
že bežný používateľ môže výsledný celok považovať za jednotný sieťový prvok.
Je to relatívne nedávno, čo celosvetová počítačová
sieť podstúpila viaceré zmeny –
z technického moderného, pre mnohých priamo zázraku, určeného odborníkom, sa
stala záležitosťou globálne masovou, prístupnou takmer každému. Stalo sa tak v
priebehu toho, keď internet prevzala do rúk sféra komercie a dokázala ponúknuť internetové
služby ako bežnú komoditu každému, kto je a bol ochotný za to zaplatiť. Súčasne sa sféra komercie zaslúžila o to,
aby práca v internete bola maximálne zjednodušená a nevyžadovala takmer žiadne
odborné zázemie, ba čo viac ani povedomie o technických princípoch, na ktorých
je internetová sieť vybudovaná. Dvere internetu sa tým otvorili obrovskému
zástupu používateľov z radu bežných ľudí,
ktorí sú v iných oboroch majstri, ako sú počítače, siete
a v eposlednej rade komunikácie.
Rozvoj internetu v súčasnosnej dobe je daný
zaujímavým paradoxným javom –
a to, že hlavným problémom už nie sú technológie a technická stránka fungovania
tohoto spojenia a ani záležitosti z organizačnej sféry. Aj napriek istým problémom
da dajú riešiť za pomoci investícií od investorov. Tie je komerčná sféra v
podobe investorov ochotná poskytnúť, ak bude možné očakávať určitú návratnosť vynaložených
prostriedkov – je závislá konkrétne na tom, aký bude v skutočnosti zájem o
internetovú sieť a predovšetkým aký veľký bude dopyt po službách na sieti.
Dopyt záleží od viacero vecí, a to či a ako hlboko dokážu ľudia chápať, čo
internet skutočne predstavuje, k čomu a ako by túto sieť mohli využiť a čo
pozitívne by im to mohlo priniesť. Rozvoj internetovej siete momentálne závisí
iba na nich, na ľuďoch.
Elektronický internetový obchod a rôzne formy
tohoto obchodu, môžeme definovať ako akýkoľvek obchod, ktoŕy je alebo bol
uskutočnený s využitím elektronických nástrojov
v sieti internet. Pojem elektronický e-obchod vznikol ako idea, nemá žiadnu presnú
definíciu a je používaný viac zo zvyku pre jednu z foriem využívania prenosu
dát na diaľku. Je vlastne obchodom, pri ktorom dorozumievanie medzi účastníkmi
prebieha
z časti alebo úplne cez počítačové siete, prostredníctvom počítačovej techniky,
jej príslušenstva a v neposlednej rade aj telekomunikácií.
1.2
Vývoj
elektronického obchodu
Okamžite ako vznikla možnosť prepojenia mase ľudí pomocou internetovej siete, vznikol taktiež nápad o elektronickom
obchodovaní. Na počiatku vývoja bolo určite veľmi potrebné vymysliť systém,
ktorý by bol schopný dokázať zabezpečiť chod tohoto typu obchodovania.
Obchodné pravidlá, obmedzujúce určité hranice,
internet tento problém v podstate doriešil. Na začiatku nastávali malé poruchy
a nezhody, ale po tejto etape už nič nebránilo tomu, aby bol uskutočnený ďalší vývoj.
Na internetovej sieti sa začali proezentovať prvé elektronické e-obchody. Týmto
činom firmy vzbudili záujem užívateľov a prívržencov internetu o elektronické obchodovanie.
Ako prvé začali obchody podnikať sami medzi sebou a neskôr sa prešlo na koncových
užívateľov.
Dá sa v zásade tvrdiť, že až na prelome tisícročia
priniesol zmenu myslenia pre obchodníkov a taktiež zákazníkov, ktorí začali v
takýto systém mať dôveru. Dnes si už môžeme v elektronických obchodných domoch zakúpiť
akýkoľvek druh tovaru. Prináša to mnoho nových a určite zaujímavých možností.
1.3
Internet
ako predmet podnikania
Keď v dobách svojej vlastnej akademickej minulosti
bolo prevádzkovanie internetu financované štátnym rozpočtom, pomocou rôznych
grantových agentúr, tak postupný prechod na komerčnejší spôsob prevádzkovania
si vyžiadal nahradiť tieto finančné zdroje inými.
Samozrejmosťu bolo užívateľov nechať platiť za
používanie internetového pripojenia do siete – čo si ale bohužiaľ v praxi
vyžiadalo vznik takých subjektov, ktoré budú z jednej strany vyberať prevádzkové
poplatky a na strane druhej budú hradiť prevádzkové náklady internetu. Z
dôvodov praktických to nakoniec dopadlo tak, že tieto subjekty si začali
budovať časticové siete, teraz už na čisto komerčne postavenej báze, a
prepojovať ich
s internetom. Význam a počet týchto komerčných súčastí rástol rýchlo, až prekonal
jeho pôvodné akademické jadro. Internetová sieť tak dôsledne prešla na čisto
komerčný spôsob činnosti. Stala sa premyslenou sústavou vzájomne prepojených rôznych
menších sietí,
z ktorých každá patrila a patrí konkrétnemu subjektu a ten uhrádza jej
prevádzku a po vzájomných dohodách s ostatnými subjektami umožňuje svojim
zákazníkom vstup aj do iných sietí.
Majiteľ siete po technickej stránke predáva svojim
verným zákazníkom takzvanépripojenie k svojej sieti, avšak kvôli prepojeniu s inými
sieťami v sieťovom systéme
a vzájomnými dohodami s ostatnými prevádzkovateľmi, tak v skutočnosti ponúka
svojim verným zákazníkom prístup k internetovej sieti. Týmto subjektom sa
taktiež hovorí poskytovatelia internetového pripojenia. Pre tohoto poskytovateľa
prístupu je internet predmetom jeho podnikania. Čo ponúka a poskytuje, je v
reále prenos dát, presnejšie definované tzv. TCP/IP konektivita do systému
vzájomne prepojených sietí. Kvôli praktickému využitiu tohoto prepojenia sú
potrebné technické
a softwarové prostriedky – smerovače, routery, uzlové rozbočovače, programy
a podobne, ale taktiež pevné linky či iné druhy spojení pre pripojenie
zákazníka na najbližší prístupové bod v sieti vybraného poskytovateľa
pripojenia. Všetky tieto náležitosti musí niekto poskytnúť. Pre týchto
dodávateľov sa internet takisto stáva predmetom ich podnikania.
1.4
Internet
ako podpora obchodných aktivít
Služby, s ktorými internetová sieť ide v ústrety
obchodovaniu a podnikaniu vo všeobecnosti, sa z neho v súčasnosti stáva samozrejme
najrozšírenejšia forma podpory pre podnikanie. Ide v podstate o činnosť, ktorá
síce nepredstavuje samotné obchodovanie
a jeho formu, ale je pre uzatváranie zakázok potrebná. Všetci, čo chcú niečo
predať, musoa dať svojim potenciálnym záujemcom vedieť o svojej aktuálnej ponuke.
Mali by tiež poskytnúť všetky potrebné informácie pre prípadné rozhodnutie ku
kúpe.
Všeobecná forma poskytovania takýchto informácií
predstavuje uverejňovanie inzerátov
v periodickej tlači a masových komunikačných prostriedkoch, umiestňovanie
rôznych reklám na verejné miesta, prípadné rozdávanie a rozposielanie najrôznejších
reklamných materiálov a podobne. Je veľmi dôležité si uvedomiť, že takýto spôsob
distribuovania je pre príjemcu často pasívny. Je celkom ťažké takúto formu
distribúcie informačných materiálov presne zacieliť ku zainteresovaným užívateľom
a preto často býva celkový výsledok častokrát veľmi neefektívny. V internetovej
sieti je rozosielanie takýchto nevyžiadaných reklamných materiálov brané za
veľmi nevhodné
a nežiadúce. Nie je to dané iba akademickou tradíciou, ale taktiež spôsobom
financovania v dnešnej dobe. K distribúcii reklamných materiálov po sieti by
malo dochádzať iba vtedy, ak o to príjemca sám požiada. [24, s. 32]
Veľa internetových služieb dnešnej doby má taký
charakter, ktorý distribúciu rôznych reklamných materiálov neumožňuje. Tieto
služby potom vychádzajú z princípu, že aktivitu musí prejaviť sám používateľ.
Vo viacerých krajinách globálneho sveta je
internet plne postavený na komerčnej báze. Prevažne viac ako je polovica
užívateľov ho využíva k obchodnému účelu. Pracovníci marketingu v podnikoch
patria k hlavným užívateľom internetových dát. Online marketing je čoraz
častejšie považovaný za najperspektívnejší spôsob podpory pre podnikanie. Ide
o takzvanú novú disciplínu, ktorá za svoj vznik vďačí rýchlemu rozvoju internetovej
siete
a hlavne jeho služby World Wide Web. Ak sa bavíme o online marketingu, tak nejde
len
o samotné obchodovanie, ale aj o významnú podmienku skvalitnenia a zvýšenia jeho
účinnosti u aktivít reklamného a
marketingového charakteru podnikania. Internetová sieť je považovaná za najefektívnejší
nástroj komunikácie na trhu a taktiež za ideálny nástroj pre vyhľadávanie budúcich
zákazníkov. Dva veľmi dôležité aspekty moderného marketingu sú:
·
výber
cieľových skupín zákazníkov,
·
rozvoj
interaktívneho dialógu so zákazníkom.
1.5
Internet
ako prostriedok podnikania
Internetová sieť sa využíva hlavne na šírenie
informácií potrebných k budúcemu uzatváraniu obchodných kontraktov, do budúcna
treba taktiež počítať so zväčšujúcou sa podporou
iných fáz obchodného cyklusu, ktoré sú v dnešnej dobe už na dosť veľkej úrovni.
Internetové obchody je možné rozdeliť do kategórií, ale všetky majú spoločný
cieľ, a to prilákať a zaujať zákazníkov do takej miery, aby si objednali
ponúkané produkty.
K tomuto všetkému je potrebné intuitívne
ovládanie, hlavne prehľadnosť, jednoduché vyhľadávanie, detailnosť jednotlivých položiek,
frekventovanejšia aktualizácia atď.
[19, s. 45]
Obchodovanie na internete prebieha v podstate jednoducho.
Najprv si vyhľadáme obchod
s vhodným sortimentom, ktorý nás zaujíma a následne pri prehliadaní katalógu
výrobkov si vybraný tovar vkladáme do svojho nákupného e-košíka, ktorý je
súčasťou väčšiny
e-obchodov. V prípade využitia elektronických e-aukcií sa sortiment nevkladá do
košíka, ale formou aukčnej siene vo forme online, sa licituje. Po skončení
výberu tovaru je potrebné zadať identifikačné údaje ako sú meno, adresa, telefón,
e-mail atď. Ihneď potom je nutné vybrať spôsob platby, väčšina elektronických e-obchodov
ponúka niekoľko spôsobov úhrady sortimentu, prípadne inou formou platby. Spravidla
je možný aj výber spôsobu dodania ako je pošta či kuriérska služba.
Kvalitný internetový e-obchod neznamená iba
vytvorenie webovej aplikácie na predaj soritmentu, ale ide samozrejme o
vytvorenie komplexného nástroja, ktorý zákazníkovi ponúka širšiu ponuku
produktov, koncentrovanú na jednom spoločnom mieste, tým sa mu ušetrí čas a samozrejme aj nemalé peniaze. [25, s. 54]
1.6
Štruktúra
systému elektronického obchodu
Medzi najdôležitejší komponent elektronického e-obchodu
patrí taktiež elektronický platobný systém. Systém internetového e-obchodu
pozostáva z viac komponentov. Informačná databáza dostupných produktov a služieb,
ktorá udržiava strana predávajúceho. Zákazníkovi je dostupná napriklad vo forme
online katalógov. Databáza nemusí mať charakter centrálneho smeru, ale
predajcovia si môžu udržiavať svoje vlastné informačné databázy. Dôležitú rolu
tu samozrejme hrajú aj prístupy technikého smeru v žltých stránkach, ktoré sa vždy
snažili o nezávislosť katalogizácie tovaru a služieb u konkrétnych predajcov a
sú dostupné predajcom, aj zákazníkom. Informačná databáza často umožňuje pre
zákazníka, súčasne s prezentáciou informácií o rôznom tovare a službách,
realizovať online e-obchodné transakcie. Mnohí predajcovia majú za predpoklad,
že komunikujú so zákazníkmi, ktorí s istotou vedia, čo chcú kúpiť a zase iné predajné systémy zákazníkovi poskytujú
detailný popis sortimentu a predpokladajú, že zákazník sa podľa nich pre tovar rozhodne.
[26, s. 42]
Vyhľadávacie systémy pre služby a produkty sú predovšetkým
určené k vyhľadávaniu očakávaného produktu alebo služby. Nejedná sa pritom len
o lokalizáciu zdroja, šastokrát je tiež možné klásť na vyhľadaný cieľ celú radu
podmienok – očakávanú kvalita, rôzne vlastnosti, cenové ponuky a podobne. Sú tu
aj porovnávacie systémy, ktoré umožňujú naviazanie kontaktov medzi výrobcami tovarov
a zákazníkmi. Vyhľadávané služby sa
v systémoch špecifikujú vlastnosťami a nie menom. Smerovanie procesu vyhľadávania
je riadené z väčšej časti obsahom a
nie identifikáciou, integrujú sa rôzne služby vyhľadávacích nástrojov a viac je
požadovaná ich nezávislosť na doménovej štruktúre
v sietí. Proces vyhľadania viaceré systémy zosobňujú podľa predchádzajúcich
požiadavkov od zákazníka, čiže funguje tu určitý odhad toho, o čo sa zákazník
zaujíma.
Elektronický platobný systém je ekvivalentom finančných
nástrojov bežne používaných, implementuje vystavenie účtov zákazníkovi a
prijímanie jeho platieb. Realizujú sa tu ponuky cien, prijímajú objednávky,
pracuje sa s elektronickou hotovosťou,
s účtovacými systémami atď. Bezpečnostné služby chrániace systém pred škodlivým
a neoprávneným použitím, sú nejakou zárukou zachovania súkromia pre zákazníka
a chránia hlavne pred poškodením aj určitú vybudovanú povesť predajcu. Sú zavedené
vhodnou bezpečnostnou politikou, ktorá uplatňuje funkcie presadzujúcice
bezpečnosť
a autorizácie atď.), ktoré bývajú zväčša zavedené pomocou vhodných heslovacích,
rozumej kódovacích, mechanizmov a elektronických certifikátov.
1.7
Výhody
obchodovania prostredníctvom internetu
S príchodom elektronického obchodovania sa prinieslo
nespočetné množstvo výhod. Najväčšou je pre
zákazníka možnosť nakupovať priamo z
pohodlia domova. Zákazník si v pokoji príslušný tovar môže vybrať a zaplatiť.
Tovar je možné zoradiť podľa viacero kategórií. Z pohľadu majiteľa
internetového obchodu je veľkou výhodou ľahká manipulácia s cenovými hodnotami
a samotným sortimentom v ponuke.
E-obchod je možné so zákazníkom spojiť s jeho
infraštruktúrou, čím bude zaručené, že zákazník bude informovaný za každých
okolností o najaktuálnejšej ponuke a podobne. Internetové e-obchody je možné
využiť ako komunikačný nástroj medzi predajcom
a zákazníkom, ale taktiež slúži aj pre rôzne obchodné transakcie vo
veľkoobchodnom svete. Má to veľké výhody, jednotlivým záujemcom môžeme
prideľovať individuálne ceny na produkty, a tým im výrazne uľahčiť objednávku,
sprehľadnenie a zautomatizovanie finančných transakcií a podobne.
Využitie internetovej siete pre potreby obchodovania má celý rad
predností: spektrum dostupných informácií,
monitorovanie aktivity konkurencie, oslovenie svetového trhu, globalizácia, jednoduchosť aktualizácie informácii
na webových stránkach, skoro permanentná dostupnosť všetkých informácií,
možnosť porovnávania rôznych ponúk
a jednoduchá merateľnosť účinnosti ponúk. [27, s. 35]
1.8
Nevýhody
obchodovania prostredníctvom internetu
Elektronický obchod a jeho účinný nástup neprináša
len svetlé stránky. Je bohužiaľ spojený so vznikom rôznych hrozieb pre
zákazníkov, nedostatkami a nutnosťou prekonania nedôveri ľudí voči elektronickým
platbám po sieti. [35, s. 28]
Veľmi nevýhodné pre internetový obchod je, že
tovar si zákazník nemôže chytiť do rúk, privoňať k nemu, proste s ním nemá žiadny
priamy kontakt. Je preto veľmi ťažké sa rozhodnúť pre kúpu tovaru iba z fotografií,
ktoré môžu byť vo viacerých prípadoch zavádzajúca.
Tvorba webových stránok, nie iba e-obchodu, nieje vôbec
lacnou záležitosťou aj
z dôvodu správnosti stránky. Ak by bola stránka príliš poruchová, zákazník bude
vo veľkej miere obmedzovaný pri objednávaní tovaru. S týmto súvisí samozrejme z
toho plynúca následná nespokojnosť firmy, ktorá daný tovar ponúka a v
neposlednej rade nespokojný zákazník, ktorý zlú náladu z nefunkčnej stránky
prenesie na firmu, ktorá stránku vlastní. Webovka, ktorej poruchovosť je príliš
vysoká, môže pôsobiť nedôveryhodne a následne utrpí jej využiteľnosť a
návštevnosť.
Veľa možných zákazníkov odrádza aj fakt z obavy,
či daná webová stránka je
v dostatočnej miere chránená a zákazníkove osobné údaje nebudú následne zneužité.
Danému probl´mu sa dá napredovať doinštalovaním tzv. firewallu - ochrannej
bariéry, autorizáciou či autentifikáciou a hlavne dobrou politikou bezpečnosti správcu
webovej stránky atď. [28, s. 41]
2
Analýza
zadania - Ekonomické efekty elektronických aukcií
Okrem prirodzeného zmapovávania trhu s elektronickými
aukciami v rokoch 2008 – 2010 bol urobený dohľad aj na ekonomické implikácie
používania – na aktuálnu mieru súťaženia a s tým taktiež spojený konkurenčný
efekt s dosiahnutými úsporami a na cenový benchmarking.
V počtu súťažiacich bol jedným z hlavných faktorov
pre generáciu čo najlepších podmienok pre obstarávateľa. Zozbierané dáta v Grafe č. 1, ktoré obsahovali zákazky,
pri ktorých bol uvedený konkrétny počet záujemcov (dokopy 718), poukázali, že
najčastejšie sa vyskytujúci počet záujemcov bol tri a ten sa identifikoval pri
256 prípadoch verejného obstarávania, čo tvorilo 36 percent z celkového počtu sledovaných zákazok.
Ďalším najčastejším počtom boli dvaja
(22 percent) a tiež štyria (15 percent) záujemcovia. Od počtu troch záujemcov
na jednu aukciu sa ich počet pomaly znižuje. [36, s. 31]
Graf č. 1: Počet záujemcov o
verejnú zákazku (%)
Zdroj: [36, s 23]
Ekonomickým ukazateľom úspešnosti elektronických
aukcií sú hlavne úspory, na ktoré je poukazované ako na jednu z hlavných výhod využívania
tohto postupu pre verejné obstarávanie. Skúmaný súbor obsahoval 725
elektronických e-aukcií v rokoch 2008 – 2010. Niektoré z týchto aukcií však vykazovali
neštandardné znaky (napr. príliš vysoká úspora), alebo neobsahovali všetky potrebné
údaje pre korektné štatistické spracovanie dát. Na analyzovanie úspor bolo potrebné
vylúčiť e-aukcie, ku ktorým neboli dostatočné informácie k výpočtu úspory (štrnásť
aukcií) a e-aukcie s neočakávanými úsporami (deväť aukcií dokopy). V ďalšom
súbore s výsledným počtom 702 elektronických aukcií, kde sa jedná o zameranie
hlavne na závislosť výšky úspor od rôznych atribútov e-aukcií
a verejného obstarávania. Existujú v podstate dva základné pohľady na úspory
pri využívaní eleketronických aukcií. [6, s. 33]
Je
možné ich definovať ako
1 – (súčet vysúťažených cien) / (súčet
začiatočných cien)
alebo ako priemer cez všetky aukcie z
hodnôt:
1 – (vysúťažená cena) / (začiatočná cena)
Prvý prístup pojednáva o celkovej
percentuálnej úspore a druhý pojednáva o priemernej percentuálnej úspore. Celková
úspora môže byť pri malom počte e-aukcií ľahko ovplyvnená jednou veľkou e-aukciou
(pri prerozdelení 702 aukcií do skupín podľa ponúk vzniknú aj skupiny s malým počtom e-aukcií),
ukázalo sa to ako veľmi vhodné pracovať
s priemernou úsporou bez ohľadu na veľkosť elektronickej aukcie. Tento prístup naviac
vypovedá o transparentnosti v e-aukčnom procese – ak je priemerná úspora veľká,
musí byť relatívne veľká úspora pri každej e-aukcii, v tom prípade každá e-aukcia
sa realizuje transparentnou formou. Oba výpočty majú zmysel, preto sa uvádzajú.
Analýza v Tabuľke č. 1 ukázala, že priemerné
úspory sa v čase výrazne nemenia a
dosahujú výšky v intervale osem až dvanásť percent. Celkové úspory sa potom pohybujú
od šesť do dvanásť percent.
Tabuľka č. 1: Celkové a priemerné úspory z e-aukcií počas
rokov 2008 – 2013 (%)
Zdroj: [36, s. 28]
Zo zaznamenaných dát o úsporách sa zisťovala aj distribúcia jednotlivých
úspor v rámci celkového množstva e-zákaziek, čiže to, v akých výškach sa
najčastejšie pohybovali dosiahnuté úspory proti počiatočným cenám. Najčastejšie
boli úspory viac ako nula percent
a súčasne aj menej ako päť percent, ktoré sa dosiahli v 141 prípadoch, to
znamená. pri
24 percentách sledovaných zákaziek. V 23
percentách prípadov neprišlo k žiadnym úsporám, poprípade sa naopak e-aukciou
dosiahla cena omnoho vyššia ako sa požadovalo. V Grafe č. 2 je
možno konštatovať, že v 77 percentách prípadov prišlo pri elektronických aukciách
k výrazným úsporám, čo znamená, že viac ako 3 zo 4 e-aukcií generovali nižšiu,
ako pôvodnú cenu. Úspory do 30 percent môžno pozorovať pri 65 percent zákazok.
Graf č. 2: Distribúcia priemerných úspor z celkového
množstva zákaziek (%)
Zdroj: [36, s. 30]
U výpočtu najčastejších kompletných úspor
pri jednotlivých verejných obstarávateľoch sa vychádzalo zo súboru 702 zákazok.
Zákazky boli uskutočnené 32 subjektmi. 20 verejných obstarávateľov, lepšie
povedané 63 percent z celkového počtu bolo dosiahnutej kladnej priemernej
úspory, ale menšie ako 15 percent, z čoho 11 subjektov (34 percent) dosiahlo
priemernej úspory medzi 10 až 15 percent. Pri zisťovaní vzťahov medzi výškou
úspor
a typom danej verejnej zákazky sa vychádzalo z obidvoch typov výpočtov úspor,
ktoré sa získalo zo vzorky celkovo 673 zákazok. Skúmali sa celkové úspory pri
určitom type. Výsledky jasne poukázali na to, že vysoká celková úspora sa
dosiahla pri podlimitnom type zakázky, zatiaľ čo ďalšími v poradí boli zákazky
s nízkou hodnotou. Ďalším ukazovateľom boli priemerné úspory pri určitom type
zákazok. Zohľadňovali sa aj nulové úspory, čo umožnilo lepší prehľad nad
distribúciou úspor medzi jednotlivými typmi.
Z tohto úhlu pohľadu boli vysoko úsporné podlimitné zákazky, pričom nadlimitné
boli ďalšie v poradí a za nimi ihneď zákazky s veľmi nízkou hodnotu. Pri vzťahu
medzi úsporami a predmetom zákazok, ktorý bol založený na súbore celkovo 691 zákazok,
sa zistilo, že najvyššie úspory sa dosiahli pri stavebných prácach, zato naopak
pri tovare boli veľmi malé. Priemerné úspory je možno vidieť, že najvyššie z
nich boli dosiahnuté pri službách, ale tovary zaostali len o dva percentuálne
body a stavebné práce o tri body. Rozdiely teda nie sú veľmi výrazné. Sledovali
sa taktiež závislosti medzi úsporami
a určitými ukazovateľmi. Celkové úspory z pohľadu a interpretácia ich výsledku
záleží od viacerých faktorov, preto sa riešil vzťah medzi počtom záujemcov a
výškou celkových úspor. Ako prvé bolo potrebné vytvoriť model na očakávané
úspory pri zadanom počte celkových ponúk.
Ako logické sa ukázali tieto predpoklady:
·
v
prípade, že sa do súťaže prihlási len jeden uchádzač, malo by to v podstate priniesť,
·
nejakú úsporu,
·
prínos
ďalšieho uchádzača sa v reále zmenšuje, avšak je stále kladný,
·
pri
akomkoľvek počte uchádzačov existuje určitá horná hranica úspor, nad ktorú sa
nedá dostať.
Pri prihliadnutí na tieto predpokladov
bolo možné vytvoriť istý model: celková úspora vytvorená prvým uchádzačom je s
– čiže výsledná cena je daná ako (začiatočná cena)
× (1 – s) a celkový prínos ďalšieho uchádzača bez ohľadu na počet bol rovný
q-násobku prínosu prechádzajúceho uchádzača (q <1).
Pri tomto platí, že úspora tvorená n-tým
uchádzačom bola rovná (sqn-1)
a celková úspora vďaka celkovému počtu n súťažiacich je daná ako
Pre
odhadovanie parametrov s a q sa použili dosiahnuté úspory zo 702 sledovaných
e-aukcií. Úspory boli označené ako u1, u2 až u702 a počet ďalších ponúk v príslušných
e-aukciách ako n1, n2 až n702. Aplikovaním metódy najmenších štvorcov sa odhadovaním s a q zobrazilo ako
čo pre
súbor e-aukcií dávalo s = 0,04 a q = 0,84. Prvý záujemca zo súťaže by teda mal priniesť
úsporu necelých 4 percent naproti východzej cene a prínos každého iného
záujemcu by mal byť 84 percent prínosu predošlého. Maximálna predpokladaná
úspora predstavovala zhruba 25 percent.
Získaný
koeficient determinácie 0,105 evokoval
nie príliš dobrý odhad závislosti dosiahnutých celkových úspor od počtu ponúk v
e-aukciách a hlavnými problémami boli veľká disperzia celkových úspor pri ktoromkoľvek
počte ponúk a malý počet e-aukcií pri veľkom počte všetkých ponúk. Na elimináciu
oboch problémov sa zoskupili e-aukcie do viacero skupín a zobrazila sa priemerná
úspora v každej skupine elektronických aukcií,
a nie v každej elektronickej aukcii. Jednotlivé e-aukcie boli prerozdelené do
skupín podľa celkového počtu ponúk, že pokiaľ existoval pre daný počet ponuky
dostatočne veľa
e-aukcií, jedna skupina bola tvorená všetkými e-aukciami s jasne daným počtom
ponúk,
v opačnom prípade bola tvorená jedna skupina všetkými e-aukciami s celkovým počtom
ponúk v definovanom intervale (päť až šesť ponúk, sedem až desať ponúk a via ako
desať ponúk).
Pri použití
rovnakého modelu (s = 0,04 a q = 0,84) na nové agregované dáta je zjavné, že po
zoskupení e-aukcií popisuje model priemerne predpokladaných celkových úspor
spoľahlivo. Pri zoskupovaní e-aukcií s päť až šesť ponukami, sedem až desať
ponukami
a s viacej ako desať ponukami – čiže tak, aby bol vpod každou skupinou
reprezentatívny počet elektronických aukcií – model tak dosahoval koeficient determinácie
0,871.
Vymodelované úspory, ktoré mali dať prvý, ako aj každý ďalší uchádzač je možno
považovať za kvalitný odhad v slovenských podmienkach.
Bolo možné spozorovať rôznu efektivitu elektronických
aukcií za jednotlivé roky. Pokiaľ
v roku 2008 priemerne dosiahnutá celková úspora neprekročila 15 percent a pri e-aukciách
s aspoň desiatimi ponukami ani desať percent a v roku 2010 už možno dosahovať
aj úspory presahujúce 20 percent. Toto sa dá ľahko vysvetliť – rok 2008 bol
prvým, keď sa elektronické aukcie začali používať, a preto ich efektívnosť
nemohla mať svoj plný potenciál. V ďalších rokoch 2009 až 2010 bolo ich
zastúpenie väčšie, čo viedlo pri takmer ktoromkoľvek počte ponúk k omnoho vyšším
očakávaným úsporám. Zobrazenie
v Tabuľke č. 2.
Tabuľka č. 2: Závislosť očakávanej výšky úspor od počtu
ponúk v e-aukciach v jednotlivých rokoch (%)
Zdroj: [36, s. 32]
Vzťahom medzi výškou celkových úspor a
počtom celkových záujemcov bolo možné sledovať aj z pohľadu typu zákazok. Nadlimitné
a taktiež podlimitné zákazky predstavovali len necelých sedem percent zo
všetkých 700 sledovaných e-aukcií, pri analýze závislosti úspor od celkového počtu
ponúk pre dané typy zákazok mohlo dôjsť aj
k signifikantnému skresleniu.
Obmedzilo sa to celé preto na podprahové
zákazky a taktiež zákazky s nízkou hodnotou.
V Tabuľke č. 3 je vidieť, že pri
malom počte účastníkov sa dosahovali pri oboch typoch zákazok podobné celkové úspory,
s rastúcim počtom celkových ponúk sa zvyšoval rozdiel v dosahovaných celkových úsporách
v prospech zákazok s veľmi nízkou hodnotou. Možným vysvetlením môže byť fakt,
že pri podprahových zákazkách nemali všetci uchádzači motiváciu súťažiť až ku hraniciam
svojich možností, pretože prípadné nezískanie podprahovej zákazky by nebola pre
nich pravdepodobne významná strata.
Tabuľka č. 3: Závislosť očakávanej výšky úspor od počtu
ponúk v EA podľa typu zákazky (%)
Zdroj: [36, s. 33]
Pri finančných limitoch sa dalo sledovať
charakter súťaženia i po prerozdelení elektronických aukcií podľa druhu zákazky,
a to na tovary, služby a stavebné práce. Aj tu sa ukázalo, že celkové úspory,
ktoré priniesli uchádzači pri obstarávaní tovarov, boli podobné ako prínosy súťaženia
pri verejnom obstarávaní služieb a iných stavebných prác.
Najvýraznejšiu úsporu priniesol malý počet
uchádzačov u služieb. Inou preskúmavanou oblasťou bola závislosť výšky celkových
úspor od veľkosti eelektronickej aukcie, alebo inak povedané, či boli počiatočné
ceny pri veľkých e-aukciách nastavené precíznejšie ako pri malých e-aukciách a
či sa menila motivácia uchádzačov v závislosti od veľkosti
e-zákazky. Čím bola konkurencia na trhu slabšia, tým viac závisela výsledná
cena od počiatočnej ceny, a preto by v tomto prípade malo byť v záujme
verejného obstarávateľa stanoviť si počiatočnú cenu blízku optimu. Na
preskúmanie tohto vzťahu bolo užitočné prerozdeliť e-aukcie podľa veľkostí do
viacerých skupín, avšak najoptimálnejšie tak, aby vznikol v každej skupine rovnaký
počet e-aukcií, ale aby bol celkový počet týchto skupín vhodný pre určenie
trendu. U súboru 702 aukcií sa zvolili decily, tzn. v každej skupine sa
nachádzalo približne 70 e-aukcií Pre nízke sumy bola úspora podľa očakávaní
blízka nule, vzhľadom na to, Že dodávateľom sa za také sumy neoplatilo navzájom
medzi sebou súťažiť. Na druhej strane bolo vidieť, že priemerná úspora korelovala
s počtom celkových uchádzačov. čiže bez ohľadu na veľkosť obstarávania stanovoval
obstarávateľ počiatočnú cenu podobne cca. presne a jediným dôležitým faktorom,
ktorý ovplyvňoval dosahované úspory bol teda počet ponúk. Toto tvrdenie platilo
aj po prerozdelení e-aukcií podľa zákazky, kde bolo možno navyše skonštatovať,
že miera súťaženia bola najcitlivejšia na cenu zákazky pri tovaroch, menej však
citlivá pri službách a najmenej možne citlivá pri stavebných prácach.
V podstate na podklade údajov zo 702 elektronických
aukcií možno konštatovať, že dosiahnuté úspory priamo súviseli s počtom ponúk.
Dokonca platí, že počet ponúk mal rozhodujúci vplyv na výšku celkových úspor,
bez ohľadu na to, o aký typ alebo druh elektronickej aukcie išlo a bez ohľadu
na veľkosť elektronickej aukcie. Ukázalo sa, že prvá ponuka by mala vo výsledku
znížiť výslednú cenu priemerne o štyri percentá a každá ďalšia ponuka o 84 percent
predchádzajúceho zníženia . Pri dostatočne veľkom počte celkového počtu súťažiacich
sa tak dala dosiahnuť úspora viac ako 20 percent a na dosiahnutie desať percentnej
úspory by mali viacmenej stačiť cca. štyria súťažiaci.
V rámci štátneho výskumu bol uskutočnený
cenový benchmarking rovnakých produktov
u vzorky verejných obstarávateľov v Tabuľke
č. 4. Cenová mapa sa zamerala na desať špecifických komodít a porovnávala
priemerné ceny za jednotlivé roky, ktoré boli dosiahnuté pri súťažení bez použitia
elektronickej aukcie s prípadmi, keď sa tento postup verejného obstarávania využíval.
Dosahovanie efektívnosti pri väčšine porovnávaných komodít, konkrétne: papier rozmeru
A3 80g – kvalita B (1 bal obsahoval 500 ks papiera), papier rozmeru A4 80g –
kvalita B (1 bal obsahoval 500 ks papiera), obálka rozmru B6
s doručenkou pre samoprepis (1 ks obálky), euroobal rozmeru A4 (1 bal obalov
obsahoval 100 ks), značka Jar – prostriedok k umývanie riadu (1 l objemu),
toaletný papier typu dvojvrstvový (400 útržkov na 1 ks papira), mlieko vo forme
trvanlivé, 1,5 % tuku
(1 l objemu), rybie filé mrazené (1 kg hmotnosti), dodávaná elektrická energia
– jednotarif (1MWh jednotka), údržba trávnika – kosenie (1 m2 obsahu).
Podľa zistenia, pri jednom
z vyšie uvedených typov komodít boli vysúťažené ceny nižšie v prípade, keď
výber nebol prostredníctvom elektronickej aukcie. Jednalo sa o údržbu trávnia,
a to o hrabanie lístia.
Tabuľka č. 4: Celkové priemerné ceny a ich rozdiely (%)
Zdroj: [36, s. 34]
Výslednú cenu bolo za určitých podmienok
možné navýšiť vďaka zmluvným dodatkom, zameranie bolo aj na problematiku túchto
dodatkov. Pri súbore vzoriek 725 verejných zákaziek prišlo k uzavretiu 51
dodatkov (sedem percent z celkového počtu zákaziek). Najviac dodatkov bolo
uzavretých k stavebným prácam, to znamená z celkového množstva uzavretých dodatkov
išlo presne o 88 percent. Ku skutočnosti, že stavebné práce je ťažké presne zadefinovať,
typológia dodatkov zodpovedala danému predpokladu. Zo zozbieraných dát taktiež
vyplývalo, že najviac dodatkov sa uzatvorilo pri podprahových zákazkách (29 percent
z celkového počtu všetkých podprahových zákazok), viď
Tabuľka
č. 5.
Tabuľka č. 5: Verejné zákazky podľa finančných limitov a
dodatky (%)
Zdroj: [36, s. 35]
Keď došlo k navýšeniu, bolo toto navýšenie v priemere vo výške osem percent
vysúťaženej ceny v e-aukcii. Išlo o mierne nižšie navýšenie ako pri klasickom verejnom
obstarávaní, kde analýza z roku 2011 ukazovala deväť a pol percentné navýšenie cien
v miestnej samospráve cez uzatvorené dodatky. Je možno konštatovať, že vo
vzorke sledovaných elektronických aukcií nedochádzalo k masívnemu efektu
navyšovania vysúťaženej ceny a elektronické aukcie tak prinášajú vo výsledku
celkové predpokladané pozitívne efekty ekonomiky.
2.5
Elektronicke
aukcie a nákup aukčných služieb
Výsledný
finančný efekt používania elektronických aukcií môhol byť ovplyvnený aj tým,
aké dodatočné služby nakupoval obstarávateľ od e-aukčnej spoločnosti. Pri preskúmaní
súvislosti sa vychádzalo zo vzorky všetkých 32 verejných obstarávateľov.
Výsledný celkový počet subjektov bol 34 preto, že jeden subjekt využil viacero typov
služieb. Zistenia ukazovali, že všetci verejní obstarávatelia tieto služby nakupujú
od iných, zväčša externých dodávateľov služieb, čiže interné kapacity na
realizáciu elektronických aukcií boli pomerne slabé. Nakupovali sa rôzne služby,
v rôznom objeme a za rôzne ceny, vzhľadom na to, že softwarové a e-aukčné
spoločnosti volili odlišné stratégie pre získanie nového klienta. Verejní obstarávatelia
zakázok používali najmä tri typy služieb od
e-aukčnej spoločnosti, najviac kúpa softwaru, dlhodobý rentabilný prenájom
licencie
a realizáciu elektronickej aukcie na kľúč, a to až v 94 percentách prípadov testovanej
vzorky. Najväčší objem sa však podľa získaných dát zaobstaral využitím služby realizovania
elektronickej aukcie na kľúč, viď Graf
č. 3.
Graf č. 3: Typy služieb kupovaných od aukčných firiem (%)
Zdroj: [36, s. 35]
Pri e-aukčných službách sa skúmala výška
celkových úspor pri jednotlivých službách. Do výpočtu v Grafe č. 4 boli zahrnuté len úspory pri nakúpe licencie, dlhodobom
prenájme takejto licencie a pri realizácii elektronickej aukcie na kľúč, keďže
ostatné typy boli použité len pri dvoch vzrokových subjektoch, čo mohlo výrazne
ovplyvniť štatistiku. Podľa zistení tak vychádzajú z daného súboru 692 zákazok,
ktoré boli zbavené extrémnych hodnôt a zákazok s nepoužiteľnými zozbieranými dátami.
Histogram umiestnený nižšie zobrazuje najväčšie celkové aj priemerné úspory aké sa
dosiahli pri dlhodobom prenájme licencie. Druhými boli úspory pri nakúpe
softwaru. Najnižšie úspory sa dosiahli pri realizácii e-aukcií na kľúč, čo bolo
pravdepodobne spôsobené nastavením celého
e-aukčného procesu. Ppri malých aukciách by takýto mechanizmus mohol pôsobiť
ako kontraproduktívny, keďže by náklady na implementáciu prekročili úspory z realizácie
elektronickej aukcie.
Graf č. 4: Typy služieb kupovaných od aukčných firiem a
priemerné úspory (%)
Zdroj: [36, s. 36]
2.6
Používané
elektronické aukcie podľa spôsobu ich ukončenia
Hlavným sledovaným kritériom pre typológiu
používaných elektronických aukcií bol spôsob ukončenia celého súťaženia, teda delenie
elektronických aukcií na otvorené
a uzatvorené. Vychádzalo sa zo vzorky 722 zákazok, pri ktorých bolo určené toto
kritérium. Bolo možné pokonštatovať, že väčšina verejných obstarávateľov (92 percent)
ukončila elektronické aukcie vtedy, keď už nedostali žiadnu novšiu cenovú ponuku,
teda využívali vo väčšine prípadov otvorené elektronické aukcie.
Výskum bol zameraný i na implikácie ich
používania, predovšetkým na ekonomickú výhodnosť obidvoch typov elektronických aukcií.
Sledovalo sa to v závislosti od počtu súťažiacich. Získané empirické dáta zo
699 e-aukcií (645 bolo otvorených aukcií, 54 bolo uzavretých aukcií a 3 aukcie
nemali prezentovanú formu) rovnakou metodikou ako
v predošlých skúmaniach. Dosiahnutá úspora v priemere pri otvorených e-aukciách
(11,4 percent) bola viac ako dvojnásobná oproti úspore pri uzavretých aukciách
(4,7 percent). Časť rozdielu by sa dala vysvetliť rôznou mierou súťaženia, keď
v otvorenej e-aukcii boli priemerne štyri ponuky, avšak v uzavretej iba 2,8
ponuky. Podľa predošlých prepočtov by však takýto rozdiel v počte ponúk mal
predstavovať iba 2,87 percent rozdiel v celkových úsporách, preto takmer sedem
percentný rozdiel bol spôsobený pravdepodobne nižšou efektivitou uzavretých e-aukcií,
viď Graf č. 5.
Graf č. 5: Závislosť očakávanej výšky úspor od počtu
záujemcov v e-aukcií podľa formy e- aukcie
v porovnaní s očakávanými úsporami (%)
Zdroj: [36, s. 37]
Pri pohľade na
graf 5 sa zdá, že pokiaľ obsahuje súťaž aspoň sedem celkových ponúk, efektívnejšia
je uzavretá e-aukcia. Tento výsledok spôsobovala heterogenita dát, keďže sedem,
osem, a taktiež dvanásť ponúk obsahovala vždy iba jedna uzavretá elektronická aukcia
a päť ponúk iba dve uzavreté e-aukcie. Pri všetkých jedenásť uzavretých e-aukciách
iba jednou ponukou nebola dosiahnutá žiadna úspora a to pri e-aukciách s dvomi
ponukami sa usporilo v priemerei 1,3 percenta celkových prostriedkov.
2.7
Elektronické
aukcie podľa spôsobu definovania začiatočje ceny
Verejní obstarávatelia definovali počiatočnú
cenu rôznymi metódami. Jednotlivé metódy mali odlišnú mieru presnosti a taktiež
administratívnej a časovej náročnosti
zistenia, a teda aj výslednej ceny. Z celkovej vzorky 688 zákazok, pri
ktorých bolo možné definovať spôsob určenia počiatočnej ceny, sa najviac
pracovalo s cenou, ktorá bola určená
z minulého obdobia (31 percent subjektov) alebo obálkovým spôsobom (25 percent),
čo boli pomerne lacné, rovnako tak rýchle a administratívne jednoduché metódy
definovania počiatočnej ceny. Menej používaným spôsobom určovania počiatočnej
ceny bola cena projektanta (dve percentá), ktorá mohla byť technicky
presnejšia, ale taktiež aj drahšia, viď Graf
č. 6.
Graf č. 6: Spôsob určenia začiatočnej ceny (%)
Zdroj: [36, s. 38]
Zákon o
aukciách hovorí, že ak je kritériom na vyhodnotenie ponúk cena najnižšia, tak
východiskom e-aukcie sú ceny. V prípade vyhodnocovania ponúk na základe ekonomicky
najvýhodnejšej
ponuky, východiskom e-aukcie sú:
·
ceny
a nové hodnoty ponúk, uvedené v technických požiadavkách,
·
nové
hodnoty ponúk, uvedené v technických požiadavkách.
Pokiaľ by išlo o
používanie jednotlivých metód na určenie počiatočnej ceny pri daných predmetoch
verejného obstarávania a určených typoch zákaziek podľa finančných limitov, vykonaná
analýza neidentifikovala žiaden trend a jasnú vnútornú logiku používania, viď Graf č. 7 a Graf č. 8.
Graf č. 7: Metóda definovania začiatočnej ceny a predmet
zákazky (%)
Zdroj: [36, s. 38]
Graf č. 8: Metóda určenia začiatočnej ceny a typ zákazky
podľa finančných limitov (%)
Zdroj: [36, s. 39]
Aj tu je možné
pri určovaní vzťahov medzi celkovoi výškou úspor a celkovým spôsobom určenia počiatočnej
ceny zaradiť aj celkový počet ponúk, vzhľadom k tomu, že regresné modely počas
testu dosahovali príliš malé koeficienty determinácie k tomu, aby bolo možné na
ich základe vyhodnotiť podložené tvrdenia a na preskúmanie týchto vlastností bolo
preto použité len celkové priemerné úspory pre jednotlivé skupiny e-aukcií
a priemerné úspory menších celkov e-aukcií s počtom ponúk najviac tri a s
počtom ponúk nad tri, viď Tabuľka č. 6.
.
Tabuľka č. 6: Priemerné úspory v závislosti od spôsobu
určenia začiatočnej ceny (%)
Zdroj: [36, s. 39]
Analýza vykázala, že najpresnejšie dokáže
vysúťaženú cenu odhadnúť iba projektant, kde ani väčší počet uchádzačov nepriniesol
výraznú finančnú celkovú úsporu. Pravdepodobne teda išlo o zákazky, kde predmet napriek
nadpriemernému počtu ponúk neumožňoval zo strany dodávateľov dostatočnú
flexibilitu. Zdalo sa, že rozpočtovaná cena mesta, cena
z minulého obdobia a najlepšia cena z obálky generovali pomerne presný odhad
výslednej celkovej ceny. Tu však zohrával veľkú úlohu celkový počet ponúk, keďže
s rastúcim počtom ponúk výrazne rastú dosiahnuté celkové úspory. Vysvetlenie bolo
jednoduché, a to že tieto metódy síce dokázali dobre odhadnúť výslednú cenu, za
ktorú by stavebnú prácu zrealizoval ktorýkoľvek dodávateľ, nedokázali však
dostatočne dobre zmerať prínos daného súťaženia, kde bol dodávateľ ochotný výrazne
znížiť svoju maržu, žiže výsledný zisk. Najmenej presná metóda na určenie počiatočnej
ceny bol prieskum trhu, kde nemali jednotliví potenciálni uchádzači dostatočnú
motiváciu schovať sa racionálne. Pre toto je odporúčané sa venovať pri
porovnávaní výsledkov elektronických aukcií pozornosť spôsobu stanovenia počiatočnej
ceny, vzhľadom na to, že odlišné spôsoby ich stanovenia môhli výsledky prikresľovať
odlišným prístupom k odhadu počiatočnej ceny.
3
Analýza
konkurencie - elektronické aukcie na Slovensku
V poslednej dobe, respektíve za posledné
roky, sa v verejnom sektore na Slovensku
začal predierať do popredia inovatívny postup verejného obstarávania,a to
konkrétne elektronické aukcie, tzv.
e-aukcie. Primárne na úrovni lokálnych samospráv a nemocníc, po ktorých nalsedovali
až na úroveň ústredných orgánov štátnej správy. Verejne pôsobiace subjekty používali elektronické aukcie bez
toho, aby im daný postup bol prikázaný zákonom, a to v snahe riešiť fiškálne ekonomické
problémy, prípadne v snahe vybudovať dôveru v integritu verejnej myšlienky spravovania.
Slovenský verejnosprávny sektor teda už má autentickú skúsenosť s týmto
postupom obstarávania.
Problematiku elktronických aukcií preskúmali
na presnej vzorke 32 verejných obstarávateľov, ktorí v rokoch 2008 až 2010
používali elektronické aukcie minimálne raz
a v presne stanovenom termíne boli sprístupnené všetky dostupné informácie o
ich nákupoch. Vzorka sa skladala prevažne z lokálnych samospráv, konkrétne v
počte 24, nemocníc v počte 4 a ústrednej štátnej správy pozostávajúcej z dvoch
ministerstiev. Na základe dát, ktoré boli získané od uvedených subjektov
prostredníctvom zákona
o slobodnom prístupe k informáciám bola vytvorená databáza so 725 zákazkami
presne alokovaných prostredníctvom
elektronickej aukcie v rokoch 2008 – 2010, ktorých celková hodnota bola viac
ako 162 miliónov eur.
Analýza verejných zákaziek alokovaných
pomocou elektronických aukcií v období rokov 2008 až 2010 sa zamerala na tri
oblasti. Prvou oblasťou bolo zmapovanie trendu používania elektronických aukcií,
jak z hľadiska množstva použitia, tak z hľadiska použitia typov verejných zákazok
a predmetov verejného obstarávania. Druhá oblasť sa sústreďovala na ekonomické
aspekty použitia, ako boli miera súťaženia a dosiahnuté celkové úspory. Dajú sa
zmerať jak na celej vzorke verejných zákaziek, tak aj pri vybraných dvanástich rovnakých
produktoch, a to cez cenový benchmarking. Skúmaná bola taktiež strana venovaná dodatkom
a nákladom na organizáciu a výkon elektronickej aukcie, ktoré tiež mali vplyv
na finálny ekonomický efekt pri danom postupe. Posledná oblasť sa zameriavala
na to, aké typy elektronických aukcií boli v sledovanom období konkrétne používané
a aký dopad to malo na dosahovanie ekonomických parametrov verejnej zákazky
obstarávania. Skúmané boli aj typy nakupovaných služieb, konkrétne prostredníctvom
ktorých sa realizovali elektronické aukcie a skúmal sa ich vzťah
s dosiahnutými úsporami.
3.1
Trh elektronických
aukcií v čase - základné trendy
Elektronické aukcie sa na počiatku začali
používať ako inovatívny postup verejného obstarávania vo vybraných lokálnych
samosprávach a nemocniciach dobrovoľne, následne sa používanie rozšírilo i do centrálnej
štátnej správy a ministerstiev. V súvislosti
s postupným zavádzaním elektronických aukcií do procesu verejného obstarávania služieb
a tovaru, je možno od roku 2008 spozorovať postupný, 100 % dobrovoľný nárast používania, a to jak z pohľadu
subjektov,tak i počtu zákaziek a verejných zdrojov získaných uvedeným postupom.
Daný postup narastal, ale väčšina
sledovaných verejných obstarávateľov stále pracovala
s týmto postupom len pri pomerne menšom objeme z celkového množstva verejných
zákazok pre nich. Pri preskúmaní tohto trendu sa vychádzalo z údajov za rok 2010
a taktiež z dát tých verejných obstarávateľov, ktorý poskytli svoje úplné údaje
o prekúmavanom vzťahu. Išlo konkrétne o sedemnásť verejných obstarávateľov. Vo veľkej
miere prípadov nešlo o hlavný typ postupu tohoto verejného obstarávateľa, keďže
takmer polovica obstarávateľov realizovala prostredníctvom elektronických aukcií
menej ako desať percent celkového objemu obstaraných majetkov, viď Tabuľka č. 7 a Graf č. 9.
Tabuľka č. 7: Počet verejných zákaziek obstarávaných
formou e-aukcií a objemy verejných zákaziek alokovaných
formou e-aukcie (%)
Zdroj: [36, s. 40]
Graf č. 9: Porovnanie podielov e-aukcií na celkovom
objeme obstarávaní (%)
Zdroj: [36, s. 41]
Pri dobrom pohľade na ďalší Graf č.10 je možné konštatovať, že
verejní obstarávatelia uskutočnili
vo väčšine prípadov menší počet elektronických aukci, a to až 44 percent
z celkového počtu verejných obstarávateľov, ktorých bolo dohromady 32 a uskutočnilo
maximálne päť eleketornických aukcií za celé sledované obdobie v daných 2008 až
2010.
Graf č. 10: Porovnanie počtu uskutočnených e-aukcií (%)
Zdroj: [36, s. 42]
3.2
Typy
zákaziek s elektronickými aukciami
Z pohľadu predmetu verejného obstarávania,
verejní obstarávatelia postupovali elektronickou aukciou vo väčšej miere pri
obstarávaní tovarov, a to 57 percent z celkového počtu elektronických aukcií. Z
pohľadu finančných ekonomických objemov na celkovom objeme elektronických aukcií
sa však najviac týmto postupom alokovali verejné zákazky na služby, a to presne
57 percent, zakiaľ verejné zákazky na tovary mali na celkovom objeme zakázok
iba päť percentný podiel. Veľká časť obstarávaných
tovarov predstavovala zákazku s veľmi nízkou hodnotou, viď Graf č. 11.
Graf č. 11: Počet a objem zákaziek alokovaných formou
e-aukcie podľa predmetu zákazky (%)
Zdroj: [36,s.43]
Z pohľadu typu verejných zákazok podľa
finančných ekonomických limitov sa najviac zákazok alokovalo elektronickou aukciou
pri obstarávaní zákazok s veľmi nízkou hodnotou, a to i pri všetkých troch
typoch predmetov verejného obstarávania. Vzhľadom
k zákonu o verejnom obstarávaní sa nereguluje súťaženie pri zákazkách s veľmi nízkou
hodnotou a zároveň vŽdy ide o dosť často používaný typ zákazok, je to celkom
pozitívny trend V prípade verejných zákazok z phľadu finančných objemov, je zjavné,
že najväčšie objemy boli dosiahnuté pri nadlimitných zákazkách, aj keď z pohľadu
počtu zákazok zaznamenali najnižšie
použitie elektronických aukcií. Výsledok bol získaný zo súboru celkovo 688 elektronických
aukcií, pri ktorých boli identifikovateľné typy zákazok podľa finančných ekonomických
limitov, viď Graf č. 12 a Graf č. 13.
Graf č. 12:
Predmet verejnej zákazky a typ verejnej zákazky z hľadiska početnosti (kus)
Zdroj: [36,s.44]
Graf č. 13: Počty a objemy zákaziek podľa finančného
limitu (%)
Zdroj: [36,s.44]
Je možné zhodnotiť,
že pri elektronických aukciách sa ich početnosť zvyšuje so znižujúcim sa
finančným ekonomickým limitom. Obdobnú distribúciu početnosti má aj verejné
obstarávanie územnej samosprávy, a to čím nižší finančný limit má, tým vyšší
počet zákaziek musí získať.
4
Návrh
riešenia, implementácia, testovanie, ekonomický prínos
Bakalárska práca pojednáva o elektronickom
software pre aukčný systém pre samosprávne kraje. Konkrétna práca rieši
individuálne požiadavky Mestského úradu v Starej Turej. Požiadavky boli
jasne dané na začiatku, aby sa jednalo o rýchly a účinný aukčný systém schopný
obslúžiť v prípade potreby aj viac užívateľov bez straty stability. Webovú
aplikáciu schonpú obsluhovať aukcie som sa rozhodol vytvoriť v dnes veˇmi
známom
a rozšírenom programovacom jazyku PHP, za pomoci SQL databáze v ktorej sa
ukladajú všetky potrebné dáta a hodnoty pre hladký beh webovej aplikácie.
V následujúcich kapitolách sa budem snažit opísať
hlavné prvky stránky, tzv. nosné piliére, ktoré su podstatné pri vývoji a
ovplyvňujú celkové chovanie a vzhľad.
Indexová stránka, to jest stránka ktorá sa začne
otvárat ihneď po odkliknutí webovej adresy v prehliadači v počítači
obsahuje klasické, i ked dnes už nie tak moc využívané rámce, takzvané frame.
Indexová stránka je rozdelená na dve časti, v ktorej jedna zostáva
statická a stará sa o jednotné zobrazovanie web adresy bez podadries, ktoré
celý systém využívá pri prezeraní rôznych modulov, podstránok. Statická časť sa
taktiež stará o zobrazovanie malej ikony stránky hned vedľa webovej adresy
v prehliadači.
Rámce su nastavené tak aby neboli vidieť posuvníky,
takzvané scrollbary a aby čo najväčšia plocha bola venovaná samostnému aukčnému
systému. Druhá časť indexu je dynamická, to znamená že sa mení podľa
požiadaviek systému alebo užívateľa.
Ako prvá sa dynamicky načíta kontrola celého
systému, check.php stránka, ktorá bola vytvorená z dôvodu diagnostiky
pripojenia k databáze webu, poprípade oznámeniu užívateľovi či na stŕanke
neprebieha údržba. Ďalšou podstatnou súčasťou úvodnej kontroly aukčného systému
je fakt, či sa v databáze nenachádzajú už ukončené aukcie, ktoré neboli
z nejakého závažného dôvodu archivované. Ak takú aukciu systém nájde, tak
ju automaticky zarchivuje vrátane výsledku z prihadzovania pre danú
aukciu. Systém taktiež skontroluje či sa v systéme nenachádza ďalšia pripravená
aukcia a zaktivuje ju
a automaticky pripravý k náhľadu pre užívateľov. Celý kontrolný systém sa
potom presmeruje na úvodné informačné rozhranie index.html. Indexový súbor
taktiež obsahuje základné html meta tagy, indikátory, ktoré sú nápomocné pri vyhľadávaní stránky
a správnej identifikácii a taktiež nemenej dôležitú znakovú sadu stránky pre
kvalitné kódovanie slovenského jazyka. Celý index je vypísaný v Prílohe č. 1. [3, s. 22]
Kontrólny systém pozostávajúci z kontroly
dostupnosti pripojenia na databázu a okamžité prekontrolovanie stavu
aukcií zadaných v systéme a následna prípadne potrebná archivácia už
ukončenej aukcie, ktorá nebola z nejakého dôvodu uskutočnená po ukončení
danej aukcie. Kontrola prebieha na základe aktuálneho dátumu a dátumu nastaveného
pre aukciu. Aby nedošlo k tomu, že kontrólny systém si uloží web dáta od
dočasnje pamäte, tzv. Cache, tak php skript obstaráva aby sa cache pamäť
neukladala do počítača a tým sa donúti po každom novom načítaní stránky
o znovu spustenie systému, v tom istom počítači, bez toho, aby došlo
k zozbrazeniu starého výsledku statusu webu, poprípade inému systémovému
kolapsu. Stŕanka sa taktiež stará o načítanie statusu údržby, ktorú by si
mal administrátor webu zapnút pokaždé, ked niečo závažnejšie ošetruje
a v tom prípade je celý systém presmerovaný na stránku údržby, kde
web automaticky informuje užívateľa o aktuálnom statuse a administrátorovi ponúka znovu
prihlásenie do systému pre prípadne potrebné vypnutie režimu údržby
z webového rozhrania aukčného administračného systému. Ako nejednu
z mála podstatných vecí systém resetuje dočasné identifikátory užívateľa,
tzv. cookies, aby nedošlo k znovu prihláseniu pre novú aukciu. Kód
check.php je ukázaný v Prílohe č. 2.
[1, s. 35]
Ako každá webová stránka, aj táto dostala úvodné
informačné rozhranie, v ktorom sa nachádzajú základné informácie potrebné
pre užívateľov a taktiež prihlasovanie do systému, jak pre administrátora tak
pre užívateľa a prezeranie skončených aukcií. Tento úvodný informačný portál
bol vytvorený za pomoci jazyku html a javascript s občasným využitím php
skriptu. Index.html bol vytvorený v snahe upútať prípadného navštevníka,
poprípade aby sa užívateľ príjemne cítil pri klikaní na odkazy. Za pomoci
javascriptu bola webu vdýchnutá menšia dynamika v menu, aby celok pôsobil
interkatívne. Stránka je tvorená jednoducho, z obrázkového menu a obsahuje
len minimum potrebných informácií, vrátane mojeho tagu o vytvorení webu a
taktiež tam môže byť umiestená malá reklama podľa potreby. Po kliknutí na
ktorýkoľvek odkaz javascript zabezpeči dymanicke prerolovanie menu na
požadovanú stránku. [23, s. 60], viď Obrázok
č. 1.
Obrázok č. 1: Hlavá stránka
Zdroj: vlastný
V odkaze info je pripravená základná krátka
prezentácia o aukčnom webe a prípadné odkazy mesta na ich prezentácie
na facebooku a podobne. Odkaz s názvom administrácia slúži pre
administrátora aukcií, zamestnanca Mestského úradu Stará Turá a upozorňuje
na to bežného návštevníka, poprípade užívateľa čakajúceho na štart aukcie.
V menu po kliknutí na odkaz zoznam aukcií je možno veľmi ľahko dohľadať
archivované a taktiež aktuálne aukcie, stačí si vybrať. V prípade
kliknutia na aktuálne aukcie sa otvorí nové maximalizované okno a ukáže sa
kompletný výpis aukcie s časom odpočitavania do štartu, poprípade konca
a ponuka na prihlásenie pre prípad potreby byť účastník na aukcii.
V prípade práve prebiehajúcej aukcie sa zobrauje aktuálna suma položky
a meno prihadzujúceho. Pod odkazom Prihlásiť je možno nájsť veľmi
jednoduchý prihlasovací formulár, do ktoŕeho je potrebné vložiť kód od
administrátora webu, ktorý tento kód pre každého účastníka aukcie vygeneroval
jedinečný. Slúži k tomu i upozornenie pri prihlasovaní. Odkaz kontakt
slúži ako základná prezentácia mesta ako sa možno nakontaktovať na príslušnú
inštitúciu, viď Obrázok č. 2.
Nachádza sa tam taktiež zrýchlený formulár pre odoslanie emailu
administrátorovi mesta, ktorý používa k odoslaniu základný smtp protokol webhostingu,
na ktorom je umiestnená stránka. Odosielanie mailu je riešené php skriptom
ktorý preberie informácie z email formuláru a prepošle ich na danú
adresu uvedenu vo formulári s úpravou hlavičky a predmetu emailu.
Ukážka základného php skriptu, ktorý obsluhuje odosielanie emailu, je v Prílohe č. 3. Kontaktná stránka tiež
obsahuje nemenej potrebnú interaktívnu mapu z google, podľa ktorej
záujemca rýchlo dohľadá miesto, kde sa inštitúcia nachádza. [34, s. 46]
Obrázok č. 2: Kontaktný formulár
Zdroj: vlastný
Celá úvodná informačná stránka index.html je
vytvorená za pomoci kaskádových štýlov, tzv. CSS.
Ako už bolo spomenuté vyššie, webový aukčný portál
obsahuje administračný systém. Po požiadavke Mestského úradu v Starej Turje
je tento systém sprístupnený len jednému používateľovi, ktorý v ňom bude
obhospodarovat aukcie, aby nedošlo k zbytočným problémom, ktore by mohli
vzniknút zasahovaním viacerých užívateľov a každý s rozdielnou
povahou zásahu.
Do systému administrácie, viď Obrázok č. 3, sa pristupuje z hlavnej stránky, a to
kliknutím na menu Administrácia. Po rozkliknutí sa zobrazí jednoduchý
prihlasovací formulár kde sa zadajú meno a heslo administrátora
a zvolí sa položka Prihlásiť.
Obrázok č. 3: Prihlásenie do administrácie
Zdroj: vlastný
Po spustení prihlasovacieho skriptu si php kód
prevezme všetky údaje z formulára a začne sa prihlasovací proces,
ktorý spočíva v napojení sa do databáze a následnom prekontrolovaní,
či dané prihlasovacie meno a heslo je správne. V prípade, že nezistí
zhodu s tým, čo je uložené v prihlasovacej databáze, tak užívateľa na
danú skutočnosť upozorní a vyzve ho k znovu prihláseniu na hlavnej
stránke. To isté nastane v prípade, že sa jedná o nepovolenú žiadosť
napísaním priamje adreys prihlasovacieho skriptu. Skript pri kontrole, že
pracuje s prázdnymi údajmi, človeka automaticky presmeruje na začiatok
aukčného portálu. [5, s. 32]
V prípade, že prihlásenie prebehlo
v poriadku, php skript vytvorí dočasný súbor, tzv. cookie a uloží do neho údaje potrebné pre
pracovanie na stránke a nastavý čas platnosti cookie, v tomto prípade
3600ms, po tomto intervale neaktívnosti sa cookie automaticky znefunkční
a je nutné sa opäť prihlásiť, k čomu systém automaticky vyzve
presmerovaním na webu. Prihlasovací php kód je v Prílohe č. 4.
Pri úspešnom prihlásení užvateľ pred sebou vidí
jednoduché rozhranie, pre niekoho možno nie moc graficky lákavé oproti úvodnej
stránke, od toho sa ale odvíja aj názov Spartan’s engine a požiadavok na
jednoduchosť a prehľadnosť. Systém je
plne automatický
a vytvorený tak, aby eliminoval, čo najviac prípadných nedoborných zásahov od
neskúseného administrátora. Administrátori sú samozrejme ľudia, ktorí budú
preškolení aby ovládali systém dokonale, ale môžu nastať rôzne situácie kedy
budú potrebovať zastúpit a podobne a v tom prípade sa zíde decentne
odolnejší systém voči nedokonalým zásahom neskúsených administrátorov. Taktiež
sa môže stať, že administrátor začne tápať, alebo nebude vedieť kde a ako začať
a od toho ho systém navedie rôznym aktivovaním
a deaktivovaním ponúk v ovládacej ponuke, aby sa človek rýchlejšie
zorientoval. Menu je veľmi prehľadné a rozkúskované graficky do rámčekov,
z toho každý rámček má svoj názov, o čo sa aktuálne v ponuke jedná.
Základné prázdne menu bez akejkoľvek aukcie v systéme po prihlásení
administrátora sa samo ponúka k vytvoreniu novej aukcie
a väčšina vecí na administráciu je neaktívna až do doby vytvorenia prvej
aktívnej aukcie. Systém pri spustení automaticky kotroluje či je v systéme
aktívna a pasívna aukcia zadaná a v prípade že tomu ta nieje tak menu
náležite upravý. V prípade že je v systéme aukcia, tak aktivuje
príslušne položky pre administráciu, viď Obrázok
č. 4. Výpis php kódu je v Prílohe
č. 5. Systém funguje štandardne na kombinácii html a php s pripojením na
sql. Každá podstránka administrácie vždy kontroluje platnosť cookie a údaje
v ňom, aby nedošlo k neoprávnenému užitiu webovej aplikácie a
následnej manipulácie s aukciami.
Obrázok č. 4: Administračné menu
Zdroj: vlastný
V základnom menu sú
v prvej sekcii údaje o Administrátorovi, kde si môže meniť svoje
údaje o sebe, ktoré následne systém využíva pri práci s rozhraním,
viď Obrázok č. 5. Do základných
údajov patrí aj zmena hesla a prihlasovacieho mena. Skript php
s požiadavkami na sql databázu je v Prílohe č. 6. Každá administračná podskupina má
Obrázok 5: Zmena admin údajov
Zdroj: vlastný
jednoduché tlačítko so šípkou pre návrat
o krok späť, aby sa nemuselo používať tlačítka naspäť v prehliadači,
čo by spôsobilo odhlásenie
zo systému, kvôli citlivosti zabezpečenia. Väčšina
položiek v menu je automaticky vpisovaná načítaním z databáze,
o čo sa stará php skript pri spustení.. V prípade, že sa aktuálny
administrátor rozhodne pre zmenu nastavení, tak len jednoducho napíše nové
heslo, staré nieje vyžadované z dôvodu preverovania cookie
a v prípade potreby si môže zmeniť aj prihlasovacie meno
a email. Všetko potom jednoducho potvrdí kliknutím na tlačitko Zmeniť.
V prípade, že dôjde ku zmene údajov, čo administrátor potvrdil, tak sa
spustí skript, ktorý ako prvé prekontroluje zhodu nového hesla, ktoré je skryté
do nečitateľnej formy a v prípade že sa nezhoduje tak sa vráti naspäť
a upozorní hláškou na obrazovke. V prípade zhody hesiel sa skript
posunie o riadok ďalej, prekóduje heslo pomocou MD5 hash kľúča
a uskutoční riadny zápis nového hesla a mena a emailu. Po
úspešnom uskutočnení vypíše na obrazovku oznámenie a prepne sa naspäť do
administračného menu. Silná šifra MD5 bola zvolená z dôvodu vyššej
bezpečnosti, ktorá je vyžadovaná v dôsledku možnej manipulácie
s aukciami. V Prílohe č. 7
je skript na zmenu údajov. [30, s. 55]
Ďalšou, nemenej podstatnou súčasťou
administračného rozhrania je možnosť nastaviť si status webu, to znamená že,
buď zachovatp lnú prevádzu so všetkými funkciami, alebo nastaviť mód údržby,
kedy je úvodná stránka presmerovaná inam, na oznam o práve prebiehajúcej
údržbe systému. Nastavuje sa to veľmi jednoducho, a to kliknutím buď na
zapnúť, alebo následne na Vypnúť. Kliknutie
na tlačítko spôsobí to, že sa spustí skript a ten vykoná zmenu
v databáze, kde je uložený status webu, z ktorého potom načítava
skript check.php, pri úvode stránky, kde kontroluje status celého aukčného
portálu, ako to už bolo popísané vyššie. Skript na zmenu statusu je v Prílohe č. 8. Skript sa vykoná spôsobom
overenia platnosti cookiea následného spojenia sa s databázou do
príslušnej tabuľky, kde zmení hodnotu dostupnosti hlavného webu. V prípade
údržby sa zobrazi veľmi jednoduchá stránka, ktorá sa ospravedlní návštevníkom
za nedostupnosť portálu a doporučí im aby sa vrátili neskôr. Taktiež
obsahuje núdzový prihlasovací formulár pre administrátora aby vypol stav údržby
cez webové rozhranie. [7, s. 63] Viď Obrázok
č. 6.
Obrázok č. 6: Režim
údržby
Zdroj: vlastný
V prípade, že administračný aukčný systém je
prázdny, tzn. bez aukcií, tak systém automaticky vyhodnotí nepotrebu
generovania prístupových kódov a túto funkciu z menu automaticky
deaktivuje s oznamujúcou hláškou o reaktivácii až po založení aukcie
do systému.
Jeden, nie až tak podstatný odkaz v menu,
resp. tlačítko, je na bezpečné odhlásenie, kde sa ihneď po kliknutí zruší
platnosť cookie a system sa dá do východzej polohy, čiže do počiatočného
menu.
Najdôležitejšia časť celého menu je ponuka na
správu aukcií. V prípade že systém nebol predtým naplnený, alebo že všetky
akcie už uplynuli a sú v archíve, tak sa zobrazí ponuka len na
vytvorenie novej aukcie a odkaz na prezeranie archivovaných aukcií vrátane
výsledkov o ukončení. Pri kliknutí na tlačítko Archív aukcií sa otvorí v novom
okne výpis aktuálnych aukcií, ktoré su uložene v archíve databáze, resp.
v tabuľke určenej pre archiváciu. Každá aukcia má svoje unikátne ID, aby
sa nepomiešali a nezobrazovali zle.
Obrázok č. 7:
Archív aukcií
Zdroj:
vlastný
Skript, respektíve celý Archive reader, viď Obrázok č. 7 ako som ho nazval je
v Prílohe č. 9 a je v ňom
možné vidieť pripojenie na datbázu a vyčítanie aukcií jednu po druhej
z tabulky pre archiváciu a následné automatické vpísanie do tabuľky
Readera.
[21, s. 36]
V prípade, že sa administrátor rozhodne
vložiť do systému prvú aukciu, tak stačí kliknúť na tlačítko Vytvoriť. Po
načítaní stránky sa zobrazí prehľadný formulár, v ktorom je nutné vyplniť
krok za krokom údaje potrebné pre samostnú aukciu. Táto aukcia bude prvá
a bude niesť označenie aktuálna.
Obrázok č. 8: Vytvorenie novej aukcie
Zdroj: vlastný
Formulár pre vytvorenie novej aukcie, v tomto
prípade prvej, viď Obrázok č. 8,
a to zároveň označenej v systéme ako aktuálnej, je vytvorený čo
najviac možne prehľadne, aby sa administrátor systému v ňom rýchlo
zorientoval. Ako prvé sa musí zadať Názov, popis a pokračovať postupne
nadol, až kým sa nedostane administrátor na koniec formulára, kde to už len
potvrdí jedným kliknutím na tlačítko Vytvoriť. V prípade že má aukcia
obsahovať aj obrázok, je vo formulári vytvorený odkaz na pridanie obrázka,
resp. pripojenie obrázka z disku počítača. O nahrávanie obrázka na
server sa stará skript pre upload a to tak, že obrázok prevezme, skontroluje
typ o aký sa jedná, napr. jpg, gif atd. a premenuje obrázok
Obrázok č. 9: Hlavné menu aukcií
Zdroj: vlastný
podľa Id aukcie,
ktoré si predtým načíta podľa ID aukcií v archíve a doplní
k názvu už len príponu a následne obrázok prekopíruje na miesto
presne určené na servri. Čas a dátum vo formulári je automaticky zisťovaný
php skriptom a rozdelený na jednotlivé časti, ako sú hodina, minuta, deň,
rok, mesiac. V prípade času sa jedná o automatické zistenie
24 hodinového formátu času, aby nezvnikali komplikácie pri spúšťaní aukcie,
všetk oej ošetrené v samotnom skripte php. Administrátor aukcií samozrejme
môže s časom a dátumom akokoľvek manipulovať, systém len za neho
predvyplní údaje, aby potom nedošlo k nejakým nejasnostiam pri vyplňovaní.
Vo formulári sa taktiež nachádza ja políčko s cenou, kde sa vpisuje len
číselná hodnota a znak euro sa automaticky pripisuje k cene. Vzhľadom
na to, že aukcie sa budú riešiť len v rámci Slovenskej republiky, tak iná
mena nepripadá v úvahu. Ďalšia docela podstatná vec, ktorú treba dobre
zváziť pri vytváraní aukcie je jej typ, a to anglicka alebo holandská,
podľa toho potom vo výsledku bude systém reagovať na prihadzovanie. Pri
vytváraní aukcie skript prekontroluje ID, priradí nové a samozrjeme zapíše
všetky hodnoty do tabulky v databázy a priradí k aukcii
identifikátor aktuálna. V administračnom menu, viď Obrázok č. 9 a Obrázok č. 10,
následne pribude nová položka, a to správa aukcií, kde sa môžu ľubovoľne
upravovať. Zároveň sa v menu objaví počítadlo aukcií, ktore počita počet
aukcií v systéme. V menu sa taktiež následne aktivuje ponuka na
vytvorenie draftu budúcej aukcie, ktorá bude nasledovat po skončení tej
aktuálnej a systém si automaticky nastaví z draftu novú aktuálnu
aukciu.Posledná položka, ktorá sa v menu objaví naviac, je odkaz na
zobrazenie danej kaktuálnej aukcie vytvorenej v systéme.
Obrázok č. 10: Hlavá stránka aukcií
Zdroj: vlastný
Ak má administrátor aukčného portálu infomrácie
pre ďalšiu aukciu, ktorá sa bude konať hneď po aktuálne prebiehajúcej, tak
nemusí stratiť čas, ak idú hneď po sebe v krátkom čase, ale bez problémov si ju
môže nastaviť ihneď v systéme, a to pod novo aktivovanou voľbou Draft budúcej,
kde sa mu ihneď po rozkliknutí objaví úplne
rovnaký formulár na vytvorenie aukcie, ako pri prvej, popisovanej vyššie.
Skript, ktorý sa stará
o vkladanie aukcií do databáze systému
je v Prílohe č. 10. Je to skript na
vytvorenie prvej aktuálnej aukcie. Pod Prílohou
č. 11 je možno si prezrieť skript na vytvorenie draftu, ktorý je veľmi
podobný a líši sa len drobnosťami v oznamovacích hláškach administrátorovi
a v priradení ID aukcie, ktoré musí byť samozrejme vyššie ako pri práve
prebiehajúcej. ID aukcií je v číselnej
forme, idúce od nuly a reflektujú sa v ňom už i aukcie v archíve. Akonáhle
administrátor dokonćí vytvorenie draftu, čiže predlohy pre nasledujúcu aukciu,
tak sa počítadlo aukcií v systéme navýši o ďalšiu aukciu, viď Obrázok č. 11. Čo je veľmi podstatné, č
osa automatizácie systému týka, je vlastnosť systému rozpoznat vytvorené dve
aukcie a následné deaktivovanie dvoch políčok v menu, a to tých, ktoré ponúkajú
vytváranie aukcií. Je to preto, aby si administrátor v rýchlosti nesplietol čo
vlastne chce robiť a nevznikli v systéme dve a viac aukcí s rovnakými
identifikátormi, ako sú aktívna
a draft. Požiadavok mesta bol jasný a presne definovaný, na dve aukcie zároveň
uložené
v systéme.
Obrázok č. 11: Hlavá stránka aukcií
Zdroj: vlastný
Ďalšou, určite zaujímavou položkou v menu, ktoré
sa pekne rozrástlo po vytvorení aukcií, je tlačítko pre upravenie aukcií. Po
rozkliknutí je možno vidieť obidve aukcie na stránke, viď Obrázok č. 12, kde každá z nich se separovaná v rámčekoch a
jednotlivé okienka sú popísané. Zobrazuje sa tam všetko, čo administrátor
zadal, vrátane obrázka z úložišťa na servri. [8, s. 33]
Obrázok č. 12:Výpis aktuálnej aukcie v
administračnom režime
Zdroj: vlastný
Ako sme si mohli už všimnúť predtým, pri vytváraní
aukcií. Tak aukcia môže prebiehať iba v jeden deň a trvá maximálne pár hodín.
Je to dané požiadavkami legislatívy a mesta Stará Turá.
Čo určite stojí za povšimnutie tak sú dve tlačítka
pod každou aukciou, a to Upraviť
a Zmazať. Tieto tlačítka su pre administrátora užitočné z dôvodu, že ak sa
rozhodne pre úpravu alebo radikálnmu zmenu, tak nemusí mať znalosť jazyka SQL,
resp. Ovládanie databáze na servri, ale môže to pohodlne vyriešiť cez webové
rozhranie, viď Obrázok
č. 13. V prípade že zvolí zmazať aukciu, tak sa kompletne odstráni zo
systému a to vrátane výmazu príslušného obrázka z úložišťa, aby zbytočne
nezaberalo an serveri miesto. Po zmazaní ktorejkoľvek aukcie sa v administračom
menu automaticky zobrazí ponuka na znovuvytvorenie príslušnej aukcie, či už
aktuálnej, alebo draftu, čize budúcej. V Prílohe
č. 12 je možno nahliadnuť do skriptu pre výpis aukcií a v Prílohe č. 13 pripájam skript pre
mazanie aukcie zo systému.
Obrázok č. 13: Úprava už zadanej aukcie
Zdroj: vlastný
Ak sa administrátor rozhodne zľahka modifikovať
aukciu uloženú v systéme, resp. jeho databáze, tak je to veľmi jednoduché a
táto funkcia sa nachádza pod tlačítkom Upraviť. Po rozkliknutí sa zobrazí
formulár veľmi podobný tomu, ktoŕy sa použil pri vytváraní novej aukcie do
systému, ale je tu jeden podstatný rozdieľ, a to že v ňom budú automaticky
zobrazené hodnoty pre aukciu, v ktorej bola vybraná voľba pre úpravu. Tento
spôsob úpravy je totožný jak pre aktuálne prebiehajúcu aukciu, tak i pre
pripravovanú aukciu.
V Prílohe č.14 pripŕajam k
nahliadnutiu php kód, ktorý slúži pre úpravu aktuálnej aukcie.
Ako každý aukčný, správne fungujúci systém, aj
tento potrebuje zamedziť tomu, aby sa do neho dostali nepovolaní ľudia a
zmarili prihadzovanie v aukciách, alebo inak poškodili hladký priebeh aukcie,
resp. jej prihadzovania. Pre tento účel bol do systémy vytvorený tzv. Generátor
kódov, viď Obrázok č. 14 a č. 15,
ktorý sa zaktivuje len pri vytvorení akejkoľvek aukcie v systéme. Môžeme ho
jednoducho nájst v hlavnom administračnom menu.
Obrázok č. 14: Odkaz na generátor Obrázok 15: Generátor
kódov
Zdroj: vlastný
Zdroj: vlastný
Po kliknutí na tlačítko Generátor sa nám zobrazí
nová stránka, kde je podľa nadpisu vidieť, že sa nachádzame v sekcii
generovania kódov. Ako prvé sa musí navoliť v jednoduchom formuláre, koľko
kódov vlastne chceme, resp. Je to podľa toho, koľko účastníkov bude na aukcii
prihadzovať. Po navolení korektného počtu generovania kódov sa klikne
jednoducho na tlačítko Generuj. Po stlačení tohoto tlačítka sa systém
automaticky presmeruje na generovací php skript, ktorý podľa nastavenej
sekvencie generuje kódy
a zaručuje zároveň, že sa žiadny nebude opakovať, viď Obrázok č. 15. Skript je možno vidieť v Prílohe č. 15.
Obrázok č. 15: Vygenerované kódy
Zdroj: vlastný
Po generácii kódov sa zobrazí stránka, ktorá nam
nielen kódy ukáže, ale taktiež ponúkne možnosť ich editácie. Každý kód je
príslušne označený názvom začínajúcim Kód a k nemu priradené poradové číslo.
Toto poradové číslo sa vpíše dole do editačného políčka
s názvom “Pridat poznamku a meno ku kodu:” a následne na to už stačí len
kliknúť na tlačítko pod ním, ktoré nesie názov
Otvoriť a pridať. Po odkliknutí si systém automaticky z databáze, resp.
príslušnej tabulky v databázy, kde sú tieto vygenerované kódy uložené vyberie
ten správny, požadovaný a prenesie administrátora do predpripraveného
formulára, kde má na ukážku prevyplnené hodnoty pre kód, aby sa rýchlejšie
zorientoval a nemusel zbytočne rozmýšlať čo usí kde naklikať. Ako je možné
vidieť, viď Obrázok č. 16, dá sa
v jednoduchosti doplniť poznámka ku kódu, ktorá slúži len pre administrátora,
to znamená že aukcia aby bola anonymná tak sa nemusí zobrazovať meno reálnej
osoby, ale administrátor si ho môže pre kontrolu vpísať do poznámky a pod
kolonku meno vpísať len nejaký vymyslený pseudonym. [31, s. 44]
Obrázok č. 16: Úprava kódu
Zdroj: vlastný
Po prispôsobení všetkých políčok na obraz
administrátora sa klikne na tlačítko Upraviť
a záznam sa zaktualizuje v databáze,čo sa potvrdí hláškou an obrazovke. V Prílohe č. 16 je možné si prezrieť php
kód pre tento úkon. Skript formuláru pre úpravu kódov je samozrejme ošetrený
proti zlému vstupu z klávesnice, kde sa volí voľba kódu a túto skutočnosť
zobrazí na obrazovke v prípade neexistujúceho výberu kódu. [23, s. 36] Tento
skrip prikladám do Prílohy č. 17.
Po kliknutí úpravy a následného úspešného postupu
úpravy skriptom sa systém automaticky presmeruje do databázy kódov, viď Obrázok č. 17, kde je možné pokračovať
v úpravách a taktiež pre urýchlenie práce s kódmi odoslať tieto emailom
správnemu účastníkovi aukcie.
Obrázok č. 17: Databáza kódov
Zdroj: vlastný
Ako je možné vidieť, je tu v tabuľke prehľadne
umiestnené všetko, tzn, kódy, poznámky
a mená. Implicitne je všetko generované systémom a administrátor si to môže
podľa potreby upravovať na svoje potreby.
Je tomu tak, že v prípade že by zabudol, ale nemal múzu, tak systém
všetko predvyplní, aby sa následne korektne zobrazovalo meno na aukcii, i keď
generované systémom. Je tu samozrejme taktiež možnosť všetky kódy zmazať naraz,
a to či už po skončení aukcií, alebo pri zmene počtu účastníkov aukcie.
V prípade že si administrátor zvolí odoslanie kódu emailom, tak jednoducho
klikne na tlačítko E-mail v príslušnom riadku tabuľky, kde sa požadovaný kód pre odoslanie nachádza. [22, s. 43]
Obrázok č. 18: Odoslanie kódu emailom
Zdroj: vlastný
Po odkliknutí sa mu automaticky zobrazí formulár,
viď Obrázok č. 18, kde sa z databázy
načítajú dáta a odosielateľ bude predvyplnený administrátor, resp. jeho email
adresa nastavená v systéme. Doplní si akurát email komu to chce odoslať a text
s príslušným kódom je predvyplnený automaticky systémom. Podľa potreby si samozrejme
môže text upraviť. Ak bude s vyplňovaním spokojný, tak klikne na Odoslať a
email sa automaticky odošle cez smtp bránu hostingového servru. O odoslanie sa
stará jednoduchý php skript, ktorý je možné vidieť v Prílohe č. 18. V Prílohe č. 19
pridávam na prezretie formulár ktorý napreduje odoslaniu kódu mailom. Celý
systém sa následne presmeruje naspäť do databáze kódov. Skript pre vypisovanie
kódov prikladám do Prílohy č. 20.
Administrátor môže následne jednoducho navŕatovou šípkou sa vrátiť do
administračného menu.
V prípade, že administrátor aukčného systému už
nepotrebuje nič upravovať, tak sa môže
z menu prekliknúť priamo na aukciu a sledovať ju v administračnom režime. Môže
tak učiniť kliknutím Zobraziť aktuálnu aukciu, kde ho systém presmeruje na php
skript, ktorý pre neho nastaví cookie a ponúkne mu odkaz na aktuálnu aukicu,
ktorá sa mu po kliknutí zobrazí v novom maximalizovanom okne. Nastavenie cookie a celý skript je možné
násjť v Prílohe č. 21.
Obrázok č. 19:
Administračný mód
Zdroj: vlastný
Administračný mód, viď Obrázok č.19, v tomto prípade znamená toľko, že systém ho
identifikuje ako administrátora a nepýta od neho prístupový kód, z toho módu
následne vyskočí po stlačení odhlásiť na aukčnej stránke a môže zadať
prístupový kód a môže byť účastník aukcie.
Po všetkom nastavení, ktoré som
prebral v predošlých statiach, sa konečne dostávame
k hlavnému bodu celej práce, a to zobrazeniu aktuálne prebiehajúcej aukcie, viď
Obrázok č. 20. Ako sa dostať na
zobrazenie aktuálnej aukcie z administračného menu som už popísal predtým, ale
len v skratke
Obrázok č. 20: Odkaz na aktuálne aukcie
Zdroj:
vlastný
zopakujem, že po vytvorení aktuálnej aukcie sa
administrátorovi sprístupní ponuka na otvorenie aktuálnej aukcie v
administračnom móde. V prípade že sa jedná o bežného užívateľa, to znamená
vrátane toho, kto sa chce zúčastniť aukcie, tzn. participovať na nej
a má príslušný prístupový kód generovaný a oznámený administrátorom aukčného
portálu, sa môže na aukciu dostať veľmi jednoducho, a to rozkliknutím ponuky
zoznam aukcií
a následným vybratím ponuky Aktuálne aukcie.
Po rozkliknutí tejto ponuky dôjde k otvoreniu
nového okna v maximalizovanom režime pre maximálny pôžitok z aukcie, aby neboli
žiadne rušivé elementy, ktoré by rozptyľovali participanta na aukcii.
Po otvorení maximalizovaného okna dôjde k
otvoreniu stránky, kde je možné vidieť celkový popis aukcie vrátane prípadne
vloženého obrázka, ktorý sa po rozkliknutí dá zväčšiť. V hornej časti stránky
sa nachádza už spomínaný popis aukcie, ktorý vysvetľuje všetko dôležité k
aukcii, vrátane prípadného kontaktu na toho, kto má aukciu na starosti
a prípadne ho v rýchlosti požiadať o pridelenie prístupu k aukcii, pokiaľ to
bude
z časových dôvodov ešte možné. V ľavej dolnej časti stránky je možné vidieť
časové údaje o aukcii, to znamená kedy aukcia začína, kedy končí a aktuálny
status či už beží, alebo či je pripravovaná, alebo či práve skončila a prebieha
archivácia a pripravenie novej aukcie
z prípadného pripraveného draftu budúcej aukcie. V pravom dolnom rohu je
prihlasovací formulár, viď Obrázok č. 21,
ktorý je veľmi jednoduchý a žiada vloženie správneho kódu od participanta na
aukcii. Po prihlásení sa mu otvorí stránka kde môže zadávať svoje ponuky. V
prípade že sa jedná o už ukončenú, alebo ešte nezačatú aukciu, tak mu nedovolí
prihadzovať a upozorní ho na túto podstatu informáciou na obrazovke.
Obrázok č. 21: Čas aukcie
Zdroj: vlastný
V hornej časti stránky je taktiež možne si všimnúť
dvoch koloniek, ktoré zobrazujú časť
a meno toho, kto aktuálne vyhráva, viď Obrázokč.
22. V prípade že aukcia začne, alebo lepšie povedané v jej priebehu sa
Obrázok č. 22:
Výpis v aukcii
Zdroj: vlastný
tam okamžite po každej zmene ukáže aktualizácia a
zmení sa cena vrátane toho, kto aktuálne ašpiruje na výhercu celej aukcie,
Takto to celé pokračuje až do vypršania časového limitu kedy sa tam objaví
finálna informácia o hodnote a participantovi.
V prípade že prihadzujúci zvolí zlú sumu, to znamená že podľa typu aukcie sa
buď cena zvyšuje alebo znižuje podľa typu požiadavky aukcie, tak na túto
skutočnosť bude participant upozornený hláškou na obrazovke a jeho ponuka
nebude akceptovaná.
O celú aukčnú správu sa stará interaktívna horná a
ľavá dolná časť aukčnej stránky, kde sa kontroluje aktuálny výpis z databáze o
cene a participantovi hore a o dodržaní presnej doby aukcie vľavo dole. Spodná
časť sa taktiež stará o následnú archiváciu práve skončenej
a o prípravu novej aukcie z podoby draftu, ktorá bude ihneď k dispozícii. Na
prihadzovanie v aukciách bol taktiež požiadavok od mesta Stará Turá v podobe
tej, že ak dôjde
k navýšeniu, respektíve zmene hodnoty v aukcii, to znamená prihodenia v
poslednej pol minúte času do konca celkového času aukcie, tak celkový čas do
konca sa navýši o ďalšiu minútu, čiže aukcia sa predĺži a účastníci môžu ďalšiu
minútu naviac dávať svoje ponuky. V prípade že pol minuty pred koncom nikto už
neprihodí, tak sa aukcia automaticky ukončí po vypršaní časového limitu s
aktuálnym výsledkom priebehu a prebehne už spomínaná archivácia a nastavovanie
novej aukcie, ak nejaká je nachystaná v systéme.
V prípade že toto zlyhá, to znamená archivácia a príprava novej, tak sa tento
jav bude okamžite opakovať pri znovu načítaní celej aukčnej stránky, pri
počiatočnej kontrole celého systému, o ktorom som pojednával už predtým.
Samozrejme systém počíta aj s variantou že v
systéme nebude žiadna aukcia, viď Obrázok
č. 23, a tým pádom sa na stránke zobrazí len hláška o tom, že momentálne
nieje nič
v systéme a neukáže sa ani čas a ani kód na stŕanke a záujemca sa môže vrátiť
neskôr, alebo nechať si stránku načítanú a keď sa v systéme zaradí prvá
aktuálna aukcia, tak sa všetko automaticky presmeruje na popis, počítadlo a
prístup.
Obrázok č. 23: Systém bez aukcie
Zdroj: vlastný
Ako si je iste možné povšimnúť, tak všade na
stránkach je pseudonym GTM, je to môj pseudonym a je kratší ako moje celé meno,
preto ho používam a kto chce ma môže cez formulár na mojej hlavnej stránke
nakontaktovať. Všetky prostredia nesú môj pseudonym, pretože boli vytvorené ako
niečo nové, v rámci špeciálnych požiadavkou aukčného systému a celého
užívateľského prostredia.
Pre utriedenie myšlienok prikladám do Prílohy č. 22 náhľad zo skriptu pre
hornú časť stránky, do Prílohy č. 23
náhľad do skriptu ľavej dolnej stránky a do Prílohy č. 24 náhľad skriptu pre prihlasovanie účastníka.
Tak ako aj časti celého portálu predtým, tak aj
celý tento celok zobrazujúci aukciu
a riadiaci celý tento aukčný úkon beži na cookie a kaskádových štýloch css. [9,
s. 28]
4.6
História
nástrojov použitých pre tvorbu aukčného portálu
V celej práci je spomínaná práca v PHP
skriptovacom jazyku, za pomoci použitia ovládania SQL databáze, a to všetko
zakomponované v HTML štruktúre za občasného použitia javascriptu ako dôkaz
toho, že všetky tieto techniky sa dajú kompatibilne skĺbiť, aby pracovali
pohromade spolahlivo a stabilne. Niečo málo sa pokúsim priblížiť o histórii
jednotlivých techník použitých v mojej
bakalárskej práce a tým sa trošku priblížiť aj tomu, prečo som dané nástroje
pužil.
PHP je vytvorený ako skriptovací jazyk pre tvorbu
webu s dynamickými prvkami a jeho začiatky sa začali už v roku 1994. Vtedy sa
istý Rasmus Lerdorf rozhodol, že si vytvorí jednoduchý systém pre počítanie
prístup k svojim stránkam. Na začiatku to bolo napísané
v jazyku Perl. Za nejakú dobu bol celý systém prepísaný do programovacieho
jazyka C, pretože kód perlu dosť preťažoval server. Sada týchto skriptov bola
ešte neskôr toho istého roku vydaná pod starým názvom "Personal Home Page
Tools", v skratke PHP. Neskoršie to autor premenoval na "Personal
Home Page Construction Kit". U toho názvu však nezostal. V polovici roka
1995 sa systém PHP spojil s iným programom toho istého autora, a to síce s
nástrojom zvaným "Form Interpreter" alebo skrátene FI. Takto vzniklo
PHP / FI 2.0 systém, ktorý si postupne získaval celosvetovú známosť a obľubu a
bol veľmi rozšírený.
Koncom roka 1998 bola už k dispozícii verzia PHP
3.0, ktorá bola oveľa rýchlejšia
(a vybavenejšia) ako druhá verzia a bola
k dispozícii zároveň pod operačnými systémami Windows. Počet webov, ktoré
používali PHP sa zvyšoval, až dosiahol zhruba 150 000.
[2, s. 10]
Verzia PHP 4.0, ktorá bola aktuálna ešte
donedávna, je pridaných do jazyka mnoho nových funkcií a zároveň prináša
prepracovanie a teda podstatne rýchlejšie jadro Zend, na ktorom to celé beží.
Podla údajov z apríla roku 2004 beží PHP na viac
ako 15 000 000 doménach a je to bezkonkurencne najčastejšie používaný modul
webového servera Apache. Skratka PHP sa následne premenovala opäť, a od tej
doby sa prekladá ako "PHP: Hypertext Preprocessor". Úvaha o
začiatkoch PHP by nebola úplná, keby sa krátko nezmienilo zároveň o jeho
budúcom vývoji. Momntálne je už na svete aktuálna verzia PHP 5.0. V čase
písania tohto článku je už k dispozícii Release Candidate verzie PHP 5.5 a
podľa vývojárov sa bude na čo tešiť. S dokonalejšou podporou XML, nové
objektové rozhranie pre prácu s databázou MySQL a mnoho ďalšieho. Čiže keď sa
zamyslíme, systém je stále vybavovaný novými technológiami a je aktivne
vyvíjaný. [4, s. 12]
Prečo áno a prečo nie? Prečo je PHP tak obľúbené?
K tomu vedie celá rada myšlienok
a faktov. PHP je relatívne jednoduché na pochopenie, PHP má syntax veľmi
podobnú jazyku C a je teda väčšine vývojárom dosť blízky. PHP podporuje širokú
radu súvisiacich technológií, formátov a štandardizuje to otvorený projekt s
rozsiahlou podporou komunity, kde sa dajú nájsť kvantá už hotového kódu pre
okamžité použitie alebo funkčné hotové PHP aplikácie.
Podstatná časť z hotového kódu je šírený pod
nejakou slobodnou licenciou a dá sa použiť vo vlastných projektoch. PHP si
dobre rozumie s webovým serverom Apache a ľahko komunikuje s databázami, ako je
MySQL, PostgreSQL a rada ďalších. PHP je multiplatformový a možno ho
prevádzkovať s väčšinou webových serverov a na väcšine dnes existujúcich
operačných systémoch. PHP je podporované mnoho existujúcimi poskytovateľmi webhostingových
služieb. [15, s. 15]
Má PHP tiež nejaké svoje nevýhody? Viacmenej nie.
Ak budeme chcieť napísať dynamický web, bude PHP prakticky vždy dobrou voľbou.
S niektorými vecami by sa ale napriek tomu malo pri použití PHP počítať, a to
že PHP je interpretovaný, nie kompilovaný jazyk, ktokoľvek má priamy prístup k
serveru, môže nahliadnuť do PHP skriptov. Podpora objektového programovania nie
je v PHP na moc dobrej úrovni. V PHP 5 sa tento neduh trošku zlepšil. Pretože
je PHP aktívne vyvíjané, v budúcich verziách jazyka sa môžu niektoré funkcie
zmeniť, alebo sa môžu správať inak ako doteraz.
Čo sa v PHP dá napísať? V podstate povedané takmer
všetko, čo nejako súvisí
s dynamickým webom alebo s databázami. Najbežnejším sú aplikácie písané v PHP a
patrí medzi ne napríklad: internetové obchody, podnikové informačné systémy (či
už intranete alebo internete), diskusné fóra, redakčné systémy, firemné
prezentácie, dynamické osobné stránky, weboví poštoví či databázoví klientiv,
vyhľadávače a katalógy, drobnosti typu počítadla, ankety a mnoho iných ďalších
vecí potrebných pre nás. [16, s. 13]
S jazykom SQL (jeho skratka znamená Structured
Query Language) sa môžeme stretnúť už od roku 1974. V tej dobe sa ešte volal
Sequel. Ako prvý bol použitý v Systéme R, vyvinutého v kalifornskom laboratóriu
firmy IBM. Od tej doby sa jazyk rozšíroval a bol používaný v ostatných
systémoch. [17, s. 9]
Postupom času avšak vznikali ďalšie a zároveň
novšie verzie jazyka a bolo potrebné, aby bol jazyk štandardizovaný. K tomu
došlo až v roku 1986, kedy ho prijala štandardizačná skupina ANSI (a v roku
1987 organizácia ISO). Za štandard bol
uznaný dialekt americkej firmy IBM. V literatúre sa môžno stretnúť aj s
označením SQL86. Neskôr bolo potrebné rozšírenie definičného jazyka pre možnosť
integritného obmedzenia. Výsledná správa bola uverejnená v roku 1989
organizáciou ISO. Tomuto rozšíreniu sa hovorí SQL89. Posledný prijatý štandard
bol až v roku 1992 (skupinou ANSI) a je označovaný ako SQL92.
[33, s. 16]
Prvý významnejší produkty, kde bol jazyk SQL
zabudovaný, bol od firmy IBM: DB2, SQL / DS (obidva vychádzajú zo Systému R) a
qmf. S nástupom počítačov triedy PC x86 začali aj ostatní výrobcovia viac
uvažovať o využití SQL. Asi najznámejším je firma Ashton-Tate so svojou dBASE
IV (aj keď implementácia SQL nebola celkom úplná). Ako ďalšie bolo
INFORMIX-SQL, Ingres pre PC, ORACLE, SQLBase, XDB II, XQL. Postupom času sa
začal jazyk SQL prenášať aj na systém UNIX a od jednoužívateľských úloh sa
prechádzalo k serverom vo výsledku až k serverom založených na SQL. Menujme
aspoň SRBD ORACLE, INFORMIX, PROGRESS a Ingres. Ďalej napr SQL Server od firmy
Sybase či Microsoft.
Medzi štandardy patria aj X / OPEN SQL
vychádzajúce z ANSI, ale zohľadňujú sa
k niektorým črtám systému UNIX. Aj napriek tomu že za štandard bol uznaný
dialekt firmy IBM, ustanovili si svoj vlastný štandard pod názvom
SAA-SQL. SQL je tiež časťou federálneho štandardu pre spracovanie informácií
(FIPS). [18, s. 14]
Ako prvý definíciu jazyka HTML vytvoril v roku
1991 Tim Berners-Lee, ako vtedajšiu súčasť projektu World Wide Web, ktorý mal
umožniť vedcom zaoberajúcim sa fyzikou vysokých energií, komunikáciu a
zdieľanie výsledkov výskumu po celom svete. Nieje náhodou preto, že celý
projekt vznikal v CERNe (Centre Européenne pour la Recherche Nucléaire,
Európskom centre pre jadrový výskum), ktorý leží na švajčiarsko francúzskych
hraniciach neďaleko od Ženevy. Jednalo sa o výsledok dvojročného projektu,
ktorý mal vyriešiť problémy so zdieľaním informácií vo veľkej inštitúcii, akou
bezpochyby CERN je. Táto verzia HTML bola popísaná v dokumente s názvom HTML
Tags. Umožňovala text rozčleniť do niekoľkých logických úrovní, použiť niekoľko
druhov zvýraznení textu
a zaradiť do textu odkazy a obrázky. [10, s. 8]
Berners-Lee pri návrhu HTML nepredpokladal, že by
programátori webových stránok museli tento jazyk poznať. Prvá verzia webového
softvéru bola napísaná pre operačný systém NextStep a obsahovala jak
prehliadač, tak i integrovaný editor webových stránok. Softvér vyvinutý v
CERNe, vrátane špecifikácií jazyka HTML bol verejne uvoľnený až
v roku 1991. Keď Marc Anderssen so svojimi kolegami z NCSA (National Center for
Supercomputing Applications) písal skôr populárny prehliadač Mosaic, považoval
za príliš ťažké implementovať do programu rovno aj editor pre HTML. Vďaka
tomuto rozhodnutiu a tomu, že nie každý prevádzkuje na svojom počítači
NextStep, je dnes nutné, aby autori profesionálnych stránok poznali jazyk HTML.
[11, s. 11]
Požiadavky užívateľov na web vzrastali, a tak
producenti rôznych prehliadačov obohacovali HTML o niektoré nové prvky. Aby
bola zachovaná kompatibilita medzi jednotlivými modifikáciami HTML, vytvoril
Berners-Lee pod hlavičkou IETF (Internet Engineering Task Force) návrh
štandardu HTML 2.0, ktorý zahŕňal všetky v tej dobe bežne používané prvky
jazyka HTML. Verzia HTML 2.0 mala zároveň dve úrovne. Prvý
z nich (Level 1) iba málo rozširuje predchádzajúcu verziu HTML. Level 2 naviac
definuje prácu s formulármi. Špecifikáciu HTML 2.0 nájdeme v RFC dokumente
číslo 1866.
Ďalšie rozšírenie jazyka známe ako HTML+ zahŕňajú
najmä rozšírenie HTML o vytváraní tabuliek a matematických vzorcov. Taktiež sa
tu objavujú prvky, ktoré umožňujú precíznejšie kontrolovať výsledný vzhľad
textu - lepšie obtekanie obrázkov textom a štýly dokumentov. Dave Raggett z
laboratórií Hawlett-Packard HTML+ formalizoval a vytvoril jeho definíciu ako
DTD (Document Type Definition) v jazyku SGML - na jar roku 1995 tak vznikol
návrh štandardu HTML 3.0.
Niektoré prvky HTML 3.0, ako napríklad tabuľky,
podporovali novšie verzie prehliadačov Mosaic a Netscape. Kompletnú podporu pre
väčšinu rysov HTML 3.0 ponúkal iba experimentálne prehliadač Arena, ktorý sa
však nikdy príliš nerozšíril.
Na začiatku roku 1996 už bolo jasné, že HTML 3.0 bolo
tak mohutným skokom vpred, že sa nenašiel nik, kto by nedokázal implementovať
prehliadač s jeho podporou. Vývoj štandardov webu v tejto dobe už koordinovalo
konzorcium W3C, ktorého členmi sú okrem iného predné softvérové
firmy. Členovia W3C sa teda zhodli na vlastnostiach, o ktoré
rozšíria HTML 2.0, a vytvorili tak HTML 3.2. HTML 3.2 však zďaleka neobsahuje
všetko z HTML 3.0. Z verzie 3.0 zostali v podstate len oklieštené tabuľky.
Ostatné nové prvky HTML 3.2 sú len akousi zmeskou, ktorú v tom čase podporovali
najnovšie prehliadače. Opakoval sa teda v podstate rovnaký postup ako pri
vzniku verzie 2.0 - jazyk sa zjednotil na prieniku možností tých
najrozšírenejších prehliadačov. Okrem tabuliek pribudli vo verzii 3.2 najmä
možnosti lepšej kontroly formátovania, vrátane oveľa voľnejšieho výberu
použitých druhov písma, a to logický ústupok požiadavkám na graficky perfektne
vyzerajúce stránky. Ďalšie podstatné rozšírenie sa týkalo podpory Java
appletov. HTML 3.2 nieslo kódové označenie Wilbur a od januára 1997 bolo
odporúčaním konzorcia W3C, znamená to, že by ho mali všetci používať, aby bola
na webe zaistená kompatibilita.
Väčšina prehliadačov však už od roku 1996-1997
ponúkala ďalšie rozšírenie nad rámec HTML 3.2. Ich používanie je však dvojaké,
na jednu stranu nebola nijak štandardizovaná
a niektoré prehliadače im nerozumeli, na stranu druhú sú mnohokrát veľmi
užitočné a ich používanie a rozšírenie urýchlilo ich zaradenie do štandardu.
Medzi takéto rozšírenie patrí predovšetkým rámy (frames) a klientske skriptovacie
jazyky (napr. Javascript).
Na jar roku 1997 zverejnilo W3C ďalšie plány na
rozšírenie HTML pod kódovým názvom Cougar. Cougar v sebe zahŕňal HTML 3.2
spoločne s bežne používanými konštrukciami ako sú rámy, skripty a všeobecné
vkladanie objektov. Ďalšími novinkami bola podpora viacjazyčných dokumentov. Na
začiatku júla 1997 publikovalo W3C návrh HTML 4.0, ktorý vznikol drobnými
úpravami Cougaru a vytvorením jedného súhrnného dokumentu popisujúceho návrh
štandardu. V decembri roku 1997 bolo potom HTML 4.0 prijaté ako štandard
organizácie W3C. Od tej doby sa na dlhú dobu samotný vývoj jazyka HTML -
značky, ktoré možno použiť, v podstate zastavil. V decembri 1999 bol vydaný
nový štandard HTML 4.01, ktorý iba opravuje niektoré drobné chyby z predchádzajúcich
špecifikácií. [13, s. 16]
Krátko po vydaní špecifikácie HTML 4.0 zverejnilo
W3C ešte jeden štandard - jazyk XML (eXtensible Markup Language). Ten sa od
svojho vydania v roku 1998 stal vo svete informačných technológií
všadeprítomným formátom pre výmenu a ukladanie dát. XML ovplyvnilo aj ďalší
vývoj jazyka HTML. Na začiatku roku 2000 bola vydaná špecifikácia jazyka XHTML
1.0, ktorá mala svoju syntax odvodenú od XML, nie od SGML, ako HTML. V zásade
však išlo len o kozmetickú zmenu. Zoznam dostupných značiek a ich význam zostal
rovnaký, len sa nadrobno zmenila syntax. Práve pre odlíšenie od
predchádzajúcich verzií HTML, mala táto nová verzia HTML založená na XML pred
svojím názvom pridané písmeno. [12, s. 18]
Na začiatku tisícročia sa XHTML zdalo ako tá
správna technológia nielen pre klasický web. Vznikli špeciálne zjednodušené
verzie XHTML, ktoré ponúkali len niektoré funkcie jazyka XHTML 1.0 a boli
určené pre špecifické použitie. Napríklad XHTML Basic pre mobilné zariadenia
alebo XHTML Print pre jednoduché tlačové výstupy. Aby bolo ľahké vytvárať
odnože jazyka XHTML, vzniklo XHTML 1.1, ktoré do jazyka nepridávalo
v podstate žiadnu funkčnosť, ale kopírovalo mechanizmus modularizácie celého
jazyka
a vytváranie vlastných odvodenín.
Bohužiaľ história ukázala, že samotné XHTML nebolo
pre ďalší vývoj webu tou najlepšou cestou. Jazyky XHTML 1.0 a 1.1 nepridali
oproti HTML 4.01 v podstate žiadnu novú funkčnosť. Okrem istej módnosti tak
nebol pragmatický dôvod pre masový prechod od HTML k XHTML. Navyše v tej dobe
najpoužívanejší prehliadač Internet Explorer nevedel XHTML stránky spracovávať
úplne korektne.
Vo W3C potom začala pracovná skupina XHTML vyvíjať
ďalšiu verziu jazyka XHTML 2.0, ktorá priniesla mnohé zaujímavé vlastnosti.
Bohužiaľ za cenu porušenia kompatibility s predchádzajúcimi verziami jazyka
HTML a XHTML. Pre výrobcov prehliadačov to bol príliš revolučný krok, lebo
preferovali konzervatívnejší prístup postupného vylepšovania existujúcich
funkčných technológií, a to HTML 4.01 a XHTML 1.0. Nespokojnosť výrobcov
prehliadačov potom dospela tak ďaleko, že niektorí z nich v roku 2004 založili
spoločnú pracovnú skupinu WHATWG (The Web Hypertext Application Technology
Working Group). Na jej pôde potom spoločne pripravovali špecifikáciu platformy
pre webové aplikácie bežiace v prehliadači. Okrem rozšírenia jazyka HTML
špecifikácia zahŕňala aj vymedzenia dôležitých rozhraní pre využitie vo
skriptovacom jazyku Javascript. [14, s. 17]
Rozštiepenie ďalšieho vývoja HTML samozrejme
nebolo žiadúce. Po dlhých a zložitých diskusiách a rokovaniach nakoniec aj vo
vnútri organizácie W3C prevážil názor, že XHTML 2 je slepá cesta, pretože
výrobcovia prehliadačov ho ignorujú. V roku 2007 sa preto sily W3C a WHATWG
spojili a pracovná skupina HTML zobrala ako základ špecifikácie vytvorené vo
WHATWG a na ich základe začalo vznikať HTML5. [20, s. 12]
HTML5 nadväzuje na HTML 4.01 a pridáva pre
vývojárov webových aplikácií veľa užitočných funkcií, kvôli ktorým je výhodné
túto najnovšiu verziu jazyka používať. Zároveň zachováva možnosť používať pre
zápis stránok syntax XML a používať tak
v podstate XHTML. [29, s. 22]
Dôležité je však poznať, že v tejto chvíli nie je
ešte HTML5 celkom hotové. Na jeho špecifikácii sa stále pracuje. Niektoré jeho
časti sú pritom už pomerne stabilné a podporuje ich väčšina moderných
prehliadačov. Naopak, niektoré časti HTML5 sú zatiaľ skôr experimentálne a je
otázkou, či sa časom presadia a zostanú vo finálnej verzii HTML5, ktorej
dokončenie ani optimisti nečakajú ešte pred rokom 2020.
Prvá verzia JavaScriptu sa objavila už v roku 1995
v prehliadači Netscape Navigator 2. JavaScript bol vtedy zamýšľaný ako nástroj
na doplnenie jednoduchých dynamických prvkov do webových stránok. Jeho typické využitie
bolo pre validácie formulárov na strane klienta a drobné efekty s obrázkami , o
moc viac s vtedajším JavaScriptom vymyslieť nešlo. Programy v JavaScripte tak
mali väčšinou dĺžku len niekoľko riadkov.
Situácia sa zmenila s príchodom Internet Explorera
4, ktorý ako prvý prehliadač, umožnil skriptom pristupovať k objektovému modelu
celej stránky. Z JavaScriptu sa tak dal zmeniť obsah ľubovoľných častí stránky,
pridávať obsah nový či naopak obsah zmazať. Možnosti JavaScriptu sa tým rádovo
rozšírili, objavila sa veľa skriptov s vyskakovacím menu
a priemerná dĺžka skriptov v stránkach podstatne vzrástla.
Ďalším zlomom bol nástup AJAXu, ktorý umožňoval
stránkam komunikovať so serverom a zobrazovať užívateľovi nový obsah, či
vykonávať rôzne akcie, aby bolo nutné nové načítanie stránky. Z histórie vieme,
aký boom spôsobilo uvedenie Gmail, bola to prvá aplikácia, ktorá bola na
JavaScripte a AJAXu kompletne postavená a nemohla bez nich fungovať. Takýchto
aplikácií je dnes veľa a ich spoločnou črtou je, že obsahujú stovky kB
JavaScript kódu.
Posledným dôležitým bodom vo vývoji JavaScriptu
bol nástup knižníc typu Prototype
a jQuery. Ich cieľom je uľahčiť prácu s DOM a skryť niektoré rozdiely medzi
prehliadačmi. Dôsledkom je, že prakticky každá nová stránka si dnes so sebou
nesie desiatky kB JavaScriptového kódu a pri bežných operáciách sa vykoná viac
javascriptových príkazov, než tomu bolo bez knižníc. [32, s. 17]
V posledných pár rokoch sa situácia zmenila. Výrobcovia
prehliadačov si začali uvedomovať, že javascriptoví interpreti sa stávajú úzkym
hrdlom mnohých webových aplikácií a v nejednom prípade sú hlavnou príčinou ich
pomalosti. Začali na rýchlosti JavaScriptu intenzívne pracovať a všetko sa
postupne vyústilo až do podoby pretekov medzi prehliadačmi, kedy sa jednotlivé strany preťahujú o
prvenstvo v niekoľkých rôznych rýchlostných testoch a odpovedí na momentálnej
víťazstvo strany jednej, je zvyčajne veľmi rýchlo nová verzia interprétera
strany druhej, ktorá situáciu opäť mení.
Z tohoto samozrejme v konečnom dôsledku najviac vyťaží užívateľ, ktorému webové
aplikácie pobežia s každou novou verziou jeho prehliadača podstatne rýchlejšie.
Zo širšieho uhlu pohľadu je tiež veľmi zaujímavé,
že zrýchľovanie JavaScriptu posúva "state-of-art" v oblasti
interpretácie dynamických jazykov všeobecne. Dynamické skriptovacie jazyky
totiž zvyčajne slúžili len ako lepidlo komponentov napísaných v iných,
rýchlejších jazykoch. Ich rýchlosť tak nie je kriticky dôležitá a tým pádom sa
výskum
v oblasti ich interpretácie nedostal príliš ďaleko, na rozdiel od oblasti
kompilácie klasických statických jazykov, ktorý je intenzívne skúmaný cez 30
rokov. Nič nezmenilo ani časté nasadenie dynamických jazykov vo webových
aplikáciách, pretože tu je obyčajne najväčšou brzdou I / O, respektíve
databázy. JavaScript je prvý dynamický jazyk, ktorého rýchlosť je kľúčová a
zároveň je dostatočne rozšírený na to, aby vznikol dostatočný dopyt po tom, ako
ho významne zrýchliť.
Dôsledkom je, že vďaka JavaScriptu trochu ožil
výskum v oblasti interpretácie dynamických jazykov, a to ako v tímoch
zaoberajúcich sa vývojom javascriptových interpretov, tak aj na
univerzitách. Z tohto výskumu môžu
samozrejme ťažiť aj všetky ostatné dynamické jazyky, ako napríklad PHP, Perl,
Python a Ruby.
Účelom tejto záverečnej práce bolo vytvoriť
funkčný aukčný portál, kompletný samostatný systém, ktorý ulahodí požiadavkám
mesta Stará Turá, konkrétne Mestskému úradu a jeho vedeniu. Taktiež sa tu mali
zúročiť roky učenia a sebazdokonaľovania programovacích praktík, v tomto
prípade konkrétnych programovacích jazykov ako sú PHP, SQL, JavaScript a v
neposlednej rade základné HTML. Ďalšou devízou, respektíve prínosom, malo byť z
ekonomického uhla pohľadu prínos lacného riešenia daného software, čo sa
v tomto prípade podarilo, pretože software je plne funkčný a otestovaný.
Ako už bolo spomenuté v rozbore potreby
elektronických aukcií pre slovenské samosprávy, tak tento fakt nebol v čase
výskumu ukončeného v roku 2010 ďaleko od priameho nariadenia vlády. Vláda vydala
smernicu, že od roku 2014 bude povinnosť pre všetky mieste samosprávy, aby si
pri obstarávaní verejného majetku, čiže majetku mesta alebo obce zakúpili,
alebo vytvorili elektronické aukčné systémy, to isté taktiež platí
i v prípade odpredaja nepotrebného majetku, ktorý už mesto, respektíve obec,
nebude potrebovať pre svoje účely a mohlo by poslúžiť ešte niekomu inému k
nejakému účelu. Rovnaká smernica bude samozrejme platiť i v prípade, že mesto,
alebo obec, budú potrebovať vypísať výberové konanie na určité práce, za ktoré
samozrejme chcú vynaložiť čo najmenej finančných prostriedkov. A preto sú tu za
potreby nastaviť rôzne štýly elektronických aukcií, ako sú typy holandská,
alebo anglická. Aukčný systém, ktorý bol touto bakalárskou prácou vytvorený, tieto
rozličné typy aukcií zvláda a v plnej miere je schopný ich kontrolovať.
Uvedením na pravú mieru o aké typy sa jedná, niekomu
to nemusí byť z dvoch slov patrné, tak v prípade, sa jedná o typ holandskej
elektronickej aukcie, tak cena, ktorá sa musí objaviť v systéme musí byť
limitná, to znamená maximálne možná, ktorú je mesto ochotné zaplatiť a už je
len na danej firme alebo jednotlivcovi, či je v jeho réžii danú cenu nejako
podísť a tým získať zákazku medzi ostatnými aktérmi elektronickej aukcie. Pre upresnenie
danej situácie to znamená, že firmy alebo už spomínaní aj jednotlivci, budú
postupne cenu znižovať až na limit, pod ktorý už nebudú môcť ísť z rôznych
ekonomických dôvodov
a pre obec to bude znamenať, že práve získala najlacnejšiu prácu, aká sa mohla
spomedzi účastníkov aukcie získať. Tento
typ aukcie sa používa hlavne pri nákupe rôznych tovarov, respektíve
požiadavkách na lacno vykonanú prácu, samozrejme lacno nie vždy znamená aj
kvalitne. Ďalší, v poradí druhý typ aukcie, je anglická aukcia. V tejto aukcii
sa jedná
o úplne opačný systém prihadzovania v aukcii, a to konkrétne o navyšovanie
ceny, pretože tento krát sa jedná o záujem o tovar z druhej strany, to znamená,
že tento typ sa hlavne používa pri odpredaji už nepotrebného majetku obce cez
elektronickú aukciu. Elektronický aukčný portál ktorý bol vytvorený mnou, obe
tieto aukcie automaticky kontroluje
a nepovolí omyl žiadnemu, ani menej skúsenému záujemcovi o prihadzovanie,
ktorému dá mesto už toľkokrát spomínaný prístupový kód. Daná požiadavka bola
tým pádom úspešne splnená.
Ďalšia, nesporne veľmi dôležitá vec, ktorá bola
požadovaná, bol úspora vstupných financií pri zakúpení software, ktorý bude
dané elektronické aukcie manažovať a starať sa o ich hladký, plne automatický
priebeh, pre plnú spokojnosť prihadzujúcich. Mesto Stará Turá rozosielalo rôzne
emaily so žiadosťou o cenové ponuky za dané typy elektronických webových
aplikácií so schopnosťou pracovať s daným typom požiadavku, a to
s elektronickou aukciou. Vo väčšine prípadov odpovedí sa jednalo o riešenie už
vyrobené, čiže na kľúč, kde niekde bola taktiež podmienka toho, že zdrojové
kódy nebudú poskytnuté, ale Že daná webová aplikácia bude prevádzkovaná na
serveroch firmy, ktorá toto vyrobila a stráži si svoje know-how. V priemere sa
ceny za tieto webové aplikácie, či tak alebo tak, pohybovala okolo 20 000 Euro,
čo je cena vcelku závratná a pre mnohé obce znamená hlboké siahnutie do ročného
rozpočtu. V prípade, že sa jedná o menšie obce, respektíve mestá, ako je Stará
Turá, tak je zbytočné také veľké vynakladanie finančných prostriedkov, pretože
požiadavky na elektronické aukcie tam nebudú na dennom poriadku, ale budú sa
riešiť len z času na čas. Ako už bolo v prieskumoch dokázané, záujemcov
o aukcie sú v priemere 3 na aukciu, čiže dané riešenie nepotrebuje ani príliš
výkonný server na ktorom celý systém bude fungovať. Keď to presne pomeriam s
mojím systémom, ktorý som v rámci tejto práce naprogramoval, tak jeho veľká
nenáročnosť umožní umiestnenie aj na pomalšie servre obcí, v prípade že majú
svoje vlastné. Samozrejme tým, že sa pojednáva o menšie obce a mestá, tak môj
systém je schopný obsluhovať iba 2 aukcie v systéme, a to jak aktuálne
prebiehajúcu, tak samozrejme ďalšiu, v konkrétnom názve budúcu, o ktorú sa
systém automaticky postará po skončení aktuálne prebiehajúcej.
V tomto popisovanom prípade systém plne plní potreby menších obcí a miest,
ktoré nepotrebujú mať v systéme denne kvanta aukcií a samozrejme ktoré by
nasledovali
v krátkom časovom úseku po sebe, čiže z toho by vyplývalo, že v mojom aukčnom
portáli by administrátor nestíhal aukcie ukladať do administračného systému
celého portálu. Samozrejme táto funkcia sa dá v prípade potreby rozšíriť, ale
to nespadalo pod požiadavky Mestského úradu v Starej Turej.
Celý aukčný portál, ktorý bol vytvorený, bol od
začiatku sprevádzkovaný ako subdoména na mojej domovskej stránke a to konkrétne
na adrese http://aukcie.galosoft.eu . Táto stránka beží na webhostingu
endora.cz a plne postačuje daným požiadavkám a potrebám mesta. Všetky fáze,
ktorými stránka prešla sa odohrávali na danej adrese, čiže jednalo sa aji o
skúšobnú verziu počas programovania a taktiež o testovaciu verziu počas
testovania rôznymi užívateľmi a záujemcami a taktiež ostrá verzia bude zatiaľ
prevádzkovaná na danej adrese, pretože sa musia doriešiť rôzne technické
aspekty na serveroch mesta Stará Turá a hlavne z dôvodu toho, že ostrá verzia
má začať plne fungovať až od roku 2014. Mesto dostalo kompletné prístupy k
danému portálu a až sa vyriešia všetky technické problémy na ich serveroch, tak
sa celá elektronická aukčná sieň prenesie pod ich záštitu.
Samozrejme aby bol vývoj software korektne
ukončený, respektíve aby prešiel všetkými fázami, tak aj tento portál bol
podrobený záťažovým ostrým testom. Testy boli naplánované na január roku 2013,
čo sa v podstate aj úspešne podarilo dodržať, presnejšie sa jednalo o druhú
polovicu tohoto spomínaného mesiaca. Testovanie prebiehalo pre pár oboznámených
ľudí, z toho jeden bol poučený ako administrátor systému a zadával skúšobne rôzne
vymyslené elektronické aukcie.
Intenzívne testovanie prebiehalo
v priebehu jedného týždňa, a to v rámci voľných kapacít kancelárskych
testovacích síl. Dotestovávanie v podstate beží stále podľa záujmu. V rámci
aktívneho testovania išlo
o urýchlené naplnenie dvoch aukcií v systéme a následne pripravenie niekoľkých
účastníkov, ktorí klikali na otvorené aukcie, testovalo sa pripájanie
užívateľov počas spustených aukcií, rôzne prístupy, odhlasovanie zo systému a
samozrejme rôzne počty užívateľov od 2 až po 10 aktívnych členov. Mesto podľa
interných štatistík nikdy nemalo viac aktívnych záujemcov, keď sa v minulosti
vypisovalo výberové konanie ešte klasickým spôsobom.
V priebehu testovania sa neprejavila žiadna
nestabilita systému, systém reagoval okamžite na každú prevádzkovú zmenu a
nenastal pád. Všetky výsledky prihadzovania boli okamžite a korektne v
okamžitom čase spracované a užívateľ nemal pocit, že by bol nejako obmedzovaný,
alebo že by mal pocit, že kvôli slabej odozve by danú elektronickú aukciu
prehral. Taktiež sa používali osobné počítače rôznych výkonov a rôznymi
sieťovými obmedzeniami a vždy bol systém stabilný a jeho odozva bola
bezproblémová.
Podľa presných zadaní a očakávaní bola práca
úspešne ukončená podľa predstáv a ušetrila nemalé nákladu na získanie webovej
aplikácie pre obsluhu elektronických aukcií.
Martin GALOVIČ Software elektronickej aukcie pre Mestský
úrad v Starej Turej Kunovice, 2013. Bakalárska práca. Evropský
polytechnický institut, s.r.o.
Vedúcí práce: Ing. Ján
VOLÁR
Kľúčové slová: informačno-komunikačné technológie,
online interaktívna komunikácia, proces interaktívneho spracovania dát,
databázové systémy, internetové webové rozhranie, PHP, MySQL, WWW, HTML, IT,
JavaScript, online aukcie
Cieľom
bakalárskej práce je vytvorenie webového online software systému elektronickej
aukcie pre Mestský úrad v Starej Turej., zaručujúceho transparentnosť
výberových konaní v miestnej samospráve a umožňujúceho nezávislé riadenie výberového
konania. Prvá kapitola analyzuje elektronický obchod a internet všeobecne,
vrátane elektornických aukcií, v oblasti elektronického obchodu a jeho prínosu,
bohužial vrátane jeho negatív na prípadné zneužitie dát. Druhá kapitola
analyzuje konkrétny ekonomický dopad a jeho efekty pri použití elektronických
aukcií, ich jasnú výhodu, zároveŇ sa vŠak opiera aj
o prípadné nevýhody pri použití tohoto typu obchodu. Tretia kapitola analyzuje
problémy novodobého požiadavku Slovenskej Republiky v oblasti elektronických
aukcií, pojednáva o transparentnosti výberových konaní v slovenskej
samospráve pre občanov Slovenskej Republiky a ich samosprávne kraje. Štvrtá
kapitola je zameraná na analýzu a popis riešenia online elektronického
modulu systému aukčnej siene, ktorého výsledná forma je riešená prostredníctvom
kombinácie jednotlivých programovacích jazykov z vednej disciplíny informačných
technológií. Princíp hierarchie celkového procesu správy elektronických aukcií
je rozdelený do špecifikovaných podkapitol, ktoré podrobne vysvetľujú
opodstatnenie použitých metód.
Štvrtá
kapitola je upriamená na konkrétny návrh riešenia, implementáciu a testovanie
s kritickým pohľadom zadávateľa, ktorý analyticky zhodnocuje efektivitu
navrhnutého systému, poprípade prezentuje odporúčania, obsiahnuté
v záverečnej kapitole, pre vylepšenie komunikačnej úrovne pre
bezproblémovú prevádzku aukčnej siene.
Martin GALOVIČ Electronic auction web application for
Mestský úrad v Stará Turá Kunovice, 2013. Bachelor thesis. Evropský
polytechnický institut, s.r.o.
Supervisor:
Ing. Ján VOLÁR
Key
words: information and
communication technology, online interactive communication, interactive data processing, database
systems, internet
web interface, PHP, MySQL, WWW, HTML, IT,
JavaScript, online auctions
The goal of this work is to create a web software
for online electronic auction system for Town Hall in Stara Tura, guaranteeing
transparency of competition in local government and allowing independent
management of the selection process. The first chapter analyzes the e-commerce
and the internet in general, including of e-auctions in e-commerce and its
benefits, including the unfortunately negative for any misuse of data. The
second chapter analyzes the specific economic impact and its effects when using
electronic auctions, their clear advantage, but it also relies on the possible
disadvantages of using this type of trade.
The third chapter analyzes the problems of modern
inquiry in Slovak Republic in the field of electronic auctions, discusses
transparency in the tendering Slovak government to the citizens of the Slovak
Republic and the self-governing regions. The fourth chapter focuses on the
analysis and description of the solutions online electronic module of the auction
house, whose final form is addressed through a combination of various
programming languages from the discipline of information
technology. The principle of the hierarchy of the overall process of management
of electronic auctions is divided, specified in sub-chapters that explain in
detail the justification of the methods used. The fourth chapter is focused on
the specific design, implementation and testing of the critical gaze of
authority, which analytically evaluates the effectiveness of the proposed
system, appropriate presents recommendations contained in the final chapter, to
improve the communication levels for the smooth operation of the auction house.
Knihy, monografia:
[1] SMIDEK,
V.; BERIT, J.; MRÁZEK, L. PHP v příkladech.
první. České Budějovice: Kopp, 2002. 115 s. ISBN 80-7232-162-5.
[2] GLASS,
M. PHP5,Mysql,Apache,Vatváříme webové
aplikace. Indianapolis : Computer Press, 2006. 816 s. ISBN 80-251-1073-7.
[3] KOSEK,
J. PHP : tvorba interaktivních
internetových aplikací. Praha : Grada, 1999. 492 s. ISBN 80-7169-373-1.
[4] BRÁZA,
J. PHP5 : Začínáme programovat. Praha
: Grada Publishing a.s, 2005.
244 s. ISBN 80-7169-374-2.
[5] DELISLE,
M. Efektivní správa MySql. Pact
Publishing, 2004. ISBN 80-86815-09-9.
[6] CLIFTON,
B. Google Analytics : Podrobný průvodce
webovými statistikami. Brno : Computer Press, 2009. 336 s. ISBN
978-80-251-2231-0.
[7] BARČÍK,
T. Webová grafika : Fotografie, barvy,
textury. Brno : Computer Press, 2002. 88 s. ISBN 80-7226-701-9.
[8] HAUSER,
M.; HAUSER, T.; WENZ, Ch. HTML a CSS :
Velká kniha řešení. Brno : Computer Press, 2006. 912 s. ISBN 80-251-1117-2.
[9] CROFT,
J.; LLOYD, I.; RUBIN, D. Mistrovství v
CSS : Pokročilé techniky pro webové designéry a vývojáře. Brno : Computer
Press, 2007. 416 s. ISBN 978-80-251-1705-7.
[10] DOMES,
M. Tvorba webových stránek : Jednoduše,
srozumitelně, názorně. Brno : Computer Press, 2006. 192 s. ISBN
80-251-0920-8.
[11] DOMES,
M. Tvorba internetových stránek pomocí
HTML, CSS a JavaScriptu. Kralice na Hané : Computer Media s.r.o., 2005. 324
s. ISBN 80-86686-39-6.
[12] STANÍČEK,
P. CSS Kaskádové styly : Kompletní
průvodce. Brno : Computer Press, 2003. 192 s. ISBN 80-7226-872-4.
[13] CASTRO,
E. HTML, XHTML a CSS : Názorný průvodce
tvorbou WWW stránek. Brno : Computer Press, 2007. 440 s. ISBN
978-80-251-1531-2.
[14] SCHAFER,
S. HTML, XHTML a CSS : Bible pro tvorbu
WWW stránek. Praha : Grada, 2009. 648 s. ISBN 978-80-247-2850-6.
[15] GUTMANS,
A.; BAKKEN, S. S.; RETHANS, D. Mistrovství
v PHP 5. Brno : Computer
Press, 2007. 656 s. ISBN: 978-80-251-1519-0.
[16] NARAMORE,
E. PHP5, MySQL, Apache : Vytváříme webové
aplikace. Brno : Computer Press, 2006. 816 s. ISBN
80-251-1073-7.
[17] KOFLER,
M. Mistrovství v MySQL 5 : Kompletní
průvodce webového vývojáře. Brno : Computer Press, 2007. 808 s. ISBN
978-80-251-1502-2.
[18] CONOLLY
, T.; Carolyn, H. Mistrovství Databáze : Profesionální průvodce tvorbou
efektivních databází. Brno : Computer Press, 2009. 584 s. ISBN 978-80-251-2328-7.
[19] KUBÍČEK,
M. Velký průvodce SEO : Jak dosáhnout
nejlepších pozic ve vyhledávačích.
Brno : Computer Press, 2008. 320 s. ISBN: 978-80-251-2195-5.
[20] RAHMEL,
D. Joomla! : Podrobný průvodce tvorbou a
správou webů. Brno : Computer Press,
2010. 384 s. ISBN 978-80-251-2714-8.
[21] KRČMÁŘ,
J. Adobe Photoshop : Praktický webdesign.
Praha : Grada, 2006. 204 s. ISBN
80-247-1423-X.
[22] HOLZNER,
S.; ŠINDELÁŘ, J. RSS : Automatické
doručování obsahu vašich WWW stránek. Brno : Computer Press, 2007. 280 s.
ISBN 978-80-251-1479-7.
[23] POWERS,
D. Dynamic Web Design Made Easy. New
York : Apress company, 2006. 488 s. ISBN 978-1-59059-731-6.
[23] KOSEK,J.
PHP - tvorba interaktivních internetových
aplikací. Praha : Grada, 2005. 215 s. ISBN 80-247-1424-X.
[24] ŘEPA
V. Analýza a návrh informačních systémů.
Praha : Ekopress, 2008. 304 s. ISBN 80-247-1425-X.
[25] ADAMEC,
S., HORNÝ, S., ROSICKÝ, A. Projektování
IS. Praha : Grada, 2004. 194 s. ISBN 80-247-1426-X.
[26] HORNÝ,
S. Analýza a návrh systémů. Praha :
Grada, 2003. 287 s. ISBN 80-247-1427-X.
[27] PRESSMAN,
R. S. Software Engineering :A
practitioner's approach. 5th ed. Boston: McGraw-Hill. New York :
Springer-Verlag, 2007. 548 s. ISBN 988-1-59059-689-0.
[28] SOMMERVILLE,
I. Software engineering. 5th ed.
Wokingham : Addison-Wesley Publishing Company. New York :
Springer-Verlag, 2004. 408 s. ISBN 978-1-59059-699-0.
[29] DRUSKA,
P. CSS a XHTML. Praha : Grada, 2001. 294
s. ISBN 80-247-1526-X.
[30] SCHNEIDER,
R. MySQL : Oficiální průvodce tvorbou,
správou a laděním databází.
Praha 7 : Grada Publishing, a.s., 2006. 372
s. ISBN 80-247-1430-X.
[31] COLLISON,
S. Begginnig CSS web development : from
novice to professional. New York : Springer-Verlag, 2006. 448 s. ISBN
978-1-59059-689-0.
[32] THAU,
D. Velký průvodce Javascriptem : Tvorba
interaktivních webových stránek
v praxi. Praha 7 : Grada Publishing, a.s., 2009. 520 s. ISBN
978-80-247-2211-5.
[33] GILFILLAN,
I.; VORÁČEK, K. Myslíme v MySQL 4 :
knihovna programátora. Grada
Publishing a.s., 2003. 750 s. ISBN 802470661X.
[34] BRÁZA,
J. PHP 5 : začínáme programovat.
Grada Publishing a.s., 2005. 244 s. ISBN
802471146X.
[35] HARPER,
A. Hacking : manuál hackera. Grada
Publishing a.s, 2008. 399 s. ISBN
8024713462.
[36] SIČÁKOVÁ-BEBLAVÁ,
E.; ŠATNÍKOVÁ, S; KLÁTIK,P. Elektronické
aukcie vo verejnom obstarávaní. Bratislava : Adin 2011. 68s. ISBN
80-251-1073- 8.
% percento
€ euro
a pod. a podobne
a.s. akciová spoločnsť
admin administrátor
AJAX Asynchronous JavaScript and XML
ANSI American
National Standards Institute
CERN Conseil Européen pour la recherche
nucléaire
CSS Cascading Style Sheets
č. číslo
DOM Document Object Model
DTD Document Type Definition
e-aukcie elektronické aukcie
e-mail elektronická pošta
e-obchod elektronický obchod
EPI Evropský Polytechnický Institut,s.r.o.
FIPS Federal Information Processing Standard
FTP File Transfer Protocol
g gram
HTML Hypertext Markup Language
HTTP Hypertext Transfer Protocol Overview
IBM International Business Machines
ID identifikátor
IETF Internet Engineering Task Force
Ing. inžinier
IP Internet Protocol
ISBN International Standard Book Number
ISO International Organization for Standardization
IT
Informačné technológie
kB kilobajt
kg kilogram
ks kus
l liter
m2 meter štvorcový
My SQL My
Structured Query Language
MWh megawatthodina
napr. napríklad
NCSA National Center for Supercomputing
Applications
obr. obrázok
PHP Hypertext Preprocessor
resp. ´ respektíve
s. strana
s.r.o spoločnosť s ručením obmedzeným
SEO Search Engine Optimization
SGML Standard Generalized Markup Language
SQL Structured Query Language
t.j. to jest
TCP Transmission Control Protocol
tzv. takzvaný
USA The United States of America
W3C World Wide Web Consortium
WHATWG
Web Hypertext Application Technology Working Group
WWW World Wide Web
XML Extensible Markup Language
XHTML Extensible Hypertext Markup Language
Zoznam grafov, tabuliek a obrázkov
Graf č. 1: Počet
záujemcov o verejnú zákazku
Graf č. 2: Distribúcia
priemerných úspor z celkového množstva zákaziek
Graf č. 3: Typy
služieb kupovaných od aukčných firiem
Graf č. 4: Typy
služieb kupovaných od aukčných firiem a priemerné úspory
Graf č. 5: Závislosť
očakávanej výšky úspor od počtu záujemcov v e-aukcií podľa formy e-
aukcie v porovnaní s očakávanými úsporami
Graf č. 6: Spôsoby
určenia začiatočnej ceny
Graf č. 7: Metóda
definovania začiatočnej ceny a predmet zákazky
Graf č. 8: Metóda
určenia začiatočnej ceny a typ zákazky podľa finančných limitov
Graf č. 9: Porovnanie
podielov e-aukcií na celkovom objeme obstarávaní
Graf č. 10: Porovnanie
počtu uskutočnených e-aukcií
Graf č. 11: Počet a
objem zákaziek alokovaných formou e-aukcie podľa predmetu zákazky
Graf č. 12: Predmet
verejnej zákazky a typ verejnej zákazky z hľadiska početnosti
Graf č. 13: Počty a
objemy zákaziek podľa finančného limitu
Tabuľka č. 1: Celkové
a priemerné úspory z e-aukcií počas rokov 2008 – 2013.
Tabuľka č. 2:
Závislosť očakávanej výšky úspor od počtu ponúk v e-aukciach v
jednotlivých rokoch
Tabuľka č. 3:
Závislosť očakávanej výšky úspor od počtu ponúk v EA podľa typu zákazky
Tabuľka č. 4: Celkové
priemerné ceny a ich rozdiely
Tabuľka č. 6:
Priemerné úspory v závislosti od spôsobu určenia začiatočnej ceny
Tabuľka č. 7: Počet
verejných zákaziek obstarávaných formou e-aukcií a objemy
verejných zákaziek alokovaných formou e-aukcie
Obrázok č. 1: Hlavá
stránka
Obrázok č. 2:
Kontaktný formulár
Obrázok č. 3:
Prihlásenie do administrácie
Obrázok č. 4:
Administračné menu
Obrázok č. 5: Zmena
admin údajov
Obrázok č. 6: Režim
údržby
Obrázok č. 7: Archív
aukcií
Obrázok č. 8:
Vytvorenie novej aukcie
Obrázok č. 9: Hlavné
menu aukcií
Obrázok č. 10: Hlavá
stránka aukcií
Obrázok č. 11: Hlavá
stránka aukcií
Obrázok č. 12:Výpis
aktuálnej aukcie v administračnom režime
Obrázok č. 13: Úprava
už zadanej aukcie
Obrázok č. 14:
Generátor kódov
Obrázok č. 15:
Vygenerované kódy
Obrázok č. 16: Úprava
kódu
Obrázok č. 17:
Databáza kódov
Obrázok č. 18:
Odoslanie kódu emailom
Obrázok č. 19:
Administračný mód
Obrázok č. 20: Odkaz
na aktuálne aukcie
Obrázok č. 21: Čas
aukcie
Obrázok č. 22: Výpis v
aukcii
Obrázok č. 23: Systém
bez aukcie
Príloha č.1: Indexová
stránka
Príloha č.2: Stránka
check.php
Príloha č.3: Odoslanie
kontaktného e-mailu
Príloha č.4:
Prihlasovací skript
Príloha č.5:
Administrácia aukcií
Príloha č.6:
Administračné údaje
Príloha č.7: Zmena
administračných údajov
Príloha č.8: Zmena
statusu
Príloha č.9: Archive
reader
Príloha č.10: Vloženie
aktuálnej aukcie
Príloha č.11: Draft
Príloha č.12: Výpis
aukcií
Príloha č.13: Výmaz
aukcie
Príloha č.14: Úprava
aktuáônej aukcie
Príloha č.15:
Generované kódy
Príloha č.16: Úprava
kódu
Príloha č.17:
Ošetrenie prístupu
Príloha č.18:
Odosielanie kódov e-mailom
Príloha č.19: Formulár
pre odoslanie kódu
Príloha č.20: Výpis
kódov
Príloha č.21: Administračný
mód - cookie
Príloha č.22: Vrchná
časť aukčnej stránky
Príloha č.23: Ľavá
dolná stránka aukcií
Príloha č.24:
Prihlasovací skript do aukcií
Príloha č.25:
Príspevok na študentskú konferenciu
Príloha č.1: Indexová stránka
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Elektronicke
aukcie ST</title>
<meta
name="keywords" content="elektronicke aukcie" />
<meta
name="description" content="elektronicke aukcie
galosoft.eu" />
<link
rel="icon" type="image/ico"
href="icon/hammer.ico"></link>
<link
rel="shortcut icon" href="icon/hammer.ico"></link>
</head>
<FRAMESET border=0 rows="100%,*"
frameborder="no" marginleft=0 margintop=0 marginright=0
marginbottom=0>
<frame
src="check.php" scrolling=auto frameborder="no" border=0
noresize>
<frame
topmargin="0" marginwidth=0 scrolling=no marginheight=0
frameborder="no" border=0 noresize>
</FRAMESET>
</html>
Príloha č.2: Stránka check.php
<?php
header("Expires:
Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified:
" . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control:
no-store, no-cache, must-revalidate");
header("Cache-Control:
post-check=0, pre-check=0", false);
header("Pragma:
no-cache");
$d1 = date('m',
time());
$d2 = date('d',
time());
$d3 = date('Y',
time());
$t1 = date('H',
time());
$t2 = date('i',
time());
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase")
or die(mysql_error());
$vysledok3 =
mysql_query("SELECT * FROM auctions where Status='active' ");
$num_rows3 = mysql_num_rows($vysledok3);
if ($num_rows3 ==
"1") {
$tmp =
mysql_query(" SELECT * FROM temp");
if (!$tmp) {
echo 'Could not run
query: ' . mysql_error();
exit;
}
$tempo =
mysql_fetch_object($tmp);
$aktivna =
mysql_query(" SELECT * FROM auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run
query: ' . mysql_error();
exit;
}
$riaktiv =
mysql_fetch_object($aktivna);
$kill = $d3 + $d1 +
$d2;
$killer =
$riaktiv->Zr + $riaktiv->Zm + $riaktiv->Zd;
$killed = $killer -
$kill;
$kon =
($riaktiv->Kh * 60) + $riaktiv->Kmin;
$zac =
($riaktiv->Zh * 60) + $riaktiv->Zmin;
$akt = ($t1 * 60) +
$t2;
$start = $zac - $akt;
$poc = $kon - $akt;
if (($start <
"0") and (($poc < "0") or ($poc == "0")) ) {
$stat = "koniec";
}
if ($stat ==
"koniec" and (($killed == "0") or ($killed <
"0"))) {
$stav =
"ukoncena" ;
}
if (($stat ==
"koniec") and ($stav == "ukoncena") and ($poc ==
"0" or $poc < "0") or ($d3 > $riaktiv->Zr) or
(($d3 == $riaktiv->Zr) and ($d2 > $riaktiv->Zd)) or (($d3 ==
$riaktiv->Zr) and ($d2 == $riaktiv->Zd) and ($d1 > $riaktiv->Zm)))
{
$vysledok2 =
mysql_query("SELECT * FROM auctions where Status='draft' ");
$num_rows2 =
mysql_num_rows($vysledok2);
$aktivna =
mysql_query(" SELECT * FROM auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo '<br>Could
not run query: ' . mysql_error();
exit;
}
$riaktiv =
mysql_fetch_object($aktivna);
$tmp =
mysql_query(" SELECT * FROM temp");
if (!$tmp) {
echo '<br>Could
not run query: ' . mysql_error();
exit;
}
$tempo =
mysql_fetch_object($tmp);
$insert = "INSERT
INTO archive (ID, Cena, User)
VALUES
('$riaktiv->ID','$tempo->Cena', '$tempo->User')";
$add_member =
mysql_query($insert);
$conn = mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
$sql = "UPDATE
auctions
SET Status= 'archive'
WHERE Status= 'active'
";
mysql_select_db('loginbase');
$retval = mysql_query(
$sql, $conn );
if(! $retval )
{
die('<br>Could
not update data: ' . mysql_error());
}
if ($num_rows2 ==
"1" ) {
$sql = "UPDATE
auctions
SET Status= 'active'
WHERE Status= 'draft'
";
mysql_select_db('loginbase');
$retval = mysql_query(
$sql, $conn );
if(! $retval )
{
die('Could not update
data: ' . mysql_error());
}
echo
"...nastavovanie novej...<br>\n";
}
$conn =
mysql_connect("localhost", "gtm", "baselogin") or
die(mysql_error());
$sql = "TRUNCATE
TABLE temp";
mysql_select_db("loginbase");
$retval = mysql_query(
$sql, $conn );
setcookie ("ID_my_user",
"null", time()+3600);
}
}
echo
"....kontrola systemu...<br><br>";
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase")
or die(mysql_error());
$vysledok =
mysql_query("SELECT * FROM system where stav='ok' ");
$num_rows =
mysql_num_rows($vysledok);
$result =
mysql_query("SELECT * FROM system where stav='ko' ");
$res =
mysql_num_rows($result);
if ($num_rows == '1')
{
header("refresh:
0; url=index.html");
echo "...system ok...za
chvilu budete presmerovani...";
}
else if ($res == '1')
{
header("refresh:
1; url=udrzba.htm");
echo "...system
sa nachadza v udrzbe...za chvilu budete presmerovani...";
}
?>
<html>
<head>
<meta
http-equiv="Cache-Control" content="Public | Private | no-cache
| no-store">
</head>
</html>
Príloha č.3: Odoslanie kontaktného e-mailu
<?php
$to = "msu@staratura.sk";
$subject = "Dotaz e-aukcie od:
".$_POST['email']." ";
$body = $_POST['text'];
$headers = "From: "
.$_POST['email']. "\r\n" . "Reply-To: " .$_POST['email'].
"\r\n" . "X-Mailer: PHP/" . phpversion();
if (mail($to, $subject, $body, $headers)) {
header("refresh: 0;
url='index.html#contact'");
echo "<script
type='text/javascript'>alert('E-mail bol uspesne
odoslany!');</script>" ;
} else {
header("refresh: 0;
url='index.html#contact'");
echo "<script type='text/javascript'>alert('Odoslanie
e-mailu zlyhalo!');</script>" ;
}
?>
Príloha č.4: Prihlasovací skript
<?php
// Connects to your Database
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))
//if there is, it logs you in and directes
you to the members page
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['Heslo'])
{
}
else
{
header("Location: members.php");
}
}
}
//if the login form is submitted
if (isset($_POST['submit'])) { // if form
has been submitted
// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
die('Musite vyplnit prihlasovacie
udaje!!!');
}
// checks it against the database
if (!get_magic_quotes_gpc()) {
$_POST['email'] =
addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM
login WHERE Meno = '".$_POST['username']."'")or
die(mysql_error());
//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('Tento uzivatel neexistuje!!!');
}
while($info = mysql_fetch_array( $check ))
{
$_POST['pass'] =
stripslashes($_POST['pass']);
$info['Heslo'] =
stripslashes($info['Heslo']);
$_POST['pass'] = md5($_POST['pass']);
//gives error if the password is wrong
if ($_POST['pass'] != $info['Heslo']) {
die('Zle heslo!!!');
}
else
{
// if login is ok then we add a cookie
$_POST['username'] =
stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['username'],
$hour);
setcookie(Key_my_site, $_POST['pass'],
$hour);
//then redirect them to the members area
header("Location: members.php");
}
}
}
else
{
// if they are not logged in
?>
<?php
}
?>
Príloha č.5: Administrácia aukcií
<?php
// Connects to your Database
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$vysledok = mysql_query("SELECT * FROM
auctions");
$num_rows = mysql_num_rows($vysledok);
$vysledok3 = mysql_query("SELECT *
FROM auctions where Status='draft' ");
$num3 = mysql_num_rows($vysledok3);
//checks cookies to make sure they are
logged in
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password,
they are taken to the login page
if
($pass != $info['Heslo'])
{ header("Location:
index.html#services");
}
//otherwise they are shown the admin area
else
{
$result = mysql_query("SELECT Email
FROM login WHERE Meno = '$username' ") or die('Invalid query: ' .
mysql_error());
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['Email'];}
echo
"<center><h1>Administracia</h1></center>";
}
}
}
else
//if the cookie does not exist, they are
taken to the login screen
{
header("Location:
index.html#services");
}
$pocetkodov = mysql_query("SELECT *
FROM users");
$i=0;
while($pole =
mysql_fetch_array($pocetkodov))
{
$i=$i+1;
}
$vys = mysql_query("SELECT * FROM
auctions where Status='active' ");
$akti = mysql_num_rows($vys);
$vyse = mysql_query("SELECT * FROM
auctions where Status='draft' ");
$pas = mysql_num_rows($vyse);
if ($akti == "1") {
$plus = "1";
}
if ($pas == "1") {
$plus2 = "1";
}
if ($akti != "1") {
$plus = "0";
}
if ($pas != "1") {
$plus2 = "0";
}
$pocetaukcii = $plus + $plus2;
$vysledok = mysql_query("SELECT * FROM
system where stav='ok' ");
$num = mysql_num_rows($vysledok);
$result = mysql_query("SELECT * FROM
system where stav='ko' ");
$res = mysql_num_rows($result);
?>
<html><head>
<title>Admin mode ST</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<fieldset class="row1">
<legend><b>Admin
udaje</b>
</legend>
<form name="udaje"
action="adminchange.php" method="post">
<p>
<label>Meno:
<?php
echo "$username";
?>
</label>
</p>
<p>
<label>E-mail:
<?php
echo "$hodnota";
?>
</label>
</p>
<p>
</p>
<input type="submit"
value="Zmenit">
</form>
</fieldset>
<fieldset class="stat1">
<legend><b>Udrzba</b>
</legend>
<?php if ($num == '1') {echo
"<b>Stav webu:</b> <i>plna
prevadzka</i><br><br>";}?>
<?php if ($res == '1') { echo
"<b>Stav webu:</b><i>
udrzba</i><br><br>";}?>
<?php
if ($num == '1') {
echo "<form name='udrzba'
action='nastav.php' method='post'>";
echo "<input type='submit'
value='Zapnut'>";
echo "</form>";
}
?>
<?php
if ($res == '1') {
echo "<form name='udrzbaa'
action='koniec.php' method='post'>";
echo "<input type='submit'
value='Vypnut'>";
echo "</form>";
}
?>
</fieldset>
<fieldset class="row2">
<legend><b>Aukcie</b>
</legend>
<center>
<p>
<?php
if ($pocetaukcii > "0") {
echo "Pocet zadanych aukcii v systeme:
$pocetaukcii";
echo "<form name='uprav'
action='uprava.php' method='post'>";
echo "<input type='submit'
value='Upravit aukcie'></form>";
}
if ($akti == '0') {
echo "<form name='udaje' action='aukcia.php'
method='post'>";
echo "<input type='submit'
value='Vytvor aukciu'>";
echo "</form>";
}
?></p>
<p>
<?php
if ($num3 != "1" and $akti ==
"1") {
echo "<form name='udaje'
action='draft.php' method='post'>";
echo "<input type='submit'
value='Draft buducej'></form>";
}
?>
</p>
<p>
<form name="udaje"
action="archiv.php" method="post"
target="_blank">
<input type="submit"
value="Archiv aukcii">
</form>
</p>
<p>
<?php
if ($akti == '1') {
echo "<form name='udaje'
action='aktualne.php' method='post'>";
echo "<input type='submit'
value='Zobrazit aktualnu aukciu'>";
echo "</form>";
}
?>
</p>
</center>
</fieldset>
<fieldset class="row3">
<legend><b>Generator unikatnych
pristupovych kodov</b>
</legend>
<p>
<?php
if ($akti == "1" and $i ==
"0") {
echo "<form name='udaje'
action='generator.php' method='post'>";
echo "<input type='submit'
value='Generator'></form>";
} else if ($akti == "1" and $i
> "0") {
echo "<form name='udaje'
action='dbgen.php' method='post'>";
echo "<input type='submit'
value='Prehlad vygenerovanych kodov'></form>";
}
else
{
echo "Kody bude mozne generovat az po
vytvoreni aukcie!";
}
?>
</p>
</fieldset>
<fieldset class="row4">
<legend><b>Odhlasit</b>
</legend>
<p>
<form name="udaje"
action="logout.php" method="post">
<input type="submit"
value="Odhlasit">
</form>
</p>
</fieldset>
<fieldset class="row4">
<p><center>Copyright (C) 2012
<a href="http://galosoft.eu"
target="_blank">GTM</a> | Running GTM's Spartan admin engine
2012</a></p>
</center>
</fieldset>
</body>
</html>
Príloha č.6: Administračné údaje
<?php
// Connects to your Database
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
//checks cookies to make sure they are
logged in
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password,
they are taken to the login page
if ($pass != $info['Heslo'])
{ header("Location:
index.html#services");
}
//otherwise they are shown the admin area
else
{
$result = mysql_query("SELECT * FROM
login WHERE Meno = '$username' ");
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['Email'];
$hodnota2 = $row['Meno'];}
echo "<h1>Administracia - zmena
nastaveni</h1><p>";
}
}
}
else
//if the cookie does not exist, they are
taken to the login screen
{
header("Location:
index.html#services");
}
?>
<html><head>
<title>Admin mode ST</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<fieldset class="row1">
<legend>Admin udaje - zmena
</legend>
<form action="achzapis.php"
method="post">
<table border="0">
<tr><td>Meno:</td><td>
<input type="text"
name="username" maxlength="60" value="<?php echo
"$hodnota2"?>">
</td></tr>
<tr><td>E-mail:</td><td>
<input type="text"
name="email" maxlength="60" value="<?php echo
"$hodnota"?>">
</td></tr>
<tr><td>Heslo:</td><td>
<input type="password"
name="pass" maxlength="10">
</td></tr>
<tr><td>Potvrd
heslo:</td><td>
<input type="password"
name="pass2" maxlength="10">
</td></tr>
<tr><th colspan=2><input
type="submit" name="submit"
value="Zmenit"></th></tr>
<tr><th colspan=2><input
type="reset" name="reset"
value="Reset"></th></tr></table>
</form>
<form action="members.php"
method="post">
<input type="submit"
value="<---">
</fieldset>
</body>
</html>
Príloha č.7: Zmena administračných údajov
<?php
// Connects to your Database
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
//This code runs if the form has been
submitted
if (isset($_POST['submit'])) {
//This makes sure they did not leave any
fields blank
if (!$_POST['username'] | !$_POST['pass'] |
!$_POST['pass2'] | !$_POST['email'] ) {
die('Musite vyplnit vsetky povinne
udaje!!!');
}
// this makes sure both passwords entered
match
if ($_POST['pass'] != $_POST['pass2']) {
die('Hesla sa nezhoduju!!! ');
}
// here we encrypt the password and add
slashes if needed
$_POST['pass'] = md5($_POST['pass']);
if (!get_magic_quotes_gpc()) {
$_POST['pass'] =
addslashes($_POST['pass']);
$_POST['username'] =
addslashes($_POST['username']);
}
// get value of id that sent from address
bar
$id=0;
// Delete data in mysql from row that has
this id
$sql="DELETE FROM login WHERE
ID='$id'";
$result=mysql_query($sql);
$insert = "INSERT INTO login (ID,
Meno, Heslo, Email)
VALUES
('0','".$_POST['username']."', '".$_POST['pass']."',
'".$_POST['email']."')";
$add_member = mysql_query($insert);
}
?>
<h1>Zmena udajov prebehla v
poriadku!!!</h1>
<p><form name="udaje"
action="index.html#services" method="post">
<input type="submit"
value="<---"></p>
Príloha č.8: Zmena statusu
<?php
$conn =
mysql_connect("localhost", "gtm", "baselogin") or
die(mysql_error());
mysql_select_db("loginbase")
or die(mysql_error());
if(isset($_COOKIE['ID_my_site']))
{
$username =
$_COOKIE['ID_my_site'];
$pass =
$_COOKIE['Key_my_site'];
$check =
mysql_query("SELECT * FROM login WHERE Meno = '$username'")or
die(mysql_error());
while($info =
mysql_fetch_array( $check ))
{
//if the cookie has
the wrong password, they are taken to the login page
if ($pass !=
$info['Heslo'])
{
header("Location: index.html#services");
}
//otherwise they are
shown the admin area
else
{
$result =
mysql_query("SELECT * FROM login WHERE Meno = '$username' ");
while ($row =
mysql_fetch_assoc($result)) {
$hodnota =
$row['Email'];
$hodnota2 =
$row['Meno'];}
echo
"<center><h1>...zapnut
udrzbu...</h1></center><p>";
}
}
}
else
//if the cookie does
not exist, they are taken to the login screen
{
header("Location:
index.html#services");
}
$sql = "TRUNCATE
TABLE system";
mysql_select_db("loginbase");
$retval = mysql_query(
$sql, $conn );
$insert = "INSERT
INTO system (stav)
VALUES ('ko')";
$add_member =
mysql_query($insert);
header("refresh:
0; url=members.php");
echo "<script
type='text/javascript'>alert('Stav:Udrzba - uspesne
zapnuty!!!');</script>" ;
?>
Príloha č.9: Archive reader
<?php
header("Expires: Mon, 26 Jul 1990
05:00:00 GMT");
header("Last-Modified: " .
gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store,
no-cache, must-revalidate");
header("Cache-Control: post-check=0,
pre-check=0", false);
header("Pragma: no-cache");
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$con =
mysql_connect("localhost","gtm","baselogin");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("loginbase",
$con);
echo "<center><h1>Archiv
aukcii</h1></center>";
$result = mysql_query("SELECT * FROM
archive");
echo "<center><table
border='1'>
<tr>
<th>ID aukcie</th>
<th>Nazov</th>
<th>Popis</th>
<th>Kontakt</th>
<th>Zaciatok</th>
<th>Koniec</th>
<th>Obrazok</th>
<th>Typ</th>
<th>Vyvolavacia cena
€</th>
<th>Konecna cena
€</th>
<th>Vyherca</th>
</tr></center>";
while($row = mysql_fetch_array($result))
{
$link = $row['ID'];
$archivna = mysql_query(" SELECT *
FROM auctions WHERE ID = $link ");
if (!$archivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$archiv = mysql_fetch_object($archivna);
$pic=$archiv->Obrazok;
echo "<tr>";
echo
"<td>$link</td>";
echo
"<td>$archiv->Nazov</td>";
echo
"<td>$archiv->Popis</td>";
echo
"<td>$archiv->Kontakt</td>";
echo
"<td>$archiv->Zd/$archiv->Zm/$archiv->Zr ...
$archiv->Zh:$archiv->Zmin</td>";
echo
"<td>$archiv->Zd/$archiv->Zm/$archiv->Zr ...
$archiv->Kh:$archiv->Kmin</td>";
echo "<td><a href=upload/$pic
target=_blank>$pic</a></td>";
echo "<td>$archiv->Typ</td>";
echo
"<td>$archiv->Cena</td>";
echo "<td>" . $row['Cena']
. "</td>";
echo "<td>" . $row['User']
. "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
<html>
<head>
<title>Archiv aukcii -
databaza</title>
<meta
http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Elektronicke aukcie
ST</title>
<meta name="keywords"
content="elektronicke aukcie" />
<meta name="description"
content="elektronicke aukcie galosoft.eu" />
<meta
http-equiv="Cache-Control" content="Public | Private | no-cache
| no-store">
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<br><br>
<p>© 2012 GTM | Archive
reader by GTM<br />
</p>
</body>
</html>
Príloha č.10: Vloženie aktuálnej aukcie
<?php
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$hodnota="";
$result = mysql_query('SELECT ID FROM
archive ORDER BY ID DESC LIMIT 1') or die('Invalid query: ' . mysql_error());
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['ID'] + 1;
}
if ($hodnota == "" ) {
$hodnota = "0"; }
$vysledok = mysql_query("SELECT * FROM
auctions where Status='active' ");
$num_rows = mysql_num_rows($vysledok);
if ($num_rows == '1')
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Aktualna aukcia uz
existuje!!!');</script>" ;}
else {
$file_name =
$HTTP_POST_FILES['uploadedfile']['name'];
$subor = $_FILES['uploadedfile']['name'];
$ext = pathinfo($subor,
PATHINFO_EXTENSION);
if (!$_POST['nazov'])
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Chyba zadavania
aukcie!!!');</script>" ;}
else {
echo
"<center><h1>...zapis novej aukcie uspesne
dokonceny!!!...</h1></center><p>";
if ($ext != "") {
if(!eregi('image/',
$_FILES['uploadedfile']['type'])) {
echo "<script
type='text/javascript'>alert('Zadany subor nieje typu obrazok - kopirovanie
prerusene!!!');</script>" ;
} else {
$new_file_name="$hodnota.$ext".$file_name;
$path= "upload/".$new_file_name;
if($uploadedfile !=none)
{
if(copy($_FILES['uploadedfile']['tmp_name'], $path))
{
echo "<fieldset
class='row1'>";
echo "Obrazok bol uspesne
prekopirovany na aukcny server!!!<BR/>";
echo "Nazov :
".$_FILES['uploadedfile']['name']."<BR/>";
echo "Velkost :
".$_FILES['uploadedfile']['size']." B<BR/>";
echo "Typ :
".$_FILES['uploadedfile']['type']."<BR/>";
echo "</fieldset>";
}
else
{
echo "Error";
}
}
}
}
$insert = "INSERT INTO auctions (ID,
Nazov, Popis, Kontakt, Zd, Zm, Zr, Zh, Zmin, Kh, Kmin, Obrazok, Typ, Cena,
Status)
VALUES
('$hodnota','".$_POST['nazov']."', '".$_POST['text']."',
'".$_POST['kontakt']."', '".$_POST['zden']."',
'".$_POST['zmesiac']."', '".$_POST['zrok']."',
'".$_POST['zhodina']."', '".$_POST['zminuta']."',
'".$_POST['khodina']."', '".$_POST['kminuta']."',
'$new_file_name', '".$_POST['typ']."',
'".$_POST['cena']."', 'active')";
$add_member = mysql_query($insert);
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Aktualna aukcia bola uspesne
vytvorena!!!');</script>" ;
}
}
?>
<html><head>
<title>Zalozenie novej aukcie</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<fieldset class="row2">
<center>
<form action="members.php"
method="post">
<input type="submit"
value="<---">
</center>
</fieldset>
</center>
</body>
</html>
Príloha č.11: Draft
<?php
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$tmp = mysql_query(" SELECT * FROM
auctions WHERE Status = 'active' ");
if (!$tmp) {
echo
'Could not run query: ' . mysql_error();
exit;
}
$tempo = mysql_fetch_object($tmp);
if ($tempo->ID == "" ) {
$hodnota = "0"; }
if ($tempo->ID !="") {
$hodnota = $tempo->ID+"1";
}
$vysledok = mysql_query("SELECT * FROM
auctions where Status='draft' ");
$num_rows = mysql_num_rows($vysledok);
if ($num_rows > '0') {
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Lutujem, ale draft buducej aukcie uz bol
vytvoreny!!!');</script>" ;}
if ($tempo->ID == "")
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Lutujem, ale aktualna aukcia nebola doteraz
vytvorena!!!');</script>" ;}
else {
$file_name =
$HTTP_POST_FILES['uploadedfile']['name'];
$subor = $_FILES['uploadedfile']['name'];
$ext = pathinfo($subor,
PATHINFO_EXTENSION);
if (!$_POST['nazov'])
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Chyba zadavania
aukcie!!!');</script>" ;}
else {
echo "<center><h1>...zapis
novej aukcie uspesne dokonceny!!!...</h1></center><p>";
if ($ext != "") {
if(!eregi('image/',
$_FILES['uploadedfile']['type'])) {
echo "<script
type='text/javascript'>alert('Zadany subor nieje typu obrazok - kopirovanie
prerusene!!!');</script>" ;
} else {
$new_file_name="$hodnota.$ext".$file_name;
$path= "upload/".$new_file_name;
if($uploadedfile !=none)
{
if(copy($_FILES['uploadedfile']['tmp_name'], $path))
{
echo "<fieldset
class='row1'>";
echo "Obrazok bol uspesne
prekopirovany na aukcny server!!!<BR/>";
echo "Nazov :
".$_FILES['uploadedfile']['name']."<BR/>";
echo "Velkost :
".$_FILES['uploadedfile']['size']." B<BR/>";
echo "Typ : ".$_FILES['uploadedfile']['type']."<BR/>";
echo "</fieldset>";
}
else
{
echo "Error";
}
}
}
}
$insert = "INSERT INTO auctions (ID,
Nazov, Popis, Kontakt, Zd, Zm, Zr, Zh, Zmin, Kh, Kmin, Obrazok, Typ, Cena,
Status)
VALUES
('$hodnota','".$_POST['nazov']."', '".$_POST['text']."',
'".$_POST['kontakt']."', '".$_POST['zden']."',
'".$_POST['zmesiac']."', '".$_POST['zrok']."',
'".$_POST['zhodina']."', '".$_POST['zminuta']."',
'".$_POST['khodina']."', '".$_POST['kminuta']."',
'$new_file_name', '".$_POST['typ']."','".$_POST['cena']."',
'draft')";
$add_member = mysql_query($insert);
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Buduca aukcia bola uspesne
vytvorena!!!');</script>" ;
}
}
?>
<html><head>
<title>Zalozenie novej
aukcie</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<fieldset class="row2">
<center>
<form action="members.php"
method="post">
<input type="submit"
value="<---">
</center>
</fieldset>
</center>
</body>
</html>
Príloha č.12: Výpis aukcií
<?php
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password, they
are taken to the login page
if ($pass != $info['Heslo'])
{ header("Location:
index.html#services");
}
//otherwise they are shown the admin area
else
{
$result = mysql_query("SELECT * FROM
login WHERE Meno = '$username' ");
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['Email'];
$hodnota2 = $row['Meno'];}
echo "<center><h1>Uprava
aukcii</h1></center><p>";
}
}
}
else
//if the cookie does not exist, they are
taken to the login screen
{
header("Location:
index.html#services");
}
$vysledok = mysql_query("SELECT * FROM
auctions");
$num_rows = mysql_num_rows($vysledok);
if ($num_rows == "") {
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Lutujem, ale system nenasiel ziadne aukcie k
uprave!!!');</script>" ;
}
$riaktiv->Nazov ="";
$ripas->Nazov ="";
$riaktiv->Obrazok ="";
$ripas->Obrazok ="";
$aktivna = mysql_query(" SELECT * FROM
auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$riaktiv = mysql_fetch_object($aktivna);
$pasivna = mysql_query(" SELECT * FROM
auctions WHERE Status = 'draft' ");
if (!$pasivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$ripas = mysql_fetch_object($pasivna);
if ($riaktiv->Obrazok == "") {
$picact = "upload/noimage.png";
}
else
{
$picact =
"upload/$riaktiv->Obrazok";
}
if ($ripas->Obrazok == "") {
$picpas = "upload/noimage.png";
}
else
{
$picpas =
"upload/$ripas->Obrazok";
}
?>
<html><head>
<title>Uprava aukcii</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<center>
<h2>Aktivna aukcia: <?php echo
$riaktiv->Nazov; ?></h2><br>
<br>
<table border=1>
<tr>
<td><b>Nazov:</b><i> <?php echo
$riaktiv->Nazov; ?></i></td>
<td align=center colspan=2>
<b>Popis: </b><i>
<?php echo $riaktiv->Popis; ?></i></td>
</tr>
<tr>
<td><b>Kontakt:</b><i> <?php echo
$riaktiv->Kontakt;
?></i><br><b>Cena:</b><i> <?php echo $riaktiv->Cena;
?>€</i></td>
<td valign=top rowspan=2>
<b>Obrazok:</b><a
href="<?php echo "$picact"; ?>"
target="_blank"><img src="<?php echo
"$picact"; ?>" width="150" height="150"
alt="Obrazok"></a></td>
<td><b>Zaciatok:</b><i> <?php echo $riaktiv->Zd;
?>.<?php echo $riaktiv->Zm; ?>.<?php echo $riaktiv->Zr;
?> <?php echo $riaktiv->Zh;
?>:<?php echo $riaktiv->Zmin; ?></i></td>
</tr>
<tr>
<td><b>Typ:</b><i>
<?php echo $riaktiv->Typ; ?></i></td>
<td><b>Koniec:</b><i><?php
echo $riaktiv->Kh; ?>:<?php echo $riaktiv->Kmin;
?></i></td>
</tr>
</table>
<br>
<?php
if ($riaktiv->Nazov !='') {
echo "<form action='upravaktiv.php'
method='post'>";
echo "<input type='submit'
value='Upravit'></form>";
echo "<form action='zmazaktiv.php'
method='post'>";
echo "<input type='submit'
value='Zmazat'></form>";
}
?>
<br>
<br>
<h2>Pripravovana aukcia: <?php
echo $ripas->Nazov; ?></h2><br>
<br>
<table border=1>
<tr>
<td><b>Nazov:</b><i> <?php echo
$ripas->Nazov; ?></i></td>
<td align=center colspan=2>
<b>Popis: </b><i>
<?php echo $ripas->Popis; ?></i></td>
</tr>
<tr>
<td><b>Kontakt:</b><i> <?php echo
$ripas->Kontakt; ?></i><br><b>Cena:</b><i>
<?php echo $ripas->Cena; ?>€</i></td>
<td valign=top rowspan=2>
<b>Obrazok:</b><a
href="<?php echo "$picpas"; ?>"
target="_blank"><img src="<?php echo
"$picpas"; ?>" width="150" height="150"
alt="Obrazok"></a></td>
<td><b>Zaciatok:</b><i> <?php echo
$ripas->Zd; ?>.<?php echo $ripas->Zm; ?>.<?php echo
$ripas->Zr; ?> <?php echo $ripas->Zh;
?>:<?php echo $ripas->Zmin; ?></i></td>
</tr>
<tr>
<td><b>Typ:</b><i>
<?php echo $ripas->Typ; ?></i></td>
<td><b>Koniec:</b><i><?php echo
$ripas->Kh; ?>:<?php echo $ripas->Kmin; ?></i></td>
</tr>
</table>
<br>
<?php
if ($ripas->Nazov != '') {
echo "<form action='upravpasiv.php'
method='post'>";
echo "<input type='submit'
value='Upravit'></form>";
echo "<form action='zmazpasiv.php'
method='post'>";
echo "<input type='submit'
value='Zmazat'></form>";
}
?>
<br>
<br>
</center>
<fieldset class="row2">
<center>
<form action="members.php"
method="post">
<input type="submit"
value="<---">
</center>
</fieldset>
</center>
</body>
</html>
Príloha č.13: Výmaz aukcie
<?php
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password,
they are taken to the login page
if ($pass != $info['Heslo'])
{ header("Location:
index.html#services");
}
//otherwise they are shown the admin area
else
{
$result = mysql_query("SELECT * FROM
login WHERE Meno = '$username' ");
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['Email'];
$hodnota2 = $row['Meno'];}
echo "<center><h1>...mazanie
aktualnej aukcie...</h1></center><p>";
}
}
}
else
//if the cookie does not exist, they are
taken to the login screen
{
header("Location:
index.html#services");
}
$aktivna = mysql_query(" SELECT * FROM
auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$riaktiv = mysql_fetch_object($aktivna);
if ($riaktiv->Obrazok == "") {
}
else {
$picact =
"upload/$riaktiv->Obrazok";
unlink($picact);
}
mysql_query("DELETE FROM auctions
WHERE Status = 'active'");
header("refresh: 0;
url=aukcia.php");
echo "<script
type='text/javascript'>alert('Aktualna aukcia bola uspesne
vymazana!!!');</script>" ;
?>
Príloha č.14: Úprava aktuáônej aukcie
<?php
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password,
they are taken to the login page
if ($pass != $info['Heslo'])
{ header("Location:
index.html#services");
}
//otherwise they are shown the admin area
else
{
$result = mysql_query("SELECT * FROM
login WHERE Meno = '$username' ");
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['Email'];
$hodnota2 = $row['Meno'];}
echo "<center><h1>Uprava
aktualnej aukcie</h1></center><p>";
}
}
}
else
//if the cookie does not exist, they are
taken to the login screen
{
header("Location:
index.html#services");
}
$vysledok = mysql_query("SELECT * FROM
auctions");
$num_rows = mysql_num_rows($vysledok);
if ($num_rows == "") {
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Lutujem, ale system nenasiel ziadne aukcie k
uprave!!!');</script>" ;
}
$aktivna = mysql_query(" SELECT * FROM
auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$riaktiv = mysql_fetch_object($aktivna);
?>
<html><head>
<title>Uprava aktivnej
aukcie</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<center>
<fieldset class="row1">
<legend>Aukcia - udaje
</legend>
<form
action="upravaaktivzapis.php" method="post"
enctype="multipart/form-data">
<table border="0">
<tr><td>Nazov:</td><td>
<input type="text"
name="nazov" maxlength="60" value="<?php echo
$riaktiv->Nazov; ?>">
</td></tr>
<tr><td>Popis:</td><td>
<textarea name="text" cols=60
rows=6><?php echo $riaktiv->Popis; ?></textarea>
</td></tr>
<tr><td>Kontakt</td><td>
<input type="text"
name="kontakt" maxlength="10" value="<?php echo
$riaktiv->Kontakt; ?>" >
</td></tr>
<tr><td>Obrazok</td><td>
<input type="hidden" name="MAX_FILE_SIZE"
value="2000000" />
<input name="uploadedfile"
type="file" /><br />
</td></tr>
<tr><td>Typ:</td><td>
<select name="typ">
<option
value="anglicka">anglicka</option>
<option
value="holandska">holandska</option>
</select>
</td></tr>
<tr><td>Cena</td><td>
<input type="text"
name="cena" maxlength="10" value="<?php echo
$riaktiv->Cena; ?>" >€
</td></tr>
<tr><td>Zaciatok:</td><td>
<br>
<br>
Den: <input type="text"
name="zden" maxlength="10" value="<?php echo
$riaktiv->Zd; ?>" >
Mesiac: <input type="text"
name="zmesiac" maxlength="10" value="<?php echo
$riaktiv->Zm; ?>" >
Rok: <input type="text"
name="zrok" maxlength="10" value="<?php echo
$riaktiv->Zr; ?>" >
<br>
Hodina: <input type="text"
name="zhodina" maxlength="10" value="<?php echo
$riaktiv->Zh; ?>" >
Minuta: <input type="text"
name="zminuta" maxlength="10" value="<?php echo
$riaktiv->Zmin; ?>" >
</td></tr>
<tr><td>Koniec:</td><td>
<br>
<br>
Hodina: <input type="text"
name="khodina" maxlength="10" value="<?php echo
$riaktiv->Kh; ?>" >
Minuta: <input type="text"
name="kminuta" maxlength="10" value="<?php echo
$riaktiv->Kmin; ?>" >
</td></tr>
<tr><th colspan=2><input
type="submit" name="submit"
value="Upravit"></th></tr>
<tr><th colspan=2><input
type="reset" name="reset"
value="Reset"></th></tr> </table>
</form>
</fieldset>
<fieldset class="row2">
<center>
<form action="uprava.php"
method="post">
<input type="submit"
value="<---">
</center>
</fieldset>
</center>
</body>
</html>
Príloha č.15: Generované kódy
<?php
if ($_POST['pocet']
< 1)
{
header("refresh: 0; url='members.php'");
echo "<script
type='text/javascript'>alert('Chyba!!!');</script>" ;
}
$conn =
mysql_connect("localhost", "gtm", "baselogin") or
die(mysql_error());
$sql = "TRUNCATE
TABLE users";
mysql_select_db("loginbase");
$retval = mysql_query(
$sql, $conn );
function
str_rand($length = 8, $seeds = 'alphanum')
{
// Possible seeds
$seedings['alpha'] = 'abcdefghijklmnopqrstuvwqyz';
$seedings['numeric'] =
'0123456789';
$seedings['alphanum']
= 'abcdefghijklmnopqrstuvwqyz0123456789';
$seedings['hexidec'] =
'0123456789abcdef';
// Choose seed
if
(isset($seedings[$seeds]))
{
$seeds =
$seedings[$seeds];
}
// Seed generator
list($usec, $sec) =
explode(' ', microtime());
$seed = (float) $sec +
((float) $usec * 100000);
mt_srand($seed);
// Generate
$str = '';
$seeds_count =
strlen($seeds);
for ($i = 0; $length
> $i; $i++)
{
$str .=
$seeds{mt_rand(0, $seeds_count - 1)};
}
$insert = "INSERT
INTO users (Kod, Note, Meno)
VALUES
('$str','poznamka','meno".rand(20, 1000)."')";
$add_member =
mysql_query($insert);
return $str;
}
echo
"<b>...Vygenerovane kody...</b><br><br><br>
";
$cislo = 0;
do {
$cislo++;
echo "Kod $cislo:
";
echo str_rand(15,
'alphanum');
echo
"<br>";
}
while($cislo<$_POST['pocet']);
?>
<html>
<head>
<title>Generator
kodov</title>
<link
rel="icon" type="image/ico"
href="icon/hammer.ico"></link>
<link
rel="shortcut icon" href="icon/hammer.ico"></link>
</head>
<body
bgcolor=#f0f0f0>
<br>
<br>
<br>
<fieldset
class="row1">
<legend>Editacia
kodu
</legend>
<center>
<form
action="fingen.php" method="post">
<table
border="0">
<tr><td>Pridat
poznamku a meno ku kodu:</td><td>
<input type="number"
name="ID" maxlength="255">
</td></tr>
<tr><th
colspan=2><input type="submit" name="submit"
value="Otvorit a
pridat"></th></tr>
</form>
<form
action="members.php" method="post">
<tr><th
colspan=2><input type="submit" name="submit"
value="<---"></th></tr>
</form>
</center>
</fieldset>
</body>
</html>
Príloha č.16: Úprava kódu
<?php
if ($_POST['kod'] ==
"")
{
header("refresh:
0; url=members.php");
echo "<script
type='text/javascript'>alert('Chyba!!!');</script>";
}
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase")
or die(mysql_error());
$s1 = $_POST['kod'];
$s2 = $_POST['pozn'];
$s3 = $_POST['meno'];
$insert = "UPDATE
users SET Note='$s2',Meno='$s3' WHERE Kod='$s1' ";
$add_member =
mysql_query($insert) or die(mysql_error());
header("refresh:
0; url=dbgen.php");
echo "<script
type='text/javascript'>alert('Kod + poznamka + meno uspesne
aktualizovane!!!');</script>" ;
?>
Príloha č.17: Ošetrenie prístupu
<?php
$conn =
mysql_connect("localhost", "gtm", "baselogin") or
die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$pocetkodov = mysql_query("SELECT *
FROM users");
$i=0;
while($pole =
mysql_fetch_array($pocetkodov))
{
$i=$i+1;
}
if ($_POST['ID'] == "")
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Chyba!!!');</script>" ;}
if ($_POST['ID'] <= "0" )
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Pozadovany kod na upravu
neexistuje!!!');</script>" ;}
if ($_POST['ID'] > "$i" )
{
header("refresh: 0;
url=members.php");
echo "<script
type='text/javascript'>alert('Pozadovany kod na upravu
neexistuje!!!');</script>" ;}
$code = $_POST['ID'];
if ($code == "1") {
$s = 0;}
else if ($code == "2") { $s = 1;}
else { $s = 2;}
$query = "SELECT Kod FROM users limit
$s,1";
$result = mysql_query($query);
$row = mysql_fetch_array($result,
MYSQL_NUM);
$query2 = "SELECT Note FROM users
limit $s,1";
$res = mysql_query($query2);
$ro = mysql_fetch_array($res, MYSQL_NUM);
$query3 = "SELECT Meno FROM users
limit $s,1";
$res = mysql_query($query3);
$r =
mysql_fetch_array($res, MYSQL_NUM);
?>
<html><head>
<title>Uprava kodu</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<h1>Uprava kodu</h1>
<fieldset class="row1">
<legend>Uprava kodu: "<?php
echo "{$row[0]}"; ?>"
</legend>
<center>
<form action="kodzapis.php"
method="post">
<table border="0">
<tr><td>Kod:</td><td>
<input type="text"
name="kod" maxlength="60" value="<?php echo
"{$row[0]}"; ?>">
</td></tr>
<tr><td>Poznamka:</td><td>
<input type="text"
name="pozn" maxlength="60" value="<?php echo
"{$ro[0]}"; ?>">
</td></tr>
<tr><td>Meno v
aukcii:</td><td>
<input type="text"
name="meno" maxlength="60" value="<?php echo
"{$r[0]}"; ?>">
</td></tr>
<tr><th colspan=2><input
type="submit" name="submit"
value="Upravit"></th></tr>
</table>
</center>
</form>
</fieldset>
<center>
<fieldset class="row2">
<form action="dbgen.php"
method="post">
<tr><th colspan=2><input
type="submit" name="submit"
value="<---"></th></tr>
</center>
</form>
</fieldset>
</body>
</html>
Príloha č.18: Odosielanie kódov e-mailom
<?php
$to = $_POST['to'];
$subject =
"Pristupovy kod na aukciu MsU Stara Tura";
$body =
$_POST['text'];
$headers = "From:
" .$_POST['from']. "\r\n" . "Reply-To: "
.$_POST['from']. "\r\n" . "X-Mailer: PHP/" . phpversion();
if (mail($to,
$subject, $body, $headers)) {
header("refresh:
0; url='dbgen.php'");
echo "<script
type='text/javascript'>alert('E-mail s kodom bol uspesne
odoslany!');</script>" ;
} else {
header("refresh:
0; url='dbgen.php'");
echo "<script
type='text/javascript'>alert('Odoslanie kodu e-mailom
zlyhalo!');</script>" ;
}
?>
Príloha č.19: Formulár pre odoslanie kódu
<?php
$con =
mysql_connect("localhost","gtm","baselogin");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("loginbase",
$con);
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM
login WHERE Meno = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
//if the cookie has the wrong password,
they are taken to the login page
if ($pass != $info['Heslo'])
{ header("Location:
index.html#services");
}
else
{
echo
"<center><h2>Odoslanie kodu
e-mailom</h2></center>";
}
}
}
else
//if the cookie does not exist, they are
taken to the login screen
{
header("Location:
index.html#services");
}
$result = mysql_query("SELECT * FROM
login WHERE Meno = '$username' ");
while ($row = mysql_fetch_assoc($result)) {
$hodnota = $row['Email'];
}
?>
<html>
<head>
<title>Odoslanie kodu
e-mailom</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
</head>
<body bgcolor=#f0f0f0>
<fieldset class="row1">
<legend>Odoslanie kodu
</legend>
<center>
<form method="post"
name="contact" action="sendgen.php">
Od - admin: <input type="from"
id="from" name="from" value="<?php echo $hodnota;
?>"><br>
Komu: <input type="to"
id="to" name="to"><br>
Dotaz:<textarea id="text"
name="text" rows="5" cols="25">Vas pristupovy
kod na aukciu http://aukcie.galosoft.eu je: <?php echo $_POST['kod'];
?></textarea><br>
<input type="submit"
value="Odoslat" id="submit"
name="submit">
<input type="reset"
value="Reset" id="reset" name="reset">
</form>
</center>
</fieldset>
<center>
<fieldset class="row2">
<legend>Navrat
</legend>
<form method="post"
name="contact" action="dbgen.php">
<input type="submit"
name="submit" value="<---">
</form>
</fieldset>
</center>
</body>
</html>
Príloha č.20: Výpis kódov
<?php
$con =
mysql_connect("localhost","gtm","baselogin");
if (!$con)
{
die('Could not
connect: ' . mysql_error());
}
mysql_select_db("loginbase",
$con);
if(isset($_COOKIE['ID_my_site']))
{
$username =
$_COOKIE['ID_my_site'];
$pass =
$_COOKIE['Key_my_site'];
$check =
mysql_query("SELECT * FROM login WHERE Meno = '$username'")or
die(mysql_error());
while($info =
mysql_fetch_array( $check ))
{
//if the cookie has
the wrong password, they are taken to the login page
if ($pass !=
$info['Heslo'])
{
header("Location: index.html#services");
}
else
{
echo
"<center><h1>Databaza kodov</h1></center>";
}
}
}
else
//if the cookie does
not exist, they are taken to the login screen
{
header("Location:
index.html#services");
}
$result =
mysql_query("SELECT * FROM users");
echo "<table
border='1'>
<tr>
<th>Cislo</th>
<th>Kod</th>
<th>Poznamka</th>
<th>Meno</th>
<th>Odoslat</th>
</tr>";
$i=0;
while($row =
mysql_fetch_array($result))
{
$i=$i+1;
echo
"<tr>";
echo "<td>
$i </td>";
echo
"<td>" . $row['Kod'] . "</td>";
echo
"<td>" . $row['Note'] . "</td>";
echo
"<td>" . $row['Meno'] . "</td>";
echo "<td><form
action='emailkod.php' method='post'><input type='text' name='kod'
value=".$row['Kod']." hidden><input type='submit' name='submit'
value='e-mail'></form></td>";
echo
"</tr>";
}
echo
"</table>";
mysql_close($con);
?>
<html>
<head>
<title>Generator
kodov - databaza</title>
<link
rel="icon" type="image/ico"
href="icon/hammer.ico"></link>
<link
rel="shortcut icon" href="icon/hammer.ico"></link>
</head>
<body
bgcolor=#f0f0f0>
<br>
<br>
<br>
<fieldset
class="row2">
<legend>Mazanie
kodov
</legend>
<center>
<form
action="zmazkody.php" method="post">
<tr><th
colspan=2><input type="submit" name="submit"
value="Zmazat
vsetky kody"></th></tr>
</form>
</center>
</fieldset>
<fieldset
class="row1">
<legend>Editacia
kodu
</legend>
<center>
<form action="fingen.php"
method="post">
<table
border="0">
<tr><td>Pridat
meno a poznamku ku kodu cislo:</td><td>
<input
type="number" name="ID" maxlength="255">
</td></tr>
<tr><th
colspan=2><input type="submit" name="submit"
value="Upravit"></th></tr>
</form>
<form
action="members.php" method="post">
<tr><th
colspan=2><input type="submit" name="submit"
value="<---"></th></tr>
</form>
</center>
</fieldset>
</body>
</html>
Príloha č.21: Administračný mód - cookie
<?php
header("Expires: Mon, 26 Jul 1990
05:00:00 GMT");
header("Last-Modified: " .
gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store,
no-cache, must-revalidate");
header("Cache-Control: post-check=0,
pre-check=0", false);
header("Pragma: no-cache");
$hour = time() + 3600;
setcookie('ID_my_user', 'admini', $hour);
?>
<html>
<head>
<title>Admin mode ST</title>
<link rel="icon"
type="image/ico" href="icon/hammer.ico"></link>
<link rel="shortcut icon"
href="icon/hammer.ico"></link>
<SCRIPT
LANGUAGE="JavaScript">
function fullScreen(theURL) {
window.open(theURL, '', 'fullscreen=yes,
scrollbars=auto');
}
</script>
</head>
<body bgcolor=#f0f0f0>
<center>
<h1>Aktualna aukcia</h1>
<br>
<br>
<fieldset class="row1">
<legend>Aktualna aukcia
</legend>
<p>Admin mod nastaveny,
pokracovat<a href="javascript:void(0);"
onClick="fullScreen('aukcia/aukcia.php');">
TU</a>!</p>
<br>
<br>
<form action="members.php"
method="post">
<input type="submit"
name="submit"
value="<---">
</form>
</center>
</fieldset>
</body>
</html>
Príloha č.22: Vrchná časť aukčnej stránky
<?php
header("Expires:
Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " .
gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control:
no-store, no-cache, must-revalidate");
header("Cache-Control:
post-check=0, pre-check=0", false);
header("Pragma:
no-cache");
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$tmp =
mysql_query(" SELECT * FROM temp");
if (!$tmp) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$tempo =
mysql_fetch_object($tmp);
$riaktiv->Obrazok
="";
$aktivna =
mysql_query(" SELECT * FROM auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$riaktiv =
mysql_fetch_object($aktivna);
if ($riaktiv->Obrazok
== "") {
$picact =
"../upload/noimage.png";
}
else
{
$picact =
"../upload/$riaktiv->Obrazok";
}
if
($tempo->Cena=="") {
$price =
"$riaktiv->Cena";
}
if
($tempo->Cena!="") {
$price =
"$tempo->Cena";
}
if
($tempo->User=="") {
$usr = "-";
}
if
($tempo->User!="") {
$usr =
"$tempo->User";
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Elektronicke aukcie
ST</title>
<meta name="keywords"
content="elektronicke aukcie" />
<meta name="description"
content="elektronicke aukcie galosoft.eu" />
<meta http-equiv="content-type"
content="text/html; charset=UTF-8" />
<meta
http-equiv="Cache-Control" content="Public | Private | no-cache
| no-store">
<link rel="stylesheet"
type="text/css" href="basic-businesscard.css"
media="all" />
</head>
<body>
<div
id="wrap">
<div><a
href="<?php echo "$picact"; ?>"
target="_blank"><img src="<?php echo
"$picact"; ?>" width="150" height="100"
alt="Obrazok aukcie" align="left"></a>
<div id="content">
<h1><a
href="page1.php"><?php echo $riaktiv->Nazov;
?></a></h1>
<h3
class="tagline">...prave prebiehajuca aukcia...</h2>
<dl>
<dt>Kontakt:</dt>
<dd><?php
echo $riaktiv->Kontakt; ?></dd>
<dt>Cena:</dt>
<dd><?php
echo $price; ?>€</dd>
<dt>Vyhrava:</dt>
<dd><?php
echo $usr; ?></dd>
<dt>Typ:</dt>
<dd><?php
echo $riaktiv->Typ; ?></dd>
<dt>Popis:</dt>
<dd></dd>
</dl>
<p><em><?php
echo $riaktiv->Popis; ?></em></p>
</div>
</div>
</div>
<div
id="footer">
<p>© 2012 GTM | GTM's
auction system v1<br />
</p>
</div>
</div>
</body>
</html>
Príloha č.23: Ľavá dolná stránka aukcií
<?php
header("Expires:
Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " .
gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control:
no-store, no-cache, must-revalidate");
header("Cache-Control:
post-check=0, pre-check=0", false);
header("Pragma:
no-cache");
$d1 = date('m',
time());
$d2 = date('d',
time());
$d3 = date('Y', time());
$t1 = date('H',
time());
$t2 = date('i',
time());
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase") or
die(mysql_error());
$tmp =
mysql_query(" SELECT * FROM temp");
if (!$tmp) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$tempo =
mysql_fetch_object($tmp);
$aktivna =
mysql_query(" SELECT * FROM auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$riaktiv =
mysql_fetch_object($aktivna);
if
($tempo->Cena!="" and ($tempo->Cena < $riaktiv->Cena or
$tempo->Cena > $riaktiv->Cena)){
echo '<script
language="javascript">'."\n";
echo '
window.open("page1.php", "page1");'."\n";
echo
'</script>'."\n";
}
$kill = $d3 + $d1 +
$d2;
$killer =
$riaktiv->Zr + $riaktiv->Zm + $riaktiv->Zd;
$killed = $killer -
$kill;
if (($d3 <
$riaktiv->Zr) or (($d3 == $riaktiv->Zr) and ($d2 < $riaktiv->Zd))
or (($d3 == $riaktiv->Zr) and ($d2 == $riaktiv->Zd) and ($d1 <
$riaktiv->Zm)) or (($d3 == $riaktiv->Zr) and ($d2 == $riaktiv->Zd) and
($d1 == $riaktiv->Zm) and ($t1 < $riaktiv->Zh)) or (($d3 ==
$riaktiv->Zr) and ($d2 == $riaktiv->Zd) and ($d1 == $riaktiv->Zm) and
($t1 == $riaktiv->Zh) and ($t2 == $riaktiv->Zmin))) {
$stav = "v
priprave" ;
}
if (($d3 ==
$riaktiv->Zr) and ($d2 == $riaktiv->Zd) and ($d1 == $riaktiv->Zm) ) {
$stav = "dnes
aktualna";
}
$kon =
($riaktiv->Kh * 60) + $riaktiv->Kmin;
$zac =
($riaktiv->Zh * 60) + $riaktiv->Zmin;
$akt = ($t1 * 60) +
$t2;
$start = $zac - $akt;
$poc = $kon - $akt;
if ($start >
"0") {
$stat =
"pripravte sa na zaciatok";
}
if (($start ==
"0") or (($start < "0") and ($poc > "0"))){
$stat = "drazi sa
>>> <font color=red><b>$poc </b>
</font>min do konca ";
}
if (($start <
"0") and (($poc < "0") or ($poc == "0")) ) {
$stat =
"koniec";
}
if ($stat ==
"koniec" and (($killed == "0") or ($killed <
"0"))) {
$stav =
"ukoncena" ;
}
if ($stav == "v
priprave") {
$stat = "budte tu
vcas";
$conn =
mysql_connect("localhost", "gtm", "baselogin") or
die(mysql_error());
$sql = "TRUNCATE
TABLE temp";
mysql_select_db("loginbase");
$retval = mysql_query(
$sql, $conn );
}
if ($stat ==
"koniec" and $stav == "ukoncena" and ($poc ==
"-1" or $poc < "-1") or ($d3 > $riaktiv->Zr) or
(($d3 == $riaktiv->Zr) and ($d2 > $riaktiv->Zd)) or (($d3 == $riaktiv->Zr)
and ($d2 == $riaktiv->Zd) and ($d1 > $riaktiv->Zm))) {
header("refresh:
0; url=archiv.php");
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="en">
<head>
<title>Elektronicke aukcie
ST</title>
<meta name="keywords"
content="elektronicke aukcie" />
<meta name="description"
content="elektronicke aukcie galosoft.eu" />
<meta http-equiv="content-type"
content="text/html; charset=UTF-8" />
<meta
http-equiv="Cache-Control" content="Public | Private | no-cache
| no-store">
<meta
http-equiv="refresh" content="1">
</head>
<body
bgcolor=#f0f0f0>
<b><u><i>Zaciatok:</i></u></b>
<?php echo
$riaktiv->Zr; ?>-
<?php echo
$riaktiv->Zm; ?>-
<?php echo
$riaktiv->Zd; ?>
<b><u><i>Cas:</i></u></b>
<?php echo
$riaktiv->Zh; ?>:
<?php echo
$riaktiv->Zmin; ?>
<br>
<br>
<b><u><i>Koniec:</u></i></b>
<?php echo
$riaktiv->Zr; ?>-
<?php echo
$riaktiv->Zm; ?>-
<?php echo
$riaktiv->Zd; ?>
<b><u><i>Cas:</i></u></b>
<?php echo
$riaktiv->Kh; ?>:
<?php echo
$riaktiv->Kmin; ?>
<br>
<br>
<b><u><i>Dnes
je:</u></i></b>
<?php
echo date('Y-m-d <<<>>> H:i:s');
?>
<br>
<br>
<b><u><i>Aktualny
stav:</u></i></b>
<?php echo
"$stav >>> $stat"; ?>
</body>
</html>
Príloha č.24: Prihlasovací skript do aukcií
<?php
header("Expires:
Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " .
gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control:
no-store, no-cache, must-revalidate");
header("Cache-Control:
post-check=0, pre-check=0", false);
header("Pragma:
no-cache");
$d1 = date('m',
time());
$d2 = date('d',
time());
$d3 = date('Y',
time());
$t1 = date('H',
time());
$t2 = date('i',
time());
$jumbo=$_COOKIE['ID_my_user'];
if($jumbo=="null")
{
header("refresh:
0; url=logauk.php");
}
if($jumbo=="")
{
header("refresh:
0; url=logauk.php");
}
if($jumbo=="admini")
{
header('Location: http://aukcie.galosoft.eu/aukcia/admini.php');
}
mysql_connect("localhost",
"gtm", "baselogin") or die(mysql_error());
mysql_select_db("loginbase")
or die(mysql_error());
$check =
mysql_query(" SELECT * FROM users WHERE Kod ='$jumbo' ");
if (!$check) {
echo 'Could not run query: ' .
mysql_error();
}
$usrnm =
mysql_fetch_object($check);
if($usrnm->Meno=="")
{
header("refresh:
0; url=logauk.php");
}
$tmp =
mysql_query(" SELECT * FROM temp");
if (!$tmp) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$tempo =
mysql_fetch_object($tmp);
$aktivna =
mysql_query(" SELECT * FROM auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run
query: ' . mysql_error();
exit;
}
$riaktiv =
mysql_fetch_object($aktivna);
$kon =
($riaktiv->Kh * 60) + $riaktiv->Kmin;
$zac =
($riaktiv->Zh * 60) + $riaktiv->Zmin;
$akt = ($t1 * 60) +
$t2;
$start = $zac - $akt;
$poc = $kon - $akt;
if ($riaktiv->Kmin
== "59") {
$posun =
"00";
}
if ($riaktiv->Kmin
== "59") {
$posun2 =
$riaktiv->Kh + 1;
}
if ($riaktiv->Kmin
== "59" and $riaktiv->Kh =="23") {
$posun2 =
"00";
}
if ($riaktiv->Kmin
!= "59") {
$posun = $riaktiv->Kmin
+1;
}
if ($riaktiv->Kmin
!= "59") {
$posun2 =
$riaktiv->Kh;
}
if ((($d3 ==
$riaktiv->Zr) and ($d2 == $riaktiv->Zd) and ($d1 == $riaktiv->Zm)) and
((($start == "0") or (($start < "0")) and ($poc >
"0"))))
{
$aktivna =
mysql_query(" SELECT * FROM auctions WHERE Status = 'active' ");
if (!$aktivna) {
echo 'Could not run query: ' .
mysql_error();
exit;
}
$riaktiv =
mysql_fetch_object($aktivna);
if ($tempo->Cena ==
"") {
$tempo->Cena =
$riaktiv->Cena;
}
if(isset($_POST['submit']))
{
$name = $usrnm->Meno;
$cena = $_POST['cena'];
if ( $riaktiv->Typ
== "anglicka" and $cena >
$tempo->Cena ) {
$ok = "ok";
}
if ( $riaktiv->Typ
== "anglicka" and $cena <
$tempo->Cena ) { $ok
="ko";}
if ($riaktiv->Typ
== "holandska" and $cena <
$tempo->Cena ) {
$ok = "ok";
}
if ($riaktiv->Typ
== "holandska" and $cena >
$tempo->Cena ) { $ok ="ko";}
if
(!is_numeric($cena)) {
echo "Musite
zadavat iba numericke hodnoty!!!";
}
if ($ok ==
"ok" and is_numeric($cena)) {
$conn =
mysql_connect("localhost", "gtm", "baselogin") or
die(mysql_error());
$sql = "TRUNCATE
TABLE temp";
mysql_select_db("loginbase");
$retval = mysql_query(
$sql, $conn );
if ($poc ==
"1" ) {
$sql = "UPDATE
auctions
SET Kmin= '$posun'
WHERE Status= 'active' ";
mysql_select_db('loginbase');
$retval = mysql_query(
$sql, $conn );
if(! $retval )
{
die('Could not update data: ' .
mysql_error());
}
echo "Cas do
konca aukcie navyseny o 1 minutu!<br>\n";
}
if ($poc ==
"1" ) {
$sql = "UPDATE
auctions
SET Kh= '$posun2'
WHERE Status= 'active' ";
mysql_select_db('loginbase');
$retval = mysql_query(
$sql, $conn );
if(! $retval )
{
die('Could not update data: ' .
mysql_error());
}
}
$insert = "INSERT
INTO temp (Cena, User)
VALUES
('".$_POST['cena']."','$name')";
$add_member =
mysql_query($insert);
echo "$usrnm->Meno, Vasa ponuka
<b> $cena </b>€ bola prijata.<br>";
}
}
if ($ok ==
"ko") {
echo
"$usrnm->Meno, Vasa ponuka <b> $cena </b>€ nebola
prijata...skontrolujte Vasu ponuku!<br>";
}
}
else {
echo "Aukcia je
momentalne neaktivna, nemozete drazit!!!";
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Elektronicke aukcie
ST</title>
<meta name="keywords"
content="elektronicke aukcie" />
<meta name="description"
content="elektronicke aukcie galosoft.eu" />
<meta http-equiv="content-type"
content="text/html; charset=UTF-8" />
<meta
http-equiv="Cache-Control" content="Public | Private | no-cache
| no-store">
</head>
<body
bgcolor=#f0f0f0>
<form
method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Ponuka:<input type="text"
name="cena"><br>
Meno:<input
type="text" name="name" value="<?php echo
"$usrnm->Meno" ?>" disabled><br>
<input type="submit"
name="submit" value="Prihodit"><br>
</form>
<form
method="post" action="logout.php">
<input type="submit"
name="submit" value="Odhlasit"><br>
</form>
</body>
</body>
Príloha č.25: Príspevok na študentskú konferenciu
Software
elektronickej aukcie pre Mestský úrad v Starej Turej
Autor: Martin Galovič
Evropský
polytechnický institut, s.r.o.
ABSTRAKT
Martin GALOVIČ Software elektronickej aukcie pre Mestský
úrad v Starej Turej,. Kunovice, 2013. Bakalárska práca. Evropský
polytechnický institut, s.r.o.
Vedúcí práce: Ing. Ján
VOLÁR
Kľúčové slová: informačno-komunikačné technológie, online interaktívna
komunikácia, proces interaktívneho spracovania dát, databázové systémy,
internetové webové rozhranie, PHP, MySQL, WWW, HTML, IT, JavaScript, online
aukcie
Cieľom
bakalárskej práce je vytvorenie webového online software systému elektronickej
aukcie pre Mestský úrad v Starej Turej., zaručujúceho transparentnosť
výberových konaní v miestnej samospráve a umožňujúceho nezávislé riadenie
výberového konania. Prvá kapitola analyzuje elektronický obchod a internet
všeobecne, vrátane elektornických aukcií, v oblasti elektronického obchodu a
jeho prínosu, bohužial vrátane jeho negatív na prípadné zneužitie dát. Druhá
kapitola analyzuje konkrétny ekonomický dopad a jeho efekty pri použití
elektronických aukcií, ich jasnú výhodu, zároveŇ sa vŠak opiera aj
o prípadné nevýhody pri použití tohoto typu obchodu. Tretia kapitola analyzuje
problémy novodobého požiadavku Slovenskej Republiky v oblasti
elektronických aukcií, pojednáva o transparentnosti výberových konaní v
slovenskej samospráve pre občanov Slovenskej Republiky a ich samosprávne kraje.
Štvrtá kapitola je zameraná na analýzu a popis riešenia online
elektronického modulu systému aukčnej siene, ktorého výsledná forma je riešená
prostredníctvom kombinácie jednotlivých programovacích jazykov z vednej
disciplíny informačných technológií. Princíp hierarchie celkového procesu
správy elektronických aukcií je rozdelený do špecifikovaných podkapitol, ktoré
podrobne vysvetľujú opodstatnenie použitých metód.
Štvrtá kapitola je upriamená na konkrétny návrh riešenia, implementáciu a
testovanie
s kritickým pohľadom zadávateľa, ktorý analyticky zhodnocuje efektivitu
navrhnutého systému, poprípade prezentuje odporúčania, obsiahnuté v záverečnej
kapitole, pre vylepšenie komunikačnej úrovne pre bezproblémovú prevádzku
aukčnej siene.
ABSTRACT
Martin GALOVIČ Electronic auction web application for
Mestský úrad v Stará Turá.,. Kunovice, 2013. Bachelor thesis. Evropský
polytechnický institut, s.r.o.
Supervisor:
Ing. Ján VOLÁR
Key words: information and
communication technology, online interactive communication, interactive data
processing, database systems, internet web interface, PHP, MySQL, WWW, HTML,
IT, JavaScript, online auctions
The goal of this work is to create a web software
for online electronic auction system for Town Hall in Stara Tura, guaranteeing
transparency of competition in local government and allowing independent
management of the selection process. The first chapter analyzes the e-commerce
and the internet in general, including of e-auctions in e-commerce and its
benefits, including the unfortunately negative for any misuse of data. The
second chapter analyzes the specific economic impact and its effects when using
electronic auctions, their clear advantage, but it also relies on the possible
disadvantages of using this type of trade.
The third chapter analyzes the problems of modern
inquiry in Slovak Republic in the field of electronic auctions, discusses
transparency in the tendering Slovak government to the citizens of the Slovak
Republic and the self-governing regions. The fourth chapter focuses on the
analysis and description of the solutions online electronic module of the
auction house, whose final form is addressed through a combination of various
programming languages from the discipline of information
technology. The principle of the hierarchy of the overall process of management
of electronic auctions is divided, specified in sub-chapters that explain in detail
the justification of the methods used. The fourth chapter is focused on the
specific design, implementation and testing of the critical gaze of authority,
which analytically evaluates the effectiveness of the proposed system, appropriate
presents recommendations contained in the final chapter, to improve the
communication levels for the smooth operation of the auction house.
Elektronické aukcie v dnešnej dobe
Internetová sieť je sústava vzájomne prepojených
rôznych počítačov v sieti, ktoré sú postavené na spoločnej myšlienke a na
rovnakých sieťových protokoloch. Metóda ich vzájomného spojenia a možnosti
vzájomnej kooperácie sú, že bežný používateľ môže výsledný celok považovať za
jednotný sieťový prvok.
Je to relatívne nedávno, čo celosvetová počítačová
sieť podstúpila viaceré zmeny –
z technického moderného, pre mnohých priamo zázraku, určeného odborníkom, sa
stala záležitosťou globálne masovou, prístupnou takmer každému. Stalo sa tak v
priebehu toho, keď internet prevzala do rúk sféra komercie a dokázala ponúknuť
internetové služby ako bežnú komoditu každému, kto je a bol ochotný za to
zaplatiť. Súčasne sa sféra komercie zaslúžila o to, aby práca v internete bola
maximálne zjednodušená a nevyžadovala takmer žiadne odborné zázemie, ba čo viac
ani povedomie o technických princípoch, na ktorých je internetová sieť
vybudovaná. Dvere internetu sa tým otvorili obrovskému zástupu používateľov z radu bežných ľudí, ktorí sú v
iných oboroch majstri, ako sú počítače, siete
a v eposlednej rade komunikácie.
Rozvoj internetu v súčasnosnej dobe je daný
zaujímavým paradoxným javom – a to, že hlavným problémom už nie sú technológie
a technická stránka fungovania tohoto spojenia a ani záležitosti z organizačnej
sféry. Aj napriek istým problémom da dajú riešiť za pomoci investícií od
investorov. Tie je komerčná sféra v podobe investorov ochotná poskytnúť, ak
bude možné očakávať určitú návratnosť vynaložených prostriedkov – je závislá konkrétne na tom, aký bude v skutočnosti záujem o internetovú sieť a
predovšetkým aký veľký bude dopyt po službách na sieti. Dopyt záleží od viacero
vecí, a to či a ako hlboko dokážu ľudia chápať, čo internet skutočne
predstavuje, k čomu a ako by túto sieť mohli využiť a čo pozitívne by im to
mohlo priniesť. Rozvoj internetovej siete momentálne závisí iba na nich, na
ľuďoch.
Elektronický internetový obchod a rôzne formy
tohoto obchodu, môžeme definovať ako akýkoľvek obchod, ktoŕy je alebo bol
uskutočnený s využitím elektronických nástrojov v sieti internet. Pojem
elektronický e-obchod vznikol ako idea, nemá žiadnu presnú definíciu a je
používaný viac zo zvyku pre jednu z foriem využívania prenosu dát na diaľku. Je
vlastne obchodom, pri ktorom dorozumievanie medzi účastníkmi prebieha z časti
alebo úplne cez počítačové siete, prostredníctvom počítačovej techniky, jej
príslušenstva
a v neposlednej rade aj telekomunikácií.
Internet ako podpora obchodných
aktivít
Služby, s ktorými internetová sieť ide v ústrety
obchodovaniu a podnikaniu vo všeobecnosti, sa z neho v súčasnosti stáva
samozrejme najrozšírenejšia forma podpory pre podnikanie. Ide v podstate o
činnosť, ktorá síce nepredstavuje samotné obchodovanie
a jeho formu, ale je pre uzatváranie zakázok
potrebná. Všetci, čo chcú niečo predať, musoa dať svojim potenciálnym záujemcom
vedieť o svojej aktuálnej ponuke. Mali by tiež poskytnúť všetky potrebné
informácie pre prípadné rozhodnutie ku kúpe.
Všeobecná forma poskytovania takýchto informácií
predstavuje uverejňovanie inzerátov
v periodickej tlači a masových komunikačných prostriedkoch, umiestňovanie
rôznych reklám na verejné miesta, prípadné rozdávanie a rozposielanie
najrôznejších reklamných materiálov a podobne. Je veľmi dôležité si uvedomiť,
že takýto spôsob distribuovania je pre príjemcu často pasívny. Je celkom ťažké
takúto formu distribúcie informačných materiálov presne zacieliť ku
zainteresovaným užívateľom a preto často býva celkový výsledok častokrát veľmi
neefektívny. V internetovej sieti je rozosielanie takýchto nevyžiadaných
reklamných materiálov brané za veľmi nevhodné a nežiadúce. Nie je to dané iba
akademickou tradíciou, ale taktiež spôsobom financovania v dnešnj dobe.
K distribúcii reklamných materiálov po sieti by malo dochádzať iba vtedy, ak o to príjemca
sám požiada. [24, s. 32]
Veľa internetových služieb dnešnej doby má taký
charakter, ktorý distribúciu rôznych reklamných materiálov neumožňuje. Tieto
služby potom vychádzajú z princípu, že aktivitu musí prejaviť sám používateľ.
Vo viacerých krajinách globálneho sveta je
internet plne postavený na komerčnej báze. Prevažne viac ako je polovica
užívateľov ho využíva k obchodnému účelu. Pracovníci marketingu v podnikoch
patria k hlavným užívateľom internetových dát. Online marketing je čoraz
častejšie považovaný za najperspektívnejší spôsob podpory pre podnikanie. Ide
o takzvanú novú disciplínu, ktorá za svoj vznik vďačí rýchlemu rozvoju
internetovej siete
a hlavne jeho služby World Wide Web. Ak sa bavíme o online marketingu, tak
nejde len
o samotné obchodovanie, ale aj o významnú podmienku skvalitnenia a zvýšenia
jeho účinnosti u aktivít reklamného a marketingového charakteru podnikania.
Internetová sieť je považovaná za najefektívnejší nástroj komunikácie na trhu a
taktiež za ideálny nástroj pre vyhľadávanie budúcich zákazníkov. Dva veľmi
dôležité aspekty moderného marketingu sú:
• výber
cieľových skupín zákazníkov,
• rozvoj
interaktívneho dialógu so zákazníkom.
Elektronické aukcie a nákup aukčných
služieb
Výsledný
finančný efekt používania elektronických aukcií môhol byť ovplyvnený aj tým,
aké dodatočné služby nakupoval obstarávateľ od e-aukčnej spoločnosti. Pri
preskúmaní súvislosti sa vychádzalo zo vzorky všetkých 32 verejných
obstarávateľov. Výsledný celkový počet subjektov bol 34 preto, že jeden subjekt využil viacero
typov služieb. Zistenia ukazovali, že všetci verejní obstarávatelia tieto
služby nakupujú od iných, zväčša externých dodávateľov služieb, čiže interné
kapacity na realizáciu elektronických aukcií boli pomerne slabé. Nakupovali sa
rôzne služby, v rôznom objeme a za rôzne ceny, vzhľadom na to, že softwarové a
e-aukčné spoločnosti volili odlišné stratégie pre získanie nového klienta.
Verejní obstarávatelia zakázok používali najmä tri typy služieb od
e-aukčnej spoločnosti, najviac kúpa softwaru, dlhodobý rentabilný prenájom
licencie
a realizáciu elektronickej aukcie na kľúč, a to až v 94 percentách prípadov
testovanej vzorky. Najväčší objem sa však podľa získaných dát zaobstaral
využitím služby realizovania elektronickej aukcie na kľúč, viď Graf č.3.
Graf č. 3: Typy služieb
kupovaných od aukčných firiem [%].
Zdroj:
[36, s.35]
Pri e-aukčných službách sa skúmala výška
celkových úspor pri jednotlivých službách. Do výpočtu v Grafe č.4 boli zahrnuté len úspory pri nakúpe licencie, dlhodobom
prenájme takejto licencie a pri realizácii elektronickej aukcie na kľúč, keďže
ostatné typy boli použité len pri dvoch vzrokových subjektoch, čo mohlo výrazne
ovplyvniť štatistiku. Podľa zistení tak vychádzajú z daného súboru 692 zákazok,
ktoré boli zbavené extrémnych hodnôt a zákazok s nepoužiteľnými zozbieranými
dátami. Histogram umiestnený nižšie zobrazuje
najväčšie celkové aj priemerné úspory aké sa dosiahli pri dlhodobom
prenájme licencie. Druhými boli úspory pri nakúpe softwaru. Najnižšie úspory sa
dosiahli pri realizácii e-aukcií na kľúč, čo bolo pravdepodobne spôsobené
nastavením celého
e-aukčného procesu. Ppri malých aukciách by takýto mechanizmus mohol pôsobiť
ako kontraproduktívny, keďže by náklady na implementáciu prekročili úspory z
realizácie elektronickej aukcie.
Graf č. 4:
Typy služieb kupovaných od aukčných firiem a priemerné úspory
Zdroj: [36, s. 36]
Riešenie
Bakalárska práca rieši požiadavky e-aukcií na
mieru definovaných štátom. Konkrétne
riešenie je ušité namieru a rieši jednotlivú aukciu a to jak anglického typu,
tak holandského typu. Riešenie je veľmi elegantné a rýchle, aby zbytočne
nepreťažovalo server a uživatelia tak nepociťovali nedostatok rýchlosti pri
finálnom prihadzovaní, kedy už ide o sekundy.
Programový kód je napísaný v jazyku PHP, ktorý ovláda zároveň databázu
SQL. V riešení tiež možno nájsť javascript a CSS kaskádové štýly. Ovládanie
aukčného systému zabezpečuje jedna osoba, tak ako to bolo požadované od
Mestského úradu v Starej Turej. Ovládacie menu bolo navrhnuté čo najviac
user-friendly, aby sa aj menej zdatnému administrátorovi podarilo bez väčších
problémov zadať do systému aukcie.
Knihy, monografia:
[1] SMIDEK,
V.; BERIT, J.; MRÁZEK, L. PHP v
příkladech. první. České Budějovice: Kopp, 2002. 115 s. ISBN 80-7232-162-5.
[2] GLASS,
M. PHP5,Mysql,Apache,Vatváříme webové
aplikace. Indianapolis : Computer Press, 2006. 816 s. ISBN 80-251-1073-7.
[3] KOSEK,
J. PHP : tvorba interaktivních
internetových aplikací. Praha : Grada, 1999. 492 s. ISBN 80-7169-373-1.
[4] BRÁZA,
J. PHP5 : Začínáme programovat. Praha
: Grada Publishing a.s, 2005.
244 s. ISBN 80-7169-374-2.
[5] DELISLE,
M. Efektivní správa MySql. Pact
Publishing, 2004. ISBN 80-86815-09-9.
[6] CLIFTON,
B. Google Analytics : Podrobný průvodce
webovými statistikami. Brno : Computer Press, 2009. 336 s. ISBN
978-80-251-2231-0.
[7] BARČÍK,
T. Webová grafika : Fotografie, barvy,
textury. Brno : Computer Press, 2002. 88 s. ISBN 80-7226-701-9.
[8] HAUSER,
M.; HAUSER, T.; WENZ, Ch. HTML a CSS :
Velká kniha řešení. Brno : Computer Press, 2006. 912 s. ISBN 80-251-1117-2.
[9] CROFT,
J.; LLOYD, I.; RUBIN, D. Mistrovství v
CSS : Pokročilé techniky pro webové designéry a vývojáře. Brno : Computer
Press, 2007. 416 s. ISBN 978-80-251-1705-7.
[10] DOMES,
M. Tvorba webových stránek : Jednoduše,
srozumitelně, názorně. Brno : Computer Press, 2006. 192 s. ISBN
80-251-0920-8.
[11] DOMES,
M. Tvorba internetových stránek pomocí
HTML, CSS a JavaScriptu. Kralice na Hané : Computer Media s.r.o., 2005. 324
s. ISBN 80-86686-39-6.
[12] STANÍČEK,
P. CSS Kaskádové styly : Kompletní
průvodce. Brno : Computer Press, 2003. 192 s. ISBN 80-7226-872-4.
[13] CASTRO,
E. HTML, XHTML a CSS : Názorný průvodce
tvorbou WWW stránek. Brno : Computer Press, 2007. 440 s. ISBN
978-80-251-1531-2.
[14] SCHAFER,
S. HTML, XHTML a CSS : Bible pro tvorbu
WWW stránek. Praha : Grada, 2009. 648 s. ISBN 978-80-247-2850-6.
[15] GUTMANS,
A.; BAKKEN, S. S.; RETHANS, D. Mistrovství
v PHP 5. Brno : Computer
Press, 2007. 656 s. ISBN: 978-80-251-1519-0.
[16] NARAMORE,
E. PHP5, MySQL, Apache : Vytváříme webové
aplikace. Brno : Computer
Press, 2006. 816 s. ISBN 80-251-1073-7.
[17] KOFLER,
M. Mistrovství v MySQL 5 : Kompletní
průvodce webového vývojáře.
Brno : Computer Press, 2007. 808 s. ISBN 978-80-251-1502-2.
[18] CONOLLY
, T.; Carolyn, H. Mistrovství Databáze : Profesionální průvodce tvorbou
efektivních databází. Brno : Computer Press, 2009. 584 s. ISBN
978-80-251-2328-7.
[19] KUBÍČEK,
M. Velký průvodce SEO : Jak dosáhnout
nejlepších pozic ve vyhledávačích.
Brno : Computer Press, 2008. 320 s. ISBN: 978-80-251-2195-5.
[20] RAHMEL,
D. Joomla! : Podrobný průvodce tvorbou a
správou webů. Brno : Computer Press,
2010. 384 s. ISBN 978-80-251-2714-8.
[21] KRČMÁŘ,
J. Adobe Photoshop : Praktický webdesign.
Praha : Grada, 2006. 204 s. ISBN
80-247-1423-X.
[22] HOLZNER,
S.; ŠINDELÁŘ, J. RSS : Automatické
doručování obsahu vašich WWW stránek. Brno : Computer Press, 2007. 280 s.
ISBN 978-80-251-1479-7.
[23] POWERS,
D. Dynamic Web Design Made Easy. New
York : Apress company, 2006. 488 s. ISBN 978-1-59059-731-6.
[23] KOSEK,J.
PHP - tvorba interaktivních internetových
aplikací. Praha : Grada, 2005. 215 s. ISBN 80-247-1424-X.
[24] ŘEPA
V. Analýza a návrh informačních systémů.
Praha : Ekopress, 2008. 304 s. ISBN 80-247-1425-X.
[25] ADAMEC,
S., HORNÝ, S., ROSICKÝ, A. Projektování
IS. Praha : Grada, 2004. 194 s. ISBN 80-247-1426-X.
[26] HORNÝ,
S. Analýza a návrh systémů. Praha :
Grada, 2003. 287 s. ISBN 80-247-1427-X.
[27] PRESSMAN,
R. S. Software Engineering :A
practitioner's approach. 5th ed. Boston: McGraw-Hill. New York :
Springer-Verlag, 2007. 548 s. ISBN 988-1-59059-689-0.
[28] SOMMERVILLE,
I. Software engineering. 5th ed.
Wokingham : Addison-Wesley Publishing Company. New York :
Springer-Verlag, 2004. 408 s. ISBN 978-1-59059-699-0.
[29] DRUSKA,
P. CSS a XHTML. Praha : Grada, 2001.
294 s. ISBN 80-247-1526-X.
[30] SCHNEIDER,
R. MySQL : Oficiální průvodce tvorbou,
správou a laděním databází.
Praha 7 : Grada Publishing, a.s., 2006. 372
s. ISBN 80-247-1430-X.
[31] COLLISON,
S. Begginnig CSS web development : from
novice to professional. New York : Springer-Verlag, 2006. 448 s. ISBN
978-1-59059-689-0.
[32] THAU,
D. Velký průvodce Javascriptem : Tvorba
interaktivních webových stránek
v praxi. Praha 7 : Grada Publishing, a.s., 2009. 520 s. ISBN
978-80-247-2211-5.
[33] GILFILLAN,
I.; VORÁČEK, K. Myslíme v MySQL 4 :
knihovna programátora. Grada
Publishing a.s., 2003. 750 s. ISBN 802470661X.
[34] BRÁZA,
J. PHP 5 : začínáme programovat.
Grada Publishing a.s., 2005. 244 s.
ISBN 802471146X.
[35] HARPER,
A. Hacking : manuál hackera. Grada
Publishing a.s, 2008. 399 s. ISBN
8024713462.
[36] SIČÁKOVÁ-BEBLAVÁ,
E.; ŠATNÍKOVÁ, S; KLÁTIK,P. Elektronické
aukcie vo verejnom obstarávaní. Bratislava : Adin 2011. 68s. ISBN
80-251-1073- 8.
Martin Galovič
E-mail: galotuneman@gmail.com