Nhận cookie PHP

Là nhà phát triển trang web, bạn có thể sử dụng PHP để đặt cookie chứa thông tin về khách truy cập vào trang web của bạn. Cookie lưu trữ thông tin về khách truy cập trang web trên máy tính của khách truy cập có thể được truy cập khi truy cập lại. Một cách sử dụng phổ biến của cookie là lưu trữ mã thông báo truy cập để người dùng không cần phải đăng nhập mỗi khi truy cập trang web của bạn. Cookie cũng có thể lưu trữ các thông tin khác như tên người dùng, ngày truy cập lần cuối và nội dung giỏ hàng

Mặc dù cookie đã tồn tại trong nhiều năm và hầu hết mọi người đều đã bật cookie, nhưng một số người dùng không chấp nhận chúng vì lo ngại về quyền riêng tư hoặc tự động xóa chúng khi phiên duyệt web của họ kết thúc. Vì người dùng có thể xóa cookie bất cứ lúc nào và được lưu trữ ở định dạng văn bản thuần túy, không sử dụng chúng để lưu trữ bất kỳ thứ gì nhạy cảm

Trong PHP, hàm setcookie() định nghĩa một cookie. Nó được gửi cùng với các tiêu đề HTTP khác và truyền trước khi phần thân của HTML được phân tích cú pháp

Cookie tuân theo cú pháp

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

trong đó name​ biểu thị tên của cookie và ​value​ mô tả nội dung của cookie. ​Đối với hàm setcookie(), chỉ cần tham số tên​. Tất cả các tham số khác là tùy chọn.  

​Để đặt cookie có tên "UserVisit" trong trình duyệt của khách truy cập. Cookie này sẽ đặt giá trị thành ngày hiện tại, đồng thời đặt ngày hết hạn là sau 30 ngày (2592000 = 60 giây * 60 phút * 24 giờ * 30 ngày), hãy sử dụng

<?php 
$Month = 2592000 + time();
//this adds 30 days to the current time
setcookie(UserVisit, date("F jS - g:i a"), $Month);
?>

Cookies must be sent before any HTML is sent to the page or they do not work, so the setcookie() function must appear before the tag.

Để truy xuất cookie từ máy tính của người dùng trong lần truy cập tiếp theo, hãy gọi nó bằng mã sau

<?php
if(isset($_COOKIE['UserVisit']))
{
$last = $_COOKIE['UserVisit'];
echo "Welcome back! <br> You last visited on ". $last;
}
else
{
echo "Welcome to our site!";
}
?>

Mã này trước tiên kiểm tra xem cookie có tồn tại không. Nếu có, nó sẽ chào đón người dùng quay lại và thông báo khi người dùng truy cập lần cuối. Nếu người dùng là người mới, nó sẽ in một thông báo chào mừng chung

TIỀN BOA. Nếu bạn đang gọi một cookie trên cùng một trang mà bạn định đặt, hãy truy xuất nó trước khi ghi đè lên

Để hủy cookie, hãy sử dụng lại setcookie() nhưng đặt ngày hết hạn thành quá khứ

<?php 
$past = time() - 10;
//this makes the time 10 seconds ago
setcookie(UserVisit, date("F jS - g:i a"), $past);
?>

Thông số tùy chọn

Ngoài giá trị và hết hạn, hàm setcookie() hỗ trợ một số tham số tùy chọn khác

  • Đường dẫn xác định đường dẫn máy chủ của cookie. Nếu bạn đặt thành "/" thì cookie sẽ có sẵn cho toàn bộ miền. Theo mặc định, cookie hoạt động trong thư mục được đặt, nhưng bạn có thể buộc nó hoạt động trong các thư mục khác bằng cách chỉ định chúng với tham số này. Chức năng này phân tầng, vì vậy tất cả các thư mục con trong một thư mục được chỉ định cũng sẽ có quyền truy cập vào cookie
  • Miền ​xác định miền cụ thể mà cookie hoạt động trong đó. Để làm cho cookie hoạt động trên tất cả các tên miền phụ, hãy chỉ định rõ ràng tên miền cấp cao nhất (e. g. , "vật mẫu. com"). Nếu bạn đặt tên miền thành "www. vật mẫu. com" thì cookie chỉ khả dụng trong tên miền phụ www
  • An toàn​ chỉ định liệu cookie có nên truyền qua kết nối an toàn hay không. Nếu giá trị này được đặt thành TRUE thì cookie sẽ chỉ được đặt cho các kết nối HTTPS. Giá trị mặc định là FALSE
  • Httponly​, khi được đặt thành TRUE, sẽ chỉ cho phép giao thức HTTP truy cập cookie. Theo mặc định, giá trị là FALSE. Lợi ích của việc đặt cookie thành TRUE là ngôn ngữ tập lệnh không thể truy cập cookie.  

Trích dẫn bài viết này

Sự sắp xếp

trích dẫn của bạn

Bradley, Angela. "Sử dụng Cookie với PHP. "ThinkCo. https. //www. suy nghĩ. com/using-cookies-with-php-2693786 (truy cập ngày 23 tháng 1 năm 2023)

Cookie là một tệp nhỏ có kích thước tối đa là 4KB mà máy chủ web lưu trữ trên máy khách

Khi cookie đã được đặt, tất cả các yêu cầu trang theo sau sẽ trả lại tên và giá trị cookie

Cookie chỉ có thể được đọc từ tên miền mà nó đã được phát hành từ đó. Ví dụ: bộ cookie sử dụng tên miền www. gu99. com không thể được đọc từ sự nghiệp tên miền. gu99. com

Hầu hết các trang web trên internet hiển thị các yếu tố từ các lĩnh vực khác như quảng cáo. Các miền phục vụ các phần tử này cũng có thể đặt cookie của riêng chúng. Chúng được gọi là cookie của bên thứ ba

Cookie do người dùng tạo chỉ có thể hiển thị với họ. Người dùng khác không thể nhìn thấy giá trị của nó

Hầu hết các trình duyệt web đều có tùy chọn tắt cookie, cookie của bên thứ ba hoặc cả hai

Nếu trường hợp này xảy ra thì PHP sẽ phản hồi bằng cách chuyển mã thông báo cookie vào URL

Sơ đồ hiển thị bên dưới minh họa cách thức hoạt động của cookie

Nhận cookie PHP

Nơi đây,

1) Người dùng yêu cầu trang lưu trữ cookie

2) Máy chủ đặt cookie trên máy tính của người dùng

3) Các yêu cầu trang khác từ người dùng sẽ trả lại tên và giá trị cookie

Trong hướng dẫn này, bạn sẽ học-

Tại sao và khi nào nên sử dụng Cookies?

  • Http là một giao thức không trạng thái; . Đường dẫn cookie được lưu trữ tùy thuộc vào trình duyệt. Internet Explorer thường lưu trữ chúng trong thư mục Tệp Internet tạm thời
  • Cá nhân hóa trải nghiệm người dùng – điều này đạt được bằng cách cho phép người dùng chọn tùy chọn của họ. Trang được yêu cầu theo dõi được cá nhân hóa dựa trên các tùy chọn đã đặt trong cookie
  • Theo dõi các trang được truy cập bởi người dùng

Bây giờ hãy xem cú pháp cơ bản được sử dụng để tạo cookie

<?php

setcookie(cookie_name, cookie_value, [expiry_time], [cookie_path], [domain], [secure], [httponly]);

?>

NƠI ĐÂY,

  • Php“setcookie” là hàm PHP dùng để tạo cookie
  • “cookie_name” là tên của cookie mà máy chủ sẽ sử dụng khi truy xuất giá trị của nó từ biến mảng $_COOKIE. Nó bắt buộc
  • “cookie_value” là giá trị của cookie và giá trị bắt buộc của nó
  • “[expiry_time]” là tùy chọn; . Thời gian được đặt bằng cách sử dụng các hàm time() của PHP cộng hoặc trừ một số giây lớn hơn 0 i. e. time() + 3600 trong 1 giờ
  • “[cookie_path]” là tùy chọn; . Dấu gạch chéo lên “/” có nghĩa là cookie sẽ được cung cấp trên toàn bộ miền. Các thư mục con giới hạn quyền truy cập cookie vào tên miền phụ
  • “[miền]” là tùy chọn, nó có thể được sử dụng để xác định hệ thống phân cấp truy cập cookie i. e.
    <?php
         setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds
         echo 'the cookie has been set for 60 seconds';
    ?>
    0 có nghĩa là toàn bộ miền trong khi
    <?php
         setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds
         echo 'the cookie has been set for 60 seconds';
    ?>
    1 giới hạn quyền truy cập cookie đối với
    <?php
         setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds
         echo 'the cookie has been set for 60 seconds';
    ?>
    1 và các miền phụ của nó. Lưu ý rằng có thể có tên miền phụ của tên miền phụ miễn là tổng số ký tự không vượt quá 253 ký tự
  • “[secure]” là tùy chọn, giá trị mặc định là sai. Nó được sử dụng để xác định xem cookie có được gửi qua https nếu nó được đặt thành true hay http nếu nó được đặt thành false
  • “[Httponly]” là tùy chọn. Nếu nó được đặt thành true, thì chỉ các ngôn ngữ kịch bản phía máy khách i. e. JavaScript không thể truy cập chúng

Ghi chú. chức năng cookie đặt php phải được thực thi trước thẻ mở HTML

Bây giờ hãy xem một ví dụ sử dụng cookie

Chúng tôi sẽ tạo một chương trình cơ bản cho phép chúng tôi lưu trữ tên người dùng trong cookie sẽ hết hạn sau mười giây

Đoạn mã dưới đây cho thấy việc triển khai ví dụ “cookies” ở trên. php”

<?php
     setcookie("user_name", "Guru99", time()+ 60,'/'); // expires after 60 seconds
     echo 'the cookie has been set for 60 seconds';
?>

đầu ra

the cookie has been set for 60 seconds

Tạo một tệp khác có tên “cookies_read. php” với đoạn mã sau

<?php
     print_r($_COOKIE);    //output the contents of the cookie array variable 
?>

đầu ra

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Ghi chú. $_COOKIE là một PHP được xây dựng trong biến siêu toàn cầu

Nó chứa tên và giá trị của tất cả các cookie đã đặt

Số giá trị mà

Mảng $_COOKIE có thể chứa tùy thuộc vào kích thước bộ nhớ được đặt trong php. ban đầu

Giá trị mặc định là 1GB

Kiểm tra ứng dụng của chúng tôi

Giả sử bạn đã lưu các tệp PHP của mình trong thư mục phptus

  • Bước 1 – mở trình duyệt web của bạn và nhập URL http. //localhost/phptuts/cookies_read. php

Nhận cookie PHP

Ghi chú. Chỉ một mảng trống đã được hiển thị

  • Bước 2 – Trình duyệt đến URL http. //localhost/phptuts/cookie. php

Nhận cookie PHP

  • Bước 3 – Chuyển về tab đầu tiên, sau đó nhấp vào nút làm mới

Nhận cookie PHP

Đợi một phút rồi nhấp lại vào nút làm mới. Bạn đã nhận được kết quả gì?

Xóa Cookies

  • Nếu bạn muốn hủy cookie trước khi hết hạn, thì bạn đặt thời gian hết hạn thành thời gian đã trôi qua
  • Tạo một trường mới có tên hủy cookie. php với đoạn mã sau
<?php

 setcookie("user_name", "Guru99", time() - 360,'/');

?>
  • Lặp lại các bước từ 1 đến 3 từ phần trên để truy xuất các giá trị cookie
  • Mở địa chỉ http. //localhost/phptuts/cookie_destroy. php
  • Chuyển sang URL http. //localhost/phptuts/cookies_read. php nó hiển thị kết quả gì?

Phiên là gì?

  • Phiên là một biến toàn cầu được lưu trữ trên máy chủ
  • Mỗi phiên được gán một id duy nhất được sử dụng để truy xuất các giá trị được lưu trữ
  • Bất cứ khi nào một phiên được tạo, một cookie chứa id phiên duy nhất sẽ được lưu trữ trên máy tính của người dùng và được trả về với mọi yêu cầu tới máy chủ. Nếu trình duyệt máy khách không hỗ trợ cookie, id phiên php duy nhất sẽ được hiển thị trong URL
  • Phiên có khả năng lưu trữ dữ liệu tương đối lớn so với cookie
  • Các giá trị phiên sẽ tự động bị xóa khi đóng trình duyệt. Nếu bạn muốn lưu trữ các giá trị vĩnh viễn, thì bạn nên lưu trữ chúng trong cơ sở dữ liệu
  • Cũng giống như biến mảng $_COOKIE, các biến phiên được lưu trữ trong biến mảng $_SESSION. Giống như cookie, phiên phải được bắt đầu trước bất kỳ thẻ HTML nào

Tại sao và khi nào nên sử dụng Phiên?

  • Bạn muốn lưu trữ thông tin quan trọng như id người dùng một cách an toàn hơn trên máy chủ nơi những người dùng độc hại không thể kiểm soát chúng
  • Bạn muốn chuyển giá trị từ trang này sang trang khác
  • Bạn muốn thay thế cookie trên các trình duyệt không hỗ trợ cookie
  • Bạn muốn lưu trữ các biến toàn cục theo cách hiệu quả và an toàn hơn so với việc chuyển chúng vào URL
  • Bạn đang phát triển một ứng dụng như giỏ hàng phải lưu trữ thông tin tạm thời với dung lượng lớn hơn 4KB

Tạo một phiên

Để tạo một phiên, trước tiên bạn phải gọi hàm session_start của PHP và sau đó lưu các giá trị của bạn vào biến mảng $_SESSION

Giả sử chúng ta muốn biết số lần một trang đã được tải, chúng ta có thể sử dụng một phiên để làm điều đó

Truy cập Cookie bằng PHP . Ví dụ sau sẽ truy cập tất cả các cookie được đặt trong ví dụ trên. Bạn có thể sử dụng chức năng isset() để kiểm tra xem cookie có được đặt hay không. use either $_COOKIE or $HTTP_COOKIE_VARS variables. Following example will access all the cookies set in above example. You can use isset() function to check if a cookie is set or not.
Truy cập giá trị cookie . Nó thường là một mảng kết hợp chứa danh sách tất cả các giá trị cookie được gửi bởi trình duyệt trong yêu cầu hiện tại, được khóa bởi tên cookie. The PHP $_COOKIE superglobal variable is used to retrieve a cookie value. It typically an associative array that contains a list of all the cookies values sent by the browser in the current request, keyed by cookie name.
Cookie là một tệp nhỏ mà máy chủ nhúng vào máy tính của người dùng . Mỗi khi cùng một máy tính yêu cầu một trang có trình duyệt, nó cũng sẽ gửi cookie. Với PHP, bạn có thể tạo và truy xuất các giá trị cookie.
Tất cả tên cookie được lưu trữ trong $_COOKIE dưới dạng "Tên" => "giá trị". Chỉ cần xuất các khóa của mảng $_COOKIE và bạn sẽ có tên của mình. ) Lưu câu trả lời này.