Пропустить

проверка ника при регистрации

Идеи для расширения функциональности phpBB 2.0.x

Сообщение VVVas » 29.04.2008 12:10

vlad77 писал(а):Если кто ставил мод, то как profile_add_body.tpl редактировали ?

Сравнил, что добавлено и изменено и добавил в свой файл.
Аватара пользователя
VVVas
Former team member
 
Сообщения: 4458
Зарегистрирован: 12.11.2004 1:20
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.

Сообщение Siava » 29.04.2008 15:11

Научите этот мод понимать русские буквы, а то ничерта в этом 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);
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2581
Зарегистрирован: 11.01.2005 15:29
Откуда: Питер
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.

Сообщение vlad77 » 30.04.2008 6:28

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 2.0.2
 
Сообщения: 151
Зарегистрирован: 26.07.2006 11:49
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение vlad77 » 01.05.2008 17:51

Я вообще убрал предлагаемую модом замену ников (кроме необработки русских букв, все предлагаемые замены одинаковы: ***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 писал(а):Теперь надо разобраться над ошибками, которые возникают при проверке ников содержащих кавычки.
Что это за ошибки ?

vlad77
phpBB 2.0.2
 
Сообщения: 151
Зарегистрирован: 26.07.2006 11:49
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение TheHawk » 07.05.2008 1:40

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>

Та же проблема.
Ещё бы было неплохо, если бы стояла проверка на запрещённые ники.
Изображение
Аватара пользователя
TheHawk
phpBB 2.0.1
 
Сообщения: 130
Зарегистрирован: 21.02.2007 19:04
Откуда: Беларусь, Гомель
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.

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

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы