Từng bước tạo trang đăng nhập (Login page) bằng PHP

27/07/2012

tạo trang đăng nhập  bằng PHP

Nếu bạn cần 1 trang đăng nhập cho web của bạn thì bài viết này sẽ rất giúp ích cho bạn, tuy chỉ là một trang đăng nhập đơn giản, nhưng nó chứa tất cả những kiến thức và kỹ năng cơ bản của một trang đăng nhập. Nào hãy cùng mình đi từng bước nhá.

Bước 1 : Tạo database và table

Trong ví dụ này chúng ta sẽ đặt tên database là ” test “ và tạo một table là “members”.  Nếu bạn nào chưa biết cách tạo database và table thì có thể tham khảo bài viết Tạo database, table và quản lý cơ sở dữ liệu MySQL bằng phpMyAdmin

db_members

CREATE TABLE `members` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL default '',
`password` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
--
-- Dumping data for table `members`
--
INSERT INTO `members` VALUES (1, 'john', '1234');

Bước 2 : Tạo file ” main_login.php “

File đầu tiên mà chúng ta cần tạo là main_login.php, đây là trang hiển thị form đăng nhập như hình dưới đây:

 member_login

Các bạn dán (paste) đoạn code sau vào file này:

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

Bước 3 : Tạo file ” checklogin.php “

File này được dùng để kiểm tra xem người dùng sau khi nhập username và password xong có đúng hay không, và nó cũng kiểm tra xem user đó đã tồn tại hay chưa, nếu người dùng nhập đúng tài khoản của họ thì nó sẽ tự động chuyển sang trang thông báo “login_success.php” và ngược lại nó sẽ thông báo lỗi đăng nhập
Các bạn dán đoạn code sau vào file checklogin.php :

<?php

$host="localhost"; // luôn luôn là localhost
$username="root"; // user của mysql
$password=""; // Mysql password
$db_name="test"; // tên database
$tbl_name="members"; // tên table

// kết nối cơ sở dữ liệu
mysql_connect("$host", "$username", "$password")or die("Không thể kết nối");
mysql_select_db("$db_name")or die("cannot select DB");

// username và password được gửi từ form đăng nhập
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// Xử lý để tránh MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
// nếu tài khoản trùng khớp thì sẽ trả về giá trị 1 cho biến $count
if($count==1){

// Lúc này nó sẽ tự động gửi đến trang thông báo đăng nhập thành công
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Sai tên đăng nhập hoặc mật khẩu";
}
?>

Bước 4 : Tạo file ” login_success.php “

Như mình đã nói ở bước 3 , file này sẽ xuất hiện dòng thông báo đăng  nhập thành công.
Các bạn dán đoạn code sau :

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
<html>
<body>
Đăng nhập thành công !
</body>
</html>

Bước 5 : Tạo file ” Logout.php “

File này được dùng để thoát tài khoản , các bạn dán đoạn code sau, đoạn code này sẽ xóa bỏ hết các session

<?php
session_start();
session_destroy();
?>

Xin chúc mừng các bạn đã hoàn thành xong trang đăng nhập, nếu có gì chưa hiểu thì các bạn cứ để lại comment, mình sẽ giúp các bạn hoàn thành.

Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • Tuấn

    Thanks !

  • giang

    minh lam theo ban thi bi loi dòng 24 cua file checklogin.php ban co theo giai thich vi minh sai cho nao k?

    • Bạn có thể copy đoạn thông báo lỗi cho mình được không ? không thì bạn thử chèn thêm đoạn này : session_start(); ngay trước dòng đó xem sao nhé.

      • Quỳnh

        không được bạn ơi,

  • AT Nguyễn

    Notice: Use of undefined constant myusername – assumed ‘myusername’ in E:hoc ky 6web8.5rootlogin_success.php on line 3

    Deprecated: Function session_is_registered() is deprecated in E:hoc ky 6web8.5rootlogin_success.php on line 3

    mình bị lỗi thế này đây… bạn kiểm tra lại giúp nha!ở trang login_success.php ah….

  • Lưu Nguyễn

    mình copy code của bạn mà sao lại sai nhĩ, khi đăng nhập với username là john và pass là 1234 mà sao lại báo sai. link ảnh: http://nw2.upanh.com/b1.s35.d1/30654cd238963a51a115b13aca455e43_54744792.loidangnhap.jpg