- Home
- Przykłady i porady PHP79
- Inne pomoce, software6
- Banery
- Hyde Park Private Zone6
- Polityka cookies
- Udostępnianie tekstów
© 2001 - 2024 PhpCodex
Alternatywa dla Captcha
Alternative to Captcha
Przykład PHP2014-03-07 stopień trudności: łatwyPonieważ irytują mnie obrazki Captha które często są nieczytalne nie tylko dla bootów ale i dla nas, postanowiłem napisać prosty skrypcik.
Poniższy przykład pokazuje jak stworzyć alternatywne Captcha, tzw. test na człowieczeństwo jak często bywa nazywany.
<?
$a = $_POST['a'];
$b = $_POST['b'];
$m = $_POST['m'];
$suma = $_POST['suma'];
//sprawdzamy czy przesłane wartości są cyframi
if (is_numeric($a) && is_numeric($b) && is_numeric($suma)) {
switch ($m) {
case "*":
$wynik = $a * $b;
break;
case "+":
$wynik = $a + $b;
break;
case "-":
$wynik = $a - $b;
break;
}
//i sprawdzamy inteligencję naszego gościa :)
if($wynik == $suma){
//jeśli nasz wynik zgadza się z wpisanym w formularzu
//wykonujemy dalsze czynności skryptem
echo $suma." jest poprawną wartością więc działam dalej";
}
else{
//jeśli nasz wynik zgadza się z wpisanym w formularzu
//wykonujemy dalsze czynności skryptem
echo $suma." nie jest poprawną wartością, nie umiesz liczyć nie jedziesz";
}
}
else{
//tworzymy tablice naszych znaków
$tab_op = array('+','-','*');
//losujemy element tablicy
$r = rand(0,2);
$m = $tab_op[$r];
//nasz uproszczony formularz
echo"
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
<input type=\"text\" name=\"a\" value=\"".rand(1, 30)."\" size=\"2\"> ".$m."
<input type=\"text\" name=\"b\" value=\"".rand(1, 30)."\" size=\"2\"> =
<input type=\"text\" name=\"suma\" value=\"\" size=\"2\">
<input type=\"submit\" name=\"submit\" value=\"send\">
<input type=\"hidden\" name=\"m\" value=\"".$m."\">
</form>
";
}
?>
manual: is_numeric() rand()