Ir para conteúdo
lordstarlight

Include executa tarefa mesmo sem ser chamado

Recommended Posts

Olá pessoal,

 

Tenho uma index que mostra os includes conforme o que é clicado.

Ex:

 

}elseif($_GET["pg"] == 'contato'){
  include("contato.php");
  }elseif($_GET["pg"] == 'cadastrese'){
  include("cadastrese.php");
  }elseif($_GET["pg"] == 'nofound'){
  include("404.php");

 

Na página de erro tenho um código para enviar um email me informando que alguém acessou uma página inexistente.

 

Até aí tudo bem,

mas o problema é que mesmo sendo escolhido outra página sem ser a de erro. os emails são disparados.

 

Porque isto acontece? 

É como se ele fizesse a ação da página de erro mesmo sem ser chamada.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, pode nos mostrar o que esta no arquivo 404?

Se garantiu que o trecho de código responsável por disparar o email só esta neste arquivo 404?

Tenta usar o include_once como experimento, vai que né.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A página de erro (404.php) tem um script phpmailer que envia email me infomando do erro.

Ele pega a url e envia para mim informando o que o usuário digitou.

Só que mesmo sem exibir esta página de erro ele envia o email, mesmo acessando qualquer página.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 23/07/2019 at 10:01, lordstarlight disse:

A página de erro (404.php) tem um script phpmailer que envia email me infomando do erro.

Ele pega a url e envia para mim informando o que o usuário digitou.

Só que mesmo sem exibir esta página de erro ele envia o email, mesmo acessando qualquer página.

 

De uma revisada nos códigos. Porque condicional só é válida quando entra em sua condição.

Pode ser que esteja executando o código em outro local.

 

Verifique também os fechamentos de laços pode ser que uma condicional esteja sendo executada dentro de outra assim executando o código que não era para ser executado.

Sugiro que faça uma depuração/revisão em todos arquivos envolvidos.

 

Uso dos blocos try são mais eficientes pra manipulação de dados aleatórios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lordstarlight

Experimenta usar o código abaixo e poste o resultado.

 

} ELSE {

    echo $_GET['pg'];
    IF($_GET['pg'] == "contato"){
        include("contato.php");

        exit();

    } ELSE {
        IF($_GET['pg'] == "cadastrese"){
            include("cadastrese.php");

            exit();

        } ELSE {
            IF($_GET['pg'] == "nofound"){
                include("404.php");

                exit();

            }
        }
    }
}

Acredito que deva funcionar.

 

Espero ter ajudado

 

Att.

Felipe Coutinho

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

×

Informação importante

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