梦想之家

微擎框架0.8在 php7.2.33环境下报错修复

1.变量类型报错 Uncaught Error: [] operator not supported for strings,修复文件: framework\model\account.mod.php

//大概304行 ,把
$packageids = iunserializer($group['package']);
if (!empty($extend)) {
    foreach ($extend as $extend_packageid => $row) {
        $packageids[] = $extend_packageid;
    }
}
替换成
$packageids = iunserializer($group['package']);
if (!empty($extend)) {
    $packageids = array(); //dcr163 php7.2.33环境下 Uncaught Error: [] operator not supported for strings
    foreach ($extend as $extend_packageid => $row) {
        $packageids[] = $extend_packageid;
    }
}

2. session报错 session_start(): Failed to read session data: user (path: ),修复文件: framework\class\wesession.class.php

//把
public function read($sessionid) {
	$sql = 'SELECT * FROM ' . tablename('core_sessions') . ' WHERE `sid`=:sessid AND `expiretime`>:time';
	$params = array();
	$params[':sessid'] = $sessionid;
	$params[':time'] = TIMESTAMP;
	$row = pdo_fetch($sql, $params);
	if(is_array($row) && !empty($row['data'])) {
		return $row['data'];
	}
	return false;
}
//替换成
public function read($sessionid) {
	$sql = 'SELECT * FROM ' . tablename('core_sessions') . ' WHERE `sid`=:sessid AND `expiretime`>:time';
	$params = array();
	$params[':sessid'] = $sessionid;
	$params[':time'] = TIMESTAMP;
	$row = pdo_fetch($sql, $params);
	if(is_array($row) && !empty($row['data'])) {
	    //dcr163 修复报错 session_start(): Failed to read session data: user (path: ) in s
        if( phpversion() >= 7.0){
            return  (string)$row['data'];
        }
        //dcr163 e
		return $row['data'];
	}
    //dcr163 修复报错 session_start(): Failed to read session data: user (path: ) in s
    if( phpversion() >= 7.0){
        return  '';
    }
    //dcr163 e
	return false;
}



您此刻的心情: