新增托管服务回调功能:账号激活、暂停deng,支持多个托管服务

This commit is contained in:
Jackson Dou 2023-06-01 12:28:11 +08:00
parent 60169378f7
commit a3374a79da
72 changed files with 1881 additions and 1132 deletions

3
nginx.conf Normal file
View file

@ -0,0 +1,3 @@
location /callback {
rewrite ^(.*)$ /callback/index.php?s=$1 last; break;
}

View file

@ -32,12 +32,20 @@ if (empty($AccountInfo)) {
// redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id)); // redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
// } // }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
$client = Client::create($HostingApiConfig); $client = Client::create($AccountApiConfig);
$request = $client->suspend(array( $request = $client->suspend(array(
'username' => $AccountInfo['account_key'], 'username' => $AccountInfo['account_key'],
'reason' => $reason, 'reason' => $reason,

View file

@ -8,13 +8,13 @@ if (empty($account_id)) {
redirect('admin/accounts'); redirect('admin/accounts');
} }
$data = $DB->find('account', '*', array('account_id' => $account_id), null, 1); $AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($data)) { if (empty($AccountInfo)) {
redirect('admin/accounts'); redirect('admin/accounts');
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$filemanager_url = get_filemanager_url($HostingApi['api_cpanel_url'], $data['account_username'], $data['account_password']); $filemanager_url = get_filemanager_url($AccountApi['api_server_ftp_domain'], $AccountInfo['account_username'], $AccountInfo['account_password']);
header("Location: " . $filemanager_url); header("Location: " . $filemanager_url);

View file

@ -14,4 +14,4 @@ if (empty($AccountInfo)) {
redirect('admin/accounts'); redirect('admin/accounts');
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);

View file

@ -32,12 +32,20 @@ if ($AccountInfo['account_status'] != 1) {
redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id)); redirect('admin/accounts', '', array('action' => 'edit', 'account_id' => $account_id));
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
$client = Client::create($HostingApiConfig); $client = Client::create($AccountApiConfig);
$request = $client->password([ $request = $client->password([
'username' => $AccountInfo['account_key'], 'username' => $AccountInfo['account_key'],
'password' => $new_password, 'password' => $new_password,

View file

@ -25,12 +25,20 @@ if ($AccountInfo['account_status'] == 1) {
redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id)); redirect('admin/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
$client = Client::create($HostingApiConfig); $client = Client::create($AccountApiConfig);
$request = $client->unsuspend(array( $request = $client->unsuspend(array(
'username' => $AccountInfo['account_key'], 'username' => $AccountInfo['account_key'],
)); ));

View file

@ -10,13 +10,12 @@ if (empty($account_id)) {
redirect('admin/accounts'); redirect('admin/accounts');
} }
require_once ROOT . '/core/handler/HostingHandler.php';
$PageInfo['title'] = 'View Account (#' . $account_id . ')';
$AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1); $AccountInfo = $DB->find('account', '*', array('account_id' => $account_id), null, 1);
if (empty($AccountInfo)) { if (empty($AccountInfo)) {
setMessage('not found', 'danger'); setMessage('not found', 'danger');
redirect('admin/accounts'); redirect('admin/accounts');
} }
$PageInfo['title'] = 'View Account (#' . $account_id . ')';
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);

View file

@ -1,6 +1,6 @@
<?php <?php
$PageInfo['title'] = $lang->I18N('My Clients'); $PageInfo['title'] = $lang->I18N('Clients List');
$count = $DB->count('clients'); $count = $DB->count('clients');

View file

@ -1,17 +1,13 @@
<?php <?php
require_once ROOT . '/core/handler/HostingHandler.php';
require_once ROOT . '/core/library/userinfo.class.php';
require_once ROOT . '/core/library/countries.php'; require_once ROOT . '/core/library/countries.php';
$client_id = get('client_id'); $client_id = get('client_id');
if (empty($client_id)) { if (empty($client_id)) {
redirect('admin/clients'); redirect('admin/clients');
exit();
} }
$PageInfo['title'] = 'View client (' . $client_id . ')';
$ClientInfo = $DB->find('clients', '*', array('client_id' => $client_id), null, 1); $ClientInfo = $DB->find('clients', '*', array('client_id' => $client_id), null, 1);
@ -24,6 +20,7 @@ foreach ($countries as $country) {
} }
} }
$PageInfo['title'] = 'View client (' . $client_id . ')';
$count_account = $DB->count('account', array('account_client_id' => $ClientInfo['client_id'])); $count_account = $DB->count('account', array('account_client_id' => $ClientInfo['client_id']));
$count_ssl = $DB->count('ssl', array('ssl_client_id' => $ClientInfo['client_id'])); $count_ssl = $DB->count('ssl', array('ssl_client_id' => $ClientInfo['client_id']));
$count_tickets = $DB->count('tickets', array('ticket_client_id' => $ClientInfo['client_id'])); $count_tickets = $DB->count('tickets', array('ticket_client_id' => $ClientInfo['client_id']));

View file

@ -3,16 +3,6 @@
if (isset($_POST['submit'])) { if (isset($_POST['submit'])) {
require '../../application.php'; require '../../application.php';
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting');
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting');
}
if (!post('api_type')) { if (!post('api_type')) {
setMessage('need field: api_type', 'danger'); setMessage('need field: api_type', 'danger');
redirect('admin/hosting'); redirect('admin/hosting');
@ -23,6 +13,21 @@ if (isset($_POST['submit'])) {
redirect('admin/hosting'); redirect('admin/hosting');
} }
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting');
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting');
}
if (!post('api_server_domain')) {
setMessage('need field: api_server_domain', 'danger');
redirect('admin/hosting');
}
if (!post('api_cpanel_url')) { if (!post('api_cpanel_url')) {
setMessage('need field: api_cpanel_url', 'danger'); setMessage('need field: api_cpanel_url', 'danger');
redirect('admin/hosting'); redirect('admin/hosting');
@ -33,6 +38,16 @@ if (isset($_POST['submit'])) {
redirect('admin/hosting'); redirect('admin/hosting');
} }
if (!post('api_server_ftp_domain')) {
setMessage('need field: api_server_ftp_domain', 'danger');
redirect('admin/hosting');
}
if (!post('api_server_sql_domain')) {
setMessage('need field: api_server_sql_domain', 'danger');
redirect('admin/hosting');
}
if (!post('api_ns_1')) { if (!post('api_ns_1')) {
setMessage('need field: api_ns_1', 'danger'); setMessage('need field: api_ns_1', 'danger');
redirect('admin/hosting'); redirect('admin/hosting');
@ -59,7 +74,10 @@ if (isset($_POST['submit'])) {
'api_password' => post('api_password'), 'api_password' => post('api_password'),
'api_type' => post('api_type'), 'api_type' => post('api_type'),
'api_key' => post('api_key'), 'api_key' => post('api_key'),
'api_server_domain' => post('api_server_domain'),
'api_cpanel_url' => post('api_cpanel_url'), 'api_cpanel_url' => post('api_cpanel_url'),
'api_server_ftp_domain' => post('api_server_ftp_domain'),
'api_server_sql_domain' => post('api_server_sql_domain'),
'api_server_ip' => post('api_server_ip'), 'api_server_ip' => post('api_server_ip'),
'api_ns_1' => post('api_ns_1'), 'api_ns_1' => post('api_ns_1'),
'api_ns_2' => post('api_ns_2'), 'api_ns_2' => post('api_ns_2'),

View file

@ -7,12 +7,81 @@ if (isset($_POST['submit'])) {
setMessage('need field: api_id', 'danger'); setMessage('need field: api_id', 'danger');
redirect('admin/hosting'); redirect('admin/hosting');
} }
if (!post('api_type')) {
setMessage('need field: api_type', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_key')) {
setMessage('need field: api_key', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_username')) {
setMessage('need field: api_username', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_password')) {
setMessage('need field: api_password', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_domain')) {
setMessage('need field: api_server_domain', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_cpanel_url')) {
setMessage('need field: api_cpanel_url', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_ip')) {
setMessage('need field: api_server_ip', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_ftp_domain')) {
setMessage('need field: api_server_ftp_domain', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_server_sql_domain')) {
setMessage('need field: api_server_sql_domain', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_ns_1')) {
setMessage('need field: api_ns_1', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_ns_2')) {
setMessage('need field: api_ns_2', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_package')) {
setMessage('need field: api_package', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
if (!post('api_callback_token')) {
setMessage('need field: api_callback_token', 'danger');
redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
}
$data = array( $data = array(
'api_username' => post('api_username'), 'api_username' => post('api_username'),
'api_password' => post('api_password'), 'api_password' => post('api_password'),
'api_type' => post('api_type'), 'api_type' => post('api_type'),
'api_key' => post('api_key'), 'api_key' => post('api_key'),
'api_server_domain' => post('api_server_domain'),
'api_cpanel_url' => post('api_cpanel_url'), 'api_cpanel_url' => post('api_cpanel_url'),
'api_server_ftp_domain' => post('api_server_ftp_domain'),
'api_server_sql_domain' => post('api_server_sql_domain'),
'api_server_ip' => post('api_server_ip'), 'api_server_ip' => post('api_server_ip'),
'api_ns_1' => post('api_ns_1'), 'api_ns_1' => post('api_ns_1'),
'api_ns_2' => post('api_ns_2'), 'api_ns_2' => post('api_ns_2'),
@ -28,7 +97,7 @@ if (isset($_POST['submit'])) {
setMessage("Something went's wrong !", 'danger'); setMessage("Something went's wrong !", 'danger');
} }
redirect('admin/hosting'); redirect('admin/hosting', '', ['action' => 'edit', 'id' => $api_id]);
} else { } else {
if (!defined('IN_CRONLITE')) { if (!defined('IN_CRONLITE')) {
exit('Access Denied'); exit('Access Denied');

View file

@ -5,10 +5,16 @@ if (!defined('IN_CRONLITE')) {
} }
$api_id = get('id'); $api_id = get('id');
$api_key = get('api_key');
if ($api_id > 0) { if ($api_id > 0) {
// $PageInfo = ['title' => 'View Hosting Provider #' . $api_id, 'rel' => ''];
$data = $DB->find('account_api', '*', array('api_id' => $api_id), null, 1); $data = $DB->find('account_api', '*', array('api_id' => $api_id), null, 1);
$api_callback_url = "{$site_url}/callback/{$data['api_key']}/{$data['api_callback_token']}";
$PageInfo = ['title' => 'View Hosting Provider', 'rel' => ''];
} else if (!empty($api_key)) {
$data = $DB->find('account_api', '*', array('api_key' => $api_key), null, 1);
$api_callback_url = "{$site_url}/callback/{$data['api_key']}/{$data['api_callback_token']}";
$PageInfo = ['title' => 'View Hosting Provider', 'rel' => ''];
} else { } else {
$PageInfo = ['title' => 'Unathorized Access', 'rel' => '']; $PageInfo = ['title' => 'Unathorized Access', 'rel' => ''];
$data = null; $data = null;

View file

@ -19,7 +19,7 @@ if (isset($_POST['submit'])) {
} }
redirect('admin/news'); redirect('admin/news');
} else { } else {
$PageInfo['title'] = 'Add News'; $PageInfo['title'] = $lang->I18N('News Add');
$status_types = array( $status_types = array(
"关闭", "关闭",
"打开", "打开",

View file

@ -45,3 +45,5 @@ if ($id > 0) {
$news = $DB->find('news', '*', array('news_id' => $id), null, 1); $news = $DB->find('news', '*', array('news_id' => $id), null, 1);
} }
$load_editor = 1; $load_editor = 1;
$PageInfo['title'] = $lang->I18N('News Edit');

View file

@ -12,3 +12,5 @@ $status_types = array(
"关闭", "关闭",
"打开", "打开",
); );
$PageInfo['title'] = $lang->I18N('News List');

View file

@ -20,3 +20,5 @@ $data = null;
if ($id > 0) { if ($id > 0) {
$data = $DB->find('news', '*', array('news_id' => $id), null, 1); $data = $DB->find('news', '*', array('news_id' => $id), null, 1);
} }
$PageInfo['title'] = $lang->I18N('News Details');

View file

@ -1,5 +1,3 @@
<?php <?php
$PageInfo['title'] = $lang->I18N('My Profile'); $PageInfo['title'] = $lang->I18N('My Profile');
require_once ROOT . '/core/library/userinfo.class.php';

View file

@ -1,7 +1,5 @@
<?php <?php
// require_once ROOT . '/library/userinfo.class.php';
$Statuses = array( $Statuses = array(
array('name' => 'Live', 'value' => '1'), array('name' => 'Live', 'value' => '1'),
array('name' => 'Maintaince', 'value' => '0'), array('name' => 'Maintaince', 'value' => '0'),

View file

@ -8,8 +8,6 @@ if (!in_array($action, array('list', 'add', 'edit', 'view'))) {
$action = 'list'; $action = 'list';
} }
$PageInfo['title'] = 'News ' . ucfirst($action);
require __DIR__ . '/controllers/news/' . $action . '.php'; require __DIR__ . '/controllers/news/' . $action . '.php';
require __DIR__ . '/views/common/header.php'; require __DIR__ . '/views/common/header.php';
require __DIR__ . '/views/common/navbar.php'; require __DIR__ . '/views/common/navbar.php';

View file

@ -1,7 +1,6 @@
<?php <?php
require_once __DIR__ . '/application.php'; require_once __DIR__ . '/application.php';
require_once ROOT . '/core/library/userinfo.class.php';
require_once ROOT . '/core/library/tickets.php'; require_once ROOT . '/core/library/tickets.php';
$action = get('action', 'list'); $action = get('action', 'list');

View file

@ -13,6 +13,8 @@
<table class="table table-stripped table-bordered table-hover"> <table class="table table-stripped table-bordered table-hover">
<thead> <thead>
<th>ID</th> <th>ID</th>
<th><?php echo $lang->I18N('Clients'); ?></th>
<th><?php echo $lang->I18N('Provider'); ?></th>
<th><?php echo $lang->I18N('Username'); ?></th> <th><?php echo $lang->I18N('Username'); ?></th>
<th><?php echo $lang->I18N('Domain'); ?></th> <th><?php echo $lang->I18N('Domain'); ?></th>
<th><?php echo $lang->I18N('Deploy Date'); ?></th> <th><?php echo $lang->I18N('Deploy Date'); ?></th>
@ -23,7 +25,13 @@
<?php if ($count > 0): ?> <?php if ($count > 0): ?>
<?php foreach ($rows as $row): ?> <?php foreach ($rows as $row): ?>
<tr> <tr>
<td># <?php $row['account_id'];?></td> <td><?php echo $row['account_id'];?></td>
<td><?php echo $row['account_client_id']; ?></td>
<td>
<a href="hosting.php?action=view&api_key=<?php echo $row['account_api_key']; ?>">
<?php echo $row['account_api_key']; ?>
</a>
</td>
<td><?php echo $row['account_username']; ?></td> <td><?php echo $row['account_username']; ?></td>
<td><?php echo $row['account_domain']; ?></td> <td><?php echo $row['account_domain']; ?></td>
<td><?php echo $row['account_date']; ?></td> <td><?php echo $row['account_date']; ?></td>

View file

@ -7,7 +7,7 @@
<hr /> <hr />
<div class="card-body"> <div class="card-body">
<p>Now you are going to be redirected to the control panel. It can take upto 5 seconds based on your internet connecion speed.</p> <p>Now you are going to be redirected to the control panel. It can take upto 5 seconds based on your internet connecion speed.</p>
<form name="login" action="https://<?php echo $HostingApi['api_cpanel_url'] ?>/login.php" id="account_ogin" method="post"> <form name="login" action="https://<?php echo $AccountApi['api_cpanel_url'] ?>/login.php" id="account_ogin" method="post">
<input type="hidden" name="uname" value="<?php echo $AccountInfo['account_username']; ?>"> <input type="hidden" name="uname" value="<?php echo $AccountInfo['account_username']; ?>">
<input type="hidden" name="passwd" value="<?php echo $AccountInfo['account_password']; ?>"> <input type="hidden" name="passwd" value="<?php echo $AccountInfo['account_password']; ?>">
<input type="hidden" name="language" value="<?php echo $lang->get_language_value(); ?>"> <input type="hidden" name="language" value="<?php echo $lang->get_language_value(); ?>">

View file

@ -35,13 +35,13 @@
<hr /> <hr />
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="m-5"> <div class="m-5">
<b>Cpanel Username:</b> <b>Control Panel Username:</b>
<span><?php echo $AccountInfo['account_username']; ?></span> <span><?php echo $AccountInfo['account_username']; ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>Cpanel Password:</b> <b>Control Panel Password:</b>
<span><kbd><?php echo $AccountInfo['account_password']; ?></kbd></span> <span><kbd><?php echo $AccountInfo['account_password']; ?></kbd></span>
</div> </div>
</div> </div>
@ -53,8 +53,8 @@
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>Cpanel Domain:</b> <b>Control Panel Domain:</b>
<span><?php echo $HostingApi['api_cpanel_url']; ?></span> <span><?php echo $AccountApi['api_cpanel_url']; ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 col-md-6"> <div class="col-md-4 col-sm-6 col-md-6">
@ -80,19 +80,19 @@
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>Server IP:</b> <b>Server IP:</b>
<span><?php echo $HostingApi['api_server_ip']; ?></span> <span><?php echo $AccountApi['api_server_ip']; ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>Your IP:</b> <b>Your IP:</b>
<span><?php echo UserInfo::get_ip() ?></span> <span><?php echo get_client_ip(); ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>FTP Hostname:</b> <b>FTP Hostname:</b>
<span><?php echo str_replace('cpanel', 'ftp', $HostingApi['api_cpanel_url']) ?></span> <span><?php echo $AccountApi['api_server_ftp_domain']; ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
@ -104,7 +104,7 @@
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>MySQL Hostname:</b> <b>MySQL Hostname:</b>
<span><?php echo str_replace('cpanel', 'sqlxxx', $HostingApi['api_cpanel_url']) ?></span> <span><?php echo $AccountInfo['account_sql'] . '.' . $AccountApi['api_server_sql_domain']; ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
@ -116,13 +116,13 @@
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>Nameserver 1:</b> <b>Nameserver 1:</b>
<span><?php echo $HostingApi['api_ns_1']; ?></span> <span><?php echo $AccountApi['api_ns_1']; ?></span>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6"> <div class="col-md-4 col-sm-6">
<div class="d-flex justify-content-between align-items-center m-5"> <div class="d-flex justify-content-between align-items-center m-5">
<b>Nameserver 2:</b> <b>Nameserver 2:</b>
<span><?php echo $HostingApi['api_ns_2']; ?></span> <span><?php echo $AccountApi['api_ns_2']; ?></span>
</div> </div>
</div> </div>
</div> </div>

View file

@ -2,7 +2,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="card m-20 p-20"> <div class="card m-20 p-20">
<div class="card-header d-flex justify-content-between align-items-center"> <div class="card-header d-flex justify-content-between align-items-center">
<h3 class="m-0"><?php echo $lang->I18N('My Clients'); ?></h3> <h3 class="m-0"><?php echo $lang->I18N('Clients List'); ?></h3>
<a href="index.php" class="btn btn-danger btn-sm pull-right"><i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?></a> <a href="index.php" class="btn btn-danger btn-sm pull-right"><i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?></a>
</div> </div>
<hr /> <hr />
@ -10,19 +10,21 @@
<table class="table table-stripped table-bordered table-hover"> <table class="table table-stripped table-bordered table-hover">
<thead> <thead>
<th>ID</th> <th>ID</th>
<th>Name</th> <th><?php echo $lang->I18N('Name'); ?></th>
<th>Email</th> <th><?php echo $lang->I18N('Email'); ?></th>
<th>Date</th> <th><?php echo $lang->I18N('Phone'); ?></th>
<th>Status</th> <th><?php echo $lang->I18N('Date'); ?></th>
<th>Action</th> <th><?php echo $lang->I18N('Status'); ?></th>
<th><?php echo $lang->I18N('Action'); ?></th>
</thead> </thead>
<tbody> <tbody>
<?php if ($count > 0): ?> <?php if ($count > 0): ?>
<?php foreach ($rows as $value): ?> <?php foreach ($rows as $value): ?>
<tr> <tr>
<td># <?php echo $value['client_id']; ?></td> <td><?php echo $value['client_id']; ?></td>
<td><?php echo $value['client_fname'] . " " . $value['client_lname']; ?></td> <td><?php echo $value['client_fname'] . " " . $value['client_lname']; ?></td>
<td><?php echo $value['client_email']; ?></td> <td><?php echo $value['client_email']; ?></td>
<td><?php echo $value['client_phone']; ?></td>
<td><?php echo $value['client_date']; ?></td> <td><?php echo $value['client_date']; ?></td>
<td><?php <td><?php
if ($value['client_status'] == '0') { if ($value['client_status'] == '0') {

View file

@ -23,11 +23,11 @@ $avatar_path = $AdminInfo['admin_email'] ? md5($AdminInfo['admin_email']) : 'def
</a> </a>
<a href="clients.php" class="sidebar-link sidebar-link-with-icon"> <a href="clients.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-users" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-users" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Clients'); ?> <?php echo $lang->I18N('Clients List'); ?>
</a> </a>
<a href="tickets.php" class="sidebar-link sidebar-link-with-icon"> <a href="tickets.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-ticket-alt" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-ticket-alt" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Tickets'); ?> <?php echo $lang->I18N('Tickets List'); ?>
</a> </a>
<a href="sslcert.php" class="sidebar-link sidebar-link-with-icon"> <a href="sslcert.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-shield-alt" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-shield-alt" aria-hidden="true"></i></span>
@ -43,7 +43,7 @@ $avatar_path = $AdminInfo['admin_email'] ? md5($AdminInfo['admin_email']) : 'def
</a> </a>
<a href="news.php" class="sidebar-link sidebar-link-with-icon"> <a href="news.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-newspaper" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-newspaper" aria-hidden="true"></i></span>
<?php echo $lang->I18N('News'); ?> <?php echo $lang->I18N('News List'); ?>
</a> </a>
<a href="hosting.php" class="sidebar-link sidebar-link-with-icon"> <a href="hosting.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-server" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-server" aria-hidden="true"></i></span>

View file

@ -12,6 +12,20 @@
<hr /> <hr />
<form class="card-body" action="controllers/hosting/add.php" method="post"> <form class="card-body" action="controllers/hosting/add.php" method="post">
<div class="row"> <div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Provider Type'); ?></label>
<select name="api_type" class="form-control" required>
<option value="myownfreehost" selected>MyOwnFreeHost</option>
</select>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" class="form-control" required>
</div>
</div>
<div class="col-md-12"> <div class="col-md-12">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">MOFH API Username</label> <label class="form-label required">MOFH API Username</label>
@ -26,26 +40,8 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">Hosting Type</label> <label class="form-label required">Server domain</label>
<input type="text" name="api_type" class="form-control" required> <input type="text" name="api_server_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">cPanel URL</label>
<input type="text" name="api_cpanel_url" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" class="form-control" required>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -56,8 +52,26 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label> <label class="form-label required">FTP Server</label>
<input type="text" name="api_callback_token" class="form-control" maxlength="32" required> <input type="text" name="api_server_ftp_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">SQL Server</label>
<input type="text" name="api_server_sql_domain" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Control Panel URL</label>
<input type="text" name="api_cpanel_url" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" class="form-control" required>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -72,11 +86,23 @@
<input type="text" name="api_ns_2" class="form-control" required> <input type="text" name="api_ns_2" class="form-control" required>
</div> </div>
</div> </div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label>
<input type="text" name="api_callback_token" class="form-control" maxlength="32" required>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label">API Callback URL</label>
<input type="text" class="form-control" value="<?php echo $site_url ?>/callback/[Hosting Key]/[API Callback Token]" readonly>
</div>
</div>
</div> </div>
<hr /> <hr />
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="mb-10 px-10"> <div class="my-10 px-10">
<button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button> <button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button>
</div> </div>
</div> </div>

View file

@ -13,6 +13,18 @@
<form class="card-body" action="controllers/hosting/edit.php" method="post"> <form class="card-body" action="controllers/hosting/edit.php" method="post">
<input type="hidden" name="api_id" value="<?php echo $data['api_id']; ?>" style="display:none;"> <input type="hidden" name="api_id" value="<?php echo $data['api_id']; ?>" style="display:none;">
<div class="row"> <div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required"><?php echo $lang->I18N('Provider Type'); ?></label>
<input type="text" name="api_type" value="<?php echo $data['api_type']; ?>" class="form-control" required readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" value="<?php echo $data['api_key']; ?>" class="form-control" required readonly>
</div>
</div>
<div class="col-md-12"> <div class="col-md-12">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">MOFH API Username</label> <label class="form-label required">MOFH API Username</label>
@ -27,26 +39,8 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">Hosting Type</label> <label class="form-label required">Server domain</label>
<input type="text" name="api_type" value="<?php echo $data['api_type']; ?>" class="form-control" required> <input type="text" name="api_server_domain" value="<?php echo $data['api_server_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Key</label>
<input type="text" name="api_key" value="<?php echo $data['api_key']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">cPanel URL</label>
<input type="text" name="api_cpanel_url" value="<?php echo $data['api_cpanel_url']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" value="<?php echo $data['api_package']; ?>" class="form-control" required>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -57,8 +51,26 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label> <label class="form-label required">FTP Server</label>
<input type="text" name="api_callback_token" value="<?php echo $data['api_callback_token']; ?>" class="form-control" maxlength="32" required> <input type="text" name="api_server_ftp_domain" value="<?php echo $data['api_server_ftp_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">SQL Server</label>
<input type="text" name="api_server_sql_domain" value="<?php echo $data['api_server_sql_domain']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Control Panel URL</label>
<input type="text" name="api_cpanel_url" value="<?php echo $data['api_cpanel_url']; ?>" class="form-control" required>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label>
<input type="text" name="api_package" value="<?php echo $data['api_package']; ?>" class="form-control" required>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -73,11 +85,17 @@
<input type="text" name="api_ns_2" value="<?php echo $data['api_ns_2']; ?>" class="form-control" required> <input type="text" name="api_ns_2" value="<?php echo $data['api_ns_2']; ?>" class="form-control" required>
</div> </div>
</div> </div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label required">API Callback Token</label>
<input type="text" name="api_callback_token" value="<?php echo $data['api_callback_token']; ?>" class="form-control" maxlength="32" required>
</div>
</div>
</div> </div>
<hr /> <hr />
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="mb-10 px-10"> <div class="my-10 px-10">
<button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button> <button name="submit" class="btn btn-primary"><?php echo $lang->I18N('Save'); ?></button>
</div> </div>
</div> </div>

View file

@ -13,7 +13,7 @@
<thead> <thead>
<th>Key</th> <th>Key</th>
<th>Type</th> <th>Type</th>
<th>Cpanel URL</th> <th>Panel URL</th>
<th>Package</th> <th>Package</th>
<th>Action</th> <th>Action</th>
</thead> </thead>

View file

@ -18,6 +18,18 @@
<hr /> <hr />
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label"><?php echo $lang->I18N('Provider Type'); ?></label>
<input type="text" name="api_type" value="<?php echo $data['api_type']; ?>" class="form-control" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">Hosting Key</label>
<input type="text" name="api_key" value="<?php echo $data['api_key']; ?>" class="form-control" readonly>
</div>
</div>
<div class="col-md-12"> <div class="col-md-12">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label">MOFH API Username</label> <label class="form-label">MOFH API Username</label>
@ -32,14 +44,26 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label">Hosting Type</label> <label class="form-label">Hosting Server</label>
<input type="text" name="api_type" value="<?php echo $data['api_type']; ?>" class="form-control" readonly> <input type="text" name="api_server_domain" value="<?php echo $data['api_server_domain']; ?>" class="form-control" readonly>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label">Hosting Key</label> <label class="form-label">Server IP</label>
<input type="text" name="api_key" value="<?php echo $data['api_key']; ?>" class="form-control" readonly> <input type="text" name="api_server_ip" value="<?php echo $data['api_server_ip']; ?>" class="form-control" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">FTP Server</label>
<input type="text" name="api_server_ftp_domain" value="<?php echo $data['api_server_ftp_domain']; ?>" class="form-control" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">SQL Server</label>
<input type="text" name="api_server_sql_domain" value="<?php echo $data['api_server_sql_domain']; ?>" class="form-control" readonly>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -54,18 +78,6 @@
<input type="text" name="api_package" value="<?php echo $data['api_package']; ?>" class="form-control" readonly> <input type="text" name="api_package" value="<?php echo $data['api_package']; ?>" class="form-control" readonly>
</div> </div>
</div> </div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">Server IP</label>
<input type="text" name="api_server_ip" value="<?php echo $data['api_server_ip']; ?>" class="form-control" readonly>
</div>
</div>
<div class="col-md-6">
<div class="mb-10 px-10">
<label class="form-label">API Callback Token</label>
<input type="text" name="api_callback_token" value="<?php echo $data['api_callback_token']; ?>" class="form-control" maxlength="32" readonly>
</div>
</div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label">Nameserver 1</label> <label class="form-label">Nameserver 1</label>
@ -78,11 +90,23 @@
<input type="text" name="api_ns_2" value="<?php echo $data['api_ns_2']; ?>" class="form-control" readonly> <input type="text" name="api_ns_2" value="<?php echo $data['api_ns_2']; ?>" class="form-control" readonly>
</div> </div>
</div> </div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label">API Callback Token</label>
<input type="text" name="api_callback_token" value="<?php echo $data['api_callback_token']; ?>" class="form-control" maxlength="32" readonly>
</div>
</div>
<div class="col-md-12">
<div class="mb-10 px-10">
<label class="form-label">API Callback URL</label>
<input type="text" class="form-control" value="<?php echo $api_callback_url; ?>" readonly>
</div>
</div>
</div> </div>
<hr /> <hr />
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="mb-10 px-10"> <div class="mb-20 px-10">
<a href="<?php echo setURL('admin/hosting', '', array('action' => 'edit', 'id' => $data['api_id'])); ?>" class="btn btn-sm btn-secondary mx-5 btn-rounded"><i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?></a> <a href="<?php echo setURL('admin/hosting', '', array('action' => 'edit', 'id' => $data['api_id'])); ?>" class="btn btn-sm btn-secondary mx-5 btn-rounded"><i class="fa fa-edit"></i> <?php echo $lang->I18N('edit'); ?></a>
</div> </div>
</div> </div>

View file

@ -8,7 +8,7 @@ if (!defined('IN_CRONLITE')) {
<div class="container-fluid"> <div class="container-fluid">
<div class="card py-0"> <div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15"> <div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0">Add News</h5> <h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<a href="news.php" class="btn btn-sm btn-danger"><i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?></a> <a href="news.php" class="btn btn-sm btn-danger"><i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?></a>
</div> </div>
<hr> <hr>

View file

@ -8,7 +8,7 @@ if (!defined('IN_CRONLITE')) {
<div class="container-fluid"> <div class="container-fluid">
<div class="card py-0"> <div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15"> <div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0">Edit News</h5> <h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<div> <div>
<a href="news.php" class="btn btn-sm btn-danger"> <a href="news.php" class="btn btn-sm btn-danger">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?> <i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>

View file

@ -8,7 +8,7 @@ if (!defined('IN_CRONLITE')) {
<div class="container-fluid"> <div class="container-fluid">
<div class="card py-0"> <div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15"> <div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0"><?php echo $lang->I18N('news'); ?></h5> <h5 class="m-0"><?php echo $PageInfo['title']; ?></h5>
<a href="news.php?action=add" class="btn text-white btn-success btn-sm"> <a href="news.php?action=add" class="btn text-white btn-success btn-sm">
<i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?> <i class="fa fa-plus"></i> <?php echo $lang->I18N('add'); ?>
</a> </a>

View file

@ -10,7 +10,7 @@ if (!defined('IN_CRONLITE')) {
<div class="container-fluid"> <div class="container-fluid">
<div class="card py-0"> <div class="card py-0">
<div class="d-flex justify-content-between align-items-center pt-15"> <div class="d-flex justify-content-between align-items-center pt-15">
<h5 class="m-0">News Details #<?php echo $id; ?></h5> <h5 class="m-0"><?php echo $PageInfo['title']; ?> #<?php echo $id; ?></h5>
<div> <div>
<a href="news.php" class="btn btn-sm btn-danger"> <a href="news.php" class="btn btn-sm btn-danger">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?> <i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>

View file

@ -19,19 +19,19 @@
<h6 class="mb-0"><b><?php echo $lang->I18N('Email Address'); ?>:</b> <?php echo $AdminInfo['admin_email']; ?></h6> <h6 class="mb-0"><b><?php echo $lang->I18N('Email Address'); ?>:</b> <?php echo $AdminInfo['admin_email']; ?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b><?php echo $lang->I18N('IP Address'); ?>:</b> <?php echo UserInfo::get_ip(); ?></h6> <h6 class="mb-0"><b><?php echo $lang->I18N('IP Address'); ?>:</b> <?php echo get_client_ip(); ?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Shared IP:</b> <?php echo gethostbyname($_SERVER['HTTP_HOST']); ?></h6> <h6 class="mb-0"><b>Shared IP:</b> <?php echo gethostbyname($_SERVER['HTTP_HOST']); ?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Device Type:</b> <?php echo UserInfo::get_device(); ?></h6> <h6 class="mb-0"><b>Device Type:</b> <?php echo get_client_device(); ?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Device OS:</b> <?php echo UserInfo::get_os(); ?></h6> <h6 class="mb-0"><b>Device OS:</b> <?php echo get_client_os(); ?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Web Browser:</b> <?php echo UserInfo::get_browser(); ?></h6> <h6 class="mb-0"><b>Web Browser:</b> <?php echo get_client_browser(); ?></h6>
</div> </div>
<div class="col-md-12"><hr></div> <div class="col-md-12"><hr></div>
<div class="col-md-6"> <div class="col-md-6">

View file

@ -3,7 +3,7 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="card"> <div class="card">
<div class="card-header d-flex justify-content-between align-items-center"> <div class="card-header d-flex justify-content-between align-items-center">
<h3 class="m-0"><?php echo $lang->I18N('My Tickets'); ?></h3> <h3 class="m-0"><?php echo $lang->I18N('Tickets List'); ?></h3>
<a href="index.php" class="btn text-white btn-danger btn-sm"> <a href="index.php" class="btn text-white btn-danger btn-sm">
<i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?> <i class="fa fa-backward"></i> <?php echo $lang->I18N('Return'); ?>
</a> </a>

8
src/callback/.htaccess Normal file
View file

@ -0,0 +1,8 @@
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

View file

@ -1,34 +1,36 @@
<?php <?php
header("X-Powered-By: UIISC");
header("Server: UIISC");
header("Content-Type: text/html; charset=UTF-8");
if (!isset($_GET['token']) || empty($_GET['token'])) {
header("status: 401");
exit('401 Unauthorized');
}
if (!isset($_GET['key']) || empty($_GET['key'])) {
header("status: 401");
exit('401 Unauthorized');
}
require_once __DIR__ . '/../core/application.php'; require_once __DIR__ . '/../core/application.php';
$path_array = explode('/', trim($path_info, '/'));
$token = get('token'); if (!$path_array || count($path_array) < 2) {
$key = get('key'); exit('401 Unauthorized');
$HostingApi = $DB->find('account_api', '*', array('api_key' => $key), null, 1);
if (!$HostingApi) {
header("status: 404");
exit('404 Not Found');
} }
if ($token != $HostingApi['api_callback_token']) { if (!isset($path_array[0]) || empty($path_array[0])) {
header("status: 404"); header("status: 401");
exit('404 Not Found'); exit('401 Unauthorized');
} }
require_once __DIR__ . '/' . $key . '/app.php'; if (!isset($path_array[1]) || empty($path_array[1])) {
header("status: 401");
exit('401 Unauthorized');
}
$api_key = $path_array[0];
$token = $path_array[1];
$AccountApi = $DB->find('account_api', '*', array('api_key' => $api_key), null, 1);
if (!$AccountApi) {
exit('Not Found');
}
if ($token != $AccountApi['api_callback_token']) {
exit('Unauthorized');
}
file_put_contents('./log.txt', json_encode($_POST), FILE_APPEND);
file_put_contents('./log.txt', "\n", FILE_APPEND);
require_once __DIR__ . '/' . $AccountApi['api_type'] . '/app.php';

View file

@ -12,49 +12,89 @@ if (!$username) {
exit('need: username'); exit('need: username');
} }
$callback_log = array(
'callback_date' => date('Y-m-d H:i:s'),
'callback_username' => $username,
'callback_action' => $status,
'callback_comments' => post('comments'),
'callback_client_id' => 0,
'callback_raw' => json_encode(post())
);
// 账号信息 // 账号信息
$AccountInfo = $DB->find('account', '*', array('account_username' => $username, 'account_api_key' => $HostingApi['api_key'])); $AccountInfo = $DB->find('account', '*', array('account_username' => $username));
if ($AccountInfo) { if ($AccountInfo) {
// 账号存在 激活账号 // 更新账号信息
$res = $DB->update('account', array('account_sql' => $status, 'account_status' => '1'), array('account_id' => $AccountInfo['account_id'])); $res = $DB->update('account', array('account_status' => '1'), array('account_id' => $AccountInfo['account_id']));
// 查找客户信息 // 查找客户信息
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id'])); $ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']));
if ($ClientInfo) { if ($ClientInfo) {
$callback_log['callback_client_id'] = $AccountInfo['account_client_id'];
$EmailTo = $ClientInfo['client_email']; $EmailTo = $ClientInfo['client_email'];
$EmailSubject = 'New Hosting Account'; $EmailToNickname = $ClientInfo['client_fname'];
$EmailToPeople = $ClientInfo['client_fname'];
} else { } else {
$EmailTo = $SiteConfig['site_email']; $EmailTo = $SiteConfig['site_email'];
$EmailToPeople = 'Administrator'; $EmailToNickname = 'Administrator';
} }
$EmailContent = '<p>You have successfully created a new hosting account the details are given bellow.</p>'; $EmailContent = '<p>You have successfully created a new hosting account the details are given bellow.</p>';
} else { } else {
// TODO: 账号不存在,入库 // 账号不存在,入库
$AccountInfo = array(
'account_username' => $username,
'account_password' => '********',
'account_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'account_api_key' => $api_key,
'account_domain' => '***.' . $AccountApi['api_server_domain'],
'account_status' => '1',
'account_date' => $callback_log['callback_date'],
'account_client_id' => 0,
'account_sql' => 'sql***'
);
$DB->insert('account', $AccountInfo);
$EmailTo = $SiteConfig['site_email']; $EmailTo = $SiteConfig['site_email'];
$EmailToPeople = 'Administrator'; $EmailToNickname = 'Administrator';
$EmailContent = '<p>Congratulations !</p><p>You have successfully received a new hosting account, the details are given bellow.</p>'; $EmailContent = '<p>Congratulations !</p><p>You have successfully received a new hosting account, the details are given bellow.</p>';
} }
// 记录日志
$DB->insert('account_callback', $callback_log);
$EmailDescription = ' $EmailDescription = '
<b>cPanel Username: </b><span>' . $AccountInfo['account_username'] . '</span><br /> <p>Account domain : ' . $AccountInfo['account_domain'] . '<br />
<b>cPanel Password: </b><span>' . $AccountInfo['account_password'] . '</span><br /> Account date : ' . $AccountInfo['account_date'] . '<br />
<b>cPanel URL : </b><span>' . $HostingApi['api_cpanel_url'] . '</span><br /><br /> Server IP : ' . $AccountApi['api_server_ip'] . '<br />
<b>Main Domain : </b><span>' . $AccountInfo['account_domain'] . '</span><br /> Hosting package: ' . $AccountApi['api_package'] . '<br /></p>
<b>Account Date : </b><span>' . $AccountInfo['account_date'] . '</span><br /> <p>Control Panel username : ' . $AccountInfo['account_username'] . '<br />
<b>Server IP : </b><span>' . $HostingApi['api_server_ip'] . '</span><br /> Control Panel password : ' . $AccountInfo['account_password'] . '<br />
<b>Hosting Package: </b><span>' . $HostingApi['api_package'] . '</span><br /><br /> Control Panel URL : ' . $AccountApi['api_cpanel_url'] . '<br /></p>
<b>FTP Username : </b><span>' . $AccountInfo['account_username'] . '</span><br />
<b>FTP Password : </b><span>' . $AccountInfo['account_password'] . '</span><br /> <p>SQL hostname : ***.' . $AccountApi['api_server_sql_domain'] . '<br />
<b>FTP Hostname : </b><span>ftpupload.net</span><br /> SQL username : ' . $AccountInfo['account_username'] . '<br />
<b>FTP Port : </b><span>21</span><br /><br /> SQL password : ' . $AccountInfo['account_password'] . '<br />
<b>MySQL Username : </b><span>' . $AccountInfo['account_username'] . '</span><br /> SQL port : 3306</p>
<b>MySQL Password : </b><span>' . $AccountInfo['account_password'] . '</span><br /> <p>FTP username : ' . $AccountInfo['account_username'] . '<br />
<b>MySQL Hostname : </b><span>' . str_replace('cpanel', $AccountInfo['account_sql'], $HostingApi['api_cpanel_url']) . '</span><br /> FTP password : ' . $AccountInfo['account_password'] . '<br />
<b>MySQL Port : </b><span>3306</span><br /><br /> FTP hostname : ' . $AccountApi['api_server_ftp_domain'] . '<br />
<b>Nameserver 1 : </b><span>' . $HostingApi['api_ns_1'] . '</span><br /> FTP port : 21<br /></p>
<b>Nameserver 2 : </b><span>' . $HostingApi['api_ns_2'] . '</span>'; <p>Nameserver 1 : ' . $AccountApi['api_ns_1'] . '<br />
$email_body = email_build_body('New Hosting Account', $EmailToPeople, $EmailContent, $EmailDescription); Nameserver 2 : ' . $AccountApi['api_ns_2'] . '</p>';
$email_body = email_build_body('New Hosting Account', $EmailToNickname, $EmailContent, $EmailDescription);
// print($email_body);
$emails_log = array(
'email_client_id' => $AccountInfo['account_client_id'],
'email_date' => date('Y-m-d H:i:s'),
'email_to' => $EmailTo,
'email_subject' => 'New Hosting Account',
'email_body' => $email_body,
'email_read' => 0
);
// print_r($emails_log);
$DB->insert('emails', $emails_log);
send_mail(array( send_mail(array(
'to' => $EmailTo, 'to' => $EmailTo,

View file

@ -12,10 +12,27 @@ if (!isset($_POST['comments'])) {
$status = post('status'); $status = post('status');
if (substr($status, 0, 3) == 'sql') { if ($status == 'ACTIVATED') {
// 帐户激活,新注册
require_once __DIR__ . '/activate.php'; require_once __DIR__ . '/activate.php';
} elseif ($status == 'SUSPENDED') { } elseif ($status == 'SUSPENDED') {
// 帐户暂停
require_once __DIR__ . '/suspend.php'; require_once __DIR__ . '/suspend.php';
} else if ($status == 'REACTIVATE') {
// 帐户解禁
require_once __DIR__ . '/reactivate.php';
} else if ($status == 'CLIENTSUBADD') {
// 添加子域名
require_once __DIR__ . '/subdomainadd.php';
} else if ($status == 'CLIENTSUBDEL') {
// 删除子域名
require_once __DIR__ . '/subdomaindel.php';
} else if ($status == 'DELETE') {
// 帐户已删除
require_once __DIR__ . '/delete.php';
} else if (substr($status, 0, 3) == 'sql') {
// 用户sql集群已开通
require_once __DIR__ . '/sqlcluster.php';
} else { } else {
exit('Access Denied'); exit('Access Denied');
} }

View file

@ -0,0 +1,86 @@
<?php
// require_once __DIR__ . '/../../core/application.php';
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$username = post('username');
if (!$username) {
exit('need: username');
}
$callback_log = array(
'callback_date' => date('Y-m-d H:i:s'),
'callback_username' => $username,
'callback_action' => $status,
'callback_comments' => post('comments'),
'callback_client_id' => 0,
'callback_raw' => json_encode(post())
);
// 账号信息
$AccountInfo = $DB->find('account', '*', array('account_username' => $username));
if ($AccountInfo) {
// 更新账号信息
$res = $DB->update('account', array('account_status' => '1'), array('account_id' => $AccountInfo['account_id']));
// 查找客户信息
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']));
if ($ClientInfo) {
$callback_log['callback_client_id'] = $AccountInfo['account_client_id'];
$EmailTo = $ClientInfo['client_email'];
$EmailToNickname = $ClientInfo['client_fname'];
$EmailContent = '<p>Your hosting account has been reactivated, and you can continue to use it now.</p>';
} else {
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An Unassigned hosting account has been reactivated. The details are given bellow.</p>';
}
} else {
// 账号不存在,入库
$AccountInfo = array(
'account_username' => $username,
'account_password' => '********',
'account_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'account_api_key' => $api_key,
'account_domain' => '***.' . $AccountApi['api_server_domain'],
'account_status' => '1',
'account_date' => $callback_log['callback_date'],
'account_client_id' => 0,
'account_sql' => 'sql***'
);
$DB->insert('account', $AccountInfo);
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An Unassigned hosting account has been reactivated. The details are given bellow.</p>';
}
// 记录日志
$DB->insert('account_callback', $callback_log);
$EmailDescription = '<p>Hosting Account : ' . $AccountInfo['account_username'] . '</p>';
$email_body = email_build_body('Hosting Account Status Changed', $EmailToNickname, $EmailContent, $EmailDescription);
// print($email_body);
$emails_log = array(
'email_client_id' => $AccountInfo['account_client_id'],
'email_date' => date('Y-m-d H:i:s'),
'email_to' => $EmailTo,
'email_subject' => 'Hosting Account Status Changed',
'email_body' => $email_body,
'email_read' => 0
);
// print_r($emails_log);
$DB->insert('emails', $emails_log);
send_mail(array(
'to' => $EmailTo,
'message' => $email_body,
'subject' => 'Hosting Account Status Changed'
));

View file

@ -0,0 +1,87 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$username = post('username');
if (!$username) {
exit('need: username');
}
$callback_log = array(
'callback_date' => date('Y-m-d H:i:s'),
'callback_username' => $username,
'callback_action' => $status,
'callback_comments' => post('comments'),
'callback_client_id' => 0,
'callback_raw' => json_encode(post())
);
// 账号信息
$AccountInfo = $DB->find('account', '*', array('account_username' => $username));
if ($AccountInfo) {
// 账号存在
// 更新sql集群
$res = $DB->update('account', array('account_sql' => $status), array('account_id' => $AccountInfo['account_id']));
// 查找客户信息
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']));
if ($ClientInfo) {
$callback_log['callback_client_id'] = $AccountInfo['account_client_id'];
$EmailTo = $ClientInfo['client_email'];
$EmailToNickname = $ClientInfo['client_fname'];
} else {
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
}
} else {
// 账号不存在,入库
$AccountInfo = array(
'account_username' => $username,
'account_password' => 0,
'account_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'account_api_key' => $api_key,
'account_domain' => '***.' . $AccountApi['api_server_domain'],
'account_status' => '1',
'account_date' => $callback_log['callback_date'],
'account_client_id' => 0,
'account_sql' => $status
);
$account_id = $DB->insert('account', $AccountInfo);
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Unassigned Account';
}
// 记录日志
$DB->insert('account_callback', $callback_log);
$EmailDescription = '
<p>MySQL Server Information:</p>
hostname : ' . $status . '.' . $AccountApi['api_server_sql_domain'] . '<br />
username : ' . $AccountInfo['account_username'] . '<br />
password : ' . $AccountInfo['account_password'] . '<br />
port : 3306';
$EmailContent = '<p>Your SQL Cluster is now ready for deployment and use. The details are given bellow.</p>';
$email_body = email_build_body('Hosting SQL Cluster Status Changed', $EmailToNickname, $EmailContent, $EmailDescription);
// print($email_body);
$emails_log = array(
'email_client_id' => $AccountInfo['account_client_id'],
'email_date' => date('Y-m-d H:i:s'),
'email_to' => $EmailTo,
'email_subject' => 'Hosting SQL Cluster Status Changed',
'email_body' => $email_body,
'email_read' => 0
);
// print_r($emails_log);
$DB->insert('emails', $emails_log);
send_mail(array(
'to' => $EmailTo,
'message' => $email_body,
'subject' => 'Hosting SQL Cluster Status Changed'
));

View file

@ -0,0 +1,84 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$username = post('username');
if (!$username) {
exit('need: username');
}
$callback_log = array(
'callback_date' => date('Y-m-d H:i:s'),
'callback_username' => $username,
'callback_action' => $status,
'callback_comments' => post('comments'),
'callback_client_id' => 0,
'callback_raw' => json_encode(post())
);
// 账号信息
$AccountInfo = $DB->find('account', '*', array('account_username' => $username));
if ($AccountInfo) {
// 禁用账号
// $res = $DB->update('account', array('account_status' => '2'), array('account_id' => $AccountInfo['account_id']));
// 查找客户信息
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']));
if ($ClientInfo) {
$callback_log['callback_client_id'] = $AccountInfo['account_client_id'];
$EmailTo = $ClientInfo['client_email'];
$EmailToNickname = $ClientInfo['client_fname'];
$EmailContent = '<p>Your hosting account has successfully added a new sub domain. The details are given bellow.</p>';
} else {
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An unassigned hosting account has successfully added a new sub domain. The details are given bellow.</p>';
}
} else {
// 账号不存在,入库
$AccountInfo = array(
'account_username' => $username,
'account_password' => '********',
'account_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'account_api_key' => $api_key,
'account_domain' => '***.' . $AccountApi['api_server_domain'],
'account_status' => '1',
'account_date' => $callback_log['callback_date'],
'account_client_id' => 0,
'account_sql' => 'sql***'
);
$DB->insert('account', $AccountInfo);
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An unassigned hosting account has successfully added a new sub domain. The details are given bellow.</p>';
}
$EmailDescription = '<p><pre>' . $callback_log['callback_comments'] . '</pre></p>
<p>The new sub domain is now available for use.</p>';
// 记录日志
$DB->insert('account_callback', $callback_log);
$email_body = email_build_body('Hosting Account Domain Changed', $EmailToNickname, $EmailContent, $EmailDescription);
// print_r($email_body);
$emails_log = array(
'email_client_id' => $AccountInfo['account_client_id'],
'email_date' => date('Y-m-d H:i:s'),
'email_to' => $EmailTo,
'email_subject' => 'Hosting Account Domain Changed',
'email_body' => $email_body,
'email_read' => 0
);
// print_r($emails_log);
$DB->insert('emails', $emails_log);
send_mail(array(
'to' => $EmailTo,
'message' => $email_body,
'subject' => 'Hosting Account Domain Changed'
));

View file

@ -0,0 +1,84 @@
<?php
if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$username = post('username');
if (!$username) {
exit('need: username');
}
$callback_log = array(
'callback_date' => date('Y-m-d H:i:s'),
'callback_username' => $username,
'callback_action' => $status,
'callback_comments' => post('comments'),
'callback_client_id' => 0,
'callback_raw' => json_encode(post())
);
// 账号信息
$AccountInfo = $DB->find('account', '*', array('account_username' => $username));
if ($AccountInfo) {
// 禁用账号
// $res = $DB->update('account', array('account_status' => '2'), array('account_id' => $AccountInfo['account_id']));
// 查找客户信息
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']));
if ($ClientInfo) {
$callback_log['callback_client_id'] = $AccountInfo['account_client_id'];
$EmailTo = $ClientInfo['client_email'];
$EmailToNickname = $ClientInfo['client_fname'];
$EmailContent = '<p>Your hosting account has successfully deleted a sub domain. The details are given bellow.</p>';
} else {
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An unassigned hosting account has successfully deleted a sub domain. The details are given bellow.</p>';
}
} else {
// 账号不存在,入库
$AccountInfo = array(
'account_username' => $username,
'account_password' => '********',
'account_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'account_api_key' => $api_key,
'account_domain' => '***.' . $AccountApi['api_server_domain'],
'account_status' => '1',
'account_date' => $callback_log['callback_date'],
'account_client_id' => 0,
'account_sql' => 'sql***'
);
$DB->insert('account', $AccountInfo);
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An unassigned hosting account has successfully deleted a sub domain. The details are given bellow.</p>';
}
$EmailDescription = '<p><pre>' . $callback_log['callback_comments'] . '</pre></p>
<p>The sub domain is no longer usable.</p>';
// 记录日志
$DB->insert('account_callback', $callback_log);
$email_body = email_build_body('Hosting Account Domain Changed', $EmailToNickname, $EmailContent, $EmailDescription);
// print_r($email_body);
$emails_log = array(
'email_client_id' => $AccountInfo['account_client_id'],
'email_date' => date('Y-m-d H:i:s'),
'email_to' => $EmailTo,
'email_subject' => 'Hosting Account Domain Changed',
'email_body' => $email_body,
'email_read' => 0
);
// print_r($emails_log);
$DB->insert('emails', $emails_log);
send_mail(array(
'to' => $EmailTo,
'message' => $email_body,
'subject' => 'Hosting Account Domain Changed'
));

View file

@ -1,30 +1,88 @@
<?php <?php
require_once __DIR__ . '/../../core/application.php'; if (!defined('IN_CRONLITE')) {
exit('Access Denied');
}
$username = post('username'); $username = post('username');
// 账号信息 if (!$username) {
$AccountInfo = $DB->find('account', '*', array('account_username' => $username, 'account_api_key' => $HostingApi['api_key'])); exit('need: username');
if (!$AccountInfo) {
// 账号不存在
exit();
} }
// 禁用账号 $callback_log = array(
$DB->update('account', array('account_status' => '2'), array('account_id' => $AccountInfo['account_id'])); 'callback_date' => date('Y-m-d H:i:s'),
// 创建删除任务 'callback_username' => $username,
// $DB->query("CREATE EVENT " . $username . "_delete ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 30 DAY DO DELETE FROM `hosting_account` WHERE `account_id`='" . $AccountInfo['account_id'] . "'"); 'callback_action' => $status,
'callback_comments' => post('comments'),
'callback_client_id' => 0,
'callback_raw' => json_encode(post())
);
// 查找客户信息 // 账号信息
$ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id'])); $AccountInfo = $DB->find('account', '*', array('account_username' => $username));
if ($AccountInfo) {
// 禁用账号
$res = $DB->update('account', array('account_status' => '2'), array('account_id' => $AccountInfo['account_id']));
$EmailContent = '<p>We had a good time with you while you were with us. </p>'; // 查找客户信息
$EmailDescription = '<p>Your account(' . $username . ') have been deactivate successfully and all files and database will be deleted within 30 days.</p><br>'; $ClientInfo = $DB->find('clients', 'client_email, client_fname', array('client_id' => $AccountInfo['account_client_id']));
$email_body = email_build_body('Hosting Account Deactivated', $ClientInfo['client_fname'], $EmailContent, $EmailDescription); if ($ClientInfo) {
$callback_log['callback_client_id'] = $AccountInfo['account_client_id'];
$EmailTo = $ClientInfo['client_email'];
$EmailToNickname = $ClientInfo['client_fname'];
$EmailContent = '<p>Your hosting account has been suspended.</p>';
$EmailDescription = '<p>the hosting account ' . $username . ' has been Deactivated.</p>
<p>All files and database will be deleted within 30 days.</p>
<p>Please perform data backup and data migration as soon as possible !</p>
<p>If you have any questions, please contact the administrator.</p>';
} else {
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An unassigned hosting account has been suspended. The details are given bellow.</p>';
$EmailDescription = '<p>the hosting account ' . $username . ' has been Deactivated.</p><p>All files and database will be deleted within 30 days.</p>';
}
} else {
// 账号不存在,入库
$AccountInfo = array(
'account_username' => $username,
'account_password' => '********',
'account_key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'account_api_key' => $api_key,
'account_domain' => '***.' . $AccountApi['api_server_domain'],
'account_status' => '2',
'account_date' => $callback_log['callback_date'],
'account_client_id' => 0,
'account_sql' => 'sql***'
);
$DB->insert('account', $AccountInfo);
$EmailTo = $SiteConfig['site_email'];
$EmailToNickname = 'Administrator';
$EmailContent = '<p>An unassigned hosting account has been suspended. The details are given bellow.</p>';
$EmailDescription = '<p>the hosting account ' . $username . ' has been Deactivated.</p><p>All files and database will be deleted within 30 days.</p>';
}
// 记录日志
$DB->insert('account_callback', $callback_log);
$email_body = email_build_body('Hosting Account Status Changed', $EmailToNickname, $EmailContent, $EmailDescription);
// print_r($email_body);
$emails_log = array(
'email_client_id' => $AccountInfo['account_client_id'],
'email_date' => date('Y-m-d H:i:s'),
'email_to' => $EmailTo,
'email_subject' => 'Hosting Account Status Changed',
'email_body' => $email_body,
'email_read' => 0
);
// print_r($emails_log);
$DB->insert('emails', $emails_log);
send_mail(array( send_mail(array(
'to' => $ClientInfo['client_email'], 'to' => $EmailTo,
'message' => $email_body, 'message' => $email_body,
'subject' => 'Hosting Account Deactivated' 'subject' => 'Hosting Account Status Changed'
)); ));

View file

@ -4,34 +4,41 @@ require_once __DIR__ . '/../../application.php';
$PageInfo = ['title' => 'New Account', 'rel' => '']; $PageInfo = ['title' => 'New Account', 'rel' => ''];
require_once ROOT . '/core/handler/HostingHandler.php';
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
// require_once ROOT . '/core/library/userinfo.class.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
if (isset($_POST['submit'])) { if (isset($_POST['submit'])) {
$api_key = post('api_key');
if (empty($api_key)) {
send_response([500, '', 'api_key cannot be <b>empty</b> !']);
}
$FormData = array( $FormData = array(
'username' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8), 'username' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
'password' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 16), 'password' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 16),
'account_domain' => post('domain'), 'account_domain' => post('domain'),
'email' => $ClientInfo['client_email'], 'email' => $ClientInfo['client_email'],
'plan' => post('package'), // 'plan' => post('package'),
); );
if (empty($FormData['account_domain'])) { if (empty($FormData['account_domain'])) {
setMessage('Domain cannot be <b>empty</b> !', 'danger'); send_response([500, '', 'Domain cannot be <b>empty</b> !']);
redirect('clientarea/accounts', '', array('action' => 'add'));
} else { } else {
$AccountList = $DB->findAll('account', '*', array('account_client_id' => $ClientInfo['client_id'])); $AccountList = $DB->findAll('account', '*', array('account_client_id' => $ClientInfo['client_id']));
if (count($AccountList) < 3) { if (count($AccountList) < 3) {
$client = Client::create($HostingApiConfig); $AccountApi = $DB->find('account_api', '*', array('api_key' => post('api_key')), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
$client = Client::create($AccountApiConfig);
$request = $client->createAccount(array( $request = $client->createAccount(array(
'username' => $FormData['username'], 'username' => $FormData['username'],
'password' => $FormData['password'], 'password' => $FormData['password'],
'domain' => $FormData['account_domain'], 'domain' => $FormData['account_domain'],
'email' => $FormData['email'], 'email' => $FormData['email'],
'plan' => $FormData['plan'], 'plan' => $AccountApiConfig['plan'],
)); ));
$response = $request->send(); $response = $request->send();
$Data = $response->getData(); $Data = $response->getData();
@ -39,17 +46,19 @@ if (isset($_POST['submit'])) {
'account_username' => $Data['result']['options']['vpusername'], 'account_username' => $Data['result']['options']['vpusername'],
'message' => $Data['result']['statusmsg'], 'message' => $Data['result']['statusmsg'],
'status' => $Data['result']['status'], 'status' => $Data['result']['status'],
'account_domain' => str_replace('cpanel', strtolower($FormData['username']), $HostingApi['api_cpanel_url']), 'account_domain' => str_replace('cpanel', strtolower($FormData['username']), $AccountApi['api_cpanel_url']),
'date' => date('Y-m-d H:i:s'), 'date' => date('Y-m-d H:i:s'),
); );
if ($Result['status'] == 0 && strlen($Result['message']) > 1) { if ($Result['status'] == 0 && strlen($Result['message']) > 1) {
setMessage($Result['message'], 'danger'); send_response([500, '', $Result['message']]);
redirect('clientarea/accounts', '', array('action' => 'add')); // setMessage($Result['message'], 'danger');
// redirect('clientarea/accounts', '', array('action' => 'add'));
} elseif ($Result['status'] == 1 && strlen($Result['message']) > 1) { } elseif ($Result['status'] == 1 && strlen($Result['message']) > 1) {
$account_id = $DB->insert('account', array( $account_id = $DB->insert('account', array(
'account_username' => $Result['account_username'], 'account_username' => $Result['account_username'],
'account_password' => $FormData['password'], 'account_password' => $FormData['password'],
'account_key' => $FormData['username'], 'account_key' => $FormData['username'],
'account_api_key' => post('api_key'),
'account_domain' => $Result['account_domain'], 'account_domain' => $Result['account_domain'],
'account_status' => '1', 'account_status' => '1',
'account_date' => $Result['date'], 'account_date' => $Result['date'],
@ -59,21 +68,20 @@ if (isset($_POST['submit'])) {
if ($account_id) { if ($account_id) {
$EmailTo = $FormData['email']; $EmailTo = $FormData['email'];
$EmailContent = ' $EmailContent = '<p>Congratulations !</p>
<p>Congratulations !</p>
<p>You have successfully created a new free hosting account, more details are given below:</p><br />'; <p>You have successfully created a new free hosting account, more details are given below:</p><br />';
$EmailDescription = ' $EmailDescription = '
<b>cPanel Username : </b><span>' . $Result['account_username'] . '</span><br /> <b>Control Panel Username : </b><span>' . $Result['account_username'] . '</span><br />
<b>cPanel Password : </b><span>' . $FormData['password'] . '</span><br /> <b>Control Panel Password : </b><span>' . $FormData['password'] . '</span><br />
<b>Control Panel URL : </b><span>' . $AccountApi['api_cpanel_url'] . '</span><br />
<b>Main Domain : </b><span>' . $Result['account_domain'] . '</span><br /> <b>Main Domain : </b><span>' . $Result['account_domain'] . '</span><br />
<b>Account Date : </b><span>' . $Result['date'] . '</span><br /> <b>Account Date : </b><span>' . $Result['date'] . '</span><br />
<b>cPanel URL : </b><span>' . $HostingApi['api_cpanel_url'] . '</span><br /> <b>Server IP : </b><span>' . $AccountApi['api_server_ip'] . '</span><br />
<b>Server IP : </b><span>' . $HostingApi['api_server_ip'] . '</span><br /> <b>Hosting Package : </b><span>' . $AccountApi['api_package'] . '</span><br />
<b>Hosting Package : </b><span>' . $HostingApi['api_package'] . '</span><br /> <b>FTP Hostname : </b><span>' . $AccountApi['api_server_ftp_domain'] . '</span><br />
<b>FTP Hostname : </b><span>ftpupload.net</span><br /> <b>MySQL Hostname : </b><span>' . $AccountApi['api_server_sql_domain'] . '</span><br />
<b>MySQL Hostname : </b><span>' . str_replace('cpanel', 'sqlxxx', $HostingApi['api_cpanel_url']) . '</span><br /> <b>Nameserver 1 : </b><span>' . $AccountApi['api_ns_1'] . '</span><br />
<b>Nameserver 1 : </b><span>' . $HostingApi['api_ns_1'] . '</span><br /> <b>Nameserver 2 : </b><span>' . $AccountApi['api_ns_2'] . '</span>
<b>Nameserver 2 : </b><span>' . $HostingApi['api_ns_2'] . '</span>
<br /> <br />
<p>Next, </p> <p>Next, </p>
<br />'; <br />';
@ -85,25 +93,30 @@ if (isset($_POST['submit'])) {
'message' => $email_body, 'message' => $email_body,
'subject' => 'New Hosting Account' 'subject' => 'New Hosting Account'
)); ));
send_response([500, '', 'Account created <b>successfully</b> !']);
setMessage('Account created <b>successfully</b> !', 'success');
redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} else { } else {
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger'); send_response([500, '', 'Something went' . "'" . 's <b>wrong</b> !']);
redirect('clientarea/accounts', '', array('action' => 'add'));
} }
} elseif ($Result['status'] == 0 && $Result['message'] == 0) { } elseif ($Result['status'] == 0 && $Result['message'] == 0) {
setMessage('Something went' . "'" . 's <b>wrong</b> !', 'danger'); send_response([500, '', 'Something went' . "'" . 's <b>wrong</b> !']);
redirect('clientarea/accounts', '', array('action' => 'add'));
} }
} else { } else {
setMessage('Free account limit <b>reached</b> !', 'danger'); send_response([500, '', 'Free account limit <b>reached</b> !']);
redirect('clientarea/accounts', '', array('action' => 'add'));
} }
} }
} else { } else {
$api_key = get('api_key');
if (empty($api_key)) {
setMessage('api_key cannot be <b>empty</b> !', 'danger');
redirect('clientarea/accounts');
}
$ExtensionInfo = $DB->findAll('domain_extensions', '*', array(), 'extension_id'); $ExtensionInfo = $DB->findAll('domain_extensions', '*', array(), 'extension_id');
$AccountApi = $DB->find('account_api', '*', array('api_key' => get('api_key')), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
'plan' => $AccountApi['api_package'],
);
if (empty($ExtensionInfo)) { if (empty($ExtensionInfo)) {
$ExtensionInfo = array( $ExtensionInfo = array(
'extension_value' => '.html-5.me', 'extension_value' => '.html-5.me',

View file

@ -32,12 +32,20 @@ if ($AccountInfo['account_status'] != 1) {
redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id)); redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
$client = Client::create($HostingApiConfig); $client = Client::create($AccountApiConfig);
$request = $client->suspend(array( $request = $client->suspend(array(
'username' => $AccountInfo['account_key'], 'username' => $AccountInfo['account_key'],
'reason' => $reason, 'reason' => $reason,

View file

@ -21,7 +21,7 @@ if ($AccountInfo['account_status'] != 1) {
redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id)); redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$filemanager_url = get_filemanager_url($HostingApi['api_cpanel_url'], $AccountInfo['account_username'], $AccountInfo['account_password'], $domain); $filemanager_url = get_filemanager_url($AccountApi['api_server_ftp_domain'], $AccountInfo['account_username'], $AccountInfo['account_password'], $domain);
header("Location: " . $filemanager_url); header("Location: " . $filemanager_url);

View file

@ -21,6 +21,6 @@ if ($AccountInfo['account_status'] != 1) {
redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id)); redirect('clientarea/accounts', '', array('action' => 'view', 'account_id' => $account_id));
} }
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', 'api_cpanel_url', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$PageInfo['title'] = 'Login to Control Panel'; $PageInfo['title'] = 'Login to Control Panel';

View file

@ -32,13 +32,21 @@ $FormData = array(
'account_username' => $AccountInfo['account_username'] 'account_username' => $AccountInfo['account_username']
); );
require_once ROOT . '/core/handler/HostingHandler.php'; $AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
if ($FormData['old_password'] == $AccountInfo['account_password']) { if ($FormData['old_password'] == $AccountInfo['account_password']) {
$client = Client::create($HostingApiConfig); $client = Client::create($AccountApiConfig);
$request = $client->password([ $request = $client->password([
'username' => $AccountInfo['account_key'], 'username' => $AccountInfo['account_key'],
'password' => $FormData['new_password'], 'password' => $FormData['new_password'],

View file

@ -1,15 +1,23 @@
<?php <?php
require_once __DIR__ . '/../../application.php'; require_once __DIR__ . '/../../application.php';
require_once ROOT . '/core/handler/HostingHandler.php';
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
if (isset($_POST['submit'])) { if (isset($_POST['submit'])) {
$domain = post('domain'); $domain = post('domain');
$client = Client::create($HostingApiConfig);
$AccountApi = $DB->find('account_api', '*', array('api_key' => 'ttkl.cf'), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
$client = Client::create($AccountApiConfig);
$request = $client->availability(array('domain' => $domain)); $request = $client->availability(array('domain' => $domain));
$response = $request->send(); $response = $request->send();
if ($response->isSuccessful() == 0 && strlen($response->getMessage()) > 1) { if ($response->isSuccessful() == 0 && strlen($response->getMessage()) > 1) {

View file

@ -19,33 +19,39 @@ if (empty($AccountInfo)) {
redirect('clientarea/accounts'); redirect('clientarea/accounts');
} }
// require_once ROOT . '/core/library/userinfo.class.php';
// TODO: Change to an asynchronous request // TODO: Change to an asynchronous request
require_once ROOT . '/core/handler/HostingHandler.php';
require_once ROOT . '/modules/autoload.php'; require_once ROOT . '/modules/autoload.php';
use \InfinityFree\MofhClient\Client; use \InfinityFree\MofhClient\Client;
$PageInfo['title'] = 'View Account (#' . $account_id . ')'; $PageInfo['title'] = 'View Account (#' . $account_id . ')';
$AccountApi = $DB->find('account_api', '*', array('api_key' => $AccountInfo['account_api_key']), null, 1);
$AccountApiConfig = array(
'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $AccountApi['api_package'],
);
if ($AccountInfo['account_status'] == 1) { if ($AccountInfo['account_status'] == 1) {
$data = array_merge(array(), $HostingApi, $AccountInfo, array( $data = array_merge(array(), $AccountApi, $AccountInfo, array(
'user_ip' => UserInfo::get_ip(), 'user_ip' => get_client_ip(),
'ftp_host' => str_replace('cpanel', 'ftp', $HostingApi['api_cpanel_url']), 'ftp_host' => $AccountApi['api_server_ftp_domain'],
'ftp_port' => 21, 'ftp_port' => 21,
'mysql_host' => str_replace('cpanel', 'sqlxxx', $HostingApi['api_cpanel_url']), 'mysql_host' => $AccountApi['api_server_sql_domain'],
'mysql_port' => 3306, 'mysql_port' => 3306,
)); ));
$client = Client::create($HostingApiConfig); $client = Client::create($AccountApiConfig);
$request = $client->getUserDomains(array('username' => $AccountInfo['account_username'])); $request = $client->getUserDomains(array('username' => $AccountInfo['account_username']));
$response = $request->send(); $response = $request->send();
$DomainList = $response->getDomains(); $DomainList = $response->getDomains();
} else { } else {
// inactive // inactive
$DomainList = array(); $DomainList = array();
$data = array_merge(array(), $HostingApi, $AccountInfo, array( $data = array_merge(array(), $AccountApi, $AccountInfo, array(
'user_ip' => UserInfo::get_ip(), 'user_ip' => get_client_ip(),
'account_username' => '-', 'account_username' => '-',
'account_password' => '-', 'account_password' => '-',
'account_domain' => '-', 'account_domain' => '-',

View file

@ -1,6 +1,5 @@
<?php <?php
require_once ROOT . '/core/library/userinfo.class.php';
require_once ROOT . '/core/library/countries.php'; require_once ROOT . '/core/library/countries.php';
$CountryName = 'Not Defined'; $CountryName = 'Not Defined';

View file

@ -1,5 +1,3 @@
<?php <?php
require_once ROOT . '/core/library/userinfo.class.php';
// $PageInfo = ['title' => 'New SSL', 'rel' => '']; // $PageInfo = ['title' => 'New SSL', 'rel' => ''];

View file

@ -1,7 +1,5 @@
<?php <?php
require ROOT . '/core/library/userinfo.class.php';
$count = $DB->count('ssl', array('ssl_client_id' => $ClientInfo['client_id'])); $count = $DB->count('ssl', array('ssl_client_id' => $ClientInfo['client_id']));
if ($count > 0) { if ($count > 0) {

View file

@ -2,8 +2,6 @@
$PageInfo['title'] = $lang->I18N('My Tickets'); $PageInfo['title'] = $lang->I18N('My Tickets');
require_once ROOT . '/core/library/userinfo.class.php';
$count = $DB->count('tickets', array('ticket_client_id' => $ClientInfo['client_id'])); $count = $DB->count('tickets', array('ticket_client_id' => $ClientInfo['client_id']));
if ($count > 0) { if ($count > 0) {

View file

@ -2,7 +2,6 @@
require_once __DIR__ . '/application.php'; require_once __DIR__ . '/application.php';
require_once ROOT . '/core/library/userinfo.class.php';
require_once ROOT . '/core/library/countries.php'; require_once ROOT . '/core/library/countries.php';
$PageInfo['title'] = $lang->I18N('Profile Settings'); $PageInfo['title'] = $lang->I18N('Profile Settings');

View file

@ -44,8 +44,8 @@
<div class="alert alert-secondary my-5"> <div class="alert alert-secondary my-5">
<p>You need to set these nameservers in order to host your domain with us</p> <p>You need to set these nameservers in order to host your domain with us</p>
<ul class="mb-0"> <ul class="mb-0">
<li class="mb-0"><?php echo $HostingApi['api_ns_1'] ?></li> <li class="mb-0"><?php echo $AccountApi['api_ns_1'] ?></li>
<li class="mb-0"><?php echo $HostingApi['api_ns_2'] ?></li> <li class="mb-0"><?php echo $AccountApi['api_ns_2'] ?></li>
</ul> </ul>
</div> </div>
<label class="form-label required">Custom Domain Name</label> <label class="form-label required">Custom Domain Name</label>
@ -76,12 +76,12 @@
</div> </div>
<hr> <hr>
<div class="col-md-12 mb-15"> <div class="col-md-12 mb-15">
<form action="controllers/accounts/add.php" method="post"> <!-- <form action="controllers/accounts/add.php" method="post"> -->
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<label class="form-label required">Hosting Package</label> <label class="form-label required">Hosting Package</label>
<input type="text" name="package" value="<?php echo $HostingApi['api_package']; ?>" class="form-control disabled" readonly> <input type="text" name="package" value="<?php echo $AccountApi['api_package']; ?>" class="form-control disabled" readonly>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
@ -104,11 +104,11 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="mb-10 px-10"> <div class="mb-10 px-10">
<button class="btn btn-primary" name="submit">Request Account</button> <button class="btn btn-primary" onclick="create_account()">Request Account</button>
</div> </div>
</div> </div>
</div> </div>
</form> <!-- </form> -->
</div> </div>
</div> </div>
</div> </div>
@ -163,4 +163,22 @@
} }
}); });
}; };
function create_account() {
$('#hidden-area').html('');
var domain = $('#sudomain').val();
var extensions = $('#extension').val();
var validomain = domain + extensions;
$.post('controllers/accounts/add.php', {
domain: validomain,
api_key: 'ttkl.cf',
submit: ""
}, function(data) {
if (validomain != data) {
$('#hidden-area').html('<div class="alert alert-danger" role="alert"><button class="close" data-dismiss="alert" type="button" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+data+'</div>');
} else {
$('#hidden-area').html('<div class="alert alert-success" role="alert"><button class="close" data-dismiss="alert" type="button" aria-label="Close"><span aria-hidden="true">&times;</span></button>Domain is available and selected <b>successfully!</b></div>');
$('#validomain').val(data);
}
});
};
</script> </script>

View file

@ -10,7 +10,7 @@
<hr> <hr>
<div class="mb-15"> <div class="mb-15">
<p>You will now be redirected to the control panel. It can take up to 5 seconds based on your internet connecion speed.</p> <p>You will now be redirected to the control panel. It can take up to 5 seconds based on your internet connecion speed.</p>
<form id="Login" action="https://<?php echo $HostingApi['api_cpanel_url']; ?>/login.php" method="post" name="login"> <form id="Login" action="https://<?php echo $AccountApi['api_cpanel_url']; ?>/login.php" method="post" name="login">
<input type="hidden" name="uname" value="<?php echo $AccountInfo['account_username']; ?>"> <input type="hidden" name="uname" value="<?php echo $AccountInfo['account_username']; ?>">
<input type="hidden" name="passwd" value="<?php echo $AccountInfo['account_password']; ?>"> <input type="hidden" name="passwd" value="<?php echo $AccountInfo['account_password']; ?>">
<input type="hidden" name="language" value="<?php echo $lang->get_language_value(); ?>"> <input type="hidden" name="language" value="<?php echo $lang->get_language_value(); ?>">

View file

@ -34,16 +34,16 @@
<h6 class="mb-0"><b>Postal Code:</b> <?php echo $ClientInfo['client_pcode'];?></h6> <h6 class="mb-0"><b>Postal Code:</b> <?php echo $ClientInfo['client_pcode'];?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b><?php echo $lang->I18N('IP Address'); ?>:</b> <?php echo UserInfo::get_ip();?></h6> <h6 class="mb-0"><b><?php echo $lang->I18N('IP Address'); ?>:</b> <?php echo get_client_ip();?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Device Type:</b> <?php echo UserInfo::get_device();?></h6> <h6 class="mb-0"><b>Device Type:</b> <?php echo get_client_device();?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Device OS:</b> <?php echo UserInfo::get_os();?></h6> <h6 class="mb-0"><b>Device OS:</b> <?php echo get_client_os();?></h6>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6 class="mb-0"><b>Web Browser:</b> <?php echo UserInfo::get_browser();?></h6> <h6 class="mb-0"><b>Web Browser:</b> <?php echo get_client_browser();?></h6>
</div> </div>
<div class="col-md-12 pb-5"> <div class="col-md-12 pb-5">
<a href="settings.php" class="btn m5t btn-sm btn-primary">Update Profile</a> <a href="settings.php" class="btn m5t btn-sm btn-primary">Update Profile</a>

View file

@ -37,7 +37,7 @@ $avatar_path = $ClientInfo['client_email'] ? md5($ClientInfo['client_email']) :
</a> </a>
<a href="tickets.php" class="sidebar-link sidebar-link-with-icon"> <a href="tickets.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-ticket-alt" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-ticket-alt" aria-hidden="true"></i></span>
<?php echo $lang->I18N('Tickets'); ?> <?php echo $lang->I18N('Tickets List'); ?>
</a> </a>
<a href="tools.php" class="sidebar-link sidebar-link-with-icon"> <a href="tools.php" class="sidebar-link sidebar-link-with-icon">
<span class="sidebar-icon bg-transparent"><i class="fa fa-tools" aria-hidden="true"></i></span> <span class="sidebar-icon bg-transparent"><i class="fa fa-tools" aria-hidden="true"></i></span>

View file

@ -12,6 +12,7 @@ $start_time = explode(' ', microtime());
$static_release = '1559728996134'; $static_release = '1559728996134';
header("X-Powered-By: UIISC"); header("X-Powered-By: UIISC");
header("Server: UIISC");
header("Content-Type: text/html; charset=UTF-8"); header("Content-Type: text/html; charset=UTF-8");
date_default_timezone_set('Asia/Shanghai'); date_default_timezone_set('Asia/Shanghai');
@ -47,13 +48,20 @@ if (!function_exists('is_https')) {
} }
define('HTTP_PROTOCOL', is_https() ? 'https' : 'http'); define('HTTP_PROTOCOL', is_https() ? 'https' : 'http');
$site_domain = $_SERVER['HTTP_HOST']; $site_domain = $_SERVER['HTTP_HOST'];
$scriptpath = str_replace('\\', '/', $_SERVER['SCRIPT_NAME']);
define('SITE_DOMAIN', $site_domain); $site_path = substr($scriptpath, 0, strrpos($scriptpath, '/'));
$site_url = HTTP_PROTOCOL . '://' . $site_domain; $site_url = HTTP_PROTOCOL . '://' . $site_domain;
if (isset($_SERVER['PATH_INFO'])) {
$path_info = strtolower(trim(str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['PATH_INFO']), '/'));
} else if ($_SERVER['REQUEST_URI']) {
$request_uri = strtolower(trim($_SERVER['REQUEST_URI']));
$path_info = explode('?', $request_uri)[0];
$path_info = strtolower(trim(str_replace($site_path, '', $path_info)));
}
define('SITE_DOMAIN', $site_domain);
define('SITEURL', $site_url); define('SITEURL', $site_url);
include_once ROOT . '/data/config.php'; include_once ROOT . '/data/config.php';

View file

@ -1,10 +1,10 @@
<?php <?php
$HostingApi = $DB->find('account_api', '*', array('api_key' => 'myownfreehost'), null, 1); $AccountApi = $DB->find('account_api', '*', array('api_key' => 'myownfreehost'), null, 1);
$HostingApiConfig = array( $AccountApiConfig = array(
'apiUsername' => $HostingApi['api_username'], 'apiUsername' => $AccountApi['api_username'],
'apiPassword' => $HostingApi['api_password'], 'apiPassword' => $AccountApi['api_password'],
// 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/', // 'apiUrl' => 'https://panel.myownfreehost.net/xml-api/',
'plan' => $HostingApi['api_package'], 'plan' => $AccountApi['api_package'],
); );

View file

@ -72,7 +72,11 @@ return array(
'managearea' => 'Manage Area', 'managearea' => 'Manage Area',
'delete' => 'Delete', 'delete' => 'Delete',
'details' => 'Details', 'details' => 'Details',
'Clients' => 'Clients',
'Clients List' => 'Clients',
'News List' => 'News',
'Tickets' => 'Tickets', 'Tickets' => 'Tickets',
'Tickets List' => 'Tickets',
'My Tickets' => 'My Tickets', 'My Tickets' => 'My Tickets',
'Tickets Details' => 'Tickets Details', 'Tickets Details' => 'Tickets Details',
'member' => 'Member', 'member' => 'Member',

View file

@ -4,6 +4,10 @@ return array(
"solution" => "方案", "solution" => "方案",
"news" => "新闻", "news" => "新闻",
"News" => "新闻", "News" => "新闻",
'News List' => '新闻管理',
'News Details' => '新闻详情',
'News Add' => '新闻添加',
'News Edit' => '新闻编辑',
"contact" => "联系", "contact" => "联系",
"Contact Us" => "联系我们", "Contact Us" => "联系我们",
"help" => "帮助", "help" => "帮助",
@ -79,7 +83,8 @@ return array(
'managearea' => '管理中心', 'managearea' => '管理中心',
'delete' => '删除', 'delete' => '删除',
'details' => '详情', 'details' => '详情',
'Tickets' => '工单管理', 'Tickets' => '工单',
'Tickets List' => '工单管理',
'My Tickets' => '我的工单', 'My Tickets' => '我的工单',
'Tickets Details' => '工单详情', 'Tickets Details' => '工单详情',
'member' => '客户', 'member' => '客户',
@ -90,6 +95,7 @@ return array(
'Return' => '返回', 'Return' => '返回',
'Save' => '保存', 'Save' => '保存',
'Clients' => '客户', 'Clients' => '客户',
'Clients List' => '客户管理',
'Hosting Accounts' => '托管帐户', 'Hosting Accounts' => '托管帐户',
'System Settings' => '系统配置', 'System Settings' => '系统配置',
'Company Name' => '公司名称', 'Company Name' => '公司名称',

View file

@ -4,6 +4,7 @@ return array(
'solution' => '方案', 'solution' => '方案',
'news' => '新聞', 'news' => '新聞',
'News' => '新聞', 'News' => '新聞',
'News List' => '新闻管理',
'contact' => '聯繫', 'contact' => '聯繫',
'Contact Us' => '聯繫我們', 'Contact Us' => '聯繫我們',
'help' => '幫助', 'help' => '幫助',
@ -74,6 +75,7 @@ return array(
'delete' => '刪除', 'delete' => '刪除',
'details' => '詳情', 'details' => '詳情',
'Tickets' => '工單', 'Tickets' => '工單',
'Tickets List' => '工單管理',
'Tickets Details' => '工單詳情', 'Tickets Details' => '工單詳情',
'member' => '客戶', 'member' => '客戶',
'members' => '客戶', 'members' => '客戶',

View file

@ -1,8 +1,154 @@
<?php <?php
function get_filemanager_url($api_cpanel_url, $account_username, $account_password, $domain = '') function get_client_ip()
{
$ip = '';
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
} else if (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
} else if (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
} else if (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = 'UNKNOWN';
}
return $ip;
}
function get_client_os()
{
$os_platform = "Unknown OS Platform";
$os_array = array(
'/windows nt 11/i' => 'Windows 11',
'/windows nt 10/i' => 'Windows 10',
'/windows nt 6.3/i' => 'Windows 8.1',
'/windows nt 6.2/i' => 'Windows 8',
'/windows nt 6.1/i' => 'Windows 7',
'/windows nt 6.0/i' => 'Windows Vista',
'/windows nt 5.2/i' => 'Windows Server 2003/XP x64',
'/windows nt 5.1/i' => 'Windows XP',
'/windows xp/i' => 'Windows XP',
'/windows nt 5.0/i' => 'Windows 2000',
'/windows me/i' => 'Windows ME',
'/win98/i' => 'Windows 98',
'/win95/i' => 'Windows 95',
'/win16/i' => 'Windows 3.11',
'/macintosh|mac os x/i' => 'Mac OS X',
'/mac_powerpc/i' => 'Mac OS 9',
'/linux/i' => 'Linux',
'/ubuntu/i' => 'Ubuntu',
'/iphone/i' => 'iPhone',
'/ipod/i' => 'iPod',
'/ipad/i' => 'iPad',
'/android/i' => 'Android',
'/blackberry/i' => 'BlackBerry',
'/webos/i' => 'Mobile',
);
foreach ($os_array as $regex => $value) {
if (preg_match($regex, $_SERVER['HTTP_USER_AGENT'])) {
$os_platform = $value;
}
}
return $os_platform;
}
function get_client_browser()
{
$browser = "Unknown Browser";
$browser_array = array(
'/msie/i' => 'Internet Explorer',
'/Trident/i' => 'Internet Explorer',
'/firefox/i' => 'Firefox',
'/safari/i' => 'Safari',
'/edg/i' => 'Edge',
'/chrome/i' => 'Chrome',
'/opera/i' => 'Opera',
'/netscape/i' => 'Netscape',
'/maxthon/i' => 'Maxthon',
'/konqueror/i' => 'Konqueror',
'/ubrowser/i' => 'UC Browser',
'/mobile/i' => 'Handheld Browser',
);
foreach ($browser_array as $regex => $value) {
if (preg_match($regex, $_SERVER['HTTP_USER_AGENT'])) {
$browser = $value;
}
}
return $browser;
}
function get_client_device()
{
$tablet_browser = 0;
$mobile_browser = 0;
if (preg_match('/(tablet|ipad|playbook)|(android(?!.*(mobi|opera mini)))/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$tablet_browser++;
}
if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|iemobile)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$mobile_browser++;
}
if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']), 'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$mobile_browser++;
}
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
$mobile_agents = array(
'w3c ', 'acs-', 'alav', 'alca', 'amoi', 'audi', 'avan', 'benq', 'bird', 'blac',
'blaz', 'brew', 'cell', 'cldc', 'cmd-', 'dang', 'doco', 'eric', 'hipt', 'inno',
'ipaq', 'java', 'jigs', 'kddi', 'keji', 'leno', 'lg-c', 'lg-d', 'lg-g', 'lge-',
'maui', 'maxo', 'midp', 'mits', 'mmef', 'mobi', 'mot-', 'moto', 'mwbp', 'nec-',
'newt', 'noki', 'palm', 'pana', 'pant', 'phil', 'play', 'port', 'prox',
'qwap', 'sage', 'sams', 'sany', 'sch-', 'sec-', 'send', 'seri', 'sgh-', 'shar',
'sie-', 'siem', 'smal', 'smar', 'sony', 'sph-', 'symb', 't-mo', 'teli', 'tim-',
'tosh', 'tsm-', 'upg1', 'upsi', 'vk-v', 'voda', 'wap-', 'wapa', 'wapi', 'wapp',
'wapr', 'webc', 'winw', 'winw', 'xda ', 'xda-'
);
if (in_array($mobile_ua, $mobile_agents)) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'opera mini') > 0) {
$mobile_browser++;
// Check for tablets on opera mini alternative headers
$stock_ua = strtolower(isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) ? $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'] : (isset($_SERVER['HTTP_DEVICE_STOCK_UA']) ? $_SERVER['HTTP_DEVICE_STOCK_UA'] : ''));
if (preg_match('/(tablet|ipad|playbook)|(android(?!.*mobile))/i', $stock_ua)) {
$tablet_browser++;
}
}
if ($tablet_browser > 0) {
// do something for tablet devices
return 'Tablet';
} else if ($mobile_browser > 0) {
// do something for mobile devices
return 'Mobile';
} else {
// do something for everything else
return 'Computer';
}
}
function get_filemanager_url($ftp_host, $account_username, $account_password, $domain = '')
{ {
$ftp = str_replace('cpanel', 'ftp', $api_cpanel_url);
$params = base64_encode( $params = base64_encode(
json_encode( json_encode(
array( array(
@ -15,7 +161,7 @@ function get_filemanager_url($api_cpanel_url, $account_username, $account_passwo
) )
) )
); );
return 'https://filemanager.ai/new/#/c/' . $ftp . '/' . $account_username . '/' . $params; return 'https://filemanager.ai/new/#/c/' . $ftp_host . '/' . $account_username . '/' . $params;
} }
function upload_image($image) function upload_image($image)
@ -88,6 +234,25 @@ function post($field = '', $default = '')
return $_POST[$field]; return $_POST[$field];
} }
/**
* API Response
*/
function send_response($code = 200, $data = NULL, $msg = 'Error')
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
// header("Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization");
header("Content-Type: application/json");
$raw = array(
'code' => $code,
'data' => isset($data) && !empty($data) ? $data : NULL,
'msg' => $msg,
);
$raw = json_encode($raw);
// echo $raw;
exit($raw);
}
// 格式化输出 // 格式化输出
function dump($data = '') function dump($data = '')
{ {

View file

@ -1,14 +1,10 @@
<?php <?php
if (!defined('IN_CRONLITE')) { namespace lib;
// exit('禁止访问');
header("Location: ../index.php");
exit;
}
/** /**
* mofh-whm-api-client * mofh-whm-api-client
*/ */
class Api class MOFHAPI
{ {
public $message = []; public $message = [];

View file

@ -1,160 +0,0 @@
<?php
class UserInfo
{
private static function get_user_agent()
{
return $_SERVER['HTTP_USER_AGENT'];
}
public static function get_ip()
{
$mainIp = '';
if (getenv('HTTP_CLIENT_IP')) {
$mainIp = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$mainIp = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('HTTP_X_FORWARDED')) {
$mainIp = getenv('HTTP_X_FORWARDED');
} else if (getenv('HTTP_FORWARDED_FOR')) {
$mainIp = getenv('HTTP_FORWARDED_FOR');
} else if (getenv('HTTP_FORWARDED')) {
$mainIp = getenv('HTTP_FORWARDED');
} else if (getenv('REMOTE_ADDR')) {
$mainIp = getenv('REMOTE_ADDR');
} else {
$mainIp = 'UNKNOWN';
}
return $mainIp;
}
public static function get_os()
{
$user_agent = self::get_user_agent();
$os_platform = "Unknown OS Platform";
$os_array = array(
'/windows nt 11/i' => 'Windows 11',
'/windows nt 10/i' => 'Windows 10',
'/windows nt 6.3/i' => 'Windows 8.1',
'/windows nt 6.2/i' => 'Windows 8',
'/windows nt 6.1/i' => 'Windows 7',
'/windows nt 6.0/i' => 'Windows Vista',
'/windows nt 5.2/i' => 'Windows Server 2003/XP x64',
'/windows nt 5.1/i' => 'Windows XP',
'/windows xp/i' => 'Windows XP',
'/windows nt 5.0/i' => 'Windows 2000',
'/windows me/i' => 'Windows ME',
'/win98/i' => 'Windows 98',
'/win95/i' => 'Windows 95',
'/win16/i' => 'Windows 3.11',
'/macintosh|mac os x/i' => 'Mac OS X',
'/mac_powerpc/i' => 'Mac OS 9',
'/linux/i' => 'Linux',
'/ubuntu/i' => 'Ubuntu',
'/iphone/i' => 'iPhone',
'/ipod/i' => 'iPod',
'/ipad/i' => 'iPad',
'/android/i' => 'Android',
'/blackberry/i' => 'BlackBerry',
'/webos/i' => 'Mobile',
);
foreach ($os_array as $regex => $value) {
if (preg_match($regex, $user_agent)) {
$os_platform = $value;
}
}
return $os_platform;
}
public static function get_browser()
{
$user_agent = self::get_user_agent();
$browser = "Unknown Browser";
$browser_array = array(
'/msie/i' => 'Internet Explorer',
'/Trident/i' => 'Internet Explorer',
'/firefox/i' => 'Firefox',
'/safari/i' => 'Safari',
'/chrome/i' => 'Chrome',
'/edge/i' => 'Edge',
'/opera/i' => 'Opera',
'/netscape/i' => 'Netscape',
'/maxthon/i' => 'Maxthon',
'/konqueror/i' => 'Konqueror',
'/ubrowser/i' => 'UC Browser',
'/mobile/i' => 'Handheld Browser',
);
foreach ($browser_array as $regex => $value) {
if (preg_match($regex, $user_agent)) {
$browser = $value;
}
}
return $browser;
}
public static function get_device()
{
$tablet_browser = 0;
$mobile_browser = 0;
if (preg_match('/(tablet|ipad|playbook)|(android(?!.*(mobi|opera mini)))/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$tablet_browser++;
}
if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|iemobile)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$mobile_browser++;
}
if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']), 'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$mobile_browser++;
}
$mobile_ua = strtolower(substr(self::get_user_agent(), 0, 4));
$mobile_agents = array(
'w3c ', 'acs-', 'alav', 'alca', 'amoi', 'audi', 'avan', 'benq', 'bird', 'blac',
'blaz', 'brew', 'cell', 'cldc', 'cmd-', 'dang', 'doco', 'eric', 'hipt', 'inno',
'ipaq', 'java', 'jigs', 'kddi', 'keji', 'leno', 'lg-c', 'lg-d', 'lg-g', 'lge-',
'maui', 'maxo', 'midp', 'mits', 'mmef', 'mobi', 'mot-', 'moto', 'mwbp', 'nec-',
'newt', 'noki', 'palm', 'pana', 'pant', 'phil', 'play', 'port', 'prox',
'qwap', 'sage', 'sams', 'sany', 'sch-', 'sec-', 'send', 'seri', 'sgh-', 'shar',
'sie-', 'siem', 'smal', 'smar', 'sony', 'sph-', 'symb', 't-mo', 'teli', 'tim-',
'tosh', 'tsm-', 'upg1', 'upsi', 'vk-v', 'voda', 'wap-', 'wapa', 'wapi', 'wapp',
'wapr', 'webc', 'winw', 'winw', 'xda ', 'xda-');
if (in_array($mobile_ua, $mobile_agents)) {
$mobile_browser++;
}
if (strpos(strtolower(self::get_user_agent()), 'opera mini') > 0) {
$mobile_browser++;
//Check for tablets on opera mini alternative headers
$stock_ua = strtolower(isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) ? $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'] : (isset($_SERVER['HTTP_DEVICE_STOCK_UA']) ? $_SERVER['HTTP_DEVICE_STOCK_UA'] : ''));
if (preg_match('/(tablet|ipad|playbook)|(android(?!.*mobile))/i', $stock_ua)) {
$tablet_browser++;
}
}
if ($tablet_browser > 0) {
// do something for tablet devices
return 'Tablet';
} else if ($mobile_browser > 0) {
// do something for mobile devices
return 'Mobile';
} else {
// do something for everything else
return 'Computer';
}
}
}

View file

@ -1,5 +1,5 @@
<?php <?php
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_account` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_account` (
`account_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT "主机账号ID", `account_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT "主机账号ID",
`account_client_id` INT(11) NOT NULL COMMENT "所属客户ID", `account_client_id` INT(11) NOT NULL COMMENT "所属客户ID",
`account_key` VARCHAR(8) NOT NULL, `account_key` VARCHAR(8) NOT NULL,
@ -13,22 +13,37 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_account` (
PRIMARY KEY (`account_id`) PRIMARY KEY (`account_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_account_api` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_account_api` (
`api_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `api_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`api_type` varchar(30) NOT NULL,
`api_key` varchar(30) NOT NULL, `api_key` varchar(30) NOT NULL,
`api_username` VARCHAR(256) NOT NULL, `api_username` varchar(256) NOT NULL,
`api_password` VARCHAR(256) NOT NULL, `api_password` varchar(256) NOT NULL,
`api_cpanel_url` VARCHAR(100) NOT NULL, `api_cpanel_url` varchar(100) NOT NULL,
`api_server_ip` VARCHAR(15) NOT NULL, `api_server_ip` varchar(15) NOT NULL,
`api_ns_1` VARCHAR(30) NOT NULL, `api_server_domain` varchar(100) NOT NULL,
`api_ns_2` VARCHAR(30) NOT NULL, `api_server_ftp_domain` varchar(100) NOT NULL,
`api_server_sql_domain` varchar(100) NOT NULL,
`api_ns_1` varchar(30) NOT NULL,
`api_ns_2` varchar(30) NOT NULL,
`api_ns_3` varchar(30) NOT NULL, `api_ns_3` varchar(30) NOT NULL,
`api_package` VARCHAR(20) NOT NULL, `api_package` varchar(20) NOT NULL,
`api_callback_token` varchar(32) NOT NULL, `api_callback_token` varchar(32) NOT NULL,
PRIMARY KEY (`api_id`) PRIMARY KEY (`api_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_config` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_account_callback` (
`callback_id` int(11) NOT NULL AUTO_INCREMENT,
`callback_date` varchar(30) NOT NULL COMMENT "日期",
`callback_client_id` int(11) DEFAULT NULL COMMENT "所属客户ID",
`callback_username` varchar(22) NOT NULL COMMENT "主机账号用户名",
`callback_action` varchar(30) NOT NULL COMMENT "操作事件",
`callback_comments` varchar(500) DEFAULT NULL COMMENT "备注信息",
`callback_raw` text NOT NULL COMMENT "接收的完整数据",
PRIMARY KEY (`callback_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_config` (
`site_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `site_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`site_key` varchar(20) NOT NULL, `site_key` varchar(20) NOT NULL,
`site_status` int(2) NOT NULL, `site_status` int(2) NOT NULL,
@ -47,7 +62,7 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_config` (
PRIMARY KEY (`site_id`) PRIMARY KEY (`site_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_builder_api` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_builder_api` (
`id` INT(10) unsigned NOT NULL AUTO_INCREMENT, `id` INT(10) unsigned NOT NULL AUTO_INCREMENT,
`builder_id` VARCHAR(7) NOT NULL, `builder_id` VARCHAR(7) NOT NULL,
`builder_username` VARCHAR(100) NOT NULL, `builder_username` VARCHAR(100) NOT NULL,
@ -55,7 +70,7 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_builder_api`
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_clients` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_clients` (
`client_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `client_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`client_fname` VARCHAR(30) NOT NULL, `client_fname` VARCHAR(30) NOT NULL,
`client_lname` VARCHAR(30) NOT NULL, `client_lname` VARCHAR(30) NOT NULL,
@ -74,13 +89,13 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_clients` (
PRIMARY KEY (`client_id`) PRIMARY KEY (`client_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_domain_extensions` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_domain_extensions` (
`extension_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `extension_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`extension_value` VARCHAR(70) NOT NULL, `extension_value` VARCHAR(70) NOT NULL,
PRIMARY KEY (`extension_id`) PRIMARY KEY (`extension_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_smtp` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_smtp` (
`id` INT(10) unsigned NOT NULL AUTO_INCREMENT, `id` INT(10) unsigned NOT NULL AUTO_INCREMENT,
`smtp_key` VARCHAR(4) NOT NULL, `smtp_key` VARCHAR(4) NOT NULL,
`smtp_host` VARCHAR(50) NOT NULL, `smtp_host` VARCHAR(50) NOT NULL,
@ -91,14 +106,14 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_smtp` (
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_ssl` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_ssl` (
`ssl_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `ssl_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`ssl_client_id` INT(11) NOT NULL COMMENT "所属客户ID", `ssl_client_id` INT(11) NOT NULL COMMENT "所属客户ID",
`ssl_key` INT(12) NOT NULL, `ssl_key` INT(12) NOT NULL,
PRIMARY KEY (`ssl_id`) PRIMARY KEY (`ssl_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_ssl_api` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_ssl_api` (
`id` INT(10) unsigned NOT NULL AUTO_INCREMENT, `id` INT(10) unsigned NOT NULL AUTO_INCREMENT,
`api_key` VARCHAR(7) NOT NULL, `api_key` VARCHAR(7) NOT NULL,
`api_username` VARCHAR(256) NOT NULL, `api_username` VARCHAR(256) NOT NULL,
@ -106,7 +121,7 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_ssl_api` (
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_tickets` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_tickets` (
`ticket_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `ticket_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`ticket_client_id` INT(11) NOT NULL COMMENT "所属客户ID", `ticket_client_id` INT(11) NOT NULL COMMENT "所属客户ID",
`ticket_subject` VARCHAR(50) NOT NULL, `ticket_subject` VARCHAR(50) NOT NULL,
@ -118,7 +133,7 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_tickets` (
PRIMARY KEY (`ticket_id`) PRIMARY KEY (`ticket_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_ticket_replies` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_ticket_replies` (
`reply_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `reply_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`reply_for` INT(11) NOT NULL, `reply_for` INT(11) NOT NULL,
`reply_from` VARCHAR(8) NOT NULL, `reply_from` VARCHAR(8) NOT NULL,
@ -127,7 +142,7 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_ticket_replie
PRIMARY KEY (`reply_id`) PRIMARY KEY (`reply_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_admin` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_admin` (
`admin_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `admin_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`admin_fname` VARCHAR(30) NOT NULL, `admin_fname` VARCHAR(30) NOT NULL,
`admin_lname` VARCHAR(30) NOT NULL, `admin_lname` VARCHAR(30) NOT NULL,
@ -137,11 +152,11 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_admin` (
PRIMARY KEY (`admin_id`) PRIMARY KEY (`admin_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, "INSERT INTO `hosting_account_api`(`api_key`, `api_username`, `api_password`, `api_cpanel_url`, `api_server_ip`, `api_ns_1`, `api_ns_2`, `api_package`) VALUES ('myownfreehost','MOFH API Username','MOFH API Password','cpanel.example.com','185.27.134.46','ns1.byet.org','ns2.byet.org','freehosting')"); $sql = mysqli_query($connect, "INSERT INTO `uiisc_account_api`(`api_key`, `api_username`, `api_password`, `api_cpanel_url`, `api_server_ip`, `api_ns_1`, `api_ns_2`, `api_package`) VALUES ('myownfreehost','MOFH API Username','MOFH API Password','cpanel.example.com','185.27.134.46','ns1.byet.org','ns2.byet.org','freehosting')");
$sql = mysqli_query($connect, "INSERT INTO `hosting_smtp`(`smtp_key`, `smtp_host`, `smtp_username`, `smtp_password`, `smtp_port`, `smtp_from`) VALUES ('SMTP','smtp.gmail.com','example@gmail.com','example123','587','example@gmail.com')"); $sql = mysqli_query($connect, "INSERT INTO `uiisc_smtp`(`smtp_key`, `smtp_host`, `smtp_username`, `smtp_password`, `smtp_port`, `smtp_from`) VALUES ('SMTP','smtp.gmail.com','example@gmail.com','example123','587','example@gmail.com')");
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_knowledgebase` ( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_knowledgebase` (
`knowledgebase_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, `knowledgebase_id` INT(11) unsigned NOT NULL AUTO_INCREMENT,
`knowledgebase_subject` VARCHAR(200) NOT NULL, `knowledgebase_subject` VARCHAR(200) NOT NULL,
`knowledgebase_content` VARCHAR(10000) NOT NULL, `knowledgebase_content` VARCHAR(10000) NOT NULL,
@ -149,13 +164,13 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_knowledgebase
PRIMARY KEY (`knowledgebase_id`) PRIMARY KEY (`knowledgebase_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, "INSERT INTO `hosting_ssl_api`(`api_key`, `api_username`, `api_password`) VALUES ('FREESSL','example@gmail.com','SSL API Password')"); $sql = mysqli_query($connect, "INSERT INTO `uiisc_ssl_api`(`api_key`, `api_username`, `api_password`) VALUES ('FREESSL','example@gmail.com','SSL API Password')");
$sql = mysqli_query($connect, "INSERT INTO `hosting_builder_api`(`builder_id`, `builder_username`, `builder_password`) VALUES ('SITEPRO','apikey0','API Password')"); $sql = mysqli_query($connect, "INSERT INTO `uiisc_builder_api`(`builder_id`, `builder_username`, `builder_password`) VALUES ('SITEPRO','apikey0','API Password')");
$sql = mysqli_query($connect, "INSERT INTO `hosting_domain_extensions`(`extension_value`) VALUES ('.example.com')"); $sql = mysqli_query($connect, "INSERT INTO `uiisc_domain_extensions`(`extension_value`) VALUES ('.example.com')");
$sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_news`( $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `uiisc_news`(
`news_id` INT(11) NOT NULL AUTO_INCREMENT, `news_id` INT(11) NOT NULL AUTO_INCREMENT,
`news_subject` VARCHAR(255) NOT NULL, `news_subject` VARCHAR(255) NOT NULL,
`news_content` VARCHAR(5000) NOT NULL, `news_content` VARCHAR(5000) NOT NULL,
@ -165,12 +180,13 @@ $sql = mysqli_query($connect, 'CREATE TABLE IF NOT EXISTS `hosting_news`(
PRIMARY KEY(`news_id`) PRIMARY KEY(`news_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;'); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;');
$sql = mysqli_query($connect, "CREATE TABLE IF NOT EXISTS `hosting_emails`( $sql = mysqli_query($connect, "CREATE TABLE IF NOT EXISTS `uiisc_emails`(
`email_id` INT(11) NOT NULL AUTO_INCREMENT, `email_id` INT(11) NOT NULL AUTO_INCREMENT,
`email_client_id` INT(11) NOT NULL COMMENT '所属客户ID', `email_client_id` INT(11) NOT NULL COMMENT '所属客户ID',
`email_date` VARCHAR(255) NOT NULL, `email_date` VARCHAR(255) NOT NULL COMMENT '邮件发送日期',
`email_subject` VARCHAR(255) NOT NULL, `email_to` VARCHAR(255) NOT NULL COMMENT '邮件接收人',
`email_body` VARCHAR(5000) NOT NULL, `email_subject` VARCHAR(255) NOT NULL COMMENT '邮件主题',
`email_read` INT(1) NOT NULL DEFAULT '0', `email_body` TEXT NOT NULL COMMENT '邮件内容',
`email_read` INT(1) NOT NULL DEFAULT '0' COMMENT '站内消息是否阅读',
PRIMARY KEY(`email_id`) PRIMARY KEY(`email_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;"); ) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4;");

View file

@ -14,7 +14,7 @@ $FormData = array(
'site_email' => $_POST['site_email'], 'site_email' => $_POST['site_email'],
); );
$sql = mysqli_query($connect, "INSERT INTO `hosting_config` (`site_key`,`site_name`,`site_brand`,`site_company`,`site_path`,`site_email`,`site_status`) $sql = mysqli_query($connect, "INSERT INTO `uiisc_config` (`site_key`,`site_name`,`site_brand`,`site_company`,`site_path`,`site_email`,`site_status`)
VALUES VALUES
('UIISC','" . $FormData['site_name'] . "','" . $FormData['site_brand'] . "','" . $FormData['site_company'] . "','" . $FormData['site_path'] . "','" . $FormData['site_email'] . "','1')" ('UIISC','" . $FormData['site_name'] . "','" . $FormData['site_brand'] . "','" . $FormData['site_company'] . "','" . $FormData['site_path'] . "','" . $FormData['site_email'] . "','1')"
); );

View file

@ -14,7 +14,7 @@ $FormData = array(
'key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8), 'key' => substr(str_shuffle('qwertyuioplkjhgfdsazxcvbnm012345789QWERTYUIOPLKJHGFDSAZXCVBNM'), 0, 8),
); );
$sql = mysqli_query($connect, "INSERT INTO `hosting_admin` (`admin_fname`, `admin_lname`, `admin_email`, `admin_key`, `admin_password`) VALUES $sql = mysqli_query($connect, "INSERT INTO `uiisc_admin` (`admin_fname`, `admin_lname`, `admin_email`, `admin_key`, `admin_password`) VALUES
('" . $FormData['fname'] . "', '" . $FormData['lname'] . "', '" . $FormData['email'] . "','" . $FormData['key'] . "', '" . $FormData['password'] . "')"); ('" . $FormData['fname'] . "', '" . $FormData['lname'] . "', '" . $FormData['email'] . "','" . $FormData['key'] . "', '" . $FormData['password'] . "')");
if ($sql) { if ($sql) {

View file

@ -11,7 +11,7 @@ $username = $_POST['username'];
$password = $_POST['password']; $password = $_POST['password'];
$dbname = $_POST['dbname']; $dbname = $_POST['dbname'];
$dbport = !empty($_POST['dbport']) ? $_POST['dbport'] : 3306; $dbport = !empty($_POST['dbport']) ? $_POST['dbport'] : 3306;
$prefix = isset($_POST['prefix']) ? $_POST['prefix'] : 'hosting'; $prefix = !empty($_POST['prefix']) ? $_POST['prefix'] : 'hosting';
@file_put_contents(CONFIG_FILE, "<?php @file_put_contents(CONFIG_FILE, "<?php
\$dbconfig = array( \$dbconfig = array(