dorbmd1177 2012-08-02 19:22 采纳率: 100%
浏览 54
已采纳

PHP:致命错误:无法重新声明类Session

When update my PHP version to 5.4 (xampp 1.8.0) I see a Fatal error:

Fatal error: Cannot redeclare class Session in C:\xampp\htdocs\vs\classes\session.class.php on line 5

Is this problem related to update PHP version's?

session.class.php:

<?php
defined('_VALID') or die('Restricted Access!');

class Session
{   // <-- This Is Line 5 
    private static $_sess_db;

    public static function open() {
        global $config;    

        if (self::$_sess_db = mysql_connect($config['db_host'], $config['db_user'], $config['db_pass'])) {
            return mysql_select_db($config['db_name'], self::$_sess_db);
        }

        return false;
    }

    public static function close() {
        return mysql_close(self::$_sess_db);
    }

    public static function read($session_id) {
        $sql = sprintf("SELECT `session_data` FROM `sessions` WHERE `session_id` = '%s'", mysql_real_escape_string($session_id));
        if ($result = mysql_query($sql, self::$_sess_db)) {
            if (mysql_num_rows($result)) {
                $record = mysql_fetch_assoc($result);
                return $record['session_data'];
            }
        }

        return '';
    }

    public static function write($session_id, $session_data)
    {
        $sql = sprintf("REPLACE INTO `sessions` VALUES('%s', '%s', '%s')", mysql_real_escape_string($session_id),
                        mysql_real_escape_string(time()), mysql_real_escape_string($session_data) );

        return mysql_query($sql, self::$_sess_db);
    }

    public static function destroy( $session_id )
    {
        $sql = sprintf("DELETE FROM `sessions` WHERE `session` = '%s'", $session_id);
        return mysql_query($sql, self::$_sess_db);
    }

    public static function gc($max) {
        $sql = sprintf("DELETE FROM `sessions` WHERE `session_expires` < '%s'", mysql_real_escape_string(time() - $max));
        return mysql_query($sql, self::$_sess_db);
    }
}
  • 写回答

2条回答 默认 最新

  • dsznndq4912405 2012-08-02 19:25
    关注

    It seems that you are including session.class.php more than once... or you declare the class Session in another file that is included.

    As @cegfault says: include_once and require_once can be used to prevent this.

    But it is better to make sure that you only include the file just once (less memory usage). include_once and require_once are just fail saves.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置