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

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
  • 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
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" . "
"; ?>
Để 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 dùng uname -o trong PHP

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!"; } } ?>
  • 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!"; } } ?>
  • 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



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.