Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa Pessoal!
Bom Dia!
Estou desenvolvendo um sistema para empresa onde trabalho, o problema é, em meu localhost ele funciona normalmente, porém, quando hospedado (KINGHOST versão PHP 7.0) Ele me retorna erro de include onde "Não foi possível incluir um arquivo de classe"
Vejam: www.emtellogistica.com - Logo na index.
Abaixo a função responsável por ler e incluir o arquivo de classe requisitado
function __autoload($Class) {
$cDir = ['Conn', 'Helpers', 'Models'];
$iDir = null;
foreach ($cDir as $dirName):
if (!$iDir && file_exists(__DIR__ . "\\{$dirName}\\{$Class}.class.php") && !is_dir(__DIR__ . "\\{$dirName}\\{$Class}.class.php")):
include_once (__DIR__ . "\\{$dirName}\\{$Class}.class.php");
$iDir = true;
endif;
endforeach;
if (!$iDir):
trigger_error("Não foi possível incluir {$Class}.class.php", E_USER_ERROR);
die;
endif;
}
A princípio achei que poderia ser a constante magica __DIR__ já que o meu servidor tinha versão 5.3, mas mesmo após atualizado para a versão PHP 7 o erro persistiu.
Localmente ele funciona 100%
Agradeço demais toda e qualquer ajuda!
Valeu pessoal.
<?
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
$cDir = ['Conn', 'Helpers', 'Models'];
$iDir = null;
function my_autoload ($Class) {
global $cDir;include_once (__DIR__ . "\\{$dirName}\\{$Class}.class.php");
$iDir = true;
endif;
endforeach;trigger_error("Não foi póssivel incluir {$Class}.class.php", E_USER_ERROR);
die;
endif;
}
spl_autoload_register("my_autoload");
?>Troque as \\ por DIRECTORY_SEPARATOR
foreach ($cDir as $dirName):
if (!$iDir && file_exists(__DIR__ . DIRECTORY_SEPARATOR . $dirName . DIRECTORY_SEPARATOR . "{$Class}.class.php") && !is_dir(__DIR__ . DIRECTORY_SEPARATOR . $dirName . DIRECTORY_SEPARATOR ."{$Class}.class.php")):
include_once(__DIR__ . DIRECTORY_SEPARATOR . $dirName . DIRECTORY_SEPARATOR ."{$Class}.class.php");
$iDir = true;
endif;
endforeach;Xmooka
Como você resolveu esse problema, pois entrei no site e está funcionando.
Estou com o mesmo problema e tenho a impressão que é problema de versão.
O erro no meu está na linha:
$cDir = ['Conn', 'Helpers', 'Models'];
O erro é:
PHP Parse error: syntax error, unexpected '[' in E:\home\equicenter\Web\_app\Config.inc.php on line 28
Aguardo sua resposta.
Att.
Danilo.
Danilo, esse post é de janeiro. Evite reviver posts antigos.
Provavelmente você está utilizando uma versão do PHP inferior à 5.4, que não suporta arrays escritos da forma que você citou.
Troque aquela linha por:
$cDir = array( 'Conn', 'Helpers', 'Models' );
Se não funcionar, peço que crie um novo tópico explicando seu problema, com seu código completo.
Abraços.
Tive um problema parecido recentemente em outro servidor, depois de 3 dias batendo a cabeça descobri que alguns arquivos não tinha sido carregado no servidor, ou seja não existiam no servidor. (houve falha no upload pelo FTP)