Home » » Tạo Trang Login Bằng PHP - MySQL Dùng Session Và Cookie

Tạo Trang Login Bằng PHP - MySQL Dùng Session Và Cookie

Written By 1 on Thứ Ba, 3 tháng 7, 2012 | 17:54

Vấn đề là ta muốn tạo khung đăng nhập có chức năng ghi nhớ (remember), khi check vào thì lần truy cập kế đến  trình duyệt sẽ đưa ta tới trang tài khoản đã đăng nhập sẵn.
Các bước thực hiện:
1. Tạo CSDL  "login" và bảng DL "user" bằng MySQL , table "user" có các cột sau: ID là 1, username là admin, password là 123456 ( như bài phái trên ):
Hình minh họa:

2. Tạo file "check_login.php" , file này đưa ra bảng nhập liệu : username và password, mục "Remember", nút "Login" , "Cancel" . Chức năng kiểm tra việc nhập liệu, nế nhập đầy đủ  nó so sánh số liệu với CSDL, nếu khớp với CSDL thi chuyển đến trang thông báo  "confirm.php", nội dung trang "check_login,php" như sau :


<?php
session_start();
$_SESSION['db_is_logged_in'] = false;
$remember=false;
if(isset($_POST['ok'])){
  if(($_POST['username'] == NULL)&&($_POST['password'] == NULL)) {  
//echo "Ban khong nhap vao Username va Password " ."<br>";
 header("location:check_login.php"); 
  } else if($_POST['username'] == NULL){  
  // echo " Ban chua nhap Usernam " ."<br>";
    header("location:check_login.php"); 
  } else if($_POST['password'] == NULL){  
         //echo " Ban chua nhap Password" ."<br>";
  header("location:check_login.php"); 
                   if (isset($_POST['remember'])) { 
                               setcookie('NhapTen', $_SESSION['username'], time()+60*60*24*100, "/");
              $_COOKIE['NhapTen'];
                               setcookie('NhapMK', $_SESSION['passwork'], time()+60*60*24*100, "/");
               $_COOKIE['NhapMK'];
                 }            

                   } else {
                   $u=$_POST['username'];
$p=$_POST['password'];     
  $conn=mysql_connect("127.0.0.1","root","") or die("can't connect this database"); 
  mysql_select_db("login",$conn);
$sql="select * from user where username='".$u."' and password='".$p."'";
$query=mysql_query($sql); 
if(mysql_num_rows($query)==0) {
   //echo " Ban nhap usernae va password khong dung " ."<br>";
header("location:check_login.php");    
} else {      
              $row=mysql_fetch_array($query);      
      $_SESSION['db_is_logged_in'] = true;  
      $_SESSION['username'] = $row["username"];
      $_SESSION['id'] = $row["ID"]; 
      $_SESSION['password'] = $row["password"];
    if (isset($_POST['remember'])) { 
$_SESSION['remember']=true;
setcookie("remember", $_SESSION['remember'],time()+60*60*24*100);
  $_COOKIE["remember"];
                          setcookie("NhapTen", $_SESSION['username'], time()+60*60*24*100, "/");
  $_COOKIE["NhapTen"];
  setcookie("NhapMK", $_SESSION['password'], time()+60*60*24*100, "/");
$_COOKIE["NhapMK"];    
}
header("location:confirm.php"); // kiem tra dung, khong check
exit;
     }
    }
} else if(isset($_COOKIE["remember"])) {
header("location:management.php");
}

?>
<html>
<head>
</head>
<body>
<form action='' method='POST'>
Username: <input type='text' name='username' value='NhapTen' /> <br />
Password: <input type='password' name='password' value ='NhapMK'  /> <br />
 <input type="checkbox" name="remember" /> Ghi nhớ <br/>
<input type='submit' name='ok' value='Login' />
<input type="reset" name = 'cancel' value = 'Cancel' /> 
</form>
</body> 
</html



3. Tạo file "confirm.php", có nhiệm vụ thông báo việc đăng nhập thành công, chứa link đưa đến trang "management.php, nội dung file"confirm.php" như sau:

<html>
<head> 
</head> 
<body> 
Dang Nhap Thanh Cong
<br/>
Click : <a href="management.php"> Quan ly tai khoan </a>
</body> 
</html>

4. Tạo file "management.php", fiel này có nhiệm vụ : chứa thông tin tài khoản, link "loguot", nội dung file như sau:


<?php
session_start();
echo" TRANG QUAN LY TAI KHOAN <br/>";
if( ($_SESSION['db_is_logged_in'] == true)||(isset($_COOKIE['NhapMK'])))
echo "Ten cua ban la:<b>".$_SESSION["username"]."</br>";
if(isset($_COOKIE["remember"])){
echo " Ban da  check  vao nut Remember " . "</br>" ;
echo " De thoat khoi tai khoan chon nut Unremember " . "<br>";
} else {
echo " Ban khong co Check Remember " . "</br>" ;
echo " De thoat khoi tai khan hay chon nut Loguot hay Unremember "  . "<br>" ;
}
?>
<html>
<head> 
</head> 
<body>
<br />
<br/>
Click : <a href="remove.php">Unremember </a>
<br> </br>
Clich: <a href="logout.php">  Logout </a>
<br> </br>
</body> 
</html>


5. Tạo file "remove.php", file này thực hiện chứ năng xóa "session" ,"cookie", khi ta đăng nhập mà có "check" vào ô "Ghi nhớ" ( Remember) ,thoát khổi tài khoản và trả về trang "check_login.php", nội dung file :


<?php
session_start();
$_POST['remember']=false;
setcookie("remember",$_POST['remember'],time()- 60*60*24*100);
setcookie("NhapTen",$_SESSION['username'],time()-60*60*24*100);
setcookie("NhapMK",$_SESSION['password'],time()-60*60*24*100);
header("location:check_login.php");
exit
?>


6. Tạo file "logout.php", file này có chức năng "logout", trả về trang "check_login.php" khi ta đăng nhập mà không chọn chức năng ghi nhớ, nội dung file :


<?php
session_start();
if (isset($_SESSION['db_is_logged_in'])) {
unset($_SESSION['db_is_logged_in']);
}
// trở về trang login
header('Location: check_login.php');
?>


7. Demo:
Hình minh họa trang "check_login.php":

Hình minh họa trang "confirm.php":

Hình minh họa trang"managment.php"(không check ):

Hình minh họa trang"managment.php" (có check):




0 nhận xét:

Đăng nhận xét