Hướng dẫn can php track user sessions? - php có thể theo dõi phiên của người dùng không?

Hướng dẫn can php track user sessions? - php có thể theo dõi phiên của người dùng không?

Trong bài viết này, chúng tôi chỉ ra cách sử dụng các phiên để theo dõi dữ liệu người dùng bằng PHP.

Đây thực sự là một khái niệm mạnh mẽ vì dữ liệu phiên có thể được lưu trữ trên máy chủ web. Do đó, nếu người dùng nhấp và đi đến một trang khác, máy chủ vẫn có thông tin về người dùng.

Nhiều trang web sử dụng khái niệm này về các phiên. Khá nhiều trang web có hệ thống đăng nhập trong đó người dùng đăng nhập sẽ sử dụng các phiên. Khi người dùng được đăng nhập, một phiên được bắt đầu. Nếu người dùng đi đến một trang khác hoặc thậm chí rời khỏi trang web khác và quay lại, dữ liệu của họ vẫn có sẵn, vì vậy họ có thể nhận ngay nơi họ rời đi.

Các trang web mua sắm sử dụng điều này mọi lúc. Bạn đăng nhập vào tài khoản của mình và bất kể bạn truy cập trang nào trên trang web, bạn vẫn đăng nhập vào tài khoản của mình và trang web biết bạn là ai.

Vậy làm thế nào để các phiên hoạt động và làm thế nào chúng ta có thể triển khai chúng trên một trang web với PHP?

Hình thức để theo dõi bạn thông qua các phiên

Trước khi chúng tôi đi vào mã cho hướng dẫn này, hãy nhập tên của bạn vào hộp văn bản ở trên.

Mẫu này sẽ minh họa các phiên cho bạn.

Bạn sẽ thấy cách bạn đi từ trang này sang trang khác, nhưng mỗi trang đều biết tên của bạn. Điều này được thực hiện thông qua các phiên.

Bây giờ chúng tôi sẽ đi qua cách làm điều này dưới đây trong mã.

Mã HTML

Vì vậy, giả sử giống như trên, chúng tôi có một biểu mẫu HTML nhận dữ liệu từ người dùng, chẳng hạn như ở trên với hộp văn bản yêu cầu tên người dùng.Mã HTML cho điều này được hiển thị bên dưới.Các thẻ tạo ra một biểu mẫu HTML.Chúng tôi đặt thuộc tính hành động của biểu mẫu thành userpage.php. Điều này là do đây là trang PHP mà chúng tôi muốn chuyển người dùng sang khi người dùng nhấp vào nút Gửi.Phương thức được đặt để đăng vì chúng tôi đang đăng nó lên trang thực tế, không phải URL, đó là những gì phương thức GET làm.Sau đó, chúng tôi có một hộp văn bản HTML tiêu chuẩn yêu cầu tên của người dùng.Điều này được theo sau bởi một nút gửi, cho phép một biểu mẫu được gửi.

Mã PHP

Vì vậy, bây giờ chúng tôi đi đến mã PHP đầu tiên được sử dụng khi người dùng gửi biểu mẫu.

Nội dung của tệp PHP, userPage.php, được hiển thị bên dưới.

Vì vậy, điều đầu tiên chúng tôi làm là gọi hàm, session_start ().

Session_start () là một trong những phiên quan trọng của các phiên. Không có nó, các phiên không thể hoạt động.

Để bạn bắt đầu một phiên có thể theo dõi dữ liệu người dùng hoặc người dùng, bạn phải bắt đầu một phiên. Đây là những gì hàm session_start () làm.

Mã này phải tồn tại trước bất kỳ mã nào khác trên một trang, nếu không nó sẽ không hoạt động. Do đó, khi bạn sử dụng hàm session_start (), không bao gồm bất kỳ mã nào khác trước bất kỳ loại nào, bao gồm mã HTML. Bạn sẽ nhận được lỗi, "các tiêu đề đã được gửi". Bạn phải đặt cái này lên hàng đầu trong mã của bạn. Nếu bạn vẫn gặp lỗi, "các tiêu đề đã được gửi" và bạn không bao gồm bất kỳ không gian trắng hoặc mã nào dưới bất kỳ hình thức nào trước hàm session_start (), thì hãy lưu tệp PHP của bạn với mã hóa ANSI. Nhiều khả năng, tệp PHP của bạn được lưu bằng unicode, unicode lớn endian hoặc mã hóa UTF-8. Các loại mã hóa này thêm các ký tự vô hình trước khi khiến PHP bị lỗi.

