Sau khi tìm hiểu về mảng và các hàm hỗ trợ trong PHP, trong bài viết này chúng ta tìm hiểu về cookie và session trong PHP.
Cookie và session trong PHP là hai phương pháp được sử dụng để quản lý các phiên làm việc giữa người sử dụng và hệ thống. Việc quản lý phiên làm việc này giúp bạn tạo sự chứng thực hiệu quả bằng việc xác nhận thông tin trước khi truy cập vào một phân vùng cố định. Ngoài ra, việc quản lý tốt phiên làm việc cũng giúp người truy cập cảm thấy dễ dàng sử dụng dịch vụ của trang web cho những lần truy cập sau bởi cơ chế quản lý phiên làm việc ghi nhận lại quá trình truy cập của người sử dụng khi họ ghé thăm trang web của bạn lần đầu.
1. Tổng quan về cookie
Cookie là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người sử dụng. Nó được trình duyệt gởi ngược lên server mỗi khi browser tải 1 trang web từ server.
Những thông tin được lưu trữ trong cookie hoàn toàn phụ thuộc vào website trên server. Mỗi website có thể lưu trữ những thông tin khác nhau trong cookie, ví dụ thời điểm lần cuối bạn ghé thăm website, đánh dấu bạn đã đăng nhập hay chưa, …
Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau (cho dù cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới browser. Ngoài ra, mỗi browser quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 browser cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau.
a) Thiết lập cookie
Để thiết lập cookie ta sử dụng cú pháp:
Setcookie("tên cookie","giá trị", thời gian sống)
Tên cookie: tên mà chúng ta đặt cho phiên làm việc
Giá trị: thông số của tên cookie
Giá trị: thông số của tên cookie
Ví dụ:
1
| Setcookie( "username" , "admin" , time() +3600) |
Như ví dụ trên ta thấy với tên là username và giá trị là admin, có thời gian sống là 1 giờ tính từ thời điểm thiết lập.
Chú ý: Kịch bản cookie phải đặt trên mọi giá trị trả về bao gồm thẻ HTML và lệnh echo.
b) Sử dụng cookie
Để sử dụng lại cookie vừa thiết lập, chúng ta sử dụng cú pháp:
$_COOKIE["tên cookies"]
Tên cookie: tên mà chúng ta thiết lập phía trên
Ví dụ:
Tạo trang cookie.php với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
| <?php setcookie( "name" , "Vinh Nhat" ,time() + 3600); ?> <html> <head> <title>Test page 1</title> </head> <body> <b><a href=cookie2.php>Click here</a></b> </body> </html> |
Tiếp tục tạo trang cookie2.php với nội dung sau:
1
2
3
4
5
6
7
8
9
10
| <html> <head> <title>Result Page</title> </head> <body> <?php echo "Ten cua ban la <b>" . $_COOKIE [ 'name' ]. "</b>" ; ?> </body> </html> |
c) Hủy Cookie
Để hủy 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:
Cách 1: Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi
Cú pháp:
setcookie("Tên cookie")
Cách 2: Dùng thời gian hết hạn cookie là thời điểm trong quá khứ.
Ví dụ:
1
| setcookie( "name" , "Vinh Nhat" ,time()-3600); |
Ví dụ: Tiếp tục tạo trang cookie3.php với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
| <?php setcookie( "name" , "Vinh Nhat" ,time()-360); ?> <html> <head> <title>Test page 1</title> </head> <body> <b><a href=cookie2.php>Click here</a></b> </body> </html> |
2. Tổng quan về session
Một cách khác quản lý người sử dụng là session. Session được hiểu là khoảng thời gian người sử dụng giao tiếp với 1 ứng dụng. Một session được bắt đầu khi người sử dụng truy cập vào ứng dụng lần đầu tiên và kết thúc khi người sử dụng thoát khỏi ứng dụng. Mỗi session sẽ được cấp một ID (định danh) khác nhau và nội dung được lưu trong thư mục thiết lập trong filephp.ini (tham số session.save_path).
a) Thiết lập session
Để thiết lập 1 session ta sử dụng cú pháp:
session_start()
Đoạn code này phải được nằm trên các kịch bản HTML hoặc những lệnh echo, printf.
Để thiết lập 1 giá trị session, ngoài việc cho phép bắt đầu thực thi session, chúng ta còn phải đăng ký 1 giá trị session để tiện cho việc gán giá trị cho session đó.
Ta có cú pháp sau:
session_register("Name")
Ví dụ:
1
2
3
4
| <?php Session_start(); Session_register( "username" ); ?> |
b) Sử dụng giá trị của session
Tương tự như cookie, để sử dụng giá trị của session ta sử dụng mã lệnh sau:
Cú pháp:
$_SESSION["name"]
name: tên mà chúng ta sử dụng hàm session_register(“name”) để khai báo.
Ví dụ:
Tạo trang session.php với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php session_start(); session_register( "name" ); $_SESSION [ "name" ] = "Vinh Nhat" ; ?> <html> <head> <title>Test page 1</title> </head> <body> <b><a href=session2.php>Click here</a></b> </body> </html> |
Tạo trang session2.php với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <? session_start(); ?> <html> <head> <title>Result Page</title> </head> <body> <?php echo "Ten cua ban la <b>" . $_SESSION [ "name" ]. "</b>" ; ?> </body> </html> |
c) Hủy bỏ session
Để hủy bỏ giá trị của session ta có những cách sau:
- session_destroy() // Cho phép hủy bỏ toàn bộ giá trị của session
- session_unset() // Cho phép hủy bỏ session
Ví dụ: Tạo trang session3.php với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php session_start(); session_destroy(); ?> <html> <head> <title>Test page 1</title> </head> <body> <b><a href=session2.php>Click here</a></b> </body> </html> |
Sau bài học này, bạn sẽ phần nào nắm được cách điều khiển phiên làm việc giữa cookie và session, cách sử dụng chúng trong từng trường hợp cụ thể. Từ đó, chúng ta có thể áp dụng để viết những ứng dụng nhỏ như kiểm soát người đăng nhập, làm giỏ hàng online, … Ở bài sau mình sẽ giới thiệu về hàm và gọi lại hàm trong PHP.
Nguồn: qhonline.info
No comments:
Post a Comment