SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Filterscripts > Tools and Files

Reply
 
Thread Tools Display Modes
Old 04/12/2014, 12:47 PM   #1
mrsh
Big Clucker
 
mrsh's Avatar
 
Join Date: Sep 2011
Location: nmap -sS mrsh Name: Shayan
Posts: 50
Reputation: 12
Default SAMP Server Status PHP (AJAX/NON-AJAX)


SAMP Server Status PHP v1.1B

Ajax Version (High Performance Servers):

PHP Code:
<?php
$serverIP 
"10.20.30.40";
$serverPort 7777;
?>
<html oncontextmenu="return false">
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">
<div class="wrapper" id="weapper">
<center>
<?php

function sanitize_output($buffer) {

    
$search = array(
        
'/\>[^\S ]+/s',  // strip whitespaces after tags, except space
        
'/[^\S ]+\</s',  // strip whitespaces before tags, except space
        
'/(\s)+/s'       // shorten multiple whitespace sequences
    
);

    
$replace = array(
        
'>',
        
'<',
        
'\\1'
    
);

    
$buffer preg_replace($search$replace$buffer);

    return 
$buffer;
}

ob_start("sanitize_output");

class 
QueryServer
{
  
// Private variables used for the query-ing.
  
private $szServerIP;
  private 
$iPort;
  private 
$rSocketID;

  private 
$bStatus;

  
// The __construct function gets called automatically
  // by PHP once the class gets initialized.
  
function __construct$szServerIP$iPort )
  {
      
$this->szServerIP $this->VerifyAddress$szServerIP );
      
$this->iPort $iPort;

      if (empty( 
$this->szServerIP ) || !is_numeric$iPort )) {
          throw new 
QueryServerException'Either the ip-address or the port isn\'t filled in correctly.' );
      }

      
$this->rSocketID = @fsockopen'udp://' $this->szServerIP$iPort$iErrorNo$szErrorStr);
      if (!
$this->rSocketID) {
          throw new 
QueryServerException'Cannot connect to the server: ' $szErrorStr );
      }

      
socket_set_timeout$this->rSocketID0500000 );
      
$this->bStatus true;
  }

  
// The VerifyAddress function verifies the given hostname/
  // IP address and returns the actual IP Address.
  
function VerifyAddress$szServerIP )
  {
      if (
ip2long$szServerIP ) !== false && 
        
long2ipip2long$szServerIP ) ) == $szServerIP ) {
          return 
$szServerIP;
      }

      
$szAddress gethostbyname$szServerIP );
      if (
$szAddress == $szServerIP) {
          return 
"";
      }

      return 
$szAddress;
  }

  
// The SendPacket function sends a packet to the server which
  // requests information, based on the type of packet send.
  
function SendPacket$cPacket )
  {
      
$szPacket 'SAMP';
      
$aIpChunks explode'.'$this->szServerIP );

      foreach( 
$aIpChunks as $szChunk ) {
          
$szPacket .= chr$szChunk );
      }

      
$szPacket .= chr$this->iPort 0xFF );
      
$szPacket .= chr$this->iPort >> 0xFF );
      
$szPacket .= $cPacket;

      return 
fwrite$this->rSocketID$szPacketstrlen$szPacket ) );
  }

  
// The GetPacket() function returns a specific number of bytes
  // read from the socket. This uses a special way of getting stuff.
  
function GetPacket$iBytes )
  {
      
$iResponse fread$this->rSocketID$iBytes );
      if (
$iResponse === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
$iLength ord$iResponse );
      if (
$iLength 0)
          return 
fread$this->rSocketID$iLength );

      return 
"";
  }

  
// After we're done, the connection needs to be closed using
  // the Close() function. Otherwise stuff might go wrong.
  
function Close( )
  {
      if (
$this->rSocketID !== false) {
          
fclose$this->rSocketID );
      }
  }

  
