تحديث آخر نسخة 1.8.37

تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في تحويل قاعدة البيانات لـ utf8 و في المنتدى
#1
بسم الله الرحمن الرحيم

في البداية أسف لغيبابي الطويل ولكن صدقوني بسبب ضيق الوقت.

المشكلة الأولى : عند التحويل قواعد البيانات لترميز utf-8 تظهر المشكلة التالية :
PHP كود :
MyBB SQL Error

MyBB has experienced an internal SQL error 
and cannot continue.

SQL Error:
 
1064 You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'blobNOT NULL' at line 1
Query
:
 
ALTER TABLE mybb_upgrade_data CHANGE `title` `titlevarbinary(30) DEFAULT '' NOT NULLCHANGE `contents` `contentsblobNOT NULL

Please contact the MyBB Group 
for support

المشكلة الثانية: عند فتح منتدى الهاكات عندي اضغط هنا فقط في هذا المنتدى يظهر التالي ( ظهرت المشكلة بعد تحديث هاك الكلمات الدلالية -TagCloud - )
PHP كود :
MyBB SQL Error

MyBB has experienced an internal SQL error 
and cannot continue.

SQL Error:
 
1104 The SELECT would examine more than MAX_JOIN_SIZE rowscheck your WHERE and use SET SQL_BIG_SELECTS=or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay
Query:
 
