2014-02-12 5 views
2

что не так с этой ошибкой, я не получаю ее ... она действительна работает, когда я подключен к localhost, но когда я запускаю ее в свободном домене, я получаю эту ошибку: Ошибка анализа : ошибка синтаксиса, неожиданный 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(), но, как вы сказали, что используете PHP5.2 на своем веб-сервере.

К сожалению, PHP < 5.3 не поддерживает анонимные функции. Вам нужно написать «регулярную» функцию:

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

spl_autoload_register('my_autoload'); 

Это будет работать и на PHP> = 5.3.

+0

лучше, если я ищу новый домен, который использует новую версию php cuz после того, как я исправил эту ошибку, я получу новую и т. Д. – lenart95

+0

Излишне говорить: Да! :) PHP 5.2 тихий старый. Прежде чем изменять свой хостинг-контракт, вы можете спросить их, поддерживают ли они php> 5.2. В основном они это делают, но вам нужно обновиться (чтобы не сломать ничего) – hek2mgl

Смежные вопросы