Vì vậy, sau chức năng phiên này, chúng tôi lấy dữ liệu mà người dùng nhập vào biểu mẫu. Vì tên của hộp văn bản HTML đã được đặt tên, chúng tôi sử dụng mảng SuperGlobal $ _POST để truy xuất dữ liệu được nhập vào hộp văn bản này; Chúng tôi gán giá trị của dữ liệu này cho tên $ tên.

Dòng mã tiếp theo là rất quan trọng. Chúng tôi tạo một biến phiên được gọi là tên được đặt bằng những gì người dùng đã nhập vào hộp văn bản. Bằng cách này, $ _Session ['name'], bằng với tên mà người dùng đã nhập. Đây là cách chúng tôi sẽ theo dõi dữ liệu của người dùng hoặc người dùng từ trang này sang trang khác.

Bởi vì các biến phiên được lưu trên máy chủ, ngay cả khi người dùng đi đến một trang khác, biến phiên này vẫn được lưu trữ. Do đó, chúng tôi có thể theo dõi người dùng từ trang này sang trang khác. Điều này, một lần nữa, là có bao nhiêu trang web có người dùng đăng nhập cho phép người dùng thấy họ vẫn đăng nhập ngay cả khi đi từ trang khác nhau đến trang khác nhau.

Vì vậy, trên tệp userpage.php này, chúng tôi chuyển người dùng sang trang khác để hiển thị rằng chúng tôi có thể theo dõi người dùng (dữ liệu của người dùng) thông qua các biến phiên.

Trang này là AnotherUserPage.php, chúng tôi hiển thị nội dung bên dưới.

Điều lớn nhất cần lưu ý về trang này là nó có chức năng session_start () khác.

Trên thực tế, mọi trang theo dõi người dùng thông qua các phiên phải có hàm session_start () ở đầu mã PHP.

Hàm session_start () được sử dụng khi phiên lần đầu tiên được bắt đầu và để tiếp tục phiên hiện tại cho người dùng. Có vẻ hơi kỳ lạ khi có một phiên gọi là session_start khi bạn tiếp tục một phiên đã bắt đầu, nhưng hãy nhìn vào nó như thế này, nó bắt đầu một phiên cho mỗi trang, để phiên được tiếp tục trên các trang khác. Đó là cách tôi nhìn thấy nó, ít nhất.

Vì vậy, một lần nữa, đối với mỗi trang theo dõi dữ liệu người dùng thông qua các phiên, phải có hàm session_start () trên trang đó. Vì vậy, nếu bạn có một trang web rất tương tác, nơi bạn muốn người dùng đăng nhập bất kể họ truy cập trang nào trên trang web của bạn, điều đó có nghĩa là bạn sẽ có chức năng session_start trên mỗi trang trên trang web của bạn.

Vì vậy, sau hàm này_start (), chúng tôi xuất ra một câu lệnh rằng chúng tôi vẫn biết người dùng là ai mặc dù đây là một trang hoàn toàn riêng biệt khác. Và chúng tôi biết điều này vì biến phiên, $ _Session ['name'], mà chúng tôi đã tạo. Khi một biến phiên được tạo, chúng tôi đã thực hiện trên tệp userpage.php và chúng tôi sử dụng hàm session_start () trên mỗi trang sau đó, máy chủ vẫn có giá trị được lưu trữ trong biến phiên này. Vì vậy, nếu chúng ta gọi nó, nó vẫn có giá trị. Vì vậy, bất cứ điều gì bạn đã nhập vào biểu mẫu HTML vẫn được chứa ngay cả sau 2 tệp PHP.

Sau trang này, chúng tôi chứng minh một trang cuối cùng theo dõi dữ liệu người dùng thông qua các phiên. Tại sao không?

Trang chúng tôi chuyển người dùng đến bây giờ là lastuserpage.php.

Nội dung của tệp lastuserpage.php được hiển thị bên dưới.

Vì vậy, một lần nữa, như đã giải thích, chúng ta phải bao gồm hàm session_start (). Điều này là cần thiết trên mỗi trang PHP mà bạn muốn theo dõi dữ liệu phiên, để tạo phiên hoặc duy trì phiên hiện tại.

