检查php中是否存在会话

时间:2015-09-29 06:48:03

标签: php session

在我的php函数中,我想检查会话是否存在。基于会话存在我想要返回true或false。

我有一个使用session_start();的登录功能,并在登录时将值存储到会话变量中,当注销时它将执行session_destroy();

现在我想检查会话是否存在。 我怎么能这样做

function ifsessionExists(){
    // check if session exists?
    if($_SESSION[] != ''){
    return true;
    }else{
    return false;
    }
}

6 个答案:

答案 0 :(得分:4)

推荐的PHP版本> = 5.4.0

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}
  

来源:http://www.php.net/manual/en/function.session-status.php

     

对于PHP的版本< 5.4.0

if(session_id() == '') {
    session_start();
}

答案 1 :(得分:3)

使用isset功能

function ifsessionExists(){
// check if session exists?
  if(isset($_SESSION)){
    return true;
  }else{
    return false;
  }
 }

您还可以使用empty功能

 function ifsessionExists(){
// check if session exists?
  if(!empty($_SESSION)){
    return true;
  }else{
    return false;
  }
 }

答案 2 :(得分:2)

使用

function ifsessionExists(){
// check if session exists?
if(isset($_SESSION['Key']) && $_SESSION['Key'] == 'Value'){
return true;
}else{
return false;
}
}

答案 3 :(得分:1)

您可以使用isset

function ifsessionExists(){
    //check if session exists?
    if (isset($_SESSION['key'])){
    return true;
    }else{
    return false;
    }
}

答案 4 :(得分:1)

试试这个:

function ifsessionExists(){
    // check if session exists?
    if(isset($_SESSION)){
    return true;
    }else{
    return false;
    }
}

Actualy,这是在session_status()文档页面上建议的更好的方法:

<?php
/**
* @return bool
*/
function is_session_started()
{
    if ( php_sapi_name() !== 'cli' ) {
        if ( version_compare(phpversion(), '5.4.0', '>=') ) {
            return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
        } else {
            return session_id() === '' ? FALSE : TRUE;
        }
    }
    return FALSE;
}

// Example
if ( is_session_started() === FALSE ) session_start();
?>

您可以在此处详细了解http://sg2.php.net/manual/en/function.session-status.php#113468

答案 5 :(得分:1)

您可以使用session_id()

  

session_id()返回当前会话的会话ID或空字符串(“”),如果没有当前会话(不存在当前会话ID)。

function ifsessionExists(){
    // check if session exists?
    $sid= session_id();
    return !empty($sid);
}