Ir para conteúdo
    • João Batista Neto

      iMasters InterCon 2017   10-10-2017

      Ainda dá tempo de se inscrever no iMasters InterCon 2017, o maior evento dev do Brasil!  
wwwendel

Erro: Quando chamo um arquivo um dá erro, quando chamo o outro o outro dá erro

Recommended Posts

Saudações! Estou tendo problemas para chamar arquivos, quando carrego a página ele diz que diretório não foi encontrado, então corrijo o erro apontado, corrigido então, o outro arquivo dá o mesmo erro, corrigido então, o erro passa para o outro arquivo e assim segue nesse ciclo. Já tentei usar require_once, require, include, include_once, __autoload, spl_autoload_register, massssssss, nada funcionou! Give a light ! Oooh Big Oracle!

 

Fatal error: Class 'DB' not found in C:\xampp\htdocs\RegistroPonto\controller\Controller.php on line 9

 

//essa é a classe Controller.php que fica na pasta controller

<?php
function loaderClass($bancFile){
    if(file_exists("model/" . $bancFile . ".php")){
        require_once ("model/" . $bancFile . ".php");
    }
}
spl_autoload_register("loaderClass");
class Controller extends DB {
//....e continua
//========================================================
<?php
function __autoload($file){
    if(file_exists('controller/' . $file . '.php')){
        require_once ('controller/' . $file . '.php');
    }
 else {
        exit('O aquivo' . $file . 'não foi encotrado!');
    }
}
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
//........ e continua
//=========================================================

Desde já agradeço qualquer manifestação ! 

Editado por Gabriel Heming
adicionar marcação de código

Compartilhar este post


Link para o post
Compartilhar em outros sites

@wwwendel A julgar pelo seu código, você não deve estar trabalhando com namespace, certo?

Se for isso, dei uma arrumada, para você poder utilizar apenas essa função, com qualquer pasta:

Arquivo carregaClasses.php

function carregaClasses($diretorio)
{
    spl_autoload_register(function($file) use ($diretorio)
    {

        $classe = __DIR__ . DIRECTORY_SEPARATOR . $diretorio . DIRECTORY_SEPARATOR . $file . '.php';	
        $classe = str_replace('\\', '/', $classe); 

        if(!file_exists($classe)){
            throw new Exception("O arquivo $file não foi encontrado");
        }

        require_once $classe;
    });

}

E para usar:

$dir = str_replace('\\', '/', __DIR__);
require_once $dir . '/local_onde_esta_o_arquivo_carregaClasses/' . 'carregaClasses.php';
carregaClasses('controller');

E para o model basta fazer o mesmo, apenas trocando carregaClasses('controller'); para carregaClasses('model');
Assim você não precisa ficar recriando as funções

Dica que sempre dou: De uma olhada na PSR-4!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro persistiu:

 

Warning: require_once(C:\xampp\htdocs\PhpFolhaDePonto/carregaClasses/carregaClasses.php): failed to open stream: No such file or directory in C:\xampp\htdocs\PhpFolhaDePonto\index.php on line 2

Fatal error: require_once(): Failed opening required 'C:\xampp\htdocs\PhpFolhaDePonto/carregaClasses/carregaClasses.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\PhpFolhaDePonto\index.php on line 2

 

Já tentei de todas as formas, mas sempre quando eu chamo a classe Controller.php que fica na pasta controller da isso, parece que só aceita chamar a classe Controller.php apenas uma vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um atualização no código, adicionando $classe = str_replace('\\', '/', $classe);  

E você tem que pelo menos chamar o carragaClasses.php da forma correta, como esta a sua estrutura de pastas, e como você esta fazendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora


  • Próximos Eventos

  • Conteúdo Similar

    • Por viniciussmelo
      Boa tarde, gostaria de saber como faria um select que retornasse um número de registros encontrados no meu banco de dados. 
      Por exemplo: 
      $nome = vinicius;
      SELECT nome FROM historico where nome = '$nome';
      Após isso ele retornaria quantos vinicius foram encontrados no banco. 
      Por exemplo 2: 
      5 (retornou o número de registros no banco de dados, apenas para mim, não para mostrar ao usuário) 
    • Por Wanderson Moreira
      Olá
      utilizo um cogido php que me retorna 3 valores, são eles: ativo, vencido, a vencer
      porem esses valores não são inseridos no banco de dados nem nada, são variáveis de datas
       como faço pra fazer a contagem de quantos vencidos, ativos, e a vencer tem pra informar em uma outra tabela?
      quero por nessas tabelas coloridas, onde os valores atuais no momento são fictícios
       
      o código é esse 
      if ($vencimento < $dataHoje){echo 'Vencido';} elseif($vencimento <= $dataVencer){echo 'A vencer';} else{echo 'Ativo';}  
       

