Phiên và cookie hoạt động như thế nào trong PHP?
Khi bạn làm việc với một ứng dụng, bạn mở ứng dụng đó, thực hiện một số thay đổi rồi đóng ứng dụng đó. Điều này giống như một Phiên. Máy tính biết bạn là ai. Nó biết khi nào bạn bắt đầu ứng dụng và khi nào bạn kết thúc. Nhưng trên internet có một vấn đề. máy chủ web không biết bạn là ai hoặc bạn làm gì vì địa chỉ HTTP không duy trì trạng thái Show
Biến phiên giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang (e. g. tên người dùng, màu sắc yêu thích, v.v.). Theo mặc định, các biến phiên kéo dài cho đến khi người dùng đóng trình duyệt Cho nên; Mẹo. Nếu bạn cần lưu trữ vĩnh viễn, bạn có thể muốn lưu trữ dữ liệu trong cơ sở dữ liệu Bắt đầu một phiên PHPMột phiên được bắt đầu với chức năng Các biến phiên được đặt với biến toàn cục PHP. $_SESSION Bây giờ, hãy tạo một trang mới có tên "demo_session1. php". Trong trang này, chúng tôi bắt đầu một phiên PHP mới và đặt một số biến phiên Ví dụ// Bắt đầu phiên // Đặt biến phiên Ghi chú. Hàm Nhận các giá trị biến phiên PHPTiếp theo, chúng tôi tạo một trang khác có tên "demo_session2. php". Từ trang này, chúng tôi sẽ truy cập thông tin phiên mà chúng tôi đã đặt trên trang đầu tiên ("demo_session1. php") Lưu ý rằng các biến phiên không được chuyển riêng lẻ cho từng trang mới, thay vào đó chúng được truy xuất từ phiên mà chúng tôi mở ở đầu mỗi trang (_______0) Cũng lưu ý rằng tất cả các giá trị biến phiên được lưu trữ trong biến $_SESSION toàn cầu Ví dụsession_start(); // Echo các biến phiên đã được đặt ở trang trước Một cách khác để hiển thị tất cả các giá trị biến phiên cho phiên người dùng là chạy đoạn mã sau Ví dụsession_start(); print_r($_SESSION); Làm thế nào nó hoạt động? Hầu hết các phiên đặt khóa người dùng trên máy tính của người dùng trông giống như thế này. 765487cf34ert8dede5a562e4f3a7e12. Sau đó, khi một phiên được mở trên một trang khác, nó sẽ quét máy tính để tìm khóa người dùng. Nếu khớp thì truy cập phiên đó, nếu không thì bắt đầu phiên mới Cookie được phát minh lần đầu tiên vào năm 1994 bởi một lập trình viên máy tính tên là Lou Montulli. Không có chúng, web sẽ là một nơi hoàn toàn khác. Cho dù bạn đăng nhập vào back-end của trang web WordPress hay đóng cửa sổ bật lên gây phiền nhiễu, bạn sử dụng và tương tác với cookie mỗi ngày (ngay cả khi bạn không nhận ra điều đó) Đến đây, có lẽ bạn đã đoán được rằng khi chúng tôi đề cập đến cookie, chúng tôi muốn nói đến những cookie được sử dụng để lưu trữ thông tin quan trọng của khách truy cập trên một trang web, chứ không phải loại bánh quy sô cô la ngon tuyệt. 🍪 Hôm nay chúng ta sẽ đi sâu vào chủ đề đôi khi khó hiểu về cookie và phiên PHP. Cụ thể, mọi thứ bạn cần biết về cách WordPress sử dụng chúng, cùng với một số vấn đề phổ biến mà bạn nên biết (đặc biệt là với tư cách là nhà phát triển) khi lưu trữ trang web, mã tùy chỉnh hoặc sử dụng plugin của bên thứ ba. Theo ý kiến của chúng tôi, chủ đề này không được thảo luận đủ Cookie là gì?Cookie (còn được gọi là cookie web, cookie theo dõi, cookie HTTP, cookie trình duyệt) là một phần dữ liệu nhỏ được lưu trữ bởi trình duyệt của người dùng (Chrome, Firefox, v.v. ) khi họ truy cập một trang web. Nó chứa thông tin liên quan đến hoạt động duyệt web và thường được sử dụng để cá nhân hóa trải nghiệm của người dùng hoặc cho mục đích xác thực và xác minh. Cookie phiên và cookie liên tục là các loại cookie phổ biến Hỗ trợ Các loại CookieCó hai loại cookie khác nhau thường được đặt. cookie phiên và cookie liên tục Cookie phiênCookie phiên, còn được gọi là cookie tạm thời, là tạm thời. Chúng không đính kèm ngày hết hạn và chỉ lưu trữ thông tin về những gì người dùng thực hiện trong một phiên duy nhất. Phiên chỉ đơn giản là một giá trị được tạo ngẫu nhiên/duy nhất được chỉ định khi ai đó truy cập trang web. Cookie phiên được lưu trữ tạm thời trong bộ nhớ và tự động bị xóa khi đóng trình duyệt hoặc phiên kết thúc Cách đọc được đề nghị. Cách cải thiện giới hạn bộ nhớ PHP trong WordPress Cookie liên tụcNhư bạn có thể đoán, cookie liên tục là những cookie có ngày hết hạn. Những thứ này tồn tại lâu hơn nhiều và được lưu trữ trên đĩa cho đến khi chúng hết hạn hoặc được người dùng xóa theo cách thủ công. Đôi khi chúng còn được gọi là “cookie theo dõi”, vì đây là những loại cookie mà Google Analytics, AdRoll, Stripe, v.v. tất cả sử dụng Chương trình liên kết Kinsta của chúng tôi là một ví dụ khác. Cookie 60 ngày được đặt trong trình duyệt của người dùng khi họ nhấp vào liên kết liên kết. Điều này đảm bảo rằng người giới thiệu nhận được tín dụng phù hợp, ngay cả khi người đó đã đóng và mở lại trình duyệt của họ nhiều lần Cách WordPress Core sử dụng cookieKhi chúng tôi đề cập đến lõi WordPress, chúng tôi chỉ muốn nói đến các tệp tạo nên dự án nguồn mở, trước khi cài đặt bất kỳ plugin hoặc chủ đề của bên thứ ba nào. Đó là WordPress ở trạng thái tự nhiên như chúng tôi muốn gọi nó Bây giờ bạn đã biết những điều cơ bản về cookie là gì và các loại khác nhau, hãy xem lý do và cách lõi WordPress sử dụng chúng để biến tất cả điều kỳ diệu đó xảy ra đằng sau hậu trường. Sự thật thú vị. Cookie ban đầu được bắt nguồn từ thuật ngữ “. ” Lõi WordPress sử dụng cookie cho hai mục đích khác nhau 1. Cookie đăng nhậpCookie đăng nhập chứa chi tiết xác thực và được sử dụng khi người dùng đăng nhập vào trang tổng quan quản trị WordPress. Theo WordPress Codex, một vài cookie phiên khác nhau được đặt
Khi bạn cố truy cập vào back-end của trang web WordPress của mình, quá trình kiểm tra sẽ được thực hiện để xem liệu hai cookie ở trên có tồn tại và chưa hết hạn hay không. Đây là thứ cho phép bạn bỏ qua màn hình WordPress cũng đặt _______ cookie. ID là ID người dùng của bạn từ bảng cơ sở dữ liệu người dùng WordPress. Điều này lưu trữ cài đặt giao diện quản trị và bảng điều khiển cá nhân 2. Nhận xét cookieTheo mặc định, có các cookie được đặt khi ai đó nhận xét về một bài đăng trên blog (hết hạn là 347 ngày). Điều này là để nếu họ quay lại sau, họ không phải điền lại tất cả thông tin. Ba cookie sau được lưu trữ
Tuy nhiên, với những thay đổi chính sách quyền riêng tư gần đây do GDPR, lõi WordPress đã giới thiệu các công cụ mới để đảm bảo bạn cho phép người dùng chọn tham gia đặt các cookie này. Cài đặt này, nếu chưa được đặt, có thể được bật trong “Cài đặt → Thảo luận” trong bảng điều khiển quản trị viên WordPress của bạn. Chọn tùy chọn để “Hiển thị hộp kiểm chọn tham gia cookie nhận xét. ” Plugin Akismet phổ biến cũng cho phép bạn hiển thị thông báo về quyền riêng tư cách nhận xét cookie chọn tham giaCách các plugin và chủ đề WordPress của bên thứ ba sử dụng cookieGiống như WordPress sử dụng cookie cho một số chức năng nhất định, plugin và chủ đề của bên thứ ba mà bạn cài đặt cũng đặt cookie. Hầu hết trong số họ sử dụng kết hợp cookie của trình duyệt và các hàng cơ sở dữ liệu được lưu trữ trong bảng
Với các luật mới về quyền riêng tư, điều quan trọng hơn bao giờ hết là phải thực sự hiểu cookie nào đang được đặt và liệu chúng có cung cấp cách thức để khách truy cập của bạn chọn tham gia hay không. Mẹo. không phải tất cả cookie đều yêu cầu chọn tham gia. Đọc bài viết chuyên sâu của chúng tôi về GDPR để hiểu rõ hơn về các yêu cầu mới Đây chỉ là một vài trong số rất nhiều ví dụ về mục đích sử dụng cookie
Về cơ bản, bất kỳ hành động hoặc chọn tham gia nào trên trang web WordPress, thường sẽ liên quan đến việc đặt cookie trong trình duyệt phía sau hậu trường. Tất nhiên, mục tiêu của việc này là để thử và giúp cải thiện trải nghiệm trình duyệt hoặc cung cấp chức năng bổ sung thông qua xác minh Cookie WooC CommerceCác plugin thương mại điện tử như WooC Commerce thường có cookie bổ sung của riêng họ mà họ đặt để người mua có thể dễ dàng thêm mọi thứ vào giỏ hàng của họ, lưu trữ sau này khi họ thanh toán cũng như đăng nhập và đăng xuất khỏi tài khoản của họ Để theo dõi dữ liệu giỏ hàng, WooC Commerce đặt ba cookie sau (không có thông tin cá nhân nào được lưu trữ trong cookie)
Hai cookie đầu tiên chứa thông tin về giỏ hàng và chỉ giúp WooC Commerce biết khi dữ liệu giỏ hàng thay đổi. Cookie thứ ba Dữ liệu Cookie tải xuống kỹ thuật số dễ dàngEasy Digital Downloads theo mặc định sử dụng WP_Session, là sự kết hợp giữa cookie của trình duyệt và các hàng cơ sở dữ liệu được lưu trữ trong bảng
Cookie và bộ nhớ đệm WordPressKhi nói đến bộ đệm WordPress, đây là lúc mọi thứ trở nên phức tạp. Bộ nhớ đệm về cơ bản là quá trình lưu trữ tài nguyên từ một yêu cầu và sử dụng lại các tài nguyên đó cho các yêu cầu tiếp theo. Về cơ bản, nó giảm số lượng công việc cần thiết để tạo một lượt xem trang. Mặc dù điều này rất tốt cho hiệu suất, nhưng nó lại gây ra sự cố khi nói đến cookie Đăng kí để nhận thư mớiBạn muốn biết làm thế nào chúng tôi tăng lưu lượng truy cập của mình hơn 1000%?Tham gia cùng hơn 20.000 người khác nhận bản tin hàng tuần của chúng tôi với các mẹo nội bộ về WordPress Tại sao? . Tuy nhiên, nếu một trang được cung cấp từ bộ đệm, cả PHP và cơ sở dữ liệu đều không làm gì cả, máy chủ chỉ cung cấp một bản sao tĩnh của trang vậy, bạn có thể làm gì? 1. Sử dụng JavaScriptTùy chọn đầu tiên sẽ là sử dụng JavaScript và cập nhật nội dung trên trang một cách linh hoạt. Về cơ bản, bạn có trình giữ chỗ HTML và sử dụng JavaScript để lấy thông tin qua lệnh gọi API hoặc ajax Một ví dụ sẽ tải danh sách các bài đăng trong thanh bên của WordPress bằng cách sử dụng JavaScript để lấy danh sách các bài đăng trên wp-api và sau đó hiển thị chúng trong thanh bên. Trong trường hợp đó, bạn có thể cập nhật danh sách các bài đăng mà không xóa trang khỏi bộ đệm vì dữ liệu được tạo động Tuy nhiên, đây không phải là lý tưởng, tốt hơn hết là nên lưu vào bộ đệm nếu có thể về mặt hiệu suất. Tuy nhiên, nếu bạn phải có một số nội dung duy trì ở trạng thái động trong khi bản thân trang có thể ở trạng thái tĩnh (được phân phát từ bộ nhớ đệm), thì đó là một cách để làm điều đó – hãy sử dụng JavaScript để tự động kéo nội dung của phần đó xuống trang thông qua API/ajax . Tuy nhiên, trừ khi bạn có thể thuê một nhà phát triển WordPress để xây dựng giải pháp JavaScript tùy chỉnh hoặc tiện ích mở rộng của plugin, tùy chọn này thường không thực tế 2. Sử dụng cuộc gọi quản trị-Ajax
Tuy nhiên, giống như với JavaScript, việc đi theo con đường này thường không khả thi đối với người dùng bình thường. Điều này cũng có thể dẫn đến các vấn đề về hiệu suất khác, chẳng hạn như mức sử dụng ajax của quản trị viên cao và nhiều yêu cầu chưa được lưu trong bộ nhớ cache 3. Loại trừ các trang khỏi bộ đệm (Khi có cookie)Xem kế hoạchTrừ khi bạn có thể đi xuống tuyến đường JavaScript hoặc quản trị viên-ajax, loại trừ các trang khỏi bộ nhớ đệm khi có một cookie cụ thể là cách tốt nhất để thực hiện. Đây thường là những gì chúng tôi khuyên dùng, đặc biệt là những trang chạy các trang web có tính năng động cao như WooC Commerce và Easy Digital Downloads Tại Kinsta, một số trang Tải xuống kỹ thuật số dễ dàng và WooC Commerce nhất định như giỏ hàng, tài khoản của tôi và thanh toán sẽ tự động bị loại khỏi bộ nhớ đệm. Có một quy tắc cấp máy chủ để người dùng tự động bỏ qua bộ nhớ đệm khi phát hiện thấy cookie Chúng tôi cũng lắng nghe các cookie đã đăng nhập được liên kết và đặt bộ đệm để bỏ qua khi chúng tôi phát hiện ra rằng ai đó đã đăng nhập vào WordPress. Việc ngăn không cho bảng điều khiển back-end vô tình được lưu vào bộ đệm Theo mặc định, chúng tôi không loại trừ cookie Tuy nhiên, do có nhiều cấu hình plugin và chủ đề WordPress khác nhau, chúng tôi có thể loại trừ cookie Đấu tranh với thời gian chết và các vấn đề về WordPress? . Kiểm tra các tính năng của chúng tôi Nếu bạn cần một trang tùy chỉnh được loại trừ khỏi bộ đệm, vui lòng mở một yêu cầu với nhóm hỗ trợ của chúng tôi. Một lần nữa, bạn phải cẩn thận khi loại trừ. Quá nhiều trang chưa được lưu trong bộ nhớ cache thực sự có thể làm giảm hiệu suất. Kiểm tra những điều nên làm và không nên làm khi lưu trữ các trang web thành viên WordPress Cách xem và xóa cookieThật dễ dàng để xem và xóa cookie trên một trang web. Để xem cookie nào được đặt trên một trang web cụ thể, hãy duyệt đến trang web đó và nhấp vào biểu tượng ổ khóa nhỏ ở trên cùng. Sau đó bấm vào “Cookies. ” Cookie đang sử dụngSau đó đi sâu vào thư mục của trang web đó. Trong ví dụ bên dưới, bạn có thể thấy rằng chúng tôi đã đặt một vài cookie WooC Commerce, cũng như cookie Để xóa cookie, chỉ cần nhấp vào từng cookie và nhấp vào nút "Xóa". Bạn cũng có thể thực hiện việc này ở cấp thư mục hoặc trong Chrome DevTools Xóa cookie cũng có thể giúp bạn khắc phục lỗi 304 Ngoài ra, bạn có thể tìm kiếm hoặc xóa tất cả cookie trong trình duyệt của mình GDPR và CookieGDPR là một luật mới về quyền riêng tư có hiệu lực vào ngày 25 tháng 5 năm 2018. Nó được thiết kế để cung cấp cho công dân quyền kiểm soát dữ liệu cá nhân của họ. Chúng tôi thực sự khuyên bạn nên đọc bài viết chuyên sâu của chúng tôi. hạ thấp mức độ tuân thủ GDPR nếu bạn chưa có. Đây là một chủ đề không thể tóm tắt trong một đoạn văn Đây là ví dụ về một thay đổi mà chúng tôi đã thực hiện tại Kinsta để giúp tuân thủ luật mới. Khi bạn truy cập trang web của chúng tôi lần đầu tiên, bạn có thể đã nhìn thấy nó, bạn sẽ gặp lời nhắc “Chấp nhận cookie” ở cuối màn hình. Điều này là do chúng tôi hiện được yêu cầu về mặt pháp lý để cung cấp cho người dùng cách chọn tham gia và từ chối cookie được đặt. Đã qua rồi cái thời chỉ chạy bất cứ thứ gì bạn muốn mà không thông báo cho người dùng về việc thu thập dữ liệu Nếu bạn nhấp vào “Chấp nhận cookie”, thì tất cả cookie sẽ được đặt cho người dùng. Nếu bạn nhấp vào “Cài đặt cookie”, giờ đây chúng tôi cung cấp cách chọn tham gia và từ chối bất kỳ cookie nào bạn muốn Cài đặt cookieKhá tiện lợi phải không? . Một lần nữa, cookie chỉ là một phần nhỏ để trở nên hoàn toàn tuân thủ GDPR Phiên PHPCác phiên PHP là một giải pháp thay thế cho cách tiếp cận cookie tiêu chuẩn. Nó vẫn là một cookie nhưng được gọi là PHPSESSID và thường được lưu trữ trong thư mục Điều này cũng có thể được nhìn thấy dưới tiêu đề HTTP cho một trang web Tiêu đề HTTP đặt cookie PHPSESSIDMột phiên PHP giống như một phiên bình thường kết thúc khi người dùng đóng trình duyệt của họ Tất cả các vấn đề với các phiên PHP đều bắt nguồn từ các vấn đề về hiệu năng và bộ nhớ đệm. Thông tin được lưu trữ trong cookie của trình duyệt phải bật lên bật lại theo từng yêu cầu để máy chủ biết người dùng là ai. Điều này có nghĩa là đối với các trang web sử dụng PHPSESSID, máy chủ lưu trữ sẽ phải đặt PHPSESSID để bỏ qua bộ đệm. Tuy nhiên, kết quả là PHPSESSID sẽ phải được đặt để bỏ qua 100% thời gian, bởi vì không giống như Vì vậy, hãy tưởng tượng rằng Đó là vấn đề với việc sử dụng PHPSESSID. Vì nó được tạo trên mỗi yêu cầu PHP nên nếu một trang web dựa vào cookie PHPSESSID thì máy chủ lưu trữ sẽ phải đặt PHPSESSID để bỏ qua bộ nhớ cache 100% thời gian. Nếu không, PHPSESSID cuối cùng sẽ được lưu vào bộ nhớ đệm và nó sẽ làm hỏng bất kỳ chức năng nào phụ thuộc vào nó Chúng tôi khuyên bạn không nên sử dụng các phiên PHP và chúng thường sẽ không hoạt động trong môi trường Kinsta của chúng tôi. Phiên PHP cũng có ý nghĩa bảo mật khác cần được xem xét Nếu bạn thấy mã sử dụng Nhiều nhà phát triển plugin và chủ đề đã chuyển sang sử dụng kết hợp cookie của trình duyệt và các hàng cơ sở dữ liệu (trong bảng Vui lòng liên hệ với nhóm hỗ trợ của chúng tôi nếu bạn có thêm câu hỏi liên quan đến các phiên PHP Tóm lượcHy vọng rằng, bây giờ bạn đã biết thêm một chút về cách hoạt động của cookie WordPress và phiên PHP so với trước đây. Cookie hiện là thứ khiến thế giới quay vòng và rất quan trọng đối với hầu hết mọi thứ xảy ra trên trang web WordPress. Từ việc giữ cho chúng tôi đăng nhập, đến đảm bảo trải nghiệm giỏ hàng suôn sẻ và thậm chí đảm bảo rằng cửa sổ bật lên vẫn đóng Bạn có câu hỏi nào khác về cookie không? Nhận tất cả các ứng dụng, cơ sở dữ liệu và trang web WordPress của bạn trực tuyến và dưới một mái nhà. Nền tảng đám mây hiệu suất cao, đầy đủ tính năng của chúng tôi bao gồm
Hãy tự kiểm tra với $20 trong tháng đầu tiên của Lưu trữ ứng dụng hoặc Lưu trữ cơ sở dữ liệu. Khám phá kế hoạch của chúng tôi hoặc nói chuyện với bộ phận bán hàng để tìm thấy sự phù hợp nhất của bạn Phiên và cookie hoạt động cùng nhau như thế nào?Cookie theo phiên cho phép trang web ghi nhớ người dùng trong một trang web khi họ di chuyển giữa các trang web . Những cookie này cho máy chủ biết những trang nào sẽ hiển thị cho người dùng để người dùng không phải nhớ nơi họ đã dừng lại hoặc bắt đầu điều hướng lại trang web. Do đó, không có cookie phiên, trang web không có bộ nhớ.
Làm cách nào để sử dụng cookie và phiên trong PHP?Phiên PHP
. Trên mỗi yêu cầu trong tương lai, trình duyệt sẽ gửi ID phiên dưới dạng cookie và máy chủ sẽ định vị phiên tương ứng để cho phép truy cập vào dữ liệu người dùng được lưu trữ. Trong PHP, điều quan trọng là luôn luôn khởi tạo phiên sử dụng session_start() .
Phiên hoạt động như thế nào trong PHP?Trình duyệt gửi yêu cầu đến máy chủ. PHP phản hồi bằng cách gửi một mã thông báo duy nhất xác định phiên hiện tại . Đây được gọi là ID phiên. Trong tất cả các yêu cầu tiếp theo, trình duyệt sẽ gửi ID phiên để nói: "Xin chào, lại là tôi đây. " Tất cả dữ liệu khác liên quan đến phiên được lưu trữ trên máy chủ web.
Mối quan hệ giữa phiên và cookie trong PHP là gì?Sự khác biệt giữa Phiên và Cookie |