AntiBK/module/form.php

290 lines
16 KiB
PHP
Raw Normal View History

<?
defined('AntiBK') or die("Доступ запрещен!");
?>
<style>
body {background-color: #e2e0e0;}
</style>
<?
switch ($action)
{
case 'shape':
echoScript("$(function (){showShapes(1);});");
if ($char_db['next_shape'] && $char_db['next_shape'] > time())
$char->error->Inventory(111, getFormatedTime($char_db['next_shape']));
echo "<table width='100%' cellspacing='0' cellpadding='0' border='0' style='margin-bottom: -10px;'><tr>";
echo "<td valign='top' nowrap><input type='submit' id='shape_a' value='Доступные' class='nav' style='background-color: #A9AFC0;' onclick='showShapes(1);'>&nbsp;<input type='submit' id='shape_na' value='Все образы' class='nav' onclick='showShapes(0);'></td>";
echo "<td width='100%' align='right'><h3>Выбрать образ персонажа \"$login\"</h3></td>";
echo "<td valign='top' nowrap><input type='button' class='help' value='$lang[hint]' id='hint' link='image'>&nbsp;<input type='button' value='$lang[return]' id='link' link='inv' class='nav'></td>";
echo "</tr></table>";
echo "<font color='red' id='error'></font>";
echo "<div id='shapes' style='width: 100%;'></div>";
break;
case 'security':
$pass = getVar('pass');
if (isset($_POST['changeMail']))
{
$old_mail = getVar('old_mail');
$new_mail = getVar('new_mail');
if ($char_db['next_change'] != 0 && time() < $char_db['next_change'])
$char->error->Form(515, $do);
if (!$pass)
$char->error->Form(507, $do);
if (!$old_mail)
$char->error->Form(508, $do);
if (!$new_mail)
$char->error->Form(509, $do);
if (SHA1($guid.':'.$pass) != $char_db['password'])
$char->error->Form(501, $do);
if ($old_mail != $char_db['mail'])
$char->error->Form(510, $do);
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$", $new_mail))
$char->error->Form(511, $do);
$q = $char->setChar('char_db', array('mail' => $new_mail, 'next_change' => (time() + 259200)));
$msg = "Здравствуйте!\n";
$msg .= DATE_NO_SEC." был сменен e-mail, указанный при регистрации персонажа $login он-лайн игры Анти Бойцовский Клуб.\n";
$msg .= "Новый e-mail: $new_mail\n\n\n\n";
$msg .= "С уважением, администрация Анти Бойцовского Клуба!";
mail($char_db['mail'], "Смена e-mail у персонажа $login", $msg, 'From: Администрация АБК <admin@abk.ru>', 'admin@abk.ru');
if ($q)
$char->error->Form(512, $do);
}
else if (isset($_POST['changePsw']))
{
$new_pass = getVar('new_pass');
$new_pass2 = getVar('new_pass2');
if ($char_db['next_change'] != 0 && time() < $char_db['next_change'])
$char->error->Form(515, $do);
if (!$pass || ($pass && !$new_pass))
$char->error->Form(0, $do);
if ($pass && $new_pass && !$new_pass2)
$char->error->Form(500, $do);
if (SHA1($guid.':'.$pass) != $char_db['password'])
$char->error->Form(501, $do);
if ($new_pass != $new_pass2)
$char->error->Form(502, $do);
if (utf8_strlen($new_pass) < 6 || utf8_strlen($new_pass) > 30)
$char->error->Form(503, $do);
if (!ereg ("[a-zA-Zа-яА-Я0-9]$", $new_pass))
$char->error->Form(506, $do);
$q = $char->setChar('char_db', array('password' => SHA1($guid.':'.$new_pass), 'next_change' => (time() + 259200)));
$msg = "Здраствуйте!\n";
$msg .= DATE_NO_SEC." был сменен пароль к персонажу $login он-лайн игры Анти Бойцовский Клуб.\n";
$msg .= "Новый пароль: $new_pass\n\n\n\n";
$msg .= "С уважением, администрация Анти Бойцовского Клуба!";
mail($char_db['mail'], "Смена пароля у персонажа $login", $msg, 'From: Администрация АБК <admin@abk.ru>', 'admin@abk.ru');
if ($q)
$char->error->Form(504, $do);
}
else if (isset($_POST['changeSqa']))
{
$secretquestion = getVar('secretquestion');
$secretanswer = getVar('secretanswer');
if ($char_db['next_change'] != 0 && time() < $char_db['next_change'])
$char->error->Form(515, $do);
if (!$pass)
$char->error->Form(507, $do);
if (!$secretquestion)
$char->error->Form(513, $do);
if (SHA1($guid.':'.$pass) != $char_db['password'])
$char->error->Form(501, $do);
$q1 = $char->setChar('char_info', array('secretquestion' => $secretquestion, 'secretanswer' => $secretanswer));
$q2 = $char->setChar('char_db', array('next_change' => (time() + 259200)));
$msg = "Здравствуйте!\n";
$msg .= DATE_NO_SEC." был сменен секретный вопрос/ответ, указанный при регистрации персонажа $login он-лайн игры Анти Бойцовский Клуб.\n";
$msg .= "Новый вопрос: $secretquestion\n";
$msg .= "Новый ответ: $secretanswer\n\n\n\n";
$msg .= "С уважением, администрация Анти Бойцовского Клуба!";
mail($char_db['mail'], "Смена секретного вопроса/ответа у персонажа $login", $msg, 'From: Администрация АБК <admin@abk.ru>', 'admin@abk.ru');
if ($q1 && $q2)
$char->error->Form(514, $do);
}
$secretqa = $char->getChar('char_info', 'secretquestion');
?>
<table width="100%" cellspacing="0" cellpadding="0" style="margin-bottom: -15px;">
<tr>
<td width="100%" align="right"><h3>Сменить пароль/email для персонажа "<?echo $login;?>"</h3></td>
<td valign="top" nowrap><input type="button" class="help" value="<?echo $lang['hint'];?>" id="hint" link="psw">&nbsp;<input type="button" class="nav" value="<?echo $lang['return'];?>" id="link" link="inv"></td>
</tr>
</table>
<font color='red' id='error'><?$char->error->getFormattedError($error, $parameters);?></font>
<br>
Чем выше уровень вашего персонажа, тем больше к нему внимание со стороны хакеров, взломщиков и аферистов. Чтобы однажды не оказаться в ситуации, когда вы уже не сможете зайти под своим персонажем, которого развивали (которым жили!) месяцами, потому что пароль сменили, email сменили, все предметы/вещи/кредиты... все что нажито непосильным трудом... ушли в неизвестном направлении, необходимо соблюдать элементарные меры предосторожности. А именно:<br>
1. Никогда, ни под каким предлогом, никому не говорите свой пароль. Ни паладинам, ни администрации не нужно знать ваш пароль.<br>
2. Вводите логин и пароль только на титульной странице <a href="../" target="_blank" class="nick">www.combats.com</a> Ни на каких других сайтах, которые будут как две капли похожие на наш, и куда вас зазывают обещая на халяву предметы и кредиты, не вводите свой пароль! Иначе вы рискуете потерять своего персонажа.<br>
Настоятельно рекомендуем прочесть заметку <a href="encicl/FAQ/afer.html" target="_blank" class="nick">Виды обмана в Бойцовском Клубе</a>.<br><br>
Если вы играете из интернет кафе или компьютерного клуба, где шанс быть взломанным очень высокий, рекомендуем включить второй и третий уровень защиты (см. ниже)<br><br>
<form action="main.php?action=security" name="pass_form" method="post">
<fieldset><legend><b>&nbsp;Сменить пароль</b></legend>
<table>
<tr><td align="right">Старый пароль:</td><td><input type="password" name="pass" size="15" maxlength="31"></td></tr>
<tr><td align="right">Новый пароль:</td><td><input type="password" name="new_pass" size="15" maxlength="31"></td></tr>
<tr><td align="right">Новый пароль (еще раз):</td><td><input type="password" name="new_pass2" size="15" maxlength="31"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Сменить пароль" name="changePsw"></td></tr>
</table>
</fieldset>
</form>
<form action="main.php?action=security" name="mail_form" method="post">
<fieldset><legend><b>&nbsp;Сменить email</b></legend>
<table>
<tr><td align="right">Ваш пароль:</td><td><input type="password" name="pass" size="15" maxlength="31"></td></tr>
<tr><td align="right">Прежний email:</td><td><input type="text" name="old_mail" size="20" maxlength="50"></td></tr>
<tr><td align="right">Новый email:</td><td><input type="text" name="new_mail" size="20" maxlength="50"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Сменить email" name="changeMail"></td></tr>
</table>
</fieldset>
</form>
<form action="main.php?action=security" name="secret_form" method="post">
<fieldset><legend><b>&nbsp;Сменить секретный вопрос/ответ</b></legend>
<table>
<tr><td align="right">Ваш пароль:</td><td><input type="password" name="pass" size="15" maxlength="31"></td></tr>
<tr><td align="right">Старый вопрос:</td><td><b><?echo $secretqa;?></b></td></tr>
<tr><td align="right">Новый вопрос:</td><td><input type="text" name="secretquestion" size="40" maxlength="50"></td></tr>
<tr><td align="right">Новый ответ:</td><td><input type="text" name="secretanswer" size="40" maxlength="50"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Сменить" name="changeSqa"></td></tr>
</table>
</fieldset>
</form>
<u>Учтите</u>, вы не можете одновременно поменять email, пароль или секретные вопрос/ответ. Период должен составлять не менее трех суток.<br>
<?
break;
case 'info':
if (isset($_POST['changeInfo']))
{
$name = getVar('name');
$birth_day = getVar('birth_day');
$birth_month = getVar('birth_month');
$birth_year = getVar('birth_year');
$birthday = $birth_day.'.'.$birth_month.'.'.$birth_year;
$town = (isset($_POST['town_n']) && $_POST['town_n'] != '') ?htmlspecialchars($_POST['town_n']) :((isset($_POST['town'])) ?htmlspecialchars($_POST['town']) :"");
$icq = getVar('icq');
$hide_icq = getVar('hide_icq', 0);
$url = getVar('url');
$color = getVar('color');
$motto = getVar('motto');
$hobie = getVar('hobie');
$hobie = str_replace("\n", "<br>", $hobie);
$count_words = count(split(' ', $hobie));
if ($count_words > 60)
$error = "Слишком большой размер поля \"Хобби, увлечения\". Максимальное количество: 60 слов.";
else if (strlen($hobie) > 2500)
$error = "Слишком большой размер поля \"Хобби, увлечения\". Максимальный размер: 2500 символов.";
else
{
$q = $char->setChar('char_info', array('name' => $name, 'birthday' => $birthday, 'icq' => $icq, 'hide_icq' => $hide_icq, 'url' => $url, 'town' => $town, 'color' => $color, 'motto' => $motto, 'hobie' => $hobie));
if ($q)
$error = "Сохранено удачно.";
}
}
$char_info = $char->getChar('char_info', 'name', 'icq', 'hide_icq', 'url', 'town', 'birthday', 'color', 'motto', 'hobie');
ArrToVar($char_info, 's_');
$s_hobie = str_replace(array("<br>", '\&quot;', "\'"), array("\n", '"', "'"), $s_hobie);
$s_hide_icq = ($s_hide_icq) ?" checked" :"";
$s_birthday = split('\.', $s_birthday);
if (!empty($error))
echo "<font color='red'><b>$error</b></font>";
?>
<table width="99%" cellspacing="0" cellpadding="0" align="center"><tr>
<td width="100%" style="padding-top: 15px;"><h3>Анкета персонажа "<?echo $login;?>"</h3></TD>
<td valign="top"><input type="button" value="<?echo $lang['return'];?>" id="link" link="inv" class="nav"></td>
</tr></table>
<table width="95%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#B2B2B2">
<form name="info_form" action="main.php?action=info" method="post">
<tr class="anketabg"><td width="170">Ваше реальное имя: </td><td><input name="name" value="<?echo $s_name;?>" size="45" maxlength="90" /></td></tr>
<tr class="anketabg">
<td>День рождения: </td>
<td>День: <select name="birth_day" class="inup">
<? for ($i = 1; $i <= 31; $i++)
{
$i = ($i < 10) ?"0".$i :$i;
$selected = ($s_birthday[0] == $i) ?" selected" :"";
echo "<option value='$i'$selected>$i</option>";
}
?> </select>
Месяц: <select name="birth_month" class="inup">
<? foreach ($data['month'] as $value => $name)
{
$selected = ($s_birthday[1] == $value) ?" selected" :"";
echo "<option value='$value'$selected>$name</option>";
}
?> </select>
Год: <select name="birth_year" class="inup">
<? for ($i = date('Y') - 72; $i <= (date('Y') - 10); $i++)
{
$selected = ($s_birthday[2] == $i) ?" selected" :"";
echo "<option value='$i'$selected>$i</option>";
}
?> </select>
<small><br><span class="style5">Внимание! </span><span class="style7">Дата рождения должна быть правильной, она используется в игровом процессе. Анкеты с неправильной датой будут удаляться без предупреждения.</span></small>
</td>
</tr>
<tr class="anketabg">
<td>Город: </td>
<td><select size="1" name="town_n">
<option selected></option>
<? foreach ($data['towns'] as $name)
{
if ($s_town == $name)
{
$selected = " selected";
$s_town = "";
}
else
$selected = "";
echo "<option$selected value='$name'>$name</option>";
}
?> </select>
&nbsp; &nbsp;другой&nbsp; &nbsp;<input type="text" value="<?echo $s_town;?>" name="town" size="20" maxlength="40" />
</td>
</tr>
<tr class="anketabg"><td>ICQ:</td><td><input value="<?echo $s_icq;?>" name="icq" size="10" maxlength="20" /> <input type="checkbox" name="hide_icq" value="1"<?echo $s_hide_icq;?> /> не отображать в инф. о персонаже.</td></tr>
<tr class="anketabg"><td>Домашняя страница:</td><td><input value="<?echo $s_url;?>" name="url" size="35" maxlength="60" /></td></tr>
<tr class="anketabg"><td>Девиз:</td><td><input value="<?echo $s_motto;?>" name="motto" size="60" maxlength="160" /></td></tr>
<tr class="anketabg"><td colspan="2" align="left">Увлечения / хобби <small>(не более 60 слов)</small><br><textarea name="hobie" cols="60" rows="7" style="width: 100%;"><? echo $s_hobie;?></textarea></td></tr>
<tr class="anketabg">
<td>Цвет сообщений в чате:</td>
<td><select size="1" name="color" class="anketa">
<? foreach ($data['colors'] as $color => $name)
{
$selected = ($s_color == $color) ?" selected" :"";
echo "<option style='color: $color;'$selected value='$color'>$name</option>";
}
?> </select>
</td>
</tr>
<tr class="anketabg" height="50"><td colspan="2" align="center"><input name="changeInfo" type="submit" value="Сохранить изменения" class="nav" /></td></tr>
</form>
</table>
<?
break;
}
?>