PHP !isset 和 empty & session check 每次都变为真[重复]
Posted
技术标签:
【中文标题】PHP !isset 和 empty & session check 每次都变为真[重复]【英文标题】:PHP !isset & empty & session check turning true every time [duplicate] 【发布时间】:2017-10-20 13:36:43 【问题描述】:看起来很傻,但真的让我很困惑。 每次刷新都会让我进入这种状态。
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");
?>
【问题讨论】:
会话通常用于多个页面。如果这没有被传递到后续页面,您应该编辑您的帖子以包含它的代码。 “每次刷新都会让我处于这种状态” - 对;会话从未设置,因此您发布的代码就是这样做的;它的工作。我们不知道您在哪里设置会话数组/值。 @C0dekid 我在这里提问之前已经遵循了这个答案,这对我不起作用! 好吧,下面给出的每个答案都是可能重复发布的内容,我还要求澄清;我什么也没回。所以和他们一起去吧。 那只是一页..我正在尝试会话。 【参考方案1】:在调用session_start()
之前,您正在检查会话变量,因此您的 if 条件将始终返回 true。试试:
session_start();
if(!isset($_SESSION))
echo "Session detected";
else
echo "No session";
【讨论】:
以上是关于PHP !isset 和 empty & session check 每次都变为真[重复]的主要内容,如果未能解决你的问题,请参考以下文章