Jak by ktoś reflektował na kodzik zabezpieczający obrazkiem, to podaję poniżej.
Kod php w pliku np kontakt.php:
i zawartość pliku image.php
Kod php w pliku np kontakt.php:
Kod:
<?php
function passcheck($pass) {
$nr = floor(time() / 3600);
for($i = 0; $i < strlen($pass); $i++)
if($i % 2 == 0) $a .= $pass[$i]; else $b .= $pass[$i];
$a = base_convert(strrev($a), 36, 10);
$b = base_convert($b, 36, 10);
if($a + $b <= $nr && $a + $b <= $nr - 2) return true;
return false;
}
if(!passcheck($pass)) die("Hasło nie poprawne !!!");
if(!empty($_POST["mail"])) // jeżeli pole mail nie jest puste
{
echo "wiadomość została wysłana"; // wyświetl komunikat, że mail został wysłany (zawsze jest wysyłany więc nie ma innej opcji ;] )
$headers = 'From: [email protected]'; // z tego maila beda wysyłane wiadomości
$email = '[email protected]'; // zmienna w której przekazywany jest mail DO którego ma przyjść wiadomość
$subject = $_POST['temat']; // temat wiadomości
$message = "wiadomość od: ".$_POST['mail']."
".$_POST['tresc']; // tu jest cała treść wiadomości
//
mail($email, $subject, $message, $headers); // funkcja wysyłająca wiadomość
}
?>
<form action="zapytanie.php" method="post">
/*odpowiednie inputy*/
<img src="image.php"><br/>
Wpisz hasło z obrazka aby wysłać wiadomość!<br/>
<input type="text" name="pass" size="8">
<input type="submit" value="wyślij"/>
</form>
i zawartość pliku image.php
Kod:
<?
function passgen() {
$nr = floor(time() / 3600);
srand(array_sum(explode(" ", microtime())) * 100000);
$a = rand(0, min(getrandmax(), $nr));
$b = $nr - $a;
$a = base_convert($a, 10, 36);
$b = base_convert($b, 10, 36);
$a = strrev(str_pad($a, max(strlen($a), strlen($b)), 0, STR_PAD_LEFT));
$b = str_pad($b, max(strlen($a), strlen($b)), 0, STR_PAD_LEFT);
for($i = 0; $i < strlen($a); $i++) $pass .= $a[$i].$b[$i];
return $pass;
}
header("Content-type: image/jpeg");
$img = imagecreate(110, 30);
$background = imagecolorallocate($img, 206, 207, 099);
$textcolor = imagecolorallocate($img, 0, 0, 0);
imagestring($img, 5, 10, 7, passgen(), $textcolor);
imagejpeg($img);
imagedestroy($img);
?>