Thứ Năm, 29 tháng 9, 2016

Bài 6. PHP căn bản - Sử dụng Session và Cookie trong PHP

Session và Cookie nó được hiểu là một phiên làm việc của một sự kiện nào đó,  Dễ thấy khi bạn vào facebook hay gmail, điều đầu tiên để sử dụng được các dịch vụ này là bạn phải đăng nhập, sau khi đăng nhập thì tài khoản của bạn được cấp gán cho một phiên làm việc nó giới hạn tài khoản của bạn sẽ sử dụng dịch vụ trong bao lâu. 

Cụ thể ở đây là sau khi bạn đăng nhập hệ thống sẽ lưu lại thông tin cơ bản của bạn ví dụ như id của bạn, tên bạn, email của bạn... vào trong SESSION ( Có thể là Session hoặc Cookie). Từ đó để hệ thống kiểm tra xem bạn đã đăng nhập hay chưa và giới hạn quyền của bạn, ví dụ bạn đăng nhập rồi thì mới có thể mua hàng chẳng hạn ...

Thời gian sống của mỗi phiên làm việc này là khác nhau, do người lập trình website quy định, thường thì Session sẽ tồn tại trong 15 phút nếu bạn không thao tác gì với website trong 15 phút thì session sẽ bị huỷ
 1. Về Cookie
Cũng giống như session, cookie được khởi tạo để lưu trữ một phiên làm việc nào đó, nhưng với cookie thì nó được lưu trữ trên máy người dùng, thông tin lưu trên cookia dễ bị tìm thấy

- Khởi tạo 1 cookie với cú pháp : 

setcookie(tên cookie, giá trị, thời gian sống);
1
2
3
4
5
6
7
File set_cookie.php :
 
<?php
     setcookie("name","Tèo",time()+1800);
     // Set cookie tên name, giá trị = Tèo, thời gian tồn tại 30 phút
     header("location:view_cookie.php");
?>
- Tiếp tục tạo trang view_cookie.php để lấy cookie mà chúng ta vừa khởi tạo ở file set_cookie.php, chúng ta lấy cookie thông qua biến $_COOKIE[ ' tên cookie ' ];
1
2
3
4
5
6
7
8
File view_cookie.php :
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
     echo "Ten ban la : ".$_COOKIE['name']."<br />";
     // Ten ban la : Tèo
     echo "<a href='del_cookie.php'>Huỷ cookie</a>";
?>
- Để huỷ cookie chúng ta sử dụng cú pháp : 

   setcookie(tên cookie, giá trị, time() - thời gian sống); 

   Với time() là thời gian hiện tại trừ đi thời gian sống mà lúc chúng ta set cookie

1
2
3
4
5
6
File del_cookie.php :
 
<?php
     setcookie("name","Tèo",time()-1800);
     echo "Đã xoá cookie!";
?>

2. Về session

Session được lưu trữ hoàn toàn trên server, do vậy tính bảo mật rất cao, các website hiện này thường dùng session để lưu thông tin của người dùng khi họ đăng nhập

- Khởi tạo session : $_SESSION[ tên session] = " Giá trị ";

Trước khi dùng session bạn phải gọi nó trước bằng cú pháp : session_start();
1
2
3
4
5
<?php
     session_start();
     $_SESSION['name'] = "Tèo";
     // Khởi tạo session name có giá trị là tèo
?>
Sau kho bạn khởi tạo session thì ở bất kỳ file .php nào trên ứng dụng bạn cũng có thể sử dụng lại biến session mà bạn vừa khởi tạo khi nãy, chỉ cần bạn gọi session_start();
1
2
3
4
<?php
     session_start();
     echo "Ten cua ban la : ".$_SESSION['name'];
?>
- Huỷ 1 biến session nào đó : unset(tên session); 
- Huỷ tất cả session : session_destroy();
1
2
3
4
5
<?php
     session_start();
     unset($_SESSION['name']); // Huỷ session name
     session_destroy(); // Huỷ tất cả session
?>

Nguồn http://phpandmysql.net/


EmoticonEmoticon