PHP会话变量不会在页面之间保留其值

时间:2014-12-26 19:32:17

标签: php session

我的PHP代码与我的计算机上的应用程序相同,但它在服务器上不起作用。在服务器上,会话变量不会在页面之间保留其值。我曾联系过网络托管公司,他们坚持认为这是一个编码问题。但我似乎无法找到我的代码有什么问题;毕竟,它们在我的电脑上运行得非常好。

为简化代码,我设置了两个测试页面以查看正在进行的操作。

page1.php中

<?php
    $timeout = 1440;
    ini_set('session.gc_maxlifetime', $timeout);
    session_name("admin");
    session_start();
    $_SESSION['var1'] = "asdfasdf";

    echo session_id() . "<br>" . $_SESSION['var1'];

?>


<a href="page2.php">Page 2</a>

使page2.php

<?php
    session_name("admin");
    session_start();


    if (isset($_SESSION['var1'])) {
      echo session_id() . "<br>" . $_SESSION['var1'];
    } else {
      echo session_id() . "<br> NOT exist.";    
    }

?>


<a href="page1.php">Page 1</a>

在我的计算机上,当我运行page1.php时,它会显示会话ID的值,然后将$ _SESSION [&#39; var1&#39;]的值显示为asdfasdf。我点击了第2页,它在屏幕上显示相同的值。但是,在服务器上,当我运行page1.php时,它会显示会话ID的值,然后将$ _SESSION [&#39; var1&#39;]的值显示为asdfasdf。我点击了第2页。它显示了相同的会话ID,但它显示了&#34; NOT Exist&#34;意思是$ _SESSION [&#39; var1&#39;]不存在。

在page2.php上,我尝试添加error_reporting(E_ALL),但是网络托管服务器抛出500错误。他们似乎不允许更改错误报告的级别。

我在计算机和服务器上显示phpinfo。我能看到的唯一主要区别是我运行的是PHP 5.5,服务器有php 5.4。这可能是服务器不保留会话变量值的原因吗?如果是这样,我该如何纠正?

如果您想亲自查看行为,请转到page1,然后点击页面上的第2页,查看我在说什么。您还可以转到Server PHP info

查看服务器上的php信息

0 个答案:

没有答案
相关问题