• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: LightInDarkness  
[Скрипт] Перенос персонажа на другой аккаунт
mizer
Командир
Всем привет! Вчера от нечего делать написал простой скриптик для переноса персонажа на другой аккаунт.

Код


<?php
mysql_connect("localhost","arcanum","arcanum") or die("Ошибка при соединении с базой данных");
mysql_query("SET character_set_client='utf8'");
mysql_query("SET character_set_results='utf8'");
mysql_query("SET collation_connection='utf8_general_ci'");
?>
<form method="POST" action="go.php">       
<center>
<table>
<tr><td>Введите имя персонажа:</td>
<td><input type='text' name="charname"></td></tr>
<tr><td>Введите имя аккаунта:</td>
<td><input type='text' name="acc"></td></tr>
<tr><td>Введите Email аккаунта:</td>
<td><input type='text' name="email"></td></tr>
<tr><td><input type='submit' value="Перенести персонажа"></td></tr>
</table>
</form>
</center>
<?php
if (isset($_POST['charname']) && ($_POST['acc']) && ($_POST['email'])) {
if (strlen($_POST["charname"]) > 3 && strlen($_POST["acc"]) > 2 && strlen($_POST["email"]) > 3) {
if (!preg_match("/^[a-zA-Z0-9]+$/i", $_POST['acc']))      
die ("<p>Error: SQL-Injection</p>");      
if (!preg_match("/^[a-zA-Z0-9]+$/i", $_POST['charname']))      
die ("<p>Error: SQL-Injection</p>");      
$newacc = @mysql_result(mysql_query("SELECT id FROM `auth`.`account` WHERE `username`='{$_POST['acc']}' AND `email`='{$_POST['email']}' "),0);
if($newacc)
{
mysql_query("UPDATE `characters`.`characters` SET `account`=$newacc WHERE `name`='{$_POST['charname']}' ");
echo "<center>Персонаж '{$_POST['charname']}' успешно перенесён на аккаунт '{$_POST['acc']}'</center>";
}
else
{
echo "<center>Логин не соответстует Email или такого аккаунта не существует</center>";
}
}
else
{
echo "<center>Ошибка. Не правильно заполнены формы</center>";
}
}

?>



Кому понравился, ставим плюсек=)
Сообщение # 1 отредактировано Sherlоck - Среда, 05.02.2014, 19:01
TheChosenOne
FUS RO DAH
Ты бы хоть авторизацию что ли организовал, а то ввёл любой ник, любой акк и стырил перса, не хорошо.
Сообщение # 2 написано 14.09.2011 в 16:35
mizer
Командир
TheChosenOne, ну это для админов чтоле=) Могу переписать не много
Сообщение # 3 написано 14.09.2011 в 16:37
TheChosenOne
FUS RO DAH
Ну что ли не все могут переписать под себя, ведь так?
Сообщение # 4 написано 14.09.2011 в 16:38
mizer
Командир
Сейчас перепишу

Добавлено (14.09.2011, 16:43)
---------------------------------------------
Переписал, теперь чтобы перенести нужно знать email аккаунта...

Сообщение # 5 написано 14.09.2011 в 16:43
TheChosenOne
FUS RO DAH
Нету проверок существует ли вообще такой перс/акк, так же стоило бы фильтровать переменные, а ещё лучше просто вырезать все спец символы такие как .,'\+-= и т.п., так как ни в нике ни в акке они не используются.

Добавлено (14.09.2011, 16:47)
---------------------------------------------

Quote (mizer)
Переписал, теперь чтобы перенести нужно знать email аккаунта...

не проще проверить логин и пасс того аккаунта на котором перс?
Сообщение # 6 написано 14.09.2011 в 16:47
mizer
Командир
TheChosenOne,
Quote
существует ли вообще такой перс/акк

Аккаунт сразу вводится новый, без проверки старого.
Проверка на наличие не требуется, т.к всеравно выдаст ошибку о не верном заполнении или не соответствии...
Зачем вырезать спецсимволы, если их всеравно никто не будет использовать?
Сообщение # 7 отредактировано mizer - Среда, 14.09.2011, 16:52
TheChosenOne
FUS RO DAH
Мда, после таких слов как-то не очень охота твои скрипты ставить на сайт, ты бы хоть ошибку вывел, а то что-то не обнаружил я mysql_error
Сообщение # 8 написано 14.09.2011 в 16:55
mizer
Командир
TheChosenOne, не понял вообще, зачем mysql_error? Если логин-эмейл не найден или не совпадает, оно переносить ничего не будет. Символы добавлю.

+ фикс русских ников
Сообщение # 9 написано 14.09.2011 в 16:57
TheChosenOne
FUS RO DAH
Сообщение # 10 написано 14.09.2011 в 16:59
mizer
Командир
Нифига людям эти ошибки выводить? Максимум можно написать ошибку о проблеме с коннектом к базе

Добавлено (14.09.2011, 17:02)
---------------------------------------------
И вообще, развели тут флуд

Сообщение # 11 написано 14.09.2011 в 17:02
Прадмур
~
Quote (mizer)
Так уж и быть без ограничения=)
было бы что ограничивать... делов-то... поменять одну цифру в базе characters

Quote (mizer)
Нифига людям эти ошибки выводить? Максимум можно написать ошибку о проблеме с коннектом к базе

