To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

1.12.7 i starsze - Dopuszczalna ilość znaków w nazwie użytkownika #2

xlesiu - 16-11-2009, 12:41
Temat postu: Dopuszczalna ilość znaków w nazwie użytkownika #2
Dopuszczalna ilość znaków w nazwie użytkownika
Z wyświetlaną ilością znaków jaka pozostała
Cytat:
##############################################################
## MOD Title: [2.0.19] Restrict Username Size
## MOD Author: Wo1f < N/A > (J. C. Woof) N/A
## MOD Description: Mod pozwala na ustaleniu dopuszczalnej ilości znaków w nazwie użytkownika. Z pokazywaniem ilości pozostałych znaków.
## MOD Version: 1.1.4
##
## Installation Level: Easy
## Installation Time: ~ 15 Minutes
## Files To Edit: admin/admin_board.php,
## admin/admin_users.php,
## admin/page_header_admin.php,
## includes/functions.php,
## includes/functions_post.php,
## includes/page_header.php,
## includes/usercp_register.php,
## language/lang_polish/lang_admin.php,
## language/lang_polish/lang_main.php,
## templates/NazwaStylu/groupcp_info_body.tpl,
## templates/NazwaStylu/index_body.tpl,
## templates/NazwaStylu/login_body.tpl,
## templates/NazwaStylu/posting_body.tpl,
## templates/NazwaStylu/profile_add_body.tpl,
## templates/NazwaStylu/profile_send_pass.tpl,
## templates/NazwaStylu/search_username.tpl,
## templates/NazwaStylu/admin/board_config_body.tpl,
## templates/NazwaStylu/admin/disallow_body,
## templates/NazwaStylu/admin/group_edit_body.tpl,
## templates/NazwaStylu/admin/user_edit_body.tpl,
## templates/NazwaStylu/admin/user_select_body.tpl.
## Included Files: N/A
## License: http://opensource.org/licenses/gpl-license.php GNU General Public License v2
##############################################################


Proszę o pomoc przy supporcie moda :)

Polaczek - 16-11-2009, 15:46

xlesiu napisał/a:
Z wyświetlaną ilością znaków jaka pozostała


Rozumiem, że AJAX'owe? ;)

Seba123 - 17-11-2009, 16:04

Zwykłe JS.
Brt - 19-03-2012, 20:46

U mnie po zainstalowaniu tej modyfikacji pojawił się problem ze sprawdzaniem loginu w bazie. Mogłem mieć dwóch użytkowników z takim samym loginem.
Chodzi o kod w pliku /includes/usercp_register.php
Wg. instrukcji poprawny kod powinien wyglądać następująco:
Kod:
    // Restrict username size mod - start
    $un_min = $board_config['username_min_char'];
    $un_max = $board_config['username_max_char'];
    // Restrict username size mod - end
    $username_sql = '';
    if ( $board_config['allow_namechange'] || $mode == 'register' )
    {
        if ( empty($username) )
        {
            $error = TRUE;
            $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
        }
        else if ( $username != $userdata['username'] || $mode == 'register' )
        {
            // Restrict username size mod - start
            if (strlen($username) < $un_min || strlen($username) > $un_max)
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . sprintf($lang['User_length_error'], $un_min, $un_max);
            // Restrict username size mod - end   
            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'];
                }
            }
            // Restrict username size mod - start
            }
            // Restrict username size mod - end
            if ( !$error )
            {
                $username_sql = "username = '" . str_replace("\'", "''", $username) . "', ";
            }
        }
    }

Ja swój edytowałem następująco:
Kod:
// Restrict username size mod - start
    $un_min = $board_config['username_min_char'];
    $un_max = $board_config['username_max_char'];
    // Restrict username size mod - end
    $username_sql = '';
    if ( $board_config['allow_namechange'] || $mode == 'register' )
    {
        if ( empty($username) )
        {
            $error = TRUE;
            $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
        }
        else if ( $username != $userdata['username'] || $mode == 'register' )
        {
            // Restrict username size mod - start
            if (strlen($username) < $un_min || strlen($username) > $un_max)
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . sprintf($lang['User_length_error'], $un_min, $un_max);
                                                // Restrict username size mod - end
 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'];
                }
            }
            // Restrict username size mod - start
            else if (strlen($username) < $un_min || strlen($username) > $un_max)
            {
                $error = TRUE;
                $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . sprintf($lang['User_length_error'], $un_min, $un_max);
            }
            // Restrict username size mod - end
            if ( !$error )
            {
                $username_sql = "username = '" . str_replace("\'", "''", $username) . "', ";
            }
        }
    }

O ile dobrze rozumiem, to chodzi o kolejność operacji, najpierw sprawdzenie czy login jest w bazie, a potem czy ma wymaganą ilość znaków.
Poprawcie mnie o ile się mylę.



Powered by phpBB modified by Przemo © 2003 phpBB Group