Эта функция выполняет команду, заданную пользователем. Этот скрипт просто для удобства! 1. Создаете файл .php и заливаете
Code
перезагрузки серверной машины в случае сбоя в ОС.
*/
//--------------------------------
//--------------------------------
//--------------------------------
//-- логин и пароль для доступа к скрипту:
$login="";
$pass="";
//-- база:
$dbhost="127.0.0.1";
$dbuser="root";
$dbpass="***";
$db="realmd";
$ipadmin = array(
//--- Сдесь хранятся IP админов и игроков, которым разрешен доступ
//-- ниже приведены 2 примера:
"",
"127.0.0.1", // admin
);
//--- Сдесь хранятся URL страницы форума и главной страницы вашего сайта
$refresh="";
$forum="";
//--- Сдесь хранится адрес дерриктории ядра mangos
$derrictory="c:\Mangos";
//---------------------------------
// Начало проверки IP, которым разрешен доступ
//---------------------------------
if (!in_array(getenv('REMOTE_ADDR'), $ipadmin)) {header("Location: $refresh"); exit();}
//---------------------------------
// конец проверки IP
//---------------------------------
//---------------------------------
//--- Начало проверки по логину и пассу
//---------------------------------
if ($login!==false && (!isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER']!=$login || $_SERVER['PHP_AUTH_PW']!=$pass))
{
header("WWW-Authenticate: Basic realm=\"Vash IP proshel proverku. Teperi vvedite login i paroli.\"");
header("HTTP/1.0 401 Unauthorized");
//---------------------------------
//здесь заканчиваетя проверка на IP, если IP не совпал, то он перемещается на главную страницу //сайта
//---------------------------------
exit("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL={$refresh}\"><h1>Сейчас вы будете перенесены на главную страницу.</h1>\n");
}
$act =@$_GET["act"];
//---------------------------------
//--- Конец проверки по логину и пассу
//---------------------------------
//---------------------------------
//--- Начало построения страницы
//---------------------------------
?>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
.btndepp{
width: 100px;
font-size: 19px;
color: black;
text-align:center;
border:5px solid blue;
background-color: black;
margin:0;
}
body {background-color: 000000;}
BODY, TD {
font-family : VERDANA ;
font-size : 19px;
color: darkviolet;
}
A {
text-decoration: none;
color: darkviolet;
}
A:Hover {
text-decoration: underline;
color: blue;
}
</style>
<h1><FONT COLOR="blue">Панель помошника администратора WoW <FONT COLOR="red">sarsen</FONT></FONT></h1>
<hr>
<A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>">Панель действий</A> | <A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=log">Лог</A> | <A HREF="<?php print $refresh; ?>" target="_blank">Главная страница</A> | <A HREF="<?php print $forum; ?>" target="_blank">Форум</A>
<hr>
<?php
//---------------------------------
//--- Главная страница действий
//---------------------------------
if (!isset($act))
{
?>
<font color=red><B>
Все действия фиксируются! Убедитесь перед тем как убивать сервер, что он в дауне или висит!<BR>
Проверьте <A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=log">Лог</A> - сервер могли уже убить.
</B></font><BR>
<BR>
<A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=km" class="btndepp">Убить TrinityCore.exe</A> - Убивает процесс TrinityCore.exe, если TrinityCore.exe "повис" или "в дауне".
<BR><BR>
<A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=kr" class="btndepp">Убить TrinityRealm.exe</A> - Убивает процесс TrinityRealm.exe, если TrinityRealm.exe "повис" или "в дауне".
<BR><BR>
<A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=sm" class="btndepp">Запустить TrinityCore.exe</A> - Запускает TrinityCore.exe, если TrinityCore.exe не запущен. Используйте, если сработало действие "Убить TrinityCore.exe" или сервер не запущен.
<BR><BR>
<A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=sr" class="btndepp">Запустить TrinityRealm.exe</A> - Запускает TrinityRealm.exe, если TrinityRealm.exe не запущен. Используйте, если сработало действие "Убить TrinityRealm.exe" или сервер не запущен.
<BR><BR>
<A HREF="<?php print $_SERVER["SCRIPT_NAME"]; ?>?act=rc" class="btndepp">Перезагрузить компьютер</A> - клавиша перегружает компьютер.
<?php
}
//---------------------------------
//--- Коннект к базе
//---------------------------------
$ms = mysql_connect($dbhost,$dbuser,$dbpass) or die(__LINE__." - Нет связи с БД");
if (mysql_get_server_info()>"4.1")
mysql_unbuffered_query("SET NAMES cp1251");
mysql_select_db($db,$ms) or die(__LINE__."<BR>Нет базы ".DB);
chdir ($derrictory);
//---------------------------------
//--- Функции вывода из зависания
//---------------------------------
function killmangosd() {shell_exec("taskkill /F /IM TrinityCore.exe /T");}
function killrealmd() {shell_exec("taskkill /F /IM TrinityRealm.exe /T");}
function startmangosd() {shell_exec("taskkill /F /IM TrinityCore.exe /T");shell_exec("start TrinityCore.exe");}
function startrealmd() {shell_exec("taskkill /F /IM TrinityRealm.exe /T");shell_exec("start TrinityRealm.exe");}
function restartcomp() {shell_exec("shutdown -r -t 1");}
//---------------------------------
//--- Вывод из зависания и лог доступа
//---------------------------------
if ($act=='km')
{
killmangosd();
$date=time();
$actfix=mysql_query("INSERT INTO `helpers` VALUES ('', '$_SERVER[REMOTE_ADDR]', '$date', '1');");
if ($actfix==1) {print "<BR><BR><font color=green><B>Действие \"Убить TrinityCore.exe\" зафиксировано.</B></font>";}
else { print "<BR><BR><font color=red><B>Действие \"Убить TrinityCore.exe\" не поможет, так как слетела база MySQL. Перегрузите компьютер.</B></font>"; }
}
if ($act=='kr')
{
killrealmd();
$date=time();
$actfix=mysql_query("INSERT INTO `helpers` VALUES ('', '$_SERVER[REMOTE_ADDR]', '$date', '2');");
if ($actfix==1) {print "<BR><BR><font color=green><B>Действие \"Убить TrinityRealm.exe\" зафиксировано.</B></font>";}
else { print "<BR><BR><font color=red><B>Действие \"Убить TrinityRealm.exe\" не поможет, так как слетела база MySQL. Перегрузите компьютер.</B></font>"; }
}
if ($act=='sm')
{
startmangosd();
$date=time();
$actfix=mysql_query("INSERT INTO `helpers` VALUES ('', '$_SERVER[REMOTE_ADDR]', '$date', '3');");
if ($actfix==1) {print "<BR><BR><font color=green><B>Действие \"Запустить TrinityCore.exe\" зафиксировано.</B></font>";}
}
if ($act=='sr')
{
startrealmd();
$date=time();
$actfix=mysql_query("INSERT INTO `helpers` VALUES ('', '$_SERVER[REMOTE_ADDR]', '$date', '4');");
if ($actfix==1) {print "<BR><BR><font color=green><B>Действие \"Запустить TrinityRealm.exe\" зафиксировано.</B></font>";}
}
if ($act=='log') {
$sqlview=mysql_query("SELECT * FROM `helpers` ORDER BY `date` DESC LIMIT 10;");
if ($sqlview)
{
if ($act=='rc')
{
restartcomp();
$date=time();
$actfix=mysql_query("INSERT INTO `helpers` VALUES ('', '$_SERVER[REMOTE_ADDR]', '$date', '5');");
if ($actfix==1) {print "<BR><BR><font color=green><B>Действие \"Перезагрузить компьютер\" зафиксировано.</B></font>";}
}
?>
<U><B>Лог действий</B></U> <font size="2"><I>(показано 10 последних)</I></font><U><B>:</B></U>
<TABLE width=350 cellpadding=0 cellspacing=0 border=0>
<TR><td>IP:</td><TD>Дата</TD><TD>Действие</TD></tr>
<?php
while ($row = mysql_fetch_array($sqlview, MYSQL_ASSOC))
{
$show_date=date("d/m/Y - H:i:s", $row['date']);
switch ($row["act"])
{
case "1": $action = "Убить TrinityCore.exe"; break;
case "2": $action = "Убить TrinityRealm.exe"; break;
case "3": $action = "Запустить TrinityCore.exe"; break;
case "4": $action = "Запустить TrinityRealm.exe"; break;
case "5": $action = "<font color=\"#993333\">Перезагрузка компьютера</font>"; break;
}
echo ("<tr>
<TD width=100><font face=arial size=1>".$row["IP"]."</font></TD>
<TD width=150><font face=arial size=1>".$show_date."</font></TD>
<TD width=200><font face=arial size=1>".$action."</font></TD>
</tr>"
);
}
?>
</TABLE>
<?php
}
else
{
print "<center><font color=red>Ошибка извлечения информации из базы данных!</font></center>";
echo("<BR>Ошибка: ".mysql_error()."!");
}
}
mysql_close();
//---------------------------------
//--- Конец вывода из зависания и лога
//---------------------------------
//---------------------------------
//--- конец построения документа:
//---------------------------------
?>
<BR><BR>
<center><font size=1>WoW © 2009</font></center>
Редактируете под себя ! Далее льем в базу realmd
Code
CREATE TABLE `helpers` (
`id` int(6) NOT NULL auto_increment,
`IP` varchar(15) NOT NULL,
`date` int(10) NOT NULL,
`act` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
Все готово!