اشکال در دستور include

با سلام.
من توی سایتم از دستور include چندبار استفاده کردم. از وقتی که ISP اعلام کرده که server رو انتقال دادن. اکثر جاهایی که از include استفاده کرده بودم ، پر از خطا شده.
البته این ارور ها فقط شامل حالتیه که من با استفاده از include یه فایلی رو از یکی دیگه از سایتهای خودم فراخوانی کردم.ضمنا سطح دسترسی فایلها مشکلی نداره
مثل:
PHP:
include("http://www.other-site.ir/directory/file.php");

ولی در حالتی که از داخل سایت فایل رو فراخوانی میکنم مشکلی ندارم.
مثل:
PHP:
include("directory/my-file.php");
به نظر شما میتونه از اختلاف ورژن PHP باشه. چون server قبلی PHP4 بوده , server فعلی PHP5
 

jhoseini

Member
حدس میزنم از allow_url_fopen باشه، رو سرور جدید off هستش

PHP:
ini_set('allow_url_fopen', 'On');
اینو به کد هاتون اضافه کنید شاید کار کنه(گرچه بنظرم دسترسی به این پارامتر دست مدیر سرور باید باشه فقط)
اگه نشد کد زیر رو تو یه فایل به اسم php.ini بنویسید، بندازید تو root شاید عمل کنه:
PHP:
allow_url_fopen = On
نهایتا به مدیر سرور گیر بدید تا بازش کنه
13.gif
 
ممنون از جوابتون
امتحان کردم نشد. شاید هم درست امتحان نکرده باشم.
البته اگه ممکنه بیشتر توضیح بدین: این کدها ( هر دو تاش) رو تو کجاباید وارد کنم؟ توی سایت مبدا یا سایت مقصد.؟
ممنون
 

peyman1987

Member
دوست عزیز امیدوارم اینو بدونین که وقتی یه فایل رو از روی یه هاست دیگه اینکلود میکنین اون فایل اجرا میشه و نتیجه اجراش اینکلود میشه. شاید مشکلتون همین بوده باشه.
 
ممنون از توجهتون. ولی، نه مشکل این نیست.
چون تا قبل از تغییر سرور اصلا مشکلی نبود. حالا یا به قول آقای حسینی مشکل از سرور ایجاد شده..
یا اینکه دستور include در PHP 5 متفاوت با PHP 4 باشه که اینو من نمیدونم!. چون سرور جدید و سرور قبلی PHP متفاوتی رو ساپورت میکنن. البته خودم بعیدمیدونم ایراد از این باشه.
 

firebird

Member
ربطی به نسخه PHP نداره. شما این فایل رو هاستت کپی کن و اجرا کن:
PHP:
<? echo "allow_url_fopen = " . (ini_get("allow_url_fopen")+0); ?>
اگه نتیجه 1 بود مشکل از جای دیگه است (مثلاً ممکنه بابت تنظیمات فایروال سرور باشه)، اما اگه 0 بود باید کلاً دنبال راه حل دیگه ای بگردی. در این صورت بهترین راه حل اینه که هاستت رو عوض کنی یا اگه امکانش نیست از توابع CURL استفاده کن. یه چیزی مثل این
PHP:
<?
	function include_url($url) 
	{
		$ch = curl_init();
		curl_setopt ($ch, CURLOPT_URL, $url);
		curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020921 Netscape/7.0');
		curl_setopt ($ch, CURLOPT_HEADER, 0);
		curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
		$html = curl_exec ($ch);
		curl_close ($ch);
		unset($ch);
		echo $html;
	} 
?>
منتهی برای این هم باید CURL نصب باشه. نصب بودنشو میتنونی با ()phpinfo متوجه بشی.
 
آخرین ویرایش:
ممنون از راهنماییتون
تست کردم
allow_url_fopen = 1
حالا باید چیکار کنم؟
 
آخرین ویرایش:
آقا ما هنوز تو این مشکل گیر کردیم....
تو قسمت PHPinfo() رفتم.، allow_url_fopen = on ، ولی یه پارامتر دیگه هست : allow_url_include = off
ممکنه ایراد از این باشه؟
 

جدیدترین ارسال ها

بالا