Ники со спец символами

Идеи для расширения функциональности phpBB 2.0.x
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

OMus-VeNuS
Вот эта или аналогичная штучка случайно не стоит?

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

############################################################## 
## MOD Title: Restrict Username Charachters [2.0.15] 
## MOD Author:    mosymuis < mods[at]mosymuis.nl > (Rens van Dongen) http://mods.mosymuis.nl 
## 
## MOD Description: This mod will only allow a-z, 0-9 and -_ 
##      in usernames, when someone registers. 
## 
## MOD Version: 1.0.2
я люблю daft punk | новый sugoi.ru
OMus-VeNuS

Сообщение OMus-VeNuS »

Точно не помню... Дай плз ссылу на этот мод - я его попробую деинсталлировать
У меня еще Colour Groups... Вот он видимо связан как то с никами... Я уж не помню точно... Но он вродь не трогает запреты...
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

А что в шапке мода нет ссылки?
я люблю daft punk | новый sugoi.ru
OMus-VeNuS

Сообщение OMus-VeNuS »

Зашел на phpbbhacks - запрос на Restrict Username Charachters - не дал результатов...
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

OMus-VeNuS
Учимся читать внимательно
VVVas писал(а):А что в шапке мода нет ссылки?
Я написал ссылки, а не названия или что ты там прочел.
VVVas писал(а):MOD Author: mosymuis < mods[at]mosymuis.nl > (Rens van Dongen) http://mods.mosymuis.nl
Этоу строчки в шапке мода конечно не видел, спрятана она от всех кроме меня, да?

Или я чего то в этой жизни не понимаю?
я люблю daft punk | новый sugoi.ru
OMus-VeNuS

Сообщение OMus-VeNuS »

млин не увидел )

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

Неа... эта штука у меня не стоит...
вот регалка ника

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

	$username_sql = '';
	if ( $board_config['allow_namechange'] || $mode == 'register' )
	{
		if ( empty($username) )
		{
			// Error is already triggered, since one field is empty.
			$error = TRUE;
		}
		else if ( $username != $userdata['username'] || $mode == 'register')
		{
			if (strtolower($username) != strtolower($userdata['username']) || $mode == 'register')
			{
				$result = validate_username($username);
				if ( $result['error'] )
				{
					$error = TRUE;
					$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg'];
				}
			}

			if (!$error)
			{
				$username_sql = "username = '" . str_replace("\'", "''", $username) . "', ";
			}
		}
	}
тут вродь все верно... Не понимаю че за бред...
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Зарегистрирован: 20 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

OMus-VeNuS писал(а):$result = validate_username($username);
вот же у тебя вызов функции проверки, смотри functions_validate.php
я люблю daft punk | новый sugoi.ru
OMus-VeNuS

Сообщение OMus-VeNuS »

Вот по ходу дела этот кусок, только что с ним делать =/

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

	$db->sql_freeresult($result);

	// Don't allow " and ALT-255 in username.
	if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)) || strstr($username, ';'))
	{
		return array('error' => true, 'error_msg' => $lang['Username_invalid']);
	}

	return array('error' => false, 'error_msg' => '');
}
Добавлено спустя 2 минуты 4 секунды:

А вот полностью проверка ника...

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

function validate_username($username)
{
	global $db, $lang, $userdata;

	// Remove doubled up spaces
	$username = preg_replace('#\s+#', ' ', $username); 
	// Limit username length
	$username = substr(str_replace("\'", "'", $username), 0, 25);
	$username = str_replace("'", "''", $username);

	$sql = "SELECT username 
		FROM " . USERS_TABLE . " 
		WHERE LOWER(username) = '" . strtolower($username) . "'";
	if ($result = $db->sql_query($sql))
	{
		if ($row = $db->sql_fetchrow($result))
		{
			if (($userdata['session_logged_in'] && $row['username'] != $userdata['username']) || !$userdata['session_logged_in'])
			{
				$db->sql_freeresult($result);
				return array('error' => true, 'error_msg' => $lang['Username_taken']);
			}
		}
	}
	$db->sql_freeresult($result);

	$sql = "SELECT group_name
		FROM " . GROUPS_TABLE . " 
		WHERE LOWER(group_name) = '" . strtolower($username) . "'";
	if ($result = $db->sql_query($sql))
	{
		if ($row = $db->sql_fetchrow($result))
		{
			$db->sql_freeresult($result);
			return array('error' => true, 'error_msg' => $lang['Username_taken']);
		}
	}
	$db->sql_freeresult($result);

	$sql = "SELECT disallow_username
		FROM " . DISALLOW_TABLE;
	if ($result = $db->sql_query($sql))
	{
		if ($row = $db->sql_fetchrow($result))
		{
			do
			{
				if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['disallow_username'], '#')) . ")\b#i", $username))
				{
					$db->sql_freeresult($result);
					return array('error' => true, 'error_msg' => $lang['Username_disallowed']);
				}
			}
			while($row = $db->sql_fetchrow($result));
		}
	}
	$db->sql_freeresult($result);

	$sql = "SELECT word 
		FROM  " . WORDS_TABLE;
	if ($result = $db->sql_query($sql))
	{
		if ($row = $db->sql_fetchrow($result))
		{
			do
			{
				if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $username))
				{
					$db->sql_freeresult($result);
					return array('error' => true, 'error_msg' => $lang['Username_disallowed']);
				}
			}
			while ($row = $db->sql_fetchrow($result));
		}
	}
	$db->sql_freeresult($result);

	// Don't allow " and ALT-255 in username.
	if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)) || strstr($username, ';'))
	{
		return array('error' => true, 'error_msg' => $lang['Username_invalid']);
	}

	return array('error' => false, 'error_msg' => '');
}
Добавлено спустя 6 минут 11 секунд:

А все спасибо доперло! =)

Добавлено спустя 3 минуты 29 секунд:

если у кого-то таже проблема, то

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

#
#----[OPEN]----------------------------------------------------------
#
includes/functions_validate.php
#
#----[FIND]------------------------------------------------------------
#
	// Don't allow " and ALT-255 in username.
	if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)) || strstr($username, ';'))
	{
		return array('error' => true, 'error_msg' => $lang['Username_invalid']);
	}
#
#----[REPLACE WITH]---------------------------------------------------
#

#
#----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM

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