PDA

View Full Version : سوال: نصب سایت توی پوشه دلخواه و شناسایی مسیر نصب توسط php



i-php-i
یک شنبه 21 اردیبهشت 1393, 15:23 عصر
می خوام سایت رو طوری طراحی کنم که مدیر سایت هروقت بخواد بتونه بدون نیاز به تغییرات تنظیمات سایت پوشه محل نصب سایت رو تغییر بده

مثلا سایت رو از آدرس زیر

/folder1
به این آدرس منتقل کنه

/folder1/folder2/folder3
مشکلی که هست اینه که کدهایی مثل کد زیر همه پوشه ها منتهی به مسیر جاری (حتی پوشه هایی که خارج از پوشه html_publice هستن) رو نمایش می دن و مشخص نیست که چطور می تونم پوشه های فضای عمومی سرور رو شناسایی کنم


define('ROOT',dirname(__FILE__));

MMSHFE
یک شنبه 21 اردیبهشت 1393, 15:33 عصر
اگه بخواین اسکریپت مستقل از مسیر باشه، باید مسیر ریشه سایت رو با همین روشی که گفتین بصورت مطلق بدست بیارین. اینکه همه مسیرها نشون داده میشن هم به تنهایی مشکل خاصی نداره (تا وقتی که برای بازدیدکنندگان - شامل هکرهای محترم - اون رو echo نکرده باشین).

i-php-i
یک شنبه 21 اردیبهشت 1393, 16:24 عصر
این کد همه پوشه ها رو نشون می ده، چطور می شه از این طریق متوجه شد کدوم پوشه توی فضای عمومی هست و کدوم پوشه بصورت عمومی در دسترس نیست؟

MMSHFE
دوشنبه 22 اردیبهشت 1393, 09:27 صبح
هرچی بالاتر از public_html باشه توی فضای عمومی در دسترس نیست.

i-php-i
دوشنبه 22 اردیبهشت 1393, 11:44 صبح
هرچی بالاتر از public_html باشه توی فضای عمومی در دسترس نیست.



پی اچ پی هیچ تابعی ارائه نداده که با اون بشه پوشه های منهتی با فایل جاری که توی پوشه عمومه هستن رو بهمون نمایش بده؟

MMSHFE
دوشنبه 22 اردیبهشت 1393, 11:49 صبح
نه چون بسته به تنظیمات سرور، پوشه عمومی ممکنه تغییر کنه و این ربطی به PHP نداره. شما خودتون باید بدونین که کدوم پوشه هاستتون عمومیه و کدوم خصوصی. بعلاوه برای دسترسی به فایلها مسیر مطلق لازمه. نمیفهمم چرا اینقدر درگیر این موضوع شدین. کسی که قرار نیست ROOT رو ببینه (قرار نیست توی سورس کدها echo کنید). دو تا ثابت تعریف کنید:

defined('ROOT') or define('ROOT', str_replace('\\', '/', dirname(__FILE__)));
defined('ADDR') or define('ADDR', 'http://www.yoursite.com');
حالا موقع ضمیمه کردن فایلهای PHP از ثابت ROOT و موقع نمایش تصاویر و فایلهای js و css و... توی سورس کد از ADDR استفاده کنید.