الدعم العربي

نسخة كاملة : مشكلة في تحويل قاعدة البيانات لـ utf8 و في المنتدى
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسم الله الرحمن الرحيم

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

المشكلة الأولى : عند التحويل قواعد البيانات لترميز 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 
بالنسبة للمشكلة الأخيرة
افتح ملف showthread.php

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

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

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

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

افتح ملف 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

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

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

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

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

ويا ريت لو تعرف بديل لدالة set_time_limit تقولي عن الدالة البديلة
هذه ليست دوال اخى, لكنها إعدادات.

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


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


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