Уважаемые пользователи!
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
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

vlad77 писал(а):Если кто ставил мод, то как profile_add_body.tpl редактировали ?
Сравнил, что добавлено и изменено и добавил в свой файл.
я люблю daft punk | новый sugoi.ru
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5278
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 790 раз

Сообщение Siava »

Научите этот мод понимать русские буквы, а то ничерта в этом AJAX'е не смыслю.

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

Сам допетрил :)
После установки мода зайти в profile.php
найти:

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

function check_user_exist ($username)
{
	global $db;

	// Make a list of words to postfix on username for suggest
	$suggest = array('007', '1', 'x', 'xxx', '2000', '2007');

	$username = mysql_escape_string ($username);
добавить после:

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

	$username = preg_replace('/%u([0-9A-F]{2})([0-9A-F]{2})/sei', 'iconv("UCS-2BE", "WINDOWS-1251", "\x$1\x$2")', $username);
Пользуйтесь :)
Мод скачивал с phpbbhacks.com по ссылке ранее.

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

Теперь надо разобраться над ошибками, которые возникают при проверке ников содержащих кавычки.
Тупо закомментировал строчку в class.sajax.php, так как не знаю пока что там делать

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

//alert(e + ": Could not eval " + data);
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
vlad77
phpBB 1.4.4
Сообщения: 152
Стаж: 17 лет 8 месяцев

Сообщение vlad77 »

VVVas писал(а):Сравнил, что добавлено и изменено и добавил в свой файл
С этим я разобрался

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

Открыть add_profile_body.tpl

найти

<form action="{S_PROFILE_ACTION}" {S_FORM_ENCTYPE} method="post">

Перед добавить

<script type="text/javascript">

{SAJAX_JAVASCRIPT}

function check_handle(result) {
	if(result[0] == 'yes') {
		document.getElementById('not_available').style.display = 'none';
		document.getElementById('available').style.display = 'block';
	}
	else {
		document.getElementById('available').style.display = 'none';
		document.getElementById('not_available').style.display = 'block';
		var str = '{TRY_ONE_OF_THESE} <br />';
		for(i = 1; i < result[1]; i++) {
			str += "<input type="radio" name="try" onclick="switch_username('"+result[i+1]+"')"/>" + result[i+1] + "<br />";
		}
		document.getElementById('not_available').innerHTML = str;
	}
}

function check_user_exist() {
	var username = document.getElementById('username').value;
	x_check_user_exist(username, check_handle);
}

function switch_username(username) {
	document.getElementById('username').value = username;
}
</script>

<style type="text/css">
#available {
	display: none;
	color: green;
}
#not_available {
	display: none;
	color: red;
}
</style>

Найти

<!-- BEGIN switch_namechange_disallowed -->
<tr> 
<td class="row1" width="38%"><span class="gen">{L_USERNAME}: *</span></td>
<td class="row2"><input type="hidden" name="username" value="{USERNAME}" /><span class="gen"><b>{USERNAME}</b></span></td>
</tr>
<!-- END switch_namechange_disallowed -->
<!-- BEGIN switch_namechange_allowed -->
<tr> 
<td class="row1" width="38%"><span class="gen">{L_USERNAME}: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="25" value="{USERNAME}" /></td>
</tr>
<!-- END switch_namechange_allowed -->

Заменить

<!-- BEGIN switch_namechange_disallowed -->
<tr> 
<td class="row1" width="38%"><span class="gen">{L_USERNAME}: *</span></td>
<td class="row2"><input type="hidden" name="username" value="{USERNAME}" /><span class="gen"><b>{USERNAME}</b></span></td>
</tr>
<!-- END switch_namechange_disallowed -->
<!-- BEGIN switch_namechange_allowed -->
<tr> 
<td class="row1" width="38%" valign="top"><span class="gen">{L_USERNAME}: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="username" size="25" maxlength="25" value="{USERNAME}" id="username" /> <input type="button" name="check" value="{L_VERIFY_USERNAME}" onclick="check_user_exist(); return false;">
<span class="gen"><div id="available">{L_USERNAME_AVAILABLE}</div></span>
<span class="gen"><div id="not_available"></div></span></td>
</tr>
<!-- END switch_namechange_allowed -->

найти

</form>

после добавить

<div align="center"><span class="copyright">Ajax mod broughto to you by: <a href="http://www.pc-facile.com/">pc-facile.com</a></span></div>
Добавлено спустя 6 минут 22 секунды:
Siava писал(а):После установки мода зайти в profile.php
На локалхосте не работает (возможно, потому что под виндоусом).
[object Error]: Could not eval <!--error--><br /><b>Fatal error</b>: Call to undefined function: iconv() in <b>z:\home\mysaite.ru\www\forum\profile.php(201) : regexp code</b> on line <b>1</b><br /><script language=JavaScript src='/errors__/phperror_js.php'></script>
На сервере работает, но вместо русских букв выдает знаки вопроса

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

Username available, try one of these: 
???007
???1
???x
???xxx
???2000
???2007
Для сравнений английские буквы

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

Username available, try one of these: 
test007
test1
testx
testxxx
test2000
vlad77
phpBB 1.4.4
Сообщения: 152
Стаж: 17 лет 8 месяцев

Сообщение vlad77 »

Я вообще убрал предлагаемую модом замену ников (кроме необработки русских букв, все предлагаемые замены одинаковы: ***007, ***1, ***x, ***xxx, ***2000, ***2007. Получится много похожих ников: Masha007, Pasha007, Иван Иваныч007)

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

открыть  profile.php

найти

	// Make a list of words to postfix on username for suggest
	$suggest = array('007', '1', 'x', 'xxx', '2000', '2007');

заменить

	// Make a list of words to postfix on username for suggest
	$suggest = array('');
Решение вероятно ламерское, наверное Гуру лучше предложат.

Добавлено спустя 3 минуты 10 секунд:
Siava писал(а):Теперь надо разобраться над ошибками, которые возникают при проверке ников содержащих кавычки.
Что это за ошибки ?
Аватара пользователя
TheHawk
phpBB 1.4.4
Сообщения: 130
Стаж: 17 лет 1 месяц
Откуда: Беларусь, Гомель

Сообщение TheHawk »

vlad77 писал(а):Цитата:[object Error]: Could not eval <!--error--><br /><b>Fatal error</b>: Call to undefined function: iconv() in <b>z:\home\mysaite.ru\www\forum\profile.php(201) : regexp code</b> on line <b>1</b><br /><script language=JavaScript src='/errors__/phperror_js.php'></script>
Та же проблема.
Ещё бы было неплохо, если бы стояла проверка на запрещённые ники.
Изображение

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