-<?php\r
-/************************************************************************\r
- * MXChange v0.1.0 Start: 08/29/2003 *\r
- * =============== Last change: 11/11/2004 *\r
- * *\r
- * -------------------------------------------------------------------- *\r
- * File : install-inc.php *\r
- * -------------------------------------------------------------------- *\r
- * Short description : Functions for installation procedure *\r
- * -------------------------------------------------------------------- *\r
- * Kurzbeschreibung : Funktionen f�r die Installationsroutine *\r
- * -------------------------------------------------------------------- *\r
- * *\r
- * -------------------------------------------------------------------- *\r
- * Copyright (c) 2003 - 2008 by Roland Haeder *\r
- * For more information visit: http://www.mxchange.org *\r
- * *\r
- * This program is free software; you can redistribute it and/or modify *\r
- * it under the terms of the GNU General Public License as published by *\r
- * the Free Software Foundation; either version 2 of the License, or *\r
- * (at your option) any later version. *\r
- * *\r
- * This program is distributed in the hope that it will be useful, *\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *\r
- * GNU General Public License for more details. *\r
- * *\r
- * You should have received a copy of the GNU General Public License *\r
- * along with this program; if not, write to the Free Software *\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *\r
- * MA 02110-1301 USA *\r
- ************************************************************************/\r
-\r
-/************************************************************************\r
- * YOU MAY ALSO WANT TO REMOVE THIS FILE AFTER INSTALLTION! *\r
- ************************************************************************/\r
-\r
-// Some security stuff...\r
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))\r
-{\r
- $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";\r
- require($INC);\r
-}\r
-\r
-//\r
-function install_WriteData ($FILE, $COMMENT, $PREFIX, $SUFFIX, $DATA, $SNEAK=0)\r
-{\r
- $DONE = false; $SNEAK++;\r
- if (file_exists($FILE))\r
- {\r
- $SEARCH = "CFG: ".$COMMENT;\r
- $TMP = $FILE.".tmp";\r
- $fp = fopen($FILE, 'r') or OUTPUT_HTML ("<STRONG>READ:</STRONG> ".$FILE."<BR>");\r
- if ($fp)\r
- {\r
- $fp_tmp = fopen($TMP, 'w') or OUTPUT_HTML ("<STRONG>WRITE:</STRONG> ".$TMP."<BR>");\r
- if ($fp_tmp)\r
- {\r
- while (! feof($fp))\r
- {\r
- $line = fgets ($fp, 10240);\r
- if (strpos($line, $SEARCH) > -1) $next = 0;\r
- if ($next > -1)\r
- {\r
- if ($next == $SNEAK)\r
- {\r
- $next = -1;\r
- $line = $PREFIX.$DATA.$SUFFIX."\n";\r
- }\r
- else\r
- {\r
- $next++;\r
- }\r
- }\r
- fputs($fp_tmp, $line);\r
- }\r
- fclose($fp_tmp);\r
- // Finished writing tmp file\r
- $DONE = true;\r
- }\r
- fclose($fp);\r
- if ($DONE)\r
- {\r
- // Copy back tmp file and delete tmp :-)\r
- @copy($TMP, $FILE);\r
- @unlink($TMP);\r
- }\r
- else\r
- {\r
- OUTPUT_HTML ("<STRONG>TMP:</STRONG> UNDONE!");\r
- }\r
- }\r
- }\r
- else\r
- {\r
- OUTPUT_HTML ("<STRONG>404:</STRONG> ".$FILE."<BR>");\r
- }\r
-}\r
-\r
-//\r
-$mysql = "";\r
-if (isset($_POST['mysql']) && is_array($_POST['mysql'])) $mysql = $_POST['mysql'];\r
-\r
-if (URL != "http://your-server.com")\r
-{\r
- // Already installed???\r
- $burl = URL;\r
-}\r
- elseif ($burl == "")\r
-{\r
- // Auto-detect URL\r
- $burl = "http://".$SERVER_NAME.$_SERVER['PHP_SELF'];\r
- $burl = substr($burl, 0, strpos($burl, "install.php"));\r
-}\r
-//\r
-if ((!mxchange_installed) || (!admin_registered))\r
-{\r
- // Set URL for FORM actions\r
- define('__BURL_ACTION', $burl);\r
-\r
- // Output page for entered value\r
- switch ($_GET['page'])\r
- {\r
- case "welcome": // Welcome to the installation!\r
- LOAD_TEMPLATE("install_welcome");\r
- break;\r
-\r
- case "1": // Server path, base URL\r
- define('__PATH_LEN' , strlen(PATH));\r
- define('__BURL_LEN' , strlen($burl));\r
- define('__TITLE_LEN' , strlen(MAIN_TITLE));\r
- define('__SLOGAN_LEN' , strlen(SLOGAN));\r
- define('__WEBMASTER_LEN', (strlen(WEBMASTER) * 3));\r
-\r
- // Load template\r
- LOAD_TEMPLATE("install_page1");\r
- break;\r
-\r
- case "2": // MySQL data (alone!)\r
- if (empty($mysql['dbase'])) $mysql['dbase'] = "your_database";\r
- if (empty($mysql['login'])) $mysql['login'] = "your_login";\r
- if (empty($mysql['host'])) $mysql['host'] = "localhost";\r
- if (empty($mysql['prefix'])) $mysql['prefix'] = "mxchange_";\r
- if ((sizeof($FATAL) > 0) || (!empty($FATAL[0])))\r
- {\r
- OUTPUT_HTML ("<SPAN class=\"install_fatal\">");\r
- foreach ($FATAL as $key=>$err)\r
- {\r
- OUTPUT_HTML (" <STRONG>·</STRONG> ".FATAL_NO.($key + 1).": ".$err."<BR>\n");\r
- }\r
- OUTPUT_HTML ("</SPAN><BR>");\r
- }\r
- define('__MYSQL_HOST' , $mysql['host']);\r
- define('__MYSQL_DBASE' , $mysql['dbase']);\r
- define('__MYSQL_PREFIX', $mysql['prefix']);\r
- define('__MYSQL_LOGIN' , $mysql['login']);\r
- define('__SPATH_VALUE' , $_POST['spath']);\r
- define('__BURL_VALUE' , $_POST['burl']);\r
- define('__TITLE_VALUE' , $_POST['title']);\r
- define('__SLOGAN_VALUE', $_POST['slogan']);\r
- define('__EMAIL_VALUE' , $_POST['email']);\r
-\r
- // Load template\r
- LOAD_TEMPLATE("install_page2");\r
- break;\r
-\r
- case "5": // Misc settings\r
- define('__SPATH_VALUE' , $_POST['spath']);\r
- define('__BURL_VALUE' , $_POST['burl']);\r
- define('__TITLE_VALUE' , $_POST['title']);\r
- define('__SLOGAN_VALUE', $_POST['slogan']);\r
- define('__EMAIL_VALUE' , $_POST['email']);\r
- OUTPUT_HTML ("<FORM action=\"".__BURL_ACTION."/install.php?page=finalize\" method=\"POST\" target=\"_self\">\r
-<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"install_content\">\r
-<TR>\r
- <TD colspan=\"2\" align=\"center\">\r
- <STRONG class=\"install\">".HEADER_TEXT_PAGE5."</STRONG>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD colspan=\"2\"><SPAN class=\"install_intro\">\r
- ".TEXT_PAGE_5."\r
- </SPAN></TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD class=\"install\" align=\"right\">".LANG_OUTPUT_MODE.": </TD>\r
- <TD>\r
- <SELECT name=\"omode\" size=\"1\" class=\"install_select\">\r
- <OPTION value=\"render\"");\r
- if (OUTPUT_MODE == "render") OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".MODE_RENDER."</OPTION>\r
- <OPTION value=\"direct\"");\r
- if (OUTPUT_MODE == "direct") OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".MODE_DIRECT."</OPTION>\r
- </SELECT>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD class=\"install\" align=\"right\">".WARN_NO_PASSWORD.": </TD>\r
- <TD>\r
- <SELECT name=\"warn_no_pass\" size=\"1\" class=\"install_select\">\r
- <OPTION value=\"true\"");\r
- if (warn_no_pass) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".YES."</OPTION>\r
- <OPTION value=\"false\"");\r
- if (!warn_no_pass) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".NO."</OPTION>\r
- </SELECT>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD class=\"install\" align=\"right\">".LANG_WRITE_FOOTER.": </TD>\r
- <TD>\r
- <SELECT name=\"wfooter\" size=\"1\" class=\"install_select\">\r
- <OPTION value=\"true\"");\r
- if (WRITE_FOOTER) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".YES."</OPTION>\r
- <OPTION value=\"false\"");\r
- if (!WRITE_FOOTER) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".NO."</OPTION>\r
- </SELECT>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD class=\"install\" align=\"right\">".LANG_FRAMESET_ACTIVE.": </TD>\r
- <TD>\r
- <SELECT name=\"frameset\" size=\"1\" class=\"install_select\">\r
- <OPTION value=\"true\"");\r
- if (frameset_active) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".YES."</OPTION>\r
- <OPTION value=\"false\"");\r
- if (!frameset_active) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".NO."</OPTION>\r
- </SELECT>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD class=\"install\" align=\"right\">".INSTALL_ENABLE_BACKLINK.": </TD>\r
- <TD>\r
- <SELECT name=\"blink\" size=\"1\" class=\"install_select\">\r
- <OPTION value=\"true\"");\r
- if (ENABLE_BACKLINK) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".YES."</OPTION>\r
- <OPTION value=\"false\"");\r
- if (!ENABLE_BACKLINK) OUTPUT_HTML (" selected=\"selected\"");\r
- OUTPUT_HTML (">".NO."</OPTION>\r
- </SELECT>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD colspan=\"2\" align=\"center\">");\r
- foreach ($mysql as $key=>$value)\r
- {\r
- OUTPUT_HTML (" <INPUT type=\"hidden\" name=\"mysql[".$key."]\" value=\"".$value."\">");\r
- }\r
- OUTPUT_HTML (" <INPUT type=\"hidden\" name=\"spath\" value=\"".__SPATH_VALUE."\">\r
- <INPUT type=\"hidden\" name=\"burl\" value=\"".__BURL_VALUE."\">\r
- <INPUT type=\"hidden\" name=\"title\" value=\"".__TITLE_VALUE."\">\r
- <INPUT type=\"hidden\" name=\"slogan\" value=\"".__SLOGAN_VALUE."\">\r
- <INPUT type=\"hidden\" name=\"email\" value=\"".__EMAIL_VALUE."\">\r
- <INPUT type=\"submit\" class=\"admin_submit submit\" name=\"finalize\" value=\"".NEXT_PAGE."\" class=\"install_submit\">\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-</TABLE>\r
-</FORM>");\r
- break;\r
-\r
- case "finalize": // Write captured data to files\r
- if (!empty($_POST['finalize']))\r
- {\r
- // You have submitted data then we have to reset the fatal messages\r
- $FATAL = array();\r
-\r
- // Connect to MySQL server\r
- $link = SQL_CONNECT($mysql['host'], $mysql['login'], $mysql['pass1'], __FILE__, __LINE__);\r
- if ($link)\r
- {\r
- // Seems to work, also right database?\r
- $db = SQL_SELECT_DB($mysql['dbase'], $link, __FILE__, __LINE__);\r
- if ($db)\r
- {\r
- // Automatically run install.sql\r
- if (file_exists($_POST['spath']."install/tables.sql"))\r
- {\r
- $ERRORS = $_POST['spath']."inc/sql.err";\r
- $cmd = array(\r
- // "Dump" tha' s*** up... ;-) > /dev/null\r
- "mysql ".$mysql['dbase']." --force --host=".$mysql['host']." --user=".$mysql['login']." --password=".$mysql['pass1']." < ".$_POST['spath']."install/tables.sql",\r
- "mysql ".$mysql['dbase']." --force --host=".$mysql['host']." --user=".$mysql['login']." --password=".$mysql['pass1']." < ".$_POST['spath']."install/menu-".GET_LANGUAGE().".sql"\r
- );\r
-\r
- foreach ($cmd as $c)\r
- {\r
- @system($c);\r
- }\r
-\r
- if ((file_exists($ERRORS)) && (filesize($ERRORS) > 0))\r
- {\r
- ADD_FATAL(MYSQLDUMP_ERROR);\r
- }\r
- elseif (!mxchange_installed)\r
- {\r
- // Remove error file if empty\r
- if (file_exists($ERRORS)) @unlink ($ERRORS);\r
-\r
- // Ok, all done. So we can write the config data to the php files\r
- if ($_POST['spath'] != PATH) install_WriteData($_POST['spath']."inc/config.php", "SERVER-PATH", "define ('PATH', \"", "\");", $_POST['spath'], 0);\r
- if ($_POST['burl'] != URL) install_WriteData($_POST['spath']."inc/config.php", "HOST-URL", "define ('URL', \"", "\");", $_POST['burl'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "MAIN_TITLE", "define ('MAIN_TITLE', \"", "\");", $_POST['title'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "SLOGAN", "define ('SLOGAN', \"", "\");", $_POST['slogan'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "WEBMASTER", "define ('WEBMASTER', \"", "\");", $_POST['email'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "NULLPASS-WARNING", "define ('warn_no_pass', ", ");", $_POST['warn_no_pass'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "WRITE-FOOTER", "define ('WRITE_FOOTER', ", ");", $_POST['wfooter'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "BACKLINK", "define ('ENABLED_BACKLINK', ", ");", $_POST['blink'], 0);\r
- // install_WriteData($_POST['spath']."inc/config.php", "FRAMESET", "define ('frameset_active', ", ");", $_POST['frameset'], 0);\r
- // install_WriteData($_POST['spath']."inc/config.php", "OUTPUT-MODE", "define ('OUTPUT_MODE', \"", "\");", $_POST['omode'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "MYSQL-HOST", " 'host' => \"", "\",", $mysql['host'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "MYSQL-DBASE", " 'dbase' => \"", "\",", $mysql['dbase'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "MYSQL-LOGIN", " 'login' => \"", "\",", $mysql['login'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "MYSQL-PASSWORD", " 'password' => \"", "\",", $mysql['pass1'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "MYSQL-PREFIX", "define ('_MYSQL_PREFIX', \"", "\");", $mysql['prefix'], 0);\r
- install_WriteData($_POST['spath']."inc/config.php", "INSTALLED", "define ('mxchange_installed', ", ");", "true", 0);\r
-\r
- // Close the link\r
- SQL_CLOSE($link, __FILE__, __LINE__);\r
- }\r
- else\r
- {\r
- ADD_FATAL(INSTALL_MAYBE_DONE);\r
- }\r
- }\r
- else\r
- {\r
- // Installation area not found!\r
- ADD_FATAL(INSTALL_MISSING_DUMPS);\r
- }\r
- }\r
- }\r
- if ((sizeof($FATAL) > 0) || ($FATAL[0] != ""))\r
- {\r
- $OUT = "";\r
- foreach ($FATAL as $value)\r
- {\r
- $OUT .= " <LI>".$value."</LI>\n";\r
- }\r
- define('__FATAL_ERROR_LI', $OUT);\r
- $OUT = "";\r
- foreach ($mysql as $key=>$value)\r
- {\r
- $OUT .= " <INPUT type=\"hidden\" name=\"mysql[".$key."]\" value=\"".$value."\">\n";\r
- }\r
- define('__MYSQL_DATA' , $OUT);\r
- define('__SPATH_VALUE', $_POST['spath']);\r
- define('__BURL_VALUE' , $_POST['burl']);\r
- define('__TITLE_VALUE', $_POST['title']);\r
-\r
- OUTPUT_HTML ("<FORM action=\"".__BURL_ACTION."/install.php?page=2\" method=\"POST\">\r
-<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"install_content\">\r
-<TR>\r
- <TD align=\"center\">\r
- <STRONG class=\"install\">".HEADER_MYSQL_ERRORS."</STRONG>\r
- </TD>\r
-</TR>\r
-<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>\r
-<TR>\r
- <TD><SPAN class=\"install_intro\">\r
- ".TEXT_MYSQL_ERRORS."\r
- </SPAN></TD>\r
-</TR>\r
-<TR>\r
- <TD align=\"center\"><STRONG>\r
- <OL>\r
-".__FATAL_ERROR_LI."\r
- </OL>\r
-".__MYSQL_DATA."\r
- <INPUT type=\"hidden\" name=\"spath\" value=\"".__SPATH_VALUE."\">\r
- <INPUT type=\"hidden\" name=\"burl\" value=\"".__BURL_VALUE."\">\r
- <INPUT type=\"hidden\" name=\"title\" value=\"".__TITLE_VALUE."\">\r
- <INPUT type=\"submit\" class=\"admin_submit\" name=\"ok\" value=\"".RETURN_MYSQL_PAGE."\">\r
- </STRONG></TD>\r
-</TR>\r
-</TABLE>\r
-</FORM>");\r
- }\r
- else\r
- {\r
- // Installation is done!\r
- $URL = $burl."/install.php?page=finalize";\r
- LOAD_URL($URL);\r
- }\r
- }\r
- elseif (mxchange_installed)\r
- {\r
- // Redirection after writing data... :-)\r
- OUTPUT_HTML ("<SPAN class=\"install_finished\">".INSTALL_FINISHED."</SPAN><BR>\r
-<BR>\r
-<SPAN class=\"install_security\">".INSTALL_FIN_SECU."</SPAN><BR>\r
-<BR>\r
-<FORM action=\"modules.php\" method=\"GET\">\r
- <INPUT type=\"hidden\" name=\"module\" value=\"admin\">\r
- <INPUT type=\"submit\" class=\"admin_submit submit\" value=\"".CONTINUE_ADMIN."\" class=\"install_submit\">\r
-</FORM>");\r
- }\r
- else\r
- {\r
- // Something goes wrong during installation! :-(\r
- ADD_FATAL(INSTALL_FINALIZER_FAILED);\r
- include ("inc/fatal_errors.php");\r
- }\r
- break;\r
-\r
- default:\r
- OUTPUT_HTML (" <STRONG class=\"install_error\">".WRONG_PAGE."</STRONG>");\r
- break;\r
- }\r
-}\r
- else\r
-{\r
- ADD_FATAL(ALREADY_INSTALLED);\r
-}\r
-//\r
-?>\r
+<?php
+/************************************************************************
+ * MXChange v0.1.0 Start: 08/29/2003 *
+ * =============== Last change: 11/11/2004 *
+ * *
+ * -------------------------------------------------------------------- *
+ * File : install-inc.php *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for installation procedure *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung : Funktionen f�r die Installationsroutine *
+ * -------------------------------------------------------------------- *
+ * *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2008 by Roland Haeder *
+ * For more information visit: http://www.mxchange.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the Free Software *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
+ * MA 02110-1301 USA *
+ ************************************************************************/
+
+/************************************************************************
+ * YOU MAY ALSO WANT TO REMOVE THIS FILE AFTER INSTALLTION! *
+ ************************************************************************/
+
+// Some security stuff...
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
+{
+ $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+ require($INC);
+}
+
+//
+function install_WriteData ($FILE, $COMMENT, $PREFIX, $SUFFIX, $DATA, $SNEAK=0)
+{
+ $DONE = false; $SNEAK++;
+ if (file_exists($FILE))
+ {
+ $SEARCH = "CFG: ".$COMMENT;
+ $TMP = $FILE.".tmp";
+ $fp = fopen($FILE, 'r') or OUTPUT_HTML ("<STRONG>READ:</STRONG> ".$FILE."<BR>");
+ if ($fp)
+ {
+ $fp_tmp = fopen($TMP, 'w') or OUTPUT_HTML ("<STRONG>WRITE:</STRONG> ".$TMP."<BR>");
+ if ($fp_tmp)
+ {
+ while (! feof($fp))
+ {
+ $line = fgets ($fp, 10240);
+ if (strpos($line, $SEARCH) > -1) $next = 0;
+ if ($next > -1)
+ {
+ if ($next == $SNEAK)
+ {
+ $next = -1;
+ $line = $PREFIX.$DATA.$SUFFIX."\n";
+ }
+ else
+ {
+ $next++;
+ }
+ }
+ fputs($fp_tmp, $line);
+ }
+ fclose($fp_tmp);
+ // Finished writing tmp file
+ $DONE = true;
+ }
+ fclose($fp);
+ if ($DONE)
+ {
+ // Copy back tmp file and delete tmp :-)
+ @copy($TMP, $FILE);
+ @unlink($TMP);
+ }
+ else
+ {
+ OUTPUT_HTML ("<STRONG>TMP:</STRONG> UNDONE!");
+ }
+ }
+ }
+ else
+ {
+ OUTPUT_HTML ("<STRONG>404:</STRONG> ".$FILE."<BR>");
+ }
+}
+
+//
+$mysql = "";
+if (isset($_POST['mysql']) && is_array($_POST['mysql'])) $mysql = $_POST['mysql'];
+
+if (URL != "http://your-server.com")
+{
+ // Already installed???
+ $burl = URL;
+}
+ elseif ($burl == "")
+{
+ // Auto-detect URL
+ $burl = "http://".$SERVER_NAME.$_SERVER['PHP_SELF'];
+ $burl = substr($burl, 0, strpos($burl, "install.php"));
+}
+//
+if ((!mxchange_installed) || (!admin_registered))
+{
+ // Set URL for FORM actions
+ define('__BURL_ACTION', $burl);
+
+ // Output page for entered value
+ switch ($_GET['page'])
+ {
+ case "welcome": // Welcome to the installation!
+ LOAD_TEMPLATE("install_welcome");
+ break;
+
+ case "1": // Server path, base URL
+ define('__PATH_LEN' , strlen(PATH));
+ define('__BURL_LEN' , strlen($burl));
+ define('__TITLE_LEN' , strlen(MAIN_TITLE));
+ define('__SLOGAN_LEN' , strlen(SLOGAN));
+ define('__WEBMASTER_LEN', (strlen(WEBMASTER) * 3));
+
+ // Load template
+ LOAD_TEMPLATE("install_page1");
+ break;
+
+ case "2": // MySQL data (alone!)
+ if (empty($mysql['dbase'])) $mysql['dbase'] = "your_database";
+ if (empty($mysql['login'])) $mysql['login'] = "your_login";
+ if (empty($mysql['host'])) $mysql['host'] = "localhost";
+ if (empty($mysql['prefix'])) $mysql['prefix'] = "mxchange_";
+ if ((sizeof($FATAL) > 0) || (!empty($FATAL[0])))
+ {
+ OUTPUT_HTML ("<SPAN class=\"install_fatal\">");
+ foreach ($FATAL as $key=>$err)
+ {
+ OUTPUT_HTML (" <STRONG>·</STRONG> ".FATAL_NO.($key + 1).": ".$err."<BR>\n");
+ }
+ OUTPUT_HTML ("</SPAN><BR>");
+ }
+ define('__MYSQL_HOST' , $mysql['host']);
+ define('__MYSQL_DBASE' , $mysql['dbase']);
+ define('__MYSQL_PREFIX', $mysql['prefix']);
+ define('__MYSQL_LOGIN' , $mysql['login']);
+ define('__SPATH_VALUE' , $_POST['spath']);
+ define('__BURL_VALUE' , $_POST['burl']);
+ define('__TITLE_VALUE' , $_POST['title']);
+ define('__SLOGAN_VALUE', $_POST['slogan']);
+ define('__EMAIL_VALUE' , $_POST['email']);
+
+ // Load template
+ LOAD_TEMPLATE("install_page2");
+ break;
+
+ case "5": // Misc settings
+ define('__SPATH_VALUE' , $_POST['spath']);
+ define('__BURL_VALUE' , $_POST['burl']);
+ define('__TITLE_VALUE' , $_POST['title']);
+ define('__SLOGAN_VALUE', $_POST['slogan']);
+ define('__EMAIL_VALUE' , $_POST['email']);
+ OUTPUT_HTML ("<FORM action=\"".__BURL_ACTION."/install.php?page=finalize\" method=\"POST\" target=\"_self\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"install_content\">
+<TR>
+ <TD colspan=\"2\" align=\"center\">
+ <STRONG class=\"install\">".HEADER_TEXT_PAGE5."</STRONG>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD colspan=\"2\"><SPAN class=\"install_intro\">
+ ".TEXT_PAGE_5."
+ </SPAN></TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD class=\"install\" align=\"right\">".LANG_OUTPUT_MODE.": </TD>
+ <TD>
+ <SELECT name=\"omode\" size=\"1\" class=\"install_select\">
+ <OPTION value=\"render\"");
+ if (OUTPUT_MODE == "render") OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".MODE_RENDER."</OPTION>
+ <OPTION value=\"direct\"");
+ if (OUTPUT_MODE == "direct") OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".MODE_DIRECT."</OPTION>
+ </SELECT>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD class=\"install\" align=\"right\">".WARN_NO_PASSWORD.": </TD>
+ <TD>
+ <SELECT name=\"warn_no_pass\" size=\"1\" class=\"install_select\">
+ <OPTION value=\"true\"");
+ if (warn_no_pass) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".YES."</OPTION>
+ <OPTION value=\"false\"");
+ if (!warn_no_pass) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".NO."</OPTION>
+ </SELECT>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD class=\"install\" align=\"right\">".LANG_WRITE_FOOTER.": </TD>
+ <TD>
+ <SELECT name=\"wfooter\" size=\"1\" class=\"install_select\">
+ <OPTION value=\"true\"");
+ if (WRITE_FOOTER) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".YES."</OPTION>
+ <OPTION value=\"false\"");
+ if (!WRITE_FOOTER) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".NO."</OPTION>
+ </SELECT>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD class=\"install\" align=\"right\">".LANG_FRAMESET_ACTIVE.": </TD>
+ <TD>
+ <SELECT name=\"frameset\" size=\"1\" class=\"install_select\">
+ <OPTION value=\"true\"");
+ if (frameset_active) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".YES."</OPTION>
+ <OPTION value=\"false\"");
+ if (!frameset_active) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".NO."</OPTION>
+ </SELECT>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD class=\"install\" align=\"right\">".INSTALL_ENABLE_BACKLINK.": </TD>
+ <TD>
+ <SELECT name=\"blink\" size=\"1\" class=\"install_select\">
+ <OPTION value=\"true\"");
+ if (ENABLE_BACKLINK) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".YES."</OPTION>
+ <OPTION value=\"false\"");
+ if (!ENABLE_BACKLINK) OUTPUT_HTML (" selected=\"selected\"");
+ OUTPUT_HTML (">".NO."</OPTION>
+ </SELECT>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD colspan=\"2\" align=\"center\">");
+ foreach ($mysql as $key=>$value)
+ {
+ OUTPUT_HTML (" <INPUT type=\"hidden\" name=\"mysql[".$key."]\" value=\"".$value."\">");
+ }
+ OUTPUT_HTML (" <INPUT type=\"hidden\" name=\"spath\" value=\"".__SPATH_VALUE."\">
+ <INPUT type=\"hidden\" name=\"burl\" value=\"".__BURL_VALUE."\">
+ <INPUT type=\"hidden\" name=\"title\" value=\"".__TITLE_VALUE."\">
+ <INPUT type=\"hidden\" name=\"slogan\" value=\"".__SLOGAN_VALUE."\">
+ <INPUT type=\"hidden\" name=\"email\" value=\"".__EMAIL_VALUE."\">
+ <INPUT type=\"submit\" class=\"admin_submit submit\" name=\"finalize\" value=\"".NEXT_PAGE."\" class=\"install_submit\">
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+</TABLE>
+</FORM>");
+ break;
+
+ case "finalize": // Write captured data to files
+ if (!empty($_POST['finalize']))
+ {
+ // You have submitted data then we have to reset the fatal messages
+ $FATAL = array();
+
+ // Connect to MySQL server
+ $link = SQL_CONNECT($mysql['host'], $mysql['login'], $mysql['pass1'], __FILE__, __LINE__);
+ if ($link)
+ {
+ // Seems to work, also right database?
+ $db = SQL_SELECT_DB($mysql['dbase'], $link, __FILE__, __LINE__);
+ if ($db)
+ {
+ // Automatically run install.sql
+ if (file_exists($_POST['spath']."install/tables.sql"))
+ {
+ $ERRORS = $_POST['spath']."inc/sql.err";
+ $cmd = array(
+ // "Dump" tha' s*** up... ;-) > /dev/null
+ "mysql ".$mysql['dbase']." --force --host=".$mysql['host']." --user=".$mysql['login']." --password=".$mysql['pass1']." < ".$_POST['spath']."install/tables.sql",
+ "mysql ".$mysql['dbase']." --force --host=".$mysql['host']." --user=".$mysql['login']." --password=".$mysql['pass1']." < ".$_POST['spath']."install/menu-".GET_LANGUAGE().".sql"
+ );
+
+ foreach ($cmd as $c)
+ {
+ @system($c);
+ }
+
+ if ((file_exists($ERRORS)) && (filesize($ERRORS) > 0))
+ {
+ ADD_FATAL(MYSQLDUMP_ERROR);
+ }
+ elseif (!mxchange_installed)
+ {
+ // Remove error file if empty
+ if (file_exists($ERRORS)) @unlink ($ERRORS);
+
+ // Ok, all done. So we can write the config data to the php files
+ if ($_POST['spath'] != PATH) install_WriteData($_POST['spath']."inc/config.php", "SERVER-PATH", "define ('PATH', \"", "\");", $_POST['spath'], 0);
+ if ($_POST['burl'] != URL) install_WriteData($_POST['spath']."inc/config.php", "HOST-URL", "define ('URL', \"", "\");", $_POST['burl'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "MAIN_TITLE", "define ('MAIN_TITLE', \"", "\");", $_POST['title'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "SLOGAN", "define ('SLOGAN', \"", "\");", $_POST['slogan'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "WEBMASTER", "define ('WEBMASTER', \"", "\");", $_POST['email'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "NULLPASS-WARNING", "define ('warn_no_pass', ", ");", $_POST['warn_no_pass'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "WRITE-FOOTER", "define ('WRITE_FOOTER', ", ");", $_POST['wfooter'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "BACKLINK", "define ('ENABLED_BACKLINK', ", ");", $_POST['blink'], 0);
+ // install_WriteData($_POST['spath']."inc/config.php", "FRAMESET", "define ('frameset_active', ", ");", $_POST['frameset'], 0);
+ // install_WriteData($_POST['spath']."inc/config.php", "OUTPUT-MODE", "define ('OUTPUT_MODE', \"", "\");", $_POST['omode'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "MYSQL-HOST", " 'host' => \"", "\",", $mysql['host'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "MYSQL-DBASE", " 'dbase' => \"", "\",", $mysql['dbase'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "MYSQL-LOGIN", " 'login' => \"", "\",", $mysql['login'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "MYSQL-PASSWORD", " 'password' => \"", "\",", $mysql['pass1'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "MYSQL-PREFIX", "define ('_MYSQL_PREFIX', \"", "\");", $mysql['prefix'], 0);
+ install_WriteData($_POST['spath']."inc/config.php", "INSTALLED", "define ('mxchange_installed', ", ");", "true", 0);
+
+ // Close the link
+ SQL_CLOSE($link, __FILE__, __LINE__);
+ }
+ else
+ {
+ ADD_FATAL(INSTALL_MAYBE_DONE);
+ }
+ }
+ else
+ {
+ // Installation area not found!
+ ADD_FATAL(INSTALL_MISSING_DUMPS);
+ }
+ }
+ }
+ if ((sizeof($FATAL) > 0) || ($FATAL[0] != ""))
+ {
+ $OUT = "";
+ foreach ($FATAL as $value)
+ {
+ $OUT .= " <LI>".$value."</LI>\n";
+ }
+ define('__FATAL_ERROR_LI', $OUT);
+ $OUT = "";
+ foreach ($mysql as $key=>$value)
+ {
+ $OUT .= " <INPUT type=\"hidden\" name=\"mysql[".$key."]\" value=\"".$value."\">\n";
+ }
+ define('__MYSQL_DATA' , $OUT);
+ define('__SPATH_VALUE', $_POST['spath']);
+ define('__BURL_VALUE' , $_POST['burl']);
+ define('__TITLE_VALUE', $_POST['title']);
+
+ OUTPUT_HTML ("<FORM action=\"".__BURL_ACTION."/install.php?page=2\" method=\"POST\">
+<TABLE border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"install_content\">
+<TR>
+ <TD align=\"center\">
+ <STRONG class=\"install\">".HEADER_MYSQL_ERRORS."</STRONG>
+ </TD>
+</TR>
+<TR><TD colspan=\"2\" height=\"21\" class=\"seperator\"> </TD></TR>
+<TR>
+ <TD><SPAN class=\"install_intro\">
+ ".TEXT_MYSQL_ERRORS."
+ </SPAN></TD>
+</TR>
+<TR>
+ <TD align=\"center\"><STRONG>
+ <OL>
+".__FATAL_ERROR_LI."
+ </OL>
+".__MYSQL_DATA."
+ <INPUT type=\"hidden\" name=\"spath\" value=\"".__SPATH_VALUE."\">
+ <INPUT type=\"hidden\" name=\"burl\" value=\"".__BURL_VALUE."\">
+ <INPUT type=\"hidden\" name=\"title\" value=\"".__TITLE_VALUE."\">
+ <INPUT type=\"submit\" class=\"admin_submit\" name=\"ok\" value=\"".RETURN_MYSQL_PAGE."\">
+ </STRONG></TD>
+</TR>
+</TABLE>
+</FORM>");
+ }
+ else
+ {
+ // Installation is done!
+ $URL = $burl."/install.php?page=finalize";
+ LOAD_URL($URL);
+ }
+ }
+ elseif (mxchange_installed)
+ {
+ // Redirection after writing data... :-)
+ OUTPUT_HTML ("<SPAN class=\"install_finished\">".INSTALL_FINISHED."</SPAN><BR>
+<BR>
+<SPAN class=\"install_security\">".INSTALL_FIN_SECU."</SPAN><BR>
+<BR>
+<FORM action=\"modules.php\" method=\"GET\">
+ <INPUT type=\"hidden\" name=\"module\" value=\"admin\">
+ <INPUT type=\"submit\" class=\"admin_submit submit\" value=\"".CONTINUE_ADMIN."\" class=\"install_submit\">
+</FORM>");
+ }
+ else
+ {
+ // Something goes wrong during installation! :-(
+ ADD_FATAL(INSTALL_FINALIZER_FAILED);
+ include ("inc/fatal_errors.php");
+ }
+ break;
+
+ default:
+ OUTPUT_HTML (" <STRONG class=\"install_error\">".WRONG_PAGE."</STRONG>");
+ break;
+ }
+}
+ else
+{
+ ADD_FATAL(ALREADY_INSTALLED);
+}
+//
+?>