Autor Zpráva
Aramis
Profil *
Zdravim Vas, prosim, nevite nekdo jak udelat odesilaci formular na web s ochranou proti spamu?děkuji
vertigo4
Profil
vytvořit obrázek, kde bude nějaký sled číslic a písmen a potom uděláš podmínku při zápisu (do databáze, souboru)
Zdeněk Košťál
Profil
Aramis
Podívej se jak je to udělané tady na diskusi - řešení je s javascriptem, ale funguje i při vypnutém. Podle mě je IMHO blbost dělat na obyčejné weby captchu.
mikrop
Profil
Ahoj,
za předpokladu, že máte na mysli spam který roznáši robot je řešení jendoduché a to využít hlouposti samotného robota, který se snaží odeslat veškeré prvky formuláře.

Takže 1) ve formuláři vytvořte například
<input type=\"submit\" name=\"robot\" value=\"robot\" style=\"display: none;\" />

2) stačí odchytit udalost
isset($_POST["robot"])
která značí, že formulář odeslal robot
3) provést opatření, například přesměrovat insert na spam/statistickou databázi
$bookdbname = (isset($_POST["robot"])) ? $_POST["robot"] : "guest";
vertigo4
Profil
mikrop
a co když nebudu mít zapnuté styly?
Medvídek
Profil *
slovně napsat třeba početní příklad.

kolik je osm mínus čtyři.
vertigo4
Profil
Medvídek
ano, a nebo třeba aktuální rok...
DJ Miky
Profil
Já jsem ochranu proti spamu vyřešil tak, že jsem přidal jedno pole s name="web", skryté pro návštěvníky (a popiskem Nevyplňujte)… Spamboti ho samozřejmě vyplní, a tak se dají snadno ve skriptech odchytit. Z 20 spamů denně jsem se dostal na 0 spamů za poslední jeden rok :-).
vertigo4
Profil
DJ Miky
ano tak pokud je tam jasně napsáno Nevyplňujte, tak se to zdá jako zdařilé řešení
DJ Miky
Profil
vertigo4
Zatím mi funguje dokonale všude, kde ho mám :-).
Uživatelé se zapnutým CSS ho neuvidí vůbec (display:none) a uživatelé s vypnutým CSS ho uvidí jako pole s popiskem:

Nevyplňujte. / Toto pole prosím nevyplňujte, jinak nebude Vaše zpráva přijata. Jedná se o ochranu proti tzv. spambotům.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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