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, 01:47 PM   #1
mrsh
Big Clucker
 
mrsh's Avatar
 
Join Date: Sep 2011
Posts: 51
Reputation: 17
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.
__________________

Last edited by mrsh; 18/02/2016 at 12:36 PM.
mrsh is offline   Reply With Quote
Old 04/12/2014, 01:51 PM   #2
Alex Magaņa
High-roller
 
Alex Magaņa's Avatar
 
Join Date: Oct 2012
Location: Greece
Posts: 2,426
Reputation: 209
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, 02: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, 02:03 PM   #4
mrsh
Big Clucker
 
mrsh's Avatar
 
Join Date: Sep 2011
Posts: 51
Reputation: 17
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Ajax?

Let me ****** that for you!
__________________

Last edited by mrsh; 08/10/2016 at 01:28 PM.
mrsh is offline   Reply With Quote
Old 04/12/2014, 02: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)
********: hasan ebrahimi Or([email protected])
Skype: Forgot

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

nice!! and me too like what AmirSlayer said in persian :P
__________________

Noobs Everywhere , Everymore.....

Skype : em.samp , amirab_best
Yahoo Msg : amirahmady1378
amirab is offline   Reply With Quote
Old 05/12/2014, 06: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)
********: hasan ebrahimi Or([email protected])
Skype: Forgot

IraN Is LiFe
AmirSlaYeR is offline   Reply With Quote
Old 18/02/2016, 12:32 PM   #8
mrsh
Big Clucker
 
mrsh's Avatar
 
Join Date: Sep 2011
Posts: 51
Reputation: 17
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

Updated to v1.1
__________________
mrsh is offline   Reply With Quote
Old 21/02/2016, 03:39 PM   #9
HaRdiiZin
Gangsta
 
HaRdiiZin's Avatar
 
Join Date: Jan 2015
Location: localhost/HaRdiiZin
Posts: 824
Reputation: 98
Default Re: SAMP Server Status PHP (AJAX/NON-AJAX)

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

Great work man!
__________________

Sexy isn't she?
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 09:10 AM
Multiple data in .ajax() function System64 Everything and Nothing 2 20/03/2012 09:16 PM
[FS + AJAX][email protected]'s Json Server Stats [email protected] Filterscripts 6 10/05/2009 09:45 AM


All times are GMT. The time now is 07:12 AM.


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