PageRenderTime 41ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/setup/inc/setup.check.inc.php

http://phpwcms.googlecode.com/
PHP | 304 lines | 211 code | 83 blank | 10 comment | 59 complexity | d8c8e4dcfd5806766ee3d88d603e6921 MD5 | raw file
Possible License(s): AGPL-1.0, LGPL-2.1, ISC, MIT, LGPL-3.0, GPL-2.0, MPL-2.0-no-copyleft-exception, LGPL-2.0, BSD-3-Clause
  1. <?php
  2. if(!empty($step)) {
  3. if ($step == 1 && $do) {
  4. if(!empty($_POST['user_account'])) {
  5. // fine continue with step 2
  6. session_write_close();
  7. if(!empty($_SERVER['HTTP_HOST']) && !empty($_SERVER['REQUEST_URI'])) {
  8. header('Location: http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']).'/setup.php?step=2');
  9. } else {
  10. header("Location: setup.php?step=2");
  11. }
  12. exit();
  13. }
  14. //superuser settings
  15. if(isset($_POST['admin_name'])) {
  16. $phpwcms['admin_name'] = empty($_POST['admin_name']) ? $phpwcms['admin_name'] : slweg($_POST['admin_name']);
  17. $phpwcms['admin_user'] = empty($_POST['admin_user']) ? $phpwcms['admin_user'] : slweg($_POST['admin_user']);
  18. if($_POST["admin_pass"] !== $_POST["admin_passrepeat"] || empty($phpwcms["admin_pass"])) {
  19. $admin_err_pass = 1;
  20. } elseif(!empty($_POST["admin_pass"])) {
  21. $phpwcms["admin_pass"] = md5(slweg($_POST["admin_pass"]));
  22. }
  23. $phpwcms["admin_email"] = clean_slweg($_POST["admin_email"]);
  24. if(empty($admin_err_pass) && empty($_SESSION['admin_save'])) {
  25. write_conf_file($phpwcms);
  26. $_SESSION['admin_save'] = 1;
  27. }
  28. }
  29. // main settings
  30. $phpwcms["db_host"] = slweg($_POST["db_host"]);
  31. $phpwcms["db_user"] = slweg($_POST["db_user"]);
  32. $phpwcms["db_pass"] = slweg($_POST["db_pass"]);
  33. $phpwcms["db_table"] = slweg($_POST["db_table"]);
  34. $phpwcms["db_prepend"] = slweg($_POST["db_prepend"]);
  35. $phpwcms["db_pers"] = empty($_POST["db_pers"]) ? 0 : 1;
  36. if(isset($_POST["charset"])) {
  37. $_POST["charset"] = clean_slweg($_POST["charset"]);
  38. $phpwcms["charset"] = explode('-', $available_languages[ $_POST["charset"] ][1], 2);
  39. $phpwcms["charset"] = $phpwcms["charset"][1];
  40. $phpwcms['db_charset'] = $mysql_charset_map[$phpwcms["charset"]];
  41. $phpwcms['default_lang'] = substr($_POST["charset"], 0, 2);
  42. $phpwcms['db_collation'] = $phpwcms['db_charset'].'_bin';
  43. if(isset($_POST['collation'])) {
  44. $_POST['collation'] = clean_slweg($_POST['collation']);
  45. $phpwcms['db_collation'] = $_POST['collation'];
  46. // if collation is not part of the db charset set to "_bin" default
  47. if(strpos($phpwcms['db_collation'], $phpwcms['db_charset'].'_') !== 0) {
  48. $phpwcms['db_collation'] = $phpwcms['db_charset'].'_bin';
  49. }
  50. // check if there is a difference!! and warn again
  51. if($phpwcms['db_collation'] != $_POST['collation']) {
  52. $_collation_warning = true;
  53. $_SESSION['admin_save'] = 0;
  54. } else {
  55. $_collation_warning = false;
  56. $db_sql = empty($_POST["db_sql"]) ? 0 : 1;
  57. }
  58. } else {
  59. $_collation_warning = false;
  60. $db_sql = empty($_POST["db_sql"]) ? 0 : 1;
  61. }
  62. }
  63. write_conf_file($phpwcms);
  64. $err = 0;
  65. $prepend = $phpwcms["db_prepend"];
  66. if(isset($_POST["dbsavesubmit"])) {
  67. // make db connect
  68. if($phpwcms["db_pers"] == 1) {
  69. $db = @mysql_pconnect($phpwcms["db_host"], $phpwcms["db_user"], $phpwcms["db_pass"]);
  70. } else {
  71. $db = @mysql_connect($phpwcms["db_host"], $phpwcms["db_user"], $phpwcms["db_pass"]);
  72. }
  73. if(@mysql_select_db($phpwcms["db_table"], $db)) {;
  74. if($result = mysql_query("SELECT VERSION()", $db)) {
  75. if($row = mysql_fetch_row($result)) {
  76. $phpwcms["db_version"] = explode('.', $row[0]);
  77. $phpwcms["db_version"][0] = intval($phpwcms["db_version"][0]);
  78. $phpwcms["db_version"][1] = empty($phpwcms["db_version"][1]) ? '00' : intval($phpwcms["db_version"][1]);
  79. $phpwcms["db_version"][2] = empty($phpwcms["db_version"][2]) ? '00' : intval($phpwcms["db_version"][2]);
  80. $phpwcms["db_version"] = (int)sprintf('%d%02d%02d', $phpwcms["db_version"][0], $phpwcms["db_version"][1], $phpwcms["db_version"][2]);
  81. write_conf_file($phpwcms);
  82. }
  83. mysql_free_result($result);
  84. if($result = @mysql_query('SELECT * FROM '. ($phpwcms["db_prepend"] ? $phpwcms["db_prepend"].'_' : '').'phpwcms_user', $db)) {
  85. $_db_prepend_error = true;
  86. mysql_free_result($result);
  87. }
  88. } else {
  89. $err = 1;
  90. $_SESSION['admin_save'] = 0;
  91. }
  92. } else {
  93. $err = 1;
  94. $_SESSION['admin_save'] = 0;
  95. }
  96. // enable additional db settings like collation and charset
  97. if(empty($err)) {
  98. $db_additional = true;
  99. if(isset($_collation_warning) && $_collation_warning === false) {
  100. $db_init = true;
  101. if(isset($_POST['db_sql_hidden'])) {
  102. if(empty($db_sql)) {
  103. $_SESSION['admin_set'] = true;
  104. $db_no_create = true;
  105. } else {
  106. // now read and display sql queries
  107. $_db_prepend = ($phpwcms["db_prepend"] ? $phpwcms["db_prepend"].'_' : '');
  108. $sql_data = 'default_sql/'.(($phpwcms['db_version'] > 40100) ? 'phpwcms_init_410.sql' : 'phpwcms_init_323.sql');
  109. $sql_data = read_textfile($sql_data);
  110. $sql_data = $sql_data . read_textfile('default_sql/phpwcms_inserts.sql');
  111. $sql_data = preg_replace("/(#|--).*.\n/", '', $sql_data );
  112. $sql_data = preg_replace('/ `phpwcms/', ' `'.$_db_prepend.'phpwcms', $sql_data );
  113. $sql_data = str_replace("\r", '', $sql_data);
  114. $sql_data = str_replace("\n\n", "\n", $sql_data);
  115. $sql_data = trim($sql_data);
  116. // if True create initial database
  117. if(isset($_POST['db_create'])) {
  118. $db_create_err = array();
  119. @mysql_query('SET storage_engine=MYISAM', $db);
  120. if($phpwcms['db_version'] > 40100) {
  121. $value = "SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO'";
  122. @mysql_query($value, $db);
  123. $value = "SET NAMES '".$phpwcms['db_charset']."'".(empty($phpwcms['db_collation']) ? '' : " COLLATE '".$phpwcms['db_collation']."'");
  124. @mysql_query($value, $db);
  125. }
  126. $db_create_sql = explode(';', $sql_data);
  127. foreach($db_create_sql as $key => $value) {
  128. $value = trim($value);
  129. if(empty($value)) {
  130. unset($db_create_sql[$key]);
  131. continue;
  132. }
  133. if($phpwcms['db_version'] > 40100 && strpos(strtoupper($value), 'INSERT') !== 0) {
  134. $value .= ' DEFAULT';
  135. $value .= ' CHARACTER SET '.$phpwcms['db_charset'];
  136. $value .= ' COLLATE '.$phpwcms['db_collation'];
  137. } elseif($phpwcms['db_version'] > 40100 && $phpwcms['db_charset']=='utf8') {
  138. $value = utf8_encode($value);
  139. }
  140. // send sql query
  141. if(!mysql_query($value, $db)) {
  142. $db_create_err[] = $value;
  143. unset($db_create_sql[$key]);
  144. }
  145. }
  146. }
  147. }
  148. }
  149. }
  150. }
  151. }
  152. }
  153. if ($step == 2 && $do) {
  154. $phpwcms["site"] = clean_slweg($_POST["site"]);
  155. $phpwcms['SMTP_FROM_EMAIL'] = clean_slweg($_POST["smtp_from_email"]);
  156. if(!$phpwcms['SMTP_FROM_EMAIL']) $phpwcms['SMTP_FROM_EMAIL'] = $phpwcms["admin_email"];
  157. $phpwcms['SMTP_FROM_NAME'] = clean_slweg($_POST["smtp_from_name"]);
  158. if(!$phpwcms['SMTP_FROM_NAME']) $phpwcms['SMTP_FROM_NAME'] = 'webmaster';
  159. $phpwcms['SMTP_HOST'] = clean_slweg($_POST["smtp_host"]);
  160. if(!$phpwcms['SMTP_HOST']) $phpwcms['SMTP_HOST'] = 'localhost';
  161. $phpwcms['SMTP_PORT'] = intval($_POST["smtp_port"]);
  162. if(!$phpwcms['SMTP_PORT']) $phpwcms['SMTP_PORT'] = 25;
  163. $phpwcms['SMTP_MAILER'] = clean_slweg($_POST["smtp_mailer"]);
  164. if(!$phpwcms['SMTP_MAILER']) $phpwcms['SMTP_MAILER'] = 'mail';
  165. $phpwcms['SMTP_AUTH'] = empty($_POST["smtp_auth"]) ? 0 : 1;
  166. $phpwcms['SMTP_USER'] = slweg($_POST["smtp_user"]);
  167. $phpwcms['SMTP_PASS'] = slweg($_POST["smtp_pass"]);
  168. write_conf_file($phpwcms);
  169. if(!empty($_POST["admin_create"])) {
  170. $db = mysql_connect($phpwcms["db_host"],$phpwcms["db_user"],$phpwcms["db_pass"]);
  171. mysql_select_db($phpwcms["db_table"],$db);
  172. mysql_query("SET NAMES '".$phpwcms["charset"]."'", $db);
  173. $phpwcms["db_prepend"] = ($phpwcms["db_prepend"]) ? $phpwcms["db_prepend"]."_" : "";
  174. $sql = "INSERT INTO ".$phpwcms["db_prepend"]."phpwcms_user (usr_login, usr_pass, usr_email, ".
  175. "usr_admin, usr_aktiv, usr_name, usr_fe, usr_wysiwyg ) VALUES ('".
  176. aporeplace($phpwcms["admin_user"])."', '".
  177. aporeplace(md5($phpwcms["admin_pass"]))."', '".
  178. aporeplace($phpwcms["admin_email"])."', 1, 1, '".aporeplace($phpwcms['SMTP_FROM_NAME'])."', 2, 2);";
  179. mysql_query($sql,$db) or $err = 1;
  180. }
  181. if(!$err) {
  182. header("Location: setup.php?step=3");
  183. exit();
  184. }
  185. }
  186. if ($step == 3 && $do) {
  187. $phpwcms['DOC_ROOT'] = clean_slweg($_POST["doc_root"]);
  188. $phpwcms["root"] = clean_slweg($_POST["root"]);
  189. $phpwcms["file_path"] = clean_slweg($_POST["file_path"]);
  190. $phpwcms["templates"] = clean_slweg($_POST["templates"]);
  191. $phpwcms["ftp_path"] = clean_slweg($_POST["ftp_path"]);
  192. $phpwcms["file_path"] = ($phpwcms["file_path"]) ? $phpwcms["file_path"] : "phpwcms_filestorage";
  193. $phpwcms["templates"] = ($phpwcms["templates"]) ? $phpwcms["templates"] : "phpwcms_template";
  194. $phpwcms["content_path"] = ($phpwcms["content_path"]) ? $phpwcms["content_path"] : "content";
  195. $phpwcms["cimage_path"] = ($phpwcms["cimage_path"]) ? $phpwcms["cimage_path"] : "images";
  196. $phpwcms["ftp_path"] = ($phpwcms["ftp_path"]) ? $phpwcms["ftp_path"] : "phpwcms_ftp";
  197. write_conf_file($phpwcms);
  198. header("Location: setup.php?step=4");
  199. exit();
  200. }
  201. if ($step == 4 && $do) {
  202. $phpwcms["file_maxsize"] = intval($_POST["file_maxsize"]);
  203. $phpwcms["content_width"] = intval($_POST["content_width"]);
  204. $phpwcms["img_list_width"] = intval($_POST["img_list_width"]);
  205. $phpwcms["img_list_height"] = intval($_POST["img_list_height"]);
  206. $phpwcms["img_prev_width"] = intval($_POST["img_prev_width"]);
  207. $phpwcms["img_prev_height"] = intval($_POST["img_prev_height"]);
  208. $phpwcms["max_time"] = intval($_POST["max_time"]);
  209. $phpwcms["file_maxsize"] = ($phpwcms["file_maxsize"]) ? $phpwcms["file_maxsize"] : 2097152;
  210. $phpwcms["content_width"] = ($phpwcms["content_width"]) ? $phpwcms["content_width"] : 538;
  211. $phpwcms["img_list_width"] = ($phpwcms["img_list_width"]) ? $phpwcms["img_list_width"] : 100;
  212. $phpwcms["img_list_height"] = ($phpwcms["img_list_height"]) ? $phpwcms["img_list_height"] : 75;
  213. $phpwcms["img_prev_width"] = ($phpwcms["img_prev_width"]) ? $phpwcms["img_prev_width"] : 538;
  214. $phpwcms["img_prev_height"] = ($phpwcms["img_prev_height"]) ? $phpwcms["img_prev_height"] : 400;
  215. $phpwcms["max_time"] = ($phpwcms["max_time"]) ? $phpwcms["max_time"] : 1800;
  216. write_conf_file($phpwcms);
  217. header("Location: setup.php?step=5");
  218. exit();
  219. }
  220. }
  221. ?>