Starší komentáře ke článku: Ankety univerzálne (PHP + MySQL + CSS)

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Molir

Datum vložení: 26.9.2001 13:09:40

Klasicka pripominka u tohoto (a podobnych) tematu - chtelo by to pamatovat par (jednu) poslednich IP (treba s 15minutovym timeoutem) a proti nim porovnavat, protoze i jeden vytrvaly jedinec s vypnutymi cookies dokaze v ankete, ktere se zucastni radove stovky lidi, nadelat pekny bordel (nemluve o robotech, ze ;-) )...
Abych predesel halde pripominek 'a co chudaci za proxy', tak tady je muj osobni postup (v PHP), ktery pouzivam ke zpresneni identifikace pocitace (je to ze skriptu odchytavajiciho aktivni lidi, proto ten 'divny' nazev promenne)...


$online_IPadresa=$REMOTE_ADDR;
if (IsSet($HTTP_X_FORWARDED_FOR))
{
$online_IPadresa.="_".$HTTP_X_FORWARDED_FOR;
}
if (IsSet($HTTP_FORWARDED))
{
$online_IPadresa.="_".$HTTP_FORWARDED;
}
if (IsSet($HTTP_CLIENT_IP))
{
$online_IPadresa.="_".$HTTP_CLIENT_IP;
}

netvrdim, ze tento postup dokaze _jednoznacne_ (bohuzel to stale zavisi na nastaveni proxy) identifikovat pocitac, ale IMO zpresnuje natolik, ze kontrolu na IP s rozumnym (10-15 minut) timeoutem je mozno bez problemu pouzit...

Avatar

Autor komentáře: HaT

Datum vložení: 11.2.2003 19:12:08

Ahoj. A jak zabezpecit hlasovani pred "roboty", kterymi nekdo chce ovlivnit anketu? (Pri vypnutych cookies)

Avatar

Autor komentáře: Eduard Hlava

Datum vložení: 2.4.2003 20:38:59

Možná, že pomůže něco takového:
<a href='#' onClick="JavaScript: window.location = 'index.php?parametry'; return false;">Ano</a>

Avatar

Autor komentáře: Tomáš

Datum vložení: 28.9.2001 23:09:52

Jak udělat, aby se po hlasování zobrazil aktuální stav ankety bez toho, abych musel udělat refresh stránky?

Avatar

Autor komentáře: Kája

Datum vložení: 29.9.2001 8:36:32

Na úplný začátek (hlavně před jakýkoliv první výstup dat na monitor) PHP skriptu dej:
Header("Pragma: no-cache");
Header("Cache-control: no-cache");
Header("Expires: ".GMDate("D, d M Y H:i:s")." GMT");

čímž zamezíš uložení stránky v cache paměti prohlížeče.

Avatar

Autor komentáře: Martin

Datum vložení: 16.10.2001 16:58:16

Primo se nabizi vytvorit pro odpovedi s vysledky druhou tabulku - odpadne tak dost trapny atribut "separator". K cemu jsou potom relacni databaze, kdyz chcete vsechno ukladat do jedne tabulky?

Avatar

Autor komentáře: Marian Mereš

Datum vložení: 24.10.2001 22:51:03

A prečo áno? Aby sa šetrili systémové zdroje?

Pri rozumnom použití separatora (to, že je takmer zbytočný som uviedol aj priamo v článku) by nemal nadobúdať viac ako 2 znaky (a aj to len vo výnimočných prípadoch), čo je podľa môjho názoru prakticky zhodné - čo sa týka zaťaženia systémových zdrojov - ako použitie identifikátora (cudzieho kľúča) odkazujúceho na druhú tabuľku.

Aby som to zhrnul, myslím, že akákoľvek optimalizácia SQL štrukúry je v _tomto_ konkrétnom prípade zbytočná.

Avatar

Autor komentáře: Adam

Datum vložení: 7.8.2005 20:54:08

S tím v žádném případě nesouhlasim. Vytvořením druhé tabulky s výsledky se v tomto případě přímo nabízí. Nejen, že dojde k vypuštění separátoru, ale vše se neuvěřitelně zjednodušší. Odpadne zbytečná práce s řetězci - již nebude třeba neustále rozpojovat a spojovat řetězec.

