PHP!isset&空的&会话检查每次都变为真

时间:2017-05-20 13:52:50

标签: php session isset is-empty

似乎很傻但真的让我很困惑。 每次刷新都会让我陷入这种状况。

if(!isset($_SESSION)) {
session_start();
echo "Session turned on";
}

我尝试将条件更改为if(empty($_SESSION))if (session_status() == PHP_SESSION_NONE),但每次内部的陈述都被执行。

我正在尝试增加计数器

<?php 
if(!isset($_SESSION)) {
session_start();
echo "Session turned on";
}

$current_time=date('m-d-Y H:i:s');
echo $current_time;
if(!isset($_SESSION["counter"]["time"]))
{
    $_SESSION["counter"]["time"]=date('m-d-Y H:i:s');
    increamentCounter();
}
$diff = abs(strtotime($current_time) - strtotime($_SESSION["counter"]["time"]));
$time_in_minutes=$diff/60;
if($time_in_minutes>30)
{
    unset($_SESSION["counter"]["time"]);
}
echo $time_in_minutes."<br>";
function increamentCounter()
{
    $pre_counter_value = file_get_contents("counter.txt");
    $counter_value = (int)$pre_counter_value+1;
    file_put_contents("counter.txt", $counter_value);
}
echo file_get_contents("counter.txt");
?>

1 个答案:

答案 0 :(得分:0)

在调用session_start()之前,您正在检查会话变量,因此if条件将始终返回true。尝试:

session_start();
if(!isset($_SESSION)) {
    echo "Session detected";
} else {
    echo "No session";
}