Welcome

Innovation distinguishes between a leader and a follower.

" นวัตกรรมแยกผู้นำกับผู้ตามออกจากกัน " Steve Jobs

ระบบยืนยันการลงทะเบียนด้วยอีเมล์ verify by email
ระบบตัวนี้ก็คือ หลังจากที่ให้บุคคลทั่วไป ลงทะเบียนเป็นสมาชิกแล้ว เราจะสร้างโค้ดขึ้นมาตัวหนึ่ง แล้วส่งเป็นลิ้งก์ไปทางอีเมล์ ให้เขาคลิกลิ้งก์มายังเว็บเรา แล้วก็ตรวจสอบว่าโค้ดที่ส่งมา ถูกต้องหรือไม่ ถ้าถูกต้อง ก็อัปเดตสถานะให้เขาเป็นสมาชิกสมบูรณ์  ส่วนแอคเค้าที่ไม่ได้ยืนยันภายในเวลากี่วัน ท่านจะลบทิ้งหรือจะทำอย่างไรต่อไป ก็ up to you
** ตาราง member มีฟิลด์คร่าวๆดังนี้
1. member_id
2. member_name
3. member_email
4. member_verify_code
5. member_verify_status
member_id ผมจะใช้ autoincrement number
verify_code : เพื่อเก็บโค้ดที่เราสร้างสุ่ม ทำเป็นรหัสยืนยัน
verify_status : เก็บ 0 กับ 1 เพื่อเป็นตัวบอกว่าคนลงทะเบียนได้ ยืนยันการลงทะเบียนแล้วหรือไม่ 0:ยัง 1:ยืนยันแล้ว
CREATE TABLE `tbl_member` (
  `member_id` smallint(5) unsigned NOT NULL auto_increment,
  `member_name` varchar(60) NOT NULL,
  `member_email` varchar(60) NOT NULL,
  `member_verify_code` varchar(10) NOT NULL,
  `member_verify_status` tinyint(3) unsigned NOT NULL default ’0′,
  PRIMARY KEY  (`member_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ประโยชน์ที่จะได้รับจากระบบนี้คือ
1.ป้องกันการลงทะเบียนเล่นๆ
2.ป้องกัน bot
3.ลดปัญหาข้อมูลไร้ประโยชน์
4.ฯลฯ (ยังคิดไม่ออก)
วิธีการก็คือ
1. หลังจากที่ยูสเซอร์ป้อนข้อมูลหน้าฟอร์มและ submit มา สร้างตัวเลขสุ่มขึ้นมาชุดหนึ่งเพื่อเป็น verify code
2. เอา code ที่ได้ เก็บลงไปในฐานข้อมูลพร้อมข้อมูลที่สมัครเป็นสมาชิก
3. ส่ง verify code ไปทางอีเมล์
4. สร้างเพจคอยรับลิ้งก์จากอีเมล์  เพื่อเอา code ไปตรวจสอบ
เริ่มกัน

<?php  // 1. หลังจากที่ยูสเซอร์ป้อนข้อมูลหน้าฟอร์มและ submit มา สร้างตัวเลขสุ่มขึ้นมาชุดหนึ่งเพื่อเป็น verify code 
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) 

    
// เชื่อมต่อฐานข้อมูล 
    
$hostname_connection = "localhost"
    
$database_connection = "example"
    
$username_connection = "root"
    
$password_connection = ""
    
    
$connection = mysql_pconnect($hostname_connection, $username_connection, $password_connection)
    
or trigger_error(mysql_error(),E_USER_ERROR); 
    
    
mysql_query( "SET NAMES UTF8" ) 
    
    
// สร้างรหัสสุ่ม 
    
    //1.สร้างชุดตัวอักษรตั้งแต่ a-z 
    
$arr_a_z = range( "a" , "z" 
    
    
//2.สร้างชุดตัวอักษรตั้งแต่ A-Z 
    
$arr_A_Z = range( "A" , "Z" 
    
    
//3.สร้างชุดตัวอักษรตั้งแต่ 0-9 
    
$arr_0_9 = range( 0 , 9 ) ; 
    
    
//4.เอาชุดตัวอักษรทั้ง 3 มารวมกัน 
    
$arr_a_9 = array_merge( $arr_a_z , $arr_A_Z , $arr_0_9 ) ; 
    $str_a_9 
= implode( $arr_a_9 ) ; 
    
    
//5.ทำการสับเปลี่ยนตำแหน่งตัวอักษร 
    
$str_a_9 = str_shuffle( $str_a_9 ) ; 
    
    
//6.ตัดเอามาแค่ 10 ตัวอักษร 
    
$member_verify_code = substr( $str_a_9 , 0 , 10 ) ; 
    
    
// 2. เอา code ที่ได้ เก็บลงไปในฐานข้อมูลพร้อมข้อมูลที่สมัครเป็นสมาชิก 
    
$insertSQL = sprintf("INSERT INTO tbl_member (member_name, member_verify_code) 
                                            VALUES (’%s’, ’%s’, ’%s’)"
, $_POST['member_name'] 
                                            
$_POST['member_email'] , $member_verify_code ); 
    
    
mysql_select_db($database_connection, $connection); 
    
$Result1 = mysql_query($insertSQL, $connection) or die(mysql_error()); 
    
    
// เอา member_id มา 
    
$member_id = mysql_insert_id() 
    
    
// 3. ส่ง verify code ไปทางอีเมล์ 
    
$to = "User <{$_POST['member_email']}>" 
    
$subject = "Verify By Email" 
    
$headers = "MIME-Version: 1.0\r\n" 
    
$headers .= "Content-Type: text/html; charset=UTF-8 \r\n" 
    
$headers .= "From: Admin <admin@select2web.com>\r\n" 
    
$body = "<a href=http://www.select2web.com/verify_by_email.php?
                     member_id={$member_id}&member_verify_code={$member_verify_code}>
                     คลิกเพื่อยันยัน</a>"
 
    
    @
mail($to, $subject, $body,$headers) 

?> 






สร้างเพจ verify_by_email.php คอยรับลิ้งก์จากอีเมล์  เพื่อเอา code ไปตรวจสอบ



<?php  // 1. เชื่อมต่อฐานข้อมูล  $hostname_connection = "localhost"$database_connection = "example"$username_connection = "root"$password_connection = ""
$connection = mysql_pconnect($hostname_connection, $username_connection, $password_connectionor trigger_error(mysql_error(),E_USER_ERROR); 
mysql_query
( "SET NAMES UTF8" ) 
// 2. ตรวจสอบก่อนว่า verify code ที่ส่งมา ถูกต้อง  mysql_select_db($database_connection, $connection);  $query_rs_member = sprintf("SELECT * FROM tbl_member WHERE member_id = '%s'  
                           AND member_verify_code = '%s' "
, $_GET['member_id'] , $_GET['member_verify_code'] ); 
$rs_member = mysql_query($query_rs_member, $connection) or die(mysql_error());  $row_rs_member = mysql_fetch_assoc($rs_member);  $totalRows_rs_member = mysql_num_rows($rs_member); 
// กรณีที่ถูกต้อง ก็อัปเดต สถานะในฐานข้อมูล  if ( $totalRows_rs_member > 0 ) 

    
$updateSQL = sprintf("UPDATE tbl_member SET member_verify_status= 1 WHERE member_id=%s", $_GET['member_id'] ); 
    
mysql_select_db($database_connection, $connection); 
    
$Result1 = mysql_query($updateSQL, $connection) or die(mysql_error()); 
    
    
echo "Verify Complete" 

}
 else 

    
// ในกรณีที่มั่วข้อมูลอะไรก็ไม่รู้มา 
    
echo "Verify Uncomplete " 

?>  

0 ความคิดเห็น :

แสดงความคิดเห็น

 
JUNCTION X © 2013. All Rights Reserved. Powered by Blogger
Top