='))
{
if (!function_exists('mysql_connect') AND function_exists('mysqli_connect')) {
function mysql_connect($server, $username, $password)
{
return mysqli_connect($server, $username, $password);
}
}
if (!function_exists('mysql_query') AND function_exists('mysqli_query')) {
function mysql_query($query, $link)
{
return mysqli_query($link, $query);
}
}
if (!function_exists('mysql_select_db') AND function_exists('mysqli_select_db')) {
function mysql_select_db($database_name, $link)
{
return mysqli_select_db($link, $database_name);
}
}
if (!function_exists('mysql_fetch_array') AND function_exists('mysqli_fetch_array')) {
function mysql_fetch_array($result)
{
return mysqli_fetch_array($result);
}
}
if (!function_exists('mysql_close') AND function_exists('mysqli_close')) {
function mysql_close($link)
{
return mysqli_close($result);
}
}
if (!function_exists('split')) {
function split($pattern, $string){
return explode($pattern, $string);
}
}
}
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('openssl_random_pseudo_bytes'))
{
return openssl_random_pseudo_bytes($length);
}
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;
}
}
return FALSE;
}
/**
* 载入小助手,系统默认载入小助手
* 在/data/helper.inc.php中进行默认小助手初始化的设置
* 使用示例:
* 在开发中,首先需要创建一个小助手函数,目录在\include\helpers中
* 例如,我们创建一个示例为test.helper.php,文件基本内容如下:
*
* if ( ! function_exists('HelloDede'))
* {
* function HelloDede()
* {
* echo "Hello! Dede...";
* }
* }
*
* 则我们在开发中使用这个小助手的时候直接使用函数helper('test');初始化它
* 然后在文件中就可以直接使用:HelloDede();来进行调用.
*
* @access public
* @param mix $helpers 小助手名称,可以是数组,可以是单个字符串
* @return void
*/
$_helpers = array();
function helper($helpers)
{
//如果是数组,则进行递归操作
if (is_array($helpers))
{
foreach($helpers as $dede)
{
helper($dede);
}
return;
}
if (isset($_helpers[$helpers]))
{
return;
}
if (file_exists(DEDEINC.'/helpers/'.$helpers.'.helper.php'))
{
include_once(DEDEINC.'/helpers/'.$helpers.'.helper.php');
$_helpers[$helpers] = TRUE;
}
// 无法载入小助手
if ( ! isset($_helpers[$helpers]))
{
exit('Unable to load the requested file: helpers/'.$helpers.'.helper.php');
}
}
function dede_htmlspecialchars($str) {
global $cfg_soft_lang;
if (version_compare(PHP_VERSION, '5.4.0', '<')) return htmlspecialchars($str);
if ($cfg_soft_lang=='gb2312') return htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');
else return htmlspecialchars($str);
}
/**
* 控制器调用函数
*
* @access public
* @param string $ct 控制器
* @param string $ac 操作事件
* @param string $path 指定控制器所在目录
* @return string
*/
function RunApp($ct, $ac = '',$directory = '')
{
$ct = preg_replace("/[^0-9a-z_]/i", '', $ct);
$ac = preg_replace("/[^0-9a-z_]/i", '', $ac);
$ac = empty ( $ac ) ? $ac = 'index' : $ac;
if(!empty($directory)) $path = DEDECONTROL.'/'.$directory. '/' . $ct . '.php';
else $path = DEDECONTROL . '/' . $ct . '.php';
if (file_exists ( $path ))
{
require $path;
} else {
if (DEBUG_LEVEL === TRUE)
{
trigger_error("Load Controller false!");
}
//生产环境中,找不到控制器的情况不需要记录日志
else
{
header ( "location:/404.html" );
die ();
}
}
$action = 'ac_'.$ac;
$loaderr = FALSE;
$instance = new $ct ( );
if (method_exists ( $instance, $action ) === TRUE)
{
$instance->$action();
unset($instance);
} else $loaderr = TRUE;
if ($loaderr)
{
if (DEBUG_LEVEL === TRUE)
{
trigger_error("Load Method false!");
}
//生产环境中,找不到控制器的情况不需要记录日志
else
{
header ( "location:/404.html" );
die ();
}
}
}
/**
* 载入小助手,这里用户可能载入用helps载入多个小助手
*
* @access public
* @param string
* @return string
*/
function helpers($helpers)
{
helper($helpers);
}
//兼容php4的file_put_contents
if(!function_exists('file_put_contents'))
{
function file_put_contents($n, $d)
{
$f=@fopen($n, "w");
if (!$f)
{
return FALSE;
}
else
{
fwrite($f, $d);
fclose($f);
return TRUE;
}
}
}
/**
* 显示更新信息
*
* @return void
*/
function UpdateStat()
{
include_once(DEDEINC."/inc/inc_stat.php");
return SpUpdateStat();
}
$arrs1 = array(0x63,0x66,0x67,0x5f,0x70,0x6f,0x77,0x65,0x72,0x62,0x79);
$arrs2 = array(0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,
0x77,0x77,0x77,0x2e,0x64,0x65,0x64,0x65,0x63,0x6d,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x74,0x61,0x72,
0x67,0x65,0x74,0x3d,0x27,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x27,0x3e,0x50,0x6f,0x77,0x65,0x72,0x20,
0x62,0x79,0x20,0x44,0x65,0x64,0x65,0x43,0x6d,0x73,0x3c,0x2f,0x61,0x3e);
/**
* 短消息函数,可以在某个动作处理后友好的提示信息
*
* @param string $msg 消息提示信息
* @param string $gourl 跳转地址
* @param int $onlymsg 仅显示信息
* @param int $limittime 限制时间
* @return void
*/
function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)
{
if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';
$htmlhead = "\r\n