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']
?>
session_start();
if (!array_key_exists('counter', $_SESSION))
{
$_SESSION['counter'] = 0;
}
else
{
$_SESSION['counter']++;
}
session_regenerate_id();
echo $_SESSION['counter']
?>
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
