لماذا أنا غير قادر على استخدام متغير في بلدي تتطلب أو تضمين البيان على XAMPP?

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

  •  06-07-2019
  •  | 
  •  

سؤال

في حين تنظيف بعض البرامج النصية php لقد لاحظت بعض التصرفات الغريبة مع وتتطلب/تشمل البيانات عند محاولة استخدام المتغيرات.

على العيش server البرمجية التالية يعمل بشكل جيد..

<?php
$test = "http://localhost/elearning/trunk/mypage.php";
require "$test";
?>

لكن على XAMPP التثبيت ((الباقة الأساسية) نسخة 1.6.7) لقد تظهر رسالة الخطأ التالية:

تحذير:تتطلب() [function.يتطلب]:رابط الملف-تعطيل الوصول في تكوين الملقم في C:\Documents و Settings\username\Desktop\xampp-win32-1.6.7\xampp\htdocs\elearning runk est.php على خط 22

تحذير:تتطلب(http://localhost/elearning/trunk/mypage.php) [function.يتطلب]:فشل في فتح الدفق:لا مناسبة المجمع يمكن العثور عليها في C:\Documents و Settings\username\Desktop\xampp-win32-1.6.7\xampp\htdocs\elearning runk est.php على خط 22

خطأ فادح:تتطلب() [function.يتطلب]:فشل في فتح المطلوبة 'http://localhost/elearning/trunk/mypage.php'(include_path='.;C:\Documents and Settings\اسم المستخدم\سطح المكتب\xampp-win32-1.6.7\xampp\php\الكمثرى\') في C:\Documents و Settings\username\Desktop\xampp-win32-1.6.7\xampp\htdocs\elearning runk est.php على خط 22

إذا كنت نسخ+لصق http://localhost/elearning/trunk/mypage.php (مباشرة من الخطأ) في المتصفح ، mypage.php الأحمال.هل هذا خطأ في التكوين أو النهج ؟

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

المحلول

لا يمكنك استخدام المسارات التي تبدأ بـ http:// على بعض الخوادم بسبب الأمن.ما كنت تريد أن تستخدم بدلا من ذلك هو مسار الدليل.

يمكنك الحصول على الخاص بك الحالي مسار الدليل من القيام بشيء مثل
echo $_SERVER['DOCUMENT_ROOT'];

التي سوف تعطيك الدليل الخاص بك المسار من المجلد الجذر من ملقم.هذا هو المسار الذي تريد استخدامه ليشمل/طلب الأشياء.


إذا كنت لا أفهم تماما أن محاولة هذا.

هناك نوعان من المسارات:

الشبكة العالمية مسارات:
http://example.com/directory/file.php

ملقم دليل مسارات:
/home/usr/www/الموقع/html/

الخادم مسار الدليل حيث توجد ملفات على الخادم القرص الصلب.مثل الكثير من القرص الثابت للكمبيوتر الخاص بك, فمن لا يتغير أبدا إلا إذا قمت بنقل الملفات.من ناحية أخرى, World Wide Web الطريق (واحد يستخدم الجميع للوصول إلى موقع الويب الخاص بك) يمكن أن تتغير بناء على ما المجال الذي تستخدمه ، حيث جذر المستند هو لافتا وزارة الدفاع إعادة كتابة ، وأكثر من ذلك.

ملاحظة:جذر المستند هو أهم دليل أن خادم يخدم الملفات من.إذا لم يكن لك index.php في جذر المستند ، سوف تظهر مثل هذا على شبكة الإنترنت:http://example.com/index.php.

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

وأنا آمل حقا أن في مكان ما هناك شيء منطقيا.

نصائح أخرى

وحاول تتطلب "./mypage.php" لا الدليل المحدد كله

وPHP ليست ذكية بما يكفي لتعلم أنك بما في ذلك من نفس الملقم عند استخدام URL تدوين هذا القبيل، لذلك يعتقد كنت الاستيلاء على الملفات من خادم منفصل (والتي يمكن أن تكون خطرة).

ومن المقرر

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

ومنذ كنت على نفس الخادم، يمكنك ببساطة استخدام المسارات النسبية، مثل:

require_once 'mypage.php'

لا تستخدم مسار من هذا القبيل ... استخدام مسار نسبي أو مسار مطلق.

مثال

require 'mypage.php'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top