من پروژه رو در هاست قرار دادم تا اجراش کنم ولی خطای fatal زیر رو میده در حالی که در سیستم local خودم به درستی کار میکنه پروژه !!!!
Fatal error: Call to undefined function diePage() in /home/lkonir/domains/owjweb.ir/public_html/todo2/bootstrap/init.php on line 12
مشخصه که مشکل در parse کردن تابع diePage هستش که در فایل helpers.php تعریف شده و در فایل init.php پروژه ازش استفاده شده ولی در لوکال به درستی parse میشه چرا در هاست این اتفاق میوفته ؟
برای دریافت آدرس روت سایت میتونی از این استفاده کنی :
define("ROOT_PATH",dirname(__DIR__));
و در ضمن برای اینکه آدرس سایت رو قرار بدی بهتر اینه که آدرس دامین رو وارد کنی.
تابع dirname نام دایرکتوری از یک مسیری که شما به عنوان ورودی بهش میدید بر میگردونه
و ثابت __DIR__ آدرس فایل جاری رو بر میگردونه
با استفاده از اینها میتونی هر نقطه از پروژه بصورت داینامیک آدرس دهی کنی
من برای پروژه های خودم از این مدل ثابت ها استفاده میکنم :
define("DS",DIRECTORY_SEPARATOR);
define("ROOT_PATH",dirname(__DIR__));
define("URL","7learn.ac");
define("APP_PATH",ROOT_PATH.DS."App");
define("VIEW_PATH",ROOT_PATH.DS."resource".DS."views".DS);
define("RESOURCE_PATH",ROOT_PATH.DS."resource".DS);
define("PUB_PATH",DS."public".DS);
در مورد تابع DIRECTORY_SEPARATOR هم داخل ویندوز (بک اسلش \ ) و داخل لینوکس (اسلش / ) رو برمیگردونه
سلام
مشکل از آدرس دهی های فایل هات آدرس دهی های لوکال ممکنه توی هاست به مشکل بخوره
کد های init رو قرار بده تا بتونم راهنماییت کنم و همچنین کد اینکلودی که برای خود init گذاشتی رو قرار بده .
آره دقیقا مشکل باید از همین باشه فراموش کرده بودم آدرس هارو اصلاح کنم ...
آدرس دهی فایل ها در پروژه به کمک ۲ ثابت که در فایل constants.php تعریف شده انجام میشه که از طریق زیر ثابت ها رو داینامیک کردم که نیاز به دستی وارد کردن دیگه نباشه مطابق زیر :
//فایل اصلی پروژه :
define('BASE_URL','http://localhost/7Learn.php/7Todo/');
define('BASE_PATH','C:/xampp/htdocs/7Learn.php/7Todo/');
//داینامیک شده :
define('BASE_URL','http://'.$_SERVER["SERVER_NAME"].'/7ToDo/');
define('BASE_PATH', $_SERVER["DOCUMENT_ROOT"].'/7Todo/');
الان در لوکال به درستی کار مکینه ولی در هاست باز مشکل داره که بخاطر $_SERVER["DOCUMENT_ROOT"] باید باشه قطعا چون در لوکال مقدار زیر رو برمیگردونه که به درستی فایل ها include میشند :
"E:/xampp/htdocs/webmaster/۷learn.php"
ولی در هاست مقدار زیر رو برمیگردونه که مشکل داره :
/home/lkonir/domains/owjweb.ir/public_html
(دقیقا فایل اصلی پروژه استفاده شده)