Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Форум для новичков[JAVA]/[question] Запрет ников из цифр.
Поиск

[question] Запрет ников из цифр.

11 ответов151 просмотровСейчас просматривают: 1
Mr.Black
Mr.Black

Пользователь

Участник

Постов: 49

На форуме с: 18.11.2008

Репутация: +11

Рейтинг: 0

· 14.07.2009, 23:40

Вопрос.Как сделать,чтобы нельзя было создавать ники только из цифр.Тоесть должно создаваться на русском,английском,но не на цифрах.Или поставить,например,мин от 3 букв.

Мои соображения.
CnameTemplate=[A-Z][a-z][А-Я[а-я]{3,3}[A-Za-z0-9][А-Яа-я0-9]*

Что-то вроде такого.

Поправьте,если не прав.

П.С.Поиск юзал мин 15 не нашел подобного.

0
sanja
sanja

Пользователь

Бывалый

Постов: 197

На форуме с: 26.08.2008

Репутация: +280

Рейтинг: 0

· 14.07.2009, 23:51

плохо искал /ru/forum/forum-dlya-novichkovjava/11474

0
Mr.Black
Mr.Black

Пользователь

Участник

Постов: 49

На форуме с: 18.11.2008

Репутация: +11

Рейтинг: 0

· 14.07.2009, 23:59

Спасибо.Поекспериментирую.
Еще 1 вопрос назрел.

Как в голосование l2top добавить поддержку русских ников?

Сам скрипт

Раскрывающийся текст
<b><a href=http://>Главная</a><br>
<center>
<b>1. Проголосуй за нас в l2top<br>
</center>

<center>
<a href="http://l2top.ru/?voteme= target="_blank"><img src="http://l2top.ru/vb/.pgif" width="88" height="31" border="0" alt="L2top.ru: Рейтинг-каталог серверов Lineage2"></a>
</center>

<center>
<?


if(!isset($_POST['name'])){

echo '<form action="l2top.php" method="post">';


echo '2. Ввести ник персонажа<br/>
<input type="text" name="name"/><br/><br/>
<input type="submit" value="Получить бонус"/>

</form>';


}else{

$bonus_id=; // ID вещи
$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование
$id_l2top=; // Ваш ID в L2Top

$host='localhost'; // сервер на котором установлена база данных
$user='root'; // имя пользователя от базы данный
$pass=''; // пароль пользователя от базы данный
$db='db'; // название базы данных

$mc = mysql_connect($host, $user, $pass);
if($mc){
$db = mysql_select_db ($db);
}

if(!$mc || !$db){

echo 'Нет соединения с базой данных.';

exit;

}

$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['obj_Id'];
$total=0;
$your_ip = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';

$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
$error .= 'Не удалось получить информацию с L2Top.ru!<br/>';
else
{
foreach ($matches[1] as $id => $nick)
{
if (strtolower(trim($nick)) === strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = $result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id."");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];
/*
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
данный запрос необходимо переделывать взависимости от того, какая структура таблицы items у вас на сборке сервера. Данный запрос отвечает за добавление бонусной вещи за голосование в инвентарь, если у вас её еще нет.
*/
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id." ");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' зачислен.<br/>';
}
else
$error .= 'Голос за '. $time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}

echo $error.'<br><b>'.$total.'</b> Бонус зачислен вашему персонажу!<br/>';

}

?>
</center>

0
sanja
sanja

Пользователь

Бывалый

Постов: 197

На форуме с: 26.08.2008

Репутация: +280

Рейтинг: 0

· 15.07.2009, 00:06

а он что не работает с русскими? какие ошибки дает?

0
Mr.Black
Mr.Black

Пользователь

Участник

Постов: 49

На форуме с: 18.11.2008

Репутация: +11

Рейтинг: 0

· 15.07.2009, 00:12

Никаких.Просто не засчитывает.Я вот тоже думаю почему...

0
sanja
sanja

Пользователь

Бывалый

Постов: 197

На форуме с: 26.08.2008

Репутация: +280

Рейтинг: 0

· 15.07.2009, 00:19

не засчитывает только за русские или за все?

0
Mr.Black
Mr.Black

Пользователь

Участник

Постов: 49

На форуме с: 18.11.2008

Репутация: +11

Рейтинг: 0

· 15.07.2009, 07:09

Только за русские

0
E
ErrNick

Автор

Новичок

Постов: 7

На форуме с: 30.06.2009

Рейтинг: 0

· 15.07.2009, 17:25

iconv() тебе поможет.
Не было времени смотреть весь скрипт, данные он получает у тебя видимо в utf-8, поэтому вместо ников кракозябли, хотя может я не прав.
Посмотри в сторону http://php.su/functions/?iconv

upd:

Раскрывающийся текст
$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
замени на
$html = iconv('UTF-8', 'WINDOWS-1251', @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info'));
и попробуй :)

0
Mr.Black
Mr.Black

Пользователь

Участник

Постов: 49

На форуме с: 18.11.2008

Репутация: +11

Рейтинг: 0

· 15.07.2009, 17:41

Результатов не дало.Просто оно будто не может найти "русский" голос.

0
sanja
sanja

Пользователь

Бывалый

Постов: 197

На форуме с: 26.08.2008

Репутация: +280

Рейтинг: 0

· 15.07.2009, 18:02

попробуй и напишеш результат

Раскрывающийся текст

<b><a href=http://>Главная</a><br>
<center>
<b>1. Проголосуй за нас в l2top<br>
</center>

<center>
<a href="http://l2top.ru/?voteme= target="_blank"><img src="http://l2top.ru/vb/.pgif" width="88" height="31" border="0" alt="L2top.ru: Рейтинг-каталог серверов Lineage2"></a>
</center>

<center>
<?


if(!isset($_POST['name'])){

echo '<form action="l2top.php" method="post">';


echo '2. Ввести ник персонажа<br/>
<input type="text" name="name"/><br/><br/>
<input type="submit" value="Получить бонус"/>

</form>';


}else{

$bonus_id=1111; // ID вещи
$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование
$id_l2top=1111; // Ваш ID в L2Top

$host='localhost'; // сервер на котором установлена база данных
$user='root'; // имя пользователя от базы данный
$pass=''; // пароль пользователя от базы данный
$db='db'; // название базы данных

$mc = mysql_connect($host, $user, $pass);
if($mc){
$db = mysql_select_db ($db);
}

if(!$mc || !$db){

echo 'Нет соединения с базой данных.';

exit;

}
@mysql_query("SET NAMES 'cp1251'");
$name=mysql_escape_string($_POST['name']);
$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name'") or die(mysql_error());
$chd=mysql_fetch_assoc($ch);
$char_id=$chd['obj_Id'];
$total=0;
$your_ip = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';
$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
$error .= 'Не удалось получить информацию с L2Top.ru!<br/>';
else
{
foreach ($matches[1] as $id => $nick)
{
if (strtolower(trim($nick)) === strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'") or die(mysql_error());
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = $result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id."") or die(mysql_error());
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`") or die(mysql_error());
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];
@mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `loc`, `loc_data`)
VALUES('".@mysql_escape_string($char_id)."', '".$ins_id."', '".$bonus_id."', '".$cols_for_vote."', 'INVENTORY', '0')") or die(mysql_error());
}
else
@mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".@mysql_escape_string($char_id)." AND `item_id` = ".$bonus_id." ") or die(mysql_error());
@mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".@mysql_escape_string($your_ip1)."', '".@mysql_escape_string($time)."')") or die(mysql_error());
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' зачислен.<br/>';
}
else
$error .= 'Голос за '. $time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}
echo $error.'<br><b>'.$total.'</b> Бонус зачислен вашему персонажу!<br/>';
}
?>
</center>

0
Mr.Black
Mr.Black

Пользователь

Участник

Постов: 49

На форуме с: 18.11.2008

Репутация: +11

Рейтинг: 0

· 15.07.2009, 18:24

Уже лучше спасибо.Заработало с русскими,вот только если ник из 3-х букв,то выдает ошибку синтаксиса,а с других ников побольше дает бонус и в бд записывет) уже прогресс.

0
Войдите или зарегистрируйтесь чтобы ответить