【问题标题】:Blank Page At Opencart Admin SideOpencart 管理员端的空白页
【发布时间】:2015-03-22 06:56:26
【问题描述】:

我已经在 locahost 设置了 opencart 商店,然后我将所有内容上传到在线托管,并更改了 opencart 根文件夹和 Admin 文件夹中 config.php 文件中的路径。

前端工作正常,但管理端不工作。它只是显示一个空白的白页。

我调试我的 Index.php 文件,方法是在某些地方按回显编号放置回显,以检查它是否正在执行到该点。

我试图解决这个错误。我更新了此处给出的文件代码。一个变化是我的日志最近产生了这个错误 -

PHP Fatal error:  Call to a member function isLogged() on a non-object in /var/www/html/home/catalog/model/catalog/product.php on line 8

我还为我的 product.php 提供代码

所以它在下面的这一行给出了错误 - $controller->dispatch($action, new Action('error/not_found'));

我还包含了我的 Index.php 文件。

我在管理文件夹中的 Config.php 页面:-

<?php


define('HTTP_SERVER', 'http://domain/home/admin/');
define('HTTP_CATALOG', 'http://domain/home/');

// HTTPS
define('HTTPS_SERVER', 'http://domain/home/admin/');
define('HTTPS_CATALOG', 'http://domain/home/');
echo '1';

// DIR
define('DIR_APPLICATION', '/var/www/html/home/catalog/');
define('DIR_SYSTEM', '/var/www/html/home/system/');
define('DIR_DATABASE', '/var/www/html/home/system/database/');
define('DIR_LANGUAGE', '/var/www/html/home/admin/language/');
define('DIR_TEMPLATE', '/var/www/html/home/admin/view/template/');
define('DIR_CONFIG', '/var/www/html/home/system/config/');
define('DIR_IMAGE', '/var/www/html/home/image/');
define('DIR_CACHE', '/var/www/html/home/system/cache/');
define('DIR_DOWNLOAD', '/var/www/html/home/download/');
define('DIR_LOGS', '/var/www/html/home/system/logs/');
define('DIR_CATALOG', '/var/www/html/home/catalog/');
echo '2';
// DB
define('DB_DRIVER', 'mysql');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'databasename');
define('DB_PREFIX', 'oc_');
echo '3';


?>

索引 .php 代码

<?php 

      error_reporting(E_ERROR | E_WARNING | E_PARSE);

?>

<?php
// Version
define('VERSION', '1.5.6');

// Configuration
if (file_exists('config.php')) {
    require_once('config.php');
}  
echo '4';
// Install
if (!defined('DIR_APPLICATION')) {
    header('Location: ../install/index.php');
    exit;
}

// Startup
require_once(DIR_SYSTEM . 'startup.php');


echo '5';
// Application Classes
require_once(DIR_SYSTEM . 'library/currency.php');
require_once(DIR_SYSTEM . 'library/user.php');
require_once(DIR_SYSTEM . 'library/weight.php');
require_once(DIR_SYSTEM . 'library/length.php');

echo '6';
// Registry
$registry = new Registry();
echo '7';
// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);
echo '7';
// Config
$config = new Config();
$registry->set('config', $config);
echo '8';
// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);
        echo '9';
// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0'");
 echo '10';
foreach ($query->rows as $setting) {
    if (!$setting['serialized']) {
        $config->set($setting['key'], $setting['value']);
    } else {
        $config->set($setting['key'], unserialize($setting['value']));
    }
}
echo '11';
// Url
$url = new Url(HTTP_SERVER, $config->get('config_secure') ? HTTPS_SERVER : HTTP_SERVER);    
$registry->set('url', $url);
        echo '12';
