📄 tools.php
字号:
$founderarray = explode(',', str_replace(' ', '', $carray['forumfounders']));
$adminids = $notadminids = '';
$notadmin = 0;
foreach($founderarray as $fdkey) {
if (@mysql_result(@mysql_query("SELECT adminid FROM {$carray[tablepre]}members WHERE uid = '$fdkey' LIMIT 1"), 0) == 1) {
$isadmin ++;
$iscomma = $isadmin > 1 ? ',' : '';
$adminids .= $iscomma.$fdkey;
} else {
$notadmin ++;
$notcomma = $notadmin > 1 ? ',' : '';
$notadminids .= $notcomma.$fdkey;
}
}
if (!$isadmin) {
$comment['forumfounders'] = $error_style_s.'出错:创始人中无管理员'.$style_e;
} elseif ($notadmin) {
$comment['forumfounders'] = $error_style_s.'警告:创始人中有非管理员,uid如下:'.$notadminids.$style_e;
}
} else {
$comment['forumfounders'] = $error_style_s.'警告:创始人设置为空,多个管理员将可能有安全问题'.$style_e;
}
}
$comment['dbreport'] = $carray['dbreport'] == 0 ? '不发送错误报告' : '发送错误报告';
$comment['errorreport'] = $carray['errorreport'] == 1 ? '屏蔽程序错误' : '不屏蔽程序错误';
if (preg_match('/[^\d|]/i', str_replace(' ', '', $carray['attackevasive']))) {
$carray['attackevasive'] .= $error_style_s.'出错:含有非法字符,该项设置只能含有数字和半角逗号,'.$style_e;
} else {
if (preg_match('/[8]/i', $carray['attackevasive']) && @mysql_result(@mysql_query("SELECT COUNT(*) FROM {$carray[tablepre]}members")) < 1) {
$carray['attackevasive'] .= $error_style_s.'出错:您设置了回答问题(8),但未添加验证问题和答案 ,'.$style_e;
}
}
$comment_admincp_error = "否 > {$error_style_s}警告:有安全隐患{$style_e}";
$comment_admincp_ok = "是 > {$error_style_s}警告:有安全隐患{$style_e}";
if ($carray['admincp[\'forcesecques\']'] == 1) {
$comment['admincp[\'forcesecques\']'] = "{$ok_style_s}是{$style_e}";
} else {
$comment['admincp[\'forcesecques\']'] = $comment_admincp_error;
}
if ($carray['admincp[\'checkip\']'] == 0) {
$comment['admincp[\'checkip\']'] = $comment_admincp_error;
} else {
$comment['admincp[\'checkip\']'] = "{$ok_style_s}是{$style_e}";
}
if ($carray['admincp[\'tpledit\']'] == 1) {
$comment['admincp[\'tpledit\']'] = $comment_admincp_ok;
} else {
$comment['admincp[\'tpledit\']'] = "{$title_style_s}否{$title_style_e}";
}
if ($carray['admincp[\'runquery\']'] == 1) {
$comment['admincp[\'runquery\']'] = $comment_admincp_ok;
} else {
$comment['admincp[\'runquery\']'] = "{$title_style_s}否{$title_style_e}";
}
if ($carray['admincp[\'dbimport\']'] == 1) {
$comment['admincp[\'dbimport\']'] = $comment_admincp_ok;
} else {
$comment['admincp[\'dbimport\']'] = "{$title_style_s}否{$title_style_e}";
}
foreach($carray as $key => $keyfield) {
$clang[$key] == '' && $clang[$key] = ' ';
strpos('comma'.$comment[$key], '警告') && $comment[$key] = $comment[$key];
strpos('comma'.$comment[$key], '出错') && $comment[$key] = $comment[$key];
$comment[$key] == '' && $comment[$key] = "{$ok_style_s}正常{$style_e}";
if(in_array($key, array('dbuser', 'dbpw'))) {
$keyfield = '**隐藏**';
}
$keyfield == '' && $keyfield = '空';
if(!in_array($key, array('dbhost','dbuser','dbpw','dbname'))) {
if(in_array($key, array('pconnect', 'headercharset', 'tplrefresh', 'dbreport', 'errorreport', 'admincp[\'forcesecques\']', 'admincp[\'checkip\']', 'admincp[\'tpledit\']', 'admincp[\'runquery\']', 'admincp[\'dbimport\']'))) {
$doctor_config .= "\n\t{$title_style_s}$key{$title_style_e} ---> $clang[$key] ---> $comment[$key]\n";
} elseif(in_array($key, array('cookiepre', 'cookiepath', 'cookiedomain', 'charset', 'dbcharset', 'attackevasive'))) {
$doctor_config .= "\n\t{$title_style_s}$key{$title_style_e} ---> $clang[$key] ---> $keyfield\n";
} else {
$doctor_config .= "\n\t{$title_style_s}$key{$title_style_e} ---> $clang[$key] ---> $keyfield ---> $comment[$key]\n";
}
} else {
if(strstr($comment[$key], '出错')) {
strstr($doctor_config_db, '正常') && $doctor_config_db = '';
$doctor_config_db .= "{$title_style_s}$key{$title_style_e} ---> $clang[$key] ---> $comment[$key]";
} else {
if(empty($doctor_config_db)) {
$doctor_config_db ="\n\t{$ok_style_s}数据库正常链接.{$style_e}";
}
}
}
}
$doctor_config = "\n".$doctor_config_db.$doctor_config;
//校验环境是否支持DZ/SS,查看数据库和表的字符集,敏感信息 charset,dbcharset, php,mysql,zend,php 短标记
$msg = '';
$curr_os = PHP_OS;
if(!function_exists('mysql_connect')) {
$curr_mysql = $error_style_s.'不支持'.$style_e;
$msg .= "您的服务器不支持MySql数据库,无法安装论坛程序";
$quit = TRUE;
} else {
if(@mysql_connect($dbhost, $dbuser, $dbpw)) {
$curr_mysql = mysql_get_server_info();
} else {
$curr_mysql = $ok_style_s.'支持'.$style_e;
}
}
if(function_exists('mysql_connect')) {
$authkeylink = @mysql_connect($dbhost, $dbuser, $dbpw);
mysql_select_db($dbname, $authkeylink);
$authkeyresult = mysql_result(mysql_query("SELECT `value` FROM {$tablepre}settings WHERE `variable`='authkey'", $authkeylink), 0);
if($authkeyresult) {
$authkeyexist = $ok_style_s.'存在'.$style_e;
} else {
$authkeyexist = $error_style_s.'不存在'.$style_e;
}
}
$curr_php_version = PHP_VERSION;
if($curr_php_version < '4.0.6') {
$msg .= "您的 PHP 版本小于 4.0.6, 无法使用 Discuz! / SuperSite。";
}
if(ini_get('allow_url_fopen')) {
$allow_url_fopen = $ok_style_s.'允许'.$style_e;
} else {
$allow_url_fopen = $title_style_s.'不允许'.$title_style_e;
}
$max_execution_time = get_cfg_var('max_execution_time');
$max_execution_time == 0 && $max_execution_time = '不限制';
$memory_limit = get_cfg_var('memory_limit');
$curr_server_software = $_SERVER['SERVER_SOFTWARE'];
if(function_exists('ini_get')) {
if(!@ini_get('short_open_tag')) {
$curr_short_tag = $title_style_s.'不允许'.$title_style_e;
$msg .='请将 php.ini 中的 short_open_tag 设置为 On,否则无法使用论坛。';
} else {
$curr_short_tag = $ok_style_s.'允许'.$style_e;
}
if(@ini_get(file_uploads)) {
$max_size = @ini_get(upload_max_filesize);
$curr_upload_status = '您可以上传附件的最大尺寸: '.$max_size;
} else {
$msg .= "附件上传或相关操作被服务器禁止。";
}
} else {
$msg .= 'php.ini中禁用了ini_get()函数.部分环境参数无法检测.';
}
if(!defined('OPTIMIZER_VERSION')) define('OPTIMIZER_VERSION','没有安装或版本较低');
if(OPTIMIZER_VERSION < 3.0) {
$msg .="您的ZEND版本低于3.0,将无法使用SuperSite.";
}
//临时目录的检查
if(@is_writable(@ini_get('upload_tmp_dir'))){
$tmpwritable = $ok_style_s.'可写'.$style_e;
} elseif(!@ini_get('upload_tmp_dir') & @is_writable($_ENV[TEMP])) {
$tmpwritable = $ok_style_s.'可写'.$style_e;
} else {
$tmpwritable = $title_style_s.'不可写'.$title_style_e;
}
if(@ini_get('safe_mode') == 1) {
$curr_safe_mode = $ok_style_s.'开启'.$style_e;
} else {
$curr_safe_mode = $title_style_s.'关闭'.$title_style_e;
}
if(@diskfreespace('.')) {
$curr_disk_space = intval(diskfreespace('.') / (1024 * 1024)).'M';
} else {
$curr_disk_space = '无法检测';
}
if(function_exists('xml_parser_create')) {
$curr_xml = $ok_style_s.'可用'.$style_e;
} else {
$curr_xml = $title_style_s.'不可用'.$title_style_e;
}
if(function_exists('file')) {
$funcexistfile = $ok_style_s.'存在'.$style_e;
} else {
$funcexistfile = $title_style_s.'不存在'.$title_style_e;
}
if(function_exists('fopen')) {
$funcexistfopen = $ok_style_s.'存在'.$style_e;
} else {
$funcexistfopen = $title_style_s.'不存在'.$title_style_e;
}
if(@ini_get('display_errors')) {
$curr_display_errors = $ok_style_s.'开启'.$style_e;
} else {
$curr_display_errors = $title_style_s.'关闭'.$title_style_e;
}
if(!function_exists('ini_get')) {
$curr_display_errors = $tmpwritable = $curr_safe_mode = $curr_upload_status = $curr_short_tag = '无法检测';
}
//目录权限检查
$envlogs = array();
$entryarray = array (
'attachments',
'forumdata',
'forumdata/threadcaches',
'forumdata/logs',
'forumdata/templates',
'forumdata/cache',
'customavatars',
'forumdata/viewcount.log',
'forumdata/dberror.log',
'forumdata/errorlog.php',
'forumdata/ratelog.php',
'forumdata/cplog.php',
'forumdata/modslog.php',
'forumdata/illegallog.php'
);
foreach(array('templates', 'forumdata/logs', 'forumdata/cache', 'forumdata/templates') as $directory) {
getdirentry($directory);
}
$fault = 0;
foreach($entryarray as $entry) {
$fullentry = './'.$entry;
if(!is_dir($fullentry) && !file_exists($fullentry)) {
continue;
} else {
if(!is_writeable($fullentry)) {
$dir_perm .= "\n\t\t".(is_dir($fullentry) ? '目录' : '文件')." ./$entry {$error_style_s}无法写入.{$style_e}";
$msg .= "\n\t\t".(is_dir($fullentry) ? '目录' : '文件')." ./$entry {$error_style_s}无法写入.{$style_e}";
$fault = 1;
}
}
}
$dir_perm .= $fault ? '' : $ok_style_s.'文件及目录属性全部正确'.$style_e;
$gd_check = '';
if(!extension_loaded('gd')) {
$gd_check .= '您的php.ini未开启extension=php_gd2.dll(windows)或者未编译gd库(linux).';
} elseif(!function_exists('gd_info') && phpversion() < '4.3') {
$gd_check .= 'php版本低于4.3.0,不支持高版本的gd库,请升级您的php版本.';
} else {
$ver_info = gd_info();
preg_match('/([0-9\.]+)/', $ver_info['GD Version'], $match);
if($match[0] < '2.0') {
$gd_check .= "\n\t\tgd版本低于2.0,请升级您的gd版本以支持gd的验证码和水印.";
} elseif(!(function_exists('imagecreatefromjpeg') && function_exists('imagejpeg')) ) {
$gd_check .= "\n\t\tgd版本不支持jpeg的验证码和水印.";
} elseif(!(function_exists('imagecreatefromgif') && function_exists('imagegif')) ) {
$gd_check .= "\n\t\tgd版本不支持gif的验证码和水印.";
} elseif(!(function_exists('imagecreatefrompng') && function_exists('imagepng')) ) {
$gd_check .= "\n\t\tgd版本不支持png的验证码和水印.";
} else {
$gd_check .= '正常开启';
}
}
if($gd_check != '正常开启') {
$gd_check = $error_style_s.$gd_check.$style_e;
} else {
$gd_check = $ok_style_s.$gd_check.$style_e;
}
$ming_check = '';
if(extension_loaded('ming')) {
if(substr($curr_os,0,3) == 'WIN') {
$ming_check .= '您的php.ini未开启extension=php_ming.dll,所以无法支持flash验证码';
} else {
$ming_check .= '您未编译ming库,所以无法支持flash验证码';
}
} else {
$ming_check .= '您的系统支持flash验证码,如果还无法使用flash验证码的话,有可能是您的php版本太低';
}
$imagemagick_check = '';
if(!function_exists('exec')) {
$imagemagick_check .='您的php.ini里或者空间商禁止了使用exec函数,无法使用ImageMagick';
} else {
$imagemagick_check .='您现在只需安装好ImageMagick,然后配置好相关参数就可以使用ImageMagick(使用之前请先使用后台的预览功能来检查您的ImageMagick是否安装好)';
}
if($msg == '') {
$msg = "{$ok_style_s}没有发现系统环境问题.{$style_e}";
} else {
$msg = $error_style_s.$msg.$style_e;
}
$doctor_env = "
操作系统--->$curr_os
WEB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -