Hướng dẫn dùng uname -o trong PHP

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, ...] ...

Thiết lập Cookie

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
  • value giá trị gán cho cookie
  • ";
    
    else
        echo "Không có tên" . "
    "; ?>
    0 Thời điểm hết hạn [hủy] của cookie
  • ";
    
    else
        echo "Không có tên" . "
    "; ?>
    1 đường dẫn thư mục mà cookie có hiệu lực. Sử dụng 
    ";
    
    else
        echo "Không có tên" . "
    "; ?>
    2 cho biết cookie có hiệu lực ở mọi thư mục truy cập.
  • ";
    
    else
        echo "Không có tên" . "
    "; ?>
    3 tên miền
  • ";
    
    else
        echo "Không có tên" . "
    "; ?>
    4 = 1 nếu sử dụng HTTPS
  • ";
    
    else
        echo "Không có tên" . "
    "; ?>
    5= 1 nếu sử dụng chỉ giao thức http

Truy cập Cookie

Bạn dùng biến 
";

else
    echo "Không có tên" . "
"; ?>
6 là một mảng để truy cập thông tin cookie do trình duyệt gửi lên. Giống như 
";

else
    echo "Không có tên" . "
"; ?>
7 bạn nên dùng 
";

else
    echo "Không có tên" . "
"; ?>
8 để kiểm tra sự tồn tại của COOKIE.
";

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

Xóa Cookie

Để 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

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" . "
        "; ?>
        9 và
        setcookie[ "name", "", time[]- 60, "/","", 0];
        0
      • 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
    setcookie[ "name", "", time[]- 60, "/","", 0];
    1
  • 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!"; } } ?>

Step 2: lưu trữ giá trị đã đăng nhập trong Cookie và Yêu cầu Web Browser của người dùng lưu trữ giá trị này

  • Sử dụng hàm
    setcookie[ "name", "", time[]- 60, "/","", 0];
    2 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
      setcookie[ "name", "", time[]- 60, "/","", 0];
      3 thì chúng ta sẽ lưu trữ giá trị
      setcookie[ "name", "", time[]- 60, "/","", 0];
      4 và
      setcookie[ "name", "", time[]- 60, "/","", 0];
      5 vào Cookie với thời hạn là
      setcookie[ "name", "", time[]- 60, "/","", 0];
      6
  • 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!"; } } ?>

Step 3: bổ sung phần kiểm tra giá trị trong Cookie

  • Chúng ta sẽ kiểm tra trong Cookie, nếu:
    • Đã có giá trị của người dùng đăng nhập 
      setcookie[ "name", "", time[]- 60, "/","", 0];
      4 và
      setcookie[ "name", "", time[]- 60, "/","", 0];
      5 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];
      9.
  • 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
    
    
    
        
        
        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!"; } } ?>
    0 và tông màu tối
    
    
    
        
        
        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!"; } } ?>
    1
  • Sau khi người dùng chọn tông màu yêu thích thì sử dụng hàm
    setcookie[ "name", "", time[]- 60, "/","", 0];
    2 yêu cầu trình duyệt [web browser] lưu giá trị
    
    
    
        
        
        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!"; } } ?>
    3
  • 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
    
    
    
        
        
        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!"; } } ?>
    4 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
    
    
    
        
        
        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!"; } } ?>
    5
  • 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

Giao diện nền Sáng
Giao diện nền Tối
Cấu hình đã được lưu!"; } ?>
 

Xem thêm về bảo mật liên quan đến Cookie/Session

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.

Chủ Đề