Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sanozukez

Form simples preciso do php

Recommended Posts

Formulario:

 

<form action="" method="post" name="duvida" class="style20" id="duvida">
                           <p>Tem alguma pergunta?<br />
                             O time de lealdade ao cliente xxx está feliz em ajudar!<label></label></p>
                           <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                             <tr>
                               <td width="19%">Sua dúvida: </td>
                               <td width="81%"><label>
                                 <input name="duvida" type="text" id="duvida" value="" size="70" align="middle" />
                               </label></td>
                             </tr>
                             <tr>
                               <td> </td>
                               <td><label></label></td>
                             </tr>
                             <tr>
                               <td>Seu email: </td>
                               <td><input name="email" type="text" id="email" size="50" /></td>
                             </tr>
                             <tr>
                               <td> </td>
                               <td><span class="style21" style="word-spacing: 0; margin: 0">
                                 <input type="submit" name="Submit" value="enviar" />
                               </span></td>
                             </tr>
                             <tr>
                               <td colspan="2">ou ligue para (xx) xxxx.xxxx </td>
                               </tr>
                           </table>
                         </form>

 

 

Segue o php que preciso corrigido;

 

Observação: o PHP esta na mesma página do form... é só pra enviar a pergunta e o email do cara pro meu email e pronto.

 

<? 
$emailEnviar = "teste@linksmonitorados.com.br";
$duvida = $_POST['duvida'];
$email = $_POST['email'];

