Phiên phá hủy đăng xuất PHP

nếu tôi đăng nhập với tư cách quản trị viên, nó sẽ chuyển hướng tôi đến trang quản trị. Ở đó tôi giữ một nút gọi là đăng xuất. nếu tôi đăng xuất, phiên sẽ bị đóng nhưng một lần nữa nếu tôi quay lại trang sẽ tự động chuyển hướng đến trang quản trị mà không cần cung cấp tên người dùng và mật khẩu. Vì điều đó tôi có thể làm gì. ?

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

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

Vì thế;

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 PHP

Một phiên được bắt đầu với chức năng session_start[]

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

Thí dụ

// Bắt đầu phiên
session_start[];
?>


// Đặt biến phiên
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat . ";
echo "Session variables are set.";
?>


Chạy ví dụ »

Ghi chú. Hàm session_start[] phải là thứ đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML nào

Nhận các giá trị biến phiên PHP

Tiế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

Thí dụ

session_start[];
?>


// Echo các biến phiên đã được đặt ở trang trước
echo "Favorite color is ". $_SESSION["màu yêu thích"]. ".
";
echo "Con vật yêu thích là ". $_SESSION["favanimal"]. ". ";
?>


Chạy ví dụ »

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

Thí dụ

session_start[];
?>


print_r[$_SESSION];
?>


Chạy ví dụ »

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

PHP có chức năng cốt lõi session_destroy[] để xóa tất cả các giá trị phiên. Đây là một hàm không đối số đơn giản trả về giá trị boolean true hoặc false

ID phiên PHP được lưu trữ trong cookie theo mặc định. Nói chung, tệp cookie phiên đó có tên là PHPSESSID. Hàm session_destroy sẽ không bỏ đặt id phiên trong cookie

Để hủy phiên 'hoàn toàn', ID phiên cũng phải được bỏ đặt

Ví dụ nhanh này sử dụng session_destroy[] để hủy phiên. Nó sử dụng phương thức set_cookie[] để hủy toàn bộ bằng cách hết hạn ID phiên PHP

// Initialize the session.
// If you are using session_name["something"], don't forget it now!
session_start[];

// Unset all of the session variables.
$_SESSION = array[];

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if [ini_get["session.use_cookies"]] {
$params = session_get_cookie_params[];
setcookie[session_name[], '', time[] - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
];
}

// Finally, destroy the session.
session_destroy[];
?>

Trong PHP, chúng tôi tạo phiên cho người dùng đã đăng nhập và đặt người dùng đó trực tuyến cho đến khi người dùng đăng xuất khỏi phiên đó. Nó có thể được thực hiện bằng cách nhấp vào nút đăng xuất hoặc bằng cách hủy phiên đó sau một thời gian cố định.  

Theo mặc định, thời gian hết hạn của bất kỳ phiên cụ thể nào được tạo là 1440 giây tôi. e. [24*60] tôi. e. 24 phút. Nhưng trong một số trường hợp, chúng ta cần thay đổi thời gian mặc định cho phù hợp

Chúng ta có thể làm điều đó theo 2 cách

1. Chúng ta có thể thay đổi nó trong php. ini và thay đổi cấu hình, nhưng điều đó sẽ thay đổi thời gian mặc định cho tất cả các trang web hoạt động trên máy chủ đó và điều đó sẽ cản trở tất cả các trang web khác. Vì vậy, tùy chọn thứ hai là thích hợp hơn

2. Chúng ta có thể thay đổi hợp lý thời gian hủy của phiên. Chúng tôi tính thời gian tạo phiên bằng cách tính thời gian hiện tại của hệ thống và khi người dùng duyệt đến các trang khác nhau của tập lệnh sẽ kiểm tra thời gian hết hạn. e. được khai báo rõ ràng là hết hạn phiên

Cấu trúc tệp

mục lục. php. Nếu bạn nhập sai thông tin đăng nhập, nó sẽ báo lỗi, Nếu bạn nhập đúng thông tin đăng nhập, bạn sẽ được chuyển hướng đến “Trang chủ. php” và hủy phiên sau 1 phút. Nhà phát triển có thể thay đổi thời gian cho phù hợp

PHP




Chủ Đề