الدعم العربي
[جاهز للتحميل]فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - نسخة قابلة للطباعة

+- الدعم العربي (https://www.mybbarab.com)
+-- قسم : :: . + الأقسام الإدارية + . :: (https://www.mybbarab.com/forum-36.html)
+--- قسم : قسم الأقتراحات - ونقاش المواضيع الهادفة لرقى المنتدى (https://www.mybbarab.com/forum-37.html)
+--- الموضوع : [جاهز للتحميل]فكرة دمج منتدى من نوع vbulletin الى منتدى mybb (/thread-17174.html)

الصفحات: 1 2 3 4 5


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

The password was correct, so use MyBB's method the next time (even if the captcha was wrong we can update the password)
هذه الكلام يعني ان كلمة المرور صحيحة لان التشفير عادي.

كل شي اتضح الا التحويل لم اتمكن من فهمه.
اظن كود التحويل ليس هذا

كود :
// The password was correct, so use MyBB's method the next time (even if the captcha was wrong we can update the password)
            $salt = generate_salt();
            $update = array(
                "salt"                    => $salt,
                "password"                => salt_password(md5($login->data['password']), $salt),
                "loginkey"                => generate_loginkey(),
                "passwordconverttype"    => "",
                "passwordconvert"        => "",
                "passwordconvertsalt"    => "",
            );



RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

الكلمة هذي مامعناها
if(!isset


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - support - 2014-09-26

هذه isset داله تقوم بالتأكد من ان كان المتغيير موجود وليه قيمه ام لا

ومادام اضف ! قبلها اذا يقول ان لم تكن لها قيمه

بالنسبه لداله التحويل سوف اقم بالبحث مره لعلي وعسي نخرج بشي جديد فاعذرني هذه الفتره لدي ضغط كبير


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

الله يبارك فيك ويجزاك عنا كل خير
لا تتعب نفسك نهائيا كفيت ووفيت.


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

الدالة بشكل كامل


كود :
function loginconvert_convert(&$login)
{
    global $mybb, $valid_login_types, $db, $settings;

    $options = array(
        "fields" => array('username', "password", "salt", 'loginkey', 'coppauser', 'usergroup', "passwordconvert", "passwordconverttype", "passwordconvertsalt"),
        "username_method" => (int)$settings['username_method']
    );

    if($login->username_method !== null)
    {
        $options['username_method'] = (int)$login->username_method;
    }

    $user = get_user_by_username($login->data['username'], $options);

    // There's nothing to check for, let MyBB do everything
    // This fails also when no user was found above, so no need for an extra check
    if(!isset($user['passwordconvert']) || $user['passwordconvert'] == '')
    {
        return;
    }

    if(!array_key_exists($user['passwordconverttype'], $valid_login_types))
    {
        // TODO: Is there an easy way to make the error translatable without adding a new language file?
        redirect($mybb->settings['bburl']."/member.php?action=lostpw", "We're sorry but we couldn't convert your old password. Please select a new one", "", true);
    }
    else
    {
        $function = "check_".$valid_login_types[$user['passwordconverttype']];
        $check = $function($login->data['password'], $user);

        if(!$check)
        {
            // Yeah, that function is called later too, but we need to know whether the captcha is right
            // If we wouldn't call that function the error would always be shown
            $login->verify_attempts($mybb->settings['captchaimage']);

            $login->invalid_combination(true);
        }
        else
        {
            // The password was correct, so use MyBB's method the next time (even if the captcha was wrong we can update the password)
            $salt = generate_salt();
            $update = array(
                "salt"                    => $salt,
                "password"                => salt_password(md5($login->data['password']), $salt),
                "loginkey"                => generate_loginkey(),
                "passwordconverttype"    => "",
                "passwordconvert"        => "",
                "passwordconvertsalt"    => "",
            );

            $db->update_query("users", $update, "uid='{$user['uid']}'");

            // Make sure the password isn't tested again
            unset($login->data['password']);

            // Also make sure all data is available when creating the session (otherwise SQL errors -.-)
            $login->login_data = array_merge($user, $update);
        }
    }
}

// Password functions

function check_vb($password, $user)
{
    if(md5(md5($password).$user['passwordconvertsalt']) == $user['passwordconvert'] || md5($password.$user['passwordconvertsalt']) == $user['passwordconvert'])
    {
        return true;
    }

    return false;
}

ودي اشرح النقاط اللي انا فهمتها خصوصا بعد عرفت معنى ! ومعنى isset

اول سطر يصرح بشكل عمومي
كود :
global $mybb, $valid_login_types, $db, $settings;
السطر هذا فهمت جزء ولم افهم الاخر
كود :
$options = array(
        "fields" => array('username', "password", "salt", 'loginkey', 'coppauser', 'usergroup', "passwordconvert", "passwordconverttype", "passwordconvertsalt"),
        "username_method" => (int)$settings['username_method']
    );
اللي فهمت انه عمل مصفوفة باسم options وضع بها الحقول المعروفة من الجدول الخاص بالاعضاء
الجزء الاخر وهو
كود :
"username_method" => (int)$settings['username_method']
علامة يساوي واكبر من مامعناها


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

حصلت عدة مصطلحات  لا ينتبه لها من هو جديد وهي
كود :
->
=>
=
==
=!
علامة التعجيب عرفت معناها النفي
والباقي؟


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

اظني عرفت متى يحول كلمة المرور
بعدما تعيد الدالة التالية false يحول

كود :
function check_vb($password, $user)
{
    if(md5(md5($password).$user['passwordconvertsalt']) == $user['passwordconvert'] || md5($password.$user['passwordconvertsalt']) == $user['passwordconvert'])
    {
        return true;
    }

    return false;
}
والدليل هذه الجملة او الكلمة في الدالة
كود :
$function = "check_".$valid_login_types[$user['passwordconverttype']];
        $check = $function($login->data['password'], $user);

        if(!$check)
        {
            // Yeah, that function is called later too, but we need to know whether the captcha is right
            // If we wouldn't call that function the error would always be shown
            $login->verify_attempts($mybb->settings['captchaimage']);

            $login->invalid_combination(true);
        }



RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - support - 2014-09-26

(2014-09-26, 02:21 PM)mrsaud كتب : حصلت عدة مصطلحات  لا ينتبه لها من هو جديد وهي

كود :
->
=>
=
==
=!
علامة التعجيب عرفت معناها النفي
والباقي؟


 دي ضمن برمجه البي اتش بي يسبقها متغيير وتستخدم لاعطاء القيمه->
 علامه رقميه بمعني اصغر من او تساوي القيمه اللي بعدها=>
=
علامه رقميه بمعني تساوي القميه التي بعدها==
  علامه رقميه بمعني لا تساوي القيمه التي بعدها=!

كلامك في الرد الاخير صحيح بنسبه كبيره واعتقد اوشكت علي الاقتراب من هدفك


RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

طيب فيه غموض بانسبة للدالة check_vb
كود :
function check_vb($password, $user)

الاشتراط ليس مثل ماهو موجود باسم الدالة
كود :
if(md5(md5($password).$user['passwordconvertsalt'])

يعني لو جت كذا
كود :
if(md5(md5($password),$user['passwordconvertsalt'])
بحيث نضع فاصلة بدل النقطة استطيع ان افهمها
اقصد النقطة هنا
كود :
.$user
قبل
كود :
$user



RE: فكرة دمج منتدى من نوع vbulletin الى منتدى mybb - mrsaud - 2014-09-26

شي غريب بصراحة ان عادت دالة check_vb بقيمة false انظر تعليق المبرمج وانظر ماهو الكود الذي كتبه؟!!
كود :
if(!$check)
        {
            // Yeah, that function is called later too, but we need to know whether the captcha is right
            // If we wouldn't call that function the error would always be shown
            $login->verify_attempts($mybb->settings['captchaimage']);

            $login->invalid_combination(true);
        }
آخر شرط بالدالة اللي هو الاسناد لكن لا يحول شيء هذه الجزئية فقط ان لم اوفق لفهمها فهذا يعني ضياع عقليSad