Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Переименования ника пользователя.

Идеи для расширения функциональности phpBB 2.0.x
Аватара пользователя
Alexis1805
phpBB 1.4.3
Сообщения: 87
Стаж: 19 лет 2 месяца

Переименования ника пользователя.

Сообщение Alexis1805 »

Возникла потребность переименования ника пользователя.
Например:
Существует ник: Дядюшка Фантоций
Надо, чтобы при входе на форум, когда юзер вводит этот ник, он автоматически переименовывался, скажем, на Дядюшка_Фантоций, то есть вместо пробела была нижняя линия. Ник с Дядюшка_Фантоций с нижней линией уже существует в базе данных.
Можно сказать проще, при вводе ника Дядюшка Фантоций без нижней линии, чтобы форум искал ник Дядюшка_Фантоций с нижней линией.
Что-то похожее есть на одном из чатов. Вот код:

Код: Выделить всё

$mynick=str_replace(" ","_",trim(pregtrim(substr($mynick,0,100))));
Может кто поможет, как это сделать? Спасибо!
MchlP
phpBB 1.4.1
Сообщения: 48
Стаж: 18 лет 9 месяцев

Сообщение MchlP »

Непонятно, в чем помогать-то?
Действительно, получаемые данные из формы ($_POST['username']) можно шлифовать str_replace() и все будет так, как хочется.
Аватара пользователя
Alexis1805
phpBB 1.4.3
Сообщения: 87
Стаж: 19 лет 2 месяца

Сообщение Alexis1805 »

MchlP
А помочь я прошу только в том, что писал выше.
А точнее, где, в каком файле в каком месте и что надо сделать.
Для меня, не опытного, отшлифовать, это значит взять напильник и шлифонуть что-нибудь. :D
Конкретнее пожалуйста!
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет 1 месяц
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 105 раз

Сообщение Balamut »

Я открыл includes/usercp_register.php, нашёл

Код: Выделить всё

	if ($board_config['enable_confirm'] && $mode == 'register')
	{
		if (empty($HTTP_POST_VARS['confirm_id']))
и ДО добавил

Код: Выделить всё

			$username=str_replace(" ","_",$username);
При регистрации все пробелы заменяются на символ подчёркивания. Проверил только что на локалхосте, на phpBB 2,0,17.

Теперь надо заменять пробел на подчёркивания при логине.

Добавлено спустя 5 минут 1 секунду:

открыть login.php, найти

Код: Выделить всё

		$sql = "SELECT user_id, username, user_password, user_active, user_level
			FROM " . USERS_TABLE . "
			WHERE username = '" . str_replace("\\'", "''", $username) . "'";
И ДО добавить

Код: Выделить всё

		$username=str_replace(" ","_",$username);
Тоже работает. Если юзер ввёл ник с пробелами, то пробелы заменяются на подчёркивание, и он входит на форум. Если он сразу ввёл подчёркивание, то нигде ничего не меняется, и он тоже входит.

Если я правельно Вас понял, то вам нужно это?

Добавлено спустя 11 минут 35 секунд:
Alexis1805 писал(а): Ник с Дядюшка_Фантоций с нижней линией уже существует в базе данных.
тогда только логин меняйте
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
Сообщения: 1464
Стаж: 19 лет 3 месяца
Откуда: Novosibirsk,RU

Сообщение [R: R@m$e$ :U] »

хм... =) а может проще функцию phpbb_clean_username исправить?
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
Romiyo
Неадекватен
Сообщения: 603
Стаж: 19 лет 4 месяца
Откуда: tln.ee

Сообщение Romiyo »

Smayliks писал(а):Если юзер ввёл ник с пробелами, то пробелы заменяются на подчёркивание, и он входит на форум. Если он сразу ввёл подчёркивание, то нигде ничего не меняется, и он тоже входит.
А как тогда быть с клонированием ников? Т.е. есть на форуме "Вася_Пупкин", а я возьми да и зарегай другого - "Вася Пупкин" Получается, я смогу ходить под его ником, читать его ЛС, также как и он будет ходить под моим? :roll:
Неадекватен
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет 1 месяц
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 105 раз

Сообщение Balamut »

Romiyo писал(а):Получается, я смогу ходить под его ником, читать его ЛС, также как и он будет ходить под моим?
Нет, ты просто не сможешь залогиниться, т.к. в базе он будет "Вася Пупкин", а логин пробелы не передаёт.

Поэтому я и написАл, что и при регистрации лучше заменять все пробелы на подчёркивание. Тогда при наличии в базе "Вася_Пупкин" форум не даст зарегистрировать "Вася Пупкин" (скажит, мол юзер с таким именем существует)

Добавлено спустя 2 минуты 5 секунд:
Smayliks писал(а): а логин пробелы не передаёт.
логин.пхп в смысле.
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Alexis1805
phpBB 1.4.3
Сообщения: 87
Стаж: 19 лет 2 месяца

Сообщение Alexis1805 »

Smayliks
Спасибо большое, сейчас буду пробовать!
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет 1 месяц
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 105 раз

Сообщение Balamut »

Alexis1805 писал(а): сейчас буду пробовать!
отпишитесь о результатах. Интересно ведь. :wink:
//
// That's all, Folks!
// -------------------------------------------------
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

А зачем вам их переименовывать? Может для вашей задачи есть совсем другое решение?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
Alexis1805
phpBB 1.4.3
Сообщения: 87
Стаж: 19 лет 2 месяца

Сообщение Alexis1805 »

Smayliks
Все работает, спасибо!
Xpert
Может и есть другое решение, но пока перебрал все и ничего толком не нашел.
А проблема простая. У меня на сайте есть чат от Димы Бородина (CHAT.PHP.SPB.RU). Я его интегрировал к базе форума, то есть он при логине берет данные с форума. Но как не старался, я ничего не смог сделать, чтобы заставить его понимать пробелы. Все пробелы он переименовывает, вышенаписаной функцией, в нижнию черту. А так как на форуме уже есть юзеры с никами, где есть пробелы и им будет не привычно вводить свой ник с нижней чертой, для этого мне это и понадобилось.
Аватара пользователя
AlexWB
phpBB 1.4.4
Сообщения: 199
Стаж: 19 лет 3 месяца
Откуда: Kiev.UA

Сообщение AlexWB »

Alexis1805
ИМХО, проще было переименовать юзверей, заменив пробел на "_"
ничего бы с ними не случилось, привыкли :)
Аватара пользователя
Balamut
Former team member
Сообщения: 2213
Стаж: 19 лет 1 месяц
Откуда: {postrow.POSTER_FROM}
Поблагодарили: 105 раз

Сообщение Balamut »

... и поставить пробел в список запрещённых символов при регистрации...
//
// That's all, Folks!
// -------------------------------------------------
Аватара пользователя
Alexis1805
phpBB 1.4.3
Сообщения: 87
Стаж: 19 лет 2 месяца

Сообщение Alexis1805 »

AlexWB
Думаю с моими юзерами случилось. Народ привередливый! :D
Поверьте, для меня проще сделать переименование, чем спорить и выслушивать всяко-разное.
Аватара пользователя
AlexWB
phpBB 1.4.4
Сообщения: 199
Стаж: 19 лет 3 месяца
Откуда: Kiev.UA

Сообщение AlexWB »

Alexis1805
дело в том, что это может оказаться "медвежьей услугой"
пользователи начнут путаться в никах
как по мне, то лучше однообразие

Вернуться в «Запросы модов для phpBB 2.0.x»