Formulário no site
|
31-01-2012, 11:53
Mensagem: #1
|
|||
|
|||
Formulário no site
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 |
|||
31-01-2012, 12:17
Mensagem: #2
|
|||
|
|||
RE: Formulário no site
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 BrunoBernardino.com |
|||
31-01-2012, 12:22
Mensagem: #3
|
|||
|
|||
RE: Formulário no site
(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? |
|||
31-01-2012, 15:30
Mensagem: #4
|
|||
|
|||
RE: Formulário no site
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. BrunoBernardino.com |
|||
31-01-2012, 15:35
Mensagem: #5
|
|||
|
|||
RE: Formulário no site
(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. |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 2 Visitante(s)