Борба с пароли

jack

Registered
Привет.Работя в момента по интеграцията на phpbb v3 с един един сайт.Гледам с новата версия нещата са много изчистени и като цяло съм много доволен.Искам да изключа регистрацията от форума и нещата да стават едновременно с регистрацията в сайта ми.За целта ползвам това

Код:
<?php
    define('IN_PHPBB',true);
    $phpbb_root_path = "";
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    require_once( $phpbb_root_path . "common." . $phpEx );
    include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
    include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
     
    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup('ucp');
     
    if($user->data['is_registered'])
    {
            meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
            trigger_error("You are already registered!");
    }
     
    $submit = request_var('submit', '');
    if($submit)
    {
            // Retrieve default group ID
            $sql = 'SELECT group_id
                    FROM ' . GROUPS_TABLE . "
                    WHERE group_name = '" . $db->sql_escape('REGISTERED') . "'
                            AND group_type = " . GROUP_SPECIAL;
            $result = $db->sql_query($sql);
            $row = $db->sql_fetchrow($result);
            $db->sql_freeresult($result);
     
            if (!$row)
            {
                    trigger_error('NO_GROUP');
            }
            $group_id = $row['group_id'];
            
     
            $data = array(
                    'username'                      => utf8_normalize_nfc(request_var('username', '', true)),
                    'user_password'         => phpbb_hash(request_var('password', '', true)),
                    'user_email'            => strtolower(request_var('email', '')),
                    'group_id'                      => (int) $group_id,
                    'user_type'                     => USER_NORMAL,
                    'user_ip'                       => $user->ip,
            );
            
            $user_id = user_add($data);
     
            if ($user_id === false)
            {
                    trigger_error('NO_USER', E_USER_ERROR);
            }
     
            //Set up welcome message
            if ($config['require_activation'] == USER_ACTIVATION_SELF && $config['email_enable'])
            {
                    $message = $user->lang['ACCOUNT_INACTIVE'];
                    $email_template = 'user_welcome_inactive';
            }
            else if ($config['require_activation'] == USER_ACTIVATION_ADMIN && $config['email_enable'])
            {
                    $message = $user->lang['ACCOUNT_INACTIVE_ADMIN'];
                    $email_template = 'admin_welcome_inactive';
            }
            else
            {
                    $message = $user->lang['ACCOUNT_ADDED'];
                    $email_template = 'user_welcome';
            }
            
            //Display message
            $message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
            trigger_error($message);
    }
    else
    {
            echo '<form action="" method="post">
                            Username: <input type="text" name="username" /><br />
                            E-mail address: <input type="text" name="email" size="25" maxlength="100" /><br />
                            Password: <input type="password" name="password" size="25" /><br />
                            <input type="submit" name="submit" value="Submit" />
                            </form>';
    }
    ?>
Ок това си работи.Обаче ако човек си промени паролата в сайта?С v3 вече втори ден гледам ползват супер овъртяно криптиране- свалих си класа с който го правят и в момента се мъча но без успех- само за пример, ако регна потребител с парола 123456 в единия случай тя е $H$7qR5ZmvL7cm3ujixybUKqoK6Q6.WdU1 ако я сменя и пак я върна на 123456 вече е $H$7Vd.Sa1hRTr8S7FyEeac3OhyyDSJKI1 .Сами разбирате- за регистрацията хайде как да е ползвам тези самите класове на phpbb, но за смяна на парола просто искам да намеря юзера и в полето за паролата да му сетна новата, но не мога правилно да я мина през криптиращата им функция- тествах и с кода който е във functions на форума и със оригиналният клас phpass-0.1 досега съм работил предимно с md5 и sha и се оплетох с това на phpbb.
Ако някой може да ми помогне с нещо, предварително благодаря найстина... :cry:
 
jooorooo каза:
Идея, махни криптирането и ползваи твое собствено ;-)

Този рилийз както четох и в документацията има найстина не само козметични промени чисто и просто нова версия 3.Разбираш нежеланието ми да бърникам вътре тъй като всичко е на класове, и незнам си къде ще се обърне към тази функция и не мога да предвидя как ще се държи и дали ще работи самият форум.Като цяло има два варианта- първият който сега опитвам аз външно да си криптирам паролите с алгоритъма на форума и засега нямам успех с това начинание; втората възможност е да се опитам както пир регистрацята да се ползват класовете на самият phpbb и да му подам стринга, да си го схруска и да ми го върне и после да го сетна или най-добре да изпълни функцията смяна на парола в профила, но там гледах те са едни проверки за съвпадение на сегашната, че новата да не е равна на сегашната и пак е овъртяно... по чуждите форуми гледах момчетата имат и те този проблем с новите пароли и сълюушън от до някой да го е преборил не намерих, затова и пуснах тук...
 

Back
Горе