.::www.Chayoo.in.th::.

 ลืมรหัสผ่าน
 สมัครสมาชิก
ค้นหา
ดู: 243|ตอบกลับ: 0

ระบบยืนยันการลงทะเบียนด้วยอีเมล์ 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 ไปตรวจสอบ

เริ่มกัน
  1. <?php  
  2. // 1. หลังจากที่ยูสเซอร์ป้อนข้อมูลหน้าฟอร์มและ submit มา สร้างตัวเลขสุ่มขึ้นมาชุดหนึ่งเพื่อเป็น verify code  

  3. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {  

  4.     // เชื่อมต่อฐานข้อมูล  
  5.     $hostname_connection = "localhost";  
  6.     $database_connection = "example";  
  7.     $username_connection = "root";  
  8.     $password_connection = "";  
  9.      
  10.     $connection = mysql_pconnect($hostname_connection, $username_connection, $password_connection)
  11.     or trigger_error(mysql_error(),E_USER_ERROR);  
  12.      
  13.     mysql_query( "SET NAMES UTF8" ) ;  
  14.      
  15.     // สร้างรหัสสุ่ม  
  16.      
  17.     //1.สร้างชุดตัวอักษรตั้งแต่ a-z  
  18.     $arr_a_z = range( "a" , "z" )  
  19.      
  20.     //2.สร้างชุดตัวอักษรตั้งแต่ A-Z  
  21.     $arr_A_Z = range( "A" , "Z" )  
  22.      
  23.     //3.สร้างชุดตัวอักษรตั้งแต่ 0-9  
  24.     $arr_0_9 = range( 0 , 9 ) ;  
  25.      
  26.     //4.เอาชุดตัวอักษรทั้ง 3 มารวมกัน  
  27.     $arr_a_9 = array_merge( $arr_a_z , $arr_A_Z , $arr_0_9 ) ;  
  28.     $str_a_9 = implode( $arr_a_9 ) ;  
  29.      
  30.     //5.ทำการสับเปลี่ยนตำแหน่งตัวอักษร  
  31.     $str_a_9 = str_shuffle( $str_a_9 ) ;  
  32.      
  33.     //6.ตัดเอามาแค่ 10 ตัวอักษร  
  34.     $member_verify_code = substr( $str_a_9 , 0 , 10 ) ;  
  35.      
  36.     // 2. เอา code ที่ได้ เก็บลงไปในฐานข้อมูลพร้อมข้อมูลที่สมัครเป็นสมาชิก  
  37.     $insertSQL = sprintf("INSERT INTO tbl_member (member_name, member_verify_code)  
  38.                                             VALUES (’%s’, ’%s’, ’%s’)", $_POST['member_name'] ,  
  39.                                             $_POST['member_email'] , $member_verify_code );  
  40.      
  41.     mysql_select_db($database_connection, $connection);  
  42.     $Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());  
  43.      
  44.     // เอา member_id มา  
  45.     $member_id = mysql_insert_id() ;  
  46.      
  47.     // 3. ส่ง verify code ไปทางอีเมล์  
  48.     $to = "User <{$_POST['member_email']}>" ;  
  49.     $subject = "Verify By Email" ;  
  50.     $headers = "MIME-Version: 1.0\r\n" ;  
  51.     $headers .= "Content-Type: text/html; charset=UTF-8 \r\n" ;  
  52.     $headers .= "From: Admin <[email protected]>\r\n" ;  
  53.     $body = "<a href=http://www.select2web.com/verify_by_email.php?
  54.                      member_id={$member_id}&member_verify_code={$member_verify_code}>
  55.                      คลิกเพื่อยันยัน</a>" ;  
  56.      
  57.     @mail($to, $subject, $body,$headers) ;  

  58. }  
  59. ?>
คัดลอกไปที่คลิปบอร์ด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

รายละเอียดเครดิต

ประวัติการแบน|Mobile|รูปแบบข้อความล้วน|www.Chayoo.in.th

GMT+8, 2020-7-9 10:46 , Processed in 0.060574 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 R20180101, Rev.59

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้