在我的php函数中,我想检查会话是否存在。基于会话存在我想要返回true或false。
我有一个使用session_start();
的登录功能,并在登录时将值存储到会话变量中,当注销时它将执行session_destroy();
现在我想检查会话是否存在。 我怎么能这样做
function ifsessionExists(){
// check if session exists?
if($_SESSION[] != ''){
return true;
}else{
return false;
}
}
答案 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);
}