Chúng tôi xuất tên của người dùng (được lưu trữ trong biến $ _Session ['name']) và nói rằng đây chỉ là một trang cuối cùng để hiển thị cho bạn việc chuyển dữ liệu phiên qua.

Và đây thực sự là tất cả những gì được yêu cầu về những điều cơ bản khi làm việc với các phiên.

Nếu bạn muốn kết thúc một phiên, một phiên thường kết thúc khi người dùng đóng trình duyệt hoặc thậm chí đôi khi khi người dùng truy cập trang web. Nhưng nếu bạn muốn dứt khoát kết thúc một phiên với PHP, thì bạn có thể sử dụng hàm session_destroy (). Điều này chấm dứt phiên của người dùng để người dùng không còn được theo dõi.

Trong bài viết này, chúng tôi chỉ hiển thị một ví dụ về biến phiên nhưng bạn có thể lưu trữ bao nhiêu biến phiên tùy thích. Trong hình thức của chúng tôi, chúng tôi chỉ theo dõi tên của người dùng. Tuy nhiên, chúng tôi có thể theo dõi một trong hàng trăm biến nếu chúng tôi muốn, bao gồm họ, địa chỉ email, số điện thoại, v.v. Chúng tôi có thể theo dõi bất cứ điều gì. Đây có thể là dữ liệu được nhập vào biểu mẫu HTML, chẳng hạn như bạn đã làm. Hoặc bạn có thể đăng nhập người dùng trên một trang web và có dữ liệu từ lịch sử trong quá khứ như hình thức dài phải hoàn thành khi họ đăng ký ban đầu trên trang web hoặc lịch sử mua sắm của họ dựa trên các giao dịch mua trước đây. Bạn có thể có dữ liệu này được lưu trữ trong cơ sở dữ liệu và sau đó lấy nó từ cơ sở dữ liệu và lưu trữ nó trong các biến phiên trong suốt thời lượng của phiên. Vì vậy, có nhiều cách năng động để thực hiện nó nhưng Phiên là một khái niệm lập trình mạnh mẽ để học và nhiều trang web sử dụng nó để theo dõi người dùng từ trang này sang trang khác.

Tài nguyên liên quan

Các phiên được theo dõi trên PHP như thế nào?

Theo dõi phiên: PHP có mảng phiên có thể được sử dụng để lưu trữ thông tin về các yêu cầu trước đó của khách hàng trong phiên. Trong ID phiên Php được tạo là giá trị nội bộ để xác định phiên. Mảng phiên được lưu trữ trên máy chủ trong khi cookie được lưu trữ trên máy khách.sessions array which can be used to store information about previous requests of a client during a session. In PHP session ID is created that is the internal value to identify the session. The session array is stored on the server whereas the cookie is stored on the client.

Làm thế nào tôi có thể theo dõi người dùng trong PHP?

$ username = $ _Session ["Tên người dùng"];PHP ...
session_id (Varchar 100).
user_id..
Thời gian (cập nhật cứ sau 10 phút miễn là có hoạt động).
Bắt đầu (DateTime, khi chúng đăng nhập lần đầu tiên).
kết thúc (DateTime, khi phiên bị giết bởi trình duyệt đóng hoặc đăng xuất).

Làm thế nào bạn có thể theo dõi phiên người dùng?

Có một số cách để theo dõi các phiên người dùng bao gồm cookie, viết lại URL và các trường biểu mẫu ẩn.Nếu theo dõi phiên không được sử dụng, Yêu cầu 2 được coi là một yêu cầu mới mà không có máy chủ nhận ra rằng đó là từ cùng một người dùng.cookies, URL rewriting, and hidden form fields. If session tracking is not used, request 2 is treated as a new request without the server recognizing that it is from the same user.

Phiên PHP có an toàn không?

“Phiên Php có an toàn không?Các phiên PHP chỉ an toàn như ứng dụng của bạn làm cho chúng.Các phiên PHP sẽ cho phép khách hàng một chuỗi giả danh (ID phiên phiên) để họ tự phân biệt, nhưng không có khả năng chuỗi bị chặn bởi kẻ tấn công, kẻ xâm lược có thể tưởng tượng là máy khách đó.PHP sessions are only as secure as your application makes them. PHP sessions will allow the client a pseudorandom string (“session ID”) for them to distinguish themselves with, but on the off chance that the string is intercepted by an attacker, the aggressor can imagine to be that client.