Autor Zpráva
Pavliq
Profil
Ahoj,
než se pustíte do nějakého tláchání, že na webu je tucet typů jak ochránit formulář před spamem, chci jen říci, že o tom vím :) Jde mi o něco upe jednoduchého, něco co nezabere moc řádků :) Něco jako v pascalu : " když se x=1, proveď příkaz odeslat jinak napiš chybu "

Dejme tomu, že by automat házel otázky třeba 1+1 = ? 2+3= ? atd a v případě dobré odpovědi se příspěvěk odešle :)
Budeme pracovat s čísli pouze 1-4 tak aby nám nevyšlo zbytečně 2 ciferné číslo :) Takže tak..

Žádné obrázky, nic složitého, probůh na co dělat kvůli takové hovadince tak šílenej kod. Dle mě to nějak jde, ale nevím jak, takže pokud někdo ví jak na to, budu vděčný :)

PS: pokud Vám to příjde trapné, řekněte si třeba : "bože to je de**l", ale nepište to sem, mě ani nikomu jinému tak nepomůžete :)


Bájo, Pavel :)
djlj
Profil
Javascriptem ověřuj, zda je v poli pro číslo žádaná hodnota. Nějak nerozumím, v čem konkrétně máš problém.
Mastodont
Profil
Pavliq
Nejlepší ochranou je nemít na webu žádný formulář.
Pavliq
Profil
djlj
Problém mám takový, že na webu jsou samé upe šíleně dlouhé scripty na zabezpečení s obrázkama atd, mě ale stačí upe obyčejné něco jako 1+1 a když napíšu 2, tak se to odešle. Javascript neumím :(

Mastodont
Jsou chvíle, kdy je potřebuješ :)
Mike8748
Profil
Pavliq
ja pouzivam neco takovyho

ve formulari je pridano

<div id="spamcheck">Kolik je 2+2 <input name="sc" id="sc" type="text"></div>
<script>document.getElementById("spamcheck").style.display="none";document.getElementById("sc").value=4;</script>

pri zpracovani si zkontroluju jestli existuje promena sc, jestli ma hodnotu 4, pokud ano, tak form. zpracuju
pokud nekdo bude mit vypnutej JS tak to pole bude videt, a musi ho vyplnit rucne, jinak neni videt, a je vyplneny pomoci JS

mam to na jednom webu u kontaktniho formulare, a spam nechodi zadnej (byt se roboti snazi, ale za posledniho pul roku ani jeden neprisel na to kolik je 2+2 :) )
Pavliq
Profil
dej mi link kde to máš použité, máš tam nějaké id("spamcheck") takže když dám do kodu to co jsi mi poslal, tak se mi to odešle ikdyž někdo zadá 31, takže pleas pošli link nebo komplet kod :) Ale i tak děkuji, toto jsem hledal :)
Str4wberry
Profil
Odpovídám Pavlíkovi:
Doporučuji tohle: http://php.vrana.cz/ochrana-formularu-proti-spamu.php

Případně je IMHO docela dobrá ochrana i povinný náhled — ale může být překážkou i pro „živé“ návštěvníky. :–)
Pavliq
Profil
Mě se to zatím nejvíc líbí od mike8748 ale příjde mi to jako nekompletní script, který pro to musím použít. Snad se Mike ozve.
Pavliq
Profil
Tak mě napadlo, co takhle funkce :
bude otázka a pak bude zatržítko a pokud se zatržítko nezaškrkne, tak se zpráva neodešle.
Něco jako :
Jsem si jist, že chci zprávu odeslat : ano

