- סטטוס
- נפתר
סקירה כללית של התקלה
ייתכן שאתרים מסוימים ייתקלו בשגיאה הבאה במסוף 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
- מצא וערוך את הקובץ php.ini של השרת שלך.
- חפש שורה המכילה את המחרוזת always_populate_raw_post_data.
- אם השורה מתחילה בנקודה ופסיק (;), המשמעות היא שהיא מסומנת כהערה (ואינה בשימוש). במקרה זה, הסר את הנקודה ופסיק.
- בדוק שהשורה המלאה היא
always_populate_raw_post_data=-1(עליה להסתיים בערך “=-1”). - הפעל מחדש את השרת.
שדרוג PHP
שדרוג PHP לגרסה עדכנית יותר (7.1 ומעלה) יסיר את אזהרת ההוצאה משימוש.
PHP 7.1 מהיר הרבה יותר מ־PHP 5.6.
PHP 5.6 הגיע לסוף מחזור החיים שלו ב־1 בינואר 2019. המשמעות היא שזו “גרסה שאינה נתמכת עוד. על המשתמשים בגרסה זו לשדרג בהקדם האפשרי, מכיוון שהם עלולים להיות חשופים לפגיעויות אבטחה שלא תוקנו.” (מקור: https://www.php.net/supported-versions.php).