Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário PHP - Ajuda


Spike-Spiegel

Pergunta

Olá bom dia a todos, estou quebrando cabeça aqui desde ontem pois estou fazendo um website mas não tenho a menor experiencia em nada, fui aprendendo e mexendo no decorrer dessas ultimas semanas. Consegui ir me virando mais ou menos em tudo, mas nessa parte do formulario em php, algo que pra mim é muito importante no website estou tendo dificuldades.

Estava tentando fazer acompanhando tutoriais na internet mas não estou conseguindo.

Cheguei a conclusão que talvez seja perda de tempo tentar aprender assim na correria e tentar pedir ajuda a voces, já que meu formulario é bastante simples, ele é assim:

3 campos apenas, nome, email e comentario, e eu gostaria que ele fosse enviado para meu email, somente isso.

Vou colar aqui o codigo da tabela do formulario:

<form action="enviar.php" method="post" id="sampleform">

<p><label for="author">Nome:</label><br />

<input type="text" name="author" id="author" class="textarea" value="" tabindex="1" /></p>

<p><label for="email">E-mail:</label><br />

<input type="text" name="email" id="email" value="" tabindex="2" /></p>

<p><label for="comment">Mensagem:</label><br />

<textarea name="comment" id="comment" rows="7" cols="50" tabindex="4"></textarea></p>

<p><input class="button" name="submit" id="submit" type="submit" tabindex="5" value="Enviar" /></p>

</form>

A estrutura foi retirada de um template pronto da internet.

Como deveria ser o meu php para que as informaçoes desses 3 campos fossem enviados para o meu email?

Desde já obrigado a todos.

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0

Certo, bem vindo ao fórum. Vamos lá.

Seguindo a ordem para executar a tarefa:

Você sabe o que a palavra "post" significa no atributo "method" da tag "form"? Você sabe pegar os dados do formulário no PHP? Este link responde estas perguntas.

Certo, com os dados em mãos, a próxima etapa é envia-los para o e-mail. O PHP fornece a função mail para enviar e-mails. Leia o manual.

O mais importante aqui é que você tentou e tem interesse em aprender. Leia o que eu te passei, faça testes e se surgirem dúvidas volte. Não esqueça de postar o seu código.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Você chegou a testar o seu código? Funcionou? Não deu certo? Apareceu algum erro?

<?php
$author = $_POST['author'];
$email = $_POST['emai'l];
$comment = $_POST['comment'];
$message = "Nome: $author\nEmail: $email\nMensagem: $comment";

mail("exemplo@gmail.com", $exemplo, $message);
?>

Ao invés de utilizar $_POST[nomedocampo] utilize $_POST['nomedocampo'] com um apóstrofos ou aspas.

Já que você está utilizando apenas a variável $exemplo dentro da função mail, ela não precisa ficar entre aspas.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Código PHP pode ser executado através da linha de comando ou de um servidor WEB. No seu caso, você pode baixar o EasyPHP. Este pacote acompanha o PHP em si, um servidor WEB (Apache), banco de dados (MySQL), entre outros. Basta instalar e executar.

Coloque os seus arquivos na pasta www, dentro da pasta do EasyPHP e acesse a página http://localhost:8888/nomedoarquivodoformulario.extensao.

Se tiver dúvidas poste novamente.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Adicione o quarto parâmetro da função mail, additional_headers:

<?php
$author = $_POST['author'];
$email = $_POST['emai'l];
$comment = $_POST['comment'];
$message = "Nome: $author\nEmail: $email\nMensagem: $comment";
$headers = "MIME-Version: 1.0\nContent-type: text/plain; charset=UTF-8\n";
$headers .= "From: Nome <email@example.com>\n";

mail("exemplo@gmail.com", $exemplo, $message, $headers);
?>

Nome pode ser substituído pela variável $author e email@example.com pode ser substituído por $email.

Faça uma verificação antes de enviar o e-mail. Entradas feitas por usuários SEMPRE devem ser checadas e filtradas.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Tá dificil, primeiro fiz igual ao seu, depois li no manual e mudei e fiz assim:

<?php

$author = $_POST['author'];

$email = $_POST['email'];

$comment = $_POST['comment'];

$message = "Nome: $author\nEmail: $email\nMensagem: $comment";

$headers = "MIME-Version: 1.0\nContent-type: text/plain; charset=UTF-8\n";

$headers .= "From: $email . "\r\n" .

mail("x@gmail.com", $message, $headers);

?>

E continua dando o mesmo erro

Editado por Spike-Spiegel
Link para o comentário
Compartilhar em outros sites

  • 0
Eu não entendi, poderia ser mais especifico, eu mandei o email, a mensagem e o tal headers que o erro dava como faltando mas continua dizendo que esta faltando o From:
Compare com o manual, fazendo assim, você mandou apenas os 3 primeiros parâmetros:

mail("x@gmail.com", $message, $headers);

mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Nesse caso você mandou os parâmetros $to, $subject e $message... $headers ficou de fora. Quando você chama uma função, o que importa é a ordem, não o nome dos parâmetros ... Se você tivesse escrito mail($foo, $bar, $lorem, $ipsum), estaria mandando os parâmetros $to, $subject, $message e $headers da mesma forma.

Se você não entender ou mesmo assim não funcionar, poste novamente.

Um abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

A maioria das hospedagens atuais requer que o e-mail de partida seja um e-mail válido em sua hospedagem, e não mais como antigamente quando o preenchedor do formulário preenchia. Portanto fixe o e-mail que esta enviando em um valor da sua hospedagem e chame o e-mail que o cliente preenche como email2 ou coisa parecida.

Link para o comentário
Compartilhar em outros sites

  • 0

Opa, obrigado a todos parece que agora obtive algum progresso, a mensagem de erro mudou.

William: Entendi essa parte da ordem e ajudou bastante.

a msg de erro agora foi referente ao envio do email:

Warning: mail() [function.mail]: Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Arquivos de programas\EasyPHP-5.3.6.0\www\enviar.php on line 10

Eu fiz assim

<?php

$author = $_POST['author];

$email = $_POST['email'];

$comment = $_POST['comment'];

$message = "Nome: $author\nEmail: $email\nMensagem: $comment";

$headers = 'From: $email' . "\r\n" .

$to = 'meuemail@gmail.com';

$subject = 'x';

mail($to, $subject, $message, $headers);

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Spike

o proprio erro já diz o que você deve fazer (se estou pulando alguma coisa desculpa, pegar o trem andando é foda)

você tem que colocar as configurações do servidor smtp que você vai usar dentro do php.ini, a função mail() não é tão simples assim...

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, mas eu queria saber se essa mudança é so pra funcionar no pc, ou mesmo com o site hospedado tem que ter isso.

E qual exatamente seria essa mudança, eu entrei la e coloquei o meu email e o smtp do hotmail mas deu que não conseguiu conectar. Acho que deve ser tb por n ter servidor de email mas nem sei o q é isso.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...