[помощь] Скрипт смены ника
3 ответов139 просмотровСейчас просматривают: 1
· 21.11.2008, 08:44
Нужно чтобы можно сменить ник с символами. В скрипте МВ можно только на простой ник...
CODE
<?php
$submit = isset($HTTP_POST_VARS['submit'])?$HTTP_POST_VARS['submit']:false;
if ($submit)
{
$link = mysql_connect($L2JBS_config['mysql_host'].":".$L2JBS_config['mysql_port'], $L2JBS_config['mysql_login'], $L2JBS_config['mysql_password']);
if (!$link)
die("Нет конекта с базой MySQL");
@mysql_select_db($L2JBS_config['mysql_db'], $link)
or die ('Error '.mysql_errno().': '.mysql_error());
$oldnick = $HTTP_POST_VARS['oldnick'];
$newnick = $HTTP_POST_VARS['newnick'];
$acc_name = $HTTP_POST_VARS['acc_name'];
$pass = $HTTP_POST_VARS['pass'];
$sql = "SELECT * FROM `accounts` WHERE `login` = '$acc_name'";
$res = mysql_query($sql);
$account = mysql_fetch_array($res);
if ($account['password'] != base64_encode(pack('H*',sha1(utf8_encode($pass))))) {die('Пароль неверный<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$res = mysql_query("SELECT `char_name` FROM `characters` WHERE `char_name` = '$oldnick'");
if (!@mysql_num_rows($res)) {die('Вашего перса не существует<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$res = mysql_query("SELECT `char_name` FROM `characters` WHERE `char_name` = '$newnick'");
if (@mysql_num_rows($res)) {die('Перс с таким именем уже есть<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$sql = "SELECT `account_name`,`obj_Id`,`online` FROM `characters` WHERE `char_name` = '$oldnick'";
$res = mysql_query($sql);
$nick = mysql_fetch_array($res);
if ($account['login'] != $nick['account_name']) {die('А вы уверены, что это ваш чар? :D<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$sql = "SELECT `owner_id`,`object_id`,`item_id`,`count` FROM `items` WHERE `item_id` = 4037 AND `owner_id` = ${nick['obj_Id']}";
$res = mysql_query($sql);
$money = mysql_fetch_array($res);
if ($money['count'] < $price1) {die('Нехватает бабок<br><br><a href="index.php?id=charnamechange">Назад</a>');}
if ($nick['online']) {die('Ваш перс в игре. Для начала надо выйти.<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$tmp = $money['count'] - $price1;
mysql_query("UPDATE `items` SET `count` = $tmp WHERE `item_id` = 4037 AND `owner_id` = ${nick['obj_Id']}");
mysql_query("UPDATE `characters` SET `char_name` = '$newnick' WHERE `obj_Id` = ${nick['obj_Id']}");
?>Имя успешно изменено<br><br><br><a href="index.php?id=charnamechange">Назад</a><?php
}
else
{
?>
<script language=javascript>
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9]+$/))
return true;
else
return false;
}
function checkform(frm)
{
if (frm.acc_name.value=="")
{
alert("Введите аккаунт");
return false;
}
if (!isAlphaNumeric(frm.acc_name.value))
{
alert("Аккаунт должен состоять из английских букв и/или цифр!");
return false;
}
if (frm.newnick.value=="")
{
alert("Введите аккаунт");
return false;
}
if (!isAlphaNumeric(frm.newnick.value))
{
alert("Аккаунт должен состоять из английских букв и/или цифр!");
return false;
}
if (frm.pass.value=="")
{
alert("Введите пароль");
return false;
}
if (!isAlphaNumeric(frm.pass.value))
{
alert("Пароль должен состоять из английских букв и/или цифр!");
return false;
}
return true;
}
</script><br><br>
Внимание!Символы в ник недопустимы!<br><br>Здесь Вы имеете возможность сменить ник за 1kk Coin of Luck.<br><br> Текущая цена: <?php echo $price1; ?> Coin of Luck.<br><br>
<form action=index.php?id=charnamechange method=post onsubmit="return checkform(this)">
<table cellpadding=2 cellspacing=2>
<tr><td>Имя аккаунта<td><input name=acc_name>
<tr><td>Пароль<td><input name=pass type=password>
<tr><td>Текущий ник перса<td><input name=oldnick>
<tr><td>Новый ник перса<td><input name=newnick maxlength="15">
<tr><td colspan=2><input type=submit name=submit value="Сменить имя">
</table></form>
<?php
}
?>
$submit = isset($HTTP_POST_VARS['submit'])?$HTTP_POST_VARS['submit']:false;
if ($submit)
{
$link = mysql_connect($L2JBS_config['mysql_host'].":".$L2JBS_config['mysql_port'], $L2JBS_config['mysql_login'], $L2JBS_config['mysql_password']);
if (!$link)
die("Нет конекта с базой MySQL");
@mysql_select_db($L2JBS_config['mysql_db'], $link)
or die ('Error '.mysql_errno().': '.mysql_error());
$oldnick = $HTTP_POST_VARS['oldnick'];
$newnick = $HTTP_POST_VARS['newnick'];
$acc_name = $HTTP_POST_VARS['acc_name'];
$pass = $HTTP_POST_VARS['pass'];
$sql = "SELECT * FROM `accounts` WHERE `login` = '$acc_name'";
$res = mysql_query($sql);
$account = mysql_fetch_array($res);
if ($account['password'] != base64_encode(pack('H*',sha1(utf8_encode($pass))))) {die('Пароль неверный<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$res = mysql_query("SELECT `char_name` FROM `characters` WHERE `char_name` = '$oldnick'");
if (!@mysql_num_rows($res)) {die('Вашего перса не существует<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$res = mysql_query("SELECT `char_name` FROM `characters` WHERE `char_name` = '$newnick'");
if (@mysql_num_rows($res)) {die('Перс с таким именем уже есть<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$sql = "SELECT `account_name`,`obj_Id`,`online` FROM `characters` WHERE `char_name` = '$oldnick'";
$res = mysql_query($sql);
$nick = mysql_fetch_array($res);
if ($account['login'] != $nick['account_name']) {die('А вы уверены, что это ваш чар? :D<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$sql = "SELECT `owner_id`,`object_id`,`item_id`,`count` FROM `items` WHERE `item_id` = 4037 AND `owner_id` = ${nick['obj_Id']}";
$res = mysql_query($sql);
$money = mysql_fetch_array($res);
if ($money['count'] < $price1) {die('Нехватает бабок<br><br><a href="index.php?id=charnamechange">Назад</a>');}
if ($nick['online']) {die('Ваш перс в игре. Для начала надо выйти.<br><br><a href="index.php?id=charnamechange">Назад</a>');}
$tmp = $money['count'] - $price1;
mysql_query("UPDATE `items` SET `count` = $tmp WHERE `item_id` = 4037 AND `owner_id` = ${nick['obj_Id']}");
mysql_query("UPDATE `characters` SET `char_name` = '$newnick' WHERE `obj_Id` = ${nick['obj_Id']}");
?>Имя успешно изменено<br><br><br><a href="index.php?id=charnamechange">Назад</a><?php
}
else
{
?>
<script language=javascript>
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9]+$/))
return true;
else
return false;
}
function checkform(frm)
{
if (frm.acc_name.value=="")
{
alert("Введите аккаунт");
return false;
}
if (!isAlphaNumeric(frm.acc_name.value))
{
alert("Аккаунт должен состоять из английских букв и/или цифр!");
return false;
}
if (frm.newnick.value=="")
{
alert("Введите аккаунт");
return false;
}
if (!isAlphaNumeric(frm.newnick.value))
{
alert("Аккаунт должен состоять из английских букв и/или цифр!");
return false;
}
if (frm.pass.value=="")
{
alert("Введите пароль");
return false;
}
if (!isAlphaNumeric(frm.pass.value))
{
alert("Пароль должен состоять из английских букв и/или цифр!");
return false;
}
return true;
}
</script><br><br>
Внимание!Символы в ник недопустимы!<br><br>Здесь Вы имеете возможность сменить ник за 1kk Coin of Luck.<br><br> Текущая цена: <?php echo $price1; ?> Coin of Luck.<br><br>
<form action=index.php?id=charnamechange method=post onsubmit="return checkform(this)">
<table cellpadding=2 cellspacing=2>
<tr><td>Имя аккаунта<td><input name=acc_name>
<tr><td>Пароль<td><input name=pass type=password>
<tr><td>Текущий ник перса<td><input name=oldnick>
<tr><td>Новый ник перса<td><input name=newnick maxlength="15">
<tr><td colspan=2><input type=submit name=submit value="Сменить имя">
</table></form>
<?php
}
?>
Помогите+)
— L2Revolution.ru Admin
0
· 21.11.2008, 09:28
Как заказывали, заменяем, радуемся.
Код
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9_\-\$\=\*\@]+$/))
return true;
else
return false;
}
{
if (value.match(/^[a-zA-Z0-9_\-\$\=\*\@]+$/))
return true;
else
return false;
}
p.s Следи, чтобы у тебя на сервере в php настройках magic quotes были включены, иначе простой манипуляцией через такой скрипт можно и в базу залезть.
Запросы не фильтруюца.
— Ålderdom - ingen glädje..
0
· 21.11.2008, 10:02
http://www.php.su/security/?magicquotes
Смотри чтоб в настройках было включено magic_quotes_gpc, и все.
— Ålderdom - ingen glädje..
0
Тема закрыта для ответов


