0
I have a problem with my code. I have a page that has a modal form that opens by clicking a button in the header menu (which is the same on all pages of the site and is added to the pages via PHP).
I send the form and so far so good, it goes to my email. Only when I press F5 to refresh the page, the form is sent again. I am sending the form directly from html to PHP. However, I have tried using Javascript/jQuery to send this message and the error persists.
I’ll paste the code here so you can see if you can help me.
<!-- HEADER DO CABEÇALHO -->
<?php
require_once('destino-contato.php'); //CHAMANDO O ARQUIVO DESTINO.PHP QUE CONTÉM O ENVIO DO FORMULÁRIO E DO ARQUIVO ANEXADO NO FORMULÁRIO
?>
<header class="row" id="cabecalho">
<div class="row hidden-xs hidden-sm" id="cabecalho-superior">
<div class="col-sm-12 col-md-12 col-lg-10 col-lg-offset-1" id="cabecalho-superior-acerto">
<div class="col-sm-4 col-md-4 col-lg-5" id="div-redes">
<a href="https://www.facebook.com/jcacontadores/" target="blank"><img src="_imagens/icones/footer_redesFace.png"></a>
<a href="https://www.instagram.com/jcacontadores/" target="blank"><img src="_imagens/icones/footer_redesInsta.png"></a>
<a href="https://www.linkedin.com/in/jca-contadores-406/" target="blank"><img src="_imagens/icones/footer_redesLink.png"></a>
<a href="https://www.youtube.com/channel/UCLb6KnKGdjKh-usDWdZ93yg?view_as=subscriber" target="blank"><img src="_imagens/icones/footer_redesYouTube.png"></a>
</div>
<div class="col-sm-10 col-md-8 col-lg-7" id="div-menu">
<ul class="" id="ul-cabecalho-superior-direita">
<li><a href="https://encurtador.com.br/gOPZ6" target="_blank"><img src="_imagens/icones/icone-zap.png"> Whatsapp </a></li>
<li><a href="mailto:[email protected]"><img src="_imagens/icones/icone-email.png"> [email protected]</a></li>
<li><a class="estilo-botoes" href="#" data-toggle="modal" data-target="#modal-contato"><button class="btn btn-info btn-sm" style="font-family: Franklin Gothic; font-size: 100%">Fale com um Especialista</button></a></li>
</ul>
</div>
</div>
</div>
<!-- ÁREA DOS MENUS SUPERIORES -->
<nav class="hidden-xs hidden-sm" id="nav-principal">
<div class="visible-xs col-xs-12">
<a href="index.php"><img src="_imagens/logo-216x93.png" style="width:20%"></a>
</div>
<div class="col-xs-12 col-md-10 col-md-offset-1 col-lg-10 col-lg-offset-1" id="acerto-margin-menu-movel">
<div class="hidden-xs">
<a href="index.php"><img src="_imagens/logo-216x93.png"></a>
</div>
<ul id="menu-desktop">
<li><a href="area-cliente.php" target="_blank"><button class="btn btn-primary btn-sm" style="margin-right: 0.5% font-family: Franklin Gothic; font-size: 90%" id="bot-area-cliente"><span class="glyphicon glyphicon-lock"></span>  ÁREA DO CLIENTE</button></a></li>
</ul>
<ul id="menu-desktop">
<li class="li-redes-clientes" id="li-redes-clientes-home"><a class="a-menu" href="index.php" style="font-weight: bold;">HOME</a></li>
<li class="li-redes-clientes" id="li-redes-clientes-sobre"><a class="a-menu" href="quemsomos.php" style="font-weight: bold; cursor:pointer" id="botao-quemsomos">QUEM SOMOS</a></li>
<li class="li-redes-clientes" id="li-redes-clientes-servicos" role="presentation" class="dropdown li-menu">
<a class="dropdown-toggle a-menu" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" style="font-weight: bold;">
SERVIÇOS<span class="caret"></span>
</a>
<ul class="dropdown-menu" id="submenu-servicos">
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-fiscal.php">INTELIGÊNCIA FISCAL E TRIBUTÁRIA</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-departamento-pessoal.php">DEPARTAMENTO PESSOAL</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-contabilidade.php">SERVIÇOS CONTÁBEIS</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-auditoria.php">AUDITORIA</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-consultoria.php">CONSULTORIA</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-incentivos-fiscais.php">BENEFÍCIOS FISCAIS</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-area-societaria-legalizacao.php">LEGALIZAÇÃO DE EMPRESAS</a></li>
<li class="li-submenu-servicos"><a class="a-submenu-servicos" href="servicos-analise-de-produtos.php">ANÁLISE CADASTRAL DE PRODUTOS</a></li>
</ul>
</li>
<li class="li-redes-clientes" id="li-redes-clientes-carreiras" role="presentation" class="dropdown li-menu">
<a class="dropdown-toggle a-menu" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" style="font-weight: bold;">
CARREIRAS<span class="caret"></span>
</a>
<ul class="dropdown-menu" id="submenu-carreiras">
<li class="li-submenu-carreiras"><a class="a-submenu-carreiras" href="contato-despertando.php">PROGRAMA DESPERTANDO TALENTOS</a></li>
<li class="li-submenu-carreiras"><a class="a-submenu-carreiras" href="contato-profissionais.php">PROGRAMA PROFISSIONAIS EXPERIENTES</a></li>
</ul>
</li>
<li class="li-redes-clientes" id="li-redes-clientes-blog"><a class="a-menu" href="https://jcasistemas.info/" target="blank" style="font-weight: bold;">BLOG</a></li>
<li class="li-redes-clientes" id="li-redes-clientes-contato"><a class="a-menu" href="#" data-toggle="modal" data-target="#modal-contato" style="font-weight: bold;">CONTATO</a></li>
</ul>
</div>
</nav>
<!------------ MENU MÓVEL -------------->
<nav class="navbar navbar-default navbar-fixed-top hidden-md hidden-lg" id="nav-movel">
<!--------- DIV DAS REDES SOCIAIS ----------->
<div class="row visible-xs visible-sm" id="cabecalho-superior-movel">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12" id="cabecalho-superior-acerto">
<a href="https://www.facebook.com/jcacontadores/" target="blank"><img src="_imagens/icones/footer_redesFace.png"></a>
<a href="https://www.instagram.com/jcacontadores/" target="blank"><img src="_imagens/icones/footer_redesInsta.png"></a>
<a href="https://www.linkedin.com/in/jca-contadores-406/" target="blank"><img src="_imagens/icones/footer_redesLink.png"></a>
<a href="https://www.youtube.com/channel/UCLb6KnKGdjKh-usDWdZ93yg?view_as=subscriber" target="blank"><img src="_imagens/icones/footer_redesYouTube.png"></a>
<a href="https://encurtador.com.br/gOPZ6" target="_blank"><img src="_imagens/icones/icone-zap.png"></a>
<a href="mailto:[email protected]"><img src="_imagens/icones/icone-email.png"></a>
<a href="#" data-toggle="modal" data-target="#modal-contato"><button class="btn btn-info btn-sm">Fale com Especialista</button></a>
</div>
</div>
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#movelmenu" arial-expanded="false">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="index.php" class="navbar-brand">
<img src="_imagens/logo-216x93.png" class="logo-menu-movel">
</a>
</div>
<div class="collapse navbar-collapse" id="movelmenu">
<ul class="nav navbar-nav" id="ul-movel">
<li class="li-menu"><a href="index.php">HOME</a></li>
<li role="presentation" class="dropdown li-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
SOBRE<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li class="li-submenu" style="border-bottom: none; margin-bottom:-5px"><a href="quemsomos.php">QUEM SOMOS</a></li>
</ul>
</li>
<li role="presentation" class="dropdown li-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
SERVIÇOS<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li class="li-submenu"><a href="servicos-fiscal.php">INTELIGÊNCIA FISCAL E TRIBUTÁRIA</a></li>
<li class="li-submenu"><a href="servicos-departamento-pessoal.php">DEPARTAMENTO PESSOAL</a></li>
<li class="li-submenu"><a href="servicos-contabilidade.php">SERVIÇOS CONTÁBEIS</a></li>
<li class="li-submenu"><a href="servicos-auditoria.php">AUDITORIA</a></li>
<li class="li-submenu"><a href="servicos-consultoria.php">CONSULTORIA</a></li>
<li class="li-submenu"><a href="servicos-incentivos-fiscais.php">BENEFÍCIOS FISCAIS</a></li>
<li class="li-submenu"><a href="servicos-area-societaria-legalizacao.php">LEGALIZAÇÃO DE EMPRESAS</a></li>
<li class="li-submenu" style="border-bottom: none; margin-bottom:-5px"><a href="servicos-analise-de-produtos.php">ANÁLISE CADASTRAL DE PRODUTOS</a></li>
</ul>
</li>
<li role="presentation" class="dropdown li-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
CARREIRAS<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li class="li-submenu"><a href="contato-despertando.php">PROGRAMA DESPERTANDO TALENTOS</a></li>
<li class="li-submenu" style="border-bottom: none; margin-bottom:-5px"><a href="contato-profissionais.php">PROGRAMA PROFISSIONAIS EXPERIENTES</a></li>
</ul>
</li>
<li class="li-menu"><a href="https://jcasistemas.info/" target="_blank">BLOG</a></li>
<li class="li-menu"><a href="#" data-toggle="modal" data-target="#modal-contato">CONTATO</a></li>
<li class="li-menu"><a href="area-cliente.php"><span class="glyphicon glyphicon-lock"></span>   ÁREA DO CLIENTE</a></li>
</ul>
</div>
</nav>
</header>
<!-- MODAL CONTATO DO MENU SUPERIOR -->
<div class="modal" tabindex="-1" id="modal-contato">
<div class="modal-dialog" id="modal-dialog">
<div class="modal-content">
<div class="modal-header" id="modal-header">
<button class="close"
aria-label="close"
data-dismiss="modal">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Fale Conosco</h4>
</div>
<div class="modal-body" id="modal-body">
<form method="POST" enctype="multipart/form-data">
<div class="form-group col-lg-12">
<label for="nome-modal-contato">Nome *</label>
<input class="form-control" type="text" name="nome-modal-contato" id="nome-modal-contato" maxlength="80" required>
</div>
<div class="form-group col-lg-6">
<label for="email-modal-contato">Email *</label>
<input class="form-control" type="email" name="email-modal-contato" id="email-modal-contato" placeholder="Email" maxlength="60" required>
</div>
<div class="form-group col-lg-6">
<label for="empresa-modal-contato">Empresa</label>
<input class="form-control" type="text" name="empresa-modal-contato" id="empresa-modal-contato" placeholder="Informe o nome da sua empresa" maxlength="60">
</div>
<div class="form-group col-lg-4">
<label for="fone-modal-contato">Telefone </label>
<input class="form-control" type="text" name="fone-modal-contato" id="fone-modal-contato" pattern="\([0-9]{3}\) [0-9]{4,5}-[0-9]{4}$" placeholder="(999) 9999-9999 ou 99999-9999">
</div>
<div class="form-group col-lg-8">
<label for="empresa-modal-contato">Assunto *</label>
<select class="form-control" name="assunto-modal-contato" id="assunto-modal-contato" required>
<option value="Desejo abrir uma empresa">Desejo abrir uma empresa</option>
<option value="Quero conhecer os serviços">Quero conhecer os serviços</option>
<option value="Quero saber mais informações sobre a empresa">Quero saber mais informações sobre a empresa</option>
<option value="Quero saber mais informações sobre a serviços">Quero saber mais informações sobre a serviços</option>
<option value="Programa Despertando Talentos">Programa Despertando Talentos</option>
<option value="Programa Profissionais Experientes">Programa Profissionais Experientes</option>
<option value="Outros assuntos">Outros assuntos</option>
</select>
</div>
<div class="form-group col-lg-12">
<label for="comentario-modal-contato">Comentários (Opcional)</label>
<textarea class="form-control" name="comentario-modal-contato" id="comentario-modal-contato" style="resize: none" rows="4" maxlength="400"></textarea>
</div>
<input class="btn btn-primary" type="submit" name="enviar-modal-contato" id="enviar-modal-contato" value="Enviar">
</form>
</div>
</div>
</div>
</div>
<!-- AQUI ABAIXO É O CÓDIGO QUE ESTÁ NO ARQUIVO DESTINO-CONTATO.PHP, QUE É O ARQUIVO QUE FAZ O ENVIO DO FORMULÁRIO -->
<?php
setlocale(LC_ALL, 'pt_BR');
setlocale(LC_TIME, 'portuguese-brazilian');
//CRIANDO MENSAGEM DE ERRO -- NO CASO DE ERRO
$array_erro = array
(
UPLOAD_ERR_OK => "Sem erro.",
UPLOAD_ERR_INI_SIZE => "O arquivo enviado excede o limite definido na diretiva upload_max_filesize do php.ini.",
UPLOAD_ERR_FORM_SIZE => "O arquivo excede o limite definido em MAX_FILE_SIZE no formulário HTML",
UPLOAD_ERR_PARTIAL => "O upload do arquivo foi feito parcialmente.",
UPLOAD_ERR_NO_FILE => "Nenhum arquivo foi enviado.",
UPLOAD_ERR_NO_TMP_DIR => "Pasta temporária ausente.",
UPLOAD_ERR_CANT_WRITE => "Falha em escrever o arquivo em disco.",
UPLOAD_ERR_EXTENSION => "Uma extensão do PHP interrompeu o upload do arquivo."
);
if( isset($_POST["enviar-modal-contato"]) )
{
//ENVIANDO O FORMULÁRIO PARA O SERVIDOR DE EMAIL
$nome_modal = filter_input(INPUT_POST, 'nome-modal-contato', FILTER_SANITIZE_SPECIAL_CHARS);
$email_modal = filter_input(INPUT_POST, 'email-modal-contato', FILTER_VALIDATE_EMAIL);
$empresa_modal = filter_input(INPUT_POST, 'empresa-modal-contato', FILTER_SANITIZE_SPECIAL_CHARS);
$telefone_modal = filter_input(INPUT_POST, 'fone-modal-contato', FILTER_SANITIZE_NUMBER_INT);
$assunto_modal = filter_input(INPUT_POST, 'assunto-modal-contato', FILTER_SANITIZE_SPECIAL_CHARS);
$comentario_modal = filter_input(INPUT_POST, 'comentario-modal-contato', FILTER_SANITIZE_STRING);
//Criar Variáveis de envio
$destino = "[email protected]";
$remetente = "[email protected]"; //Aqui tem que ser um email do próprio domínio. Email do site de hospedagem (Falta preencher)
$assunto_format = "Formulário de Contato - SITE JCA CONTADORES"; //Pode ser qualquer mensagem
$assunto = utf8_decode($assunto_format);
//Montar o corpo da mensagem (Essa mensagem é a que chegará na caixa de email)
$mensagem = utf8_decode("SOLICITAÇÃO DE CONTATO VINDO DO SITE\n");
$mensagem .= utf8_decode("Usuário: ") . utf8_decode($nome_modal) . "\n";
$mensagem .= "Email: " . utf8_decode($email_modal) . "\n";
$mensagem .= "Empresa: " . utf8_decode($empresa_modal) . "\n";
$mensagem .= "Telefone: " . utf8_decode($telefone_modal) . "\n";
$mensagem .= "Assunto: " . utf8_decode($assunto_modal) . "\n \n";
$mensagem .= utf8_decode("Mensagem do Usuário:"). "\n\n" . utf8_decode($comentario_modal);
return mail($destino, $assunto, $mensagem, $remetente);
}
?>
If you want to see the problem in the site itself, just go to thiagopetherson.tech
NOTE: I cannot use the header("Location") in the target-php file, because the same header (and the modal button that opens the form) is on several pages. With that I can’t redirect to a fixed page.
Below is the image of the message that appears in the browser when I give F5.
I think that your option is not very valid for my situation. My email trigger file is already in a separate file. However, I cannot redirect (using the header) to the same page, because this form is in a header that is in all windows of my site. So there is no way I can redirect to a fixed page. Because the user can open this same form while on any page of the site.
– Gato de Schrödinger
Have you tested if _POST is being sent when upgrading? First you need some tests to tailor the solution.
– ElvisP
What do you mean, Eliseu? I’m pretty sure the POST is being sent. Because the email is coming duplicated in my email box. And another thing, I did display a confirmation message that only appears when the email is sent, and when I hit F5 and updated the page, this message appears. I’ve gone through everything and I can’t find an answer to that.
– Gato de Schrödinger
adds at the end of the email trigger a redirected URL, to the previous page: header('Location: " . $_SERVER['HTTP_REFER'] . "');
– ElvisP
This way will take the user to the same page that he is, or if you do not want to lose some kind of data you can use in javascript <script>Parent.location.href='<? php echo $_SERVER['HTTP_REFERER']; ? >';</script> which you can only use to refresh the page in redirect mode and can also send parameters <script>Parent.location.href='<? php echo $_SERVER['HTTP_REFERER']; ? >'? var=X&var 2=Y&var 3=Z;</script>
– ElvisP