• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

andfex

[PHP]Para iniciantes em PHP (formulario de envio para email php)

12 mensagens neste tópico

Codigo para formulário:.

<?php

/*A variável $mensagem recebe os dados da array.  */
$mensagem = "Nome: ".$_POST['nome']." \n";
$mensagem .= "Email: ".$_POST['email']." \n";
$mensagem .= "Assunto: ".$_POST['assunto']." \n";
$mensagem .= "Mensagem:". $_POST['mensagem'];
/*
Função Mail:
1: Coloque o email que vai receber os dados do formulário;
2: Coloque o titulo do email;
3: Os dados do formulário.
*/
mail("email", "Formulário - andfex", $mensagem);

/*
Mensagem que será impressa 
*/

echo '<h1>Enviado com Sucesso!</h1>';
echo '<h1>Em breve entraremos em contato.</h1>';
?>

Partilhar os conhecimentos é o meu mais rapido de crescer, think that

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei com uma duvida. Depois de montar o formulário em HTML. Como faço para ligar o formulário a este code?

Desculpem, mas sou totalmente novato em PHP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiquei com uma duvida. Depois de montar o formulário em HTML. Como faço para ligar o formulário a este code?

Desculpem, mas sou totalmente novato em PHP.

no início do formulário

<form action="nomedoficheiro.php" method="post">

nomedoficheiro.php é o ficheiro em que está este script

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

$mensagem = "Nome: nome \n";

$mensagem .= "Email: hhhhhhhhhhhhhhhhhhh \n";

$mensagem .= "Assunto: Recuperação \n";

$mensagem .= "Mensagem: nova : $newstr ";

mail($email,"Recuperação de Password","Formulário - andfex", $mensagem);

eu tenho este pedaço de codigo, porque que ele nao funciona? estou a trabalhar no wanmpserver, sera que so manda email depois do site estar online?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoal, contribuam para a boa organização do fórum, se tiverem dúvidas coloquem-nas na secção de dúvidas e DE ACORDO COM AS REGRAS.

As mensagens de dúvidas afixadas neste tópico serão apagadas brevemente.


Atenção que o uso deste script é perigoso. Pode resultar na injecção de cabeçalhos na mensagem de email, o que pode ser usado para spam, bulras e afins.

A forma de previnir isso é sanear os parâmetros. se tiverem mudanças de linha então são perigosos e não devem ser permitidos.

Está melhor explicado aqui em inglês:

http://www.thesitewizard.com/php/protect-script-from-email-injection.shtml

Se tiver tempo adiciono esta informação em português ao nosso wiki.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no início do formulário

<form action="nomedoficheiro.php" method="post">

nomedoficheiro.php é o ficheiro em que está este script

Posso colocar dois action ou seja um que envie por email e outro que insira os dados numa Base de Dados?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Posso colocar dois action ou seja um que envie por email e outro que insira os dados numa Base de Dados?

Não. Mas podes no mesmo ficheiro fazer as 2 acções ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não. Mas podes no mesmo ficheiro fazer as 2 acções ;)

E como faço isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
// validar inputs
if ($_POST['nome'] == 'admin') exit('Não pode user esse nome.');

// inserir na base de dados
$sql = "insert into messages values (1, 2, 3)";
mysql_query($sql) or die(mysql_error() . ' @ ' . __FILE__ . ':' . __LINE__);

// mandar mail
mail('me@msn.com', 'assunto', 'Mensagem propriamente dita');

// feedback ao utilizador
echo '<p>Obrigado por mandar o mail.</p>';
?>

Usa o GeSHi para colorires o código ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok obrigado já consegui.

Mas já agora como fazia para o email ir buscar os valores do formulário?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais ou menos da mesma maneira que fizeste para meter os dados na base de dados.

$destinatario = 'me@foobar.com';
$assunto = reset(explode("\n", $_POST['assunto'])); /* só a 1a linha */
$mensagem = $_POST['mensagem'];
mail($destinatario, $assunto, $mensagem);

Oh ....... PS

Não te esqueças de preparar os inputs antes de os meteres na base de dados.

Não queres correr o risco de uma "SQL injection" ( http://en.wikipedia.org/wiki/Sql_injection ou http://xkcd.com/327 ), pois não?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este tópico serve para discutir o código postado, se têm dúvidas criem um tópico na secção de dúvidas. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora