Bài 7: Khái niệm cơ bản về Cookie và session trong PHP

root

Leader IT/Architect
Dec 31, 2012
1,153
72
48
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 lại 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 ta ghé thăm website, đánh dấu ta đã login hay chưa, v.v...
  • 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:
PHP:
Setcookie("tên cookie","giá trị", thời gian sống)

  • Tên cookie là tên mà chúng ta đặt cho phiên làm việc.
  • Giá trị là thông số của tên cookie.
​- Ví dụ:
PHP:
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:
PHP:
$_COOKIE["tên cookies"]

  • Tên cookie là 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:
PHP:
<?php
setcookie("name","Kenny Huy",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:
PHP:
<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ú pháp:
PHP:
setcookie("Tên cookie")

  • Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi
- Dùng thời gian hết hạn cookie là thời điểm trong quá khứ.

  • Ví dụ:
PHP:
​setcookie("name","Kenny Huy",time()-3600);

  • Ví dụ: Tiếp tục tạo trang cookie3.php với nội dung sau:
PHP:
<?php
setcookie("name","Kenny Huy",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 cấp một định danh (ID) khác nhau và nội dung được lưu trong thư mục thiết lập trong file php.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:
PHP:
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:
PHP:
session_register("Name")
Ví dụ:
PHP:
<?php
Session_start();
Session_register("username");
?>

b- Sử dụng giá trị của session:

  • Giống với cookie. Để sử dụng giá trị của session ta sử dụng mã lệnh sau:Cú pháp:
PHP:
$_SESSION["name"]

  • Với Name là tên mà chúng ta sử dụng hàm sau để khai báo.
PHP:
session_register("name")
Ví dụ: Tạo trang session.php với nội dung sau:
PHP:
<?php
session_start();
session_register("name");
$_SESSION["name"] = "Kenny Huy";
?>
<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:
PHP:
<?
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: có 3 cách

  • Cho phép hủy bỏ toàn bộ giá trị của session
PHP:
session_destroy()

  • Cho phép hủy bỏ session
PHP:
session_unset()

  • Hủy 1 session
PHP:
unset($_SESSION['tên session cần xóa']);

  • Ví dụ: Tạo trang session3.php với nội dung sau:
PHP:
<?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>

3- Tổng Kết:

  • Sau bài học này chúng ta đã nắm được cách điều khiển phiên làm việc giữa cookie và session.
  • Sử dụng chúng trong từng trường hợp cụ thể. Từ đó 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 tập áp dụng:
Xây dựng website sử dụng tính năng session thỏa mãn những yêu cầu sau:

  • 1- Tạo trang đăng nhập với username/password là : admin/vietchuyen. Nếu user đăng nhập thành công thì sẽ xuất ra dòng welcome, admin.
  • 2- Tạo trang đăng xuất thoát khỏi phần quản trị
Giải bài tập: http://svuit.com/showthread.php?87-Tao-login-form-bang-php
 

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu