Autor Zpráva
martin123
Profil *
Zdravím,

řeším takový problém: Dělám anketu a řeším problém s tabulkou, která má devět sloupců a každý sloupec představuje jednu možnost ankety. Pokud uživatel klikne na jednu možnost ankety, tak se do proměnné uloží název sloupce, který vložím do příkazu mysql_query a ten potom zapíše do správného sloupce IP adresu toho, kdo pro možnost hlasoval. Tohle řešení mi připadalo nejjednodušší až do té doby, než jsem se dostal k ošetření toho, aby se z jedné IP nedalo hlasovat vícekrát. Snažím se (ale zatím marně) přijít na to, jak zkonstruovat požadavek na databázi, aby porovnala $_SERVER[REMOTE_ADDR] se všemi hodnotami ve všech sloupcích (u všech možností ankety) a následně vyhodila něco zpracovatelného, jako je třeba v případě shody (IP už v tabulce je) právě tu IP adresu, která se rovná $_SERVER[REMOTE_ADDR] a já tak mohl udělat podmínku, že pokud se rovná vypiš "už jste hlasoval" či pokud se nerovná, aby zapsal do tabulky.

Děkuji za rady
Joker
Profil
martin123
Dělám anketu a řeším problém s tabulkou, která má devět sloupců a každý sloupec představuje jednu možnost ankety.
To není moc dobré řešení.
Lepší bude, když jednotlivé možnosti budou mít svá ID a tabulka hlasování bude: IP - id možnosti.
martin123
Profil *
Díky za tip, to je o mnoho lepší. Vypisovací požadavek na databázi by měl být na konci s WHERE id=1 , nepletu se, že? ;)

Ještě mě napadla jedna možnost a to, že bych pro IP udělal vlastní tabulku a zbytek by fungoval pořád na devíti sloupcích, nicméně do každého by se nedávala IP, ale pouze by se přičetla jednička.

Ale stejně to co říkáš ty je lepší, díky!
Joker
Profil
Záleží jak to přesně má být udělané, teoreticky by mohla být třeba tabulka uživatelů a tabulka anket a potom hlasovací tabulka: id_uživatele - id_ankety
martin123
Profil *
Ne, na tom webu není žádná registrace, takže přesně tak jak si to napsal to stačí, ale díky za tip.
Joker
Profil
martin123
Ještě by možná nebylo od věci umožnit hlasovat z jedné IP víc než jednou, hodně lidí má stejnou IP.
Nejlepší by bylo ukládat jim cookie (a těm co mají cookie pro danou anketu už neumožnit hlasovat) a umožnit třeba pět hlasů z jedné IP (pro případ, že by si nějaký chytrák cookie smazal)
Ale zas to nechci moc komplikovat :-)
martin123
Profil *
No takovým lidem já říkám, že mají smůlu ;) Každý slušný ISP veřejnou dává, že si kupují různé pochybné bezdráty je jejich problém. ;)

Ne, vážně - myslím, že mám lepší řešení a to applet, který zjistí adresu nastavenou přímo na PC (za proxy/NAT) a potom to přidat do jednoho řetězce s IP, tak by měl mít každý zaručenou možnost hlasovat...
K
Profil *
Applet? a co multiplatformost?
Co lidi ve skolach? V praci?

Idealni je kontrolovat vse mozne a to propocitat a porovnat a jestli ti nevyjde cislo 42 tak uz hlasoval;)
martin123
Profil *
Myslel jsem applet v javě, takže ten by měl jít i pod GNU/Linuxem. A pokud ne, tak se vší úctou ke GNU/Linuxu by se nejednalo o žádnou katastrofu... Co se týče druhého řádku, tak to si stejně nepomůžeš - spousta expertů má stejně zakázané cookies, někteří dokonce i javascript.

Určitě ten skript chci do budoucna dohnat k dokonalosti (viz. tvůj poslední řádek :D), nicméně to není na pořadu dne. Co bych ještě chtěl udělat, tak interpretování výsledku do grafu...
K
Profil *
No ja uz jsem to s kolegy resil a myslim, ze k dokonalosti to dohnat nejde, nicmene ke 'skorodokonalosti' jsme to dohnali;)
Reseni rozhodne neni v appletu - nelze nutit uzivatele, aby si instaloval javu jen kvuli ankete..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: