Autor Zpráva
jirka.nevrly
Profil *
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 *
hledej Antispam, na netu je toho hory :)
Darker
Profil
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 *
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
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
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
DJ Miky:
display:none
Když jsi dal type=hidden tak se nenapálili?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0