Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

Witam.

Otóż przechodziliśmy konwersję forum z SMF.

Jeden z problemów jaki z tego wyniknął to źle przekonwertowane hasła.

Czy jest jakaś opcja w IPB 3.x automatycznego zresetowania hasła użytkownikom z wysłaniem maila z linkiem aktywacyjnym ?

Link aktywacyjny prowadziłby do formularza z możliwością wpisania nowego hasła.

Proszę o pomoc :-)

Pozdrawiam

@Edit

Dodam jeszcze jedną kwestię. W bazie użytkownicy mieli loginy ze specjalnymi znakami. Jak zauważyłem teraz jest to przyczyną problemów z logowaniem.

Czy jest jakaś możliwość aby IPB zaakceptował loginy z błędnymi/specjalnymi znakami w loginach ?

  • Manager
Opublikowano

Dokładnie tak. Gdyby to był problem z kodowaniem postów czy niepełnym przekonwertowaniem użytkowników lub dowolnej zawartości forum to wtedy owszem zacząłbym się zastanawiać. Jednakże piszesz w dziale z serii 3.x zatem ten konwerter nie jest idealny. To, co zdaje się jego twórcom nie zawsze w każdych warunkach będzie działać. Co ewidentnie udowadnia nam ten temat.

Moje rady:

  • przyjąć do wiadomości, że konwerter w kwestii haseł nie dał rady,
  • pokazać/rozesłać linki do formularza przywracania haseł,
  • cieszyć się z posiadania najlepszego obecnie skryptu forum.

^_^

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano (edytowane)

Zapytam jeszcze o te specjalne znaki...

Czy jest ustawienie które odpowiada za nieakceptowanie specjalnych znaków w loginie ?

Wiem że jest możliwość dodania jakiegoś znaku, ale z tego co zauważyłem pewien zestaw znaków domyślnie jest blokowany.

Edytowane przez denis13wroc
  • Manager
Opublikowano

Tu masz pełną funkcję:

/**
 * Clean a username or display name
 *
 * @access	protected
 * @param	string		Name
 * @param	string		Field (name or members_display_name)
 * @return	array		array( 'name' => $cleaned_name, 'errors' => array() )
 */
protected function _cleanName( $name, $field='members_display_name' )
{
	$original	= $name;
	$name		= trim($name);

	if( $field == 'name' )
	{
		// Commented out for bug report #15354
		//$name	= str_replace( '|', '|' , $name );

		/* Remove multiple spaces */
		$name	= preg_replace( "/\s{2,}/", " ", $name );
	}

	//-----------------------------------------
	// Remove line breaks
	//-----------------------------------------

	if( ipsRegistry::$settings['usernames_nobr'] )
	{
		$name = IPSText::br2nl( $name );
		$name = str_replace( "\n", "", $name );
		$name = str_replace( "\r", "", $name );
	}

	//-----------------------------------------
	// Remove sneaky spaces
	//-----------------------------------------

	if ( ipsRegistry::$settings['strip_space_chr'] )
   	{
   		/* use hexdec to convert between '0xAD' and chr */
		$name          = IPSText::removeControlCharacters( $name );
	}

	//-----------------------------------------
	// Trim after above ops
	//-----------------------------------------

	$name = trim( $name );

	//-----------------------------------------
	// Test unicode name
	//-----------------------------------------

	$unicode_name	= $this->_getUnicodeName( $name );

	//-----------------------------------------
	// Do we have a name?
	//-----------------------------------------

	if( $field == 'name' OR ( $field == 'members_display_name' AND ipsRegistry::$settings['auth_allow_dnames'] ) )
	{
		if( ! $name OR IPSText::mbstrlen( $name ) < 3  OR IPSText::mbstrlen( $name ) > ipsRegistry::$settings['max_user_name_length'] )
		{
			ipsRegistry::getClass( 'class_localization' )->loadLanguageFile( array( 'public_register' ), 'core' );

			$key	= $field == 'members_display_name' ? 'reg_error_no_name' : 'reg_error_username_none';

			$text	= sprintf( ipsRegistry::getClass( 'class_localization' )->words[ $key ], ipsRegistry::$settings['max_user_name_length'] );

			//-----------------------------------------
			// Only show note about special chars when relevant
			//-----------------------------------------

			if( strpos( $name, '&' ) !== false )
			{
				$text	.= ipsRegistry::getClass( 'class_localization' )->words['reg_error_no_name_spec'];
			}

			return array( 'name' => $original, 'errors' => array( $text ) );
		}
	}

	//-----------------------------------------
	// Blocking certain chars in username?
	//-----------------------------------------

	if( ipsRegistry::$settings['username_characters'] )
	{
		$check_against = preg_quote( ipsRegistry::$settings['username_characters'], "/" );

		if( !preg_match( "/^[" . $check_against . "]+$/i", $name ) )
		{
			return array( 'name' => $original, 'errors' => array( str_replace( '{chars}', ipsRegistry::$settings['username_characters'], ipsRegistry::$settings['username_errormsg'] ) ) );
		}
	}

	//-----------------------------------------
	// Manually check against bad chars
	//-----------------------------------------

	if( strpos( $unicode_name, '\' ) !== false OR 
		strpos( $unicode_name, 'quot;' ) !== false OR 
		strpos( $unicode_name, '$' ) !== false OR
		strpos( $unicode_name, 'lt;' ) !== false OR
		strpos( $unicode_name, '$' ) !== false OR
		strpos( $unicode_name, ']' ) !== false OR
		strpos( $unicode_name, '[' ) !== false OR
		strpos( $unicode_name, ',' ) !== false OR
		strpos( $unicode_name, '|' ) !== false OR
		strpos( $unicode_name, 'gt;' ) !== false )
	{
		ipsRegistry::getClass( 'class_localization' )->loadLanguageFile( array( 'public_register' ), 'core' );

		return array( 'name' => $original, 'errors' => array( ipsRegistry::getClass( 'class_localization' )->words['reg_error_chars'] ) );
	}

	return array( 'name' => $name, 'errors' => array() );
}

Jak widać są dość duże obostrzenia (i bardzo dobrze).

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.