Неустранимая ошибка: невозможно создать экземпляр несуществующего класса: updatescontroller в строке 97 - PullRequest
0 голосов
/ 22 февраля 2012
<?php

/** Check if environment is development and display errors **/

function setReporting() {
if (DEVELOPMENT_ENVIRONMENT == true) {
   error_reporting(E_ALL);
   ini_set('display_errors','On');
} else {
error_reporting(E_ALL);
ini_set('display_errors','Off');
ini_set('log_errors', 'On');
ini_set('error_log', ROOT.DS.'tmp'.DS.'logs'.DS.'error.log');
   }
}

/** Check for Magic Quotes and remove them **/

function stripSlashesDeep($value) {
$value = is_array($value) ? array_map('stripSlashesDeep', $value) :            stripslashes($value);
return $value;
 }

function removeMagicQuotes() {
if ( get_magic_quotes_gpc() ) {
$_GET    = stripSlashesDeep($_GET   );
$_POST   = stripSlashesDeep($_POST  );
$_COOKIE = stripSlashesDeep($_COOKIE);
  }
}

/** Check register globals and remove them **/

/*function unregisterGlobals() {
if (ini_get('register_globals')) {
  $array = array('_SESSION', '_POST', '_GET', '_COOKIE', '_REQUEST', '_SERVER', '_ENV',      '_FILES');
foreach ($array as $value) {
   foreach ($GLOBALS[$value] as $key => $var) {
  if ($var === $GLOBALS[$key]) {
   unset($GLOBALS[$key]);
    }
   }
  }
 }
}*/
 /** Routing **/

function routeURL($url) {
global $routing;

foreach ( $routing as $pattern => $result ) {
        if ( preg_match( $pattern, $url ) ) {
            return preg_replace( $pattern, $result, $url );
        }
}

return ($url);
}

/** Main Call Function **/

function callHook() {
global $url;
global $default;
global $sent;
$queryString = array();

if (!isset($url)) {
    $controller = $default['controller'];
    $action = $default['action'];
} else {
    $url = routeURL($url);
    $urlArray = array();
    $urlArray = explode("/",$url);
    $controller = $urlArray[0];
    array_shift($urlArray);
    if (isset($urlArray[0])) {
        $action = $urlArray[0];
        array_shift($urlArray);
    } else {
        $action = 'view'; // Default Action
    }
    $queryString = $urlArray;
    if(isset($queryString[0]))
    $sent=$queryString[0];
    //echo $sent;
}

$controllerName = $controller;
$controller = ucwords($controller);
$model = rtrim($controller, 's');
$controller .= 'Controller';
//echo($model);
//echo($controllerName);
//echo($action);
    //echo phpinfo();
**$dispatch = new $controller($model,$controllerName,$action);**

if ((int)method_exists($controller, $action)) {
    //call_user_func_array(array($dispatch,"beforeAction"),$queryString);
    call_user_func_array(array($dispatch,$action),$queryString);
    //call_user_func_array(array($dispatch,"afterAction"),$queryString);
} else {
    /* Error Generation Code Here */
}
}

/** Autoload any classes that are required **/

function __autoload($className) {

if (file_exists(ROOT . DS . 'library' . DS . strtolower($className) . '.class.php')) {
    include_once(ROOT . DS . 'library' . DS . strtolower($className) . '.class.php');
} else if (file_exists(ROOT . DS . 'application' . DS . 'controller' . DS . strtolower($className) . '.php')) {
    include_once(ROOT . DS . 'application' . DS . 'controller' . DS . strtolower($className) . '.php');
} else if (file_exists(ROOT . DS . 'application' . DS . 'model' . DS . strtolower($className) . '.php')) {
    include_once(ROOT . DS . 'application' . DS . 'model' . DS . strtolower($className) . '.php');
} else {
    /* Error Generation Code Here */
}
}

setReporting();
removeMagicQuotes();
//unregisterGlobals();
callHook();


*****//

Когда я загружал этот файл на сервер, он показывает ошибку

Fatal error: Cannot instantiate non-existent class:updatescontroller on line 97

, указывающую на строку

 $dispatch =new $controller($model,$controllerName,$action);

Пожалуйста, помогите мне определить, что идет не так.

Кроме того, тот же сервер также не позволяет мне запускать функцию unregisterGlobals() и показывает «слишком много ошибок для неопределенного индекса».

Весь проект очень хорошо работает на моем сервере localhost.

1 Ответ

0 голосов
/ 22 февраля 2012

Из сообщения об ошибке, я полагаю, вам не хватает включенного файла, который объявляет класс updatescontroller.Может быть, вам нужно загрузить весь проект?

Также кажется, что ваша локальная конфигурация PHP не соответствует удаленной конфигурации.Попробуйте сопоставить локальный php.ini с удаленным сервером, чтобы сделать локальное тестирование более реалистичным.

Если это вообще возможно, попытайтесь сопоставить версию PHP на локальном сервере с удаленным сервером.Между версиями могут быть тонкие различия.

...