• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطای require_once
#1
با سلام
یک سرور قدیمی ابونتو داشتیم که روی آن یک cms نصب و کار می کرد
با خریداری سرور جدید تمامی پوشه های cms قبلی منتقل و کانفیگ آپاچی انجام شد ولی متاسفانه در بعضی از صفحات این خطا رخ می دهد
Warning: require_once(/ui-2.1/component/HTMLUtil.class.php): failed to open stream: No such file or directory in /var/www/html/gateway/Interim.php on line 11

Fatal error: require_once(): Failed opening required '/ui-2.1/component/HTMLUtil.class.php' (include_path='.:/usr/share/php:/etc/apache2/htdocs/html/shares:/etc/apache2/htdocs/html/languages:/etc/apache2/htdocs/html/adodb:/etc/apache2/htdocs/html/adodb/session:/etc/apache2/htdocs/html/educ/includes:/var/www/html/framework/include/classes:/var/www/html/ui-2.1') in /var/www/html/gateway/Interim.php on line 11

که پس از بررسی سرور قدیمی متوجه شدم که بعضی از پوشه ها در بخش include فایل php.ini اضافه شدند با اضافه کردن مقداری از مشکلات حل شد ولی هنوز بعضی از صفحات این مشکل را دارند .
لطفا راهنمایی بفرمایید
  پاسخ
تشکر شده توسط :
#2
/ui-2.1/component/HTMLUtil.class.php
این فایل حذف شده ظاهرا
ببینید موجوده ؟
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys phpdb
#3
(۱۳۹۶ آبان ۱۶, ۱۰:۱۵ ب.ظ)Reza نوشته: /ui-2.1/component/HTMLUtil.class.php
این فایل حذف شده ظاهرا
ببینید موجوده ؟

سلام بله ؛ تمامی پوشه ها در سر جای خود موجود هستند و حذف نشده اند ولی برنامه مدام به بعضی فایل ها گیر می دهد یکسری را در فایل php.ini با include کردن درست شد ولی بقیه با include هم درست نمیشه

فکر کنم خطا بابت این تکه کد باشه که آدرس دهی انجام می شه :
define('ROOT_PATH',str_repeat("../",substr_count($_SERVER['SCRIPT_NAME'],'/')-2));

فایل های با پسوند .inc چه نوع فایلهایی هستند و کابردشان چیست ؟
  پاسخ
تشکر شده توسط :
#4
مشکل از تابع autoload میتونه باشه
http://php.net/manual/en/function.autoload.php

ورژن پی اچ پی چنده ؟
نقل قول: فایل های با پسوند .inc چه نوع فایلهایی هستند و کابردشان چیست ؟
قرار دادی هست اسم فایلها .
معمولا اگه اینطور اسمی باشن باید اول پروژه اضافه بشن
مثلا
config.inc.php

یعنی حتما includeشده باشن .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : phpdb ayoubsys
#5
(۱۳۹۶ آبان ۱۷, ۱۱:۲۶ ب.ظ)Reza نوشته: مشکل از تابع autoload میتونه باشه
http://php.net/manual/en/function.autoload.php

ورژن پی اچ پی چنده ؟
نقل قول: فایل های با پسوند .inc چه نوع فایلهایی هستند و کابردشان چیست ؟
قرار دادی هست اسم فایلها .
معمولا اگه اینطور اسمی باشن باید اول پروژه اضافه بشن
مثلا
config.inc.php

یعنی حتما includeشده باشن .

ابتدای فایل های include شده اند ولی جهت ادرس دهی پوشه ها راپیدا نمی کند در صورتیکه پوشه ها و فایل ها موجود هستند

ورژن php و سیستم عامل قبلی :
PHP Version 5.3.5-1ubuntu7.11

ورژن سیستم جدید:
PHP Version 7.1.11-1+ubuntu17.04.1+deb.sury.org+1
  پاسخ
تشکر شده توسط :
#6
همونه پس
از قاعده خاصی برای namespace استفاده کردید ؟
پیشنهاد میکنم تغییر بدید به ورژن 5.6
یحتمل مشکلات دیگه ای با 7 خواهید داشت
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#7
(۱۳۹۶ آبان ۱۸, ۰۵:۴۸ ب.ظ)Reza نوشته: همونه پس
از قاعده خاصی برای namespace استفاده کردید ؟
پیشنهاد میکنم تغییر بدید به ورژن 5.6
یحتمل مشکلات دیگه ای با 7 خواهید داشت

این سورس کد آماده بود فقط به سرور جدید منتقل شده است .
چطور می توانم php 7 را به php5 داونگرید کنم ؟
  پاسخ
تشکر شده توسط :
#8
نقل قول: چطور می توانم php 7 را به php5 داونگرید کنم ؟
بستگی به مدیر سرورتون داره
البته اگر از هاست اشتراکی استفاده میکنید غالبا یک قابلیت انتخاب ورژن پی اچ پی به کنترل پنلهاشون اضافه کردن
در خصوص این مشکلتون بهتره با مدیر سرورتون یا جایی که ازش هاست تهیه کردید تماس بگیرید
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : phpdb ayoubsys
#9
دوستان گرامی این تکه کد را می شود توضیح دهید به نظرمن اشکال در این تکه کد هست که در سرور جدید درست لود نمی شود و نمی تواند به پوشه ها دسترسی داشته باشد :

کد:
<?php


require_once 'FrameworkDB.class.php';
define('ROOT_PATH',str_repeat("../",substr_count($_SERVER['SCRIPT_NAME'],'/')-2));
define('TEMPLATE',"gateway/templates/".(isset($_COOKIE["tem"]) ? $_COOKIE["tem"]  : "default")."/");

require_once 'dbclass.inc.php';
require_once 'pdodb.class.php';
class config{
  
  public static $ui_version = '2.1';
  public static $language = 'fa';
  public static $display_error = true;
  public static $root_path = ROOT_PATH;
  
  public static $js_path = "../ui-2.1/js/";
  public static $css_path = "../ui-2.1/css/";
  public static $ui_path = "../ui-2.1/";
  public static $ui_components_path = "/ui-2.1/component/";
  public static $framework_path = "framework/include/classes/";
  public static $educ_path = "educ/includes/";
  public static $start_page = 'html/gateway/Authenticate.php';
  public static $maintenance_fault = false;
    public static $temp_path = TEMPLATE;
  /*  login  security  configuration  */
  public static $check_password_strength="mediocre";  //  values ( weak , mediocre , strong)
  public static $check_password_expiration=true;
  public static $expiration_day=10;  
  
  /*
  performance  configurations
  */
  public static $show_last_login=true;
  public static $log_enter_and_exit=true;
  /*  
  ldap  configuration
  */
  public static $ldap_authenicate = false;
  public static $ldap_update = true;  
}
?>

این بخش آدرس دهی پوشه روت هست چگونه آدرس دهی می شود :
public static $root_path = ROOT_PATH;
  پاسخ
تشکر شده توسط :
#10
به جای
کد:
define('ROOT_PATH',str_repeat("../",substr_count($_SERVER['SCRIPT_NAME'],'/')-2));
بنویس
کد پی‌اچ‌پی:
define('ROOT_PATH',__DIR__); 
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان