2014-02-12 59 views
2

這個錯誤有什麼問題,我沒有得到它...它實際上工作時,我連接到本地,但是當我運行它在免費域我得到這個錯誤:解析錯誤:語法錯誤,意想不到的T_FUNCTION,在/home/a7812073/public_html/core/init.php期待「)」第21行我插入MySQL服務器的正確信息解析錯誤:語法錯誤,意外的T_FUNCTION,

<?php 
session_start(); 

$GLOBALS ['config'] = array(
    'mysql' => array(
     'host' => '127.0.0.1', 
     'username' => 'root', 
     'password' => '', 
     'db' => 'lr' 
    ), 
    'remember' => array(
     'cookie_name' => 'hash', 
     'cookie_expiry' => 604800 
    ), 
    'session' => array(
     'session_name' => 'user', 
     'token_name' => 'token' 
    ) 
); 

spl_autoload_register(function($class) { 
    require_once 'classes/' . $class . '.php'; 

}); 

require_once 'functions/sanitize.php'; 
if(Cookie::exists(Config::get('remember/cookie_name')) && !Session::exists(Config::get('session/session_name'))) { 
    $hash = Cookie::get(Config::get('remember/cookie_name')); 
    $hashCheck = DB::getInstance()->get('users_session', array('hash', '=', $hash)); 
    if($hashCheck->count()) { 
     $user = new User($hashCheck->first()->user_id); 
     $user->login(); 
    } 
} 
?> 
+2

您在生產中使用了哪個版本的PHP?我敢打賭它比本地版本要舊。 –

+6

聽起來像你有PHP <5.3。像傳遞給'spl_autoload_register()'的匿名函數是5.3+ –

+1

@MichaelBerkowski是正確的。應該把它放在答案中。如果您想使用匿名功能,請檢查您的版本並升級。 –

回答

5

的問題是,你正在嘗試使用spl_autoload_register()註冊匿名函數,但正如您所說的,您正在Web服務器上使用PHP5.2。

不幸的是PHP < 5.3不支持匿名功能。您需要編寫「常規」功能:

function my_autoload($class) { 
    require_once 'classes/' . $class . '.php'; 
} 

spl_autoload_register('my_autoload'); 

這也適用於PHP> = 5.3。

+0

是否更好,如果我尋找一個新的領域,使用新的PHP版本因爲我修復這個錯誤後,我得到新的等.. – lenart95

+0

不用說:是的! :) PHP 5.2很安靜。在您更改託管合同之前,您可能會問他們是否已經支持php> 5.2。他們大部分都是這樣做的,但這取決於你升級(爲了避免破壞任何東西) – hek2mgl

相關問題