2010-08-21 39 views
29

Facebook hiện cung cấp đăng ký cho người dùng để bạn có thể nhận được cập nhật theo thời gian thực về các thay đổi. Nếu ứng dụng của tôi nhận được bản cập nhật, tôi dự định lưu trữ nó trong cơ sở dữ liệu. Tôi cũng muốn phát hiện xem phiên của họ có tồn tại hay không. Nếu có thì tôi có thể cập nhật dữ liệu trong đó.Phát hiện nếu phiên PHP tồn tại

ID phiên của tôi là MD5 (fb_id + secret) để tôi có thể dễ dàng chỉnh sửa phiên của họ. Câu hỏi đặt ra là làm thế nào tôi có thể phát hiện nếu phiên tồn tại.

+1

Bạn có ý nghĩa với phiên nào? Từ đâu? Được tạo bởi ai? –

+0

"băm bí mật" có nghĩa là gì? Nếu đó là một băm thích hợp, bạn không thể lấy lại fb_id. – NullUserException

+0

Phiên người dùng, từ máy chủ của tôi, được tạo bởi máy chủ của tôi ... xin lỗi tôi nghĩ rằng đó là một – Pablo

Trả lời

26

Theo PHP.net manual:

Nếu $_SESSION (hoặc $HTTP_SESSION_VARS cho PHP 4.0.6 trở xuống) được sử dụng, sử dụng isset() để kiểm tra một biến được đăng ký tại $_SESSION.

+0

Tôi đã tìm ra điều này sẽ giúp người khác vấp ngã câu trả lời này: http://php.net/manual/en/function.isset.php – Jace

41

tôi sử dụng một phiên bản kết hợp:

if(session_id() == '' || !isset($_SESSION)) { 
    // session isn't started 
    session_start(); 
} 
7

Nếu bạn đang ở trên php 5.4+, nó là sạch để sử dụng session_status():

if (session_status() == PHP_SESSION_ACTIVE) { 
    echo 'Session is active'; 
} 
  • PHP_SESSION_DISABLED nếu phiên bị vô hiệu hóa.
  • PHP_SESSION_NONE nếu phiên được bật, nhưng không có phiên nào tồn tại.
  • PHP_SESSION_ACTIVE nếu phiên được bật và một phiên tồn tại.
Các vấn đề liên quan