PHP Session将行为存储到变量中?

时间:2013-11-11 23:45:33

标签: php google-chrome session session-variables

这只发生在Chrome

有没有人经历过将功能行为存储到变量中的PHP会话?我创建了以下脚本:

<?php
    session_start();

    $_SESSION['count'] = (isset($_SESSION['count'])) ? $_SESSION['count'] + 1 : 0;

   echo $_SESSION['count'];
?>

您认为这会在每次页面加载时回显0,1,2,3等。但是,我得到1,3,5,7等等。我发现由于某种原因,$ _SESSION ['count']就好像它的递增行为已存储在变量中。它在每次页面加载时似乎增加2的原因是因为当调用$ _SESSION ['count']时,它会自动增加1。为清楚起见,将在每个页面加载时输出以下脚本和更高的数字。

<?php
    session_start();

    echo $_SESSION['count'];
?>

这将回显$ _SESSION ['count']是什么,然后每个页面加载$ _SESSION ['count'] + 1。我已经尝试取消设置会话,清除$ _SESSION变量,并使用相同的脚本在各个目录中创建新文件。我也在http://codepad.viper-7.com/上尝试过,它运行正常。任何人都知道为什么会发生这种情况?当我将会话变量设置为随机数时,我遇到了类似的行为。在每个页面加载时,我只是通过回显变量得到一个新的随机数。当我序列化或var_dump变量时,它只返回一个字符串值。

这是我用来取消会话的原因:

$_SESSION = array();
session_unset();
session_destroy();

我在几个浏览器上尝试过该脚本。 IE和Firefox正确递增1;但Chrome增加2.任何想法为什么浏览器会影响这个?

编辑:如果我创建一个新脚本并更改变量,它可以正常工作。我注意到的是,每当我需要index.php中的这个脚本时,就像index.php一样,我开始再次遇到这个问题。所以,index.php正在发生一些事情。我的.htaccess多次加载页面会有问题吗?这是:

我的.htaccess     选项+ FollowSymLinks

RewriteEngine on
RewriteBase /

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

DirectoryIndex /index.php
FallbackResource /index.php

#Allow cross domain AJAX
Header set Access-Control-Allow-Origin *

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

再次编辑:根据评论中的user2086860的请求,我将完成整个代码流程。

首先,我使用以下代码创建一个脚本:

 <?php
     session_start();

     $_SESSION['counter'] = (isset($_SESSION['counter'])) ? $_SESSION['counter'] + 1 : 0;

     echo $_SESSION['counter'];

 ?>

此代码本身按预期工作,打印0,1,2,3等

现在,如果我通过我的index.php需要这个脚本,那么:

<?php
    require 'test6.php';
?>

数字开始增加2而不是1.这需要通过我的index.php导致问题。它还会搞砸我的脚本文件,这样直接访问test6.php现在增加2而不是1.你可以在这里看到它:

测试网址已移除

我很清楚,上面的代码是 我的所有代码 。 index.php或test6.php中没有包含任何其他内容。这只发生在Chrome中。 Firefox和Internet Explorer正常工作,递增1。

1 个答案:

答案 0 :(得分:0)

Chrome(显然是其他浏览器)正在寻找一个favicon,或者页面标题旁边显示的图片。一旦我将股票图像添加到我的页面,就像这样:

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" 
  type="image/png" 
  href="https://mysite.com/icon.png">
</head>

有效。感谢@ dev-null-dweller建议这个!