🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ mahdi mortezaee
قرار دادن پروژه در هاست
میثم حل شده توسط میثم

من پروژه رو در هاست قرار دادم تا اجراش کنم ولی  خطای 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 میشه چرا در هاست این اتفاق میوفته ؟

 

سلام 

مشکل از آدرس دهی‌های فایل هات آدرس دهی‌های لوکال ممکنه توی هاست به مشکل بخوره 

کد‌های 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

(دقیقا فایل اصلی پروژه استفاده شده)

mahdi mortezaee ۲۲ تیر ۱۳۹۹، ۱۱:۱۶

برای دریافت آدرس روت سایت میتونی از این استفاده کنی : 

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 هم داخل ویندوز (بک اسلش \ ) و داخل لینوکس (اسلش / ) رو برمیگردونه 

بهترین پاسخ
میثم ۲۲ تیر ۱۳۹۹، ۱۲:۳۱