if($_POST['enviar']){
mail("$emailEnviar","

Este email foi enviado de ClickFormulas_duvidas:

email: $email
duvida: $duvida

");

}

?>

 

 

Aguardo sugestões:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite amigo, você precisa que o PHP receba os dados do formulário, e depois envie por email, certo?

 

se for isso, eu acho que seria legal você deixar tudo dentro do IF, como o form tá na mesma página:

 

<?php

//Aqui verificamos se o formulário foi despachado:
if($_SERVER['REQUEST_METHOD'] == "POST"){

       $emailEnviar = "teste@linksmonitorados.com.br";
       $titulo = 'Dúvida';
       $duvida = $_POST['duvida'];
       $email = $_POST['email'];

       //Aqui usamos a função mail() para disparar o email
       mail($emailEnviar, $titulo, $duvida, 'De ' . $email);

       echo 'Este email foi enviado de ClickFormulas_duvidas:<br />';

       echo 'email: ' . $email . '<br />';
       echo 'duvida: ' . $duvida;

}

?>

 

Acho que assim deve funcionar

 

a função mail deve ser usada da seguinte forma:

 

mail($to, $subject, $text, 'From: ' . $from);

 

Onde $to é quem vai receber a mensagem, $subject seria o titulo do email, $text a mensagem, e $from quem enviou (opcional).

 

Você não precisa usar esses nomes, mas tem que manter essa ordem.

 

Outra dica: evite usar as Short tags para abrir os scripts php, prefira sempre o <?php... a short tags podem dar problema se o servidor não estiver configurado pra receber elas.

 

Qualquer dúvida, só falar

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beto, obrigado pela atenção, fiz como você falou e deixei o código exatamente assim:

 

<?php 

//Aqui verificamos se o formulário foi despachado: 
if($_SERVER['REQUEST_METHOD'] == "POST"){ 

       $emailEnviar = "teste@linksmonitorados.com.br"; 
       $titulo = 'Dúvida'; 
       $duvida = $_POST['duvida']; 
	$de = 'Clickformulas';
       $email = $_POST['email']; 

       //Aqui usamos a função mail() para disparar o email 
       mail($emailEnviar, $titulo, $duvida, $de, $email); 


} 

?>

 

Mas não recebo nada ainda...

eu não entendo direito ainda to começando no php, mas não tem nada errado com o submit do formulario?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem parâmetros errados dentro desse seu mail hein

 

Veja:

 

mail($to, $subject, $text, 'From: ' . $from);

 

Me diz, quem vai receber o email? o $emailEnviar ou o $email?

 

suas variáveis estão confusas para mim. a variável $de, deve ser quem envia o email, para fazer isso é necessário colocar antes dentro de aspas simples o header responsável, no caso o 'From: ' no meu exemplo.

 

tenta assim:

 

mail($emailEnviar, $titulo, $text, 'De: ' . $email);

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, eu to meio perdido também, eu fui seguindo um tutorial aqui do forum em video, daí fico assim...

 

no caso quem vai receber é o $emailEnviar

 

e no form só tem os inputs "duvida" e "email".

 

que o cara daí eu sei que e-mail enviou pra mim e respondo a duvida.

 

Eu coloquei desse jeito que você disse por ultimo mas não foi.

 

Obs. Ja estou testando online, to modificando e jogando no servidor da locaweb.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem me corrige ai se eu tiver errado, mas se não me engano na locaweb o esquema é diferente pra enviar.

 

Esse jeito que passei para você é como faço, e funciona beleza.

 

Da uma olhada nesses links do wiki da locaweb, pode ajudar:

 

http://wiki.locaweb.com.br/pt-br/ERRO_451_funcao_mail%28%29_do_PHP

 

http://wiki.locaweb.com.br/pt-br/Enviar_e-mails_pelo_PHP_usando_o_PHPMailer

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, me ajudem...

Eu fiz outra alteração:

 

<?php 

//Aqui verificamos se o formulário foi despachado: 
if($_SERVER['REQUEST_METHOD'] == "POST"){ 

       $titulo = 'Dúvida Click Fórmulas'; 
       $duvida = $_POST['duvida'];
$email = $_POST['email']; 

       //Aqui usamos a função mail() para disparar o email 
       mail('teste@linksmonitorados.com.br', $titulo, $duvida, $email);         

} 

?>

 

Ainda não funciona, e creio que não seja problema com a locaweb, pois la tem um tutorial com a funcão mail() com as strings no mesmo padrão.

 

Alguém tem uma luz? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa velho

 

Cara, ainda tá faltando o FROM

 

tenta assim:

 

 mail('teste@linksmonitorados.com.br', $titulo, $duvida, 'From: ' . $email);

 

E verifica se não tá caindo na lixeira do seu email, pode ser isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Beto, mas o FROM, não pode ser o valor que o usuário digitar no formulário no campo email? Daí o PHP pega esse campo e processa

$email = $_POST['email'];

e usa o que a pessoa digitar como from?

 

A caixa de spam ta vazia.

Meu Deus, porque num funciona isso.... =(

 

Desculpa tomar seu tempo aí Beto, e obrigado. vou continuar tentando aqui. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...

 

eu quis dizer que você tem que enviar o header indicando a informação que você está passando

 

nesse caso é o header from

 

faz da forma que te falei:

 

 mail('teste@linksmonitorados.com.br', $titulo, $duvida, 'From: ' . $email);

 

Se você reparar, coloquei 'From: ' . $email.

 

eu to concatenando a variável $email (que foi a informação enviada pelo seu usuário) junto com o header.

 

Da uma lida em como funciona a função mail, pelo manual do php: http://www.php.net/manual/pt_BR/function.mail.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja só Beto.

 

Esse código que peguei num tópido do iMasters mesmo funciona, do jeito que tá aí. Consegue ver uma luz comparando com o que estamos fazendo?

Eu ia tentar tirar o anexo que não quero agora e deixar simples, mas daí tem muitos cabeçalhos que não sei onde posso mecher.

 

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>formulario+ anexo</title> 
<style type="text/css"> 
<!-- 
.style2 { 
font-family: Arial, Helvetica, sans-serif; 
font-size: x-small; 
} 
.style3 {font-size: xx-small} 
--> 
</style> 
</head> 

<body> 
<form name="form1" method="post" enctype="multipart/form-data" action="<?= $_SERVER['PHP_SELF'];?>?act=enviar"> 
<p class="style2" style="word-spacing: 0; margin: 0">Nome</p> 
<p class="style2" style="word-spacing: 0; margin: 0"> 
<input type="text" name="nome"> 
</p> 
<p class="style2" style="word-spacing: 0; margin: 0">E-Mail</p> 
<p class="style2" style="word-spacing: 0; margin: 0"> 
<input name="de" type="text" id="de"> 
</p> 
<p class="style2" style="word-spacing: 0; margin: 0">Assunto</p> 
<p class="style2" style="word-spacing: 0; margin: 0"> 
<input type="text" name="assunto"> 
</p> 
<p class="style2" style="word-spacing: 0; margin: 0">Anexo</p> 
<p class="style2" style="word-spacing: 0; margin: 0"> 
<input type="file" name="anexo">  
O arquivo deverá ter no máximo 3Mb. </p> 
<p class="style2" style="word-spacing: 0; margin: 0">Mensagem</p> 
<p class="style2" style="word-spacing: 0; margin: 0"> 
<textarea name="msg" cols="50" rows="10"></textarea> 
</p> 
<p class="style2" style="word-spacing: 0; margin: 0"></p> 
<input type="hidden" value="teste@linksmonitorados.com.br" name="email"> 
<p class="style2" style="word-spacing: 0; margin: 0"> 
 <input type="submit" name="Submit" value="Enviar"> 
 <input name="reset" type="reset" id="reset" value="Limpar"> 
</p> 
</form> 


<? 
if ($act == "enviar"){ 
$mime_list = array(   "html"=>"text/html", 
                    "htm"=>"text/html", 
        "txt"=>"text/plain", 
        "rtf"=>"text/enriched", 
        "csv"=>"text/tab-separated-values", 
        "css"=>"text/css", 
        "gif"=>"image/gif", 
     "doc"=>"application/msword", 
     "jpeg"=>"image/jpeg", 
     "jpg"=>"image/jpeg", 
     "jpe"=>"image/jpeg", 
     "exe"=>"application/octet-stream", 
     "mid"=>"audio/midi", 
     "midi"=>"audio/midi", 
     "mov"=>"video/quicktime", 
     "movie"=>"video/x-sgi-movie", 
     "mp3"=>"audio/mpeg", 
     "mpeg"=>"video/mpeg", 
     "mpg"=>"video/mpeg", 
     "mpga"=>"video/mpeg", 
     "png"=>"image/png", 
     "pps"=>"application/mspowerpoint", 
     "ppt"=>"application/mspowerpoint", 
     "ppz"=>"application/mspowerpoint", 
     "qt"=>"video/quicktime", 
     "ra"=>"audio/x-realaudio", 
     "rgb"=>"image/x-rgb", 
     "tif"=>"image/tiff", 
     "tiff"=>"image/tiff", 
     "wav"=>"audio/x-wav", 
     "swf"=>"application/x-shockwave-flash", 
     "zip"=>"application/zip", 
     ); 


$ABORT = FALSE; 

$boundary = "XYZ-" . date(dmyhms) . "-ZYX"; 

$message = "--$boundary\n"; 
$message .= "Content-Transfer-Encoding: 8bits\n"; 
$message .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; 
$message .= "Enviado em ". date("d/m/Y"). "<P>Confira os dados:<P> 
       Nome: " .$_POST['nome']. "<BR> 
       Email: " .$_POST['de']. "<BR> 
       Mensagem:<BR>" 
  .nl2br($_POST['msg']). "<P>"; 
$message .= "\n"; 

$attachments[1] = $anexo; 

foreach ($attachments as $key => $full_path) { 
if ($full_path !='') { 
    if (file_exists($full_path)){ 
          if ($fp = fopen($full_path,"rb")) { 
 if ((filesize($full_path)/1024) > "3000"){ 
                  echo "O arquivo que você tentou anexar, possui mais que 3MB. Por favor, tente um arquivo menor."; 
                  exit; 
} 
                  $filename = array_pop(explode(chr(92),$full_path)); 
                  $contents = fread($fp,filesize($full_path)); 
                  $encoded = base64_encode($contents); 
                  $encoded_split = chunk_split($encoded); 
                  fclose($fp); 
                  $message .= "--$boundary\n"; 
                  $message .= "Content-Type: $anexo_type\n"; 
                  $message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n"; 
                  $message .= "Content-Transfer-Encoding: base64\n\n"; 
                  $message .= "$encoded_split\n"; 
          } 
          else { 
          echo "Impossível abrir o arquivo$key: $filename"; 
          $ABORT = TRUE; 
          } 
    } 
    else { 
    echo "O arquivo$key não existe: $filename"; 
    $ABORT = TRUE; 
    } 

} 
} 

$message .= "--$boundary--\r\n"; 


$headers  = "MIME-Version: 1.0\r\n"; 
$headers .= "From: <".$_POST['de'].">\r\n"; 
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\" charset=iso-8859-1\r\n"; 
$mensagem = mail($_POST['email'], $assunto, $message, $headers); 

if ($mensagem) { 
 print "Mensagem enviada com sucesso!"; 
} else { 
 print "O envio da mensagem falhou!"; 
} 

} 

?> 
</body> 
</html>

 

Ninguém mais pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você está tentando enviar este e-mail pela Locaweb?

 

É você vai ter um bom trabalho, a locaweb é muito chata em relação a função mail(), é bem complicado enviar, mas não é impossível.

 

Veja vem, você não pode enviar e-mail através do e-mail do usuário! Isso seria considerado uma "falsificação de identidade" ?! Entende?

Envie de: contato@seudominio.com.br que é mais provável receber.

 

E outra, o servidor que você está é linux ou windows? Tem que ver isso também viu!?

 

Responda estas questões que creio poder tentar te ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, você está tentando enviar este e-mail pela Locaweb?

 

É você vai ter um bom trabalho, a locaweb é muito chata em relação a função mail(), é bem complicado enviar, mas não é impossível.

 

Veja vem, você não pode enviar e-mail através do e-mail do usuário! Isso seria considerado uma "falsificação de identidade" ?! Entende?

Envie de: contato@seudominio.com.br que é mais provável receber.

 

E outra, o servidor que você está é linux ou windows? Tem que ver isso também viu!?

 

Responda estas questões que creio poder tentar te ajudar!

 

 

Na verdade eu quero enviar pra mim de mim mesmo, tipo eu não entendi direito ainda como funciona isso. Eu estava pensando que o php fazia envio por meio de alguma função (?)!

Não sei mesmo.

 

Tipo, no último exemplo que eu coloquei aí, que é de um form com anexo, ele ta funcionando aqui certinho. Nele tem o campo E-mail, onde o usuario digita o e-mail dele e chega pra mim, tipo eu entendo isso como: o usuario digita o e-mail como uma parte da mensagem que eu vou receber, mas não é do e-mail dele que vem a mensagem, ela só aparece escrito de: fuulano@algumacoisa.com.br porque ele digita o email dele no campo E-mail, ou seja, o PHP tem alguma função que envia mensagens do meu site pro meu email.

 

Porque eu num to fazendo mailer tipo, autentica, senha, usuario e tal. Não, só quero receber a mensagem que tenha no corpo o email que o usuario digitar pra eu saber de quem é e a pergunta que vou responder a ele.

 

Me desculpe a ignorancia mas, to camelando mesmo no PHP.

 

Outra coisa, estou rodando em servidor Linux.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.