محاولة استخدام PHP تضمين في صفحة errordocument ولكنها لا تعمل في دلائل مختلفة

StackOverflow https://stackoverflow.com/questions/19850016

سؤال

أعتقد أنني وجدت أنه عندما يكون لدي صفحة خطأ مخصصة لـ ErrorDocument ، فإن Include لا يعمل دائمًا لأن التضمين يتطلب دليلًا والصفحة التي تحتوي على الخطأ في دليل مختلف.

directory1/directory2/thispagecausesa404error.php

directory1/thispagecausesa404error.php

لو كنت أملك include includepage.php; في صفحة errordocument الخاصة بي ، فلن يعمل.

لقد قررت الإضافة include_once $_SERVER['DOCUMENT_ROOT'].'/includepage.php'; إلى صفحة Errordocument ، التي تحل المشكلة ، لكنني أظن أنني أفعل شيئًا خاطئًا أو لا أرى الطريقة الصحيحة لتضمين خالٍ من العيوب على صفحة خطأ.

ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

أوصي أبدا بالاعتماد على DOCUMENT_ROOT يتم تعيينها بشكل صحيح. بدلاً من ذلك ، استخدم مسارًا نسبيًا من البرنامج النصي الحالي عبر __DIR__ ثابت السحر, ، على سبيل المثال

include __DIR__ . '/relative/path/from/this/script/to/includepage.php';

يمكن أن يحتوي المسار أيضًا على اجتياز الدليل الأصل عبر ../ إذا لزم الأمر ، على سبيل المثال

include __DIR__ . '/../../some/dir/includepage.php';
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top