Biến siêu toàn cục nào sau đây trong php chứa tất cả các cookie trong request http

Biến toàn cục (hay superglobals) là biến được PHP định nghĩa sẵn và có thể sử dụng bất kì đâu trong toàn bộ chương trình.

Các biến toàn cục trong PHP:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

II. Biến $GLOBALS

Biến $GLOBALS là một biến toàn cục chứa tất cả những biến khác được khai báo trong chương trình. Nó cung cấp cho lập trình viên một cách thức truy cập đến tất cả các biến trong chương trình một cách toàn cục.

Ví dụ:

Đoạn chương trình trên sẽ báo lỗi vì biến $x không phải là một biến toàn cục. Để gọi biến $x trong hàm getX(), sử dụng biến $GLOBALS như sau:

Ví dụ thực hiện phép toán

Biến siêu toàn cục nào sau đây trong php chứa tất cả các cookie trong request http

Hình 49 Kết quả sử dụng $GLOBALS

III. Biến $_SERVER

Biến $_SERVER trong PHP cung cấp những thông tin liên quan đến server, host, đường dẫn, v.v…

"; echo $_SERVER['SERVER_NAME']; echo "
"; echo $_SERVER['HTTP_HOST']; echo "
"; echo $_SERVER['HTTP_USER_AGENT']; echo "
"; echo $_SERVER['SCRIPT_NAME']; ?>

Biến siêu toàn cục nào sau đây trong php chứa tất cả các cookie trong request http

Hình 50 Xem thông tin của biến $_SERVER

IV. Biến $_GET

Biến $_GET dùng để lấy dữ liệu do người dùng nhập được truyền từ form và dữ liệu được truyền trực tiếp thông qua URL.

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. Thường được sử dụng để xác định người dùng. Mỗi khi máy tính gửi yêu cầu tới một trang có trình duyệt, nó cũng sẽ gửi cookie. 

Theo một định nghĩa khác, Cookie là một đoạn văn bản mà một Web server có thể lưu trên ổ cứng của người dùng. Cookie cho phép một website lưu các thông tin trên máy tính của người dùng và sau đó lấy lại nó. Các mẩu thông tin sẽ được lưu dưới dạng cặp tên – giá trị (name-value).

PHP hỗ trợ Cookie HTTP. 

Có ba bước liên quan đến việc xác định người dùng cũ như sau:

  • Tập lệnh của máy chủ gửi một tập hợp các cookie đến trình duyệt. Ví dụ như tên, tuổi, hoặc ID,...
  • Trình duyệt sẽ lưu trữ các thông tin này trên máy tính để sử dụng trong tương lai
  • Lần tới, khi bạn truy cập vào trang mà lần trước đó bạn đã vào, trình duyệt gửi bất kỳ yêu cầu nào đến máy chủ web thì nó sẽ gửi thông tin cookie đó đến máy chủ và máy chủ sử dụng thông tin đó để xác định người dùng.      

>>> Đọc thêm: PHP IDE là gì? Top IDE tốt nhất năm 2021

Cookie thường được đặt trong tiêu đề HTTP (mặc dù JavaScript cũng có thể đặt cookie trực tiếp trên trình duyệt). Một tập lệnh PHP đặt cookie có thể gửi các tiêu đề trông giống như thế này:

HTTP/1.1 200 OK

Date: Fri, 04 Feb 2000 21:03:38 GMT

Server: Apache/1.3.9 (UNIX) PHP/4.0b3

Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 

                 path=/; domain=tutorialspoint.com

Connection: close

Content-Type: text/html

Như bạn có thể thấy, tiêu đề Set-Cookie chứa một cặp giá trị tên, ngày GMT, đường dẫn và miền. Tên và giá trị sẽ được mã hóa URL. Trường hết hạn là một hướng dẫn để trình duyệt "quên" cookie sau thời gian và ngày nhất định.

