mirror of
https://github.com/ZeroDream-CN/PHPMC7
synced 2026-05-18 19:49:53 +08:00
增加多语言支持,修复 utf8mb4 乱码问题
更新版本到 7.3.3325
This commit is contained in:
@@ -20,6 +20,7 @@ class Daemon {
|
||||
$this->daemon = $daemon;
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_fetch_array(mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`daemon` WHERE `id`='{$daemon}'"));
|
||||
if($rs) {
|
||||
$this->id = $rs['id'];
|
||||
@@ -59,6 +60,7 @@ class Daemon {
|
||||
public function getCounts() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`daemon`");
|
||||
$i = 0;
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -75,6 +77,7 @@ class Daemon {
|
||||
public function getOptionList() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`daemon`");
|
||||
$data = "";
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -97,6 +100,7 @@ class Daemon {
|
||||
$uuid = md5(md5(time() . rand(0, 999999)));
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "INSERT INTO `{$db['name']}`.`daemon` (`id`, `name`, `host`, `pass`, `fqdn`, `type`) "
|
||||
. "VALUES (NULL, '{$name}', '{$host}', '{$pass}', '{$fqdn}', '{$type}')");
|
||||
return true;
|
||||
@@ -116,6 +120,7 @@ class Daemon {
|
||||
public function updateDaemon($id, $name, $host, $pass, $fqdn, $type) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`daemon` SET `name`='{$name}', `host`='{$host}', "
|
||||
. "`pass`='{$pass}', `fqdn`='{$fqdn}', `type`='{$type}' WHERE `id`='{$id}'");
|
||||
return true;
|
||||
@@ -130,6 +135,7 @@ class Daemon {
|
||||
public function deleteDaemon($id) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "DELETE FROM `{$db['name']}`.`daemon` WHERE `id`='{$id}'");
|
||||
return true;
|
||||
}
|
||||
@@ -142,6 +148,7 @@ class Daemon {
|
||||
public function getDaemonListAdmin() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`daemon`");
|
||||
$data = "";
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
|
||||
@@ -273,7 +273,7 @@ class Event {
|
||||
echo $sinfo['online'] . "/" . $sinfo['max'] . "/" . $Daemon->fqdn . ":" . $Server->port;
|
||||
exit;
|
||||
} else {
|
||||
echo "/";
|
||||
echo "0/0/0";
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -540,7 +540,10 @@ class Event {
|
||||
if(!preg_match("/^[a-zA-Z0-9\-\_]+$/", $data['Theme'])) {
|
||||
PHPMC::Error()->Println("请填写字段:系统主题");
|
||||
}
|
||||
PHPMC::Option()->saveConfig($data['SiteName'], $data['Description'], $data['Theme']);
|
||||
if(!preg_match("/^[a-zA-Z0-9\-\_]+$/", $data['Lang'])) {
|
||||
PHPMC::Error()->Println("请填写字段:系统语言");
|
||||
}
|
||||
PHPMC::Option()->saveConfig($data['SiteName'], $data['Description'], $data['Theme'], $data['Lang']);
|
||||
echo "系统设置更改成功,您需要刷新网页后设置才会生效。";
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
class Lang {
|
||||
|
||||
public $lang;
|
||||
public $data;
|
||||
|
||||
public function setLang($lang) {
|
||||
$this->lang = $lang;
|
||||
if(file_exists(ROOT . "/include/langs/{$lang}.php")) {
|
||||
include(ROOT . "/include/langs/{$lang}.php");
|
||||
$this->data = $langdata;
|
||||
} else {
|
||||
$this->data = Array();
|
||||
}
|
||||
}
|
||||
|
||||
public function str($text) {
|
||||
$data = $this->data;
|
||||
//file_put_contents(ROOT . "/lang.txt", "'{$text}' => '{$text}'", FILE_APPEND);
|
||||
return isset($data[$text]) ? $data[$text] : $text;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
// PHPMC 7 Version define
|
||||
// Don't change this, because it will interfere your update.
|
||||
define("PHPMC_VERSION", "7.3.3233");
|
||||
define("PHPMC_VERSION", "7.3.3325");
|
||||
|
||||
include(ROOT . "/include/core/PHPMC/Event.php");
|
||||
include(ROOT . "/include/core/PHPMC/User.php");
|
||||
@@ -17,7 +17,8 @@ include(ROOT . "/include/core/PHPMC/Permission.php");
|
||||
include(ROOT . "/include/core/PHPMC/Update.php");
|
||||
include(ROOT . "/include/core/PHPMC/Csrf.php");
|
||||
include(ROOT . "/include/core/PHPMC/Plugin.php");
|
||||
|
||||
include(ROOT . "/include/core/PHPMC/Lang.php");
|
||||
|
||||
class PHPMC {
|
||||
|
||||
public static function Event() {
|
||||
@@ -64,6 +65,10 @@ class PHPMC {
|
||||
return new Plugin();
|
||||
}
|
||||
|
||||
public static function Lang() {
|
||||
return new Lang();
|
||||
}
|
||||
|
||||
public static function Error() {
|
||||
return new WebError();
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ class Option {
|
||||
public function __construct() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`option`");
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
$this->options[$rw[1]] = $rw[2];
|
||||
@@ -22,18 +23,21 @@ class Option {
|
||||
}
|
||||
}
|
||||
|
||||
public function saveConfig($SiteName, $Description, $Theme) {
|
||||
public function saveConfig($SiteName, $Description, $Theme, $Lang) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`option` SET `value`='{$SiteName}' WHERE `key`='SiteName'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`option` SET `value`='{$Description}' WHERE `key`='Description'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`option` SET `value`='{$Theme}' WHERE `key`='Theme'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`option` SET `value`='{$Lang}' WHERE `key`='Lang'");
|
||||
return true;
|
||||
}
|
||||
|
||||
public function updateOption($key, $value) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`option` SET `value`='{$value}' WHERE `key`='{$key}'");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -40,8 +40,9 @@ class Permission {
|
||||
|
||||
public function checkSession($permission) {
|
||||
if(!$this->check($permission)) {
|
||||
$Option = new Option();
|
||||
$Loader = new Loader();
|
||||
echo $Loader->loadPage("403.html", ROOT . "/content/" . Config::Theme() . "/error/");
|
||||
echo $this->check($permission);//$Loader->loadPage("403.html", ROOT . "/content/" . $Option->getOption("Theme") . "/error/");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -57,10 +58,24 @@ class Permission {
|
||||
*/
|
||||
public function serverControlPerm($permission, $server) {
|
||||
$gettag = explode(";", $permission);
|
||||
for($i = 0;$i < count($gettag);$i++) {
|
||||
$getkey = explode(":", $gettag[$i]);
|
||||
if($getkey[0] == "server" && $getkey[1] == $server) {
|
||||
return true;
|
||||
$s = 0;
|
||||
$User = new User();
|
||||
$Profile = $User->getLoginUser();
|
||||
$Server = new Server();
|
||||
$Server->setServer($server);
|
||||
if($Server->uuid == null) {
|
||||
return false;
|
||||
}
|
||||
if($Server->owner == $Profile->id) {
|
||||
return true;
|
||||
} else {
|
||||
for($i = 0;$i < count($gettag);$i++) {
|
||||
$getkey = explode(":", $gettag[$i]);
|
||||
if($getkey[0] == "server") {
|
||||
if($getkey[1] == $server) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -10,6 +10,7 @@ class Profile {
|
||||
if(!empty($username) && preg_match("/^[A-Za-z0-9\-\_]+$/", $username)) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
// Method 1 通过用户名查找用户
|
||||
$rs = mysqli_fetch_array(mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`users` WHERE `username`='{$username}'"));
|
||||
if($rs) {
|
||||
|
||||
@@ -25,6 +25,7 @@ class Server {
|
||||
$this->server = $server;
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
// Method 1 通过服务器 ID 查找服务器
|
||||
$rs = mysqli_fetch_array(mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`servers` WHERE `id`='" . $this->server . "'"));
|
||||
if($rs) {
|
||||
@@ -161,6 +162,7 @@ class Server {
|
||||
$uuid = md5(uniqid(rand(0, 10000000), TRUE));
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "INSERT INTO `{$db['name']}`.`servers` (`id`, `name`, `daemon`, `maxram`, `jar`, `startcommand`, `stopcommand`, `owner`, `status`, `port`, `uuid`, `ftppass`) "
|
||||
. "VALUES (NULL, '{$name}', '{$daemon}', '{$maxram}', '{$jar}', '{$startcommand}', '{$stopcommand}', '{$owner}', '{$status}', '{$port}', '{$uuid}', '{$ftppass}')");
|
||||
$this->setServer($uuid);
|
||||
@@ -186,6 +188,7 @@ class Server {
|
||||
public function updateServer($id, $name, $maxram, $jar, $startcommand, $stopcommand, $owner, $status, $port, $ftppass) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`servers` SET `name`='{$name}', `maxram`='{$maxram}', `jar`='{$jar}', `startcommand`='{$startcommand}', "
|
||||
."`stopcommand`='{$stopcommand}', `owner`='{$owner}', `status`='{$status}', `port`='{$port}', `ftppass`='{$ftppass}' WHERE `id`='{$id}'");
|
||||
return true;
|
||||
@@ -201,6 +204,7 @@ class Server {
|
||||
$this->setServer($id);
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$Daemon = new Daemon();
|
||||
if($Daemon->setDaemon($this->daemon) == null) {
|
||||
return false;
|
||||
@@ -329,6 +333,7 @@ class Server {
|
||||
public function getCounts() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`servers`");
|
||||
$i = 0;
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -346,6 +351,7 @@ class Server {
|
||||
public function getCountsByDaemon($id) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`servers` WHERE `daemon`='{$id}'");
|
||||
$i = 0;
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -363,6 +369,7 @@ class Server {
|
||||
public function getCountsByOwner($id) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`servers` WHERE `owner`='{$id}'");
|
||||
$i = 0;
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -380,13 +387,14 @@ class Server {
|
||||
public function getServerList() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$User = new User();
|
||||
$Profile = $User->getLoginUser();
|
||||
$ownerid = $Profile->id;
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`servers`");
|
||||
$data = "";
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
if(PHPMC::Permission()->check("server:" . $rw[0])) {
|
||||
if(PHPMC::Permission()->check("server:" . $rw[0]) || $rw[7] == $ownerid) {
|
||||
$Daemon = new Daemon();
|
||||
if($Daemon->setDaemon($rw[2]) == null) {
|
||||
PHPMC::Error()->Println("500 Server Internal Error");
|
||||
@@ -409,6 +417,7 @@ class Server {
|
||||
public function getServerListAdmin() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$User = new User();
|
||||
$Profile = $User->getLoginUser();
|
||||
$ownerid = $Profile->id;
|
||||
@@ -421,7 +430,7 @@ class Server {
|
||||
}
|
||||
$Profile = new Profile($rw[7]);
|
||||
$data .= "<div class='server-hover' onclick='selectServer({$rw[0]}, this)'>
|
||||
<h5>{$rw[1]}</h5>
|
||||
<h5>ID:{$rw[0]} 名称:{$rw[1]}</h5>
|
||||
<p>" . $Daemon->fqdn . ":{$rw[9]} | 所有者:" . $Profile->username . "</p>
|
||||
</div>";
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ class User {
|
||||
public function Login($username, $password) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_fetch_array(mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`users` WHERE `username`='{$username}'"));
|
||||
if($rs) {
|
||||
return password_verify(md5($password), $rs['password']);
|
||||
@@ -35,6 +36,7 @@ class User {
|
||||
public function getCounts() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`users`");
|
||||
$i = 0;
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -51,6 +53,7 @@ class User {
|
||||
public function getOptionList($isModifyList = false) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`users`");
|
||||
$data = "";
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -71,6 +74,7 @@ class User {
|
||||
public function getUserListAdmin() {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
$rs = mysqli_query($conn, "SELECT * FROM `{$db['name']}`.`users`");
|
||||
$data = "";
|
||||
while($rw = mysqli_fetch_row($rs)) {
|
||||
@@ -96,6 +100,7 @@ class User {
|
||||
$uuid = md5(md5(time() . rand(0, 999999)));
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "INSERT INTO `{$db['name']}`.`users` (`id`, `username`, `password`, `email`, `permission`) "
|
||||
. "VALUES (NULL, '{$username}', '{$password}', '{$email}', '{$permission}')");
|
||||
return true;
|
||||
@@ -114,6 +119,7 @@ class User {
|
||||
public function updateUser($id, $username, $password = false, $email, $permission) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
if($password) {
|
||||
mysqli_query($conn, "UPDATE `{$db['name']}`.`users` SET `username`='{$username}', `password`='{$password}', "
|
||||
. "`email`='{$email}', `permission`='{$permission}' WHERE `id`='{$id}'");
|
||||
@@ -133,6 +139,7 @@ class User {
|
||||
public function deleteUser($id) {
|
||||
$db = Config::MySQL();
|
||||
$conn = mysqli_connect($db['host'], $db['user'], $db['pass'], $db['name'], $db['port']);
|
||||
mysqli_query($conn, "set names 'utf8mb4'");
|
||||
mysqli_query($conn, "DELETE FROM `{$db['name']}`.`users` WHERE `id`='{$id}'");
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user