Avatar

Autor komentáře: Dusan Zustina

Datum vložení: 21.1.2002 14:43:22

Doma som tuto anketu rozbehal, neboli ziadne problemy, ked som ju chcel pouzit na host.sk vypisalo mi tuto hlasku:

Warning: Empty delimiter in .../data/anketa.php on line 7

Warning: Empty delimiter in .../data/anketa.php on line 8

(zdrojovy kod mam ako vo vasej ukazke cize sa jedna o tieto riadky:

$options = explode($row['separator'],$row['odpovede']);
$votes = explode($row['separator'],$row['vysledky']);

)

anketa sa zobrazi ale nejde hlasovat, neviete niekto co je s tym?
Diky moc za odpoved

Avatar

Autor komentáře: Dusan Zustina

Datum vložení: 21.1.2002 15:11:07

Uz je to v poriadku, chyba bola v tom ze som mal v db naplnenu datami len jednu anketu-jeden riadok

Avatar

Autor komentáře: Juraj Longauer

Datum vložení: 11.7.2002 16:06:32

Zdravim. Co mam robit, aby sa mi spravne zobrazila diakritika otazky? Kodovanie stranky je Windows-1250 tak neviem kde je problem.

Avatar

Autor komentáře: Juraj Longauer

Datum vložení: 11.7.2002 16:10:58

Asi by si mal do databazy pismena s diakritikou ulozit ako special char nieco ako <B>&jlsfblablabla</B>.

Avatar

Autor komentáře: Marian Meres

Datum vložení: 11.7.2002 17:30:15

1. Zdrojove subory su ulozene/napisane v nejakom kodovani (win, iso ...)
2. Toto kodovanie je definovane v meta tagoch stranok
3. Pre stranky su spravne definovane CE fonty (napr.: font-family: "Arial CE", "Helvetica CE", Arial, Helvetica, sans-serif;)

Diakritika musi fungovat.

Avatar

Autor komentáře: Libor Luštinec

Datum vložení: 31.1.2004 16:40:25

Ono totiž záleží na tom, v jaké kódové stránce sou ty data v db uloženy... Jestli používáš phpadmina tak na začátku při logování musíš zadat, jakou kódovou stránku použít...

Avatar

Autor komentáře: Mixxy

Datum vložení: 6.12.2007 20:34:29

Zdarec.Jeslti mas stranku kodovanou ve Windows-1250, zvol Collation v MySQL CP1250 a pripouziti dotazu na spojeni s MySQL pouzij: $spojeni = mysql_pconnect(..); $databaze = mysql_select_db(); $cestina = mysql_query("SET NAMES 'cp1250'", $spojeni); a podobne. Napr. Kdyz budes mit stranku v ISO-8859-2, pouzis SET NAMES 'latin2' a pod ;)

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 6.12.2007 21:42:36

Podrobněji viz též článek http://interval.cz/clanky/mysql-cestina-a-slovenstina/ ;-)

Avatar

Autor komentáře: Magdalena Houdová

Datum vložení: 30.10.2002 8:32:59

Dobrý den. Měla bych takový začátečnický dotaz. Je možné tuto anketu umístit do stránky.htm, tedy nikoliv php? Pochopitelně podpora PHP i MySQL na serveru je. Pokud to možné je, poradíte mi jak? Anketa je velice pěkná, už jsem ji vyzkoušela, funguje bezchybně. Jen jestli to jde také na htm... A pak bych měla ještě jednu otázku. Je možné nějak konkrétně časově ohraničit zamezení opětovného hlasování, třeba na 24 hod apod.? Děkuji za vaši odpověď.

Avatar

Autor komentáře: Michal

Datum vložení: 26.11.2002 19:52:15

Anketu je mozne do .htm suboru vlozit len v pripade, ze PHP na serveri je nainstalovane tak, ze povazuje za PHP skripty aj .htm subory, co sa moc casto nestava, ale da sa to zariadit ak mate nejaky vplyv na administratora serveru. V opacnom pripade PHP .htm subory ignoruje a teda na vystup sa zobrazi zdrojovy kod a nie vysledok skriptu.

Avatar

Autor komentáře: Lukáš

Datum vložení: 11.2.2003 20:41:43