    • Por Gleyson Abreu
      Bom eu tenho um sistema de postagem onde tem sistema de comentário quando eu comento ta tudo ok, quando retorna os dados tambem, passa os dados certinho como id, text etc.., nele eu tenho um sistema de delete que funciona nos comentários que la já estão, mais quando eu comento algo novo e aperto no X para deletar não funciona, funciona somente quando eu atualizo a página..
      $(document).ready(function(){ $(".deleteComentario").click(function(){ var idComen = $(this).attr('data-id'); $.ajax({ type: 'post', url: 'delete_comentario.php', data: 'idComen='+idComen, cache: false, success: function(data){ $("#comentario_postado"+idComen).remove(); } }); return false; }); }); Como se fosse o sistema do facebook quando você comenta e na mesma hora pode editar e deletar etc.., mais ele só deixa deletar os novos comentários quando eu atualizo a página F5.
    • Por MatheusMS21
      Bom dia galera tudo beleza ? Estou com um enorme B.O. 
      Vamos lá:
      Quando eu coloco em um select a opção "Não Aprovada", ele chama um modal onde tem que justificar o por que não foi aprovada.
      Porém, eu preciso inserir esta justificativa na respectiva proposta, onde tem as opções de Aprovada, Não Aprovada. Aí eu preciso usar
      o id desta proposta ($row_prop['nproposta'];) para poder inserir a justificativa nela.
      Seguem os meus códigos.
       
      Acho que o select não tem necessidade de colocar pois o javascript vai chamar o <option>Não Aprovada</option> do <select>
       
      Modal:
      <div class="modal fade" id="ModalNaprov<?php echo $row_prop["nproposta"]; ?>" tabindex="-1" role="dialog" aria-labelledby="modal-organiza-label" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> <div class="blue-title"><h4>Justifique o Motivo</h4></div> </div> <div class="modal-body"> <form role="form" action="acoes/naprov.php?nproposta=<?php echo $row_prop["nproposta"]; ?>" method="GET" class="registration-form" enctype="multipart/form-data"> <input type="hidden" name="nproposta" value="<?php echo $row_prop["nproposta"]; ?>"> <div class="form-group"> <label>Justificar: </label> <textarea class="form-control" name="naprov"></textarea> </div> <div> <button type="button" class="btn btn-primary" data-dismiss="modal">Cancelar</button> <button type="submit" class="btn btn-success" name="btnNAPROV">Enviar</button> </div> </form> <div> </div> <br> </div> </div> </div> </div> Javascript para chamar este Modal pelo Select "Não aprovada".
      $('select').change(function () { if ($(this).val() == "Não Aprovada") { $('#ModalNaprov<?php echo $row_prop["nproposta"]; ?>').modal('show'); } }); PHP para inserir os dados da justificativa:
      ob_start(); include_once('../conexao.php'); if ($_GET) { $naprov = mysqli_real_escape_string($conn, $_GET['naprov']); $nproposta = mysqli_real_escape_string($conn, $_GET['nproposta']); $sql = "UPDATE propostas SET naprov = '$naprov' WHERE nproposta = '17SMS45001'"; if ($conn->query($sql)) { echo " <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Intec/listar_propostas.php?link=2'> <script type=\"text/javascript\"> alert(\"Justificativa enviada com Sucesso.\"); </script> "; }else{ echo " <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/Intec/listar_propostas.php?link=2'> <script type=\"text/javascript\"> alert(\"Erro ao enviar justificativa.\"); </script> "; } } Obrigado pela ajuda desde já =)
    • Por gibagehrke
      Bom dia pessoal, tenho que adicionar um condicional em uma consulta do PostgreSQL de um sistema PHP, no caso essa consulta vasculha tudo e informa o resultado, porém eu preciso adicionar uma condição que exclua dos resultados os processos que tenham eventos na tabela "followup" preenchidos e que também possuam o "idevento=12".
       
      $sql_completo1 ="select distinct pro.nrprocesso as processo, pe.nmpessoa as cliente, pe_di.nmpessoa as exportador, pe_tr.nmpessoa as transporterodoviario, pro.nrrefauxiliar as referencia, pro.nrconhecimento as crt, pro.nrmanifesto as mic, array_to_string(array( select ref.nrreferenciacliente from referenciacliente ref where pro.idprocesso = ref.idprocesso ), ';') as refcliente, di.nrdeclaracaoimportacao as nrdi, pro.nrexportacao as nrdi2, dde.nrdeclaracaodespacho as dde, array_to_string(array( select ddere.nrregistroexportacao from processoddere ddere, processodde dde where pro.idprocesso = ddere.idprocesso and dde.idprocessodde = ddere.idprocessodde ), ';') as re, array_to_string(array( select pdid.nrdocinstrucaodespacho from processodocinstrucaodespacho pdid where pro.idprocesso = pdid.idprocesso and pdid.iddocinstrucaodespacho=1 ),' ') as fatura, CASE WHEN pro.tpcanal='1' THEN 'Amarelo' WHEN pro.tpcanal='2' THEN 'Cinza' WHEN pro.tpcanal='3' THEN 'Vermelho' WHEN pro.tpcanal='4' THEN 'Verde' WHEN pro.tpcanal='5' THEN 'SEM CANAL' WHEN pro.tpcanal='6' THEN 'Laranja' WHEN pro.tpcanal='0' THEN 'SEM CANAL' else 'LIXO' END as canal, ci1.nmcidade as localdesembaraco, tc.nmterminalcarga as localdesembarque, ";  
×

Informação importante

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

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: