WPML
الحالة
محلولة

نظرة عامة على المشكلة

قد تواجه بعض المواقع الخطأ التالي في وحدة تحكم JavaScript في صفحات لوحة تحكم إدارة الترجمة أو وظائف إدارة الترجمة:

app.js?ver=5.0.4:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

سيؤدي هذا الخطأ أيضاً إلى إنتاج سلسلة من تحذيرات PHP على النحو التالي:

PHP Warning: Cannot modify header information - headers already sent in /app/public/wp-includes/rest-api/class-wp-rest-server.php on line 1258

PHP Stack trace:

PHP 1. {main}() /app/public/index.php:0

PHP 2. require() /app/public/index.php:17

PHP 3. wp() /app/public/wp-blog-header.php:16

PHP 4. WP->main() /app/public/wp-includes/functions.php:1105

PHP 5. WP->parse_request() /app/public/wp-includes/class-wp.php:737

PHP 6. do_action_ref_array() /app/public/wp-includes/class-wp.php:387

PHP 7. WP_Hook->do_action() /app/public/wp-includes/plugin.php:531

PHP 8. WP_Hook->apply_filters() /app/public/wp-includes/class-wp-hook.php:310

PHP 9. call_user_func_array:{/app/public/wp-includes/class-wp-hook.php:286}() /app/public/wp-includes/class-wp-hook.php:286

PHP 10. rest_api_loaded() /app/public/wp-includes/class-wp-hook.php:286

PHP 11. WP_REST_Server->serve_request() /app/public/wp-includes/rest-api.php:309

PHP 12. WP_REST_Server->send_header() /app/public/wp-includes/rest-api/class-wp-rest-server.php:224

PHP 13. header() /app/public/wp-includes/rest-api/class-wp-rest-server.php:1258

يقتصر هذا الخطأ على المواقع التي تعمل بإصدار PHP 5.6 وينتج عن تحذير إيقاف الاستخدام الذي تطلقه PHP عند تعبئة المتغير العام $HTTP_RAW_POST_DATA (حتى وإن لم يُستخدم)، كما أوضح هنا مؤلف هذا التغيير في PHP:

[…] الطريقة الحالية لإطلاق رسالة إيقاف الاستخدام ليست مثالية تماماً (لا نعرض لك الرسالة عندما تحاول الوصول إلى المتغير $HTTP_RAW_POST_DATA، بل عندما تتم تعبئة $HTTP_RAW_POST_DATA.

يشرح التحذير كيفية إزالة إشعار إيقاف الاستخدام.

حل بديل مؤقت

تعديل ملف php.ini


  1. ابحث عن ملف php.ini الخاص بخادمك وعدّله.

  2. ابحث عن سطر يحتوي على السلسلة النصية always_populate_raw_post_data.

  3. إذا كان السطر يبدأ بفاصلة منقوطة (;)، فهذا يعني أنه عبارة عن تعليق (ولا يتم استخدامه). في هذه الحالة، أزل الفاصلة المنقوطة.

  4. تأكد من أن السطر بالكامل هو always_populate_raw_post_data=-1 (يجب أن ينتهي بـ «=-1»).

  5. أعد تشغيل خادمك.

ترقية PHP


ستؤدي ترقية PHP إلى إصدار أحدث (7.1 أو أعلى) إلى إزالة تحذير الإيقاف.

يُعد PHP 7.1 أسرع بكثير من PHP 5.6.

وصل PHP 5.6 إلى نهاية عمره الافتراضي في 1 يناير 2019. وهذا يعني أنه «إصدار لم يعد مدعوماً. يجب على مستخدمي هذا الإصدار الترقية في أقرب وقت ممكن، حيث قد يكونون عرضة لثغرات أمنية غير مصححة.» (المصدر: https://www.php.net/supported-versions.php).

جميع المشاكل المعروفة →