PageRenderTime 46ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/ext_scripts/lgsl/lgsl_files/lgsl_add.php

http://lansuite.googlecode.com/
PHP | 264 lines | 187 code | 57 blank | 20 comment | 22 complexity | 013f69ecfa4f4b3b9c0a7a6ac7960a4c MD5 | raw file
Possible License(s): LGPL-3.0, AGPL-1.0, LGPL-2.1
  1. <?php
  2. /*----------------------------------------------------------------------------------------------------------\
  3. | |
  4. | [ LIVE GAME SERVER LIST ] [ Š RICHARD PERRY FROM GREYCUBE.COM ] |
  5. | |
  6. | Released under the terms and conditions of the GNU General Public License Version 3 (http://gnu.org) |
  7. | |
  8. \-----------------------------------------------------------------------------------------------------------*/
  9. //------------------------------------------------------------------------------------------------------------+
  10. require "lgsl_class.php";
  11. //-----------------------------------------------------------------------------------------------------------+
  12. if (!$lgsl_config['public_add'])
  13. {
  14. $output .= "
  15. <div style='text-align:center;".lgsl_bg()."'>
  16. <br />
  17. {$lgsl_config['text']['asd']}
  18. <br />
  19. <br />
  20. </div>";
  21. return;
  22. }
  23. //-----------------------------------------------------------------------------------------------------------+
  24. $lgsl_type_list = lgsl_type_list();
  25. unset($lgsl_type_list['test']);
  26. asort($lgsl_type_list);
  27. $type = empty($_POST['form_type']) ? "source" : trim($_POST['form_type']);
  28. $ip = empty($_POST['form_ip']) ? "" : trim($_POST['form_ip']);
  29. $c_port = empty($_POST['form_c_port']) ? 0 : intval(trim($_POST['form_c_port']));
  30. $q_port = empty($_POST['form_q_port']) ? 0 : intval(trim($_POST['form_q_port']));
  31. $s_port = 0;
  32. if (preg_match("/(\[[0-9a-z\:]+\])/iU", $ip, $match)) { $ip = $match[1]; }
  33. elseif (preg_match("/([0-9a-z\.\-]+)/i", $ip, $match)) { $ip = $match[1]; }
  34. else { $ip = ""; }
  35. if ($c_port > 99999 || $q_port < 1024) { $c_port = 0; }
  36. if ($q_port > 99999 || $q_port < 1024) { $q_port = 0; }
  37. list($c_port, $q_port, $s_port) = lgsl_port_conversion($type, $c_port, $q_port, $s_port);
  38. //-----------------------------------------------------------------------------------------------------------+
  39. $output .= "
  40. <form method='post' action=''>
  41. <div style='text-align:center'>
  42. <table cellpadding='4' cellspacing='2' style='margin:auto; text-align:left'>
  43. <tr style='".lgsl_bg()."'>
  44. <td colspan='2' style='text-align:center'>
  45. <br />
  46. {$lgsl_config['text']['awm']}
  47. <br />
  48. <br />
  49. </td>
  50. </tr>
  51. <tr style='".lgsl_bg()."'>
  52. <td> {$lgsl_config['text']['typ']} </td>
  53. <td>
  54. <select name='form_type'>";
  55. //---------------------------------------------------------+
  56. foreach ($lgsl_type_list as $key => $value)
  57. {
  58. $output .= "
  59. <option ".($key == $type ? "selected='selected'" : "")." value='{$key}'> {$value} </option>";
  60. }
  61. //---------------------------------------------------------+
  62. $output .= "
  63. </select>
  64. </td>
  65. </tr>
  66. <tr style='".lgsl_bg()."'>
  67. <td> {$lgsl_config['text']['adr']} </td>
  68. <td> <input type='text' name='form_ip' value='".lgsl_string_html($ip)."' size='15' maxlength='128' /> </td>
  69. </tr>
  70. <tr style='".lgsl_bg()."'>
  71. <td> {$lgsl_config['text']['cpt']} </td>
  72. <td> <input type='text' name='form_c_port' value='".lgsl_string_html($c_port)."' size='5' maxlength='5' /> </td>
  73. </tr>
  74. <tr style='".lgsl_bg()."'>
  75. <td> {$lgsl_config['text']['qpt']} </td>
  76. <td> <input type='text' name='form_q_port' value='".lgsl_string_html($q_port)."' size='5' maxlength='5' /> </td>
  77. </tr>
  78. <tr style='".lgsl_bg()."'>
  79. <td colspan='2' style='text-align:center'>
  80. <br />
  81. <input type='submit' name='lgsl_submit_test' value='{$lgsl_config['text']['ats']}' />
  82. <br />
  83. <br />
  84. </td>
  85. </tr>
  86. </table>
  87. <br />
  88. <br />
  89. </div>
  90. </form>";
  91. //-----------------------------------------------------------------------------------------------------------+
  92. if (empty($_POST['lgsl_submit_test']) && empty($_POST['lgsl_submit_add'])) { return; }
  93. if (!isset($lgsl_type_list[$type]) || !$ip || !$c_port || !$q_port) { return; }
  94. //-----------------------------------------------------------------------------------------------------------+
  95. lgsl_database();
  96. $ip = mysql_real_escape_string($ip);
  97. $q_port = mysql_real_escape_string($q_port);
  98. $c_port = mysql_real_escape_string($c_port);
  99. $s_port = mysql_real_escape_string($s_port);
  100. $type = mysql_real_escape_string($type);
  101. //-----------------------------------------------------------------------------------------------------------+
  102. $ip_check = gethostbyname($ip);
  103. $mysql_result = mysql_query("SELECT `ip`,`disabled` FROM `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` WHERE `type`='{$type}' AND `q_port`='{$q_port}'");
  104. while ($mysql_row = mysql_fetch_array($mysql_result, MYSQL_ASSOC))
  105. {
  106. if ($ip_check == gethostbyname($mysql_row['ip']))
  107. {
  108. $output .= "
  109. <div style='text-align:center;".lgsl_bg()."'>
  110. <br />";
  111. if ($mysql_row['disabled'])
  112. {
  113. $output .= $lgsl_config['text']['aaa'];
  114. }
  115. else
  116. {
  117. $output .= $lgsl_config['text']['aan'];
  118. }
  119. $output .="
  120. <br />
  121. <br />
  122. </div>
  123. <div>
  124. <br />
  125. </div>";
  126. return;
  127. }
  128. }
  129. //-----------------------------------------------------------------------------------------------------------+
  130. $server = lgsl_query_live($type, $ip, $c_port, $q_port, $s_port, "s");
  131. $server = lgsl_server_html($server);
  132. if (!$server['b']['status'])
  133. {
  134. $output .= "
  135. <div style='text-align:center;".lgsl_bg()."'>
  136. <br />
  137. {$lgsl_config['text']['anr']}
  138. <br />
  139. <br />
  140. </div>
  141. <div>
  142. <br />
  143. </div>";
  144. return;
  145. }
  146. //-----------------------------------------------------------------------------------------------------------+
  147. if (!empty($_POST['lgsl_submit_add']))
  148. {
  149. $disabled = ($lgsl_config['public_add'] == "2") ? "0" : "1";
  150. $mysql_query = "INSERT INTO `{$lgsl_config['db']['prefix']}{$lgsl_config['db']['table']}` (`type`,`ip`,`c_port`,`q_port`,`s_port`,`disabled`,`cache`,`cache_time`) VALUES ('{$type}','{$ip}','{$c_port}','{$q_port}','{$s_port}','{$disabled}','','')";
  151. $mysql_result = mysql_query($mysql_query) or die(mysql_error());
  152. $output .= "
  153. <div style='text-align:center;".lgsl_bg()."'>
  154. <br />";
  155. if ($disabled)
  156. {
  157. $output .= $lgsl_config['text']['ada'];
  158. }
  159. else
  160. {
  161. $output .= $lgsl_config['text']['adn'];
  162. }
  163. $output .="
  164. <br />
  165. <br />
  166. </div>
  167. <div>
  168. <br />
  169. </div>";
  170. return;
  171. }
  172. //-----------------------------------------------------------------------------------------------------------+
  173. $output .= "
  174. <form method='post' action=''>
  175. <div style='text-align:center;".lgsl_bg()."'>
  176. <br />
  177. {$lgsl_config['text']['asc']}
  178. <br />
  179. <br />
  180. </div>
  181. <div>
  182. <br />
  183. </div>
  184. <table cellpadding='4' cellspacing='2' style='margin:auto; text-align:left'>
  185. <tr style='".lgsl_bg()."'> <td> <b> Name: </b> </td> <td style='white-space:nowrap'> {$server['s']['name']} </td> </tr>
  186. <tr style='".lgsl_bg()."'> <td> <b> {$lgsl_config['text']['gme']} </b> </td> <td style='white-space:nowrap'> {$server['s']['game']} </td> </tr>
  187. <tr style='".lgsl_bg()."'> <td> <b> {$lgsl_config['text']['map']} </b> </td> <td style='white-space:nowrap'> {$server['s']['map']} </td> </tr>
  188. <tr style='".lgsl_bg()."'> <td> <b> {$lgsl_config['text']['plr']} </b> </td> <td style='white-space:nowrap'> {$server['s']['players']} / {$server['s']['playersmax']} </td> </tr>
  189. </table>
  190. <div>
  191. <br />
  192. </div>
  193. <div style='text-align:center;".lgsl_bg()."'>
  194. <br />
  195. <input type='hidden' name='form_type' value='".lgsl_string_html($type)."' />
  196. <input type='hidden' name='form_ip' value='".lgsl_string_html($ip)."' />
  197. <input type='hidden' name='form_c_port' value='".lgsl_string_html($c_port)."' />
  198. <input type='hidden' name='form_q_port' value='".lgsl_string_html($q_port)."' />
  199. <input type='submit' name='lgsl_submit_add' value='{$lgsl_config['text']['aas']}' />
  200. <br />
  201. <br />
  202. </div>
  203. <div>
  204. <br />
  205. </div>
  206. </form>";
  207. //------------------------------------------------------------------------------------------------------------+