Услуга "Перенести персонажа"
Т.к моя проблема связано со скриптом и она относится к разделу сайты,напишу проблему сюда. Итак,у меня проблема.Есть код .php на перенос персонажа на другой аккаунт. При переносе всё отлично работает,написано персонаж перенесён,но персонаж пропадает.Заглянул в бд characters, и обнаружил,что id Account, на котором хранится персонаж = 0. Если кто-то знает с чем это может быть связано,прошу отписать. Обязательно ли вылаживать сам скрипт :)?
Сообщение #
1 написано 13.01.2012 в 19:04
Скрипт выложи, а то как понять в чем проблема
Сообщение #
2 написано 13.01.2012 в 19:24
<?php if (isset($_POST['guid']) && @preg_match("/[0-9]\$/", $_POST['guid'])) { $char_guid = $_POST['guid']; } else { $char_guid = '0'; } if ($user_logined[$realm_num] == "1") { if (isset($_POST['submit'])) { $user_login = getLoginFromId($user_guid[$realm_num], $realm_num); $password = $_POST['password']; $password_hash = getPasswordHash($user_login, $password); $user_login_2 = $_POST['login_2']; $password_2 = $_POST['password_2']; $password_hash_2 = getPasswordHash($user_login_2, $password_2); $email = $_POST['email']; if (preg_match("/^[a-zA-Z0-9]+$/", $password) && preg_match("/^[a-zA-Z0-9]+$/", $password_2) && preg_match("/^[a-zA-Z0-9_]+$/", $user_login_2) && preg_match("/^[0-9_]+$/", $char_guid)) { if (@mysql_num_rows(mysql_query("SELECT * FROM `".$mysql_db_realmd[$realm_num]."`.`account` WHERE username = '$user_login' AND sha_pass_hash = '$password_hash'", $ConnectDB[$realm_num]))){ if (@mysql_num_rows(mysql_query("SELECT * FROM `".$mysql_db_realmd[$realm_num]."`.`account` WHERE username = '$user_login_2' AND sha_pass_hash = '$password_hash_2'", $ConnectDB[$realm_num]))){ if (getCharAccountByGuid($char_guid, $realm_num) == $user_guid[$realm_num]) { if (strtoupper($user_login) != strtoupper($user_login_2)) { if (getCharOnlineByGuid($char_guid, $realm_num) == 0) { if (getBanTime($char_guid, $realm_num) == 0) { $bonus_count = getAccountBonuses($user_login); if ($bonus_count >= 50 ) { if (setAccountBonuses($user_login, 50, '1')) { $query = @mysql_query("UPDATE `".$mysql_db_characters[$realm_num]."`.`characters` SET account = '$user_login' WHERE guid = '$char_guid'", $ConnectDB[$realm_num]); if ($query) { $page_text = "<center>Персонаж был успешно перенесён. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=main\")', 5000);</script>"; } else { setAccountBonuses($user_login, 50, '2'); $page_text = "<center>Персонаж не был перенесён. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Ошибка системы бонусов, попробуйте повторить попытку позднее. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>У вас не хватает ".(50 - $bonus_count)." бонуса(ов). Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Сначала разбаньте свой аккаунт. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Ваш персонаж онлайн, выйдите из игры и повторите попытку. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Нельзя перенести персонажа на свой аккаунт. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Переместить можно только своего персонажа. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Неверно введен пароль от второго аккаунта. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Неверно введен пароль. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $page_text = "<center>Найдены запрещенные символы. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=buytransfer\")', 5000);</script>"; } } else { $user_characters_db = @mysql_query("SELECT name, guid, level FROM `".$mysql_db_characters[$realm_num]."`.`characters` WHERE account ='".$user_guid[$realm_num]."' ORDER BY name", $ConnectDB[$realm_num]); if (@mysql_num_rows($user_characters_db) > 0) { $page_text = " <center> <form action=\"?page=lk&realm=$realm_num&do=buytransfer\" method=\"post\"> <input type=\"hidden\" name=\"guid\" value=\"$char_guid\"> Ваш пароль:<br><input type=\"password\" class=\"input_textbox\" name=\"password\"><br><br> Персонаж: <br><select class=\"input_select\" name=\"guid\"> "; while($result = mysql_fetch_array($user_characters_db)){ $page_text .= "<option value=\"".$result['guid']."\">".$result['name']." (".$result['level'].")</option>"; } $page_text .= " </select><br><br> На аккаунт:<br><input type=\"text\" class=\"input_textbox\" name=\"login_2\"><br><br> Пароль от аккаунта:<br><input type=\"password\" class=\"input_textbox\" name=\"password_2\"> <br><br>Стоимость смены расы - 50 бонусов <br><br><input type=\"submit\" class=\"input_button\" value=\"Продолжить\" name=\"submit\"> </form> </center> "; } else { $page_text = "<center>У вас нет игровых персонажей. Вы будете автоматически возвращены через 5 секунд</center><script type=\"text/javascript\">setTimeout('location.replace(\"./?page=lk&realm=$realm_num&do=main\")', 5000);</script></center>"; } } } else { $page_text = "<center>Для просмотра данной страницы необходима авторизация</center>"; } echo $page_text; ?>
Сообщение #
3 написано 13.01.2012 в 19:26
Ты вкурсе, что этим скриптом можно перенести абсолютно любого персонажа себе на акк?
Сообщение #
4 написано 13.01.2012 в 20:13
Дрюнь, тебя вот эта строка не смущает?) Quote
if (getCharAccountByGuid($char_guid, $realm_num) == $user_guid[$realm_num])
getCharAccountByGuid - возвращает ид акка, которому принадлежит персонаж, и не даёт трансферить чужих персов) а сразу за ней идёт проверка, не переносишь ли ты его себе) Quote
if (strtoupper($user_login) != strtoupper($user_login_2))
DumpMe v1.0 - система автоматического переноса персонажей Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение #
5 отредактировано
RazArt -
Суббота, 14.01.2012, 02:21
Не думаю,что можно воровать играков..
Сообщение #
6 отредактировано
Ranege -
Суббота, 14.01.2012, 03:38
Я думаю,ты не против,что я вылажил код.Я тебе писал в скайп,ты говорил поможешь,но так нечего и не дождался
Сообщение #
7 написано 14.01.2012 в 03:38
Quote (Murline )
Я думаю,ты не против,что я вылажил код
то-то я думаю почерк знакомый...
Сообщение #
8 написано 14.01.2012 в 04:40
Упс, сори, не заметил что проверка функцией
Сообщение #
9 написано 14.01.2012 в 09:13
Mago_De_Sombra , щас другой стиль) более читабельный) Murline , я хз в чём проблема
DumpMe v1.0 - система автоматического переноса персонажей Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение #
10 написано 14.01.2012 в 17:49
так кто знает в чем проблема ?Добавлено (18.09.2012, 23:53) --------------------------------------------- так кто знает в чем проблема ?
тык [biz]место + собираю -[/biz]
Сообщение #
11 написано 18.09.2012 в 23:53
Данная тема была перемещена из раздела Сайты / WWW для TrinityCore . Причина перемещения: Читаем правила раздела. Переместил: Dimitro .
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в
Работе Портала . Не пишите по этому поводу в личку.
Сообщение #
12 написано 19.09.2012 в 00:14