Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
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

[Imagem: lbcs_cvcosta.png]
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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
$to = $_POST['to'];
$subject = $_POST['subject'];
//-- E repetir para as outras variáveis.

BrunoBernardino.com
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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.

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
$to = $_POST['to'];
$subject = $_POST['subject'];
//-- E repetir para as outras variáveis.

Obrigado pela rápida resposta!!!


rrr.. falhas graves.. como posso corrigir isso?

[Imagem: lbcs_cvcosta.png]
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
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.

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.

Mais uma vez grato pela colaboração.

mais logo à noite vou fazer essas alterações. Vamos ver se consigo dar a volta à situação.

[Imagem: lbcs_cvcosta.png]
Visitar Website de este utilizador Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 2 Visitante(s)