JavaScript is required

Xem đoạn mã lệnh sau đây. Sau khi thực hiện đoạn mã trên kết quả hiển thị sẽ là gì (đối với cùng một người dùng)
session_start();
if (!array_key_exists('counter', $_SESSION))
{
$_SESSION['counter'] = 0;
}
else
{
$_SESSION['counter']++;
}
session_regenerate_id();
echo $_SESSION['counter']
?>

A.
1
B.
2
C.
3
D.
4
Trả lời:

Đáp án đúng: B


Đoạn mã PHP này sử dụng session để đếm số lần truy cập trang của người dùng. - `session_start();`: Khởi tạo hoặc phục hồi một session hiện có. - `if (!array_key_exists('counter', $_SESSION))`: Kiểm tra xem biến `counter` có tồn tại trong mảng `$_SESSION` hay không. Nếu không tồn tại (lần đầu truy cập), nó sẽ được khởi tạo với giá trị 0. - `else { $_SESSION['counter']++; }`: Nếu biến `counter` đã tồn tại, giá trị của nó sẽ tăng lên 1. - `session_regenerate_id();`: Hàm này tạo ra một ID session mới cho phiên hiện tại. Điều này giúp ngăn chặn tấn công session fixation. - `echo $_SESSION['counter'];`: In ra giá trị của biến `counter`. Vì `session_regenerate_id()` được gọi sau khi tăng hoặc khởi tạo `$_SESSION['counter']`, ID phiên sẽ được làm mới sau mỗi lần truy cập, nhưng giá trị của `$_SESSION['counter']` vẫn được giữ lại. Vậy, nếu đây là lần đầu tiên người dùng truy cập, `counter` sẽ được khởi tạo là 0, sau đó tăng lên 1. Những lần truy cập sau, `counter` sẽ tiếp tục tăng lên. Vì vậy, kết quả hiển thị sẽ là 1 nếu đây là lần đầu truy cập vào trang này trong session hiện tại.

Câu hỏi liên quan