Forum Pplware

Versão Completa: Formulário Mail PHP
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Boa Tarde,

Estou com um problema no envio de um mail através de uma função de PHP. O que se passa é que o mail é enviado correctamente, mas as variáveis "var1", "var2", e "var3" do ficheiro php não são enviadas no mail.

Código:
//Ficheiro HTML

<form name="form1" method="post" onsubmit="return formCheck(this);" action="enviar.php">
<textarea name="var1" cols="30" rows="5"></textarea>
<textarea name="var2" cols="30" rows="5"></textarea>
<textarea name="var3" cols="30" rows="5"></textarea>
</form>

Código PHP:
//enviar.php

<?php function data()
{
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$email "mail@mail.com";
$assunto "Assunto";
$mensagem "
<b>Dados:</b>
<p><b>Dado1:</b> 
$var1 <br>
<b>Dado2:</b> 
$var2 <br>
<b>Dado3:</b> 
$var3 <br>
"
;
mail($email$assunto$mensagem$headers);
include(
"mailok.htm");
?>

Alguém me dá uma ajudinha?

Obrigado,

Abraço,
Tiago Matias
Ok,

Não vou entrar em detalhes relativamente às imensas falhas de segurança que aí tens.

Mas tens de adicionar isto antes de definires os headers:

Código:
$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$var3 = $_POST['var3'];

Nota também que no html tens duas vezes var2 em vez de var2 e var3.
Obrigado.. Sim, foi uma adaptação rápida que fiz dum código maior, mas para não o estar a escrever todo, fiz isto rápido e saíram alguns erros como já vi.

Quantos às falhas de segurança, acredito que o mail ali exposto a quem veja a source não seja nada agradável, mas era um código antigo que já aqui tinha e como não sou programador nem nada que se pareça (só dou mesmo uns toques para o desenrascanço), aproveitei-o para me desenrascar ainda hoje Big Grin

Vou experimentar, já digo qualquer coisa.

Cump,
TM

EDIT: Não funcionou.. continua a não enviar as variáveis para o e-mail, mesmo definidas antes dos headers como disseste.. estará a faltar alguma coisa?


Tens o formulário com o campo name="valor1" (exemplo)

No ficheiro php para que é enviado o formulário, tens que ter uma leitura dos dados em post, ou seja:

$var1 = $_POST['valor1'];

a variavel $var1 vai ficar com o valor determinado pelo utilizador. Depois é só processa-las....
Sim, já experimentei fazer isso mas continua sem dar. O que estou a reparar é que ele lê e envia bem a variável $assunto por exemplo, e os dados escritos dentro da variável $mensagem.

As variáveis que ele não imprime para o mail é as variáveis que mando ler dentro da variável $mensagem. Por exemplo $var1 que a declaro dentro da variável $mensagem.
aparece no e-mail:

$var1

ou nao aparece nada?!

faz um debug.. antes de enviar e-mail, imprime cada uma das variaveis e vê o no que dá...
No mail não aparece nada sequer...

Humm. não tenho como fazer debug, estou a programar em .txt, apesar que também sou meio nerdo nisto lolEEK!
Faz:

Código PHP:
echo '<p>var1 = '$var1 '</p>';
echo 
'<p>var2 = '$var2 '</p>';
echo 
'<p>var3 = '$var3 '</p>'

Depois de definires o valor das variáveis, imprimindo assim o seu valor.
URL's de Referência