| Autor | Zpráva | ||
|---|---|---|---|
| jirka.nevrly Profil * |
#1 · Zasláno: 24. 10. 2011, 18:54:41
ahoj,
potřeboval bych nějakej php script pro formulář, jako je např. " Kolik je 2 + 3 : " při chybné , či žádné odpovědi, aby se neodeslal. Hledal jsem na netu, něco jsem zkoušel ale nefungovalo mi to. S php neumím. Byl by prosím někdo ochoten poradit, myslím, že by to nemusela být složitá operace. Děkuji moc |
||
| TanderZz Profil * |
#2 · Zasláno: 24. 10. 2011, 19:12:15
hledej Antispam, na netu je toho hory :)
|
||
| Darker Profil |
#3 · Zasláno: 24. 10. 2011, 19:32:00
Konkrétně součtová kontrola (která jde mimochodem dost snadno obejít) se dá udělat z hlavy:
Pred odeslanim: <?php session_start(); $ran=array(rand(1,9),rand(1,9)); $session["kontrola"]=$ran[0]+$ran[1]; ?> <form method="post"> Kolik je <?php echo $ran[0]." + ".$ran[1];?>? <input type="text" name="k"> </form> Po odeslani:
session_start();
if($_POST["k"]==$_SESSION["kontrola"]) {
//v poradku...
}
else {
//spatne!
}
$_SESSION["kontrola"]="";
|
||
| margin Profil * |
#4 · Zasláno: 24. 10. 2011, 19:37:32
Darker:
„jde mimochodem dost snadno obejít“ Zdejší kontrola je ještě jednodušší a úspěšná, protože je pro spamery bezvýznamná a nevyplatí se jim kvůli ní psát extra skript. |
||
| Darker Profil |
#5 · Zasláno: 24. 10. 2011, 20:43:26
margin:
„Zdejší kontrola je ještě jednodušší a úspěšná“ Zdejší kontrola je přesně takováhle. A to že se nikomu nevyplatí skrápt skript sem, neznamená, že by nemohl, proto jsem na slabinu ochrany upozornil. |
||
| DJ Miky Profil |
#6 · Zasláno: 24. 10. 2011, 21:25:45
Vždy se mi osvědčilo vytvořit skryté (display:none) políčko <input type="text" name="web"> (web snad naláká roboty na vyplnění jejich obsahu), které uživatel se zapnutým CSS nevidí, pro ostatní ještě přidávám popisek "nevyplňovat" s krátkým vysvětlením, že je to ochrana proti robotům. Uživatel to nepozná, nikoho to nezdržuje, naopak to zatím zastavilo všechny automatické roboty (na jednom webu podle logu desítky, někdy stovky zásahů denně).
Jinak drobnost ke skriptu Darkera - v prvním kódu na čtvrtém řádku má být $_SESSION místo $session. |
||
| Darker Profil |
#7 · Zasláno: 24. 10. 2011, 23:01:57
DJ Miky:
„display:none“ Když jsi dal type=hidden tak se nenapálili? |
||
|
Časová prodleva: 14 let
|
|||
0