<body>
<form action=”login.php” method=”post” name=”login”>
username <input type=”text” name=”user” /><br />
password <input type=”password” name=”pass” /><br />
<input type=”submit” value=” Log in ”/>
</form>
<?
$name = $_POST['user'];
$pass = $_POST['pass'];
$host = “localhost”; //ชื่อโฮสต์
$user = “root”; //ชื่อผู้ใช้
$password = “****”; //รหัสผ่าน
$dbname = “test”; //ชื่อฐานข้อมูล
$tbname = “login”; //ชื่อตาราง
$con = mysql_connect ($host,$user,$password);
if(!$con) {
echo (“not connect database”);
} else {
echo (“welcome”);
}
mysql_select_db($dbname);
$sql = “select * from $tbname where username=’$name’ and password=’$pass’ “; //เช็คค่าข้อมูลที่ส่งมาจากฟอร์ม
$result = mysql_db_query($dbname, $sql);
mysql_query(“SET NAMES tis620″);
$num_rows = mysql_num_rows($result);
if($num_rows==1){
echo “ยินดีต้นรับผู้ดูแลระบบ”;
}else {
echo “<BR><FONT COLOR=red>ข้อมูลที่คุณกรอกไม่ถูกต้อง กรุณา Login ใหม่อีกครั้ง</FONT>”;
}
?>
</body>
/*จาก http://teerapuch.wordpress.com/2010/03/23/%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%A3%E0%B8%B0%E0%B8%9A%E0%B8%9A-login-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-phpmysql/ */
การทำระบบ Login โดยใช้ฐานข้อมูล มีหลายคนถามกันเข้ามา โดยวิธีทำนั้นจะมีหลายแบบด้วยกันแล้วแต่ว่าเราจะเขียน แต่ในที่นี้ผมจะเขียนในส่วนที่สามารถนำไปประยุกต์ต่อกันได้ ลองมาดูขั้นตอนการทำ
ขั้นตอนกาทำ
1. ให้เราสร้าง Database ขั้นมาก่อนเพื่อใช้ในการเก็บค่า user และ pass
# phpMyAdmin MySQL-Dump1. ให้เราสร้าง Database ขั้นมาก่อนเพื่อใช้ในการเก็บค่า user และ pass
# 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 ตามข้อความที่เรากำหนด
/*จากเว็บ http://www.webthaidd.com/php/webthaidd_article_73_.html*/
PHP MySQL กับ Login Form
เริ่มต้นด้วยการสร้างตารางชื่อ member
CREATE TABLE `member` (
`UserID` int(3) unsigned zerofill NOT NULL auto_increment,
`Username` varchar(20) NOT NULL,
`Password` varchar(20) NOT NULL,
`Name` varchar(100) NOT NULL,
`Status` enum('ADMIN','USER') NOT NULL default 'USER',
PRIMARY KEY (`UserID`),
UNIQUE KEY `Username` (`Username`)
) ENGINE=MyISAM AUTO_INCREMENT=3 ;
--
-- Dumping data for table `member`
--
INSERT INTO `member` VALUES (001, 'win', 'win123', 'Weerachai Nukitram', 'USER');
INSERT INTO `member` VALUES (002, 'chai', 'chai123', 'Surachai Sirisart', 'ADMIN');
`UserID` int(3) unsigned zerofill NOT NULL auto_increment,
`Username` varchar(20) NOT NULL,
`Password` varchar(20) NOT NULL,
`Name` varchar(100) NOT NULL,
`Status` enum('ADMIN','USER') NOT NULL default 'USER',
PRIMARY KEY (`UserID`),
UNIQUE KEY `Username` (`Username`)
) ENGINE=MyISAM AUTO_INCREMENT=3 ;
--
-- Dumping data for table `member`
--
INSERT INTO `member` VALUES (001, 'win', 'win123', 'Weerachai Nukitram', 'USER');
INSERT INTO `member` VALUES (002, 'chai', 'chai123', 'Surachai Sirisart', 'ADMIN');

