Stránka 1 z 2
Anketní systém
Napsal: ned 18. črc 2010, 11:16
od KapaCZ
Chci si udělat anektní systém a řešim pár problémů. Jakou ochranu před mnohonásobným hlasováním zvolit? Jako nejlepší mi připadá, když si budu ukládat IP a čas, tak zkontrolovat jestli z té ip bylo hlasováno a pokud ano tak zkontrolovat čas, např by byla možnost hlasování jednou za 24h.
Jak uspořádat tabulku SQL, když nevim kolik bude otázek? Nechce se mi psát slouce (otazka1, otazka2.......), když nevim kolik těch otázek bude.
Re: Anketní systém
Napsal: ned 18. črc 2010, 13:32
od bubanek
SQL tabulka bude jednoduchá:
sloupce otazka, hlasy
a je to.
Jako ochranu proti vícenásobnému hlasování bych zvolil kombinaci cookie a záznamu v databázi, kde bude uložený čas a IP.
Do cookie uložit, že už prostě hlasovat nemůže, dobu nastavit na jeden rok.
Do databáze uložit IP + čas a nastavit třeba 5ti minutový limit.
Takže i když si cookie smaže, tak stejně může poslat jeden hlas za pět minut.
Ještě by šel přidat limit na počet hlasování z jedné IP nebo kontrolovat kolikrát za hodinu se z té IP hlasovalo a pokud by těch hlasování bylo třeba 6 (max. za hodinu 12 že ano), tak tu IP pro další hlasování zablokovat tím, že se do databáze uloží čas někdy v budoucnosti, dejme tomu týden.
Takhle by to mohlo být docela funkční

Re: Anketní systém
Napsal: ned 18. črc 2010, 14:22
od KapaCZ
Díky, ale někde musí být sloupec odpověd a já nevim, kolik jich bude > každá otázká, jinej počet odpovědí. Toto mě trápí nejvíc
Re: Anketní systém
Napsal: ned 18. črc 2010, 15:24
od bubanek
no tak budeš mít sloupce otazka, odpoved
co je na tom složitého?
Re: Anketní systém
Napsal: ned 18. črc 2010, 15:45
od KapaCZ
Je na tom složité to, že sloupců odpověd můžu mít třeba 20 (20 odpovědí) což mi přijde jako blbej způsob řešní, ale možná žádnej jinej neexistuje.
Re: Anketní systém
Napsal: ned 18. črc 2010, 15:46
od bubanek
Takže na jednu otázku budou moct lidi napsat až 20 odpovědí?
Nějak pořád nechápu tvůj problém

Re: Anketní systém
Napsal: ned 18. črc 2010, 16:11
od KapaCZ
Lidi nic psát nebudou, pokud by to psali oni je to jednoduchý a neřešim to, ale takhle ano.
Mám otázku: Jak se máte?
odpověd 1: dobře
odpověd 2: skvěle
....
odpověd 15: špatně
....
Re: Anketní systém
Napsal: ned 18. črc 2010, 18:09
od arxeiss
Zaveď si 2 tabulky: otazky, odpovedi.
otazky: id, otazka
odpovedi: otazka, odpoved, hlasu
Do otázky si uložíš ID pomocí AUTO_INCREMENT, otazka je jasné. v odpovedi do otazka uožíš ID otazky (to z druhé tabulky) a odpověd a hlasu je jasné
Budeš mít jednu anketu a 20 odpovědí. tak v otazky bude jeden řádek, v odpovedi 20. Poté si přidáš anketu, budeš mít v otazky 2 řádky odpovedi, 20 předchozích + ty nové pro anketu 2
Atd....
Re: Anketní systém
Napsal: ned 18. črc 2010, 18:53
od KapaCZ
Co řikáte na toto žešení?:
http://www.php.jonweb.cz/skripty/anketa/
Všechny odpovědi v jednom sloupci!
Re: Anketní systém
Napsal: ned 18. črc 2010, 19:09
od bubanek
Však to co navrhuje arx má odpovědi v jednom sloupci.
Jenom nevím proč je tam ještě ten sloupec `hlasu`
Re: Anketní systém
Napsal: ned 18. črc 2010, 19:43
od KapaCZ
to co navrhuje arx jsou odpovědi v jedné tabulce! V tom co uvádim jsou v jednom sloupci. To je rozdíl
Při řešení podle arx bych měl na nakety 3 tabulky.
Při řešení podle jona jen 2, ale ten styl řešení jsem nikdy neviděl

Re: Anketní systém
Napsal: ned 18. črc 2010, 19:50
od bubanek
arxeiss píše:Zaveď si 2 tabulky: otazky, odpovedi.
To co navrhl arxeiss je nejjednodušší řešení a udělal bych přesně to stejné.
Tabulka otazky:
id - smallint, auto_increment
otazka - text
Tabulka odpovedi:
id_otazky - smallint
odpoved - text
Prostě to nejjednodušší co může být.
Re: Anketní systém
Napsal: ned 18. črc 2010, 20:12
od KapaCZ
bubanek: Ano vim že si o mne myslíš, že jsem debil, ale už jsem tu říkal, že chci mít v tabulce čas a ip > 3 tabulky!!
Re: Anketní systém
Napsal: ned 18. črc 2010, 20:32
od bubanek
Ok, ok, tak budeš mít tři tabulky. Vadí to něčemu?
Re: Anketní systém
Napsal: ned 18. črc 2010, 21:50
od arxeiss
2Bubu: Naco hlasy? Protože to je anketa. Kam lidé hlasují, a někam se musí ukládat kolik lidí hlasovalo pro jakou odpověd!
2Kapa: Budeš mít 100 anket, a s mojím řešením stále 2 tabulky. Pro to s IP atd... 3, budeš mít 100000 anket, a stejně budou stačit 3 tabulky.
Re: Anketní systém
Napsal: ned 18. črc 2010, 23:11
od bubanek
Já to pochopil tak, že chce, aby mu odpovědi psali sami dotázaní. Pak není žádné počítadlo třeba.
Nicméně popis je dost kostrbatý, tak tu všichni jenom hádáme o co vlastně jde.
Re: Anketní systém
Napsal: ned 18. črc 2010, 23:17
od arxeiss
Po tom co jsem se podíval na to co postnul Kapa, ten systém od Jona tak jde určitě o ankety
Můj názor na systém od Jona: Absolutně nevýhodné, má 2 tabulky, ale mnohem více PHP kódu, udělej si 3 tabulky a mnohem méně kódu, a bude to rychlejší. Navíc se mi absolutně nelíbí jak to ukládá a všechno... Ale má to vymyšlené dobře, ale složitě, hodně složitě
Re: Anketní systém
Napsal: čtv 19. srp 2010, 23:57
od martin-mod
Nemá někdo odkaz na nějaký zdroják hotové dobře vytvořené ankety prosím?
Re: Anketní systém
Napsal: pát 20. srp 2010, 00:01
od martin-mod
Re: Anketní systém
Napsal: pát 20. srp 2010, 00:11
od arxeiss
Používej edit. A můžeš použít ten systém co tu postnul KapaCZ, a zdroják taky přečteš, sice nevím jestli to jde považovat za dobře napsaný systém, ale pracuje bez chyby, tak by se dal považovat.