Перейти к контенту
  • 0

Ограничение по длине логина


windie

Вопрос

прежде чем задать этот вопрос я искал похожую тему.

 

нужно ограничить на длину логина. есть обратная функция. по минимальному размеру логина, нужна же максимальная, чтобы не больше n-ное кол-во символов.

 

есть решения?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Вообще говоря, для региструющихся пользователей в шаблонах прописано ограничение в 64 символа. Однако сам форум допускает длину логина до 32 символов. От 3 до 32. Для того, чтобы исправить на, скажем, 10 (макс.), делаем:

 

1. В шаблонах Register -> ShowForm(). Ищем

<input type="text" size="50" maxlength="64" value="{ipb.input['UserName']}" name="UserName" />

меняем на

<input type="text" size="50" maxlength="10" value="{ipb.input['UserName']}" name="UserName" />

 

2. sources/register.php (у меня строчка №990 [iPB 2.0.3 - лиц]). Ищем

//-----------------------------------------
// Check for errors in the input.
//-----------------------------------------

if (empty($in_username))
{
$this->show_reg_form('err_no_username');
return;
}
if (strlen($len_u) < 3)
{
$this->show_reg_form('err_no_username');
return;
}
if (strlen($len_u) > 32)
{
$this->show_reg_form('err_no_username');
return;
}
if (empty($in_password))
{
$this->show_reg_form('err_no_password');
return;
}
if (strlen($len_p) < 3)
{
$this->show_reg_form('err_no_password');
return;
}
if (strlen($len_p) > 32)
{
$this->show_reg_form('err_no_password');
return;
}
if ($ibforums->input['PassWord_Check'] != $in_password)
{
$this->show_reg_form('err_pass_match');
return;
}
if (strlen($in_email) < 6)
{
$this->show_reg_form('err_invalid_email');
return;
}

меняем на

//-----------------------------------------
// Check for errors in the input.
//-----------------------------------------

if (empty($in_username))
{
$this->show_reg_form('err_no_username');
return;
}
if (strlen($len_u) < 3)
{
$this->show_reg_form('err_no_username');
return;
}
if (strlen($len_u) > 10)
{
$this->show_reg_form('err_no_username');
return;
}
if (empty($in_password))
{
$this->show_reg_form('err_no_password');
return;
}
if (strlen($len_p) < 3)
{
$this->show_reg_form('err_no_password');
return;
}
if (strlen($len_p) > 10)
{
$this->show_reg_form('err_no_password');
return;
}
if ($ibforums->input['PassWord_Check'] != $in_password)
{
$this->show_reg_form('err_pass_match');
return;
}
if (strlen($in_email) < 6)
{
$this->show_reg_form('err_invalid_email');
return;
}

 

3. В языковых файлах правим файл lang_register.php. Ищем

<ibf.lang.err_no_password>

И редактируем значения этой переменной для нашего ограничения (10). Т.е. в английском переводе меняем

You must enter a valid password between 3 and 32 characters

На

You must enter a valid password between 3 and 10 characters

 

Должно работать :D

Добавлено в [mergetime]1106250240[/mergetime]

Да, кстати, можно добавить в конфигурацию новую настройку, и, подправив немного приведенный выше код, мы получим прекрасную тулзу для управления длиной логина из админки. Но это уже для особых аккуратистов. :)

Добавлено в [mergetime]1106250284[/mergetime]

Попробуешь, сообщи сюда, будет работать или нет, пожалуйста! ;)

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.