<?php
require_once("rcon_code.php");
# Set Defaults
$OUTPUT = "No Output - Submit a Command";
# GET and SEND Post data
if ($_POST)
{
$IP = $_POST["IP"] = "ip"
$PORT = $_POST["PORT"] = "port";
$PASSWORD = $_POST["PASSWORD"] = "pass";
$COMMAND = $_POST["COMMAND"] = "status";
$srcds_rcon = new srcds_rcon();
$OUTPUT = $srcds_rcon->rcon_command($IP, $PORT, $PASSWORD, $COMMAND);
}
# Display Form
print ("<html>
<head>
<link rel='stylesheet' type='text/css' href='style.css'>
</head>
<body><noscript><div class='title'><font color='#FF0000'><b>WARNING!</b></font> Javascript is disabled. Some functions will not operate!</div><br></noscript>
<div class='title'><img src='ruckmanrcon.png'></div><br>
<table class='maintable'>
<tr>
<td class='custom'>
<font class='info'>Login:</font><br><hr>
<form action='rcon.php' method='post' name='CUSTOMCOMMAND'>
</td>
<td rowspan='3' class='txtarea'>
RCON Output:<br><hr><textarea rows='30' cols='110'>$OUTPUT</textarea>
</td></tr>
<tr>
<td class='custom'>
<font class='info'>Custom Command:</font><br><hr>
<input type='text' name='COMMAND' /><input type='submit' value='Submit'><br>
</form>
</td>
</tr>
<tr>
<td class='custom'>
<font class='info'>Common Commands:</font><br><hr><form name='COMMONCOMMANDS'>
<input type='button' value='Server Status' onclick='serverstatus()'>
<input type='button' value='Map List' onclick='maplist()'>
<input type='button' value='Restart' onclick='restart()'>
<br>
<input type='text' name='MAPNAME' value='Map Name'><input type='button' value='Change Map' onclick='changemap()'>
<br>
<input type='text' size='5' name='KICKID' value='ID'><input type='text' name='KICKREASON' value='Reason'><input type='button' value='Kick ID' onclick='kickid()'>
<br>
<input type='text' name='SEARCH' value=''><input type='button' value='CVAR Search' onclick='search()'>
<br>
<input type='text' name='SAY' value=''><input type='button' value='Say' onclick='say()'>
</form></td>
</table>
</body>
</html>");
?>
print ("<html>
<head>
<title>Source RCON by William Ruckman (http://ruckman.net)</title>
<link rel='stylesheet' type='text/css' href='style.css'>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js'></script>
<script>
/* Article FructCode.com */
$( document ).ready(function() {
$('#btn').click(
function(){
sendAjaxForm('OUTPUT', 'consoleform', 'consoleform.php');
return false;
}
);
});
function sendAjaxForm(OUTPUT, consoleform, url) {
$.ajax({
url: url, //url страницы (consoleform.php)
type: 'POST', //метод отправки
dataType: 'html', //формат данных
data: $('#'+consoleform).serialize(), // Сеарилизуем объект
success: function(response) { //Данные отправлены успешно
result = $.parseJSON(response);
$('#OUTPUT').html('Имя: '+result.CUSTOMCOMMAND);
},
error: function(response) { // Данные не отправлены
$('#OUTPUT').html('Ошибка. Данные не отправлены.');
}
});
}
</script>
<form method='POST' action='' id='consoleform' name='CUSTOMCOMMAND'>
<textarea rows='30' cols='110' id='result_form'>$OUTPUT #OUTPUT</textarea>
<input type='text' name='COMMAND' />
<input class='consoleform_btn' tabindex='4' type='submit' name='sndbtn' value='Отправить' />
</form>
");
?>
/* Article FructCode.com */
$( document ).ready(function() {
$("#btn").click(
function(){
sendAjaxForm('result_form', 'ajax_form', 'action_ajax_form.php');
return false;
}
);
});
function sendAjaxForm(result_form, ajax_form, url) {
$.ajax({
url: url, //url страницы (action_ajax_form.php)
type: "POST", //метод отправки
dataType: "html", //формат данных
data: $("#"+ajax_form).serialize(), // Сеарилизуем объект
success: function(response) { //Данные отправлены успешно
result = $.parseJSON(response);
$('#result_form').html('Имя: '+result.CUSTOMCOMMAND);
},
error: function(response) { // Данные не отправлены
$('#result_form').html('Ошибка. Данные не отправлены.');
}
});
}
<?php
if (isset($_POST["CUSTOMCOMMAND"]) ) {
// Формируем массив для JSON ответа
$result = array(
'CUSTOMCOMMAND' => $_POST["CUSTOMCOMMAND"],
);
// Переводим массив в JSON
echo json_encode($result);
}
?>
<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<title>Article FRUCTCODE.COM. How to send html-form with Ajax.</title>
<meta name='description' content='Article FRUCTCODE.COM. How to send ajax form.'>
<meta name='author' content='fructcode.com'>
</head>
<body>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js'></script>
<script src='ajax.js'></script>
</head>
<body>
<form method='post' id='ajax_form' name'CUSTOMCOMMAND' action='/' >
<textarea rows='30' cols='110'>$OUTPUT</textarea>
<input type='text' name='CUSTOMCOMMAND' placeholder='NAME' />
<input type='button' id='btn' value='No' /><br>
<input type='text' name='COMMAND' />
<input type='submit' id='btn' value='yes'><br>
</form>
<br>
<div id='result_form'><div>
</body>
</html>
...
</head>
<body>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js'></script>
<script src='ajax.js'></script>
</head>
<body>
...
</body>
....
$("#btn").click(
function(event){
event.preventDefault();
...
<?php
# Source RCON by William Ruckman (http://ruckman.net)
require_once("rcon_code.php");
# Set Defaults
$OUTPUT = "privet";
# GET and SEND Post data
if ($_POST)
{
$IP = $_POST["IP"] = "ip iz bd";
$PORT = $_POST["PORT"] = "port iz bd";
$PASSWORD = $_POST["PASSWORD"] = "rcon pass";
$COMMAND = $_POST["COMMAND"];
$srcds_rcon = new srcds_rcon();
$OUTPUT = $srcds_rcon->rcon_command($IP, $PORT, $PASSWORD, $COMMAND);
}
# Display Form
print ("
<!doctype html>
<html lang='en'>
<head>
<meta charset='utf-8'>
</head>
<body>
<form method='post' id='ajax_form' name'CUSTOMCOMMAND' action='/' >
<textarea rows='30' cols='110'>$OUTPUT</textarea> <br>
<input type='text' name='COMMAND' />
<input type='submit' id='btn' value='Отправить'><br>
</form>
<div id='result_form'><div>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js'></script>
<script src='ajax.js'></script>
</body>
</html>
");
?>
<?php
define('PACKET_SIZE', '1400');
define('SERVERQUERY_INFO', "\xFF\xFF\xFF\xFFTSource Engine Query");
define ('REPLY_INFO', "\x49");
define('SERVERQUERY_GETCHALLENGE', "\xFF\xFF\xFF\xFF\x57");
define ('REPLY_GETCHALLENGE', "\x41");
define('SERVERDATA_AUTH', 3) ;
define ('SERVERDATA_EXECCOMMAND', 2) ;
class srcds_rcon
{
private function getByte(&$string)
{
$data = substr($string, 0, 1);
$string = substr($string, 1);
$data = unpack('Cvalue', $data);
return $data['value'];
}
private function getShortUnsigned(&$string)
{
$data = substr($string, 0, 2);
$string = substr($string, 2);
$data = unpack('nvalue', $data);
return $data['value'];
}
private function getShortSigned(&$string)
{
$data = substr($string, 0, 2);
$string = substr($string, 2);
$data = unpack('svalue', $data);
return $data['value'];
}
private function getLong(&$string)
{
$data = substr($string, 0, 4);
$string = substr($string, 4);
$data = unpack('Vvalue', $data);
return $data['value'];
}
private function getFloat(&$string)
{
$data = substr($string, 0, 4);
$string = substr($string, 4);
$array = unpack("fvalue", $data);
return $array['value'];
}
private function getString(&$string)
{
$data = "";
$byte = substr($string, 0, 1);
$string = substr($string, 1);
while (ord($byte) != "0")
{
$data .= $byte;
$byte = substr($string, 0, 1);
$string = substr($string, 1);
}
return $data;
}
public function rcon_command($ip, $port, $password, $command)
{
$requestId = 1;
$s2 = '';
$socket = @fsockopen ('tcp://'.$ip, $port, $errno, $errstr, 30);
if (!$socket)
return 'Unable to connect!';
$data = pack("VV", $requestId, SERVERDATA_AUTH).$password.chr(0).$s2.chr(0);
$data = pack("V",strlen($data)).$data;
fwrite ($socket, $data, strlen($data));
$requestId++ ;
$junk = fread ($socket, PACKET_SIZE);
$string = fread ($socket, PACKET_SIZE);
$size = $this->getLong($string);
$id = $this->getLong($string) ;
if ($id == -1)
{
return 'Authentication Failed!';
}
$data = pack ("VV", $requestId, SERVERDATA_EXECCOMMAND).$command.chr(0).$s2.chr(0) ;
$data = pack ("V", strlen ($data)).$data ;
fwrite ($socket, $data, strlen($data)) ;
$requestId++ ;
$i = 0 ;
$text = '' ;
while ($string = fread($socket, 4))
{
$info[$i]['size'] = $this->getLong($string) ;
$string = fread($socket, $info[$i]['size']) ;
$info[$i]['id'] = $this->getLong ($string) ;
$info[$i]['type'] = $this->getLong ($string) ;
$info[$i]['s1'] = $this->getString ($string) ;
$info[$i]['s2'] = $this->getString ($string) ;
$text .= $info[$i]['s1'];
$i++ ;
return $text;
}
}
}
?>
<?php
if (isset($_POST["CUSTOMCOMMAND"]) ) {
// Формируем массив для JSON ответа
$result = array(
'CUSTOMCOMMAND' => $_POST["COMMAND"],
);
// Переводим массив в JSON
echo json_encode($result);
}
?>
/* Article FructCode.com */
$( document ).ready(function() {
$("#btn").click(
function(){
sendAjaxForm('result_form', 'ajax_form', 'action_ajax_form.php');
return false;
$("#btn").click(
function(event){
event.preventDefault();
}
);
});
function sendAjaxForm(result_form, ajax_form, url) {
$.ajax({
url: url, //url страницы (action_ajax_form.php)
type: "POST", //метод отправки
dataType: "html", //формат данных
data: $("#"+ajax_form).serialize(), // Сеарилизуем объект
success: function(response) { //Данные отправлены успешно
result = $.parseJSON(response);
$('#result_form').html('Имя: '+result.CUSTOMCOMMAND);
},
error: function(response) { // Данные не отправлены
$('#result_form').html('Ошибка. Данные не отправлены.');
}
});
}