Formulário no site - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: Formulário no site (/showthread.php?tid=10690) |
Formulário no site - cvcosta - 31-01-2012 11:53 Olá a todos, Gostaria de colocar uma questão relativamente aos form mails. Eu já construí formulários de contacto em sites. mas agora estou encalhado numa situação. no HTML tenho: <form action="contact.php" method="post" name="contact" target="_self" id="contact"> <p> <input type="hidden" name="to" value="mail_de_destino@site.pt" /> <input type="hidden" name="subject" value="Mensagem Via Site" /> <input type="hidden" name="redirect" value="http://www.site.pt/contact_ok.html" /> <input type="hidden" name="required" value="nome,telefone,email,assunto,mensagem" /> </p> <p> <label>Nome <input type="text" name="nome" id="nome" /> </label> </p> <p> <label>Telefone: <input type="text" name="telefone" id="telefone" /> </label> </p> <p> <label>E-mail: <input type="text" name="email" id="email" /> </label> </p> <p> <label>Assunto: <input type="text" name="assunto" id="assunto" /> </label> </p> <p> <label>Mensagem:<br /> <textarea name="mensagem" id="mensagem" cols="45" rows="5"></textarea> </label> </p> <p> <input name="enviar" type="submit" class="extra" id="enviar" value="Enviar" /> <input name="reset" type="reset" class="extra" id="reset" value="Reset" /> - no código contact.php tenho: <?php $msg = array($nome, $telefone, $email, $assunto, $mensagem); $nome = 'nome'; $telefone = 'telefone'; $email = 'email'; $assunto = 'assunto'; $mensagem = 'mensagem'; $mailheaders = "From: mail_de_destino@site.pt"; mail($to, $subject, join("\n", $msg), $mailheaders); Header( "Location: contact_ok.html"); ?> Não está a funcionar e não estou a ver as causas.... É que num outro site tenho isto a trabalhar sem problemas. Alguém tem alguma ideia?? Desde já agradeço pela vossa atenção RE: Formulário no site - Bruno Bernardino - 31-01-2012 12:17 Assim de repente, para além de algumas graves falhas de segurança (posso enviar qualquer conteúdo para qualquer email e irá sempre parecer que são vocês os spammers), deverá ser diferentes configurações de servidor. Não tens referência nenhuma a $_POST, pelo que deduzo teres register_globals activo no site onde funciona, e inactivo no site onde não funciona. O register_globals é uma directiva MUITO ANTIGA e deve estar SEMPRE DESLIGADA, como tal, recomendo que antes do $msg = array(... faças o seguinte: Código: //-- Isto é muito simples, idealmente deverias validar estas variáveis RE: Formulário no site - cvcosta - 31-01-2012 12:22 (31-01-2012 12:17)Bruno Bernardino Escreveu: Assim de repente, para além de algumas graves falhas de segurança (posso enviar qualquer conteúdo para qualquer email e irá sempre parecer que são vocês os spammers), deverá ser diferentes configurações de servidor. Obrigado pela rápida resposta!!! rrr.. falhas graves.. como posso corrigir isso? RE: Formulário no site - Bruno Bernardino - 31-01-2012 15:30 Para já, e muito simplesmente, podes tirar o "to", "subject" e "redirect" do formulário e deixá-los só em código PHP quando estás para enviar o email. Depois, convém validar o que recebes do formulário (pelo menos ver se não está vazio e depois validar o tipo de dados, como, por exemplo, o email). Depois, implementar um captcha ou nonce (pesquisa no google) irá tornar submissões automáticas mais difíceis. RE: Formulário no site - cvcosta - 31-01-2012 15:35 (31-01-2012 15:30)Bruno Bernardino Escreveu: Para já, e muito simplesmente, podes tirar o "to", "subject" e "redirect" do formulário e deixá-los só em código PHP quando estás para enviar o email. Mais uma vez grato pela colaboração. mais logo à noite vou fazer essas alterações. Vamos ver se consigo dar a volta à situação. |