developer/web/install/install.php

1078 lines
67 KiB
PHP
Raw Normal View History

2013-08-28 22:47:04 +02:00
<?php
2013-10-21 08:46:48 +02:00
2013-08-28 22:47:04 +02:00
/**
* File: install.php.
* Author: Ulrich Block
2013-12-14 14:40:51 +01:00
* Date: 07.12.13
* Time: 10:30
2013-08-28 22:47:04 +02:00
* Contact: <ulrich.block@easy-wi.com>
*
* This file is part of Easy-WI.
*
* Easy-WI 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 3 of the License, or
* (at your option) any later version.
*
* Easy-WI 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 Easy-WI. If not, see <http://www.gnu.org/licenses/>.
*
* Diese Datei ist Teil von Easy-WI.
*
* Easy-WI ist Freie Software: Sie koennen es unter den Bedingungen
* der GNU General Public License, wie von der Free Software Foundation,
* Version 3 der Lizenz oder (nach Ihrer Wahl) jeder spaeteren
* veroeffentlichten Version, weiterverbreiten und/oder modifizieren.
*
* Easy-WI wird in der Hoffnung, dass es nuetzlich sein wird, aber
* OHNE JEDE GEWAEHELEISTUNG, bereitgestellt; sogar ohne die implizite
* Gewaehrleistung der MARKTFAEHIGKEIT oder EIGNUNG FUER EINEN BESTIMMTEN ZWECK.
* Siehe die GNU General Public License fuer weitere Details.
*
* Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
* Programm erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>.
*/
2013-12-14 14:40:51 +01:00
ini_set('display_errors', 1);
2013-08-28 22:47:04 +02:00
error_reporting(E_ALL|E_STRICT);
define('EASYWIDIR', dirname(dirname(__FILE__)));
2013-12-14 14:40:51 +01:00
require_once(EASYWIDIR . '/stuff/functions.php');
$currentStep = (isset($_GET['step']) and $_GET['step'] > 0 and $_GET['step'] < 10) ? (int) $_GET['step'] : 0;
$progressPercent = (100 / 9) * $currentStep ;
$menuLanguage = (isset($_GET['language']) and strlen($_GET['language']) == 2 and file_exists(EASYWIDIR . '/install/' . $_GET['language'] . '.xml')) ? $_GET['language'] : strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0 , 2));
$languageGetParameter = '&amp;language=' . $menuLanguage;
$languageObject = simplexml_load_file(EASYWIDIR . '/install/' . $menuLanguage . '.xml');
$displayToUser = '';
$systemCheckOk = array();
$systemCheckError = array();
if ($currentStep == 0) {
$displayToUser = "<div class='jumbotron'><h2>{$languageObject->welcome_header}</h2><p>{$languageObject->welcome_text}</p><div class='pager'><a href='?step=1${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div></div>";
} else {
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$systemCheckOk['php'] = $languageObject->error_system_php_version . PHP_VERSION;
} else {
$systemCheckError['php'] = $languageObject->error_system_php_version . PHP_VERSION;
}
if (extension_loaded('ssh2')) {
$systemCheckOk['ssh2'] = $languageObject->system_ok_ssh2;
} else {
$systemCheckError['ssh2'] = $languageObject->error_system_ssh2;
}
if (extension_loaded('openssl')) {
$systemCheckOk['openssl'] = $languageObject->system_ok_openssl;
} else {
$systemCheckError['openssl'] = $languageObject->error_system_openssl;
}
if (extension_loaded('json')) {
$systemCheckOk['json'] = $languageObject->system_ok_json;
} else {
$systemCheckError['json'] = $languageObject->system_ok_json;
}
if (extension_loaded('hash')) {
$systemCheckOk['hash'] = $languageObject->system_ok_hash;
} else {
$systemCheckError['hash'] = $languageObject->system_ok_hash;
}
if (extension_loaded('ftp')) {
$systemCheckOk['ftp'] = $languageObject->system_ok_ftp;
} else {
$systemCheckError['ftp'] = $languageObject->system_ok_ftp;
}
if (extension_loaded('SimpleXML')) {
$systemCheckOk['SimpleXML'] = $languageObject->system_ok_SimpleXML;
} else {
$systemCheckError['SimpleXML'] = $languageObject->system_ok_SimpleXML;
}
if (extension_loaded('curl')) {
$systemCheckOk['curl'] = $languageObject->system_ok_curl;
} else {
$systemCheckError['curl'] = $languageObject->system_ok_curl;
}
if (extension_loaded('gd')) {
$systemCheckOk['gd'] = $languageObject->system_ok_gd;
} else {
$systemCheckError['gd'] = $languageObject->system_ok_gd;
}
if (extension_loaded('PDO')) {
$systemCheckOk['PDO'] = $languageObject->system_ok_PDO;
} else {
$systemCheckError['PDO'] = $languageObject->system_ok_PDO;
}
if (extension_loaded('pdo_mysql')) {
$systemCheckOk['pdo_mysql'] = $languageObject->system_ok_pdo_mysql;
} else {
$systemCheckError['pdo_mysql'] = $languageObject->system_ok_pdo_mysql;
}
if (function_exists('fopen')) {
$systemCheckOk['fopen'] = $languageObject->system_ok_fopen;
} else {
$systemCheckError['fopen'] = $languageObject->system_ok_fopen;
}
$folderArray = array(
'css/',
'css/default/',
'images/',
'images/flags',
'images/games/',
'images/games/icons/',
'js/',
'js/default/',
'keys/',
'languages/',
'languages/default/',
'languages/default/de/',
'languages/default/dk/',
'languages/default/uk',
'stuff/',
'template/',
'template/default/',
'third_party/',
'tmp/'
);
foreach ($folderArray as $folder) {
if (is_dir(EASYWIDIR . "/${folder}")) {
$handle = @fopen(EASYWIDIR . "/${folder}test.txt", "w+");
if ($handle) {
fclose($handle);
unlink(EASYWIDIR . "/${folder}test.txt");
$systemCheckOk['folders'][] = "Folder exists and can write to: ${folder}";
} else {
$systemCheckError['folders'][] = "Folder exists but cannot edit files: ${folder}";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
$systemCheckError['folders'][] = "Folder does not exist or cannot access: ${folder}";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
}
if ($currentStep == 1) {
if (count($systemCheckError) == 0) {
$displayToUser .= "<div class='pager'><a href='?step=2${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
}
foreach ($systemCheckError as $v) {
if (is_array($v)) {
foreach ($v as $v2) {
$displayToUser .= "<div class='alert alert-danger'>${v2}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
$displayToUser .= "<div class='alert alert-danger'>${v}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
foreach ($systemCheckOk as $v) {
if (is_array($v)) {
foreach ($v as $v2) {
$displayToUser .= "<div class='alert alert-success'>${v2}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
$displayToUser .= "<div class='alert alert-success'>${v}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
if (count($systemCheckError) == 0) {
$displayToUser .= "<div class='pager'><a href='?step=2${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
}
} else if (count($systemCheckError) > 0) {
}
if ($currentStep == 2 and count($systemCheckError) == 0) {
$host = '';
$db = '';
$user = '';
$pwd = '';
$aeskey = passwordgenerate(20);
if (file_exists(EASYWIDIR . '/stuff/config.php')) {
require_once(EASYWIDIR . '/stuff/config.php');
}
if (file_exists(EASYWIDIR . '/stuff/keyphrasefile.php')) {
require_once(EASYWIDIR . '/stuff/keyphrasefile.php');
}
$displayToUser = "
<form class='form-horizontal' role='form' action='install.php?step=3${languageGetParameter}' method='post'>
<div class='form-group'>
<label for='inputHost' class='col-sm-2 control-label'>{$languageObject->host}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputHost' name='host' value='${host}' required>
</div>
</div>
<div class='form-group'>
<label for='inputDB' class='col-sm-2 control-label'>{$languageObject->db}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputDB' name='db' value='${db}' required>
</div>
</div>
<div class='form-group'>
<label for='inputUser' class='col-sm-2 control-label'>{$languageObject->user}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputUser' name='user' value='${user}' required>
</div>
</div>
<div class='form-group'>
<label for='inputPassword' class='col-sm-2 control-label'>{$languageObject->passw_1}</label>
<div class='col-sm-10'>
<input type='password' class='form-control' id='inputPassword' name='pwd' value='${pwd}' required>
</div>
</div>
<div class='form-group'>
<label for='inputAESKey' class='col-sm-2 control-label'>{$languageObject->aeskey}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputAESKey' name='aeskey' value='${aeskey}' required>
<p class='help-block'>{$languageObject->aeskey2}</p>
<p class='help-block'>{$languageObject->aeskey3}</p>
</div>
</div>
<div class='form-group'>
<div class='col-sm-offset-2 col-sm-10'>
<button type='submit' class='btn btn-primary btn-lg pull-right'>{$languageObject->continue}</button>
</div>
</div>
</form>
";
} else if ($currentStep > 2 and count($systemCheckError) == 0) {
if ($currentStep == 3 and isset($_POST['db'])) {
$configFp = @fopen(EASYWIDIR . '/stuff/config.php', "w+");
if ($configFp) {
$configdata = '<?php
// This file was generated by the easy-wi.com installer
$host = "' . $_POST['host'] . '";
$user = "' . $_POST['user'] . '";
$db = "' . $_POST['db'] . '";
$pwd = "' . $_POST['pwd'] . '";
$captcha = 0;
$title = "";
$debug = 0;
2014-01-01 17:42:53 +01:00
$timezone = "Europe/Berlin";
2013-12-14 14:40:51 +01:00
';
@fwrite($configFp, $configdata);
fclose($configFp);
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
$keyFp = @fopen(EASYWIDIR . '/stuff/keyphrasefile.php', "w+");
if ($keyFp) {
$configdata='<?php
// This file was generated by the easy-wi.com installer
$aeskey = "' . $_POST['aeskey'] . '";
';
@fwrite($keyFp, $configdata);
fclose($keyFp);
}
}
if (file_exists(EASYWIDIR . '/stuff/config.php') and file_exists(EASYWIDIR . '/stuff/keyphrasefile.php')) {
if ($currentStep == 3 and isset($_POST['db'])) {
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_files_created}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
require_once(EASYWIDIR . '/stuff/config.php');
require_once(EASYWIDIR . '/stuff/keyphrasefile.php');
if (isset($host) and isset($db) and isset($user) and isset($pwd)) {
try {
$sql = new PDO("mysql:host=${host};dbname=${db}", $user, $pwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$sql->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $error) {
$systemCheckError['config.php'] = "<div class='alert alert-danger'>{$error->getMessage()}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
$systemCheckError['config.php'] = "<div class='alert alert-danger'>{$languageObject->error_config_php_data}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
if (isset($_POST['db'])) {
$systemCheckError['config.php'] = "<div class='alert alert-danger'>{$languageObject->error_keyphrase_php_create}</div>";
} else {
$systemCheckError['config.php'] = "<div class='alert alert-danger'>{$languageObject->error_config_keyphrase_php_missing}</div>";
}
}
}
if ($currentStep == 3 and count($systemCheckError) == 0) {
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_files_created}</div>";
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_db_connect}</div>";
$displayToUser .= "<div class='pager'><a href='?step=4${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
}
if ($currentStep == 4 and count($systemCheckError) == 0) {
try {
require_once(EASYWIDIR . '/stuff/tables_add.php');
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_db_tables_create}</div>";
$displayToUser .= "<div class='pager'><a href='?step=5${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
} catch(PDOException $error) {
$systemCheckError['tables_add.php'] = "<div class='alert alert-danger'>{$error->getMessage()}</div>";
}
}
if ($currentStep == 5 and count($systemCheckError) == 0) {
try {
class UpdateResponse {
public $response = '';
function __construct() {
$this->response = '';
}
function add ($newtext) {
$this->response .= $newtext;
}
function __destruct() {
unset($this->response);
2013-10-19 16:20:33 +02:00
}
}
2013-12-14 14:40:51 +01:00
$response = new UpdateResponse();
require_once(EASYWIDIR . '/stuff/tables_repair.php');
if (strpos($response->response, 'Error: no such table:') !== false) {
$systemCheckError['tables_repair.php'] = "<div class='alert alert-danger'>{$response->response}</div>";
} else {
if (strlen($response->response) > 0) {
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_db_tables_check_repair}</div>";
$displayToUser .= "<div class='alert alert-success'>{$response->response}</div>";
} else {
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_db_tables_check}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
$displayToUser .= "<div class='pager'><a href='?step=6${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
}
} catch(PDOException $error) {
$systemCheckError['tables_repair.php'] = "<div class='alert alert-danger'>{$error->getMessage()}</div>";
}
}
if ($currentStep == 6 and count($systemCheckError) == 0) {
$cname = '';
$email = '';
$query = $sql->prepare("SELECT `cname`,`mail` FROM `userdata` WHERE `id`=1");
$query->execute();
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$cname = $row['cname'];
$email = $row['mail'];
}
if (isset($_POST['passw1'])) {
if ($_POST['passw1'] != $_POST['passw2']) {
$displayToUser .= "<div class='alert alert-danger'>{$languageObject->error_password}</div>";
}
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$email = $_POST['email'];
} else {
$displayToUser .= "<div class='alert alert-danger'>{$languageObject->error_email}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
if (strlen($_POST['cname']) == 0) {
$displayToUser .= "<div class='alert alert-danger'>{$languageObject->error_cname}</div>";
2013-10-19 16:20:33 +02:00
} else {
2013-12-14 14:40:51 +01:00
$cname = $_POST['cname'];
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
if (!isset($_POST['passw1']) or strlen($displayToUser) > 0) {
$displayToUser .= "
<form class='form-horizontal' role='form' action='install.php?step=6${languageGetParameter}' method='post'>
<div class='form-group'>
<label for='inputUser' class='col-sm-2 control-label'>{$languageObject->user2}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputUser' name='cname' value='${cname}' required>
</div>
</div>
<div class='form-group'>
<label for='inputEmail' class='col-sm-2 control-label'>{$languageObject->email}</label>
<div class='col-sm-10'>
<input type='email' class='form-control' id='inputEmail' name='email' value='${email}' required>
</div>
</div>
<div class='form-group'>
<label for='inputPassword1' class='col-sm-2 control-label'>{$languageObject->passw_1}</label>
<div class='col-sm-10'>
<input type='password' class='form-control' id='inputPassword1' name='passw1' value='' required>
</div>
</div>
<div class='form-group'>
<label for='inputPassword2' class='col-sm-2 control-label'>{$languageObject->passw_2}</label>
<div class='col-sm-10'>
<input type='password' class='form-control' id='inputPassword2' name='passw2' value='' required>
</div>
</div>
<div class='form-group'>
<div class='col-sm-offset-2 col-sm-10'>
<button type='submit' class='btn btn-primary btn-lg pull-right'>{$languageObject->continue}</button>
</div>
</div>
</form>
";
} else {
try {
$query = $sql->prepare("INSERT INTO `userdata` (`id`,`cname`,`mail`,`security`,`accounttype`,`creationTime`,`updateTime`) VALUES (1,?,?,?,'a',NOW(),NOW()) ON DUPLICATE KEY UPDATE `cname`=VALUES(`cname`),`mail`=VALUES(`mail`)");
$query->execute(array($cname, $email, md5($_POST['passw1'])));
$query = $sql->prepare("INSERT INTO `usergroups` (`id`,`defaultgroup`,`name`,`grouptype`,`root`,`miniroot`) VALUES (1,'Y','Admin Default','a','Y','N') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`)");
$query->execute();
$query = $sql->prepare("INSERT INTO `usergroups` (`id`,`defaultgroup`,`name`,`grouptype`,`root`,`miniroot`) VALUES (2,'Y','Reseller Default','r','Y','N') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`)");
$query->execute();
$query = $sql->prepare("INSERT INTO `usergroups` (`id`,`defaultgroup`,`name`,`grouptype`,`root`,`miniroot`) VALUES (3,'Y','User Default','u','N','Y') ON DUPLICATE KEY UPDATE `id`=VALUES(`id`)");
$query->execute();
$query = $sql->prepare("INSERT INTO `userdata_groups` (`userID`,`groupID`) VALUES (1,1) ON DUPLICATE KEY UPDATE `userID`=VALUES(`userID`)");
$query->execute();
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_admin_user}</div>";
$displayToUser .= "<div class='pager'><a href='?step=7${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
} catch(PDOException $error) {
$systemCheckError['tables_repair.php'] = "<div class='alert alert-danger'>{$error->getMessage()}</div>";
}
}
}
if ($currentStep == 7 and count($systemCheckError) == 0) {
$languages = array();
$language = '';
$prefix1 = "Y";
$prefix2 = "user";
$faillogins = 5;
$brandname = "by myhost.com";
$selectedCaptcha = '';
$selectedPrefix = '';
2013-12-22 18:32:18 +01:00
$query = $sql->prepare("SELECT `pageurl` FROM `page_settings` WHERE `resellerid`=0");
$query->execute();
$installUrl = (string) $query->fetchColumn();
if (strlen($installUrl) == 0) {
$installUrl = 'http://' . $_SERVER['SERVER_NAME'] . '/' . str_replace('install/install.php', '', $_SERVER['SCRIPT_NAME']);
}
2013-12-22 18:56:18 +01:00
while (substr($installUrl, -2) == '//') {
2013-12-22 18:32:18 +01:00
$installUrl = substr($installUrl, 0, strlen($installUrl) -1 );
}
2013-12-14 14:40:51 +01:00
$query = $sql->prepare("SELECT `mail` FROM `userdata` WHERE `id`=1");
$query->execute();
$email = $query->fetchColumn();
$query = $sql->prepare("SELECT `language`,`email`,`prefix1`,`prefix2`,`faillogins`,`brandname` FROM `settings` WHERE `resellerid`=0 LIMIT 1");
$query->execute();
foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $row) {
$language = $row['language'];
$email = $row['email'];
$prefix1 = $row['prefix1'];
$prefix2 = $row['prefix2'];
$faillogins = $row['faillogins'];
$brandname = $row['brandname'];
}
if (isset($_POST['email'])) {
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$email = $_POST['email'];
} else {
$displayToUser .= "<div class='alert alert-danger'>{$languageObject->error_email}</div>";
}
}
if ($captcha == 1) {
$selectedCaptcha = 'selected="selected"';
}
if ($prefix1 == 'Y') {
$selectedPrefix = 'selected="selected"';
}
if (is_dir(EASYWIDIR . "/languages/default/")){
$dirs = scandir(EASYWIDIR . "/languages/default/");
foreach ($dirs as $row) {
if (preg_match("/^[a-z]{2}+$/", $row)) {
$languages[] = ($row == $menuLanguage) ? "<option value='${row}' selected='selected'>$row</option>" : "<option value='${row}'>$row</option>";
}
}
}
$languages = implode('', $languages);
if (!isset($_POST['email']) or strlen($displayToUser) > 0) {
$displayToUser .= "
<form class='form-horizontal' role='form' action='install.php?step=7${languageGetParameter}' method='post'>
2013-12-22 18:32:18 +01:00
<div class='form-group'>
<label for='inputInstallUrl' class='col-sm-2 control-label'>{$languageObject->installUrl}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputInstallUrl' name='installUrl' value='${installUrl}' required>
</div>
</div>
2014-01-01 17:42:53 +01:00
<div class='form-group'>
<label for='inputInstallTimezone' class='col-sm-2 control-label'>{$languageObject->timezone}</label>
<div class='col-sm-10'>
<select id='inputInstallTimezone' name='timezone'>";
$timezoneDefined = ini_get('date.timezone');
foreach (timezone_identifiers_list() as $time) {
$displayToUser .= ($time == $timezoneDefined) ? "<option selected='selected'>{$time}</option>" : "<option>{$time}</option>";
}
$displayToUser .= "
</select>
</div>
</div>
2013-12-14 14:40:51 +01:00
<div class='form-group'>
<label for='inputTitle' class='col-sm-2 control-label'>{$languageObject->title}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputTitle' name='title' value='${title}' required>
</div>
</div>
<div class='form-group'>
<label for='inputLanguage' class='col-sm-2 control-label'>{$languageObject->language}</label>
<div class='col-sm-10'>
<select name='language' class='form-control' id='inputLanguage'>${languages}</select>
</div>
</div>
<div class='form-group'>
<label for='inputEmail' class='col-sm-2 control-label'>{$languageObject->email}</label>
<div class='col-sm-10'>
<input type='email' class='form-control' id='inputEmail' name='email' value='${email}' required>
<p class='help-block'>{$languageObject->email2}</p>
</div>
</div>
<div class='form-group'>
<label for='inputCaptcha' class='col-sm-2 control-label'>{$languageObject->captcha}</label>
<div class='col-sm-10'>
<select name='captcha' class='form-control' id='inputCaptcha'>
<option value='0'>{$languageObject->no}</option>
<option value='1' ${selectedCaptcha}>{$languageObject->yes}</option>
</select>
<p class='help-block'>{$languageObject->captcha_2}</p>
</div>
</div>
<div class='form-group'>
<label for='inputFaillogins' class='col-sm-2 control-label'>{$languageObject->faillogins}</label>
<div class='col-sm-10'>
<input type='number' class='form-control' id='inputFaillogins' name='faillogins' value='${faillogins}' required>
<p class='help-block'>{$languageObject->faillogins2}</p>
</div>
</div>
<div class='form-group'>
<label for='inputBrandname' class='col-sm-2 control-label'>{$languageObject->brandname}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputBrandname' name='brandname' value='${brandname}' required>
<p class='help-block'>{$languageObject->brandname2}</p>
</div>
</div>
<div class='form-group'>
<label for='inputPrefix1' class='col-sm-2 control-label'>{$languageObject->prefix1}</label>
<div class='col-sm-10'>
<select name='prefix1' class='form-control' id='inputPrefix1'>
<option value='N'>{$languageObject->no}</option>
<option value='Y' ${selectedPrefix}>{$languageObject->yes}</option>
</select>
</div>
</div>
<div class='form-group'>
<label for='inputPrefix' class='col-sm-2 control-label'>{$languageObject->prefix3}</label>
<div class='col-sm-10'>
<input type='text' class='form-control' id='inputPrefix' name='prefix2' value='${prefix2}' required>
<p class='help-block'>{$languageObject->prefix2}</p>
</div>
</div>
<div class='form-group'>
<div class='col-sm-offset-2 col-sm-10'>
<button type='submit' class='btn btn-primary btn-lg pull-right'>{$languageObject->continue}</button>
</div>
</div>
</form>
";
} else {
try {
2013-12-22 18:32:18 +01:00
$query = $sql->prepare("INSERT INTO `page_settings` (`id`,`pageurl`,`resellerid`) VALUES (1,?,0) ON DUPLICATE KEY UPDATE `pageurl`=VALUES(`pageurl`)");
$query->execute(array($_POST['installUrl']));
2013-12-14 14:40:51 +01:00
$query = $sql->prepare("INSERT INTO `settings` (`id`,`language`,`email`,`prefix1`,`prefix2`,`faillogins`,`brandname`,`resellerid`) VALUES (1,?,?,?,?,?,?,0) ON DUPLICATE KEY UPDATE `language`=VALUES(`language`),`email`=VALUES(`email`),`prefix1`=VALUES(`prefix1`),`prefix2`=VALUES(`prefix2`),`faillogins`=VALUES(`faillogins`),`brandname`=VALUES(`brandname`)");
2013-12-22 18:32:18 +01:00
$query->execute(array($_POST['language'], $_POST['email'], $_POST['prefix1'], $_POST['prefix2'], $_POST['faillogins'], $_POST['brandname']));
2013-12-14 14:40:51 +01:00
$query = $sql->prepare("INSERT INTO `eac` (`id`,`resellerid`) VALUES (1,0) ON DUPLICATE KEY UPDATE `resellerid`=`resellerid`");
$query->execute();
$query = $sql->prepare("INSERT INTO `lendsettings` (`id`,`resellerid`) VALUES (1,0) ON DUPLICATE KEY UPDATE `resellerid`=`resellerid`");
$query->execute();
$query = $sql->prepare("INSERT INTO `traffic_settings` (`id`,`type`) VALUES (1,'mysql') ON DUPLICATE KEY UPDATE `type`=`type`");
$query->execute();
$query = $sql->prepare("INSERT INTO `easywi_version` (`id`,`version`,`de`,`en`) VALUES (1,'4.20','','') ON DUPLICATE KEY UPDATE `id`=`id`");
$query->execute();
$query = $sql->prepare("INSERT INTO `voice_stats_settings` (`id`,`resellerid`) VALUES (1,0) ON DUPLICATE KEY UPDATE `id`=`id`");
$query->execute();
$query = $sql->prepare("INSERT INTO `page_pages` (`id`,`authorid`,`type`) VALUES (1,0,'about') ON DUPLICATE KEY UPDATE `id`=`id`");
$query->execute();
$query = $sql->prepare("INSERT INTO `feeds_settings` (`settingsID`,`resellerID`) VALUES (1,0) ON DUPLICATE KEY UPDATE `settingsID`=`settingsID`");
$query->execute();
$query = $sql->prepare("UPDATE `settings` SET `template`='default',`emailbackuprestore`=0x78dae555c18eda30103db3d2fe83eb2a3750425852aa3a482b0ad7ee811e7a1ce221b1eac4a96368e9d777e2042da0ad96760fabaabe789ee7cdb33d7a89c59b8f9f16eb2f0f4b56b852cfd9ed8d2810e4fcf666209c721ae78133b5ca021176b04d94e880f8ae1ee1b79ddaa77c612a87951bad0f3572967528e50e7fb8b0d5fdc0b2026c83b4f679bd1acd38c988b0df486c8c3cb04d9e196d6ccadfaefce04ce3d695607355a53ce28c8e7182baf0bb92ae209c1e170a5479e13c43abea2ba9c5d3647a1f73b6bfc0d0e3851f244f672518d1984c78777fd868641b63255a2fd96f378ea2806e895ad720a5aa729f6c715343d6e35661c084b33e18300a253b1e2f3e1123a9c7bb2fc6c97dbce273eab67ca6f0fdecac7239bd9b8ee3ab2a9fd9925164cf239adb5efc6957c62f684bf4b77d999d579295a265e20db7255fb22d649872b00af4b040bd47a73218eed14aa860e8a0302570d6a89fc4221f88c65953e5c7af80050d5a22d3e7d02744d8cacec5c686decb7e0a1ad03b074e998a4a7654534189c1f082d57a6efca8c9fc424cb304873d9c04a7ecbbe00989e91925b9a01c735882d21673b0b2f90da532166b7d783adbf5fc0a774557daeb9f3655f22ea27dbba66e8d71de12afde9bffe63724c2f6d1e85e91f6ddfa05e50fe105,`emaildown`=0x78dae555c18eda30103db3d2fe83eb2a375042d850aa3a482b0ad7ee811e7a1ce221b1eac4a96368e9d777e2042da0ad96760fabaabe789e67e6d97e7a89c59b8f9f16eb2f0f4b56b852cfd9ed8d2810e4fcf666209c721ae78133b5ca021176b04d94e880ea5d3dc26f3bb54ff9c2540e2b375a1f6ae42ceb50ca1dfe7061cbfb816505d80669edf37a359a71a21161bf91d81879609b3c33dad894bf5df9c199c6ad2bc1e6aa4a79c4191de30475e177255d41383d2e14a8f2c2f90aadaaafc41627d3e43ee66c7f81a1c70b3f889ece4a30a23199f0eefeb0d1c836c64ab49eb2df6e1c4501dd12b5ae414a55e53ed9e2a686acc72dc38009677d3060144a763c5e7c4246548f775f8ca7f7f18acf496df94ce3fbd959e732b94bc6f1559dcf6cc928b2e711cdad167faacaf805b2447fabcbecbc93ac142da7de705bf225db42862907ab400f0bd47b742a83e11ead840a860e0a5302678dfa4955e403d1386baafcf815b0a0414bc5f439f40911b6b473b1b1a1f7b29f8206f4ce8153a6a2961df554506230bca86a3d377ee4647e21a65982c31e4e82279aee8253945c941c735882d21673b0b2f94d49652cd6faf074b653f90a3f45571aea9fb6d1f45d44fb76a26e8d71de04afaecd7ff3e31161fb4c74ef46fb52fd023336dd2c,`emaildownrestart`=0x78dae555c18eda30103db3d2fe83eb2a375042d850aa3a482b0ad7ee811e7a1ce221b1eac4a96368e9d777e2042da0ad96760fabaabe789e67e6d97e7a89c59b8f9f16eb2f0f4b56b852cfd9ed8d2810e4fcf666209c721ae78133b5ca021176b04d94e880ea5d3dc26f3bb54ff9c2540e2b375a1f6ae42ceb50ca1dfe7061cbfb816505d80669edf37a359a71a21161bf91d81879609b3c33dad894bf5df9c199c6ad2bc1e6aa4a79c4191de30475e177255d41383d2e14a8f2c2f90aadaaafc41627d3e43ee66c7f81a1c70b3f889ece4a30a23199f0eefeb0d1c836c64ab49eb2df6e1c4501dd12b5ae414a55e53ed9e2a686acc72dc38009677d3060144a763c5e7c4246548f775f8ca7f7f18acf496df94ce3fbd959e732b94bc6f1559dcf6cc928b2e711cdad167faacaf805b2447fabcbecbc93ac142da7de705bf225db42862907ab400f0bd47b742a83e11ead840a860e0a5302678dfa4955e403d1386baafcf815b0a0414bc5f439f40911b6b473b1b1a1f7b29f8206f4ce8153a6a2961df554506230bca86a3d377ee4647e21a65982c31e4e82279aee8253945c941c735882d21673b0b2f94d49652cd6faf074b653f90a3f45571aea9fb6d1f45d44fb76a26e8d71de04afaecd7ff3e31161fb4c74ef46fb52fd023336dd2c,`emailgserverupdate`=0x78dae5554d8fda30103db3d2fe07d7556ea084b0a15475905614aeed811e7a1c92815875e2d41968e9afefc409da05adb4b47b5855f5c5f3e6e3d99e3cc7eacdc74f8bf5d7cf4b515069e6e2f6461508f9fcf666a04893c17940b6d659a0c20eb6811209389fea117edfeb432a17b622ac68b43ed62845d6a15412fea4b0e5fd20b2025c83ecfbb25e8d66926954d82fa436363f8acd2eb3c6ba54be5df92185c12d95e076ba4a6524056fe311eacc1f3aa782717a7214a87705f90ca3ab6fcc1627d3e43e96e27081a1c70b3f989ef7ca30e23199c8eefcb0312836d6e5e83c65bfdc388a023e251a53439eeb6ae7832d6e6ac87adc320c8422e78d81603317a7edc58fc898eae1ec8bf1f43e5ec939773b7fa6f0fdecac7299dc25e3f8aaca6796146cb9738be7b6177fda95f10bda12fd6d5f66e7952ca56839f582dbb22ec516324c25380d6658a03920e90c86077439543024286c095234fa1767b10e5443ce56bbd32d1041838e93f93af40115b6b473b571a1d7b29f8206cc9e80b4adb864cf351594180c2fb25acd8d1f388577c43ce740d8c3491b2face31bd57bee822768920be729565987b5393e1dedda788560a22b15f34feb64fa2ee275032c419badb5e4bff2abf7e6bff9b3a8b07d07ba87a17d8a7e038c3ed52f,`emailpwrecovery`=0x78dae5554d8fd330103d77a5fd0fc628b756f9585a8a7022ad4a7b854339709c24d3c4c2b183e31
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailbackup', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Sicherung des Servers</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>die Sicherung Ihres Servers</text1>\r\n <text2>wurde um</text2>\r\n <text3>fertig gestellt.</text3>\r\n <text4>Ihr Server sollte weiterhin erreichbar sein.</text4>\r\n <text5>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text5>\r\n <text6>Die entsprechende Nummer finden Sie im Panel.</text6>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailbackuprestore', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Wiederherstellung Ihres Backups</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>das Backup Ihres Servers</text1>\r\n <text2>wurde um</text2>\r\n <text3>erfolgreich eingespielt.</text3>\r\n <text4>Ihr Server sollte weiterhin erreichbar sein.</text4>\r\n <text5>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text5>\r\n <text6>Die entsprechende Nummer finden Sie im Panel.</text6>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emaildown', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Server nicht erreichbar</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Ihr Servers</text1>\r\n <text2>kann seit</text2>\r\n <text3>nicht mehr erreicht werden.</text3>\r\n <text4>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text4>\r\n <text5>Die entsprechende Nummer finden Sie im Panel.</text5>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emaildownrestart', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Server abgest&uuml\;rzt</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Ihr Servers</text1>\r\n <text2>konnte am</text2>\r\n <text3>nicht erreicht werden und wurde neu gstartet.</text3>\r\n <text4>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text4>\r\n <text5>Die entsprechende Nummer finden Sie im Panel.</text5>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailgserverupdate', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Update eines Masterservers</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Ein Gameserverupdate wurde beim Server</text1>\r\n <text2>um</text2>\r\n <text3>f&uuml\;r das Spiel</text3> \r\n <text4>fertig gestellt.</text4>\r\n <text5>Ihre Server sollten weiterhin erreichbar sein.</text5>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailnewticket', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Ticket</topic>\r\n <text1>schrieb am</text1>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailpwrecovery', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Passwort Recovery</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Um ein neues Passwort anzufordern, rufen Sie bitte folgenden Best&auml\;tigungslink auf:</text1>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailsecuritybreach', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Manipulation am Server entdeckt</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Am</text1>\r\n <text2>wurde am Server</text2>\r\n <text3>eine unzul&auml\;ssige Manipulation entdeckt:</text3> \r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailuseradd', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Zugangsdaten</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Ihr Account wurde um</text1>\r\n <text2>f&uuml\;r Sie bereit gestellt.</text2>\r\n <text3>Ihre Zugangsdaten lauten wie folgt:</text3> \r\n <text4>Benutzername:</text4>\r\n <text5>Passwort:</text5>\r\n <text6>Bitte speichern Sie die Zugangsdaten aus Sicherheitsgr&uuml\;nden in einer verschl&uuml\;sselten Datei und l&ouml\;schen diese Email danach.</text6>\r\n <text7>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text7>\r\n <text8>Die entsprechende Nummer finden Sie im Panel.</text8>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'de', 'emailvrescue', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Rescue System gestartet</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Das Rescue System ihres Servers mit der IP</text1>\r\n <text2>wurde um</text2>\r\n <text3>f&uuml\;r Sie gestartet.</text3> \r\n <text4>Das Passwort f&uuml\;r den Root Account lautet:</text4>\r\n <text5>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text5>\r\n <text6>Die entsprechende Nummer finden Sie im Panel.</text6>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailbackup', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Your Serverbackup</topic>\r\n <salutation>Dear</salutation>\r\n <text1>the backup for your server</text1>\r\n <text2>was created at</text2>\r\n <text3>.</text3>\r\n <text4>Your server should be still available for access.</text4>\r\n <text5>If you have any questions feel free to use our supportsystem or give us a call.</text5>\r\n <text6>You will find the phonenumber in our panel.</text6>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailbackuprestore', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Your Serverbackup</topic>\r\n <salutation>Dear</salutation>\r\n <text1>the backup for your server</text1>\r\n <text2>was successfully restored</text2>\r\n <text3>.</text3>\r\n <text4>Your server should be still available for access.</text4>\r\n <text5>If you have any questions feel free to use our supportsystem or give us a call.</text5>\r\n <text6>You will find the phonenumber in our panel.</text6>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emaildown', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Server could not been reached</topic>\r\n <salutation>Dear</salutation>\r\n <text1>Your server</text1>\r\n <text2>could not been reached since</text2>\r\n <text3>.</text3>\r\n <text4>If you have any questions feel free to use our supportsystem or give us a call.</text4>\r\n <text5>You will find the phonenumber in our panel.</text5>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emaildownrestart', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Server crashed</topic>\r\n <salutation>Dear</salutation>\r\n <text1>Your server</text1>\r\n <text2>could not been reached at</text2>\r\n <text3>and was restarted.</text3>\r\n <text4>If you have any questions feel free to use our supportsystem or give us a call.</text4>\r\n <text5>You will find the phonenumber in our panel.</text5>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailgserverupdate', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Masterservers has been updated</topic>\r\n <salutation>Dear</salutation>\r\n <text1>a gameserverupdate for the server</text1>\r\n <text2>was applied at</text2>\r\n <text3>for the game</text3> \r\n <text4>.</text4>\r\n <text5>Your server should be still available for access.</text5>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailnewticket', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Ticket</topic>\r\n <text1>wrote at</text1>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailpwrecovery', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Password recovery</topic>\r\n <salutation>Dear</salutation>\r\n <text1>To require a new password please use following activation link:</text1>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailsecuritybreach', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Server manipulation detected</topic>\r\n <salutation>Dear</salutation>\r\n <text1>At</text1>\r\n <text2>a illegal servermanipulation at the server</text2>\r\n <text3>was detected:</text3> \r\n <noreply>This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailuseradd', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Zugangsdaten</topic>\r\n <salutation>Sehr geehrte(r)</salutation>\r\n <text1>Ihr Account wurde um</text1>\r\n <text2>f&uuml\;r Sie bereit gestellt.</text2>\r\n <text3>Ihre Zugangsdaten lauten wie folgt:</text3> \r\n <text4>Benutzername:</text4>\r\n <text5>Passwort:</text5>\r\n <text6>Bitte speichern Sie die Zugangsdaten aus Sicherheitsgr&uuml\;nden in einer verschl&uuml\;sselten Datei und l&ouml\;schen diese Email danach.</text6>\r\n <text7>Bei Fragen nutzen Sie bitte das Ticketsystem, oder nehmen telefonisch Kontakt auf.</text7>\r\n <text8>Die entsprechende Nummer finden Sie im Panel.</text8>\r\n <noreply>(Dies ist eine automatisch versendete E-Mail. Bitte antworten Sie nicht darauf, weil dieses E-Mail Konto nicht in der Lage ist, E-Mails zu empfangen.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `translations` (`type`,`lang`,`transID`,`text`,`resellerID`) VALUES ('em', 'uk', 'emailvrescue', '<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n<sprache>\r\n <topic>Rescue system has been started</topic>\r\n <salutation>Dear</salutation>\r\n <text1>The rescue system for your server with the IP</text1>\r\n <text2>was started at</text2>\r\n <text3>.</text3> \r\n <text4>The root password is:</text4>\r\n <text5>If you have any questions feel free to use our supportsystem or give us a call.</text5>\r\n <text6>You will find the phonenumber in our panel.</text6>\r\n <noreply>(This is an automated mail. Please do not reply to it since the account is configured to send only.)</noreply>\r\n</sprache>', 0) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
$query->execute();
$query = $sql->prepare("INSERT INTO `resellerimages` (`id`, `distro`, `description`, `bitversion`, `pxelinux`) VALUES (1, 'other', 'Rescue 32bit', 32, 'DISPLAY boot.txt\r\nDEFAULT rescue\r\nTIMEOUT 10\r\n\r\nLABEL default\r\n kernel /rescue/vmlinuz-rescue\r\n append initrd=/rescue/initram.igz setkmap=de dodhcp rootpass=%rescuepass% scandelay=5 boothttp=http://1.1.1.1/rescue/32/sysrcd.dat') ON DUPLICATE KEY UPDATE `id`=`id`");
$query->execute();
$query = $sql->prepare("INSERT INTO `resellerimages` (`id`, `distro`, `description`, `bitversion`, `pxelinux`) VALUES (2, 'other', 'Rescue 64bit', 64, 'DISPLAY boot.txt\r\nDEFAULT rescue\r\nTIMEOUT 10\r\n\r\nLABEL default\r\n kernel /rescue/vmlinuz-rescue\r\n append initrd=/rescue/initram.igz setkmap=de dodhcp rootpass=%rescuepass% scandelay=5 boothttp=http://1.1.1.1/rescue/64/sysrcd.dat') ON DUPLICATE KEY UPDATE `id`=`id`");
$query->execute();
$configFp = @fopen(EASYWIDIR . '/stuff/config.php', "w+");
if ($configFp) {
$configdata = '<?php
// This file was generated by the easy-wi.com installer
$host = "' . $host . '";
$user = "' . $user . '";
$db = "' . $db . '";
$pwd = "' . $pwd . '";
$captcha = "' . $_POST['captcha'] . '";
$title = "' . $_POST['title'] . '";
$debug = 0;
2014-01-01 17:42:53 +01:00
$timezone = "' . $_POST['timezone'] . '";
2013-12-14 14:40:51 +01:00
';
@fwrite($configFp, $configdata);
fclose($configFp);
2013-08-28 22:47:04 +02:00
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_configuration}</div>";
$displayToUser .= "<div class='pager'><a href='?step=8${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
} catch(PDOException $error) {
$displayToUser = "<div class='alert alert-danger'>{$error->getMessage()}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
}
if ($currentStep == 8 and count($systemCheckError) == 0) {
if (!isset($_POST['submit'])) {
$displayToUser .= "<div class='alert alert-success'>{$languageObject->games_insert}</div>";
$displayToUser .= "
<form class='form-horizontal' role='form' action='install.php?step=8${languageGetParameter}' method='post'>
<div class='form-group'>
<div class='col-sm-offset-2 col-sm-10'>
<button type='submit' name='submit' class='btn btn-primary btn-lg pull-right'>{$languageObject->continue}</button>
</div>
</div>
</form>
";
} else {
try {
require_once(EASYWIDIR . '/stuff/gameslist.php');
2013-12-14 14:40:51 +01:00
$displayToUser .= "<div class='pager'><a href='?step=9${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
$displayToUser .= "<div class='alert alert-success'>{$languageObject->ok_gameserver_data}</div>";
$query = $sql->prepare("SELECT COUNT(`id`) AS `amount` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=0 LIMIT 1");
$query2 = $sql->prepare("INSERT INTO `servertypes` (`steamgame`,`appID`,`updates`,`shorten`,`description`,`gamebinary`,`binarydir`,`modfolder`,`fps`,`slots`,`map`,`cmd`,`modcmds`,`tic`,`gameq`,`gamemod`,`gamemod2`,`configs`,`configedit`,`portStep`,`portMax`,`portOne`,`portTwo`,`portThree`,`portFour`,`portFive`,`mapGroup`,`protected`,`protectedSaveCFGs`,`ramLimited`,`os`) VALUES (:steamgame,:appID,:updates,:shorten,:description,:gamebinary,:binarydir,:modfolder,:fps,:slots,:map,:cmd,:modcmds,:tic,:gameq,:gamemod,:gamemod2,:configs,:configedit,:portStep,:portMax,:portOne,:portTwo,:portThree,:portFour,:portFive,:mapGroup,:protected,:protectedSaveCFGs,:ramLimited,:os)");
$query3 = $sql->prepare("UPDATE `servertypes` SET `steamgame`=:steamgame,`appID`=:appID,`updates`=:updates,`shorten`=:shorten,`description`=:description,`gamebinary`=:gamebinary,`binarydir`=:binarydir,`modfolder`=:modfolder,`fps`=:fps,`slots`=:slots,`map`=:map,`cmd`=:cmd,`modcmds`=:modcmds,`tic`=:tic,`gameq`=:gameq,`gamemod`=:gamemod,`gamemod2`=:gamemod2,`configs`=:configs,`configedit`=:configedit,`portStep`=:portStep,`portMax`=:portMax,`portOne`=:portOne,`portTwo`=:portTwo,`portThree`=:portThree,`portFour`=:portFour,`portFive`=:portFive,`mapGroup`=:mapGroup,`protected`=:protected,`protectedSaveCFGs`=:protectedSaveCFGs,`ramLimited`=:ramLimited,`os`=:os WHERE `shorten`=:shorten AND `resellerid`=0 LIMIT 1");
foreach ($gameImages as $image) {
if (count($image) == 31) {
$query->execute(array($image[':shorten']));
$imageExists = (int) $query->fetchColumn();
if ($imageExists == 0) {
$query2->execute($image);
$affectedRows = $query2->rowCount();
} else {
$query3->execute($image);
$affectedRows = $query3->rowCount();
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
if ($affectedRows == 1) {
$displayToUser .= "<div class='alert alert-success'>{$image[':description']}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
$displayToUser .= "<div class='alert alert-danger'>{$languageObject->error_game_insert} ".count($image)." ${image[':description']}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
require_once(EASYWIDIR . '/stuff/addonslist.php');
2013-12-14 14:40:51 +01:00
$query = $sql->prepare("SELECT `id` FROM `addons` WHERE `addon`=? AND `resellerid`=0 LIMIT 1");
$query2 = $sql->prepare("INSERT INTO `addons` (`active`,`depending`,`paddon`,`addon`,`type`,`folder`,`menudescription`,`configs`,`cmd`,`rmcmd`,`resellerid`) VALUES ('Y',?,?,?,?,?,?,?,?,?,0)");
$query3 = $sql->prepare("SELECT `id` FROM `servertypes` WHERE `shorten`=? AND `resellerid`=0 LIMIT 1");
$query4 = $sql->prepare("INSERT INTO `addons_allowed` (`addon_id`,`servertype_id`,`reseller_id`) VALUES (?,?,0)");
foreach ($gameAddons as $addon) {
if (count($addon) == 10) {
$query->execute(array($addon[':addon']));
$addonID = $query->fetchColumn();
if ($addonID < 1) {
$dependsID = 0;
if (strlen($addon[':depends']) > 0) {
2013-12-14 14:40:51 +01:00
$query->execute(array($addon[':depends']));
$dependsID = $query->fetchColumn();
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
$query2->execute(array($dependsID, $addon[':paddon'], $addon[':addon'], $addon[':type'], $addon[':folder'], $addon[':menudescription'], $addon[':configs'], $addon[':cmd'], $addon[':rmcmd']));
$addonID = $sql->lastInsertId();
foreach ($addon[':supported'] as $supported) {
$query3->execute(array($supported));
$query4->execute(array($addonID,$query3->fetchColumn()));
}
$displayToUser .= "<div class='alert alert-success'>{$addon[':menudescription']}</div>";
2013-10-19 16:20:33 +02:00
}
}
}
2013-12-14 14:40:51 +01:00
$displayToUser .= "<div class='pager'><a href='?step=9${languageGetParameter}' class='pull-right'><span class='btn btn-primary btn-lg'>{$languageObject->continue}</span></a></div>";
} catch(PDOException $error) {
$displayToUser = "<div class='alert alert-danger'>{$error->getMessage()}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
if ($currentStep == 9 and count($systemCheckError) == 0) {
function rmr($dir) {
if (is_dir($dir)) {
$dircontent = scandir($dir);
foreach ($dircontent as $c) {
if ($c != '.' and $c != '..' and is_dir($dir . '/' . $c)) {
rmr($dir . '/' . $c);
} else if ($c != '.' and $c != '..') {
@unlink($dir . '/' . $c);
}
}
@rmdir($dir);
} else {
@unlink($dir);
}
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
rmr(EASYWIDIR . "/install");
if (file_exists(EASYWIDIR . "/install")) {
$displayToUser .= "<div class='alert alert-warning'>{$languageObject->install_done_folder}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-22 21:13:48 +01:00
$displayToUser .= "<div class='alert alert-success'>{$languageObject->install_done}</div>";
$displayPHPUser = (isset($_SERVER['USER'])) ? $_SERVER['USER'] : 'changeToPHPUser';
2014-01-02 14:05:03 +01:00
$displayToUser .= "<div class='alert alert-success'>0 */1 * * * ${displayPHPUser} cd " . EASYWIDIR . " && timeout 300 php ./reboot.php >/dev/null 2>&1<br>
*/5 * * * * ${displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./statuscheck.php >/dev/null 2>&1<br>
*/1 * * * * ${displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./startupdates.php >/dev/null 2>&1<br>
*/5 * * * * ${displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./jobs.php >/dev/null 2>&1<br>
*/10 * * * * ${displayPHPUser} cd " . EASYWIDIR . " && timeout 290 php ./cloud.php >/dev/null 2>&1<br></div>";
2013-12-22 21:13:48 +01:00
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
if (strlen($displayToUser) == 0 and count($systemCheckError) > 0) {
foreach ($systemCheckError as $v) {
if (is_array($v)) {
foreach ($v as $v2) {
$displayToUser .= "<div class='alert alert-danger'>${v2}</div>";
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
} else {
$displayToUser .= "<div class='alert alert-danger'>${v}</div>";
2013-10-19 16:20:33 +02:00
}
}
}
2013-12-14 14:40:51 +01:00
2013-08-28 22:47:04 +02:00
?>
2013-12-14 14:40:51 +01:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Easy-WI Installer">
<meta name="author" content="Ulrich Block">
<title>Easy-WI Installer</title>
<!-- Bootstrap core CSS -->
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
<!-- Custom styles for this template -->
<style type="text/css">
/* Space out content a bit */
body {
padding-top: 20px;
padding-bottom: 20px;
}
/* Everything but the jumbotron gets side spacing for mobile first views */
.header, .footer {
padding-left: 15px;
padding-right: 15px;
}
/* Custom page header */
.header {
border-bottom: 1px solid #e5e5e5;
}
/* Make the masthead heading the same height as the navigation */
.header h3 {
margin-top: 0;
margin-bottom: 0;
line-height: 40px;
padding-bottom: 19px;
}
/* Custom page footer */
.footer {
padding-top: 19px;
color: #777;
border-top: 1px solid #e5e5e5;
}
/* Customize container */
@media (min-width: 768px) {
.container {
max-width: 1024px;
2013-10-19 16:20:33 +02:00
}
2013-12-14 14:40:51 +01:00
}
.container-narrow > hr {
margin: 30px 0;
}
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
/* Remove the padding we set earlier */
.header, .footer {
padding-left: 0;
padding-right: 0;
}
/* Space out the masthead */
.header {
margin-bottom: 30px;
}
}
</style>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js" type="text/javascript"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js" type="text/javascript"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="header">
<ul class="nav nav-pills pull-right">
<li><a href="https://twitter.com/EasyWI" target="_blank"><i class="fa fa-twitter fa-fw"></i> Twitter</a></li>
<li><a href="https://github.com/easy-wi/developer" target="_blank"><i class="fa fa-github fa-fw"></i> Github</a></li>
<li><a href="https://easy-wi.com/forum/" target="_blank" title="easy-wi.com wiki"><i class="fa fa-comments fa-fw"></i> Forum</a></li>
<li><a href="http://wiki.easy-wi.com" target="_blank" title="easy-wi.com forum"><i class="fa fa-question-circle fa-fw"></i> Wiki</a></li>
<li><a href="?step=<?php echo $currentStep;?>&amp;language=de"><img src="../images/flags/de.png"></a></li>
<li><a href="?step=<?php echo $currentStep;?>&amp;language=en"><img src="../images/flags/uk.png"></a></li>
2014-01-01 17:42:53 +01:00
<li><a href="?step=<?php echo $currentStep;?>&amp;language=dk"><img src="../images/flags/dk.png"></a></li>
2013-12-14 14:40:51 +01:00
</ul>
<h3 class="text-muted">Easy-WI.com Installer</h3>
</div>
<div class="row">
<div class="col-md-3">
<ul class="nav nav-pills nav-stacked">
<li <?php if ($currentStep == 0) echo 'class="active"'; ?>><a href="?step=0<?php echo $languageGetParameter;?>"><i class="fa fa-info-circle fa-fw"></i> <?php echo $languageObject->menu_welcome;?></a></li>
<li <?php if ($currentStep == 1) echo 'class="active"'; ?>><a href="?step=1<?php echo $languageGetParameter;?>"><i class="fa fa-stethoscope fa-fw"></i> <?php echo $languageObject->menu_system;?></a></li>
<li <?php if ($currentStep == 2) echo 'class="active"'; ?>><a href="?step=2<?php echo $languageGetParameter;?>"><i class="fa fa-key fa-fw"></i> <?php echo $languageObject->menu_db_access;?></a></li>
<li <?php if ($currentStep == 3) echo 'class="active"'; ?>><a href="?step=3<?php echo $languageGetParameter;?>"><i class="fa fa-stethoscope fa-fw"></i> <?php echo $languageObject->menu_db_access_check;?></a></li>
<li <?php if ($currentStep == 4) echo 'class="active"'; ?>><a href="?step=4<?php echo $languageGetParameter;?>"><i class="fa fa-tasks fa-fw"></i> <?php echo $languageObject->menu_db_add;?></a></li>
<li <?php if ($currentStep == 5) echo 'class="active"'; ?>><a href="?step=5<?php echo $languageGetParameter;?>"><i class="fa fa-eye fa-fw"></i> <?php echo $languageObject->menu_db_check;?></a></li>
<li <?php if ($currentStep == 6) echo 'class="active"'; ?>><a href="?step=6<?php echo $languageGetParameter;?>"><i class="fa fa-user fa-fw"></i> <?php echo $languageObject->menu_admin_add;?></a></li>
<li <?php if ($currentStep == 7) echo 'class="active"'; ?>><a href="?step=7<?php echo $languageGetParameter;?>"><i class="fa fa-cogs fa-fw"></i> <?php echo $languageObject->menu_page_data;?></a></li>
<li <?php if ($currentStep == 8) echo 'class="active"'; ?>><a href="?step=8<?php echo $languageGetParameter;?>"><i class="fa fa-upload fa-fw"></i> <?php echo $languageObject->menu_gamedata_add;?></a></li>
<li <?php if ($currentStep == 9) echo 'class="active"'; ?>><a href="?step=9<?php echo $languageGetParameter;?>"><i class="fa fa-smile-o fa-fw"></i> <?php echo $languageObject->menu_finish;?></a></li>
2013-10-19 16:20:33 +02:00
</ul>
2013-12-14 14:40:51 +01:00
</div>
<div class="col-md-9">
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: <?php echo $progressPercent;?>%">
<span class="sr-only"><?php echo $progressPercent;?>% Complete</span>
</div>
2013-10-19 16:20:33 +02:00
</div>
2013-12-14 14:40:51 +01:00
<?php echo $displayToUser;?>
</div>
</div>
<div class="footer">
<p>&copy; <a href="https://easy-wi.com" target="_blank" title="free gameserver, voiceserver, dedicated and virtualserver webinterface easy-wi.com">Easy-WI.com</a> 2011 - <?php echo date('Y'); ?></p>
</div>
</div> <!-- /container -->
<!-- Bootstrap core JavaScript Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js" type="text/javascript"></script>
2013-08-28 22:47:04 +02:00
</body>
2013-12-14 14:40:51 +01:00
</html>