Bạn có thể kiểm tra xem một biến đã được đặt trong phiên của người dùng bằng cách sử dụng function isset [], vì bạn sẽ có một biến bình thường. Vì $ _Session SuperGlobal chỉ được khởi tạo khi session_start [] đã được gọi, bạn cần gọi session_start [] trước khi sử dụng isset [] trên biến phiên. Ví dụ:$_SESSION superglobal is only initialised once session_start[] has been called, you need to call session_start[] before using isset[] on a session variable. For example:
Tất nhiên, bạn cũng có thể sử dụng hàm trống [] với dữ liệu phiên hoặc thực sự bất kỳ hàm nào khác - mảng $ _Session và dữ liệu của nó có thể được sử dụng như bất kỳ mảng nào khác.$_SESSION array and its data can be used like any other array.
Bạn muốn học Php 7?
Hack với PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học tập PHP thực hành ngay hôm nay!over 1200 pages of hands-on PHP learning today!
Nếu điều này hữu ích, xin vui lòng dành một chút thời gian để nói với người khác về việc hack với PHP bằng cách tweet về nó!
Chương tiếp theo: Tệp so với cơ sở dữ liệu >>
Chương trước: Kết thúc phiên
Nhảy đến:
Trang chủ: Bảng nội dung
Bản quyền © 2015 Paul Hudson. Theo dõi tôi: @twostraws.
507
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi có một tệp PHP đôi khi được gọi từ một trang đã bắt đầu một phiên và đôi khi từ một trang không bắt đầu phiên. Do đó, khi tôi có
if [session_status[] === PHP_SESSION_NONE] {
session_start[];
}
9 trên tập lệnh này, đôi khi tôi nhận được thông báo lỗi cho "phiên đã bắt đầu". Vì vậy, tôi đã đặt các dòng sau:if[!isset[$_COOKIE["PHPSESSID"]]]
{
session_start[];
}
Nhưng lần này tôi nhận được thông báo cảnh báo này:
Thông báo: Biến không xác định: _Session
Có cách nào tốt hơn để kiểm tra xem phiên đã bắt đầu không?
Nếu tôi sử dụng
if[session_id[] == ''] {
session_start[];
}
0, nó sẽ làm cho mọi thứ hoạt động đúng và chỉ tắt các cảnh báo?
ngẫu nhiên
9.63610 Huy hiệu vàng68 Huy hiệu bạc79 Huy hiệu đồng10 gold badges68 silver badges79 bronze badges
Đã hỏi ngày 6 tháng 6 năm 2011 lúc 9:00Jun 6, 2011 at 9:00
2
Cách được đề xuất cho các phiên bản của PHP> = 5.4.0, Php 7, Php 8PHP >= 5.4.0 , PHP 7, PHP 8
if [session_status[] === PHP_SESSION_NONE] {
session_start[];
}
Tham khảo: //www.php.net/manual/en/function.session-status.php
Đối với các phiên bản của PHP