index.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. <?php
  2. //dezend by qq784939922
  3. define('IN_MYMPS', true);
  4. $charset = 'utf-8';
  5. $dbcharset = 'utf8';
  6. require_once dirname(__FILE__) . '/global.php';
  7. require_once dirname(__FILE__) . '/../include/global.php';
  8. require_once dirname(__FILE__) . '/../include/cache.fun.php';
  9. chk_mymps_install();
  10. $step = isset($_GET['step']) ? intval($_GET['step']) : '';
  11. $step = $step ? $step : '1';
  12. $installinfo = '欢迎来到 <font class="softname">' . MPS_SOFTNAME . '</font> <font class="version">' . MPS_VERSION . '</font> 安装向导,安装前请仔细阅读安装说明后才开始安装。安装文件夹里同样提供了有关软件安装的说明,请您仔细阅读。<div style="margin-top:.5em">安装过程中遇到任何问题,&nbsp;<a href="' . MPS_WWW . '" target="_blank" class="black"><u><b>请前往 www.mayicms.com 获得帮助</b></u></a></div>';
  13. if ($step == '1') {
  14. $info = '阅读安装协议';
  15. include mymps_tpl('inc_head');
  16. $licence = openfile('../licence.txt');
  17. echo '<script type="text/javascript">
  18. var i = 14;
  19. var interval=window.setInterval(
  20. function() {
  21. if(i == 0) {
  22. document.getElementById(\'read\').value = \'同意协议,进入下一步\';
  23. document.getElementById(\'read\').disabled = false;
  24. } else {
  25. document.getElementById(\'read\').value = \'请仔细阅读相关条款(\'+i+\')\';
  26. i--;
  27. }
  28. },
  29. 1000);
  30. </script>
  31. <div class="agreement">
  32. ';
  33. echo $licence;
  34. echo '</div>
  35. <div class="c"></div>
  36. <div id="content">
  37. <div class="wrapD">
  38. <div class="wrapE">
  39. <div class="c"></div>
  40. </div>
  41. </div>
  42. <div class="stepbt">
  43. <strong class="last">请务必认真阅读软件安装协议</strong>
  44. <input style="cursor:pointer;" class="next mymps large" type="button" onclick="location.href=\'?step=2\'" value="请仔细阅读相关条款(15)" id="read" disabled>
  45. </div>
  46. </div>
  47. </div>
  48. ';
  49. }
  50. else if ($step == '2') {
  51. $info = '阅读使用说明';
  52. include mymps_tpl('inc_head');
  53. $licence = openfile('../readme.txt');
  54. echo '<div class="agreement">
  55. ';
  56. echo $licence;
  57. echo '</div>
  58. <div class="c"></div>
  59. <div id="content">
  60. <div class="wrapD">
  61. <div class="wrapE">
  62. <div class="c"></div>
  63. </div>
  64. </div>
  65. <div class="stepbt">
  66. <input type="button" onclick="javascript:history.go(-1);" class="mymps large last" value="上一步:阅读安装协议">
  67. <input style="cursor:pointer;" class="next mymps large" type="button" onclick="location.href=\'?step=3\'" value="进入下一步">
  68. </div>
  69. </div>
  70. </div>
  71. ';
  72. }
  73. else if ($step == '3') {
  74. $info = '检测系统环境';
  75. $phpv = @phpversion();
  76. $sp_server = $_SERVER['SERVER_SOFTWARE'];
  77. $sp_name = $_SERVER['SERVER_NAME'];
  78. $short_open_tag = ini_get('short_open_tag') ? '<font color=green>支持</font>' : '<font color=red>请修改php.ini,short_open_tag=On,否则无法安装</font>';
  79. $disabled = ini_get('short_open_tag') ? '' : 'disabled="disabled"';
  80. require_once MYMPS_DATA . '/sp_testdirs.php';
  81. include mymps_tpl('inc_head');
  82. echo '<div class="c"></div>
  83. <div id="content">
  84. <div class="wrapD">
  85. <div class="wrapE">
  86. <div class="boxA">
  87. <div style="width:57%; float:left">
  88. <h3>检测系统环境</h3>
  89. <table class="dlA">
  90. <tr>
  91. <td width="130">服务器域名</td>
  92. <td>';
  93. echo $sp_name;
  94. echo '</td>
  95. </tr>
  96. <tr>
  97. <td>服务器操作系统</td>
  98. <td>';
  99. echo defined('PHP_OS') ? PHP_OS : ' ';
  100. echo '</td>
  101. </tr>
  102. <tr>
  103. <td>服务器解译引擎</td>
  104. <td>';
  105. echo $sp_server;
  106. echo '</td>
  107. </tr>
  108. <tr>
  109. <td>PHP程式版本</td>
  110. <td>';
  111. echo $phpv;
  112. echo '</td>
  113. </tr>
  114. <tr>
  115. <td>mymps路径</td>
  116. <td>';
  117. echo MYMPS_ROOT;
  118. echo '</td>
  119. </tr>
  120. <tr>
  121. <td>短标记支持</td>
  122. <td>';
  123. echo $short_open_tag;
  124. echo '</td>
  125. </tr>
  126. </table>
  127. </div>
  128. <div style="margin-left:56%">
  129. <h3>检查目录可写</h3>
  130. <div style="margin-top:20px;">
  131. ';
  132. include MYMPS_TPL . '/box/sp_testdirs.html';
  133. echo ' </div>
  134. </div>
  135. </div>
  136. <div class="c"></div>
  137. <br />
  138. </div>
  139. </div>
  140. <div class="stepbt">
  141. <input type="button" onclick="javascript:history.go(-1);" class="mymps large last" value="上一步:阅读使用说明">
  142. <input style="cursor:pointer;" class="next mymps large" type="button" onclick="location.href=\'?step=4\'" value="进入下一步" ';
  143. echo $disabled;
  144. echo '>
  145. </button>
  146. </div>
  147. </div>
  148. </div>
  149. ';
  150. }
  151. else if ($step == '4') {
  152. $info = '填写数据库信息';
  153. include mymps_tpl('inc_head');
  154. echo '<div class="c"></div>
  155. <script language="JavaScript">
  156. function $obj(id) {
  157. return document.getElementById(id);
  158. }
  159. function postcheck(){
  160. if(document.install.db_host.value==""){
  161. alert(\'数据库服务器不能为空\');
  162. document.install.db_host.focus();
  163. return false;
  164. }
  165. if (document.install.db_user.value=="") {
  166. alert(\'数据库用户名不能为空\');
  167. document.install.db_user.focus();
  168. return false;
  169. }
  170. if (document.install.db_name.value=="") {
  171. alert(\'数据库名不能为空\');
  172. document.install.db_name.focus();
  173. return false;
  174. }
  175. if (!document.install.db_pass.value && !confirm(\'你填的数据库密码为空,是否使用空的数据库密码\')) {
  176. return false;
  177. }
  178. document.install.mymps.disabled=true;
  179. document.install.mymps.value="安装中...";
  180. return true;
  181. }
  182. </script>
  183. <div id="content">
  184. <form name="install" action="index.php?step=5" method="post" onsubmit="return postcheck();">
  185. <div class="wrapD">
  186. <div class="wrapE">
  187. <div class="boxA">
  188. <div style="width:57%; float:left">
  189. <h3>填写数据库信息</h3>
  190. <table class="dlA">
  191. <tr>
  192. <td>数据库服务器</td>
  193. <td><input type="text" name="db_host" value="localhost" class="inputA" /></td>
  194. </tr>
  195. <tr>
  196. <td>数据库用户名</td>
  197. <td><input type="text" name="db_user" value="" class="inputA" /></td>
  198. </tr>
  199. <tr>
  200. <td>数据库密码</td>
  201. <td><input type="text" name="db_pass" value="" class="inputA" /></td>
  202. </tr>
  203. <tr>
  204. <td>数据库名</td>
  205. <td><input type="text" name="db_name" class="inputA" /></td>
  206. </tr>
  207. <tr>
  208. <td height="18">数据表区分前缀(如非必要.<b>请保持默认</b>)</td>
  209. <td><input type="text" name="db_mymps" value="my_" class="inputA" /></td>
  210. </tr>
  211. </table>
  212. </div>
  213. <div style="margin-left:56%">
  214. <h3>填写网站创始人信息</h3>
  215. <table class="dlA dlB">
  216. <tbody id="showadmin">
  217. <tr>
  218. <td>用户名</td>
  219. <td><input type="text" name="manager" class="inputA" /> 系统登录名</td>
  220. </tr>
  221. <tr>
  222. <td>密码</td>
  223. <td><input type="text" name="manager_pass" class="inputA" /></td>
  224. </tr>
  225. <tr>
  226. <td>确认密码</td>
  227. <td><input type="text" name="manager_chkpass" class="inputA" /></td>
  228. </tr>
  229. <tr>
  230. <td height="18">Email</td>
  231. <td><input type="text" name="email" class="inputA" value="" /></td>
  232. </tr>
  233. </tbody>
  234. </table>
  235. </div>
  236. </div>
  237. <div class="c"></div>
  238. </div>
  239. </div>
  240. <div class="c"></div>
  241. <div class="wrapCC">
  242. <table cellpadding="0" cellspacing="0" class="wrapCC_table">
  243. <tr>
  244. <td height="18">cookie加密前缀(如非必要.<b>请保持默认</b>)</td>
  245. <td><input type="text" name="cookiepre" value="';
  246. echo random(4) . '_';
  247. echo '" class="inputB" /></td>
  248. </tr>
  249. <tr>
  250. <td height="18">cookiedomain(如非必要.<b>请保持默认</b>)</td>
  251. <td><input type="text" name="cookiedomain" value="';
  252. echo !in_array($_SERVER['SERVER_NAME'], array('127.0.0.1', 'localhost')) ? str_replace('www', '', $_SERVER['SERVER_NAME']) : '';
  253. echo '" class="inputB" /></td>
  254. </tr>
  255. <tr>
  256. <td height="18">cookiepath(如非必要.<b>请保持默认</b>)</td>
  257. <td><input type="text" name="cookiepath" value="/" class="inputB" /></td>
  258. </tr>
  259. <tr>
  260. <td height="18">安装分类信息栏目分类?</td>
  261. <td><input type="checkbox" name="installcategory" checked="checked"/></td>
  262. </tr>
  263. <tr>
  264. <td height="18">安装分类信息模型数据?</td>
  265. <td><input type="checkbox" name="installinfomodel" checked="checked"/> 建议安装</td>
  266. </tr>
  267. <tr>
  268. <td height="18">安装默认广告数据?</td>
  269. <td><input type="checkbox" name="installadv"/> </td>
  270. </tr>
  271. <tr>
  272. <td height="18">安装优惠券分类?</td>
  273. <td><input type="checkbox" name="installcoupon" checked="checked"/> 建议安装</td>
  274. </tr>
  275. <tr>
  276. <td height="18">安装团购分类?</td>
  277. <td><input type="checkbox" name="installgroup" checked="checked"/> 建议安装</td>
  278. </tr>
  279. <tr>
  280. <td height="18">安装商品分类?</td>
  281. <td><input type="checkbox" name="installgoods" checked="checked"/> 建议安装</td>
  282. </tr>
  283. <tr>
  284. <td height="18">安装商家行业分类?</td>
  285. <td><input type="checkbox" name="installcorp" checked="checked"/> 建议安装</td>
  286. </tr>
  287. </table>
  288. </div>
  289. <div class="stepbt">
  290. <input type="button" onclick="javascript:history.go(-1);" class="mymps large last" value="上一步:检测系统环境">
  291. <input style="cursor:pointer;" class="next mymps large" type="submit" value="进入下一步" name="mymps" id="mymps"></button>
  292. </div>
  293. </form>
  294. </div>
  295. </div>
  296. ';
  297. }
  298. else if ($step == '5') {
  299. @set_time_limit(0);
  300. $db_host = trim($_POST['db_host']);
  301. $db_user = trim($_POST['db_user']);
  302. $db_pass = trim($_POST['db_pass']);
  303. $db_name = trim($_POST['db_name']);
  304. $db_mymps = trim($_POST['db_mymps']);
  305. $admin = trim($_POST['manager']);
  306. $password = trim($_POST['manager_pass']);
  307. $repassword = trim($_POST['manager_chkpass']);
  308. $email = trim($_POST['email']);
  309. $in_type = trim($_POST['install_type']);
  310. !$db_host && write_msg('未填写数据库服务器地址。');
  311. !$db_user && write_msg('未填写数据库服务器用户名。');
  312. !$db_name && write_msg('未填写数据库名称。');
  313. (!$db_mymps || strstr($db_mymps, '.')) && write_msg('您指定的数据表前缀包含点字符,请返回修改。');
  314. !$admin && write_msg('未填写创始人登录用户名。');
  315. !$password && write_msg('未填写创始人管理密码。');
  316. !$repassword && write_msg('未填写重复密码。');
  317. $password != $repassword && write_msg('两次输入的密码不一致。');
  318. $conn = @mysql_connect($db_host, $db_user, $db_pass);
  319. $conn === false && write_msg('安装失败!请检查数据库用户名以及数据库密码是否正确。');
  320. mysql_connect($db_host, $db_user, $db_pass);
  321. $cur_os = PHP_OS;
  322. $cur_phpversion = PHP_VERSION;
  323. $cur_phpversion < '4.3.0' && write_msg('您的PHP版本低于4.3.0, 无法安装使用 ' . MPS_SOFTNAME . '<br />');
  324. $cur_mysqlversion = mysql_get_server_info();
  325. $cur_mysqlversion < '3.23' && write_msg('您的MySQL版本低于3.23, 由于程序没有经过此平台的测试, 建议您换 MySQL4 的数据库服务器.<br />');
  326. $yes = mysql_select_db($db_name);
  327. if ($yes === false) {
  328. $sql = '4.1' <= $mysql_version ? 'CREATE DATABASE ' . $db_name . ' DEFAULT CHARACTER SET ' . $dbcharset : 'CREATE DATABASE ' . $db_name;
  329. mysql_query($sql, $conn) === false && write_msg('无法创建数据库,请检查相关参数是否正确。');
  330. }
  331. @mysql_close($conn);
  332. $files = '<?php
  333. ';
  334. $files .= '$charset = "' . $charset . '";
  335. ';
  336. $files .= '//系统字符集编码
  337. ';
  338. $files .= '$dbcharset = "' . $dbcharset . '";
  339. ';
  340. $files .= '//数据库字符集编码
  341. ';
  342. $files .= '$db_host = "' . $db_host . '";
  343. ';
  344. $files .= '//数据库服务器地址,一般为localhost
  345. ';
  346. $files .= '$db_name = "' . $db_name . '";
  347. ';
  348. $files .= '//使用的数据库名称
  349. ';
  350. $files .= '$db_user = "' . $db_user . '";
  351. ';
  352. $files .= '//数据库帐号
  353. ';
  354. $files .= '$db_pass = "' . $db_pass . '";
  355. ';
  356. $files .= '//数据库密码
  357. ';
  358. $files .= '$db_mymps = "' . $db_mymps . '";
  359. ';
  360. $files .= '//数据库前缀
  361. ';
  362. $files .= '$db_intype = "' . $in_type . '";
  363. ';
  364. $files .= '$cookiepre = "' . $cookiepre . '";
  365. ';
  366. $files .= '//cookies加密前缀
  367. ';
  368. $files .= '$cookiedomain = "' . $cookiedomain . '";
  369. ';
  370. $files .= '$cookiepath = "' . $cookiepath . '";
  371. ';
  372. $files .= '?>';
  373. $file = @fopen(MYMPS_DATA . '/config.db.php', 'wb+');
  374. !$file && write_msg('无法打开数据库配置文件 /config.db.php');
  375. if (!@fwrite($file, trim($files))) {
  376. write_msg('无法写入配置文件 config.db.php');
  377. exit();
  378. }
  379. @fclose($file);
  380. require_once MYMPS_INC . '/db.class.php';
  381. if ($install = import(MYMPS_ROOT . '/install/install.sql', $db_mymps, $dbcharset)) {
  382. if ($installarea) {
  383. import(MYMPS_ROOT . '/install/install_area.sql', $db_mymps, $dbcharset);
  384. }
  385. if ($installcategory) {
  386. import(MYMPS_ROOT . '/install/install_category.sql', $db_mymps, $dbcharset);
  387. }
  388. if ($installcoupon) {
  389. import(MYMPS_ROOT . '/install/install_coupon.sql', $db_mymps, $dbcharset);
  390. }
  391. if ($installgroup) {
  392. import(MYMPS_ROOT . '/install/install_group.sql', $db_mymps, $dbcharset);
  393. }
  394. if ($installgoods) {
  395. import(MYMPS_ROOT . '/install/install_goods.sql', $db_mymps, $dbcharset);
  396. }
  397. if ($installcorp) {
  398. import(MYMPS_ROOT . '/install/install_corp.sql', $db_mymps, $dbcharset);
  399. }
  400. if ($installadv) {
  401. import(MYMPS_ROOT . '/install/install_adv.sql', $db_mymps, $dbcharset);
  402. }
  403. if ($installinfomodel) {
  404. import(MYMPS_ROOT . '/install/install_infomodel.sql', $db_mymps, $dbcharset);
  405. }
  406. else {
  407. $db->query('INSERT INTO `my_info_typemodels` (`id`, `name`, `displayorder`, `type`, `options`) VALUES
  408. (1, \'空模型\', 0, 1, \'\');');
  409. }
  410. $password = md5($password);
  411. $now_domain = get_inurl();
  412. $db->query('INSERT INTO `' . $db_mymps . 'admin` (userid,uname,pwd,email,typeid) VALUES (\'' . $admin . '\',\'' . $admin . '\',\'' . $password . '\',\'' . $email . '\',\'1\')');
  413. $db->query('UPDATE `' . $db_mymps . 'config` SET value = \'blue\' WHERE description = \'cfg_tpl_dir\'');
  414. $db->query('UPDATE `' . $db_mymps . 'config` SET value = \'' . $now_domain . '\' WHERE description = \'SiteUrl\'');
  415. update_config_cache();
  416. write_lock();
  417. $step = '!';
  418. $info = '完成安装';
  419. $mymps_install_success_info = '恭喜,您的 ' . MPS_SOFTNAME . '分类信息系统 ' . MPS_VERSION . ' 已经安装成功!';
  420. include mymps_tpl('inc_head');
  421. echo '<div class="c"></div>
  422. <div id="content">
  423. <div class="wrapD">
  424. <div class="wrapE">
  425. <div class="boxB">
  426. <div class="cgLeft"></div>
  427. <div class="cg" style="margin-left:35%">
  428. <h1>';
  429. echo $mymps_install_success_info;
  430. echo '</h1>
  431. <ul class="listA">
  432. <li>系统前台地址 : <a href="';
  433. echo $now_domain;
  434. echo '/index.php" target="_blank" style="color:#000">';
  435. echo $now_domain;
  436. echo '/index.php</a></li>
  437. <li>系统后台地址 : <a href="';
  438. echo $now_domain;
  439. echo '/mayicms/index.php?go=config" target="_blank" style="color:#000">';
  440. echo $now_domain;
  441. echo '/mayicms</a></li>
  442. <li>';
  443. echo MPS_SOFTNAME;
  444. echo '官方论坛 : <a href="';
  445. echo MPS_BBS;
  446. echo '" target="_blank" style="color:#000">';
  447. echo MPS_BBS;
  448. echo '</a></li>
  449. </ul>
  450. </div>
  451. </div>
  452. <div class="c"></div>
  453. </div>
  454. </div>
  455. <div class="stepbt"><input type="button" class="next mymps mini" onClick="closewindows();" value="关闭窗口"></div>
  456. <script language="JavaScript">
  457. function closewindows(){
  458. var agt = navigator.userAgent.toLowerCase();
  459. var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  460. if (is_ie) {
  461. var ieversion = parseFloat(agt.substring(agt.indexOf("msie")+5,agt.indexOf(\';\',agt.indexOf("msie"))));
  462. if (ieversion < 5.5) {
  463. var str = \'<object id="notipclose" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"><param name="command" value="close"></object>\';
  464. document.body.insertadjacenthtml(beforeend,str);
  465. document.all.notipclose.click();
  466. } else {
  467. window.opener = null;
  468. window.close();
  469. }
  470. } else {
  471. window.close();
  472. }
  473. }
  474. </script>
  475. </div>
  476. </div>
  477. ';
  478. }
  479. else {
  480. write_msg('您的' . MPS_SOFTNAME . '安装失败!');
  481. }
  482. }
  483. include mymps_tpl('inc_foot');
  484. ?>