Nếu trình duyệt được định cấu hình để lưu trữ cookie, thì trình duyệt sẽ giữ thông tin này cho đến ngày hết hạn. Nếu người dùng trỏ trình duyệt vào bất kỳ trang nào phù hợp với đường dẫn và miền của cookie, nó sẽ gửi lại cookie đến máy chủ. Tiêu đề của trình duyệt có thể trông giống như thế này -

GET / HTTP/1.0

Connection: Keep-Alive

User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)

Host: zink.demon.co.uk:1126

Accept: image/gif, */*

Accept-Encoding: gzip

Accept-Language: en

Accept-Charset: iso-8859-1,*,utf-8

Cookie: name=xyz

Sau đó, một tập lệnh PHP sẽ có quyền truy cập vào cookie trong các biến môi trường $ _COOKIE hoặc $ HTTP_COOKIE_VARS [], các biến này chứa tất cả các tên và giá trị cookie. Cookie trên có thể được truy cập bằng $ HTTP_COOKIE_VARS ["name"].

>>> Đọc thêm: PHP và C- Điểm khác biệt và tương đồng 

PHP cung cấp hàm setcookie () để đặt cookie. Hàm này yêu cầu tối đa sáu đối số và phải được gọi trước thẻ . Đối với mỗi cookie, chức năng này phải được gọi riêng.

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

Đây là chi tiết của tất cả các đối số -

  • Name - Điều này đặt tên của cookie và được lưu trữ trong một biến môi trường có tên là HTTP_COOKIE_VARS. Biến này được sử dụng khi truy cập cookie.
  • Value- Giá trị này đặt giá trị của biến được đặt tên và là nội dung mà bạn thực sự muốn lưu trữ.
  • Expire- Điều này chỉ định thời gian trong tương lai tính bằng giây kể từ 00:00:00 GMT ngày 1 tháng 1 năm 1970. Sau thời gian này, cookie sẽ không thể truy cập được. Nếu tham số này không được đặt thì cookie sẽ tự động hết hiệu lực khi Trình duyệt web bị đóng.
  • Path- Điều này chỉ định các thư mục mà cookie hợp lệ. Một ký tự gạch chéo chuyển tiếp duy nhất cho phép cookie hợp lệ cho tất cả các thư mục.
  • Domain- Tên miền này có thể được sử dụng để chỉ định tên miền trong các miền rất lớn và phải chứa ít nhất hai dấu chấm để có hiệu lực. Tất cả cookie chỉ hợp lệ cho máy chủ và miền đã tạo ra chúng.
  • Security- Điều này có thể được đặt thành 1 để chỉ định rằng cookie chỉ nên được gửi bằng cách truyền an toàn sử dụng HTTPS, nếu không được đặt thành 0 có nghĩa là cookie có thể được gửi bằng HTTP thông thường.

Ví dụ sau sẽ tạo tên hai cookie và tuổi các cookie này sẽ hết hạn sau một giờ.





   

   

      Setting Cookies with PHP

   

   

   

      

   

   

Để xóa Cookie một cách đơn giản và chính thực, bạn nên gọi hàm setcookie() với đối số tên. Tuy nhiên, điều này không phải lúc nào cũng hoạt động tốt, do bạn bạn không nên quá phụ thuộc vào cách này.

Cách an toàn nhất là đặt cookie với ngày đã hết hạn trước đó, như sau:





   

   

      Deleting Cookies with PHP

   

   

   

      

   

 

Kết luận: Trên đây là các thông tin về cookie trong PHP cùng các trường hợp sử dụng PHP cụ thể. Với vai trò lưu trữ thông tin, cookie có thể tạo điều kiện thuận lợi cho người dùng. Hy vọng các thông tin trên hữu ích với bạn trong quá trình làm việc với PHP. Tìm hiểu thêm về PHP và các ngôn ngữ lập trình khác qua các khóa học lập trình tại tại Viện công nghệ thông tin T3H bạn nhé!