Monday, March 9, 2020
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP
Tân Hồng IT
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP
    • All
    • PHP căn bản
    • PHP OOP
    lap trinh huong doi tuong oop php la gi

    PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

    lo trinh hoc php

    Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

    xu ly ngoai le php exception

    Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

    kiem tra du lieu isset php

    Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

    date time xu ly thoi gina ngay thang php

    Bài 17: Xử lý date time ngày tháng trong PHP

No Result
View All Result
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP
    • All
    • PHP căn bản
    • PHP OOP
    lap trinh huong doi tuong oop php la gi

    PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

    lo trinh hoc php

    Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

    xu ly ngoai le php exception

    Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

    kiem tra du lieu isset php

    Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

    date time xu ly thoi gina ngay thang php

    Bài 17: Xử lý date time ngày tháng trong PHP

No Result
View All Result
Tân Hồng IT
No Result
View All Result
Home Back-End

Bài 14: Cookie là gì? Cookie trong PHP

by Tân Hồng IT
17/02/2020
in Back-End, Code Website, Development, Khoá Học, Kiến thức, Kiến thức lập trình, Learn PHP, PHP, PHP căn bản, Web Development
0
ADVERTISEMENT

Contents

  1. 3 bước để xác định người dùng trả về
  2. Một số thông tin về Cookie
  3. Thiết lập Cookie trong PHP
    1. Các thuộc tính thành phần của Cookie
  4. Đọc – Truy cập – Sử dụng cookie trong PHP
  5. Cách xoá Cookie
  6. Kiểm tra Cookie có được bật hay không

Cookie, hay HTTP cookie, web cookie, browser cookie, cookie trong PHP là một đoạn dữ liệu nhỏ được gửi từ phía website và lưu trữ ở trình duyệt của người dùng client khi họ duyệt website này. Mỗi lần người dùng load website, trình duyệt sẽ tự động gửi cookie về web server để thông báo cho website biết các hành động trước đó của người dùng.

cookie trong php
Cookie là gì? Cookie trong PHP

Cookie thường được sử dụng để xác định người dùng. Cookie được thiết kế để trở thành một cơ chế đáng tin cậy, giúp website ghi nhớ các thông tin trạng thái hoặc lưu trữ các hoạt động của người dùng.

3 bước để xác định người dùng trả về

  1. Script phía Server gửi một tập các Cookie cho trình duyệt. Ví dụ: tên, tuổi, địa chỉ …
  2. Trình duyệt sẽ lưu trữ thông tin này trên máy local để sử dụng trong tương lại.
  3. Lần tiếp theo khi trình duyệt gửi bất cứ yêu cầu nào cho Web Server, nó sẽ gửi các thông tin Cookie đó cho Server và Server sẽ sử dụng thông tin đó để xác định người dùng này.

Một số thông tin về Cookie

  • Cookie được lưu trữ theo cặp thông tin key/value
  • Cookie được lưu ở trình duyệt người dùng và có thể truy xuất từ server khi người dùng truy cập trang
  • Thời gian sống của cookie được quy định tối đa ba năm
  • Cookie có tầm ảnh hưởng đến các vùng trên server cho chúng ta quy định

Cookie sẽ không bị mất khi bạn đóng ứng dụng, nó phụ thuộc vào thời gian sống mà bạn thiết lập cho nó.

Cookie được tạo ra bởi website và gởi tới trình duyệt, do vậy 2 website khác nhau (cho dù có cùng host trên 1 server) sẽ có 2 cookie khác nhau gởi tới trình duyệt.

Ngoài ra, mỗi trình duyệt quản lý và lưu trữ cookie theo cách riêng của mình, cho nên 2 trình duyệt cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau.

Mỗi trình duyệt web có thể lưu trữ ít nhất 300 cookie trong một file 4KB, và ít nhất 20 cookie trên mỗi server hay domain.

Thiết lập Cookie trong PHP

Để thiết lập cookie trong PHP ta sử dụng cú pháp setcookie().

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

Các thuộc tính thành phần của Cookie

  • $name: Tên cookie
  • $value: Giá trị cookie (mặc định chuổi rỗng)
  • $expire: Thời gian sống cookie, nếu được thiết lập 0 thì sau khi tắt trình duyệt cookie tự mất. Thời gian sống tối đa là 3 năm. Thời gian được thiết lập sử dụng PHP function time() để cộng trừ một số giây lớn hơn 0 tức là time() + 3600 là set thời hạn cookie trong 1 giờ.
  • $path: Đường dẫn trên server mà cookie có hiệu lực. Nếu được thiết lập là / thì cookie có hiệu lực với tất cả các file trên server.
  • $domain: Tên miền cookie có hiệu lực. ( Bạn có thể set tối đa 253 ký tự.)
  • $secure: là một thuộc tính bảo mật được enabled khi sử dụng HTTPS, đảm bảo việc cookie luôn được mã hóa khi chuyển từ client đến server, giúp nó tránh khỏi việc bị nghe trộm làm lộ thông tin. Nó có thể được thiết lập thành 1 để chỉ rằng Cookie này chỉ được gửi bằng truyền dẫn an toàn sử dụng HTTPS, ngược lại nếu thiết lập thành 0, nó có nghĩa rằng Cookie có thể gửi bằng HTTP thông thường.
  • $httpOnly: thuộc tính này của cookie được hỗ trở bởi hầu hết các trình duyệt. Một HttpOnly session cookie sẽ chỉ được sử dụng trong một HTTP (hoặc HTTPS) request, do đó hạn chế bị truy cập bởi các non-HTTP APIs chẳng hạn Javascript. Việc hạn chế này làm giảm nhẹ nhưng không loại trừ việc đánh cắp cookie thông qua lỗ hổng Cross-site scripting (XSS).

