Toidicode.com

Toidicode.com

BASIC TO ADVANCE

Bài 13: SESSION và COOKIE trong PHP

Session và cookie dùng để lưu trữ dữ liệu tạm thời để hệ thống có thể nhận diện và đưa ra các hành động khác nhau.

1, Session trong PHP.

-Biến Session trong PHP dùng để lưu trữ thông tin như thông tin người dùng, thông tin cấu hình,... Mà nó chỉ có thể tồn tại đến khi chúng ta đóng trình duyệt. Và mỗi client sẽ có một SessionID khác nhau nên hoàn toàn không có thể xảy ra việc xung đột session. Ứng dụng thực tế trong việc sử dụng session thường làm chức năng đăng nhập, giỏ hàng,...

Khởi tạo session

-Đầu tiên các bạn muốn khởi tạo được session trong PHP thì bắt buộc các bạn phải khai báo session_start(); ở đầu mỗi file. Hàm này có tác dụng khai báo cho server biết phiên làm việc có sử dụng session.

VD:

<?php 
session_start();
// code
?>

Lưu trữ session

-Cũng giống như GET và POST, session cũng được lưu trong một biến toàn cục $_SESSION, Vì vậy khi muốn thêm sửa xóa session chúng ta cũng phải thao tác trên biến này. Và các bạn phải luôn luôn nhớ là phải kiểm tra chặt dữ liệu trước khi thao tác.

Thêm,Sửa

-Để thêm hoặc session các bạn sử dụng cú pháp:

$_SESSION['name'] = 'value';

-Trong đó:

  • name là tên của session.
  • value là giá trị của session, giá trị này có thể là một chuỗi,mảng,số,...

VD: Thêm session.

<?php
$_SESSION['user'] = 'admin';
// hoặc đối với mảng
$array = [5, 8, 6, 4, 7, 5];
$_SESSION['user'] = $array;

VD: sửa session.

<?php
// khởi tạo session user có giá trị là VuThanhTai
$_SESSION['user'] = 'VuThanhTai';
// sửa giá trị của session user thành Toidicode-er
$_SESSION['user'] = 'Toidicode-er';

Lấy giá trị

-Để lấy giá trị của session thì chúng ta chỉ cần gọi theo cú pháp:

$_SESSION['name'];

Trong đó: name là tên của session các bạn muốn lấy.( Chú ý kiểm tra chặt chẽ xem session đó có tồn tại hay không trước khi lấy)

VD:

if (isset($_SESSION['user'])) {
    echo $_SESSION['user'];
}

Xóa session

-Để xóa session thì các bạn chỉ cần sử dụng hàm unset() theo cú pháp sau:

unset($bien);

Trong đó: $bien là thư mà các bạn muốn xóa.

VD: xóa session user ở VD trên:

unset($_SESSION['user']);

-Và để xóa tất cả session thì chúng ta sử dụng cú pháp sau:

session_destroy();
//hoac
unset($_SESSION);

2, Cookie trong PHP.

-Cookie thường được dùng để lưu những tùy chọn riêng của từng user,... Cookie được lưu trữ ở máy của client lên khi đóng trình duyệt thì cookie vẫn tồn tại và tồn tại bao lâu là do bạn set.

Khởi tạo cookie

-Để khởi tạo cookie thì bạn sử dụng hàm setcookie() theo cú pháp sau:

setcookie($name, $value, $expire, $path, $domain);

Trong đó:

  • $name là tên của cookie các bạn muốn tạo.
  • $value là giá trị của cookie đó.
  • $expire là thời gian sống của cookie.
  • $path là đường dẫn lưu trữ cookie.
  • $domain là tên của domain.

VD: Mình sẽ khởi tạo một cookie có tên là user, giá trị là VuThanhTai và thời gian sống trong 10 phút.

setcookie('user', 'VuThanhTai', time() + 600);

Lấy giá trị của cookie

-Cách lấy giá trị của cookie thì cũng không khác gì session các bạn chỉ cần sử dụng cú pháp:

$_COOKIE[$name];

Trong đó: $name là tên của cookie các bạn muốn lấy.

VD: Mình sẽ lấy giá trị của cookie user ở trên.

$_COOKIE['user'];

Xóa Cookie

-Để xóa cookie thì các bạn chỉ cần xét cho thời gia sống của nó nhỏ hơn thời điểm hiện tại.

VD: mình sẽ xóa cookie user ở trên.

setcookie('user', 'VuThanhTai', time() - 100);

3, Lời kết.

-Bài này kết thúc ở đây thôi nhé, nếu bạn nào muốn tìm hiểu sâu hơn nữa có thể xem chi tiết tại trang chủ của PHP nhé.

Đăng ký nhận tin.

Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!

Vũ Thanh Tài

About author
The best way to learn is to share
Xem tất cả bài đăng

2 Comments

Chào admin: Hiện em mới tìm hiểu về sesion và cookie em có 1 vấn đề là: em muốn lưu 1 biến session chứa các array nhỏ bên trong, mỗi khi mình click 1 lần vào nút button hoặc thẻ <a href="...id=12"></a> sẽ lưu thêm 1 mảng vào session thì mình nên làm sao để lưu được ạ. em cảm ơn

A Chung

5 năm trước

Em ko hiểu mục đích của session và cookie lắm sử dung biến như thường ko đc ạ khá khó hiểu

Vuduclam

2 năm trước

Bình luận

Captcha