سوال در مورد BASE_PATH

پرسیده شده
فعالیت 1467 روز پیش
دیده شده 933 بار
0

با سلام -- میخواستم بدونم چرا برای BASE_PATH  همانند BASE_URL  از همون آدرس استفاده نشد (اینجا روی ویندوز هست - روی هاست آدرس به چه صورت استفاده میشه ؟ )-- و از آدرسی که توی ویندوز هست استفاده شده ؟

 با تشکر

فایل پیوست

Hassan En
Hassan En

6 اردیبهشت 99

7

مورد تایید استاد

حذف شده

سلام.

BASE_URL همونطور که مشخصه یک url با پروتوکول http هست و مربوط به مرورگر کاربر هست که آدرسی رو بخونه. مثه فایل های js و css که مرورگر کاربر باید اون آدرسو بخونه تا style و js روی مرورگر کاربر لود شن.

ولی داخل فایل های PHP برای اینکلود کردن فایل های دیگر، از مسیر دقیق یا نسبی درون هارد سرور استفاده میشه!

کاربردشون با هم متفاوته. یکی مربوط به سمت client هست و دیگری مربوط به سمت server

 

برای بدست اوردن path ثابت های جادویی __DIR__ و __FILE__ وجود داره.

* ثابت __DIR__ مسیر دایرکتوری فایلی که داخلش هستیو برمیگردونه.

* ثابت __FILE__ مسیر دایرکتوری  + نام فایلی که داخلش هستیو برمیگردونه.

 

ثابت __DIR__ معادل دستور زیر هست:

dirname(__FILE__);

 

برای نمایش خروجی و تفاوتشون، حالا همین دستوراتو داخل پروژه ی ۷todo در مسیر ۷todo/bootstrap/constants.php چاپ میکنم:

<?php
echo __DIR__; 
//C:\wamp64\www\7todo\bootstrap
echo "<br/>";

echo dirname(__FILE__);
// C:\wamp64\www\7todo\bootstrap
echo "<br/>";

echo __FILE__;
// C:\wamp64\www\7todo\bootstrap\constants.php
echo "<br/>";

خب با توجه به __DIR__ که به دایرکتوری bootstrap اشاره میکنه، اگر یک دایرکتوری به عقب برگردیم به ROOT پروژه میرسیم. این دو تا دستورو با هم مقایسه کنید:

<?php
echo dirname(__FILE__);
// C:\wamp64\www\7todo\bootstrap

echo "<br/>";

echo dirname(dirname(__FILE__));
// C:\wamp64\www\7todo

 

بنابراین دراین پروژه BASE_PATH به این شکل در میاد:

define('BASE_PATH', dirname(dirname(__FILE__)) . '/');

 

فایل پیوست

محسن موحد

توسط

محسن موحد

6 اردیبهشت 99

3
حذف شده

با سلام

اینکه فایل های php ما از طریق مرورگر قابل دسترسی باشند یک مشکل امنیتی بزرگه که می‌تونه به راحتی کدهای مارو لو بده به خاطر همینه که ما از URL برای فراخوانی فایل هامون استفاده نکردیم، البته اینو هم بگم که بازهم فایل ها قابل دسترس خواهند بود با ترفندهایی که یکیش رو استاد آوند گفتند میشه جلوشو گرفت.

برای اینکه روی هاست فایل ها را مسیردهی کنیم باید root پروژه خودمونو تو هاست پیدا کنیم، برای مثال در سی پنل public_html/your_domain است که پوشه public_html و درون آن نام دامنه ما که پروژه ما درون آن قرار گرفته است ریشه پروژه ما است.

فایل پیوست

امیر صالحی

توسط

امیر صالحی

6 اردیبهشت 99