Diary of Duc

PHP – Cookie và Session

2017-05-17

Khái niêm: Là những tập tin được lưu trên máy tính, được tạo bởi website đã truy cập thông qua trình duyệt, thông tin được lưu có thể là tên tài khoản, số điện thoại, các lựa chọn.

Chức năng: Dùng để nhận ra người dùng mỗi khi truy cập vào website.

Ví dụ: Mỗi khi mở trình duyệt và gõ vào Facebook.com, thấy rằng Facebook tự động chuyển Newfeed mà không yêu cầu đăng nhập lại. Lý do là cookie đã được gửi kèm khi đó, Facebook sẽ so sánh: nếu đọc được cookie thì sẽ hiểu là bạn đã đăng nhập, không thì bạn chưa đăng nhập.

Cài đặt:

*Sử dụng $cookie_name để set tên cookie , dùng $cookie_value để set giá trị cho cookie.

*Sử dụng hàm setcookie() để set cookie và set thời gian sống cookie.

*Tạo 1 file cookie.php và thêm đoạn code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$cookie_name = "user";
$cookie_value = "Techitvn";
$cookie_name = "id";
$cookie_value = "123456789";

setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day

if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
}
else {
echo "Cookie is set!<br>";
}
?>

Hủy Cookie:
Đặt lại cookie là thời điểm trong quá khứ cookie sẽ hết hạn:

1
setcookie($cookie_name, $cookie_value, time() - (86400 * 30), "/"); // 86400 = 1 day

Session

Khái niệm: Là 1 phiên làm việc bắt đầu từ khi người dùng sử dụng cho đến khi người dùng thoát khỏi hệ thống (ứng dụng), được lưu trên máy chủ.

Chức năng: Quản lý phiên làm việc trên hệ thống (ứng dụng).

Ví dụ: Khi đăng nhập vào Facebook thì session được tạo, nếu đem session đó lên trình duyệt khác thì vẫn sẽ truy cập được vào tài khoản đó do phiên làm việc đó chưa kết thúc. Khi đăng xuất thì session đó kết thúc.

Cài đặt:

*Khai báo session_start() để bắt đầu sử dụng session.

*Sử dụng biến $_SESSION[“giá_trị”] để gán 1 session.

*Tạo file a.php để bắt đầu phiên làm việc.

1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
$a="<form action='a.php' name ='xuly' method='post'>
<label>Tên :</label><input type='text' name='user' size='25' />
<label>Submit: </label><input type='submit' name='ok'/>
</form>";
echo $a;
if(isset($_POST["ok"])){
$_SESSION["name"]=$_POST["user"];
}
?>

Do phiên làm việc chưa kết thúc, tạo 1 file b.php

1
2
3
4
<?php
session_start();
echo "Tên: ".$_SESSION["name"];
?>

Huỷ session:
Để hủy session dùng hàm session_destroy()

1
2
3
4
5
<?php
session_start();
session_destroy();
echo "Tên: ".$_SESSION["name"];
?>

Tại sao phải tạo ra file b.php? Vì để chỉ ra đặc điểm superglobal của session.

Tags: php

URL QR