..::  ZABEZPIECZENIE FORMULARZA TOKENEM  ::..
Wielu webmasterów spotyka się problemem z tzw. spamowaniem formularzy przez spamerów, oraz botami panoszącymi się w Internecie. Istnieje możliwość rozwiązania tego problemu poprzez dołączenie do formularza mechanizmów CAPTACHA tokena - obrazka z kodem, który należy przepisać do pola obok formularza.
Utwórz plik process.php
oto jego zawartość
<?php
session_start();     // start sesji
$session = $_SESSION['captcha'];   // zdefiniowanie sesji
$image = $_POST['image'];
$image = md5($image);   // szyfrowanie MD5
if ($session == $image){
// dalsze instrukcje, jeśli token jest poprawny
echo "KOD POPRAWNY";
}
// dalsze instrukcje, jeśli token jest błędny tutaj możesz ustawić czy chcesz mieć tylko informację o błędnym kodzie lub usuń // przed header i powrócisz do formularza
else{
//header("Location: form.php");
echo "<div style=\"width: 100px\">";
echo "<div style=\"border: 2px solid blue; text-align: center\">";
echo "<font style=\"color: red; font-family: verdana; font-size: 12px; font-weight: bold\">BŁĘDNY KOD</font></div>";
echo "<div style=\"text-align:center\">";
echo "<input type=\"button\" value=\"Wróć\" onClick=\"history.back()\"></div></div>";
}
?>
następnie utwórz plik image.php
odpowiedzialny za generowanie ciągu znaków
<?php
session_start();
// wysłanie nagłówków do przeglądarki
header ("(anti-spam-content-type:) image/jpg");

// generowanie liczb losowych do wykorzystania w naszym szyfrowaniu
$enc_num = rand(0, 9999); // numer ten jest szyfrowany
$key_num = rand(0, 24); // używany ciąg znaków wykorzystany na obrazku

// użyj losowy ciąg cyfr i liter przy użyciu Md5
// ilość wyświetlanych znaków w naszym przypadku 5
$hash_string = substr(md5($enc_num), $key_num, 5);
$hash_md5 = md5($hash_string);

// przypisanie do sesji
$_SESSION['captcha'] = $hash_md5;

// tworzą zestaw obrazów jako tło pod tokenem
$bgs = array("imag/back1.jpg", "imag/back2.jpg", "imag/back3.jpg");

// wybiera obraz tła przy użyciu funkcji podręcznej array_rand
$background = array_rand($bgs, 1);

// ustawia jako tło losowo wybrany gif
$img_handle = imagecreatefromjpeg($bgs[$background]);

// kolor czcionki, tekstu
$text_colour = imagecolorallocate($img_handle, 0, 0, 0);

// wielkosc czcionki, tekstu
$font_size = 5;

// pobierz wymiary poziome i pionowe obrazu tla
$size_array = getimagesize($bgs[$background]);
$img_w = $size_array[0];
$img_h = $size_array[1];

// pozycja pozioma
$horiz = round(($img_w/2)-((strlen($hash_string)*imagefontwidth(5))/2), 1);

// pozycja pionowa
$vert = round(($img_h/2)-(imagefontheight($font_size)/2));

// umieść wygenerowany tekst na tle
imagestring($img_handle, $font_size, $horiz, $vert, $hash_string, $text_colour);

// tworzenie obrazu
imagejpeg($img_handle);

// usuwanie obrazu
imagedestroy($img_handle);
?>
na koniec utwórz plik form.php
A tak to wygląda w praktyce


Tutaj możesz pobrać pliki process.php | image.php | form.php | gify |
size [ 17,7 KB ]    pobrano: 244

copyright © 2008-2010 by  int24  Design.  All Rights Reserved

 
WYSZUKAJ
Otwiera pomoc w nowym oknie
MENU
GENERATORY
Generator HTML
Generator LINKI
Generator POPUP
Generator MUZYKI
Generator BUTTON
Generator KURSORA
Generator ROLLOVER
Generator ADRES URL
Generator STATUSÓW
Generator HTML DO JS
Generator SCROLLBARA
Generator MARQUEE INPUT
SKRYPTY PHP

Kilka przykładów
zastosowania skryptów
PHP

Page Rank
Księga gości
Banowanie IP
Wyszukiwarka
Bramka e-mail
Licznik kliknięć
Token - Captcha
Licznik odwiedzin
Więcej znajdziesz w dziale WEBMASTER
SKANER ONLINE
REKLAMA

Masz ciekawą stronę,
fajnie wykonaną ?
chcesz się zareklamować
zapraszam do wymiany