Advertisement
Guest User

Untitled

a guest
Aug 9th, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.57 KB | None | 0 0
  1. <?php
  2. if($module7==1){
  3. session_start();
  4. $error = 1;
  5. $dberror=0;
  6.  
  7. if($securitycheck!=1) {
  8. echo "<center><span style='color:blue'><h1>Engine error: FATAL ERROR #001</h1></span><br></center>";
  9. exit;
  10. }
  11. $dbconnect=mssql_connect($mssql_host,$mssql_login,$mssql_pass);
  12. if(!$dbconnect) { echo "<h1>Engine Error: Fatal Error #002</h1><br>Извините, сервис недоступен по техническим причинам. Попробуйте позже."; $dberror=1; }
  13.  
  14. if($dberror!=1) {
  15.  
  16. echo "
  17. <b><center><h3><span style='font-size: 110%'>Уважаемые игроки!</span><h3></center></b><br>
  18. Для того, чтобы изменить ник персонажу, заполните форму приведенную ниже.<BR>Внимание! За смену ника, с указанного вами персонажа, будет сделано списание $colexname в кол-ве $colexcol.<BR><br>
  19. ";
  20.  
  21.  
  22. if($_POST['action']=='changepassword') {
  23.  
  24. echo "<div align=center>";
  25.  
  26. if(count($_POST)>0){
  27. if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
  28.  
  29. $error = 2;
  30.  
  31.  
  32. $user = $_POST['user'];
  33. if(antiinjection($user)){ $username=$user;
  34.  
  35. $oldpwd = $_POST['oldpassword'];
  36. if(antiinjection($oldpwd)){ $oldpassword=$oldpwd;
  37.  
  38. $oldname = $_POST['oldname'];
  39. if(antiinjection($oldname)){ $oldnamez=$oldname;
  40.  
  41. $newname = $_POST['newname'];
  42. if(antiinjection($newname)){ $newnamez=$newname;
  43.  
  44.  
  45. if (strlen($username)<4 || strlen($username)>14) {
  46. echo "<span style='color:red'>Длина имени аккаунта заключена в диапазон от 4 до 14 символов.</span><br>";
  47. $error = 1;
  48. } else {
  49. if (strlen($oldpassword)<3 || strlen($oldpassword)>16) {
  50. echo "<span style='color:red'>Длина старого пароля заключена в диапазон от 3 до 16 символов.</span><br>";
  51. $error = 1;
  52. } else {
  53. if (strlen($oldnamez)<2 || strlen($oldnamez)>16) {
  54. echo "<span style='color:red'>Длина старого ника заключена в диапазон от 2 до 16 символов.</span><br>";
  55. $error = 1;
  56. } else {
  57. if (strlen($newnamez)<2 || strlen($newnamez)>16) {
  58. echo "<span style='color:red'>Длина нового ника заключена в диапазон от 2 до 16 символов.</span><br>";
  59. $error = 1;
  60. } else {
  61.  
  62. // if (!preg_match("/^[\W]+$/", $newnamez)) {
  63.  
  64.  
  65. if (preg_match("/[^0-9a-zA-Z]+/", $newnamez)) {
  66. echo "<span style='color:red'>Новый ник должен содержать только латинские буквы и цифры.</span><br>";
  67. $error = 1;
  68. } else {
  69.  
  70. connectdb($lin2db, $mssql_host, $mssql_login, $mssql_pass);
  71. $result = mssql_query (sprintf(SELECT_USER_PASS, $username));
  72.  
  73.  
  74. if(mssql_num_rows($result)>0 ) {
  75.  
  76. $rows=mssql_fetch_assoc($result);
  77. extract($rows);
  78.  
  79. $password = '0x' . bin2hex($password);
  80. $oldpassword = encrypt($oldpassword);
  81.  
  82. if ($password!=$oldpassword) {
  83. echo "<span style='color:red'>Старый пароль неверен.</span><br>";
  84. $error = 1;
  85. }
  86. } else {
  87. echo "<span style='color:red'>Аккаунт не существует.</span><br>";
  88. $error = 1;
  89. }
  90.  
  91. } } } } }
  92.  
  93. } else { $error=1; echo "<span style='color:red'>Неверные данные в графе - новый ник.</span><br>"; }
  94.  
  95. } else { $error=1; echo "<span style='color:red'>Неверные данные в графе - старый ник.</span><br>"; }
  96.  
  97. } else { $error=1; echo "<span style='color:red'>Неверные данные в графе - пароль.</span><br>"; }
  98.  
  99. } else { $error=1; echo "<span style='color:red'>Неверные данные в графе - Аккаунт.</span><br>"; }
  100.  
  101. }else{
  102. echo "<span style='color:red'>Неправильно введен код с картинки.</span><br>";
  103. $error = 1;
  104. }
  105. }
  106. unset($_SESSION['captcha_keystring']);
  107.  
  108. echo "</div>";
  109. }
  110.  
  111. // Checked by Dev -- OK
  112.  
  113. if($error<2) {
  114. echo "
  115. <br>
  116. <form name='changepassword' action='index.php?page=name' method='post' onsubmit='return checkForm(this);'>
  117.  
  118.  
  119. <fieldset>
  120. <legend><b>Изменение ника:</b></legend>
  121.  
  122. <table cellspacing=0 border=0 cellpadding=0 width=100%>
  123. <tr><td align=left>
  124. <i><b>Аккаунт:</b></i>
  125.  
  126. </td>
  127. <td align=right><br>
  128. <div align=right>
  129. <input type=text maxlength=16 name=user><br><br>
  130. </div>
  131. </td></tr>
  132.  
  133. <tr><td align=left>
  134. <i><b>Пароль:</b></i>
  135.  
  136. </td>
  137. <td align=right><br>
  138. <div align=right>
  139. <input type=password maxlength=16 name=oldpassword><br><br>
  140. </div>
  141. </td></tr>
  142.  
  143. <tr><td align=left>
  144. <i><b>Старый Ник:</b></i>
  145.  
  146. </td>
  147. <td align=right><br>
  148. <div align=right>
  149. <input type=text maxlength=16 name=oldname><br><br>
  150. </div>
  151. </td></tr>
  152.  
  153. <tr><td align=left>
  154. <i><b>Новый ник:</b></i>
  155.  
  156. </td>
  157. <td align=right><br>
  158. <div align=right>
  159. <input type=text maxlength=16 name=newname><br><br>
  160. </div>
  161. </td></tr>
  162.  
  163. </table>
  164. </fieldset>
  165. <br>
  166. <fieldset>
  167. <legend><b>Защита от подбора паролей:</b></legend>
  168. <table cellspacing=0 border=0 cellpadding=0 width=100%>
  169. <td align=left><br><br><br><br><br>
  170. <b><i>Код на картинке:</i></b>
  171. </td>
  172. <td align=right>
  173. <div align=right>
  174. <div class='captha'><a tooltip='Обновить код' href='JavaScript: new_captcha();'><img id='capchaimagereg' src='captha/index.php?";
  175. echo session_name();
  176. echo "=";
  177. echo session_id();
  178. echo "' height='50' width='120'></a><br></div><br>
  179. <input type=text maxlength=16 name=keystring value=''>
  180. </div>
  181. </td></table>
  182.  
  183. </fieldset>
  184.  
  185.  
  186. <div align=right>
  187. <BR>
  188. <input type=hidden name=action value='changepassword'>
  189. <h9><span><input type=submit class='btn' name=submit value='Подтвердить'></span></h9>
  190. </div>
  191. </form>
  192. ";
  193. }
  194.  
  195. if($error==2) {
  196.  
  197.  
  198. mssql_connect($mssql_host,$mssql_login,$mssql_pass);
  199. mssql_select_db($lin2world);
  200.  
  201. $result=mssql_query("SELECT * FROM user_data WHERE char_name='$newnamez'");
  202.  
  203. if(mssql_num_rows($result)==0){
  204.  
  205. $result=mssql_query("SELECT * FROM user_data WHERE char_name='$oldnamez' and account_name='$username'");
  206.  
  207. if(mssql_num_rows($result)>0){
  208.  
  209. $charid=mssql_result($result, 0, 'char_id');
  210.  
  211. $result=mssql_query("SELECT * FROM user_item WHERE char_id='$charid' and item_type='$colexid' and amount>='$colexcol'");
  212. if(mssql_num_rows($result)>0){
  213.  
  214. $warexha=mssql_result($result, 0, 'warehouse');
  215. $itemiud=mssql_result($result, 0, 'item_id');
  216. $amountex=mssql_result($result, 0, 'amount');
  217.  
  218. //Обращаемся к CacheD
  219.  
  220. include('config/cached.php');
  221.  
  222. $cached = new CacheD;
  223.  
  224. $char_id = $charid;
  225. $item_warehouse = $warexha;
  226. $item_uid = $itemiud;
  227. $amount = $colexcol;
  228.  
  229. if ($cached -> KickCharacterPacket($char_id)) {
  230. $cached -> KickCharacterPacket($char_id);
  231. if ($cached -> DelItemPacket($char_id, $item_warehouse, $item_uid, $amount)){
  232.  
  233.  
  234. $xcolvo = $amountex - $colexcol;
  235.  
  236. //echo "$char_id | $item_warehouse | $item_uid | $amount | $xcolvo | $amountex | $colexcol |";
  237.  
  238.  
  239. if($xcolvo==0){
  240.  
  241. $result=mssql_query("SELECT * FROM user_item WHERE char_id='$charid' and item_type='$colexid' and warehouse='$warexha'");
  242.  
  243. if(mssql_num_rows($result)>0){
  244. echo "<span style='color:red'>Error 893. Ошибка при проведении транзакции, попробуйте еще раз.</span><br>";
  245. }else{
  246. $nametoken = 1;
  247. }
  248.  
  249. }else{
  250.  
  251. $result=mssql_query("SELECT * FROM user_item WHERE char_id='$charid' and item_type='$colexid' and warehouse='$warexha'");
  252.  
  253. if(mssql_num_rows($result)>0){
  254.  
  255. $giveamox=mssql_result($result, 0, 'amount');
  256.  
  257. if($xcolvo==$giveamox) {
  258. $nametoken = 1;
  259.  
  260. }else{ echo "<span style='color:red'>Error 891. Ошибка при проведении транзакции, попробуйте еще раз.</span><br>";
  261.  
  262. }
  263.  
  264. }else{ echo "<span style='color:red'>Error 890. Ошибка при проведении транзакции, попробуйте еще раз.</span><br>";
  265.  
  266. }
  267. }
  268.  
  269. }else{
  270. echo "<span style='color:red'>Error 894. Ошибка при проведении транзакции, попробуйте еще раз.</span><br>";
  271. }
  272. }else{
  273. echo "<span style='color:red'>Error 895. Сервер не работает.</span><br>";
  274. }
  275.  
  276.  
  277.  
  278. }else{
  279. echo "<span style='color:red'>У вашего персонажа нет $colexname или их меньше чем $colexcol штук.</span><br>";
  280. }
  281. }else{
  282. echo "<span style='color:red'>На вашем аккаунте нет персонажа с ником $oldnamez.</span><br>";
  283. }
  284. }else{
  285. echo "<span style='color:red'>Указанный новый ник уже используется, выберите новый.</span><br>";
  286. }
  287.  
  288.  
  289. }
  290.  
  291.  
  292. if($nametoken==1){
  293.  
  294.  
  295. //Обращаемся к CacheD
  296.  
  297.  
  298. if ($cached -> KickCharacterPacket($char_id)) {
  299.  
  300.  
  301. $new_char_name = $newnamez;
  302. $cached -> KickCharacterPacket($char_id);
  303. $cached -> ChangeCharacterNamePacket($char_id,$new_char_name);
  304.  
  305. $result=mssql_query("SELECT * FROM user_data WHERE char_id='$char_id'");
  306.  
  307. $resname=mssql_result($result, 0, 'char_name');
  308.  
  309.  
  310. $realIP = $_SERVER["REMOTE_ADDR"];
  311.  
  312. $thedata = date("d.m.Y H:i");
  313. $success = "$realIP;$thedata;Произведена смена ника персонажу $oldnamez на $resname \r\n";
  314. $file = fopen("log/changename.txt", "a+");
  315. fwrite($file, $success);
  316. fclose($file);
  317.  
  318. echo "<span style='color:green'>Ник изменен. При возникновенни вопросов обратитесь к администратору.</span><br>";
  319.  
  320. }
  321.  
  322.  
  323. }
  324.  
  325.  
  326. }
  327. }else{
  328. echo $errfield;
  329. }
  330. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement