Xmooka 5 Denunciar post Postado Janeiro 25, 2016 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
kelvim 11 Denunciar post Postado Janeiro 25, 2016 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
Marcos_imasters 288 Denunciar post Postado Janeiro 25, 2016 <? 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
Rogério Santana 172 Denunciar post Postado Janeiro 25, 2016 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
daausil 0 Denunciar post Postado Abril 13, 2016 XmookaComo 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
Matheus Tavares 167 Denunciar post Postado Abril 13, 2016 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