// A little function that's needed to properly convert the
  // four bytes we're recieving to integers to an actual PHP
  // integer. ord() can't handle value's higher then 255.
  
function toInteger$szData )
  {
      
$iInteger 0;

      
$iInteger += ( ord( @$szData] ) );
      
$iInteger += ( ord( @$szData] ) << );
      
$iInteger += ( ord( @$szData] ) << 16 );
      
$iInteger += ( ord( @$szData] ) << 24 );

      if( 
$iInteger >= 4294967294 )
          
$iInteger -= 4294967296;

      return 
$iInteger;
  }

  
// The GetInfo() function returns basic information about the
  // server, like the hostname, number of players online etc.
  
function GetInfo( )
  {
      if (
$this->SendPacket('i') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
$szFirstData fread$this->rSocketID);
      if (empty( 
$szFirstData ) || $szFirstData != 'SAMP') {
          throw new 
QueryServerException'The server at ' $this->szServerIP ' is not an SA-MP Server.' );
      }

      
// Pop the first seven characters returned.
      
fread$this->rSocketID);

      return array (
          
'Password'  =>  ordfread$this->rSocketID) ),
          
'Players'  =>  $this->toIntegerfread$this->rSocketID) ),
          
'MaxPlayers' =>  $this->toIntegerfread$this->rSocketID) ),
          
'Hostname'  =>  $this->GetPacket),
          
'Gamemode'  =>  $this->GetPacket),
          
'Map'    =>  $this->GetPacket)
      );
  }

  
// The GetRules() function returns the rules which are set
  // on the server, e.g. the gravity, version etcetera.
  
function GetRules( )
  {
      if (
$this->SendPacket('r') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
// Pop the first 11 bytes from the response;
      
fread$this->rSocketID11 );

      
$iRuleCount ordfread$this->rSocketID) );
      
$aReturnArray = array( );

      for( 
$i 0$i $iRuleCount$i ++ ) {
          
$szRuleName $this->GetPacket);
          
$aReturnArray$szRuleName ] = $this->GetPacket);
      }

      return 
$aReturnArray;
  }

  
// The GetPlayers() function is pretty much simelar to the
  // detailed function, but faster and contains less information.
  
function GetPlayers( )
  {
      if (
$this->SendPacket('c') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
// Again, pop the first eleven bytes send;
      
fread$this->rSocketID11 );

      
$iPlayerCount ordfread$this->rSocketID) );
      
$aReturnArray = array( );

      for( 
$i 0$i $iPlayerCount$i ++ )
      {
          
$aReturnArray[ ] = array (
              
'Nickname' => $this->GetPacket),
              
'Score'  => $this->toIntegerfread$this->rSocketID) )
          );
      }

      return 
$aReturnArray;
  }

  
// The GetDetailedPlayers() function returns the player list,
  // but in a detailed form inclusing the score and the ping.
  
function GetDetailedPlayers( )
  {
      if (
$this->SendPacket('d') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
// Skip the first 11 bytes of the response;
      
fread$this->rSocketID11 );

      
$iPlayerCount ordfread$this->rSocketID) );
      
$aReturnArray = array( );

      for( 
$i 0$i $iPlayerCount$i ++ ) {
          
$aReturnArray[ ] = array(
              
'PlayerID'  => $this->toIntegerfread$this->rSocketID) ),
              
'Nickname'  => $this->GetPacket),
              
'Score'   => $this->toIntegerfread$this->rSocketID) ),
              
'Ping'    => $this->toIntegerfread$this->rSocketID) )
          );
      }

      return 
$aReturnArray;
  }

function 
RCON($rcon$command)
  {
      echo 
'Password '.$rcon.' with '.$command;
      if (
$this->SendPacket('x '.$rcon.' '.$command) === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
$aReturnArray fread$this->rSocketID11 );

      echo 
fread$this->rSocketID11 );

      return 
$aReturnArray;
  }

}

