Trang

Thứ Năm, 18 tháng 7, 2013

Session và Cookie trong PHP [PHP]

Cookie và session là hai phương pháp 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
Cookie và session là hai phương pháp 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 sẽ giúp bạn tạo ra sự chứng thực hiệu quả bởi 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ọ thăm viếc 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 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:

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.
thời_gian_sống: thời gian sống của cookie

Ví dụ:

setcookie("username","admin", time() +3600)

Tên của cookie là username , giá trị của nó là admin , 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. Nghĩa là được set ở ngay đầu trang của tài liệu.

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: 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
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:
<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: Sử dụng cú pháp
setcookie("Tên cookie")
Gọi hàm setcookie với chỉ duy nhất tên cookie mà thôi

Cách 2: Dùng thời gian hết hạn cookie là thời điểm trong quá khứ.
setcookie("name","Kenny Huy",time()-3600);

Ví dụ:
Tiếp tục tạo trang cookie3.php với nội dung sau:
<?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>

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 (đóng trình duyệt). Mỗi session sẽ được cấp một định danh (ID) khác nhau và nội dung được lưu trong một thư mục (trên server) thiết lập trong file php.ini (tham số session.save_path) .

a. Thiết lập session:

Trang nào muốn sử dụng Session thì ngay trên đầu trang, sát lề trái ( chú ý không có khoảng trằng ), ta phải có dòng session_start(); dòng lệnh này cho phép bắt đầu thực thi session.

Để 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 tên session. Để tiện cho việc gán giá trị cho session đó.

Cú pháp:
session_register("Name")

Ví dụ:
<?php
session_start();
session_register("username");
?>

b. Sử dụng session:

Cú pháp:

 - Gắn giá trị cho Session:

$_SESSION["name"] = giá_trị
Với name là tên mà chúng ta sử dụng hàm session_register("name") để khai báo.

- Lấy giá trị Session: chỉ cần gọi ra
$_SESSION["name"]
Với name là 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:
<?php
session_start();
session_register("admin");
$_SESSION["admin"] = "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:
<?
session_start();
?>
<html>
<head><title>Result Page</title></head>
<body>
<?php
echo "Ten cua ban la <b>".$_SESSION["admin"]."</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 .

- unset($_SESSION["name"]) : hủy Session có tên là name 

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,…..
Nguồn: http://www.qhonline.info

Không có nhận xét nào:

Đăng nhận xét