Cách hủy đặt ($_session trong php)

Làm cách nào để hủy đặt biến phiên trong PHP?

Cookie là cách tốt nhất để lưu trữ dữ liệu và cá nhân hóa nội dung cho người dùng cuối. Nhưng vẫn có khả năng hacker chèn mã độc nào đó vào code để phục vụ lợi ích của mình. Vì vậy, có một cách tiếp cận an toàn hơn? . Và phần tốt nhất là bạn có thể sử dụng phiên này cho các mục đích trên toàn trang web. Trong bài viết này, chúng ta sẽ khám phá thêm về PHP Unset biến phiên và cách bạn có thể sử dụng nó cho trang web của riêng mình

Phiên hoạt động như thế nào trong PHP?

Trước khi làm việc với Unset biến phiên, trước tiên hãy làm việc với cách các phiên hoạt động trong PHP ngay từ đầu. Theo định nghĩa, phiên lưu trữ thông tin tạm thời trên máy chủ hoặc máy tính. Những dữ liệu tạm thời này được lưu trữ trong một thư mục. Vị trí được đặt bởi php. ini có cài đặt được gọi là phiên, save_path. Bạn phải đặt đường dẫn trước khi làm việc với các phiên

Khi người dùng đăng xuất khỏi trình duyệt hoặc đóng trình duyệt, phiên sẽ kết thúc. Mỗi người dùng khác nhau được chỉ định một ID phiên duy nhất để xác định người dùng tốt hơn. Chúng sau đó được liên kết với các bài đăng và email của họ

ID phiên được tạo tự động bởi công cụ PHP

Đây là mã phiên sẽ trông như thế nào trong PHP

Mã số

<?php
// start a new session
session_start();
// Check if the session name exists
if( isset($_SESSION['name']) ) {
echo 'Session name is set.'.'<br>';
}
else {
echo 'Session name not set!'.'<br>';
}
echo'<br>';
$_SESSION['name'] = 'Haley';
//unset($_SESSION['name']);
echo "Session Name : ".$_SESSION['name'].'<br>';
?>

đầu ra
Tên phiên được đặt
tên phiên. haley

Trong đoạn mã trên, một phiên mới bắt đầu với hàm session_start() gọi nó. Điều này luôn được viết ở đầu mỗi mã. Hàm này có ID phiên mà bạn có thể truy cập bằng cách sử dụng mã echo session_id()

$ _SESSION được sử dụng để xóa biến phiên khi người dùng hoàn thành công việc của mình và đóng phiên

Nếu bạn bỏ ghi chú dòng cuối cùng của mã như thế này

Mã số

unset($_SESSION[‘name’]);
echo “Session Name : ” .$_SESSION[‘name’];

Sau đó, đầu ra sẽ là

Mã số

Session name is not set!

Để hủy biến phiên được tạo ở trên, bạn cần sử dụng đoạn mã sau

Mã số

session_destroy();

Nhưng để xóa hoặc giải phóng dung lượng đang được sử dụng bởi biến phiên, bạn nên sử dụng

Mã số

session_unset();

Do đó, biến phiên PHP Unset được sử dụng để xóa phiên được tạo bởi công cụ PHP

Để bỏ đặt biến phiên của bạn trong PHP, bạn cần gọi cấu trúc unset và chuyển biến $_SESSION làm tham số của nó

Đây là một ví dụ

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";

// 👇 unset User session
unset($_SESSION["User"]);

// 👇 Array ( [lang] => en )
print_r($_SESSION);
?>

Mặc dù unset là một cấu trúc, nhưng bạn cần bao quanh các tham số bằng dấu ngoặc tròn

Cấu trúc unset cũng cho phép bạn hủy đặt nhiều biến bằng một lần gọi

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>

Sử dụng cấu trúc unset, bạn có thể xóa các phần dữ liệu phiên của mình một cách có chọn lọc

Bỏ đặt biến phiên với session_unset()

Nếu bạn muốn xóa toàn bộ phiên, bạn có thể sử dụng hàm

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
0 hoặc
<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
1

Hàm

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
0 bỏ đặt tất cả các biến phiên của bạn

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";

// 👇 unset all variables
session_unset();

// 👇 Array ()
print_r($_SESSION);
?>

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
0 ngay lập tức xóa các biến phiên. Nó giống như việc gán biến $_SESSION cho một mảng trống

$_SESSION = array();

Chức năng này không làm gián đoạn bất kỳ yêu cầu đồng thời nào yêu cầu quyền truy cập vào phiên

Nếu bạn cần xóa phiên ngay lập tức khỏi tất cả các yêu cầu đến máy chủ của mình, bạn cần gọi hàm

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
1

Bỏ đặt biến phiên với session_destroy()

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
1 hủy phiên, vì vậy PHP sẽ tạo id phiên mới khi bạn gọi lại
<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
7

Để thoát toàn bộ phiên, bạn cũng cần xóa cookie phiên như sau

<?php
session_start();

// Unset all of the session variables.
$_SESSION = array();
// or
session_unset();

// 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();
?>

Các phiên PHP được sử dụng để lưu trữ thông tin về ứng dụng web của bạn

Hầu hết thời gian, bạn không muốn xóa toàn bộ dữ liệu phiên. Cấu trúc unset là cách ưa thích để xóa dữ liệu phiên

Nhưng nếu bạn gặp trường hợp muốn xóa phiên hoàn toàn, thì sử dụng ví dụ trên với

<?php
session_start();
$_SESSION["User"] = "Nathan";
$_SESSION["lang"] = "en";
$_SESSION["theme"] = "dark";

// 👇 unset two session variables
unset($_SESSION["User"], $_SESSION["lang"]);

// 👇 Array ( [theme] => dark )
print_r($_SESSION);
?>
1 sẽ là cách tốt nhất

Làm cách nào để bỏ đặt phiên trong PHP?

Nếu $_SESSION được sử dụng, hãy sử dụng unset() để hủy đăng ký một biến phiên , i. e. bỏ đặt($_SESSION['varname']);. KHÔNG bỏ đặt toàn bộ $_SESSION bằng unset($_SESSION) vì điều này sẽ vô hiệu hóa việc đăng ký các biến phiên thông qua siêu toàn cầu $_SESSION.

$_ phiên trong PHP là gì?

PHP $_SESSION là một mảng kết hợp chứa tất cả các biến phiên . Nó được sử dụng để đặt và nhận các giá trị biến phiên. Thí dụ. Lưu trữ thông tin.

Cú pháp để xóa phiên là gì?

session_destroy() hủy tất cả dữ liệu được liên kết với phiên hiện tại. Nó không bỏ đặt bất kỳ biến toàn cục nào được liên kết với phiên hoặc bỏ đặt cookie phiên.

Có bao nhiêu cách để xóa phiên làm việc trong PHP?

Làm cách nào để hủy phiên trong PHP? . Hai chức năng có thể giúp bạn đạt được điều này. Bạn cũng có thể sử dụng hàm session_unset() để xóa tất cả các biến của phiên.