Jinak opravdu php a tak moc neovládám, tak pokud by to někdo napsal, tak ať to pošle kompletní. Děkuji
yFang
Profil
Pavliq
Tohle poslední nevím, jestli by mělo 100% úspěšnost.
Já používám antispam podle Michala Škrabálka. Je to jen co máš udělat, ale ne jak, to si musíš vymyset sám. ;-)
Pavliq
Profil
Nejde mi ani tak o to, aby nějakej automat něco nepořešil ale spíše o to, aby nějaká lama nevyděla formulář a tak si ho z prdele vyplnila, takhle by tam aspon něco musel zaškrknout, což je pro lamy takovej problém, že se na to raději vysere :D
yFang
Profil
Pavliq
Řekl bych, že automati jsou horší než lamy. Lama ti dá jeden příspěvek, automat třeba dvacet.
Pavliq
Profil
yFang
U mě nejde o příspěvěk, ale o uložení něčeho do databáze :-) Ale i tak bych to rád věděl pro další práce :)
Pavliq
Profil
Jinak taky nevím proč neexistuje něco jako v tom pascalu kua, napiš číslo 4 jinak se to neodešle :D a bylo by to
djlj
Profil
Pavliq
Existuje. Napiš si to v javascriptu.

Profil *
dej mi link kde to máš použité, máš tam nějaké id("spamcheck") takže když dám do kodu to co jsi mi poslal, tak se mi to odešle ikdyž někdo zadá 31, takže pleas pošli link nebo komplet kod :) Ale i tak děkuji, toto jsem hledal :)

...jasně, vždy se formulář odešle a Ty si ve skriptu (na který to posíláš) kontroluješ hodnotu sc, pokud je sc=4 zpracuješ..., je-li něco jiného nezpracuješ... Vždyť to Mike8748 píše!

Profil *
inak taky nevím proč neexistuje něco jako v tom pascalu kua, napiš číslo 4 jinak se to neodešle :D a bylo by to

odeslání můžeš zabránit (kontrolovat) javascripem viz djlj, ale pokud bude vypnutý jsi v.. loji, proto se provádí kontrola formuláře hodnoty sc až ve skriptu kde jej zpracováváš.
Mike8748
Profil
Pavliq
Mike se jen tak neozve, protoze je v zahranici, a nedostane se k netu tak casto jak by chtel (a mobilni net je v roamingu drahej jak *censored* )

kod kterej sem vyse uvedl je schopen detekovat ROBOTY, protoze u tech vetsinou neco jako JS nefunguje. finalni kontrola je samozdrejme az po odeslani formulare, podle ty promeny, v priklady pojmenovany SC. pokud ta promena neexistuje, nebo ma hodnotu jinou nez 4, tak se proste prispevek neodesle/nezpracuje.

>> aby nějaká lama nevyděla formulář a tak si ho z prdele vyplnila,
a jak odlisis lamu od neznalyho klienta? a pokud ti nejaka "lama" bude chtit poslat spam, myslis ze ji nejakej checkbox zastavi? zapominas ze blbost nezna hranic

>> Jinak taky nevím proč neexistuje něco jako v tom pascalu kua, napiš číslo 4 jinak se to neodešle
ale vzdyt to existuje, jak v JS, tak v PHP. problem je ze JS si muze klient vypnout, takze potrebujes mit tu kontrolu zdvojenou, jak v JS (pro pohodli klienta) tak v php, pro skutecnou kontrolu+roboty

PS: jestli chces poradit, staci rict. ale komplet kod ti psat nebudu. snaz se trochu
Pavliq
Profil
djlj
Odpověď napiš si to v Java si strč víš kam, né každej je tak schopnej, že umí všechny jazyky, někdo hold nežije jen před PC. Takže s tím jdi fakt do háje :)

Mike8748

PHP ani Java vlastně neovládám, umím s tím akorát pracovat tak aby to fungovalo, ale nemám v hlavě nic, co by mě vedlo, abych něco vytvořil. Takže tak.

I tak dík, asi se na to vykašlu a bude to :)

čau
djlj
Profil
Pavliq
V Javě to psát nemusíš, stačí Javascript. Pokud ti, jak je vidno, Google nefunguje, použij Seznam. Návody jsou na každém rohu. A ten útočný tón bych si vyprošoval.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0