Thứ Tư, 4 tháng 7, 2012

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

Posted by Unknown Thứ Tư, tháng 7 04, 2012, under |

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):




Tạo Trang Login Đơn Giản Bằng PHP - MySSQL

Posted by Unknown Thứ Tư, tháng 7 04, 2012, under | No comments

1. Tạo CSDL trong MySQL:

mysql>create database project;
mysql>use project; 
mysql>create table user(
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password CHAR(50) NOT NULL,
level CHAR(1) NOT NULL,
PRIMARY KEY(id)); 
mysql>insert into user(id,username,password,level) values (1,'admin','123456',2);

2. Tạo file "login.html" có nội dung như sau:
<html>
<head>
</head>
<body>
<form action='login.php' method='GET'>
Username: <input type='text' name='username' size='25' /><br />
Password: <input type='password' name='password' size='25' /><br />
<input type='submit' name='ok' value='Dang Nhap' />
</form>
</body>
</html>
3.Tạo file "login.php" có nội dung như sau:

<html>
<head>
</head> 
<body> 
<?phpif(isset($_GET['ok'])){$u=$p=""; 
if($_GET['username'] == NULL) { 
echo "Ban Chua Nhap UserName <br/>"; 
} else {
$u=$_GET['username'];

if($_GET['password'] == NULL) {
echo "Ban Chua Nhap Password <br />"; 
} else {
$p=$_GET['password']; 

if($u && $p) {
$conn=mysql_connect("127.0.0.1","root","") or die("can't connect this database");  mysql_select_db("project",$conn);
$sql="select * from user where username='".$u."' and password='".$p."'"; $query=mysql_query($sql); 
if(mysql_num_rows($query) == 0) { // Nhap sai quay lai trang login header("location:login.html"); 
} else { 
$row=mysql_fetch_array($query); 
session_start(); $_SESSION['userid'] = $row["id"]; 
$_SESSION['level'] = $row["level"]; 
header("location:successful.html"); 



?> 
</body> 
</html>
4. Tạo file "successful.html" như sau:

<html>
<head> 
</head> 
<body> 
Login Successful 
</body> 
</html>
5. Chạy Demo để kiểm tra kết quả :
Hình minh họa tràn "login" file login.html :

Hình minh họa không nhập DL:

Hình minh họa nhập thiếu(password) :

Hình minh họa nhập sai ( password ) :


Hình minh họa nhập đúng :



Xem Nhiều

Bài đăng phổ biến

Lưu trữ blog

Blog Archive