Hướng dẫn sử dụng edit this cookie Informational

Cookie là tập tin được lưu ở máy người dùng (cụ thể là tại Web Browser). Được gởi kèm theo Request đến Web Server.

Cookie được sử dụng với mục đích sau:

  • Dùng để theo dõi hoạt động truy cập. Ví dụ nhớ tên người dùng truy cập vào website có thể hoạt động qua các bước như sau:
    • Server gửi các cookie cho browser (ví dụ tên người dùng: username) ...
    • Web Browser lưu lại thông tin này trong file cookie.
    • Lần sau Web Browser sẽ gửi ngược các Cookie này lên Server và Server sẽ nhận được Cookie, từ đó xác định được thông tin (như username) ...
  • Dùng để theo dõi thói quen/hành vi của người dùng. Ví dụ: người dùng thích sử dụng tông màu Tối (hỗ trợ mắt) trên trang web.
    • Lần đầu truy cập trang web, người dùng sẽ hiệu chỉnh cấu hình trang web thành nền tối
    • Server sẽ gửi các cookie cho Web Browser (ví dụ: màu nền, class "dark-theme", ...)
    • Web Browser lưu lại thông tin này trong file cookie.
    • Lần sau Web Browser sẽ gửi ngược các Cookie này lên Server và Server sẽ nhận được Cookie, từ đó xác định được thông tin (như màu nền yêu thích, ...) ...

Từ PHP có thể thiết lập Cookie bằng hàm setcookie (nhớ phải gọi trước các dòng code xuất html).

setcookie(name, value, expire, path, domain, security, httponly);

  • name là tên cookie, tên này được sử dụng để truy cập vào biến $_COOKIE để lấy thông tin
  • 0 giá trị gán cho cookie
  • 1 Thời điểm hết hạn (hủy) của cookie
  • 2 đường dẫn thư mục mà cookie có hiệu lực. Sử dụng 3 cho biết cookie có hiệu lực ở mọi thư mục truy cập.
  • 4 tên miền
  • 5 = 1 nếu sử dụng HTTPS
  • 6= 1 nếu sử dụng chỉ giao thức http

Bạn dùng biến

7 là một mảng để truy cập thông tin cookie do trình duyệt gửi lên. Giống như

8 bạn nên dùng

9 để kiểm tra sự tồn tại của COOKIE.

echo "Welcome " . $_COOKIE["name"] . "
";
else

echo "Không có tên" . "
";
?>

Để yêu cầu trình duyệt xóa cookie bạn sử dụng chính hàm setcookie với thủ thuật đặt thời gian đã hết hạn (set thời gian về quá khứ). Ví dụ, lấy thời gian hiện tại trừ đi 60s:

setcookie( "name", "", time()- 60, "/","", 0);


Thực hành Tạo chức năng Ghi nhớ Đăng nhập

WorkFlow xử lý chức năng Ghi nhớ Đăng nhập

Hướng dẫn sử dụng edit this cookie	Informational

Mong muốn

  • Nếu người dùng đã đăng nhập Thành công trang web trong 15' trước đó rồi, thì không cần hiển thị Form đăng nhập nữa -> mà chuyển hướng người dùng sang trang chủ.
  • Nếu người dùng chưa từng đăng nhập hoặc Cookie đã hết hạn sử dụng thì:
    • Xử lý logic/nghiệp vụ kiểm tra đăng nhập
      • Nếu thông tin Đăng nhập hợp lệ thì lưu vào Cookie giá trị
             ";  
             else  
                 echo "Không có tên" . "
        "; ?> 0 và "; else echo "Không có tên" . "
        "; ?> 1
      • Nếu thông tin Đăng nhập không hợp lệ thì hiển thị thông báo lỗi.

Step 1: tạo form Đăng nhập

  • Tạo file echo "Welcome " . $_COOKIE["name"] . "
    ";
    else
    echo "Không có tên" . "
    ";
    ?> 2
  • Nội dung file:

  
  
Cookie trong PHP | Nền tảng VN  

Cookie trong PHP

