ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingCaptcha เอาไว้กัน Spam ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: Captcha เอาไว้กัน Spam ครับ  (อ่าน 2480 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« เมื่อ: 23 มีนาคม 2007, 01:31:48 »

ประเดิมบอร์ดใหม่ครับ เขียน Captcha มาให้ใช้กัน เอาไว้กัน Spam ครับ

file: captcha.class.php
โค๊ด:

<?php
class captcha &#123;
    
var $str;
    var 
$width 55;
    var 
$height 20;
    var 
$transparent false;
    var 
$bg '#EEEEEE';
    var 
$color '#666666';
    var 
$len 5;
    var 
$size 5;
    var 
$left 5;
    var 
$top 2;
    var 
$type 'image/gif';
    
    function 
draw&#40;$text=''&#41; &#123;
        
$this->str = &#40;$text == ''&#41; ? $this->random&#40;&#41; &#58; $text;
        
$this->show&#40;$this->create&#40;$this->str&#41;&#41;;
    
&#125;

    
function random&#40;&#41;&#123;
        
$string 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        
$string str_repeat&#40;$string,3&#41;;
        
$string str_shuffle&#40;$string&#41;;
        
srand&#40;&#41;;
        
$from rand&#40;0,strlen&#40;$string&#41;-$this->len&#41;;
        
$code substr&#40;$string,$from,$this->len&#41;;
        
return $code;
&#125;

    
function color2rgb&#40;$color&#41; &#123;
        
if &#40;$color[0&#93; == '#'&#41;
            
$color substr&#40;$color, 1&#41;;

        
if &#40;strlen&#40;$color&#41; == 6&#41;
            
list&#40;$r, $g, $b&#41; = array&#40;$color[0&#93;.$color[1&#93;, $color[2&#93;.$color[3&#93;, $color[4&#93;.$color[5&#93;&#41;;
        
elseif &#40;strlen&#40;$color&#41; == 3&#41;
            
list&#40;$r, $g, $b&#41; = array&#40;$color[0&#93;, $color[1&#93;, $color[2&#93;&#41;;
        
else
            return 
false;

        
$r hexdec&#40;$r&#41;; 
        
$g hexdec&#40;$g&#41;; 
        
$b hexdec&#40;$b&#41;;

        
return array&#40;$r, $g, $b&#41;;
    
&#125;

    
function create&#40;$text&#41; &#123;
        
$rgb1 $this->color2rgb&#40;$this->bg&#41;;
        
$rgb2 $this->color2rgb&#40;$this->color&#41;;
        
$image imagecreate&#40;$this->width, $this->height&#41;;
        
$bg imagecolorallocate&#40;$image, $rgb1[0&#93;, $rgb1[1&#93;, $rgb1[2&#93;&#41;;
        
$textcolor imagecolorallocate&#40;$image, $rgb2[0&#93;, $rgb2[1&#93; , $rgb2[2&#93;&#41;;
        
imagestring&#40;$image, $this->size, $this->left, $this->top, $text, $textcolor&#41;;
        
        
if &#40;$this->transparent&#41; 
            
imagecolortransparent&#40;$image, $bg&#41;;
        
        
return $image;
    &
#125;

    
function show&#40;$image&#41; &#123;
        
header&#40;'content-type&#58; '.$this->type&#41;;
        
imagegif&#40;$image&#41;;
        
imagedestroy&#40;$image&#41;;
    
&#125;

    
function getstr&#40;&#41; &#123;
        
return $this->str;
    &
#125;
&#125;
?>



File: img.php
โค๊ด:

<?php
session_start
&#40;&#41;;
require &#40;"captcha.class.php"&#41;;
$captcha = new captcha&#40;&#41;;
$captcha->transparent true;
$captcha->draw&#40;&#41;;

$_SESSION['captcha'&#93; = $captcha->getstr&#40;&#41;;
?>


How to use
อ้างถึง

<img src="img.php?=1234" onclick="this.src=this.src+'&'+Math.random();" border="1" align="absmiddle" />


ตรง 1234 ไปเขียน function random เอาเองนะ

เอาไปใช้ดูครับ หวังว่าคงช่วยได้บ้างนะ  Shocked
บันทึกการเข้า

ColdMoney
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 200
ออฟไลน์ ออฟไลน์

กระทู้: 12,622



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 23 มีนาคม 2007, 08:31:18 »

ใจจ้า   :lol:  :lol:
บันทึกการเข้า

amaudy
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 1,212



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 23 มีนาคม 2007, 08:33:35 »

กำลังหาอยู่เลย

ขอบคุณมากครับ
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #3 เมื่อ: 23 มีนาคม 2007, 09:13:32 »

$cap = rand(0, 9).rand(0, 9).rand(0, 9).rand(0, 9).rand(0, 9).rand(0, 9);

นี้ครับ สุ่มตัวเลขเวอร์ชั่นบ้านๆ 6 หลัก  :lol:
บันทึกการเข้า

แอร๊ยยยๆๆๆ
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 50
ออฟไลน์ ออฟไลน์

กระทู้: 2,765



ดูรายละเอียด เว็บไซต์
+0+
« ตอบ #4 เมื่อ: 23 มีนาคม 2007, 09:42:17 »

thx งับ
บันทึกการเข้า

trvoy
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 21
ออฟไลน์ ออฟไลน์

กระทู้: 2,926



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 23 มีนาคม 2007, 12:34:56 »

ใช้ใน phpbb หรือ invision board ได้เปล่าครับ
ถ้าได้ แล้วมันติดตั้งยังไงเหรอครับ
บันทึกการเข้า

... ตั้งใจหาเงิน ...
bubbleball
Administrator
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 444
ออฟไลน์ ออฟไลน์

กระทู้: 5,731



ดูรายละเอียด
« ตอบ #6 เมื่อ: 23 มีนาคม 2007, 12:55:29 »

กัน spam สำหรับอะไรครับ wordpress ใช้ไ้ด้เปล่า
บันทึกการเข้า

สงสัยติดต่ออะไรไปทักหาที่ Fair Thailand (ไม่ค่อยอ่านกล่องข้อความที่นี่)

Fair Market Thailand   กลุ่มจะอนุญาตให้ซื้อขายในอนาคต ผมสร้างและดูแลเอง


ปลาทอง
ลายเซนต์สูงไม่เกิน 250px
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 23 มีนาคม 2007, 13:16:39 »

ตัวนี้เขียนออกมาให้สร้างภาพ Random ครับ จะเอาไปใช้ ให้เอาไปใส่ ตรง Form แล้ว พอไปหน้า save ให้ไปเขียนเช็ค ว่าถ้าเลขที่กรอกมาไม่ตรงกับภาพ ไม่ให้ผ่าน ตามโคดที่ให้มานี่ ตัวเลขจะเก็บอยู่ใน $_SESSION['captcha'] ครับ

เวลาทำ Form ก็สร้าง ประมาณนี้
โค๊ด:

<form method="POST" action="save.php">
<input type="text" name="verify">
<img src="img.php?=1234" onclick="this.src=this.src+'&'+Math.random();" border="1" align="absmiddle" />
</form>


เวลารับค่าก็เอาไปเช็ค
โค๊ด:

session_start();
if ($_SESSION['captcha'] != $_POST['verify']) {
echo "error"; exit();
} else {
....
}


ส่วนจะใช้กับ Form ของ WP ก็ได้ครับ ต้องไปไล่โคดดูครับ
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #8 เมื่อ: 23 มีนาคม 2007, 15:21:07 »

For PHP Developer Only.  Cheesy
บันทึกการเข้า

hurahura
สมุนแก๊งเสียว
*

พลังน้ำใจ: 20
ออฟไลน์ ออฟไลน์

กระทู้: 868



ดูรายละเอียด
« ตอบ #9 เมื่อ: 14 กุมภาพันธ์ 2008, 09:42:00 »

ไอ้ &#40;&#41;&#123; มันคืออไรอ่ะ
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #10 เมื่อ: 14 กุมภาพันธ์ 2008, 11:44:50 »

ไอ้ &#40;&#41;&#123; มันคืออไรอ่ะ
&#40;  (
&#41;   )
&#123;   {

--------------------------

Captcha ตัวนี้ผมแนะนำว่า ใช้การส่งค่าภายในด้วย session จะดีกว่านะครับ
เพราะไม่งั้น มีก็เหมือนไม่มี  Tongue
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์