【问题标题】:condition to check if the session variables as well as get and post have been destroyed in php检查会话变量以及get和post是否在php中被破坏的条件
【发布时间】:2015-08-29 06:52:08
【问题描述】:

代码是这样的:(这是我制作的网络应用程序的最后一页)

<?php

if(isset($_GET['var'])
{
session_start();
$a=$_SESSION['prev_defined'];
#more use of session variable
session_destroy();
$_SESSION = array();
unset($_GET);
unset($_POST);
}
?>

现在,当我执行 Web 应用程序时,它运行良好,当我刷新上面给出的代码的最后一页时,警告消息显示未定义符号,因为 $_SESSION 变量以及 $_GET$_POST 已经删除。我想在刷新时显示消息“SESSION OVER”。怎么做?如果条件放在哪里?我试图把上面的代码放在

if($_SESSION)
{
#entire code above
}
else
{
echo"SESSION OVER";
}

但它显示消息未定义变量_SESSION

【问题讨论】:

  • 顶部需要 session_start()
  • @Farkie 我在实际代码中做到了...仍然无法做我想做的事

标签: php session destroy unset


【解决方案1】:
<?php

if(isset($_GET['var'])
{
  if(isset($_SESSION))
  {
    session_start();
    $a=$_SESSION['prev_defined'];
    #more use of session variable
    session_destroy();
    $_SESSION = array();
    unset($_GET);
    unset($_POST);
  }
  else
  {
    echo"SESSION OVER";
  }
}
?>

试试这个。如果设置了会话,它将执行条件。

编辑

if(isset($_GET['var'])
    {
....
}
else
  {
    echo"SESSION OVER";
  }

使用这个,如果 $_GET['var'] 没有设置,则回显 else 部分

编辑 2

<?php
if (isset($_GET) || isset($_SESSION)) {
//Put all your codes here
} else {
    echo "Session Over";
}

【讨论】:

  • 它如何解决刷新的目的 $_GET 和 $_POST 已经取消设置,因此如果 isset($_GET['var']) 循环它甚至不会进入 th
  • 简单。 if 条件也加入 else 部分
  • 我试过了,它应该可以工作,但它不适合我
【解决方案2】:

$_SESSION 是一个全局变量,一个数组。它会一直存在。

检查会话功能是否像这样激活:

if (session_status() == PHP_SESSION_NONE) {
    session_destroy();
    echo "session over";
}

还要注意检查数组键是否设置,在检查它的值之前,以避免通知:

if(isset($_SESSION['login'])&&$_SESSION['login']==1){//pass}

编辑:

here 所述:对于 PHP

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

【讨论】:

  • 我希望 dt 刷新,当 post 和 get 已经取消设置并且会话变量已被删除时。程序应该检测到它,而不是告诉变量 undefined 应该只是输出会话... . 当我使用 'if (session_status() == PHP_SESSION_NONE) { session_destroy(); echo "会话结束"; }' 它的显示会话甚至在刷新之前就结束了
  • 因为会话没有开始尝试打印 session_status() 之前有和没有 session_start()。
猜你喜欢
  • 2012-07-24
  • 1970-01-01
  • 2013-10-31
  • 2016-04-28
  • 1970-01-01
  • 2023-03-04
  • 2013-12-01
  • 2016-04-30
  • 1970-01-01
相关资源
最近更新 更多