المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
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" => "",
);
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
الكلمة هذي مامعناها
if(!isset
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 2,448
المواضيع 1,474
الإنتساب : 24-09-2011
السمعة :
48
شكرا: 0
مشكور 1 مرة في 1 موضوع
هذه isset داله تقوم بالتأكد من ان كان المتغيير موجود وليه قيمه ام لا
ومادام اضف ! قبلها اذا يقول ان لم تكن لها قيمه
بالنسبه لداله التحويل سوف اقم بالبحث مره لعلي وعسي نخرج بشي جديد فاعذرني هذه الفتره لدي ضغط كبير
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
الله يبارك فيك ويجزاك عنا كل خير
لا تتعب نفسك نهائيا كفيت ووفيت.
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
الدالة بشكل كامل
كود : 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']
علامة يساوي واكبر من مامعناها
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
حصلت عدة مصطلحات لا ينتبه لها من هو جديد وهي
علامة التعجيب عرفت معناها النفي
والباقي؟
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
اظني عرفت متى يحول كلمة المرور
بعدما تعيد الدالة التالية 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);
}
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 2,448
المواضيع 1,474
الإنتساب : 24-09-2011
السمعة :
48
شكرا: 0
مشكور 1 مرة في 1 موضوع
2014-09-26, 02:57 PM
(آخر تعديل لهذه المشاركة: 2014-09-26, 02:58 PM بواسطة support.)
(2014-09-26, 02:21 PM)mrsaud كتب : حصلت عدة مصطلحات لا ينتبه لها من هو جديد وهي
علامة التعجيب عرفت معناها النفي
والباقي؟
دي ضمن برمجه البي اتش بي يسبقها متغيير وتستخدم لاعطاء القيمه->
علامه رقميه بمعني اصغر من او تساوي القيمه اللي بعدها=>
=
علامه رقميه بمعني تساوي القميه التي بعدها==
علامه رقميه بمعني لا تساوي القيمه التي بعدها=!
كلامك في الرد الاخير صحيح بنسبه كبيره واعتقد اوشكت علي الاقتراب من هدفك
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
2014-09-26, 03:19 PM
(آخر تعديل لهذه المشاركة: 2014-09-26, 03:20 PM بواسطة mrsaud.)
طيب فيه غموض بانسبة للدالة check_vb
كود : function check_vb($password, $user)
الاشتراط ليس مثل ماهو موجود باسم الدالة
كود : if(md5(md5($password).$user['passwordconvertsalt'])
يعني لو جت كذا
كود : if(md5(md5($password),$user['passwordconvertsalt'])
بحيث نضع فاصلة بدل النقطة استطيع ان افهمها
اقصد النقطة هنا
قبل
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
المشاركات : 170
المواضيع 28
الإنتساب : 11-09-2014
السمعة :
2
شكرا: 5
مشكور 3 مرة في 3 موضوع
شي غريب بصراحة ان عادت دالة 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);
}
آخر شرط بالدالة اللي هو الاسناد لكن لا يحول شيء هذه الجزئية فقط ان لم اوفق لفهمها فهذا يعني ضياع عقلي
"اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنْ زَوَالِ نِعْمَتِكَ، وَتَحَوُّلِ عَافِيَتِكَ، وَفُجَاءَةِ نِقْمَتِكَ، وَجَمِيعِ سَخَطِكَ"
|