PHP会话信息故障

时间:2016-02-29 13:26:39

标签: php session

我使用PHP会话来存储有关访问者来自的来源类型的信息。该错误可以是OneTwoOther,取决于他们的a参数(如果已设置),一旦他们到达网站。

这些访问者总是会到达a.php这样的页面,该页面始终具有以下代码模式:

<?php

session_start();

// Store the first Source visitor arrived from, in session:

if (empty($_SESSION['source'])) {

   if(isset($_GET['a']));

    switch ($_GET['a']) {

       case "1":
        $_SESSION['source'] = "One";
        break;

      case "2":
        $_SESSION['source'] = "Two";
        break;

      default:
        $_SESSION['source'] = "Other";
}
}
?>

据我了解,此代码不会为$_SESSION['source']保留空的选项。

然后,在a.php内,我有b.php的链接,它处理该会话变量中的信息,并使用以下代码将其存储在某个数据库中:

<?php

session_start();

$src=$_SESSION['source']; // Get source from session

// some code to store $src value in a datbase //

?>

当我查看数据库时,这个配置一直在运行,因为我已经在一个月前完成了这个配置,因为每个访问者总是从这3个可能的源值中获得一些价值。

然而,昨天,我注意到一个故障,因为有3个不同的访问者(15个去过b.php,有3个不同的用户代理,没有为他们的来源记录任何值。

我认为这个问题可能只是由于某种信息丢失造成的,可能是从a.php转移到b.php,但我不知道突然之间怎么可能,我没有在代码中做任何改变,它已经工作了1000多次,突然在一天之内,它对20%的访问者都没有用。

我在VPS服务器上,每天都会收到一些Cron Daemon电子邮件,其中包含正在制作的验证/更新列表,也许昨天它会对会话的工作方式进行一些自动更改?

以下是我当前的PHP.INI配置:

enter image description here

在我的/tmp文件夹中,我确实看到当前会话正确存储了所有信息,因此不确定如何进一步调查此问题。故障会话已从文件夹中删除。

0 个答案:

没有答案