Advertisement
Guest User

Untitled

a guest
May 8th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.77 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.  
  5. AMXBans v6.0
  6.  
  7. Copyright 2009, 2010 by AMXBans.de
  8.  
  9. This file is part of AMXBans.
  10.  
  11. AMXBans is free software, but it's licensed under the
  12. Creative Commons - Attribution-NonCommercial-ShareAlike 2.0
  13.  
  14. AMXBans is distributed in the hope that it will be useful,
  15. but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17.  
  18. You should have received a copy of the cc-nC-SA along with AMXBans.
  19. If not, see <http://creativecommons.org/licenses/by-nc-sa/2.0/>.
  20.  
  21. */
  22.  
  23. session_start();
  24.  
  25. //check for existing config file
  26. // if(file_exists("include/db.config.inc.php")) {
  27. // header("Location: index.php");
  28. // }
  29.  
  30. require_once("install/functions.inc");
  31. require_once("include/functions.inc.php");
  32.  
  33. $config->v_web = "6.0.3";
  34.  
  35.  
  36. //installation are 6 sites
  37. $sitenrall=6;
  38. $sitenr=(int)$_POST["site"];
  39.  
  40. if($sitenr==7 && isset($_POST["check7"])) {
  41. $sitenrall=7;
  42. }
  43. //if all setup data is ok, unlock and open site 7
  44. if(isset($_POST["check6"])) {
  45. $sitenrall=7;
  46. $sitenr++;
  47. }
  48. if(isset($_POST["back"])) $sitenr--;
  49. if(isset($_POST["next"])) $sitenr++;
  50.  
  51.  
  52. if($sitenr < 1 || $sitenr > $sitenrall) $sitenr=1;
  53.  
  54.  
  55. /////////////// basic functions /////////////////
  56.  
  57. //$config->path_root=str_replace("/".basename($_SERVER["SCRIPT_FILENAME"]),"",$_SERVER["SCRIPT_FILENAME"]);
  58. $config->path_root=str_replace("/".basename(str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"])),"",str_replace("\\", "/", $_SERVER["SCRIPT_FILENAME"]));
  59. $config->document_root=str_replace("/".basename($_SERVER["PHP_SELF"]),"",$_SERVER["PHP_SELF"]);
  60. $config->templatedir = $config->path_root."/install";
  61. $config->langfilesdir = $config->path_root."/install/language/";
  62. $config->default_lang = "german";
  63. if(empty($_SESSION["lang"])) $_SESSION["lang"]="english";
  64.  
  65. if(!is__writable($config->path_root."/include/smarty/templates_c/")) {
  66. echo '<br />
  67. <table border="0" align="center">
  68. <tr>
  69. <td align="center" style="color: #c04040;font-width=bold;font-size=18px;"><img src="images/warning.gif" /> <u>Directory include/smarty/templates_c is not writable !!</u></td>
  70. </tr>
  71. </table>';
  72. exit;
  73. }
  74.  
  75. /* Smarty settings */
  76. define("SMARTY_DIR", $config->path_root."/include/smarty/");
  77.  
  78. require_once(SMARTY_DIR."Smarty.class.php");
  79.  
  80. class dynamicPage extends Smarty {
  81. function dynamicPage() {
  82.  
  83. global $config;
  84.  
  85. $this->Smarty();
  86.  
  87. $this->template_dir = $config->templatedir;
  88. $this->compile_dir = SMARTY_DIR."templates_c/";
  89. $this->config_dir = SMARTY_DIR."configs/";
  90. $this->cache_dir = SMARTY_DIR."cache/";
  91. $this->caching = false;
  92.  
  93. //for changing templates itβ€œs better "true", but slow down site load
  94. $this->force_compile = true;
  95. $this->caching = false;
  96.  
  97. $this->assign("app_name","dynamicPage");
  98. }
  99. }
  100. $smarty = new dynamicPage;
  101.  
  102. $smarty->assign("next",false);
  103.  
  104. if($sitenr==1) {
  105. $smarty->assign("next",true);
  106. }
  107.  
  108. /////////////// site 2 server settings /////////////////
  109. if($sitenr==2) {
  110. $php_settings=array(
  111. "display_errors"=>(ini_get('display_errors')=="")?"off":ini_get('display_errors'),
  112. "register_globals"=>(ini_get('register_globals')==1 || ini_get('register_globals')=="on")?"_ON":"_OFF",
  113. "magic_quotes_gpc"=>(get_magic_quotes_gpc()==true)?"_ON":"_OFF", #(ini_get('magic_quotes_gpc')=="0")?"off":"on",
  114. "safe_mode"=>(ini_get('safe_mode')==1 || ini_get('safe_mode')=="on")?"_ON":"_OFF",
  115. "post_max_size"=>ini_get('post_max_size')." (".return_bytes(ini_get('post_max_size'))." bytes)",
  116. "upload_max_filesize"=>ini_get('upload_max_filesize')." (".return_bytes(ini_get('upload_max_filesize'))." bytes)",
  117. "max_execution_time"=>ini_get('max_execution_time'),
  118. "version_php"=>phpversion(),
  119. "version_amxbans_web"=>$config->v_web,
  120. "server_software"=>$_SERVER["SERVER_SOFTWARE"],
  121. "mysql_version"=>mysql_get_client_info(),
  122. "bcmath"=>(extension_loaded('bcmath')=="1")?"_YES":"_NO",
  123. "gmp"=>(extension_loaded('gmp')=="1")?"_YES":"_NO"
  124. );
  125. $smarty->assign("next",true);
  126. $smarty->assign("checkvalue","_REFRESH");
  127. $smarty->assign("php_settings",$php_settings);
  128. }
  129.  
  130. /////////////// site 3 dirs /////////////////
  131. if($sitenr==3) {
  132. if(isset($_POST["path_root"]) && $_POST["path_root"] != $config->path_root) $config->path_root = stripcslashes($_POST["path_root"]);
  133. if(isset($_POST["document_root"]) && $_POST["document_root"] != $config->document_root) $config->document_root = stripcslashes($_POST["document_root"]);
  134. $include_dir=is__writable($config->path_root."/include/");
  135. $backup_dir=is__writable($config->path_root."/include/backup/");
  136. $files_dir=is__writable($config->path_root."/include/files/");
  137. $temp_dir=is__writable($config->path_root."/temp/");
  138. $templates_c_dir=is__writable($config->path_root."/include/smarty/templates_c/");
  139. $setupphp=is__writable($config->path_root."/");
  140.  
  141. $dirs=array(
  142. "document_root" => $config->document_root,
  143. "path_root" => $config->path_root,
  144. "include" => $include_dir,
  145. "files" => $files_dir,
  146. "backup" => $backup_dir,
  147. "temp" => $temp_dir,
  148. "templates_c" => $templates_c_dir,
  149. "setupphp" => $setupphp
  150. );
  151. if($include_dir && $files_dir && $temp_dir && $templates_c_dir && $backup_dir) $smarty->assign("next",true);
  152. $smarty->assign("checkvalue","_RECHECK");
  153. $smarty->assign("dirs",$dirs);
  154. }
  155.  
  156. /////////////// site 4 db /////////////////
  157. if($sitenr==4 && isset($_POST["check4"])) {
  158. $_SESSION["dbcheck"]=false;
  159. $dbhost=trim($_POST["dbhost"]);
  160. $dbuser=trim($_POST["dbuser"]);
  161. $dbpass=trim($_POST["dbpass"]);
  162. $dbdb=trim($_POST["dbdb"]);
  163. $dbprefix=trim($_POST["dbprefix"]);
  164.  
  165. $_SESSION["dbhost"]=$dbhost;
  166. $_SESSION["dbuser"]=$dbuser;
  167. $_SESSION["dbpass"]=$dbpass;
  168. $_SESSION["dbdb"]=$dbdb;
  169. $_SESSION["dbprefix"]=$dbprefix;
  170.  
  171. $smarty->assign("db",array($dbhost,$dbuser,$dbpass,$dbdb,$dbprefix));
  172.  
  173. if($dbhost=="" || $dbuser=="" || $dbdb=="" || $dbprefix=="") {
  174. $msg="_NOREQUIREDFIELDS";
  175. }
  176.  
  177. $mysql=@mysql_connect($dbhost,$dbuser,$dbpass) or $msg="_CANTCONNECT";
  178. if(!$msg) {
  179. $enc = @mysql_query("SET CHARACTER SET 'utf-8'");
  180. $enc = @mysql_query("SET NAMES 'utf8'");
  181. $ressource=@mysql_select_db($dbdb) or $msg="_CANTSELECTDB";
  182. }
  183.  
  184. //get user privileges
  185. if(!$msg) {
  186. $previleges=sql_get_privilege();
  187. $prev[]=array("name"=>"SELECT","value"=>in_array("SELECT",$previleges));
  188. $prev[]=array("name"=>"INSERT","value"=>in_array("INSERT",$previleges));
  189. $prev[]=array("name"=>"UPDATE","value"=>in_array("UPDATE",$previleges));
  190. $prev[]=array("name"=>"DELETE","value"=>in_array("DELETE",$previleges));
  191. $prev[]=array("name"=>"CREATE","value"=>in_array("CREATE",$previleges));
  192. //search for all needed previleges
  193. foreach($prev as $k => $v) {
  194. if(in_array(false,$v)) {$msg="_NOTALLPREVILEGES";break;}
  195. }
  196. }
  197. //check for existing tables
  198. if(!$msg) {
  199. $ressource=@mysql_select_db($dbdb);
  200. //search for existing dbprefix
  201. if( mysql_num_rows( @mysql_query("SHOW TABLES FROM `".$dbdb."` LIKE '".$dbprefix."\_%'"))) {
  202. $prefix_exists=true;
  203. //search for field "imported" in bans table, added since 6.0
  204. if( mysql_num_rows( @mysql_query("SHOW COLUMNS FROM `".$dbprefix."_bans` WHERE Field LIKE 'imported'"))) {
  205. $prefix_isnew=true;
  206. }
  207. }
  208. }
  209.  
  210. $smarty->assign("prevs",$prev);
  211.  
  212. if(!$msg) {
  213. if($prefix_exists) {
  214. if($prefix_isnew) {
  215. $msg="_PREFIXEXISTSV6";
  216. $_SESSION["dbcheck"]=true;
  217. $smarty->assign("next",true);
  218. } else {
  219. $msg="_PREFIXEXISTSV5";
  220. }
  221. } else {
  222. $msg="_DBOK";
  223. $_SESSION["dbcheck"]=true;
  224. $smarty->assign("next",true);
  225. }
  226. }
  227. }
  228. if($sitenr==4) $smarty->assign("checkvalue","_DBCHECK");
  229.  
  230. /////////////// site 5 admin /////////////////
  231. if($sitenr==5 && isset($_POST["check5"])) {
  232. $_SESSION["admincheck"]=false;
  233. $adminuser=trim($_POST["adminuser"]);
  234. $adminpass=trim($_POST["adminpass"]);
  235. $adminpass2=trim($_POST["adminpass2"]);
  236. $adminemail=trim($_POST["adminemail"]);
  237.  
  238. $_SESSION["adminuser"]=$adminuser;
  239. $_SESSION["adminemail"]=$adminemail;
  240. $_SESSION["adminpass"]="";
  241. $_SESSION["adminpass2"]="";
  242.  
  243. $smarty->assign("admin",array($adminuser,$adminemail));
  244.  
  245. if(strlen($adminuser) < 4) $validate[]="_USERTOSHORT";
  246. if(strlen($adminpass) < 4) $validate[]="_PWTOSHORT";
  247. if($adminpass != $adminpass2) $validate[]="_PWNOCONFIRM";
  248. #if(!ereg(".+@.+\..{2,}",$adminemail)) $validate[]="_NOVALIDEMAIL";
  249. if(!preg_match("/^[a-zA-Z0-9-_.]{2,}@[a-zA-Z0-9-_.]{2,}.[a-zA-Z]{2,6}$/",$adminemail)) $validate[]="_NOVALIDEMAIL";
  250.  
  251. if(!$adminuser || !$adminpass || !$adminpass2 || !$adminemail) {
  252. $validate[]="_NOREQUIREDFIELDS";
  253. }
  254. if(!$validate) {
  255. $_SESSION["adminpass"]=$adminpass;
  256. $_SESSION["adminpass2"]=$adminpass2;
  257. $_SESSION["admincheck"]=true;
  258. $msg="_ADMINOK";
  259. $smarty->assign("adminpass",$adminpass);
  260. $smarty->assign("next",true);
  261.  
  262. }
  263. $smarty->assign("validate",$validate);
  264. }
  265. if($sitenr==5) $smarty->assign("checkvalue","_ADMINCHECK");
  266. #if($sitenr==5 && $_SESSION["admincheck"]==true) $smarty->assign("next",true);
  267.  
  268. /////////////// site 6 show data /////////////////
  269. if($sitenr==6) $smarty->assign("checkvalue","_STEP7");
  270.  
  271. /////////////// site 7 end /////////////////
  272. if($sitenr==7 && $_SESSION["dbcheck"]==true && $_SESSION["admincheck"]==true && !isset($_POST["check7"])) {
  273.  
  274. if(sql_connect()) {
  275. //get tables structure
  276. include("install/tables.inc");
  277. //create db structure
  278. foreach($table_create as $k => $v) {
  279. $table=array("table"=>$k,"success"=>sql_create_table($k,$v));
  280. $tables[]=$table;
  281. }
  282. //get default data
  283. include("install/datas.inc");
  284. //create default data
  285. foreach($data_create as $k => $v) {
  286. $data=array("data"=>$k,"success"=>sql_insert_data($k,$v));
  287. $datas[]=$data;
  288. }
  289. //create default websettings
  290. $websettings_create=array("data"=>"_CREATEWEBSETTINGS","success"=>sql_insert_setting($websettings_query));
  291. //create default usermenu
  292. $usermenu_create=array("data"=>"_CREATEUSERMENU","success"=>sql_insert_setting($usermenu_query));
  293. //create webadmin userlevel
  294. $webadmin_create[]=array("data"=>"_CREATEUSERLEVEL","success"=>sql_insert_setting($userlevel_query));
  295. //create webadmin
  296. $webadmin_create[]=array("data"=>"_CREATEWEBADMIN","success"=>sql_insert_setting($webadmin_query));
  297. //install default modules
  298. foreach($modules_install as $k => $v) {
  299. $modul=array("name"=>$k,"success"=>sql_insert_setting($v));
  300. $modules[]=$modul;
  301. }
  302.  
  303. //write db.config.inc.php
  304. $content="<?php
  305.  
  306. \$config->document_root = \"".$_SESSION["document_root"]."\";
  307. \$config->path_root = \"".$_SESSION["path_root"]."\";
  308.  
  309. \$config->db_host = \"".$_SESSION["dbhost"]."\";
  310. \$config->db_user = \"".$_SESSION["dbuser"]."\";
  311. \$config->db_pass = \"".$_SESSION["dbpass"]."\";
  312. \$config->db_db = \"".$_SESSION["dbdb"]."\";
  313. \$config->db_prefix = \"".$_SESSION["dbprefix"]."\";
  314.  
  315. ?>";
  316. $msg=write_cfg_file($config->path_root."/include/db.config.inc.php",$content);
  317. $smarty->assign("content",$content);
  318. //create first log ;-)
  319. sql_insert_setting($log_query);
  320. }
  321. $smarty->assign("tables",$tables);
  322. $smarty->assign("datas",$datas);
  323. $smarty->assign("modules",$modules);
  324. $smarty->assign("usermenu_create",$usermenu_create);
  325. $smarty->assign("websettings_create",$websettings_create);
  326. $smarty->assign("webadmin_create",$webadmin_create);
  327. $smarty->assign("checkvalue","_SETUPEND");
  328. }
  329. if($sitenr==7 && isset($_POST["check7"])) {
  330. //clear smarty cache
  331. $smarty->clear_compiled_tpl();
  332. //delete setup.php
  333. @unlink("setup.php");
  334. header("Location: index.php");
  335. exit;
  336. }
  337.  
  338.  
  339. $_SESSION["path_root"] = $config->path_root;
  340. $_SESSION["document_root"] = $config->document_root;
  341.  
  342. // Generate template
  343. $smarty->assign("msg",$msg);
  344. $smarty->assign("sitenr",$sitenr);
  345. $smarty->assign("sitenrall",$sitenrall);
  346. $smarty->assign("current_lang",$config->default_lang);
  347. $smarty->assign("v_web",$config->v_web);
  348.  
  349. $smarty->display('setup.tpl');
  350. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement