ในบทความนี้จะพาทุกท่าน workshop การสร้างฟอร์มสมัครสมาชิกและบันทึกลงใน database ที่เราได้เตรียมไว้นะครับ *ที่สำคัญเราจะเก็บ password ในรูปแบบการเข้ารหัส MD5 เพื่อเพิ่มความปลอดภัยให้กับระบบเรามากขึ้น
(PHP md5() เป็น Function แบบ Hashing Algorithm คือการเข้ารหัสข้อมูลที่มีความยาว 128 bits คือไม่ว่าข้อความจะยาวหรือสั้นเพียงใด รหัสทมี่ถูกแปลกออกมาจะมีจำนวน 32 ตัวอักษรเท่ากันหมด และในทางกลับกันคือ md5 ไม่สามารถจะทำการแปลงกลับมาเป็นข้อความต้นฉบับได้ เฉพาะฉะนั้นจะเป็นการเข้ารหัสแบบ One-Way นิยมใช้ในการจัดเก็บรหัสผ่านของ User โดยใช้การเก็บรหัสที่ถูกแปลงแล้วลงในฐานข้อมูล และถ้าหากต้องการเปรียบเทียบ ก็จะทำการนำข้อความที่ต้องการเปรียบเทียบมาเข้ารหัสด้วย md5 และนำรหัส 2 ตัวมาเปรียบเทียบกันครับ thaicreate.com)
เราสามารถใช้โปรแกรม Dreamweaver ในการช่วยออกแบบฟอร์มได้นะครับ จะทำให้เราสามารถประหยัดเวลาได้มากขึ้นโดยจะต้องมีฟิลด์รับข้อมูลดังนี้
- ชื่อ (member_name)
- สกุล (member_lname)
- username
- password
*ส่วน member_id กับ date_add ไม่ต้องมีฟิลด์กรอกข้อมูลนะครับ เพราะ member_id เรากำหนดให้เป็น primary key และ auto incremnet ซึ่งมันสามารถลำดับให้เราอัตโนมัติ และ date_add เรากำหนดให้เป็นรูปแบบ timestamp และ CURRENT_TIMESTAMP ซึ่งจะเป็นฟิลด์ที่ใช้เก็บวันเดือนปีและเวลาตอนสมัครสมาชิก โดยจะเลือกใช้วันและเวลาปัจจุบันในเครื่องของเรา เนื่องจากเราจำลองให้เครื่องของเราเป็น server นั้นเอง
code หน้าฟอร์ม จะใช้ตารางเข้ามาช่วยจัดรูปแบบให้ตารางของเราดูเป็นระเบียบมากขึ้น และมีการเพิ่ม code required=”required” เพื่อกำหนดให้ต้องกรอกข้อมูลในฟิลด์นี้ซึ่งไม่สามารถปล่อยว่างได้นั้นเอง
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>สมัครสมาชิก</title> </head> <body> <form id="formRegister" name="formRegister" method="post" action="registersave.php"> <p><br /> <br /> </p> <table width="700" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="40" colspan="2" align="center" bgcolor="#D6D5D6"><b>สมัครสมาชิก</b></td> </tr> <tr> <td align="right" bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> <tr> <td width="117" align="right" bgcolor="#EBEBEB">ชื่อ :</td> <td width="583" bgcolor="#EBEBEB"><input name="member_name" type="text" id="member_name" size="30" placeholder="ภาษาไทยเท่านั้น" required="required"/></td> </tr> <tr> <td align="right" bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> <tr> <td align="right" bgcolor="#EBEBEB">สกุล <label> :</label></td> <td bgcolor="#EBEBEB"><input name="member_lname" type="text" id="member_lname" size="30" placeholder="ภาษาไทยเท่านั้น" required="required"/></td> </tr> <tr> <td align="right" bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> <tr> <td align="right" bgcolor="#EBEBEB">Username :</td> <td bgcolor="#EBEBEB"><input type="text" name="username" id="username" placeholder="ตัวเลขหรือภาษาอังกฤษเท่านั้น" required="required"/></td> </tr> <tr> <td align="right" bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> <tr> <td align="right" bgcolor="#EBEBEB">Password : <label> </label></td> <td bgcolor="#EBEBEB"><input type="password" name="password" id="password" placeholder="ตัวเลขหรือภาษาอังกฤษเท่านั้น" required="required"/></td> </tr> <tr> <td align="right" bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> <tr> <td align="right" bgcolor="#EBEBEB">email : </td> <td bgcolor="#EBEBEB"><input name="email" type="email" id="email" size="30" placeholder="ตัวอย่าง pisit.bow@gmail.com" required="required"/></td> </tr> <tr> <td bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> <tr> <td bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> <input type="reset" name="Reset" id="button" value="Reset" /> <input type="submit" name="Register" id="Register" value="register" /></td> </tr> <tr> <td bgcolor="#EBEBEB"> </td> <td bgcolor="#EBEBEB"> </td> </tr> </table> <p><br /> <br /> <br /> <br /> </p> <p> </p> <p> </p> </form> </body> </html> |
ไฟล์เชื่อมต่อกับ database ตั้งชื่อไฟล์ connection.php และเก็บไว็ในโฟลเดอร์เดียวกันการใช้งานจะให้ไฟล์ registersave.php include หรือเรียกใช้งานไฟล์นี้เพื่อเชื่อมต่อกับ database และบันทึกข้อมูลลง database ต่อไป
1 2 3 4 5 6 |
<?php $con= mysqli_connect("localhost","root","123","myweb") or die("Error: " . mysqli_error($con)); mysqli_query($con, "SET NAMES 'utf8' "); ?> |
ไฟล์ php ที่จะบันทึกข้อมูล (INSERT INTO) ที่กรอกในฟอร์มลงใน database ให้ตั้งชื่อไฟล์ว่า registersave.php นะครับ เพราะเราให้ฟอร์มสมัครสมาชิกส่งค่า (action) มาที่ไฟล์นี้ หรือให้ทำงานต่อที่ไฟล์นี้ และไฟล์ registersave.php ก็จะรับค่าเพื่อนำไปเก็บใน database ต่อไป
*สังเกตบรรทัดที่ 7 เราจะเพิ่ม code ให้มีการรับค่าจากฟอร์มแล้วมาแปลงเป็นรหัสแบบ MD5 และเก็บลง database
$password = MD5($_POST[“password”]);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php include('connection.php'); //ไฟล์เชื่อมต่อกับ database ที่เราได้สร้างไว้ก่อนหน้าน้ี //สร้างตัวแปรเก็บค่าที่รับมาจากฟอร์ม $member_name = $_POST["member_name"]; $member_lname =$_POST["member_lname"]; $username =$_POST["username"]; $password = MD5($_POST["password"]); $email =$_POST["email"]; //เพิ่มเข้าไปในฐานข้อมูล $sql = "INSERT INTO tb_member(member_name, member_lname, username, password, email) VALUES('$member_name', '$member_lname', '$username', '$password', '$email')"; $result = mysqli_query($con, $sql) or die ("Error in query: $sql " . mysqli_error()); //ปิดการเชื่อมต่อ database mysqli_close($con); //จาวาสคริปแสดงข้อความเมื่อบันทึกเสร็จและกระโดดกลับไปหน้าฟอร์ม if($result){ echo "<script type='text/javascript'>"; echo "alert('Register Succesfuly');"; echo "window.location = 'register_form.php'; "; echo "</script>"; } else{ echo "<script type='text/javascript'>"; echo "alert('Error back to register again');"; echo "</script>"; } ?> |
เมื่อทำเสร็จแล้วให้ทดลอง run โดยเรียกผ่าน http://localhost/devbanban/register_form.php และกรอกข้อมูลในฟอร์มดูนะครับจะมีข้อมูลที่เรากรอกข้อมูลเข้าไปอยู่ใน database ของเราและให้สังเกตตรงฟิลด์ password ก็จะเห็นการเข้ารหัส MD5 ให้เรานะครับ เป็นการเพิ่มความปลอดภัยของการเข้ารหัสอีกแบบนึง
*ตัวอย่างฟอร์มที่เราได้สร้างขึ้นและทดลองกรอกข้อมูลเข้าไปในฟอร์ม
*ในช่อง password ผมทดลองกรอกข้อมูลคือ pppp ผลที่ได้คือ 2d7acadf10224ffdabeab505970a8934