国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
6.2KB

  1. <?php
  2. /**
  3. * 系统配置
  4. *
  5. * @version $Id: sys_info.php 1 22:28 2010年7月20日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.com
  10. */
  11. require_once(dirname(__FILE__)."/config.php");
  12. CheckPurview('sys_Edit');
  13. if(empty($dopost)) $dopost = "";
  14. $configfile = DEDEDATA.'/config.cache.inc.php';
  15. //更新配置函数
  16. function ReWriteConfig()
  17. {
  18. global $dsql,$configfile;
  19. if(!is_writeable($configfile))
  20. {
  21. echo "配置文件'{$configfile}'不支持写入,无法修改系统配置参数!";
  22. exit();
  23. }
  24. $fp = fopen($configfile,'w');
  25. flock($fp,3);
  26. fwrite($fp,"<"."?php\r\n");
  27. $dsql->SetQuery("SELECT `varname`,`type`,`value`,`groupid` FROM `#@__sysconfig` ORDER BY aid ASC ");
  28. $dsql->Execute();
  29. while($row = $dsql->GetArray())
  30. {
  31. if($row['type']=='number')
  32. {
  33. if($row['value']=='') $row['value'] = 0;
  34. fwrite($fp,"\${$row['varname']} = ".$row['value'].";\r\n");
  35. }
  36. else
  37. {
  38. fwrite($fp,"\${$row['varname']} = '".str_replace("'",'',$row['value'])."';\r\n");
  39. }
  40. }
  41. fwrite($fp,"?".">");
  42. fclose($fp);
  43. }
  44. //保存配置的改动
  45. if($dopost=="save")
  46. {
  47. if(!isset($token)){
  48. echo 'No token found!';
  49. exit;
  50. }
  51. if(strcasecmp($token, $_SESSION['token']) != 0){
  52. echo 'Token mismatch!';
  53. exit;
  54. }
  55. foreach($_POST as $k=>$v)
  56. {
  57. if(preg_match("#^edit___#", $k))
  58. {
  59. $v = cn_substrR(${$k}, 1024);
  60. }
  61. else
  62. {
  63. continue;
  64. }
  65. $k = preg_replace("#^edit___#", "", $k);
  66. $dsql->ExecuteNoneQuery("UPDATE `#@__sysconfig` SET `value`='$v' WHERE varname='$k' ");
  67. }
  68. ReWriteConfig();
  69. ShowMsg("成功更改站点配置!", "sys_info.php");
  70. exit();
  71. }
  72. //增加新变量
  73. else if($dopost=='add')
  74. {
  75. if(!isset($token)){
  76. echo 'No token found!';
  77. exit;
  78. }
  79. if(strcasecmp($token, $_SESSION['token']) != 0){
  80. echo 'Token mismatch!';
  81. exit;
  82. }
  83. if($vartype=='bool' && ($nvarvalue!='Y' && $nvarvalue!='N'))
  84. {
  85. ShowMsg("布尔变量值必须为'Y'或'N'!","-1");
  86. exit();
  87. }
  88. if(trim($nvarname)=='' || preg_match("#[^a-z_]#i", $nvarname) )
  89. {
  90. ShowMsg("变量名不能为空并且必须为[a-z_]组成!","-1");
  91. exit();
  92. }
  93. $row = $dsql->GetOne("SELECT varname FROM `#@__sysconfig` WHERE varname LIKE '$nvarname' ");
  94. if(is_array($row))
  95. {
  96. ShowMsg("该变量名称已经存在!","-1");
  97. exit();
  98. }
  99. $row = $dsql->GetOne("SELECT aid FROM `#@__sysconfig` ORDER BY aid DESC ");
  100. $aid = $row['aid'] + 1;
  101. $inquery = "INSERT INTO `#@__sysconfig`(`aid`,`varname`,`info`,`value`,`type`,`groupid`)
  102. VALUES ('$aid','$nvarname','$varmsg','$nvarvalue','$vartype','$vargroup')";
  103. $rs = $dsql->ExecuteNoneQuery($inquery);
  104. if(!$rs)
  105. {
  106. ShowMsg("新增变量失败,可能有非法字符!", "sys_info.php?gp=$vargroup");
  107. exit();
  108. }
  109. if(!is_writeable($configfile))
  110. {
  111. ShowMsg("成功保存变量,但由于 $configfile 无法写入,因此不能更新配置文件!","sys_info.php?gp=$vargroup");
  112. exit();
  113. }else
  114. {
  115. ReWriteConfig();
  116. ShowMsg("成功保存变量并更新配置文件!","sys_info.php?gp=$vargroup");
  117. exit();
  118. }
  119. }
  120. // 搜索配置
  121. else if ($dopost=='search')
  122. {
  123. $keywords = isset($keywords)? strip_tags($keywords) : '';
  124. $i = 1;
  125. $configstr = <<<EOT
  126. <table width="100%" cellspacing="1" cellpadding="1" border="0" bgcolor="#cfcfcf" id="tdSearch" style="">
  127. <tbody>
  128. <tr height="25" bgcolor="#fbfce2" align="center">
  129. <td width="300">参数说明</td>
  130. <td>参数值</td>
  131. <td width="220">变量名</td>
  132. </tr>
  133. EOT;
  134. echo $configstr;
  135. if ($keywords)
  136. {
  137. $dsql->SetQuery("SELECT * FROM `#@__sysconfig` WHERE info LIKE '%$keywords%' OR varname LIKE '%$keywords%' order by aid asc");
  138. $dsql->Execute();
  139. while ($row = $dsql->GetArray()) {
  140. $bgcolor = ($i++%2==0)? "#F9FCEF" : "#ffffff";
  141. $row['info'] = preg_replace("#{$keywords}#", '<font color="red">'.$keywords.'</font>', $row['info']);
  142. $row['varname'] = preg_replace("#{$keywords}#", '<font color="red">'.$keywords.'</font>', $row['varname']);
  143. ?>
  144. <tr align="center" height="25" bgcolor="<?php echo $bgcolor?>">
  145. <td width="300"><?php echo $row['info']; ?>: </td>
  146. <td align="left" style="padding:3px;">
  147. <?php
  148. if($row['type']=='bool')
  149. {
  150. $c1='';
  151. $c2 = '';
  152. $row['value']=='Y' ? $c1=" checked" : $c2=" checked";
  153. echo "<input type='radio' class='np' name='edit___{$row['varname']}' value='Y'$c1>是 ";
  154. echo "<input type='radio' class='np' name='edit___{$row['varname']}' value='N'$c2>否 ";
  155. }else if($row['type']=='bstring')
  156. {
  157. echo "<textarea name='edit___{$row['varname']}' row='4' id='edit___{$row['varname']}' class='textarea_info' style='width:98%;height:50px'>".dede_htmlspecialchars($row['value'])."</textarea>";
  158. }else if($row['type']=='number')
  159. {
  160. echo "<input type='text' name='edit___{$row['varname']}' id='edit___{$row['varname']}' value='{$row['value']}' style='width:30%'>";
  161. }else
  162. {
  163. echo "<input type='text' name='edit___{$row['varname']}' id='edit___{$row['varname']}' value=\"".dede_htmlspecialchars($row['value'])."\" style='width:80%'>";
  164. }
  165. ?>
  166. </td>
  167. <td><?php echo $row['varname']?></td>
  168. </tr>
  169. <?php
  170. }
  171. ?>
  172. </table>
  173. <?php
  174. exit;
  175. }
  176. if ($i == 1)
  177. {
  178. echo ' <tr align="center" bgcolor="#F9FCEF" height="25">
  179. <td colspan="3">没有找到搜索的内容</td>
  180. </tr></table>';
  181. }
  182. exit;
  183. } else if ($dopost=='make_encode')
  184. {
  185. $chars='abcdefghigklmnopqrstuvwxwyABCDEFGHIGKLMNOPQRSTUVWXWY0123456789';
  186. $hash='';
  187. $length = rand(28,32);
  188. $max = strlen($chars) - 1;
  189. for($i = 0; $i < $length; $i++) {
  190. $hash .= $chars[mt_rand(0, $max)];
  191. }
  192. echo $hash;
  193. exit();
  194. }
  195. make_hash();
  196. include DedeInclude('templets/sys_info.htm');