Ir para conteúdo

POWERED BY:

Arquivado

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

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

×

Informação importante

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