Tóm Tắt
1. Session trong PHP
Session trong PHP là một biến dùng để lưu trữ thông tin của người dùng hoặc các cài đặt hệ thống liên quan đến người dùng. Mỗi người dùng truy cập sẽ có một session ID khác nhau, nên thông tin của khách hàng A không thể ảnh hưởng đến khách hàng B. Session thường được sử dụng cho các chức năng như đăng nhập, giỏ hàng, những dữ liệu chỉ lưu tạm thời. Mỗi khách hàng PHP sẽ tạo một file session tương ứng cho khách hàng đó, file này được lưu theo đường dẫn mà bạn thiết lập trong session.save_path trong file php.ini.
Cơ chế của session hoàn toàn có thể tóm gọn như sau :
- Khi khách hàng truy cập trang web lần đầu tiên. PHP sẽ tự động tạo một định danh cho khách đó. Định danh này là một chuỗi duy nhất.
- Một session ID(PHPSESSID) sẽ được gửi là lưu trữ ở trình duyệt.
- PHP sẽ dựa vào PHPSESSID để lấy dữ liệu tương ứng của người dùng từ session.
- Session bị xóa khi đóng trình duyệt hoặc hết phiên làm việc(có thể config).
Đăng ký session
Để sử dụng được session thì bắt buộc bạn phải sử dụng hàm session_start() ở đầu file. Nếu chưa có session thì hàm này sẽ tạo cho bạn, còn nếu tồn tại rồi thì nó sẽ lấy dữ liệu. Để không cần gọi session_start() thì bạn nên thiết lập để PHP tự động chạy hàm này bằng cách config session.auto_start = 1 trong php.ini
Khi session được chạy mặc định nó sẽ gửi một cookie với tiền tố PHPSESSID đến trình duyệt. Ví dụ ta có file session.php
123456789101112 |
session_start();? >
|
Session trong PHP
Lưu trữ thông tin session
Biến toàn cục $_SESSION là nơi lưu trữ thông tin của session và cũng là biến để lấy, thay đổi hoặc lưu thêm thông tin thì chúng ta cũng cần làm việc với biến toàn cục này. Trước khi lấy thông tin nên sử dụng hàm isset($_SESSION[‘name’]) để kiểm tra session đã tồn tại hay chưa để tránh xảy ra lỗi.
Ví dụ để lưu thông tin của người mua tất cả chúng ta sẽ làm như sau :
1234567891011121314151617181920212223242526 |
session_start(); / / Luu session USD _SESSION[‘ username ‘]=USD _POST[‘ username ‘]; ? >
if(isset(USD _SESSION[‘ username ‘])){ echo” Ten khach hang duoc luu o session la : “.USD _SESSION[‘ username ‘]; } ? >
|
Session trong PHP
Xóa session
Tất cả thông tin đều được lưu trữ trong biến $_SESSION nên để xóa 1 giá trị session các bạn chỉ cần sử dụng hàm unset($_SESSION[‘session_name’]). Nếu muốn xóa tất cả thì sử dụng hàm session_destroy().
12345 |
/ / Xóa session name unset(USD_SESSION[‘ username ‘]);
/ / Xóa hết session session_destroy(); |
Đây chỉ là những hàm cơ bản và hay dùng về session. Để xem thêm những hàm thao tác với session những bạn truy vấn tại đây .
2. Cookie trong PHP
Cookie là một file nhỏ được tàng trữ ở máy người dùng ( trình duyệt ) và PHP hoàn toàn có thể truy xuất đến được. Để sử dụng được cookie thì trình duyệt của bạn phải tương hỗ nó. Ví dụ như hoạt động giải trí đăng nhập của người dùng sẽ có những bước sau :
- Server gửi cookie đến trình duyệt(tên đăng nhập…)
- Trình duyệt lưu lại thông tin này(cookie)
- Lần sau nếu khách hàng truy cập lại trang, trình duyệt sẽ gửi lại cookie này lên server và server sẽ lấy được các thông tin từ cookie này.
Lưu trữ Cookie
Để lưu trữ cookie thì chúng ta sử dụng hàm set_cookie() và phải đặt trước thẻ html.
1 |
setcookie(USDname,USDvalue,USDexpire,USDpath,USDdomain,USDsecurity=false,USDhttponly=false) |
- $name: là tên của Cookie
- $value: giá trị của Cookie
- $expire: thời gian sống của Cookie
- $path : đường dẫn lưu trữ Cookie
- $domain: tên của domain
-
security
= true nếu sử dụng HTTPS để truyền dữ liệu (mặc định false) -
$httponly
mặc định là false, nếu true thì chỉ cho phép cookie với giao thức HTTP
Ví dụ : cookie.php
123456789101112 |
php < / p setcookie(‘ username ‘,’ VI-MAGENTO ‘,time()+3600); ? > |
Nếu bật tab network ở trình duyệt lên bạn hoàn toàn có thể thấy thông tin cookie mà tất cả chúng ta đã thiết lập .
Cookie trong PHP
Lấy giá trị Cookie
Chúng ta sử dụng biến toàn cục $_COOKIE để lấy các giá trị mà trình duyệt gửi lên. Cũng giống như session bạn nên sử dụng hàm isset() để kiểm tra cookie cần lấy có tồn tại không để tránh báo lỗi.
Ví dụ lấy thông tin username vừa set ở trên :
123456789101112131415161718 |
if(isset(USD_COOKIE[‘ username ‘])){ php < / p setcookie(‘ username ‘,’ VI-MAGENTO ‘,time()+3600); ? >
if(isset(USD _COOKIE[‘ username ‘])){ echoUSD _COOKIE[‘ username ‘]; } ? > |
Session trong PHP
Xóa Cookie
Để xóa cookie thì những bạn sử dụng hàm set_cookie ( ) ở trên với thiết lập thời hạn hết hạn .
Ví dụ để xóa cookie đã set ở trên :
1 |
setcookie(” username “,” “,time()-60,” / “,” “, 0 ); |
3. Kết luận
Trong bài viết này tất cả chúng ta đã khám phá về session và cookie trong PHP. Chúng rất thiết yếu trong những công dụng đăng nhập hay giỏ hàng. Các bạn cần nắm vững thực chất và cách thiết lập của chúng. Tìm hiểu thêm về session và cookie tại đây .
Source: https://final-blade.com
Category: Kiến thức Internet