Просмотр файла install.php

Размер файла: 7.82Kb
  1. <?php
  2. error_reporting(E_ALL & ~E_NOTICE);
  3. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml"><head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <link rel="stylesheet" type="text/css" href="themes/standart/style.css">
  7. <title>Установка каталога</title></head>
  8. <div class="head"><img src="" alt="logo"/></div>';
  9. echo '<div class="title">Установка каталога</div>';
  10. echo '<div class="menu"';
  11. switch($_GET['act']) {
  12. case 'set' :
  13. ////////////////////////////////////////////////////////////
  14. // Создание таблиц в базе данных MySQL //
  15. ////////////////////////////////////////////////////////////
  16. echo '<div class="link"><img src="images/green.png" alt="on"/> Установка каталога</div>';
  17. require_once ("inc/db.php");
  18. $dbcnx = mysql_connect($db_host,$db_user,$db_pass);
  19. if (!$dbcnx) {
  20. exit ("Сервер базы данных не доступен");
  21. }
  22. if (!mysql_select_db($db_name , $dbcnx)){
  23. exit ("База данных не доступна");
  24. }
  25. mysql_query("SET NAMES 'utf8'", $dbcnx);
  26. $error = '';
  27. @ set_magic_quotes_runtime(0);
  28. // Читаем SQL файл и заносим его в базу данных
  29. $query = fread(fopen('install.sql', 'r'), filesize('install.sql'));
  30. $pieces = split_sql($query);
  31. for ($i = 0; $i < count($pieces); $i++) {
  32. $pieces[$i] = trim($pieces[$i]);
  33. if (!empty ($pieces[$i]) && $pieces[$i] != "#") {
  34. if (!mysql_query($pieces[$i])) {
  35. $error = $error . mysql_error() . '<br />';
  36. }
  37. }
  38. }
  39. if (empty ($error)) {
  40. echo '<div class="link">- Таблицы созданы</div>';
  41.  
  42. // Принимаем данные из формы
  43. $log = trim($_POST['wnickadmina']);
  44. $par = trim($_POST['wpassadmina']);
  45. $hom = trim($_POST['whome']);
  46.  
  47. // Настройка администратора и общих настроек
  48. mysql_query("insert into `users` set
  49. `name`='" . mysql_real_escape_string($log) . "',
  50. `level`='2',
  51. `pass`='" .md5($par). "';") or die('Ошибка настройки администратора');
  52. mysql_query("UPDATE `set` SET `value` = '$hom' WHERE `name` = 'home'") or die('Error');
  53. echo '<div class="link">- администратор настроен</div>';
  54. echo '<div class="link"> Установка скрипта WBLIB завершена !</div>';
  55. echo '<div class="error">УДАЛИТЕ ФАЙЛ install.php, install.sql ! <br/>Выставите права доступа 755 на папку inc/ , права доступа 644 на файл inc/db.php<br/>
  56. <a href="login.php">Войти в админку</a></div>';
  57. }
  58. else {
  59. // Если были ошибки, выводим их
  60. echo $error;
  61. echo '<br /><div class="error">При создании таблиц возникла ошибка.<br />Продолжение невозможно.</div>';
  62. }
  63. break;
  64. case 'admin' :
  65. ////////////////////////////////////////////////////////////
  66. // Настройки сайта и Администратора //
  67. ////////////////////////////////////////////////////////////
  68. $dblocation = trim($_POST['host']);
  69. $duser = trim($_POST['user']);
  70. $dpasswd = trim($_POST['pass']);
  71. $dname = trim($_POST['name']);
  72. if (decoct(fileperms('inc/')) % 1000 != 777) $error = 'Установите права на папку <b>inc/</b> 777<br/>';
  73. if (decoct(fileperms('java/textfile.txt')) % 1000 != 666) $error.= 'Установите права на файл <b>java/textfile.txt</b> 666<br/>';
  74. if (decoct(fileperms('java/META-INF/MANIFEST.MF')) % 1000 != 666) $error.= 'Установите права на файл <b>java/META-INF/MANIFEST.MF</b> 666<br/>';
  75. if (decoct(fileperms('files/')) % 1000 != 777) $error.= 'Установите права на папку <b>files/</b> 777<br/>';
  76. if (decoct(fileperms('panel/temp_files/')) % 1000 != 777) $error.= 'Установите права на папку <b>panel/temp_files/</b> 777<br/>';
  77. if (decoct(fileperms('temp/')) % 1000 != 777) $error.= 'Установите права на папку <b>temp/</b> 777';
  78. if ($error) {
  79. echo '<div class="error">';
  80. echo '<div class="stitle">Обнаружены ошибки</div>';
  81. echo $error;
  82. echo '<br/><a href="install.php">Повторить</a>';
  83. echo '</div>';
  84. exit();
  85. }
  86. $text = "<?php\r\n". "$" . "db_host=\"$dblocation\";\r\n" . "$" . "db_user=\"$duser\";\r\n" . "$" . "db_pass=\"$dpasswd\";\r\n" . "$" . "db_name=\"$dname\";\r\n"
  87. . "\r\n?>";
  88. $fp = @ fopen("inc/db.php", "w");
  89. fputs($fp, $text);
  90. fclose($fp);
  91. echo '<div class="link">Создаем Администратора системы</div>';
  92. echo '<div class="link"><form method="post" action="install.php?act=set">';
  93. echo '<b>Ваш ник</b><br/><input name="wnickadmina" maxlength="50" value="Admin" /><br />';
  94. echo '<b>Ваш пароль</b><br/><input name="wpassadmina" maxlength="50" value="password" /><br />';
  95. echo '<b>Адрес где установлен скрипт</b> без слэша в конце<br/><input name="whome" maxlength="100" value="http://' . $_SERVER["SERVER_NAME"] . '" /><br/>';
  96. echo '<input value="Продолжить" type="submit" class="button" /></form></div>';
  97. break;
  98. default :
  99. ////////////////////////////////////////////////////////////
  100. // Настройка соединения с MySQL //
  101. ////////////////////////////////////////////////////////////
  102. echo '<div class="link">Ниже вы должны ввести настройки соединения с базой данных MySQL.<br />Если вы не уверенны в них, свяжитесь с вашим хостинг-провайдером.</div>';
  103. echo '<div class="link"><form action="install.php?act=admin" method="post"><b>Адрес сервера</b><br /><input type="text" name="host" value="localhost"/><br/>';
  104. echo '<b>Название базы</b><br /><input type="text" name="name" value=""/><br/>';
  105. echo '<b>Имя пользователя</b><br /><input type="text" name="user" value=""/><br/>';
  106. echo '<b>MySQL пароль</b><br /><input type="text" name="pass"/><br/>';
  107. echo '<input type="submit" class="button" value="Продолжить"/></form></div>';
  108. break;
  109.  
  110. }
  111. echo '</div>';
  112. function split_sql($sql) {
  113. $sql = trim($sql);
  114. $sql = ereg_replace("\n#[^\n]*\n", "\n", $sql);
  115. $buffer = array();
  116. $ret = array();
  117. $in_string = false;
  118. for ($i = 0; $i < strlen($sql) - 1; $i++) {
  119. if ($sql[$i] == ";" && !$in_string) {
  120. $ret[] = substr($sql, 0, $i);
  121. $sql = substr($sql, $i + 1);
  122. $i = 0;
  123. }
  124. if ($in_string && ($sql[$i] == $in_string) && $buffer[1] != "\\") {
  125. $in_string = false;
  126. }
  127. elseif (!$in_string && ($sql[$i] == '"' || $sql[$i] == "'") && (!isset ($buffer[0]) || $buffer[0] != "\\")) {
  128. $in_string = $sql[$i];
  129. }
  130. if (isset ($buffer[1])) {
  131. $buffer[0] = $buffer[1];
  132. }
  133. $buffer[1] = $sql[$i];
  134. }
  135. if (!empty ($sql)) {
  136. $ret[] = $sql;
  137. }
  138. return ($ret);
  139. }
  140. echo "<div class='foot'>(c) wapweb</div>";
  141. ?>