Já bych zkusil ten soubor *.htm přejmenovat na *.php a bylo by ne?! :o) Pak stačí jen includovat anktetu a je to...

Avatar

Autor komentáře: Jiří Bureš

Datum vložení: 24.2.2003 9:09:10

A pak ještě kontaktovat lidi, kteří odkazují na konkrétní stránku, smířit se s propadem ve vyhledávačích, změnit odkazy na vlastních stránkách atd. :-)

Avatar

Autor komentáře: F.S.

Datum vložení: 4.8.2003 9:37:46

Je samozřejmě možné do html stránky přidat vložený rámec "<iframe></iframe>", do nějž umístíte php stránku s vlastní anketou. Toto řešení má samozřejmě jistá omezení např. v prohlížečích, které nepodporují rámce, což má však zanedbatelné důsledky.

Avatar

Autor komentáře: Libor

Datum vložení: 21.3.2003 0:52:25

Predem diky za pomerne jednoduchou,ale pritom funkcni a peknou anketu.

Mam ale drobny problem - nefunguje mi cookies a je mozne hlasovat porad dokola:-(((
Pri hlasovani se neuklada zadny soubor do adr. "..../cookies" a to se mi zda jako hlavni problem. Kod jsem zkousel stahnout podruhe a zmenil jsem jen nazev databaze a jmeno serveru a heslo.
Neporadite mi nekdo co s tim ???

Avatar

Autor komentáře: Eduard Hlava

Datum vložení: 2.4.2003 20:41:46

Vykoušel jsem si to na svém webu (<a href='http://www.hlava.net)' target='_blank'>http://www.hlava.net)</a> a opravdu to funguje. Ještě jsem si tam hodil drobnou ochranu proti robotům, tohle by mělo pomoci:
<a href='#' onClick="JavaScript: window.location = 'index.php?parametry'; return false;">Ano</a>

Nevýhodou je, že je nutné mít zapnutý JS. Ale jinak postačující.

Avatar

Autor komentáře: sakra

Datum vložení: 27.10.2005 17:25:21

ja som zkúšal napísať ochranu proti robotom a vôbec mi to nejde... ako na to? napíšte mi tú časť zdroja ako mám dať to <a href='#' onClick="JavaScript: window.location = 'index.php?parametry'; return false;">Ano</a>

Avatar

Autor komentáře: mchead

Datum vložení: 22.4.2003 16:58:50

Ja jsem opravdu zacatecnik a tak mam mozna banalni problem. Pise mi to tuhle chybu. Nevite nekdo co stim?
Warning: explode() [function.explode]: Empty delimiter. in /DISK3/WWW/mchead.net/www/anketa/anketa.php on line 7

Warning: explode() [function.explode]: Empty delimiter. in /DISK3/WWW/mchead.net/www/anketa/anketa.php on line 8

Warning: explode() [function.explode]: Empty delimiter. in /DISK3/WWW/mchead.net/www/anketa/anketa.php on line 7

Warning: explode() [function.explode]: Empty delimiter. in /DISK3/WWW/mchead.net/www/anketa/anketa.php on line 8

Avatar

Autor komentáře: mchead

Datum vložení: 24.4.2003 11:37:54

Uz jsem na to prisel. Chyba v DB. Ale mam dalsi problem, ovsem tady je to uz mrtve. Tak nic.

.:McHead:.

Avatar

Autor komentáře: pogoo

Datum vložení: 8.10.2003 20:07:21

niekto sa tu pytal na to ako zabezpecit to, aby sa po hlasovani stranka <B>nerefreshovala</B>. Da sa to riesilt cez FLASH, kde FLASH vyziadanim si stranky na server posiela v parametroch v URL hlasy, takze nie je potrebny refresh. Samozrejme cela anketa je riesena cez FLASH. Mozne zhliadnut na <a href='http://www.neomyz.com/poll/default.aspx?source=int' target='_blank'>http://www.neomyz.com/poll/default.aspx?source=int</a>

Avatar

Autor komentáře: Aleš Janata

Datum vložení: 8.1.2004 0:23:43

Anketa funguje (vytváří cookies) na webu s Apache, ale pokud je spuštěna na webu, kde běží pouze Windows, nevytvoří cookies. Co dělám špatně?
Jiná aplikace s cookies na tomto sporném webu funguje OK a cookies vytváří.
Děkuji za odpověď.

Avatar

Autor komentáře: Michal

Datum vložení: 20.2.2004 23:35:18

Jenom, nevím, ale, proč neukládat radši IP adresy do databáze? Já vím, někdo, kdo se připojuje přes modem, tak když se odpojí a znovu jej připojí, tak může znovu hlasovat, ale myslím si, že je to lepší. Protože, co když někdo nemá povoleno COKIE??

Avatar

Autor komentáře: Tomáš

Datum vložení: 8.4.2005 9:58:31

Prosim o pomoc,stahnul jsem si priklad (nastavil sql) a pise mi to toto:-( Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\anketa\anketa.php on line 5 Warning: Empty delimiter in c:\apache\htdocs\anketa\anketa.php on line 7 Warning: Empty delimiter in c:\apache\htdocs\anketa\anketa.php on line 8

Avatar

Autor komentáře: kuba

Datum vložení: 17.4.2005 16:43:30

Zdravim, mam problem s funkconsti tohohle sikovnyho skriptu - na mym localhostu mi to funguje, ale jakmile to dam na hosting kde to ma bejt, nefunguje mi pripocitavani hlasu po kliknuti - je to na forpsi.cz pokud to pomuze.. Uz se to snazim vyresit celej den, mohl by mi nekdo poradit? diky!!

Avatar

Autor komentáře: nik

Datum vložení: 12.5.2005 0:22:36

rozbehnout se mi to podarilo bez problemu, ale proste mi to nepricita hlasy a ja netusim proc :-( poradi nekdo?

Avatar

Autor komentáře: nik

Datum vložení: 12.5.2005 11:07:28

v NN7 mi to pricita, ale v IE6, ktery ma vetsina mych navsetvniku to rposte nepricita a ja fakt netusim proc.

Avatar

Autor komentáře: mt2005

Datum vložení: 3.6.2005 7:31:51

Ahoj, prosím Vás, proč se ještě nikdo nesnažil reagovat na funkčnost (ukládání dat do db). Myslím tím započítávání výsledků??? Vyzkoušel sem anketu. Fakt super, až na to, že neukládá výsledky... PROČ?!?!?!

Avatar

Autor komentáře: zdik

Datum vložení: 8.6.2005 23:31:02

funguje, ale skript, tak jak byl publikován je použitelný pro servery se REGISTER GLOBALS = On. Takže např na forpsi je nutné udělat úpravy v předávání proměnných (např. $id = $_GET['id']...) další informace viz. např http://interval.cz/clanek.asp?article=2264

Avatar

Autor komentáře: Honza

Datum vložení: 2.1.2006 15:03:07

Jsem PHP lama - kde se musí konkrétně ve skriptech této ankety uplatnit předávání proměnných $_GET? Taky mi to na locale jede a na hostingu (pipni) nic. Zkouším vše možné...

Avatar

Autor komentáře: Pavel

Datum vložení: 31.8.2005 8:02:08

Nevím zkouším už všechno, ale anketa mi bezi bezproblémů na lokálním počítači, ale pokud to dam na server, kde provozuji sve stranky tak anketa napřičítává hlasy. Přesto konfigurace serverů je stená. Nevím běží mi to v pohodě na Apache a mysql na lokále na tom samém na webhostingu ne. Nevím kde je chyba. Nevíte někdo co bych s tím měl udělat?

Avatar

Autor komentáře: Michal

Datum vložení: 3.12.2005 21:31:44

Anketa sice beha,ale muzu si hlasovat porad stale a stale dokola,coz neni jiste koser.. nasel jsem tu radu pres JS a to tohle: <a href='#' onClick="JavaScript: window.location = 'index.php?parametry'; return false;">Ano</a> ale vytvaret to pro napr 6 odpovedi je blaznovstvi..nevite nekdo jak to osetrit pres ukladani PI adresy? a nebo sesion?..diky za radu

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 4.12.2005 12:03:04

Na webu volně přístupnou anketu nelze ochránit proti uživateli, který se ji rozhodne záměrně sabotovat. Jednu IP adresu dnes může sdílet řada uživatel a jeden uživatel může mít řadu IP adres. To samé platí o všech ostatních "zabezpečovacích" mechanismech, takže nemá smysl se s nimi zatěžovat. O něco lepší je situace pouze v uzavřených systémech, kde má každý uživatel své konto. Zde lze zajistit, aby jedno konto nehlasovalo vícekrát - je pak už na systému samotném, aby uživatel neměl tolik kont, aby mohl anketu sabotovat. Viz například http://www.hofyland.cz ;-)

Avatar

Autor komentáře: mylan

Datum vložení: 13.12.2005 0:57:31

Neviem aká je šnca, že sa dočkám ešte odpovede, ale neviem už ako ďalej tak sa opýtam... Malo tu viac ľudí podobný problém, ale nikdy nenapísali riešenie... Ak niekto bude toto ešte prečítať a vedel by riešenie, nech mi prosím vysvetlí nejako, kde robím chybu v databáze, ak sa mi zobrazuje chybové hlásenie: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual-users/tvpratele.info/www/web-mesice-hlasovani.php on line 10 Warning: explode(): Empty delimiter. in /home/virtual-users/tvpratele.info/www/web-mesice-hlasovani.php on line 12 Warning: explode(): Empty delimiter. in /home/virtual-users/tvpratele.info/www/web-mesice-hlasovani.php on line 25 Vopred ďakujem tomu dobrému človeku, čo to vysvetlí :-)

Avatar

Autor komentáře: Marek

Datum vložení: 13.12.2005 3:38:31

při vybírání dta z databáze se používá zápis <nazev_sloupce< pozn: < je na klávesnici nahoře vlevo vedle jedničky...

Avatar

Autor komentáře: Marek

Datum vložení: 13.12.2005 3:40:34

aha formater to zaměnil... jde o otočenou jednoduchou uvozovku - jak se přesně ten znak jmenuje nevím...

Avatar

Autor komentáře: Tomas

Datum vložení: 13.2.2006 6:50:14

Paneboze muzes si to po sobe alespon precist? Takhle radit muze fakt akorat imbecil.

Avatar

Autor komentáře: Rosta

Datum vložení: 12.1.2006 20:47:26

Tato anketa mi pracovala přibližně asi 3 roky, ale nyní mi přestala fungovat a když ji zkusím nahrát znovu hlásí to tuto chybu: SQL-dotaz: CREATE TABLE anket( id int( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT , otazka varchar( 255 ) , odpovede tinytext, separator varchar( 10 ) , vysledky varchar( 255 ) , PRIMARY KEY ( id ) ) MySQL hlásí: #1067 - Invalid default value for 'id' [ Zpět ] Nevíte někdo čím by to mohlo být? Provozoval jsem ji na webzdarma.cz a když přestala fungovat, tak jsem ji přemístil na ic.cz, kde nějakou dobu fungovala, ale nyní již také přestala. Chtěl jsem si zprovoznit placenou databázi na KGB, ale tam také nefunguje.

Avatar

Autor komentáře: glabasnat

Datum vložení: 13.4.2006 19:04:33

separator - je v nove MySQL vyhrazene slovo :o)

Avatar

Autor komentáře: DERF

Datum vložení: 29.5.2007 0:32:05

Mozete mi niekto pomoct? tu anketu som si doma spustil...ale neake chyby mi to vypisuje... mam apache aj mysql...nezobrazovalo to otazku ani odpovede a ked som na nieco klikol tak mi to zobrazilo len viac errorov :)... neviete preco to moze byt??? prosim poradte mi na email

Avatar

Autor komentáře: Filip

Datum vložení: 21.2.2008 20:43:52

vytvořil jsem si tabulku podle údajů, které jsou zde zadané ale hlási mi to tuto chybu #1067 - Invalid default value for 'id' nevíte někdo kde je chyba ?

Avatar

Autor komentáře: swotiq

Datum vložení: 28.5.2008 13:36:08

anketa funguje leen vo funkcii [b]hlasuj()[/b] treba pri vybere z databazy [i]mysql_query...[/i] namiesto SELECT odpovede separator vysledky napisat '*' aby vybralo vsetko potom to funguje bez problemov :) dlho som nad tym rozmyslal, ale uz to ide, pekny den prajem ;)

Zpět na článek | Úvodní stránka Interval.cz