Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Xmooka

Erro no include de arquivos

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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)

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?
ini_set( 'display_errors', 1 );
error_reporting( E_ALL | E_STRICT );
$cDir = ['Conn', 'Helpers', 'Models'];
$iDir = null;
function my_autoload ($Class) {
global $cDir;
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 póssivel incluir {$Class}.class.php", E_USER_ERROR);
die;
endif;
}
spl_autoload_register("my_autoload");

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.