// Log 
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);
echo '13';
function error_handler($errno, $errstr, $errfile, $errline) {
    global $log, $config;

    switch ($errno) {
        case E_NOTICE:
        case E_USER_NOTICE:
            $error = 'Notice';
            break;
        case E_WARNING:
        case E_USER_WARNING:
            $error = 'Warning';
            break;
        case E_ERROR:
        case E_USER_ERROR:
            $error = 'Fatal Error';
            break;
        default:
            $error = 'Unknown';
            break;
    }

    if ($config->get('config_error_display')) {
        echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
    }

    if ($config->get('config_error_log')) {
        $log->write('PHP ' . $error . ':  ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
    }

    return true;
}
echo '14';
// Error Handler
set_error_handler('error_handler');

// Request
$request = new Request();
$registry->set('request', $request);

// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$registry->set('response', $response); 

// Cache
$cache = new Cache();
$registry->set('cache', $cache); 

// Session
$session = new Session();
$registry->set('session', $session); 

// Language
$languages = array();

$query = $db->query("SELECT * FROM `" . DB_PREFIX . "language`"); 

foreach ($query->rows as $result) {
    $languages[$result['code']] = $result;
}

$config->set('config_language_id', $languages[$config->get('config_admin_language')]['language_id']);

// Language 
$language = new Language($languages[$config->get('config_admin_language')]['directory']);
$language->load($languages[$config->get('config_admin_language')]['filename']); 
$registry->set('language', $language);
echo '15';
// Document
$registry->set('document', new Document());         

// Currency
$registry->set('currency', new Currency($registry));        

// Weight
$registry->set('weight', new Weight($registry));

// Length
$registry->set('length', new Length($registry));

// User
$registry->set('user', new User($registry));

//OpenBay Pro
$registry->set('openbay', new Openbay($registry));
$registry->set('play', new Play($registry));
$registry->set('ebay', new Ebay($registry));
$registry->set('amazon', new Amazon($registry));
$registry->set('amazonus', new Amazonus($registry));

// Front Controller
$controller = new Front($registry);
echo '16';
// Login
$controller->addPreAction(new Action('common/home/login'));
echo '17';
// Permission
$controller->addPreAction(new Action('common/home/permission'));
echo '18';
// Router

if (isset($request->get['route'])) {
    $action = new Action($request->get['route']);
} else {
    $action = new Action('common/home');
}
echo '19';

// Dispatch
$controller->dispatch($action, new Action('error/not_found'));

echo '20';
// Output
$response->output();
echo '21';
?>

Product.php 中的第 8 行到第 13 行出现此错误

if ($this->customer->isLogged()) {
            $customer_group_id = $this->customer->getCustomerGroupId();
        } else {
            $customer_group_id = $this->config->get('config_customer_group_id');
        }   

【问题讨论】:

  • 这个白色的空白屏幕只出现在我的 opencart 网站的管理员端。我以前使用过 opencart 很多次。我正在使用 Digital Ocean VPS 这件事是否会造成问题我第一次使用它并且第一次遇到这个错误
  • 您发布的错误与商店前端有关,因此与管理员中的空白屏幕无关。确保清除系统/库/缓存文件夹。如果您使用的是 vQmod,请确保清除 vqcache 文件夹。如果问题仍然存在,您需要检查 apache 网络服务器错误日志以获得答案。
  • 另外,请确保您的系统/库文件夹完好无损且没有丢失任何文件。
  • 在响应系统/库文件夹时,我会说它在本地主机上工作正常,但为了确认,我现在正在检查,我还将检查系统/库/缓存文件夹作为对网络服务器日志的响应,我检查了网络服务器日志和我到达那里的最后一个错误已经发布在我的问题中。你可以检查那里有一个 php 错误日志条目,我在我的问题的上部放置了

标签: php mysql opencart


【解决方案1】:

您已经为商店创建了一个默认客户组,在您添加该组的设置中。

管理员system-&gt;setting-&gt;option

帐户部分。

【讨论】:

  • 你能告诉我这东西需要什么吗?让我知道这样做的意义何在
  • 首先进入管理面板中的销售菜单,会找到客户和客户组,我们必须创建一个默认的客户组。之后去设置那里你会发现一个选项标签,在帐户部分添加默认客户组然后保存它。希望它会解决你的问题
【解决方案2】:

对我来说,问题在于DIR_APPLICATION 常量缺少斜杠。确保所有常量都使用斜杠,这是/admin/config.php 的动态设置:

// DIR
define('DIR_APPLICATION', __DIR__ . '/');
define('DIR_SYSTEM', dirname(__DIR__) . '/system/');
define('DIR_LANGUAGE', __DIR__ . '/language/');
define('DIR_TEMPLATE', __DIR__ . '/view/template/');
define('DIR_CONFIG', dirname(__DIR__) . '/system/config/');
define('DIR_IMAGE', dirname(__DIR__) . '/image/');
define('DIR_CACHE', dirname(__DIR__) . '/system/cache/');
define('DIR_DOWNLOAD', dirname(__DIR__) . '/system/download/');
define('DIR_UPLOAD', dirname(__DIR__) . '/system/upload/');
define('DIR_LOGS', dirname(__DIR__) . '/system/logs/');
define('DIR_MODIFICATION', dirname(__DIR__) . '/system/modification/');
define('DIR_CATALOG', dirname(__DIR__) . '/catalog/');

【讨论】:

    【解决方案3】:

    尝试更改文件和文件夹权限。 php 和 htaccess 文件应该是 644 文件夹应该是 755。

    【讨论】:

      猜你喜欢
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 2014-04-06
      • 2018-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多