2 thành phần đầu tiên là $name và $value là bắt buộc phải có, các thành phần còn lại là tuỳ chọn.

Ví dụ: tạo 1 file cookie.php có cookie lưu thông tin tên và tuổi của 1 sinh viên:

<?php
   setcookie("name", "Larva Thuận", time()+3600, "/","", 0);
   setcookie("age", "20", time()+3600, "/", "",  0);
?>
<html>
   <head>
      <title>Thiết lập Cookie trong PHP</title>
   </head>
   <body>
      <?php echo "Thiết lập Cookie"?>
   </body>
</html>

Đọc – Truy cập – Sử dụng cookie trong PHP

Do tất cả Cookie được lưu trữ trong biến toàn cục $_COOKIE, nên để lấy giá trị của Cookie ta chỉ việc truy xuất vào biến này.

Ngoài ra ta cũng có thể lấy giá trị của cookie thông qua biến  $HTTP_COOKIE_VARS nhưng cách này không khuyên khích dùng.

Cú pháp: $_COOKIE['value'];

Từ ví dụ về file cookie.php trên ta sẽ tiếp tục tạo file index.php để lấy dữ liệu cookie đã được lưu trong trình duyệt.

<html>
   <head>
      <title>Thiết lập Cookie trong PHP</title>
   </head>
   <body>
      <?php
            echo $_COOKIE["name"]. "<br />";
            echo $_COOKIE["age"] . "<br />";
            ?>
   </body>
</html>

Các bạn hãy chạy file cookie.php trước rồi chạy file index.php sau, bạn sẽ thấy trình duyệt echo ra được thông tin tên và tuổi. Nếu như các bạn chạy file index.php trước mà chưa chạy file cookie.php thì trình duyệt sẽ báo lỗi không xác định dữ liệu trường giá trị. Vậy để không bị báo lỗi trên bạn chỉ cần sửa một chút trong file index.php bằng cách thêm hàm isset() để kiểm tra cookie đã được thiết lập hay chưa như sau:

<html>
   <head>
      <title>Thiết lập Cookie trong PHP</title>
   </head>
   <body>
      <?php
            if(isset($_COOKIE['name']) && isset($_COOKIE['age']))
            {
               echo $_COOKIE["name"]. "<br />";
               echo $_COOKIE["age"] . "<br />";
            }
            ?>
   </body>
</html>

Cách xoá Cookie

Để hủy (xoá) 1 cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:

  1. Khởi tạo đè cookie name và không truyền các tham số khác vào.
  2. Thiết lập lại thời gian sống cho Cookie về số âm là thời điểm trong quá khứ.

Ở cách 1, bạn sẽ sử dụng lại hàm setcookie() chỉ truyền vào mỗi tham số của thuộc tính name và không truyền thêm bất  kỳ thuộc tính nào khác.

Cú pháp: setcookie(“cookie name”);

Nhưng đối với cách khởi tạo đè cookie name này không phải lúc nào cũng hoạt động tốt, cho nên cách tốt nhất là cách 2: thiết lập lại thời gian sống cho cookie tại thời điểm ở quá khứ.

//thiết lạp lại thời gian hết hạn 1 giờ trước
setcookie("age", "20", time() - 3600, "/", "",  0);

Kiểm tra Cookie có được bật hay không

Ví dụ sau kiểm tra xem cookie có được bật hay không. Trước tiên, hãy thử tạo một cookie bằng hàm setcookie() trong PHP, sau đó đếm số phần tử của mảng mảng $_COOKIE.

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
      <?php
      if (count($_COOKIE) > 0) {
            echo "Cookies đang được bật.";
      } else {
            echo "Cookies đang bị tắt.";
      }
      ?>
</body>
</html>

Như vậy mình đã giới thiệu qua cho các bạn về cookie và những vấn đề liên quan đến cookie mà bạn cần nắm, bài viết mình xin dừng tại đây. Nếu có những vấn đề trọng tâm liên quan đến cookie mình sẽ làm một bài riêng sau, các bạn thông cảm nhé!

Qua bài học tiếp theo chúng ta sẽ xem qua về Session và cách thao tác với Session, hãy tiếp tục series học PHP căn bản ở bài viết tiếp theo nhé!

