<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.
else
14.
{
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.
else
25.
{
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.
else
27.
{
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*/
ขอบคุณทุกเว็บ...