Перейти к содержанию
NonameIpb

Регулярные выражения

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

Здравствуйте.

Увы, в коде IPB новых версий сложно ориентироваться, поэтому очередной вопрос - знаете ли кто-то, где хранятся регулярные выражения для пароля и логина для регистрации?

Версия: 4.2.6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, NonameIpb сказал:

где хранятся регулярные выражения для пароля и логина для регистрации?

Вообще не понятен вопрос, какие регулярные выражения? Для какой регистрации? Что вы хотите, шаблон вывода авторизации? Таблицу БД, где хранятся МД5 пароли? пхп логику регистрации??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 07.01.2018 at 11:04 PM, Cheshir said:

Вообще не понятен вопрос, какие регулярные выражения? Для какой регистрации? Что вы хотите, шаблон вывода авторизации? Таблицу БД, где хранятся МД5 пароли? пхп логику регистрации??

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

Just now, NonameIpb said:

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

должен проверяться логин и пароль*

 

Поделиться сообщением


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

/applications/core/modules/front/system/register.php

функция buildRegistrationForm()

но, там нет регулярных выражений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
/* Set username regex */
		$args = func_get_args();
		if ( isset( $args[3]['accountUsername'] ) and $args[3]['accountUsername'] !== FALSE )
		{
			$args[3]['minLength'] = \IPS\Settings::i()->min_user_name_length;
			$args[3]['maxLength'] = \IPS\Settings::i()->max_user_name_length;
			
			if ( \IPS\Settings::i()->username_characters )
			{
				$args[3]['regex'] =  '/^[' . str_replace( '\-', '-', preg_quote( \IPS\Settings::i()->username_characters, '/' ) ) . ']*$/iu';
			}
		}

Нашёл в \system\Helpers\Form\Text.php , похоже на то, что я искал, вот только понять не могу, откуда же берутся стандартные значения как мин. и макс. длины логина, так и регулярного выражения для него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 minutes ago, Cheshir said:

"\IPS\Settings::i()->min_user_name_length;" - из настроек

Это понятно, но всё же задам наиглупейший вопрос. А где эти настройки находятся?

Поделиться сообщением


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

Задаются в АЦ, сохраняются в БД

Хм...

пользователи - Профили пользователей

Это по Имени пользователя

Изменено пользователем Cheshir

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 minutes ago, Cheshir said:

Задаются в АЦ, сохраняются в БД

Хм...

пользователи - Профили пользователей

Это по Имени пользователя

Да, до редакции нашёл всё же. За это спасибо, а вот с паролями, судя по всему, функционал уже, поэтому нужно будет в код лезть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 minute ago, Cheshir said:

А чем вам стандартная система сложности пароля не нравится? 

Меня не устраивает то, что в пароль можно вписать русские символы. Читал даже, что при хешировании пароля могут возникнуть потом проблемы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 10.01.2018 at 2:32 PM, Cheshir said:

Тут копайте

/system/3rd_party/phpass/phpass.php

 Здесь лишь класс для проверки надёжности пароля, не более. Можно сделать так, чтобы он русские символы вообще не считал, но бытовой пользователь не поймёт, в чём загвоздка.

Неужели нет нигде регулярного выражения для пароля?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, NonameIpb сказал:

Неужели нет нигде регулярного выражения для пароля?

Не оно?

Спойлер

2018-01-17_14-22-35.thumb.png.f7d93c4ad9f4e55e806f79aaac03854b.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Just now, Sipsb said:

Не оно?

  Hide contents

2018-01-17_14-22-35.thumb.png.f7d93c4ad9f4e55e806f79aaac03854b.png

 

В никах уже разобрались, это оно. А вот вопрос с паролем не решён. Разрешённые символы в пароле где-то можно поставить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, NonameIpb сказал:

Разрешённые символы в пароле где-то можно поставить?

Из ACP только тут. 

Спойлер

2018-01-17_14-27-58.png.8b0f0677577d3d9de1644fea87f6e0cb.png

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Just now, Sipsb said:

Из ACP только тут. 

  Hide contents

2018-01-17_14-27-58.png.8b0f0677577d3d9de1644fea87f6e0cb.png

 

Это тоже понятно. Если в коде делать, то я так понимаю, что здесь: \system\Helpers\Form\Password.php
Вопрос тогда в следующем - чтобы кидать ошибку, если присутствуют запрещённые символы, нужно сделать отдельное исключение. Где эти исключения хранятся?

Пример исключения:

throw new \InvalidArgumentException( 'login_err_bad_password' );

 

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×