Un title page

การทำระบบ Login โดยใช้ฐานข้อมูล มีหลายคนถามกันเข้ามา โดยวิธีทำนั้นจะมีหลายแบบด้วยกันแล้วแต่ว่าเราจะเขียน แต่ในที่นี้ผมจะเขียนในส่วนที่สามารถนำไปประยุกต์ต่อกันได้ ลองมาดูขั้นตอนการทำ

ขั้นตอนกาทำ
1. ให้เราสร้าง Database ขั้นมาก่อนเพื่อใช้ในการเก็บค่า user และ pass

# phpMyAdmin MySQL-Dump
# http://phpwizard.net/phpMyAdmin/
#
# Host: localhost Database : test
# --------------------------------------------------------

#
# Table structure for table 'user_login'
#

CREATE TABLE user_login (
id int(11) NOT NULL auto_increment,
user_log char(15) NOT NULL,
pass_log char(15) NOT NULL,
PRIMARY KEY (id)
);

#
# Dumping data for table 'user_login'
#

INSERT INTO user_login VALUES ( '1', 'guest', '1234');

2. หลังจากนั้นให้เราสร้างฟอร์ม Login ในที่นี้ผมใช้ชื่อไฟล์ว่า form_login.php (* ถ้าฟอร์มที่คุณสร้างนั้นไม่ใช้ภาษา php สามารถ save เป็นไฟล์ HTML ได้)

ใครงงดูโค้ดที่นี่ form_login.php

<?
session_start();
?>
<html>
<head>
<title>webthaidd.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
</head>
<body bgcolor="#FFFFFF">
<form name="form1" method="post" action="check.php">
User :
<input type="text" name="username_log"> //ชื่อตัวแปลที่ใช้ในการส่งค่า
<br>
Pass :
<input type="password" name="password_log"> //ชื่อตัวแปลที่ใช้ในการส่งค่า

<? echo $code_error;?>
<br>
<input type="submit" name="Submit" value="Login">
</form>
</body>
</html>

3. ทำการเขียนโค้ดที่ไฟล์ check.php เพื่อตรวจสอบการ Login ของผู้ใช้

<?
session_start();
$hostname = "localhost"; //ชื่อโฮสต์
$user = ""; //ชื่อผู้ใช้
$password = ""; //รหัสผ่าน
$dbname = "test"; //ชื่อฐานข้อมูล
$tblname = "user_login"; //ชื่อตาราง
// เริ่มติดต่อฐานข้อมูล
mysql_connect($hostname, $user, $password) or die("ติดต่อฐานข้อมูลไม่ได้");

// เลือกฐานข้อมูล
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");

// คำสั่ง SQL และสั่งให้ทำงาน
$sql = "select * from $tblname where user_log='$username_log' and pass_log='$password_log'"; //เช็คค่าข้อมูลที่ส่งมาจากฟอร์ม
$dbquery = mysql_db_query($dbname, $sql);

// หาจำนวนเรกคอร์ดข้อมูล
$num_rows = mysql_num_rows($dbquery);
if($num_rows==1){
header("location:http://www.webthaidd.com"); //ไปไปตามหน้าที่คุณต้องการ
}else {
$code_error="<BR><FONT COLOR=\"red\">ข้อมูลที่คุณกรอกไม่ถูกต้อง กรุณา Login ใหม่อีกครั้ง</FONT>";
session_register("code_error");
header("location: form_login.php"); //ไม่ถูกต้องให้กับไปหน้าเดิม
}
?>

4. หลังจากนั้นลองทดสอบดู
user=guest
pass=1234


- ถ้าถูกต้องจะเข้าไปที่เว็บ webthaidd หรือหน้าที่เรากำหนดนั้นๆ
- ถ้าผิดจะแจ้ง error ตามข้อความที่เรากำหนด