ты с php первый день работаешь? Про sql injection не слышал?
Единственное что может тебя спасти - это опция magic_quotes_gpc.
Сообщение # 12 написано 14.09.2011 в 17:03
mizer
Командир
Прадмур, может ктото этого не знает. И вообще скрипт для админа и якобы не доступен игрокам... И вообще че вы накинулись все? Будто это скрипт для офа? Это простой паблик скрипт. Не нравится - лесом
Сообщение # 13 написано 14.09.2011 в 17:06
Прадмур
~
Quote (mizer)
Прадмур, может ктото этого не знает. И вообще скрипт для админа и якобы не доступен игрокам... И вообще че вы накинулись все? Будто это скрипт для офа? Это простой паблик скрипт. Не нравится - лесом

Админу легче поменять одну цифру, чем использовать скрипты с потенциальным ущербом его сохранности mysql сервера.
Сообщение # 14 написано 14.09.2011 в 17:08
mizer
Командир
Прадмур, omg :\

Добавлено (14.09.2011, 17:16)
---------------------------------------------
Поправил он sql injection

Добавлено (14.09.2011, 18:20)
---------------------------------------------
Все скрипт работает, нормальный со стороны защиты. Почистили бы тему

Сообщение # 15 написано 14.09.2011 в 18:20
MeGOO
Капрал
ухаха, тогда можно разные майлы перебрать
Я люблю WoWJP.Net
Сообщение # 16 написано 14.09.2011 в 19:36
mizer
Командир
удачи, повторяюсь - скрипт не доступен для польщователей обычных
Сообщение # 17 написано 14.09.2011 в 19:53
Прадмур
~
Quote (mizer)
if (!preg_match("/^[a-zA-Z0-9]+$/i", $_POST['email']))
die ("<p>Error: SQL-Injection</p>");

В адресе электронной почты ещё и собаки есть.
И лучше не die делать, а в переменную ошибку заносить и потом где-нибудь выводить.
Вообще есть функция mysql_real_escape_string, которая экранирует спецсимволы, именно её и нужно использовать.
preg_match нужен только для регистрации, что бы убедиться в том, что аккаунт будет состоять только из нужных символов с которыми работает ядро.
Да и strlen тоже не уместен, мало ли каким образом они себе аки насоздавали, может там и меньше символов.
Сообщение # 18 отредактировано Прадмур - Среда, 14.09.2011, 20:09
mizer
Командир
Прадмур, ну я вижу ты гуру php=) Я в php далеко не первый день, но и не последний=)
Сообщение # 19 написано 14.09.2011 в 20:32
Прадмур
~
Quote (mizer)
Прадмур, ну я вижу ты гуру php=) Я в php далеко не первый день, но и не последний=)

Это элементарная логика. Кто сколько этим занимается не имеет значения.
Тем более я позже тебя начал php заниматься.

Quote (mizer)
Все скрипт работает, нормальный со стороны защиты. Почистили бы тему

а зачем? пусть каждый знает какие ошибки он может допустить )
Сообщение # 20 отредактировано Прадмур - Среда, 14.09.2011, 21:37
mizer
Командир
Прадмур, если б я занимался, я иногда пробую, а не постоянно занимаюсь
Сообщение # 21 написано 14.09.2011 в 21:46
RazArt
Тазовод
А я у себя в лк привязал трансфер к мэйлу, вот так точно будет хоть какая-то защита от угона акка
DumpMe v1.0 - система автоматического переноса персонажей

Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 22 написано 15.09.2011 в 08:21
kocmoc91god
Скаут
а есть у кого нибудь норма работающий скрипт по переносу персонажа за " голда "?
перенес персонажа и у тебя со счета деньги списывают.
http://ultimatex50.tk - World of Warcraft 2.4.3
Сообщение # 23 написано 20.06.2012 в 14:10
Ckumunok
Скаут
Мне кажется скрипт будет крутой когда заходишь в лк а там опция перенсти перса, ты кликаешь ее, вводишь ник логин и пасс и свой имэйл + капчу и те на имэйл приходит код который ты должен ввести в поле, вот это реальная безопасность персонажей)))
Сообщение # 24 отредактировано Ckumunok - Пятница, 17.08.2012, 11:51
Zaharov
Рыцарь
Ckumunok, загнул ))))
<a class="link" href="http://www.speedtest.net/my-result/3300585799" rel="nofollow" target="_blank"><img src="http://www.speedtest.net/result/3300585799.png" border="0" alt=""/>
Сообщение # 25 написано 17.08.2012 в 12:16
Ckumunok
Скаут
Zaharov, перенос персонажа должен проходить безопасно
Сообщение # 26 написано 17.08.2012 в 12:46
Zaharov
Рыцарь
безопасно это если будет в лк и там надо водить логин двух аков и два пароля ну и капчу и этого хватит
<a class="link" href="http://www.speedtest.net/my-result/3300585799" rel="nofollow" target="_blank"><img src="http://www.speedtest.net/result/3300585799.png" border="0" alt=""/>
Сообщение # 27 написано 17.08.2012 в 12:53
trevan
Скаут
Мыло не проверяется.Дырка smile
Сообщение # 28 написано 17.08.2012 в 13:47
Quintessence
Центурион
trevan, ослеп?
mysql_query("SELECT id FROM `auth`.`account` WHERE `username`='{$_POST['acc']}' AND `email`='{$_POST['email']}' ")
Уникальный рейтинг серверов http://rtop.biz
RTOP на WoWJP
Сообщение # 29 написано 17.08.2012 в 17:37
trevan
Скаут
Quote (Quintessence)
trevan, ослеп?
mysql_query("SELECT id FROM `auth`.`account` WHERE `username`='{$_POST['acc']}' AND `email`='{$_POST['email']}' ")


Оно совсем не фильтруется,идет сразу в запрос
Сообщение # 30 написано 17.08.2012 в 18:33
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: