สร้างไฟล์ connect.php เอาไว้ติดต่อฐานข้อมูล เวลาใช้ให้ include file นี้
สร้างไฟล์หน้า signup.php
สร้างไฟล์หน้า confirm.php
เท่านี้ก็จบในส่วนของการสมัครและยืนยันแล้ว บทต่อไปต่อเรื่อง login และ ลืมรหัสผ่าน
- <?php
- @session_start();
- $dbname="databasename";
- $dbhost="localhost";
- $dbuser="userdb";
- $dbpass="userpass";
- @$Conn=mysql_connect("$dbhost","$dbuser","$dbpass") or die("Not Connect");
- mysql_select_db("$dbname",$Conn);
- $charset = "SET NAMES 'utf8'";
- mysql_query($charset);
- mysql_query("SET Character_set_results=utf8");
- mysql_query("SET Character_set_client=utf8");
- mysql_query("SET Character_set_cennection=utf8");
- mysql_query("SET Collation_connection=utf8_bin");
- mysql_query("SET Character_database=utf8_thai_ci");
- mysql_query("SET Character_server=utf8_thai_ci");
- ?>
แก้ไข dbname ชื่อฐานข้อมูล / dbuser คือ user ของ database / dbpass รหัสผ่านฐานข้อมูล
แก้ตรงสีน้ำเงินในเครื่องหมาย " "
- <html lang="th">
- <head>
- <meta charset="UTF-8">
- </head>
- <form action="signupresult.php" method="post">
- E-mail : <input type="email" name="memberemail" required><br>
- Password : <input type="password" name="memeberpass" required><br>
- Name : <input type="text" name="membername" required><br>
- <img src='showcaptcha.php?img=<?php echo time();?>'> <input type="text" name="thaicode"><br>
- <input type="submit" value="สมัคร">
- </form>
ตรงนี้จะใช้รูปแบบ html5 แล้ว สังเกตุ input type=email
ให้ทำการดาวน์โหลด captcha ไปด้วย แล้ววางใน folder เดียวกัน เพื่อจะเรียกมาเช็คค่าได้
* ไม่อ่านตรงนี้ ระวัง งง กันเป็นแถว ทำไมทำไม่ได้ซักที
สร้างไฟล์หน้า signupresult.php
- <?php
- include_once("connect.php");
- $memberemail=$_POST['memberemail'];
- $memberpass=md5($_POST['memberpass']); // เข้ารหัส md5 ให้ตัวแปรรหัสผ่าน
- $membername=$_POST['membername'];
- $thaicaptcha_md5=$_SESSION['thaicaptcha_md5'];
- $thaicode=$_POST['thaicode'];
- if($thaicaptcha_md5!=md5($thaicode)) {
- echo "โค้ด Captcha ไม่ถูกต้อง <a href=signup.php>แก้ไข</a>"
- } else {
- $confirmcode=rand(10000000,99999999);
- $emailadmin="test@yourdomain"; // เมลคนส่ง
- $sendto=$memberemail;
- $mailheaders = "From: ".$emailadmin."\n";
- $mailheaders .= "Content-type: text/html;charset=UTF-8\n";
- $mailheaders .= "X-Priority: 1\n";
- $mailheaders .= "Importance: High\n";
- $mailheaders .= "X-MSMail-Priority: High\n";
- $mailheaders .= "X-Mailer: Mailler With PHP!\n";
- $mailsubject = "ตอบรับสมัครสมาชิก";
- $body = "<html>
- <body>";
- $body .= "<a href=http://www.yourweb.com/confirm.php?memberemail=".$memberemail."&confirmcode=".$confirmcode.">คลิ้กยืนยันสมัคร</a>";
- $body .= "</body>";
- $body .= "</html>";
- mail($sendto, $mailsubject, $body, $mailheaders);
- mysql_query("insert into member set
- memberemail='$memberemail' ,
- memberpass='$memberpass' ,
- membername='$membername' ,
- confirmcode='$confirmcode'
- ");
- echo"success";
- }
- ?>
รับค่าตัวแปรจากหน้า signup.php จากนั้นตรวจสอบ captcha ถ้าถูกให้ส่งเมล และบันทึกลงฐานข้อมูล
การส่งเมลยืนยันจะส่งโค้ดที่ต้องยืนยัน email และ confirmcode ทั้ง 2 ตัวจะต้องมีในฐานข้อมูลตรงกันถึงจะอัพเดตว่า ยืนยันสมัครแล้ว
อย่าลืมแก้ email ผู้ส่ง และ Link ที่ให้คลิ้กยืนยัน
- <?php
- include_once("connect.php");
- $memberemail=$_GET['memberemail'];
- $confirmcode=$_GET['confirmcode'];
- $rs=mysql_query("select * from member where memberemail='$memberemail' and confirmcode='$confirmcode' ");
- $row=mysql_fetch_array($rs);
- $count=mysql_num_rows($rs);
- if(!empty($count)) {
- mysql_query("update member set confirm='y' where memberemail='$memberemail' and confirmcode='$confirmcode' ");
- echo "ยืนยันแล้ว <a href=login.php>Login คลิ้กเลย</a>";
- } else {
- echo "email หรือ confirm code ไม่ถูกต้อง";
- }
- ?>
ไฟล์ confirm ทำการเช็ค email และ confirm code ที่กดจากอีเมลถูกต้องหรือไม่ ถ้าถูกให้อัพเดต field confirm ให้เป็น y
0 ความคิดเห็น:
แสดงความคิดเห็น