كيف يمككني تصحيح الخطا التالي ?

قم تركيب احد سكريبتات على الاستضافة عند فتح الموقع يظهر لي الخطا التالي 

Parse error: syntax error, unexpected '[' in /home/a9153028/public_html/index.php on line 132

اعتقدت انه متعلق بنسخة php

كيف يمكنني تصحيحه ?

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

انتقل الى الملف index.php الموجود بمجلد الـ public_html

انسخ لنا الكود من سطر 120 - 140 , ربما نستطيع المساعدة بمعرفة المشكلة.

هذا هو الكود يا اخي

);

$db_updates = array(

15 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('version', '15');"),
17 => array("ALTER TABLE `Faucetinabox_Settings` CHANGE `value` `value` TEXT NOT NULL;", "INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('balance', 'N/A');"),
33 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('ayah_publisher_key', ''), ('ayah_scoring_key', '');"),
34 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('custom_admin_link_default', 'true')"),
38 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('reverse_proxy', 'none')", "INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('default_captcha', 'recaptcha')"),
41 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('captchme_public_key', ''), ('captchme_private_key', ''), ('captchme_authentication_key', ''), ('reklamper_enabled', '')"),
46 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('last_balance_check', '0')"),
54 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('funcaptcha_public_key', ''), ('funcaptcha_private_key', '')"),
55 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('block_adblock', ''), ('button_timer', '0')"),
56 => array("INSERT IGNORE INTO `Faucetinabox_Settings` (`name`, `value`) VALUES ('ip_check_server', ''),('ip_ban_list', ''),('hostname_ban_list', ''),('address_ban_list', '')"),
58 => ["DELETE FROM `Faucetinabox_Settings` WHERE `name` IN ('captchme_public_key', 'captchme_private_key', 'captchme_authentication_key', 'reklamper_enabled')"],

);

الخطأ يكمن باستخدام المصفوفة بالشكل الجديد والسيرفر الذي تستخدمه يستخدم اصدار قديم من php لا يدعمها ,

قم باستبدال

58 => ["DELETE FROM `Faucetinabox_Settings` WHERE `name` IN ('captchme_public_key', 'captchme_private_key', 'captchme_authentication_key', 'reklamper_enabled')"],

وضع مكانها

58 => array("DELETE FROM `Faucetinabox_Settings` WHERE `name` IN ('captchme_public_key', 'captchme_private_key', 'captchme_authentication_key', 'reklamper_enabled')"),

وستحل مشكلة هذا السطر

اذا قمت بترقية اصدار php في السيرفر هل ستحل المشكلة دون تغيير الكود ؟

اذا الاخطاء مثل هذه ’ اذا تم ترقيتها الى اصدار 5.3 -على ما اعتقد - نعم ستحل المشاكل

لا يمكننا تصحيح كود لم نطلع عليه من قبل

  • نعم أغلب الأخطاء في تطبيقات بُنيت من قبل تكون بسبب عدم التوافق مع الإصدارات الحديثة من PHP بسبب عدم دعم شيء ما في إصدار حديث يُسبب الخلل، فالحل إما استخدام نسخة PHP أقدم -خيار لا يُنصح به- تحديث التطبيق ليتوافق مع الإصدارات الحديثة من اللغة -بحاجة لشخص لديه دراية بأوامر اللغة-

لكن بعد رؤية الكود يبدو ان البرمجية تستخدم اصدار حديث من PHP ولكن السيرفر الذي يعمل على اصدار قديم !

معلومة بسيطة :

الاصدارات الحديثة من PHP تدعم تشغيل اي برمجية تم بنائها على اصدارات اقدم , (الا بعض الدوال التي تم حذفها , وتم تنبيه المبرمجين عليها قبل حذفها ب 7 اشهر على الاقل) .

ahmedsaoud31 أضف ردا

نعم بالاستضافة تستخدم اصدار قديم كما اخبر

الا بعض الدوال التي تم حذفها , وتم تنبيه المبرمجين عليها قبل حذفها ب 7 اشهر على الاقل

إذاً ستسبب مُشكلات، وهذا ما أواجه كثيراً في تطبيقات قديمة عند عملها على إصدارات حديثة

التطبيق مبني على اصدار php 5.4

وما هو اصدار PHP على الإستضافة؟

في الغالب الخطأ في السطر

58 => ["DELETE FROM `Faucetinabox_Settings` WHERE `name` IN ('captchme_public_key', 'captchme_private_key', 'captchme_authentication_key', 'reklamper_enabled')"],

حيث أنك تستخدم الأقواس المربعة [] للدلالة على المصفوفة بدلاً من استخدام array بخلاف الأسطر التي تسبقها، واستخدام هذه الأقواس تم إضافته في اصدارات حديثة من اللغة

لقد بحث عن اصدار php في الاستضافة ووجدت php 5.2.X

ahmedsaoud31 أضف ردا

إذاً استخدام الرمز المختصر للمصفوفة [] هو سبب الخطأ، فدعمه يبدأ من الإصدار php 5.4.x فما فوق.

نعم اخي اعتقد هذا هو السبب

لذا ساقوم بترقية اصدار php في الاستضافة

شكرا لك على المساعدة