Nếu các bạn cảm thấy Website TanHongIT.Com thật sự hữu ích mình mong các bạn có thể chia sẻ những bài viết đến cho cộng đồng cùng thao khảo nhé. Cảm ơn các bạn !!!
Các bạn có bất kì thắc mắc cần được hỗ trợ hay yêu cầu các phần mềm, thủ thuật, khoá học,… thì cứ để lại comment bên dưới bài viết hoặc liên hệ qua fanpage của TanHongIT để được hỗ trợ nhé! Mình sẽ cố gắng chia sẻ cho các bạn mọi thứ cần thiết nhất!

Xem thêm:

  •  Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)
  • Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP
  • Bài 9: Hàm (Function) Trong PHP

  • Bài 10: Mảng (Array) Trong PHP
  • Bài 11: Các hàm xử lý mảng (Array) trong PHP
  • Bài 12: Chuỗi (String) Và Các Hàm Xử Lý Chuỗi Trong PHP
  • Bài 13: Phương thức GET và POST trong PHP

CHÚC CÁC BẠN THÀNH CÔNG VÀ VUI VẺ

5 / 5 ( 2 votes )
Tags: CodeCode WebKiến thứcKiến Thức Lập TrìnhLearn PHPLinuxPHPWeb DevelopmentWebsite
ShareTweetScanShare
Previous Post

Bài 4: Toán tử và biểu thức trong PHP

Next Post

Bài 5: Biểu Thức Điều Kiện Trong PHP (Lệnh if, else, switch)

Related Posts

lam viec code nguoi khac

Cách làm việc với code của người khác

09/03/2020
lap trinh huong doi tuong oop php la gi

PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

05/03/2020
lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

28/02/2020 - Updated on 06/03/2020
xu ly ngoai le php exception

Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

26/02/2020 - Updated on 04/03/2020
kiem tra du lieu isset php

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

24/02/2020
date time xu ly thoi gina ngay thang php

Bài 17: Xử lý date time ngày tháng trong PHP

23/02/2020
Next Post
bieu thuc dieu kien trong php

Bài 5: Biểu Thức Điều Kiện Trong PHP (Lệnh if, else, switch)

vong lap trong php

Bài 6: Các loại Vòng lặp trong PHP (for, while, do while)

vong lap foreach trong php

Bài 7: Vòng lặp Foreach trong PHP (Các loại vòng lặp phần 2)

lenh ham thuong dung trong php

Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest
lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

28/02/2020 - Updated on 06/03/2020
date time xu ly thoi gina ngay thang php

Bài 17: Xử lý date time ngày tháng trong PHP

23/02/2020
lenh ham thuong dung trong php

Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP

17/02/2020
ham xu ly file trong php

Bài 16: Các hàm xử lý và làm việc với file trong PHP

22/02/2020
hang va bien trong php

Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP

15/02/2020
gioi thieu ngon ngu lap trinh php

Bài 1: Ngôn ngữ lập trình PHP là gì và hướng dẫn thiết lập môi trường để lập trình PHP

1
lam viec code nguoi khac

Cách làm việc với code của người khác

0
apache web server

Apache là gì? Và Kiến thức về Apache Web Server

0
source code dong ho dong html5

Share đồng hồ động source code web html5 css js cực đẹp

0
kieu du lieu trong php

Bài 3: Những kiểu dữ liệu trong PHP

0
lam viec code nguoi khac

Cách làm việc với code của người khác

09/03/2020
lap trinh huong doi tuong oop php la gi

PHP OOP – Bài 1: Lập trình hướng đối tượng trong PHP là gì?

05/03/2020
lo trinh hoc php

Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

28/02/2020 - Updated on 06/03/2020
xu ly ngoai le php exception

Bài 19: Xử lý ngoại lệ trong PHP – PHP Exceptions

26/02/2020 - Updated on 04/03/2020
kiem tra du lieu isset php

Bài 18: Những hàm kiểm tra dữ liệu trong PHP (isset, empty,…)

24/02/2020
  • lo trinh hoc php

    Lộ trình học PHP từ cơ bản đến nâng cao chuyên nghiệp

    0 shares
    Share 0 Tweet 0
  • Bài 17: Xử lý date time ngày tháng trong PHP

    7 shares
    Share 7 Tweet 0
  • Bài 8: lệnh Break, Continue và các hàm (function) exit, die thường dùng trong PHP

    0 shares
    Share 0 Tweet 0
  • Bài 16: Các hàm xử lý và làm việc với file trong PHP

    0 shares
    Share 0 Tweet 0
  • Bài 2: Cú pháp trong PHP, Khai báo hằng và biến trong PHP

    0 shares
    Share 0 Tweet 0
Tân Hồng IT

Chia sẻ tài liệu, kiến thức, thủ thuật tin học, máy tính, khóa học, lập trình, giải trí tin học công nghệ IT

DMCA.com Protection Status
  • About

© 2020 - Tutorial, tips, tricks Information technology knowledge by TanHongIT.

No Result
View All Result
  • Back-End
    • PHP
      • PHP căn bản
      • PHP OOP
  • Learn PHP
  • Khoá Học
  • PHP

© 2020 - Tutorial, tips, tricks Information technology knowledge by TanHongIT.