เกี่ยวกับตารางจะประกอบด้วย UserID , Username , Password , Name , Status โดยช่อง Status เป็นตัวประบุว่าเป็น ADMIN หรือว่า User
ตังอย่าง Code ทั้งหมด
login.php เป็น Form Login
01.<html>02.<head>03.<title>ThaiCreate.Com Tutorials</title>04.</head>05.<body>06.<form name="form1" method="post" action="check_login.php">07. Login<br>08. <table border="1" style="width: 300px">09. <tbody>10. <tr>11. <td> Username</td>12. <td>13. <input name="txtUsername" type="text" id="txtUsername">14. </td>15. </tr>16. <tr>17. <td> Password</td>18. <td><input name="txtPassword" type="password" id="txtPassword">19. </td>20. </tr>21. </tbody>22. </table>23. <br>24. <input type="submit" name="Submit" value="Login">25.</form>26.</body>27.</html>check_login.php เป็น Check Login
01.<?02. session_start();03. mysql_connect("localhost","root","root");04. mysql_select_db("mydatabase");05. $strSQL = "SELECT * FROM member WHERE Username = '".trim($_POST['txtUsername'])."'06. and Password = '".trim($_POST['txtPassword'])."'";07. $objQuery = mysql_query($strSQL);08. $objResult = mysql_fetch_array($objQuery);09. if(!$objResult)10. {11. echo "Username and Password Incorrect!";12. }13. else14. {15. $_SESSION["UserID"] = $objResult["UserID"];16. $_SESSION["Status"] = $objResult["Status"];17. 18. session_write_close();19. 20. if($objResult["Status"] == "ADMIN")21. {22. header("location:admin_page.php");23. }24. else25. {26. header("location:user_page.php");27. }28. }29. mysql_close();30.?>
ไฟล์นี้จะทำการตรวจสอบ Username และ Password และสถานะของสมาชิกว่าเป็น Admin หรือว่า User ถ้า Admin จะกระโดดไปหน้า admin_page.php และถ้าเป็น User จะกระโดดไปหน้า user_page.php
admin_page.php เป็นหน้าหลักของ Admin
01.<?02. session_start();03. if($_SESSION['UserID'] == "")04. {05. echo "Please Login!";06. exit();07. }08. 09. if($_SESSION['Status'] != "ADMIN")10. {11. echo "This page for Admin only!";12. exit();13. } 14. 15. mysql_connect("localhost","root","root");16. mysql_select_db("mydatabase");17. $strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";18. $objQuery = mysql_query($strSQL);19. $objResult = mysql_fetch_array($objQuery);20.?>21.<html>22.<head>23.<title>ThaiCreate.Com Tutorials</title>24.</head>25.<body>26. Welcome to Admin Page! <br>27. <table border="1" style="width: 300px">28. <tbody>29. <tr>30. <td width="87"> Username</td>31. <td width="197"><?=$objResult["Username"];?>32. </td>33. </tr>34. <tr>35. <td> Name</td>36. <td><?=$objResult["Name"];?></td>37. </tr>38. </tbody>39. </table>40. <br>41. <a href="edit_profile.php">Edit</a><br>42. <br>43. <a href="logout.php">Logout</a>44.</body>45.</html>
หน้าหลักของ Admin จะมีการตรวจสอบ Session ว่าผ่านการ Login มาหรือไม่ และตรวจสอบสถานะด้วยว่าเป็น Admin หรือไม่
user_page.php เป็นหน้าหลักของ User
01.<?02. session_start();03. if($_SESSION['UserID'] == "")04. {05. echo "Please Login!";06. exit();07. }08. 09. if($_SESSION['Status'] != "USER")10. {11. echo "This page for User only!";12. exit();13. } 14. 15. mysql_connect("localhost","root","root");16. mysql_select_db("mydatabase");17. $strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";18. $objQuery = mysql_query($strSQL);19. $objResult = mysql_fetch_array($objQuery);20.?>21.<html>22.<head>23.<title>ThaiCreate.Com Tutorials</title>24.</head>25.<body>26. Welcome to User Page! <br>27. <table border="1" style="width: 300px">28. <tbody>29. <tr>30. <td width="87"> Username</td>31. <td width="197"><?=$objResult["Username"];?>32. </td>33. </tr>34. <tr>35. <td> Name</td>36. <td><?=$objResult["Name"];?></td>37. </tr>38. </tbody>39. </table>40. <br>41. <a href="edit_profile.php">Edit</a><br>42. <br>43. <a href="logout.php">Logout</a>44.</body>45.</html>
หน้าหลักของ User จะมีการตรวจสอบ Session ว่าผ่านการ Login มาหรือไม่ และตรวจสอบสถานะด้วยว่าเป็น User หรือไม่
edit_profile.php เป็นหน้าสำหนับแก้ไขข้อมูชส่วนตัวของ User และ Admin
01.<?02. session_start();03. if($_SESSION['UserID'] == "")04. {05. echo "Please Login!";06. exit();07. }08. 09. mysql_connect("localhost","root","root");10. mysql_select_db("mydatabase");11. $strSQL = "SELECT * FROM member WHERE UserID = '".$_SESSION['UserID']."' ";12. $objQuery = mysql_query($strSQL);13. $objResult = mysql_fetch_array($objQuery);14.?>15.<html>16.<head>17.<title>ThaiCreate.Com Tutorials</title>18.<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>19.<body>20.<form name="form1" method="post" action="save_profile.php">21. Edit Profile! <br>22. <table width="400" border="1" style="width: 400px">23. <tbody>24. <tr>25. <td width="125"> UserID</td>26. <td width="180">27. <?=$objResult["UserID"];?>28. </td>29. </tr>30. <tr>31. <td> Username</td>32. <td>33. <?=$objResult["Username"];?>34. </td>35. </tr>36. <tr>37. <td> Password</td>38. <td><input name="txtPassword" type="password" id="txtPassword" value="<?=$objResult["Password"];?>">39. </td>40. </tr>41. <tr>42. <td> Confirm Password</td>43. <td><input name="txtConPassword" type="password" id="txtConPassword" value="<?=$objResult["Password"];?>">44. </td>45. </tr>46. <tr>47. <td> Name</td>48. <td><input name="txtName" type="text" id="txtName" value="<?=$objResult["Name"];?>"></td>49. </tr>50. <tr>51. <td> Status</td>52. <td>53. <?=$objResult["Status"];?>54. </td>55. </tr>56. </tbody>57. </table>58. <br>59. <input type="submit" name="Submit" value="Save">60.</form>61.</body>62.</html>
save_profile.php เป็นหน้าสำหนับบันทึกแก้ไขข้อมูลส่วนตัวของ User และ Admin
01.<?02. session_start();03. if($_SESSION['UserID'] == "")04. {05. echo "Please Login!";06. exit();07. }08. mysql_connect("localhost","root","root");09. mysql_select_db("mydatabase");10. 11. if($_POST["txtPassword"] != $_POST["txtConPassword"])12. {13. echo "Password not Match!";14. exit();15. }16. $strSQL = "UPDATE member SET Username = '".trim($_POST['txtPassword'])."'17. ,Name = '".trim($_POST['txtName'])."' WHERE UserID = '".$_SESSION["UserID"]."' ";18. $objQuery = mysql_query($strSQL);19. 20. echo "Save Completed!<br>"; 21. 22. if($_SESSION["Status"] == "ADMIN")23. {24. echo "<br> Go to <a href='admin_page.php'>Admin page</a>";25. }26. else27. {28. echo "<br> Go to <a href='user_page.php'>User page</a>";29. }30. 31. mysql_close();32.?>
สำหรับหน้านี้เมื่อทีการบันทึกเสร็จสิ้นแล้ว โปรแกรมจะตรวจสอบว่าเป็น User หรือว่า Admin ถ้า Admin จะชี้ลิ้งค์ไปหน้า admin_page.php และถ้าเป็น User จะชี้ลิ้งค์ไปหน้า user_page.php
logout.php เป็นหน้า Logout หรือ Clear Session
1.<?2. session_start();3. session_destroy();4. header("location:login.php");5.?>/* จากเว็บ http://www.thaicreate.com/community/php-mysql-login-form-check-username-password.html*/
ขอบคุณทุกเว็บ...
