【问题标题】:Session data working on local test server, but doesn't work once uploaded to internet会话数据在本地测试服务器上工作,但一旦上传到互联网就无法工作
【发布时间】:2013-07-18 10:32:23
【问题描述】:

我有一个网站的问题,我一直在使用 easyphp 服务器在本地工作。我现在已经将它上传到一个网络服务器并且它之前都在工作,现在我收到了 php 错误,例如:

Call to undefined function session_status() in /home/site/public_html/index.php on line 2

它只是索引页面上的一个简单脚本,但所有其他页面都遇到相同的会话错误问题,但它在本地工作,这使得它更加奇怪。

    <?php
    if (session_status() !== PHP_SESSION_ACTIVE) {session_start();}
    if (isset($_SESSION['key'])) {$sessionkey = $_SESSION['key'];}else {$sessionkey = '';}
    if ($sessionkey == 'sbhjbKA2bsbhjbKA209bhjbKA2bsbhjbKA209KaXff19u0bsbhjbKA209KaXff19u9Ka'){
         echo '<link rel="stylesheet" href="./css/template/template.css" />';
    include 'connectmysqli.php';
    include 'menu.php';

    }
    else
    {echo '<h1 style="font-family:Verdana, Geneva, sans-serif; color:red;">Access Denied !</h1>';}
    ?>

【问题讨论】:

  • 你是在本地服务器上使用 PHP 5.4 版本吗???函数session_status() 仅适用于 PHP 5.4 或更高版本
  • 在服务器上检查你的PHP版本,因为PHP5.4及以上有session_status
  • @Satya,PHP 5.3 还没有包含这个功能。 hk.php.net/manual/en/function.session-status.php
  • 过失@Allen,刚刚编辑了我的答案,抱歉
  • 查看 Miruyu 的这个答案,它既快速又简单 easy and fast solution from maruyu

标签: php session session-variables


【解决方案1】:

session_status 在 PHP 5.4 中引入。检查服务器的 PHP 版本。

顺便说一句,你可以不用那个电话,我会说。只需始终致电session_start。如果您的代码充满了它,只需创建一个函数存根。

【讨论】:

  • 谢谢,明白了!服务器运行在 5.3 上!。
【解决方案2】:

PHP 版本的推荐方式 >= 5.4.0

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

对于 PHP 版本 5.4.0

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

source

【讨论】:

    【解决方案3】:

    它需要 PHP 5.4 ..

    如果你使用 xampp,你可以使用这个链接检查 php 版本 "phpinfo()"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-16
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多