Tài khoản:
Mật khẩu:
Ghi nhớ đăng nhập:
Xin chào $username!"; } else { echo "Đăng nhập thất bại!"; } } ?>

  • Sử dụng hàm echo "Welcome " . $_COOKIE["name"] . "
    ";
    else
    echo "Không có tên" . "
    ";
    ?> 3 trong PHP để lưu trữ giá trị trong PHP
  • Chúng ta sẽ xử lý logic/nghiệp vụ như sau:
    • Nếu đăng nhập thành công và người dùng có check chọn echo "Welcome " . $_COOKIE["name"] . "
      ";
      else
         echo "Không có tên" . "
      ";
      ?> 4 thì chúng ta sẽ lưu trữ giá trị echo "Welcome " . $_COOKIE["name"] . "
      ";
      else
         echo "Không có tên" . "
      ";
      ?> 5 và echo "Welcome " . $_COOKIE["name"] . "
      ";
      else
         echo "Không có tên" . "
      ";
      ?> 6 vào Cookie với thời hạn là echo "Welcome " . $_COOKIE["name"] . "
      ";
      else
         echo "Không có tên" . "
      ";
      ?> 7
  • Hiệu chỉnh code như sau:

  
  
Cookie trong PHP | Nền tảng VN  

Cookie trong PHP

Tài khoản:
Mật khẩu:
Ghi nhớ đăng nhập:
tiến hành lưu thông tin vào COOKIE và gởi lại người dùng if($remember_me == 1) { // Thiết lập Cookie "Ghi nhớ đăng nhập" trong 15' ~ 3600s setcookie('is_logged', true, time()+ 3600, '/'); // Thiết lập Cookie "Tên username đã đăng nhập" trong 15' ~ 3600s setcookie("username_logged", $username, time()+3600, "/","", 0); } // Hiển thị thông tin chào mừng echo "

Xin chào $username!

"; } else { echo "Đăng nhập thất bại!"; } } ?>

  • Chúng ta sẽ kiểm tra trong Cookie, nếu:
    • Đã có giá trị của người dùng đăng nhập echo "Welcome " . $_COOKIE["name"] . "
      ";
      else
         echo "Không có tên" . "
      ";
      ?> 5 và echo "Welcome " . $_COOKIE["name"] . "
      ";
      else
         echo "Không có tên" . "
      ";
      ?> 6 thì không cần xử lý logic/nghiệp vụ đăng nhập nữa. Hiển thị màn hình chào mừng và điều hướng người dùng đến trang chủ trong setcookie( "name", "", time()- 60, "/","", 0); 0.
  • Hiệu chỉnh code như sau:

  
  
Cookie trong PHP | Nền tảng VN  

Cookie trong PHP

$username_logged! Bạn đã đăng nhập rồi."; echo "Bạn sẽ được chuyển đến trang chủ trong 5s;"; echo ''; die; } ?>
Tài khoản:
Mật khẩu:
Ghi nhớ đăng nhập:
tiến hành lưu thông tin vào COOKIE và gởi lại người dùng if($remember_me == 1) { // Thiết lập Cookie "Ghi nhớ đăng nhập" trong 15' ~ 3600s setcookie('is_logged', true, time()+ 3600, '/'); // Thiết lập Cookie "Tên username đã đăng nhập" trong 15' ~ 3600s setcookie("username_logged", $username, time()+3600, "/","", 0); } // Hiển thị thông tin chào mừng echo "

Xin chào $username!

"; } else { echo "Đăng nhập thất bại!"; } } ?>


Thực hành Tạo chức năng Cấu hình Giao diện

WorkFlow xử lý chức năng Cấu hình Giao diện

  • Tạo 2 class cho 2 tông màu sáng setcookie( "name", "", time()- 60, "/","", 0); 1 và tông màu tối setcookie( "name", "", time()- 60, "/","", 0); 2
  • Sau khi người dùng chọn tông màu yêu thích thì sử dụng hàm echo "Welcome " . $_COOKIE["name"] . "
    ";
    else
    echo "Không có tên" . "
    ";
    ?> 3 yêu cầu trình duyệt (web browser) lưu giá trị setcookie( "name", "", time()- 60, "/","", 0); 4
  • Khi người dùng truy cập trang web lần thứ 2 trở đi, kiểm tra Cookie có tồn tại giá trị của setcookie( "name", "", time()- 60, "/","", 0); 5 hay không? Nếu có thì hiển thị tông màu theo ý thích người dùng.

Step 1: tạo file ví dụ Cấu hình giao diện

  • Tạo file setcookie( "name", "", time()- 60, "/","", 0); 6
  • Nội dung file:

  
  
Cookie trong PHP | Nền tảng VN  

  

Cấu hình Giao diện sử dụng Cookie trong PHP



Cấu hình đã được lưu!"; } ?>


Many of these configuration arguments are important for preventing attacks such as Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Cookie Theft and Manipulation, Session Hijacking, and Session Fixation.