 |
|
Captcha ก็ใช้ session กันทั้งนั้นครับ
วิธีทำให้ดีขึ้นคือ
1. การแสดงผล Font ใน รูปภาพ ต้อง ไม้เป็น font มาตรฐาน
2. มีเส้น ทับตัวอักษร
3. สีในการแสดงผล ควรสลับสีไม่ให้ซ้ำกัน
คือ ให้อ่านยากนั่นแหละครับ
...เพราะ เราสามารถทำ Image processing เพื่อให้ได้ตัวอักษรออกมา จาก pattern เหล่านี้ได้
อีกอย่างที่ช่วยได้ คือ ตรวจสอบ spam ก่อนบันทึกข้อมูลครับ
Code (PHP)
// credit : Konstantin Kolodnitsky
class StopForumSpam{
function checkIP($ip) {
$obj = json_decode($this->getResponse("http://stopforumspam.com/api?ip=" . $ip . "&f=json"));
if (isset($obj->ip->frequency) && $obj->ip->frequency != 0) {
return true;
} else {
return false;
}
}
function checkEmail($email) {
$host = explode('@', $email);
if (!filter_var($email, FILTER_VALIDATE_EMAIL) || !$this->checkHostName($host[1]))
return false;
$obj = json_decode($this->getResponse("http://stopforumspam.com/api?email=" . $email . "&f=json"));
if (isset($obj->email->frequency) && $obj->email->frequency != 0) {
return true;
} else {
return false;
}
}
function checkUserName($userName) {
$obj = json_decode($this->getResponse("http://stopforumspam.com/api?username=" . $userName . "&f=json"));
if (isset($obj->username->frequency) && $obj->username->frequency != 0) {
return true;
} else {
return false;
}
}
function checkHostName($host_name) {
return filter_var(gethostbyname($host_name), FILTER_VALIDATE_IP);
}
function getResponse($request) {
$curl = curl_init($request);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 1);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
}
|
 |
 |
 |
 |
Date :
2015-02-20 22:40:03 |
By :
t-monroe |
|
 |
 |
 |
 |
|
|
 |