Khoá học PHP cơ bản online Bài 4: Cookie và Session cơ bản trong PHP

Giới thiệu về Cookie và Session

Cookie Session  là hai phương pháp quản lý các phiên làm việc giữa client  và server.  

Ví dụ, lần đầu tiên khi bạn vào facebook, bạn phải đăng nhập. Sau khi đăng nhập, tài khoản của bạn sẽ được gán cho một phiên làm việc nào đó, và được giới hạn trong một khoảng thời gian nhất định.

Cụ thể, sau khi đăng nhập, hệ thống sẽ lưu lại thông tin cơ bản của bạn như id, tên, email sử dụng vào Session hoặc cookies. Từ đó hệ thống kiểm tra xem bạn đăng nhập hay chưa, và giới hạn quyền của bạn (ví dụ như đăng nhập mới có thể mua hàng ) …

  1. Cookie

Cookie là những dữ liệu được lưu ở phía client (người dùng)

Mỗi khi client  gửi yêu cầu lên một server nào đó, nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với server máy chủ đó.

Dữ liệu lưu trong cookie phụ thuộc vào phía server, bao gồm :

  • Địa chỉ URL mà client sẽ gửi cookie tới.
  • Thời gian hết hạn của cookie.
  • Các cặp biến, giá trị được lưu trữ liên tục.

Cách sử dụng Cookie

Hãy làm một ví dụ đơn giản

  • Khởi tạo cookie với cú pháp:

setcookie(“tên cookie”, “giá trị”, time()+thời gian sống);

Tạo file cookie.php

 

 

Lệnh setcookie(“name”,”Test Cookie”,time() +3600); đã tạo một cookie có tên là name , giá trị là Test Cookie và thời gian tồn tại là 3600 giây (1 giờ ).

Đoạn html hiển thị link dẫn đến file UseCookie.php ,  nơi mà ta sẽ sử dụng dữ liệu mà cookie chúng ta đã tạo ra.

 

  • Sử dụng cookie :

Lấy cookie thông qua biến $_COOKIE[“tên cookie”]

Tạo file UseCookie.php

 

Nhiệm vụ của trang này là hiển thị ra giá trị của cookie name  mà chúng ta tạo ở file cookie.php trước đó thông qua biến $_COOKIE[‘name’]

Kết quả hiển thị:
Tên của Cookie là Test Cookie
Đến trang hủy Cookie

  • Hủy cookie

setcookie(“tên cookie”,”giá trị”,time()-thời gian sống);

(thời gian sống ở đây đúng bằng thời gian sống khi ta khởi tạo cookie)

Tạo file deleteCookie.php

 

Trang này sẽ xóa cookie mà ta đã tạo ở đầu (thay mỗi “time() +” thành “time() –“  ).

Đoạn html hiển thị link về trang UseCookie.php để test xem sau khi hủy cookie rồi , biến $_COOKIE[‘name’] còn tồn tại nữa không.

Cookie đã bị hủy nên biến $_COOKIE[‘name’] không xác định, hệ thống báo lỗi.

 

  1. Session

Session được lưu trữ hoàn toàn trên server, tính bảo mật cao. Các website thường sử dụng session để lưu thông tin người dùng khi họ đăng nhập.

Session là một cách đơn giản để lưu trữ một biến và khiến biến đó tồn tại từ trang này sang trang khác, và biến đó chỉ mất đi khi ta xóa nó hoặc hết tuổi thọ (thoát khỏi ứng dụng hoặc qúa thời gian load dữ liệu).

 

Cách sử dụng session

Trong mỗi trang bạn sử dụng session , hãy để đoạn code sau vào đầu trang

 Hãy làm một ví dụ đơn giản sau đây :

  • Đầu tiên, khởi tạo Session với cú pháp:

$_SESSION[“tên session”] = “giá trị”;

Tạo file session.php

Trang này có sử dụng session nên cần session_start();

Đăng ký biến $_SESSION[“name”] với giá trị  “Session”.

Trang hiển thị link dẫn đến trang UseSesssion.php , nơi ta sử dụng biến session.

  • Sử dụng biến Session

Tạo file UseSession.php

  • Hủy Session:

Cú pháp: session_destroy();

Tạo file deleteSession.php 

 

Kết quả là biến $_SESSION[“name”] đã bị hủy, hệ thống báo lỗi.

  1. Nên sử dụng cookie hay session ?

Sử dụng cookie hay session tùy thuộc vào người lập trình. Tuy nhiên,  Session thường được ưa chuộng hơn Cookie vì:

  • Trong một số trường hợp Cookie không sử dụng được (do browser hoặc các yếu tố từ client …)
  • Dữ liệu truyền tải giữa clientserver bằng session khá tiết kiệm : chỉ có session ID, còn dữ liệu thực sự chỉ lưu ở trên server, trong khi dùng cookie dữ liệu truyền tải sẽ lớn hơn.
  • Tính bảo mật cao: do Session ít không tin truyền tải giữa client và server, và dữ liệu chỉ lưu trên server.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">