قرار دادن پروژه در هاست

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

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

 

فایل پیوست

mahdi mortezaee
mahdi mortezaee

21 تیر 99

6

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

حذف شده

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

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

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

22 تیر 99

حذف شده
کاملا متوجه اشتباهم شدم
mahdi mortezaee

22 تیر 99

0
حذف شده

سلام 

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

کد های init رو قرار بده تا بتونم راهنماییت کنم و همچنین کد اینکلودی که برای خود init گذاشتی رو قرار بده .

فایل پیوست

میثم نصرتی

توسط

میثم نصرتی

21 تیر 99

0
حذف شده


آره دقیقا مشکل باید از همین باشه فراموش کرده بودم آدرس هارو اصلاح کنم ...
آدرس دهی فایل ها در پروژه به کمک ۲ ثابت که در فایل 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

توسط

mahdi mortezaee

22 تیر 99