class 
QueryServerException extends Exception
{
  private 
$szMessage;

  function 
__construct$szMessage )
  {
      
$this->szMessage $szMessage;
  }

  function 
toString( )
  {
      return 
$this->szMessage;
  }
}

try
{
    
$rQuery = new QueryServer$serverIP$serverPort );

    
$aInformation $rQuery->GetInfo( );
    
$aServerRules $rQuery->GetRules( );
    
$aBasicPlayer $rQuery->GetPlayers( );
    
$aTotalPlayers $rQuery->GetDetailedPlayers( );

    
$rQuery->Close( );
}
catch (
QueryServerException $pError)
{
    echo 
'ERROR!';
}

if(isset(
$aInformation) && is_array($aInformation)){
?>
<title>Server Status --> <?php echo htmlentities($aInformation['Hostname']); ?></title>
  <b>General Information</b>
  <table class="pure-table pure-table-horizontal">
      <tr>
          <td>Hostname</td>
          <td><?php echo htmlentities($aInformation['Hostname']); ?></td>
      </tr>
      <tr>
          <td>Gamemode</td>
          <td><?php echo htmlentities($aInformation['Gamemode']); ?></td>
      </tr>
      <tr>
          <td>Players</td>
          <td><?php echo $aInformation['Players']; ?> / <?php echo $aInformation['MaxPlayers']; ?></td>
      </tr>
      <tr>
          <td>Map</td>
          <td><?php echo htmlentities($aInformation['Map']); ?></td>
      </tr>
      <tr>
          <td>Weather</td>
          <td><?php echo $aServerRules['weather']; ?></td>
      </tr>
      <tr>
          <td>Time</td>
          <td><?php echo $aServerRules['worldtime']; ?></td>
      </tr>
      <tr>
          <td>Version</td>
          <td><?php echo $aServerRules['version']; ?></td>
      </tr>
      <tr>
          <td>Password</td>
          <td><?php echo $aInformation['Password'] ? 'Yes' 'No'?></td>
      </tr>
  </table>

  <br />
<?php
  
if(!is_array($aTotalPlayers) || count($aTotalPlayers) == 0){
      echo 
'<br /><i>None / Can not give stats. (It is too high)</i>';
  } else {
  
?>
  <b>Online Players</b>
      <table class="pure-table pure-table-bordered">
          <tr class="pure-table-odd">
              <td><b>ID</b></td>
              <td><b>Nickname</b></td>
              <td><b>Score</b></td>
              <td><b>Ping</b></td>
          </tr>
  <?php
      
foreach($aTotalPlayers AS $id => $value){
      
?>
          <tr>
              <td><?php echo $value['PlayerID']; ?></td>
              <td><?php echo htmlentities($value['Nickname']); ?></td>
              <td><?php echo $value['Score']; ?></td>
              <td><?php echo $value['Ping']; ?></td>
          </tr>
      <?php
      
}
    
      echo 
'</table>';
    }
}
?></div><script src="//code.jquery.com/jquery-1.11.0.min.js"></script><script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script> <script type="text/javascript">function Load_external_content() {$('.wrapper').load('index.php');} setInterval('Load_external_content()',1000);</script>
NON-Ajax Version (Normal Servers):
PHP Code:
<?php
$serverIP 
"10.20.30.40";
$serverPort 7777;
?>
<html oncontextmenu="return false">
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">
<div class="wrapper" id="weapper">
<center>
<?php

function sanitize_output($buffer) {

    
$search = array(
        
'/\>[^\S ]+/s',  // strip whitespaces after tags, except space
        
'/[^\S ]+\</s',  // strip whitespaces before tags, except space
        
'/(\s)+/s'       // shorten multiple whitespace sequences
    
);

    
$replace = array(
        
'>',
        
'<',
        
'\\1'
    
);

    
$buffer preg_replace($search$replace$buffer);

    return 
$buffer;
}

ob_start("sanitize_output");

class 
QueryServer
{
  
// Private variables used for the query-ing.
  
private $szServerIP;
  private 
$iPort;
  private 
$rSocketID;

  private 
$bStatus;

  
// The __construct function gets called automatically
  // by PHP once the class gets initialized.
  
function __construct$szServerIP$iPort )
  {
      
$this->szServerIP $this->VerifyAddress$szServerIP );
      
$this->iPort $iPort;

      if (empty( 
$this->szServerIP ) || !is_numeric$iPort )) {
          throw new 
QueryServerException'Either the ip-address or the port isn\'t filled in correctly.' );
      }

      
$this->rSocketID = @fsockopen'udp://' $this->szServerIP$iPort$iErrorNo$szErrorStr);
      if (!
$this->rSocketID) {
          throw new 
QueryServerException'Cannot connect to the server: ' $szErrorStr );
      }

      
socket_set_timeout$this->rSocketID0500000 );
      
$this->bStatus true;
  }

  
// The VerifyAddress function verifies the given hostname/
  // IP address and returns the actual IP Address.
  
function VerifyAddress$szServerIP )
  {
      if (
ip2long$szServerIP ) !== false && 
        
long2ipip2long$szServerIP ) ) == $szServerIP ) {
          return 
$szServerIP;
      }

      
$szAddress gethostbyname$szServerIP );
      if (
$szAddress == $szServerIP) {
          return 
"";
      }

      return 
$szAddress;
  }

  
// The SendPacket function sends a packet to the server which
  // requests information, based on the type of packet send.
  
function SendPacket$cPacket )
  {
      
$szPacket 'SAMP';
      
$aIpChunks explode'.'$this->szServerIP );

      foreach( 
$aIpChunks as $szChunk ) {
          
$szPacket .= chr$szChunk );
      }

      
$szPacket .= chr$this->iPort 0xFF );
      
$szPacket .= chr$this->iPort >> 0xFF );
      
$szPacket .= $cPacket;

      return 
fwrite$this->rSocketID$szPacketstrlen$szPacket ) );
  }

  
// The GetPacket() function returns a specific number of bytes
  // read from the socket. This uses a special way of getting stuff.
  
function GetPacket$iBytes )
  {
      
$iResponse fread$this->rSocketID$iBytes );
      if (
$iResponse === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
$iLength ord$iResponse );
      if (
$iLength 0)
          return 
fread$this->rSocketID$iLength );

      return 
"";
  }

  
// After we're done, the connection needs to be closed using
  // the Close() function. Otherwise stuff might go wrong.
  
function Close( )
  {
      if (
$this->rSocketID !== false) {
          
fclose$this->rSocketID );
      }
  }

  
// A little function that's needed to properly convert the
  // four bytes we're recieving to integers to an actual PHP
  // integer. ord() can't handle value's higher then 255.
  
function toInteger$szData )
  {
      
$iInteger 0;

      
$iInteger += ( ord( @$szData] ) );
      
$iInteger += ( ord( @$szData] ) << );
      
$iInteger += ( ord( @$szData] ) << 16 );
      
$iInteger += ( ord( @$szData] ) << 24 );

      if( 
$iInteger >= 4294967294 )
          
$iInteger -= 4294967296;

      return 
$iInteger;
  }

  
// The GetInfo() function returns basic information about the
  // server, like the hostname, number of players online etc.
  
function GetInfo( )
  {
      if (
$this->SendPacket('i') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
$szFirstData fread$this->rSocketID);
      if (empty( 
$szFirstData ) || $szFirstData != 'SAMP') {
          throw new 
QueryServerException'The server at ' $this->szServerIP ' is not an SA-MP Server.' );
      }

      
// Pop the first seven characters returned.
      
fread$this->rSocketID);

      return array (
          
'Password'  =>  ordfread$this->rSocketID) ),
          
'Players'  =>  $this->toIntegerfread$this->rSocketID) ),
          
'MaxPlayers' =>  $this->toIntegerfread$this->rSocketID) ),
          
'Hostname'  =>  $this->GetPacket),
          
'Gamemode'  =>  $this->GetPacket),
          
'Map'    =>  $this->GetPacket)
      );
  }

  
// The GetRules() function returns the rules which are set
  // on the server, e.g. the gravity, version etcetera.
  
function GetRules( )
  {
      if (
$this->SendPacket('r') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
// Pop the first 11 bytes from the response;
      
fread$this->rSocketID11 );

      
$iRuleCount ordfread$this->rSocketID) );
      
$aReturnArray = array( );

      for( 
$i 0$i $iRuleCount$i ++ ) {
          
$szRuleName $this->GetPacket);
          
$aReturnArray$szRuleName ] = $this->GetPacket);
      }

      return 
$aReturnArray;
  }

  
// The GetPlayers() function is pretty much simelar to the
  // detailed function, but faster and contains less information.
  
function GetPlayers( )
  {
      if (
$this->SendPacket('c') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
// Again, pop the first eleven bytes send;
      
fread$this->rSocketID11 );

      
$iPlayerCount ordfread$this->rSocketID) );
      
$aReturnArray = array( );

      for( 
$i 0$i $iPlayerCount$i ++ )
      {
          
$aReturnArray[ ] = array (
              
'Nickname' => $this->GetPacket),
              
'Score'  => $this->toIntegerfread$this->rSocketID) )
          );
      }

      return 
$aReturnArray;
  }

  
// The GetDetailedPlayers() function returns the player list,
  // but in a detailed form inclusing the score and the ping.
  
function GetDetailedPlayers( )
  {
      if (
$this->SendPacket('d') === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
// Skip the first 11 bytes of the response;
      
fread$this->rSocketID11 );

      
$iPlayerCount ordfread$this->rSocketID) );
      
$aReturnArray = array( );

      for( 
$i 0$i $iPlayerCount$i ++ ) {
          
$aReturnArray[ ] = array(
              
'PlayerID'  => $this->toIntegerfread$this->rSocketID) ),
              
'Nickname'  => $this->GetPacket),
              
'Score'   => $this->toIntegerfread$this->rSocketID) ),
              
'Ping'    => $this->toIntegerfread$this->rSocketID) )
          );
      }

      return 
$aReturnArray;
  }

function 
RCON($rcon$command)
  {
      echo 
'Password '.$rcon.' with '.$command;
      if (
$this->SendPacket('x '.$rcon.' '.$command) === false) {
          throw new 
QueryServerException'Connection to ' $this->szServerIP ' failed or has dropped.' );
      }

      
$aReturnArray fread$this->rSocketID11 );

      echo 
fread$this->rSocketID11 );

      return 
$aReturnArray;
  }

}

class 
QueryServerException extends Exception
{
  private 
$szMessage;

  function 
__construct$szMessage )
  {
      
$this->szMessage $szMessage;
  }

  function 
toString( )
  {
      return 
$this->szMessage;
  }
}

try
{
    
$rQuery = new QueryServer$serverIP$serverPort );

    
$aInformation $rQuery->GetInfo( );
    
$aServerRules $rQuery->GetRules( );
    
$aBasicPlayer $rQuery->GetPlayers( );
    
$aTotalPlayers $rQuery->GetDetailedPlayers( );

    
$rQuery->Close( );
}
catch (
QueryServerException $pError)
{
    echo 
'ERROR!';
}

if(isset(
$aInformation) && is_array($aInformation)){
?>
<title>Server Status --> <?php echo htmlentities($aInformation['Hostname']); ?></title>
  <b>General Information</b>
  <table class="pure-table pure-table-horizontal">
      <tr>
          <td>Hostname</td>
          <td><?php echo htmlentities($aInformation['Hostname']); ?></td>
      </tr>
      <tr>
          <td>Gamemode</td>
          <td><?php echo htmlentities($aInformation['Gamemode']); ?></td>
      </tr>
      <tr>
          <td>Players</td>
          <td><?php echo $aInformation['Players']; ?> / <?php echo $aInformation['MaxPlayers']; ?></td>
      </tr>
      <tr>
          <td>Map</td>
          <td><?php echo htmlentities($aInformation['Map']); ?></td>
      </tr>
      <tr>
          <td>Weather</td>
          <td><?php echo $aServerRules['weather']; ?></td>
      </tr>
      <tr>
          <td>Time</td>
          <td><?php echo $aServerRules['worldtime']; ?></td>
      </tr>
      <tr>
          <td>Version</td>
          <td><?php echo $aServerRules['version']; ?></td>
      </tr>
      <tr>
          <td>Password</td>
          <td><?php echo $aInformation['Password'] ? 'Yes' 'No'?></td>
      </tr>
  </table>

  <br />
<?php
  
if(!is_array($aTotalPlayers) || count($aTotalPlayers) == 0){
      echo 
'<br /><i>None / Can not give stats. (It is too high)</i>';
  } else {
  
?>
  <b>Online Players</b>
      <table class="pure-table pure-table-bordered">
          <tr class="pure-table-odd">
              <td><b>ID</b></td>
              <td><b>Nickname</b></td>
              <td><b>Score</b></td>
              <td><b>Ping</b></td>
          </tr>
  <?php
      
foreach($aTotalPlayers AS $id => $value){
      
?>
          <tr>
              <td><?php echo $value['PlayerID']; ?></td>
              <td><?php echo htmlentities($value['Nickname']); ?></td>
              <td><?php echo $value['Score']; ?></td>
              <td><?php echo $value['Ping']; ?></td>
          </tr>
      <?php
      
}
    
      echo 
'</table>';
    }
}
?></div>
Change Server IP And Port:
PHP Code:
$serverIP "10.20.30.40";
$serverPort 7777
Screenshots:


Error's Reasons:
None / Can not give stats. (It is too high) = This problem when it happens that your players is too high (like 120players) or is too low (like 0!) For Fix this problem you need high performance server.

ERROR! = This problem when it happens that your server is offline or your server blocked connections! (for big servers) For Fix this problem you need to start your server or add your stats server in your whitelist.

Examples:
For use this in your website/forum you can use this code:
PHP Code:
<?php include 'your stats file adress.php'?>
Or for html hostings use this code
Code:
<iframe src="http://server.com/your stats file adress.php" width="100%" height="100%">Your browser is **** :|</iframe>


Todo:
Quote:
Creating SA-MP stats with supporting JSON.
Add language support. (0.3.7 update)
Changelogs:
Quote:
Fixed major bugs.
__________________
MapsFilterScriptsIncludesTool/Web/OtherTutorials
Motoran Island(Newbie work)Random(Newbie work)Jalali Date FunctionsSAMP Server Status PHPConvert Unix time to Readable
-Rank system(Newbie work)---
-News system(Newbie work)---

Last edited by mrsh; 18/02/2016 at 11:36 AM.
mrsh is offline   Reply With Quote
Old 04/12/2014, 12:51 PM   #2
Alex Magaņa
High-roller
 
Alex Magaņa's Avatar
 
Join Date: Oct 2012
Location: Dallas Cowboys
Posts: 2,373
Reputation: 186
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

great work thx for sharing keep it up!
Alex Magaņa is offline   Reply With Quote
Old 04/12/2014, 01:02 PM   #3
Kerio
Little Clucker
 
Kerio's Avatar
 
Join Date: Sep 2014
Posts: 5
Reputation: 0
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

WOW! Ajax? What Is Ajax?
But Is Nice!

10/10 !
__________________
Are you tired? View AtusatA Community
Kerio is offline   Reply With Quote
Old 04/12/2014, 01:03 PM   #4
mrsh
Big Clucker
 
mrsh's Avatar
 
Join Date: Sep 2011
Location: nmap -sS mrsh Name: Shayan
Posts: 50
Reputation: 12
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Ajax?

Let me google that for you!
__________________
MapsFilterScriptsIncludesTool/Web/OtherTutorials
Motoran Island(Newbie work)Random(Newbie work)Jalali Date FunctionsSAMP Server Status PHPConvert Unix time to Readable
-Rank system(Newbie work)---
-News system(Newbie work)---

Last edited by mrsh; 08/10/2016 at 12:28 PM.
mrsh is offline   Reply With Quote
Old 04/12/2014, 01:19 PM   #5
AmirSlaYeR
Big Clucker
 
AmirSlaYeR's Avatar
 
Join Date: Apr 2014
Location: IraN
Posts: 107
Reputation: 7
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Nice job Thank you Mrsh
کیرم تو هیکلت
اورین
__________________
Yahoo!: wolf.trin
Line: Amirslayers
Viber: +989368291181 (09368291181)
FaceBook: hasan ebrahimi Or(wolf.trin@yahoo.com)
Skype: Forgot

IraN Is LiFe
AmirSlaYeR is offline   Reply With Quote
Old 05/12/2014, 12:42 PM   #6
amirab
Banned
 
Join Date: Apr 2013
Location: UK maybe :P
Posts: 511
Reputation: 66
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

nice!! and me too like what AmirSlayer said in persian :P
amirab is offline   Reply With Quote
Old 05/12/2014, 05:41 PM   #7
AmirSlaYeR
Big Clucker
 
AmirSlaYeR's Avatar
 
Join Date: Apr 2014
Location: IraN
Posts: 107
Reputation: 7
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

HaHa ...
Quote:
nice!! and me too like what AmirSlayer said in persian :P
ThankS AmiRAB
__________________
Yahoo!: wolf.trin
Line: Amirslayers
Viber: +989368291181 (09368291181)
FaceBook: hasan ebrahimi Or(wolf.trin@yahoo.com)
Skype: Forgot

IraN Is LiFe
AmirSlaYeR is offline   Reply With Quote
Old 18/02/2016, 11:32 AM   #8
mrsh
Big Clucker
 
mrsh's Avatar
 
Join Date: Sep 2011
Location: nmap -sS mrsh Name: Shayan
Posts: 50
Reputation: 12
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Updated to v1.1
__________________
MapsFilterScriptsIncludesTool/Web/OtherTutorials
Motoran Island(Newbie work)Random(Newbie work)Jalali Date FunctionsSAMP Server Status PHPConvert Unix time to Readable
-Rank system(Newbie work)---
-News system(Newbie work)---
mrsh is offline   Reply With Quote
Old 21/02/2016, 02:39 PM   #9
HaRdiiZin
Gangsta
 
HaRdiiZin's Avatar
 
Join Date: Jan 2015
Location: localhost/HaRdiiZin
Posts: 826
Reputation: 97
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Nice work ^^
HaRdiiZin is offline   Reply With Quote
Old 02/03/2016, 10:58 AM   #10
Spydah
High-roller
 
Spydah's Avatar
 
Join Date: Jan 2010
Location: The Netherlands
Posts: 1,357
Reputation: 711
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Great work man!
__________________
I don't like +REP askers.
Spydah is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Tool/Web/Other] Live server monitor [Info+Rules+Players] AJAX Updated Sinner Tools and Files 47 22/07/2014 08:10 AM
Multiple data in .ajax() function System64 Everything and Nothing 2 20/03/2012 08:16 PM
[FS + AJAX]R@f's Json Server Stats R@f Filterscripts 6 10/05/2009 08:45 AM


All times are GMT. The time now is 02:09 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.