Witam

Walczę już od dłuższego czasu z AMXBANSem (większość założonych rzeczy udało mi się przerobić) ale nie mogę sobie poradzić z jedną rzeczą:

Zrobiłem rozwijaną listę serwerów (wyświetlane serwery są po hoście alfabetycznie z góry na dół). Po wybraniu danego serwera jest poprawnie zaznaczany ale..

nie mogę poprawnie pobrać wartości hostname oraz address.

Pobiera mi zawsze ostatnie wartości czyli wartosci serwera który jest alfabetycznie ostatni na liście

Oto plik add_ban.php

  1. <?php
  2.  
  3. // Start session
  4.  
  5. // Require basic site files
  6. require("../include/config.inc.php");
  7.  
  8. if ($config->error_handler == "enabled") {
  9.  include("$config->error_handler_path");
  10. }
  11.  
  12. include("$config->path_root/include/functions.lang.php");
  13. include("$config->path_root/include/accesscontrol.inc.php");
  14.  
  15.  
  16. if($_SESSION['bans_add'] != "yes") {
  17.  echo lang("_NOPERM");
  18.  exit();
  19. }
  20.  
  21. // get a list of servers...
  22. $resource = mysql_query("SELECT id, hostname, address, amxban_version FROM $config->servers ORDER BY hostname ASC")  or die (mysql_error());
  23.  
  24. while($result = mysql_fetch_object($resource)) {
  25.  
  26.  $checkplug    = explode ("_", $result->amxban_version);
  27.  $amx_version    = $checkplug['0'];
  28.  
  29.  //echo "<h2>$amx_version</h2>";
  30.  
  31.  // Asign variables to the array used in the template
  32.  $server_info = array(
  33.      "id"        => $result->id,
  34.      "hostname"    => $result->hostname,
  35.      "address" => $result->address,
  36.      "amxversion"    => $amx_version,
  37.  
  38.      );
  39.  
  40.  $server_array[] = $server_info;
  41.  
  42. }
  43.  
  44.  
  45.  
  46. if ( isset($_POST['server_id']) && $_POST['server_id'] != "xxx")
  47. {
  48.  $serverid = $_POST['server_id'];
  49.  $serverhostname = $_POST['server_hostname'];
  50.  $serveraddress = $_POST['server_address'];
  51.  
  52.  
  53. }
  54.  
  55. if ((isset($_POST['action'])) && ($_POST['action'] == "insert")) {
  56.  //display_post_get();
  57.  
  58.      if (($_POST['ban_type'] == "SI") && (empty($_POST['player_ip'])))
  59.  
  60.  {
  61.   
  62.      echo "Musisz podac adres IP gracza do zbanowania!";
  63.  }
  64.  else if ( isset($_POST['player_id']) && strlen( $_POST['player_id'] ) == 0 && ($_POST['ban_type'] != "SI") )
  65.  {
  66.      echo "Musisz podac steam gracza do zbanowania!";
  67.   
  68.  }
  69.  else
  70.  {
  71.      // get my steamID
  72.      $result    = mysql_query("SELECT steamid FROM $config->amxadmins WHERE nickname = '".$_SESSION['uid']."'");
  73.   
  74.      $admin_id = "";
  75.  
  76.      if ( $result && mysql_num_rows($result) > 0 )
  77.      {
  78.          $val = mysql_fetch_object($result);
  79.          $admin_id = $val->steamid;
  80.      }
  81.  
  82.      // check if player_id already exists
  83.      $check_steamid    = mysql_query("SELECT COUNT(player_id) as ban_exists FROM $config->bans WHERE player_id != '' AND player_id = '".$_POST['player_id']."'") or die (mysql_error());
  84.      $got_steamid        = mysql_fetch_object($check_steamid);
  85.  
  86.      if ($got_steamid->ban_exists != 0) {
  87.          echo "An active ban with SteamID '".$_POST['player_id']."' already exists...";
  88.          exit();
  89.      } else {
  90.  
  91.  
  92.       
  93.  
  94.          $ban_created = date("U");
  95.          $server_name = $serverhostname;
  96.          $server_address = $serveraddress;
  97.          $player_nick = $admin_amxname    = $_POST['player_nick'];
  98.  
  99.          if (empty($_POST['player_ip'])) {
  100.              $insert_ban = mysql_query("INSERT INTO $config->bans (player_id, player_nick, admin_ip, admin_id, admin_nick, ban_type, ban_reason, ban_created, ban_length, server_name, server_ip) VALUES ('".$_POST['player_id']."', '$player_nick', '".$_SERVER["REMOTE_ADDR"]."', '$admin_id', '".$_SESSION['uid']."', '".$_POST['ban_type']."', '".$_POST['ban_reason']."', '$ban_created', '".$_POST['ban_length']."', '$server_name', '$server_address')") or die (mysql_error());
  101.              $add_log        = mysql_query("INSERT INTO $config->logs (timestamp, ip, username, action, remarks) VALUES ('$ban_created', '".$_SERVER['REMOTE_ADDR']."', '".$_SESSION['uid']."', 'add ban', 'banned user by SteamID (".$_POST['player_id'].")')") or die (mysql_error());
  102.          } else {
  103.              $insert_ban = mysql_query("INSERT INTO $config->bans (player_ip, player_id, player_nick, admin_ip, admin_id, admin_nick, ban_type, ban_reason, ban_created, ban_length, server_name, server_ip) VALUES ('".$_POST['player_ip']."', '".$_POST['player_id']."', '$player_nick', '".$_SERVER["REMOTE_ADDR"]."', '$admin_id', '".$_SESSION['uid']."', '".$_POST['ban_type']."', '".$_POST['ban_reason']."', '$ban_created', '".$_POST['ban_length']."', '$server_name', '$server_address')") or die (mysql_error());
  104.              $add_log        = mysql_query("INSERT INTO $config->logs (timestamp, ip, username, action, remarks) VALUES ('$ban_created', '".$_SERVER['REMOTE_ADDR']."', '".$_SESSION['uid']."', 'add ban', 'banned user by SteamID and IP (".$_POST['player_id']." / ".$_POST['player_ip'].")')") or die (mysql_error());
  105.          }
  106.  
  107.          $url        = "$config->document_root";
  108.          $delay    = "2";
  109.          //echo "Added ban. Redirecting...";
  110.          echo "<meta http-equiv=\"refresh\" content=\"".$delay.";url='http://".$_SERVER["HTTP_HOST"]."$url'\">";
  111.          exit();
  112.      }
  113.  }
  114. }
  115.  
  116.  
  117. // Header
  118. $title = lang("_ADDBAN");
  119.  
  120. // Section
  121. $section = "addban";
  122.  
  123. // Parsing
  124. $smarty = new dynamicPage;
  125.  
  126. $smarty->assign("meta","");
  127. $smarty->assign("title",$title);
  128. $smarty->assign("section",$section);
  129. $smarty->assign("dir",$config->document_root);
  130. $smarty->assign("skin",$config->default_skin);
  131. $smarty->assign("this",$_SERVER['PHP_SELF']);
  132. $smarty->assign("submitted",get_post('submitted'));
  133. $smarty->assign("servers", isset($server_array) ? $server_array : NULL);
  134.  
  135.  
  136. $smarty->assign("thisserver", isset($serverid) ? $serverid : NULL);
  137. $smarty->assign("thisserver1", isset($serverid) ? $serverhostname : NULL);
  138. $smarty->assign("thisserver2", isset($serverid) ? $serveraddress : NULL);
  139.  
  140. //$smarty->assign("servers",$server_array);
  141. //$smarty->assign("players",$player_array);
  142. //$smarty->assign("empty_result",$empty_result);
  143. //$smarty->assign("post",$_POST);
  144.  
  145. $smarty->display('main_header.tpl');
  146. $smarty->display('add_ban.tpl');
  147. $smarty->display('main_footer.tpl');
  148.  
  149. ?>



plik add_ban.tpl w kolejnym poscie



  1. <?php
  2. <table cellspacing='1' class='listtable' width='100%'>
  3.           <tr>
  4.             <td height='16' colspan='3' class='listtable_top'><b>{"_ADD"|lang}</b></td>
  5.           </tr>
  6.  
  7.  <form name="server" method="post" action="{$this}">
  8.                  <tr bgcolor="#D3D8DC">
  9.                      <td height='16' width='30%' class='listtable_1'>{"_SELECTSERVER"|lang}</td>
  10.                      <td height='16' width='70%' class='listtable_1'><input type='hidden' name'submitted' value='true'>
  11.  
  12.                          <select name='server_id' style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px' onChange="java script:document.server.submit()">
  13.                       
  14.                          <option value='xxx' >{"_SELECTSERVER"|lang}</option>
  15.                          {foreach from=$servers item=servers}
  16.  
  17.                          <option value='{$servers.id}'{if $servers.id == $thisserver}  selected {/if}>{$servers.hostname}    {$servers.address}</option>
  18.  
  19.                          {/foreach}
  20.                          </select>
  21.  
  22.                   
  23.                       
  24.                   
  25.                      </td>
  26.                  </tr>
  27.                  </form>
  28.   
  29.                  <form name="addban" method="post" action="{$this}">
  30.                  <input type='hidden' name='server_id' value='{$thisserver}'>
  31.                  <input type='hidden' name='server_hostname' value='{$servers.hostname}'> 
  32.                  <input type='hidden' name='server_address' value='{$servers.address}'>
  33.                  <input type='hidden' name='action' value='insert'>
  34.  {if isset($thisserver)}
  35.  
  36.           <tr bgcolor="#D3D8DC">
  37.             <td height='16' width='30%' class='listtable_1'>{"_NICKNAME"|lang}</td>
  38.             <td height='16' width='70%' class='listtable_1'><input type='text' name='player_nick' value='{if isset($post.player_nick)}{$post.player_nick}{/if}' style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px'></td>
  39.           </tr>
  40.           <tr bgcolor="#D3D8DC">
  41.             <td height='16' width='30%' class='listtable_1'>{"_BANTYPE"|lang}</td>
  42.             <td height='16' width='70%' class='listtable_1'>
  43.                      <select name='ban_type' style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px'>
  44.                      <option value='S'>SteamID</option>
  45.                      <option value='SI'>{"_STEAMID&IP"|lang}</option>
  46.                      </select>
  47.             </td>
  48.           </tr>
  49.           <tr bgcolor="#D3D8DC">
  50.             <td height='16' width='30%' class='listtable_1'>SteamID</td>
  51.             <td height='16' width='70%' class='listtable_1'><input type='text' name='player_id' value='{if isset($post.player_id)}{$post.player_id}{/if}'style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px'> &nbsp; (e.g. STEAM_0:1:4548)</td>
  52.           </tr>
  53.           <tr bgcolor="#D3D8DC">
  54.             <td height='16' width='30%' class='listtable_1'>{"_IP"|lang}</td>
  55.             <td height='16' width='70%' class='listtable_1'><input type='text' name='player_ip' value='{if isset($post.player_ip)}{$post.player_ip}{/if}'style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px'></td>
  56.           </tr>
  57.           <tr bgcolor="#D3D8DC">
  58.             <td height='16' width='30%' class='listtable_1'>{"_BANLENGHT"|lang}</td>
  59.             <td height='16' width='70%' class='listtable_1'>
  60.  
  61.                      <select name='ban_length' style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px'' {if $players.is_admin == 1}disabled{/if}>
  62.                      <option value='0'>{"_PERMANENT"|lang}</option>
  63.                      <optgroup label="{"_MINS"|lang}">
  64.                      <option value='1'>1 {"_MIN"|lang}</option>
  65.                      <option value='5'>5 {"_MINS"|lang}</option>
  66.                      <option value='10'>10 {"_MINS"|lang}</option>
  67.                      <option value='15'>15 {"_MINS"|lang}</option>
  68.                      <option value='30'>30 {"_MINS"|lang}</option>
  69.                      <option value='45'>45 {"_MINS"|lang}</option>
  70.                      <optgroup label="{"_HOURS"|lang}">
  71.                      <option value='60'>1 {"_HOUR"|lang}</option>
  72.                      <option value='120'>2 {"_HOURS"|lang}</option>
  73.                      <option value='180'>3 {"_HOURS"|lang}</option>
  74.                      <option value='240'>4 {"_HOURS"|lang}</option>
  75.                      <option value='480'>8 {"_HOURS"|lang}</option>
  76.                      <option value='720'>12 {"_HOURS"|lang}</option>
  77.  
  78.                      <optgroup label="{"_DAYS"|lang}">
  79.                      <option value='1440'>1 {"_DAY"|lang}</option>
  80.                      <option value='2880'>2 {"_DAYS"|lang}</option>
  81.                      <option value='4320'>3 {"_DAYS"|lang}</option>
  82.                      <option value='5760'>4 {"_DAYS"|lang}</option>
  83.                      <option value='7200'>5 {"_DAYS"|lang}</option>
  84.                      <option value='8640'>6 {"_DAYS"|lang}</option>
  85.                      <optgroup label="{"_WEEKS"|lang}">
  86.                      <option value='10080'>1 {"_WEEK"|lang}</option>
  87.                      <option value='20160'>2 {"_WEEKS"|lang}</option>
  88.                      <option value='30240'>3 {"_WEEKS"|lang}</option>
  89.                      <optgroup label="{"_MONTHS"|lang}">
  90.                      <option value='40320'>1 {"_MONTH"|lang}</option>
  91.                      <option value='80640'>2 {"_MONTHS"|lang}</option>
  92.                      <option value='120960'>3 {"_MONTHS"|lang}</option>
  93.                      <option value='241920'>6 {"_MONTHS"|lang}</option>
  94.                      <option value='483840'>12 {"_MONTHS"|lang}</option>
  95.                      </select>
  96.  
  97.             </td>
  98.           </tr>
  99.           <tr bgcolor="#D3D8DC">
  100.             <td height='16' width='30%' class='listtable_1'>{"_REASON"|lang}</td>
  101.             <td height='16' width='70%' class='listtable_1'><input type='text' name='ban_reason' style='font-family: verdana, tahoma, arial; font-size: 10px; width: 250px'></td>
  102.           </tr>
  103.                  <tr bgcolor="#D3D8DC">
  104.                      <td height='16' width='100%' colspan='2' class='listtable_1' align='right'><input type='submit' name='submit' value=' {"_ADD"|lang} ' style='font-family: verdana, tahoma, arial; font-size: 10px;></td>
  105.           </tr>
  106.           </form>
  107.      {/if}
  108.         </table>
  109. ?>