SELECT `mybb_threads`.tag , `mybb_threads`.fid , `mybb_stcp`.tag_name , `mybb_stcp`.tag_amount FROM `mybb_stcpLEFT JOIN mybb_threads ON `mybb_threads`.tag LIKE CONCAT('%',',',`mybb_stcp`.tag_name,'%') AND `mybb_threads`.fid != '' WHERE `mybb_threads`.fid 15 ORDER BY RAND() LIMIT 30;

Please contact the MyBB Group for support

المشكلة الثالثة : أعرف أنها ليس لها علاقة بالمنتدى ولكني عندما حاولت تحديث هاك الكلمات الدلالية وجدت أن النسخة الجديدة فيها دالة set_time_limit واستضافتي لا تدعم هذه الدالة فهل هناك من دالة بديلة تؤدي نفس العمل وتظهر المشكلة كالتالي:
PHP كود :
Warning [2set_time_limit() has been disabled for security reasons Line320 Filetags.php PHP 5.2.12 (Linux)
File Line Function
[
PHPerrorHandler->error
/tags.php 320 set_time_limit 
الرد
شكر من طرف :
#2
بالنسبة للمشكلة الأخيرة
افتح ملف showthread.php

ثم ابحث عن$lang->load("showthread"); واضف بعده
PHP كود :
$db->query('SET SESSION SQL_BIG_SELECTS=1'); 

اما الثانية فأنت تعرف انها من الهاك, الاولى اكد لى مكان ظهورها حيث ان جدول mybb_upgrade_data
متعلق بعملية التحديث وليس تحويل الترميز.
الرد
شكر من طرف :
#3
بالنسبة للمشكلة الأولى فهي تظهر عند تحويل قواعد البيانات إلى utf-8 عند البدأ بالعملية
أما المشكلة الثانية : شكراً لك أخي بيبو ولكن عندي سوالين هل هناك طريقة لحلها ؟ لماذا هذا المنتدى بالذات هي التي تظهر بها هذه المشكلة
المشكلة الثالثة : لم تحل ويمكنك رؤية المشكلة عبر الضغط هنا

وفي النهاية لك جزيل الشكر
الرد
شكر من طرف :
#4
عفوا الحل الذى وضعته هو حل لمشكلة الخطأ الذى يظهر بالقسم...

ليس لدى الكثير من الوقت لأبحث معك مشكلة الهاك, بالتالى افضل استغلال هذا الوقت فى حل مشكلة المنتدى نفسه.

افتح ملف admin/modules/tools/system_health.php

ابحث عن
PHP كود :
$convert_to_binary .= $comma.$names.preg_replace('/'.$type.'/i'$types[$type], $column['Type']).$attributes

استبدله بالتالى
PHP كود :
$convert_to_binary .= "$comma $names".' '.preg_replace('/'.$type.'/i'$types[$type], $column['Type']).' '.$attributes

ان شاء الله يحل هذا المشكلة الخاصة بتحويل الترميز.
الرد
شكر من طرف :
#5
شكراً لك أخي الكريم بيبو ولكن عند الإستبدال (( الأدوات و الصيانة بالكامل لا تعمل )) ولكني حاولت تحويل قاعدة البيانات إلى utf-8 بطريقة ( بالصدقة حتى أنا نفسي لا أعرف ماذا فعلت ) وتم التحويل بنجاح لهذا فإن هذه المشكلة حالياً غير مهمة.

وأنا أعرف أن وقت ثمين للغاية وأسف لإضاعة وقتك.
الرد
شكر من طرف :
#6
ربما انك جربت استخدام الأدوات والصيانة والملف لم يكن اكتمل تطبيق التعديل عليه (او انه كان بمنتصف الطريق اثناء رفعه بعد التعديل او شئ من هذا القبيل) وبعد ذلك عند تجربتك الأخرى كان تم الرفع بالكامل...

التعديل الذى وضعته لك لا يمكنه منع الكود من العمل حيث انه فقط يضيف مسافات بين الكلمات هذه المسافات يتم تجاهلها اذا كانت زائدة لكنها يمكن ان تمنع الوظيفة المطلوبة من العمل اذا كانت مطلوبة وغير متوفرة (مثلما يحدث بالخطأ الذى تراه, كلمة binary و NOT NULL ملصوقين سويا).
الرد
شكر من طرف :
#7
حسناً أخي بيبو الكريم كما قلت لك حالياً هذه ليس بمشكلة ولكني أريد سؤالك سؤال عارف إن طولت عليك وتعبتك وأسف مرة ثانية Sad

بالنسبة للمشكلة الثانية حاولت حلها عبر حذف الهاك وتركيبه مرة أخرى وعمل بشكل ممتاز ولكن عند وصول الكلمات الدلالية إلى عدد 22 تظهر المشكلة مع أني أرى أن رقم 22 رقم قليل للغاية وكما فهمت من المشكلة أني يجب أن أعدل على الدالة
PHP كود :
SQL_BIG_SELECTS 
ولكن أين هي هذه الدالة

ويا ريت لو تعرف بديل لدالة set_time_limit تقولي عن الدالة البديلة
الرد
شكر من طرف :
#8
هذه ليست دوال اخى, لكنها إعدادات.

على كل حال, ارفق لى ملف الهاك وسوف اعدل لك المطلوب...
الرد
شكر من طرف :
#9
مشكور لك أخي الكريم وهذا هو الهاك كامل لإني لا أعرف أي ملف تريده


الملفات المرفقة
.rar   Simple TagCloud Plugin.rar (الحجم : 21.92 ك ب / التحميلات : 3)
الرد
شكر من طرف :
#10
عفوا يا طيب, الحل الذى وضعته لك بأول رد ليا بالموضوع (التعديل الخاص بملف showthread.php)
هو حل بناء على فهم خاطئ للمشكلة (انا فهمت شئ اخر غير ماوضعته انت, ربما لأنى كنت مرهق قليلا ومستعجل بعض الشئ)... قم بإرجاع هذا التعديل كما كان...


واستخدم كل من الملفين التاليينبدلا من ملفات الهاك الذى معك. ضع ملف tags.php بمجلد المنتدى الرئيسى والملف الأخر بمجلد الهاكات...


وبالمناسبة, اتمنى فقط ان نجعل مشاكل الهاكات بقسم الهاكات, حتى لا يختلط الأمر على من يواجه مشكلة شبيهة...


الملفات المرفقة
.php   tags.php (الحجم : 37.57 ك ب / التحميلات : 3)
.php   stcp.php (الحجم : 47.93 ك ب / التحميلات : 2)
الرد
شكر من طرف :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 5 ) ضيف كريم