2012-02-22 8 views
0
<?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(); 


*****// 

に私は、サーバー上でこのファイルをアップロードするとき、それはライン致命的なエラー:存在しないクラスをインスタンス化できません:updatescontrollerをライン97

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

を指してエラー

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

を示しています何がうまくいかないのか判断してください。

また、同じサーバーでは、unregisterGlobals()関数を実行して「未定義インデックスのエラーが多すぎます」と表示されません。

完全なプロジェクトは、自分のlocalhostサーバーでうまく動作しています。

+0

ローカルホストとデプロイメントサーバでは、どのPHPバージョンを実行していますか? –

答えて

0

エラーメッセージから、updatescontrollerクラスを宣言しているインクルードファイルがありません。プロジェクト全体をアップロードする必要があるかもしれませんか?

あなたのローカルPHP設定がリモート設定と一致していないようです。ローカルのテストをより現実的にするために、ローカルのphp.iniをリモートサーバと照合してみてください。

可能であれば、ローカルサーバーのPHPバージョンとリモートサーバーを照合してください。バージョン間に微妙な違いがあります。

関連する問題