最新的 Dedecms CMS 版本(2018-01-09)对 include
文件夹中的 common.func.php
文件进行了修改,新增了两个函数。这些改动可能会影响您下载的模板文件夹中的 common.func.php
文件,如果模板文件没有包含这两个新函数,可能会导致系统运行时出现错误。
为了确保系统的正常运行,您需要将这两个函数的代码手动添加到 /include/common.func.php
文件中。以下是这两个函数的具体代码:
function make_hash()
{
$rand = dede_random_bytes(16);
$_SESSION['token'] = ($rand === FALSE)
? md5(uniqid(mt_rand(), TRUE))
: bin2hex($rand);
return $_SESSION['token'];
}
function dede_random_bytes($length)
{
if (empty($length) OR ! ctype_digit((string) $length))
{
return FALSE;
}
if (function_exists('random_bytes'))
{
try
{
return random_bytes((int) $length);
}
catch (Exception $e)
{
return FALSE;
}
}
if (defined('MCRYPT_DEV_URANDOM') && ($output = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM)) !== FALSE)
{
return $output;
}
if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE)
{
is_php('5.4') && stream_set_chunk_size($fp, $length);
$output = fread($fp, $length);
fclose($fp);
if ($output !== FALSE)
{
return $output;
}
}
if (function_exists('openssl_random_pseudo_bytes'))
{
return openssl_random_pseudo_bytes($length);
}
return FALSE;
}
请将上述代码粘贴到 /include/common.func.php
文件中,具体位置为以下注释的上方:
/**
* 载入小助手,系统默认载入小助手
*/
通过以上操作,您可以有效避免因缺少函数而导致的系统错误,同时确保 Dedecms 系统能够正常运行。
注意:在进行任何代码修改之前,请务必备份原始文件,以防万一出现问题时可以快速恢复。