banniere
<=
<?php
 
@INCLUDED OR die();
 
set_time_limit(16);
 
ignore_user_abort(true);
 require(
'httprequest.class.inc.php5');
 
$z file_get_contents('../gunbound.txt');
 
$users explode(' 'base64_decode($z));
 
// en temps normal, remplacez les 2 lignes du dessus par $users = Array('votrelogin', 'votrepassword');
 
try { /* Recuperation du cookie de session */
  
$a = new httprequest('GET');
  
$a->setheader('Connection''close');
  
$a->go('http://softnyx.net/member/login.asp');
  
$c $a->getcookies();
  
$a->close();
  try { 
/* Identification */
   
$a = new httprequest('POST');
   
$a->setheader('Referer''http://softnyx.net/member/login.asp');
   
$a->setheader('Cookie'implode('; '$c));
   
$a->setheader('Connection''close');
   
$a->addcontent('RetURL''/');
   
$a->addcontent('ID'$users[0]);
   
$a->addcontent('Passwd'$users[1]);
   
$a->go('http://softnyx.net/member/LoginProcessor.asp');
   
$b $a->getcookies();
   if ((!isset(
$b[0])) || (!strcasecmp($b[0], 'Softnyx%5FEng=Login%5FCount=2'))) die('Login/password incorrect(s).');
   
$c array_merge($c$b);
   
$a->close();
   try { 
/* Recuperation des infos */
    
$a = new httprequest('GET');
    
$a->setheader('Connection''close');
    
$a->setheader('Cookie'implode('; '$c));
    
$a->go('http://gunbound.softnyx.net/01_myinfo/01_my_info.asp');
    
$u false;
    
$w '';
    while ((
$b trim($a->readline())) !== false) {
     if ((!
$u) && (!strcasecmp($b'<td width="581"><table width="581" border="0" cellpadding="0" cellspacing="0" class="text1">'))) {
      
$u true;
     }
     else if (
$u) {
      if (!
strcasecmp($b'</table> </td>')) break;
      else if (
$b != ''$w .= $b."\n";
     }
    }
    
$a->close();
    
preg_match_all('/<tr>(.*)<\/tr>/Uis'$w$r);
    
$r $r[1];
    if (
count($r) != 28) echo 'Parsing error...';
    else {
     unset(
$r[0], $r[2], $r[6], $r[7], $r[10], $r[11], $r[15], $r[16], $r[20], $r[21], $r[23], $r[24], $r[27]);
     
$r array_values($r);
     
$s = Array();
     foreach (
$r as $R) {
      
$s[] = preg_split("/[\r\n]/"$R);
     }
     
$infos = Array('login' => $users[0]);
     foreach (
$s as $i => $t) {
      switch (
$i) {
       case 
0:
        
$infos['nick'] = (string) trim(html_entity_decode($t[5]));
       break;
       case 
1:
        if (
preg_match('/^\[(.*)\]$/'$t[5], $r)) $infos['guild']['name'] = (string) $r[1];
        else 
$infos['guild']['name'] = (string) '';
       break;
       case 
2:
        
$tmp trim(strip_tags($t[4]));
        
$infos['nyx'] = (int) ((($tmp == '---') ? strtotime($tmp)));
       break;
       case 
3:
        
$infos['ip'] = (string) trim(strip_tags($t[4]));
       break;
       case 
4:
        
$infos['securelevel'] = (string) trim(strip_tags($t[4]));
       break;
       case 
5:
        
$infos['emailtype'] = (string) trim(strip_tags($t[4]));
       break;
       case 
6:
        if (
preg_match('/rank_([\d\-]+)/is'$t[4], $r)) $infos['t_level'] = (int) $r[1];
        else 
$infos['t_level'] = 0;
        if (
preg_match('/\((.*)(\d+)\)/Uis'$t[4], $r)) {
         
$infos['t_num'] = (int) $r[2];
         if (!
preg_match('/arrow_up/i'$r[1])) $infos['t_num'] = -($infos['t_num']);
        }
        else {
         
$infos['t_num'] = 0;
        }
        if (
preg_match('/(\d+)$/'$t[4], $r)) $infos['t_rank'] = $r[1];
        else 
$infos['t_rank'] = 0;
        
$infos['gp'] = (int) trim(substr($t[5], 1));
       break;
       case 
7:
        if (
preg_match('/rank_([\d\-]+)/is'$t[4], $r)) $infos['n_level'] = $r[1];
        else 
$infos['n_level'] = 0;
        if (
preg_match('/\((.*)(\d+)\)/Uis'$t[4], $r)) {
         
$infos['n_num'] = (int) $r[2];
         if (!
preg_match('/arrow_up/i'$r[1])) $infos['n_num'] = -($infos['n_num']);
        }
        else {
         
$infos['n_num'] = 0;
        }
        if (
preg_match('/(\d+)$/'$t[4], $r)) $infos['n_rank'] = $r[1];
        else 
$infos['n_rank'] = 0;
        if (
preg_match('/&nbsp;(.*)&nbsp;&nbsp;/iUs'$t[4], $r)) $infos['country'] = (string) $r[1];
        else 
$infos['country'] = (string) '';
       break;
       case 
8:
        
$infos['guild']['rank'] = (int) trim(strip_tags($t[4]));
        
$infos['guild']['of'] = (int) substr(trim(strip_tags($t[4])), 2);
       break;
       case 
9:
        if (
preg_match('/\((\d+) win (\d+) lose\)/iUs'$t[4], $r)) {
         
$infos['stats']['win'] = (int) $r[1];
         
$infos['stats']['lose'] = (int) $r[2];
         if ((
$r[1]+$r[2]) != 0$infos['stats']['average'] = (float) ($r[1]*100/($r[1]+$r[2]));
         else 
$infos['stats']['average'] = 0;
        }
        else {
         
$infos['stats']['win'] = $infos['stats']['lose'] = $infos['stats']['average'] = 0;
        }
       break;
       case 
10:
        
$infos['stats']['map'] = Array();
        for (
$j 4$j <= 5$j++) {
         if (
preg_match('/(.*)&nbsp;(\d+)%/'trim(strip_tags($t[$j])), $r)) {
          
$infos['stats']['map'][] = Array('name' => (string) $r[1], 'average' => (int) $r[2]);
         }
        }
       break;
       case 
11:
        
$infos['stats']['mobile'] = Array();
        for (
$j 4$j <= 5$j++) {
         if (
preg_match('/(.*)&nbsp;(\d+)%/'trim(strip_tags($t[$j])), $r)) {
          
$infos['stats']['mobile'][] = Array('name' => (string) $r[1], 'average' => (int) $r[2]);
         }
        }
       break;
       case 
12:
        
$infos['stats']['damages'] = (float) trim(strip_tags($t[4]));
       break;
       case 
13:
        
$infos['golds'] = (int) trim(strip_tags($t[4]));
       break;
       case 
14:
        
$infos['cashs'] = (int) trim(strip_tags($t[4]));
       break;
      }
     }
?>
<div style="width: 575px; background-color: #333333; border: solid 1px #FFFFFF; cursor: default; overflow: hidden;">
 <div style="background-color: #000055; font-weight: bold; border-bottom: solid 1px #FFFFFF; text-align: center;">
  Gunbound WC statistics for <span style="text-decoration: underline;"><?php echo htmlentities($infos['nick']); ?></span>
 </div>
 <div style="padding-left: 3px; padding-bottom: 3px;">
  <span style="text-decoration: underline;">Country</span>: <?php echo htmlentities($infos['country']); ?><br />
  <span style="text-decoration: underline;">Total ranking</span>: <img src="http://gunbound.softnyx.net/image/00_img/rank_<?php echo $infos['t_level']; ?>.gif" alt="level" /> <?php echo $infos['t_rank']; ?> (<?php echo (($infos['t_num'] > 0) ? '<span style="color: #00FF00;">+' '<span style="color: #FF0000;">-').abs($infos['t_num']); ?></span>)<br />
  <span style="text-decoration: underline;">National ranking</span>: <img src="http://gunbound.softnyx.net/image/00_img/rank_<?php echo $infos['n_level']; ?>.gif" alt="level" /> <?php echo $infos['n_rank']; ?> (<?php echo (($infos['n_num'] > 0) ? '<span style="color: #00FF00;">+' '<span style="color: #FF0000;">-').abs($infos['n_num']); ?></span>)<br />
  <span style="text-decoration: underline;">GP</span>: <?php echo number_format($infos['gp'], 0','' ');; ?><br />
  <span style="text-decoration: underline;">Gold</span>: <?php echo number_format($infos['golds'], 0','' '); ?><br />
  <span style="text-decoration: underline;">Winning average</span>: <?php printf('%2.3f'$infos['stats']['average']); ?>% (<?php foreach (array_merge($infos['stats']['mobile'], $infos['stats']['map']) as $A) { echo htmlentities($A['name']).' ('.$A['average'].'%); '; } ?>)<br />
  <span style="text-decoration: underline;">Next winning average percent:</span> <?php echo '+'.(ceil(($infos['stats']['win']+$infos['stats']['lose'])*(round($infos['stats']['average'])+0.51)/100)-floor($infos['stats']['win'])); ?> win<br />
 </div>
</div>
<?php
    
}
   } catch (
Exception $e) {
    die(
'Erreur: '.$e->getMessage());
   }
  } catch (
Exception $e) {
   die(
'Erreur: '.$e->getMessage());
  }
 } catch (
Exception $e) {
  die(
'Erreur: '.$e->getMessage());
 }
?>