Jump to content


Photo

Como Inserir Endereço De E-Mail No Form?


  • Faça o login para participar
5 replies to this topic

#1 Loi

Loi

    12 Horas

  • Usuários
  • 128 posts
  • Sexo:Não informado

Posted 03/06/2013, 15:47

Olá!
Achei o formulário de contato que sempre procurei! Enquanto envia os dados ao clicar no submit, um loading em gif fica rodando, e, ao final aparece na mesma página uma DIV com a msg: Mensagem enviada com sucesso. Só tem um problema... Quam disponibilizou na web se esqueceu de dizer onde colocar o meu endereço de e-mail e o campo subject para que o formulário vá para o meu e-mail! Como não entendo nada de PHP...
Segue o código. Desde já agradeço
<?php
	if($_POST){
		// response hash
		$response = array('type'=>'', 'message'=>'');
		
		try {
			// do some sort of data validations, very simple example below
			$required_fields = array('name', 'email', 'message');
			foreach($required_fields as $field){
				if(empty($_POST[$field])){
					throw new Exception('Required field "'.ucfirst

($field).'" missing input.');
				}
			}
		
			// ok, field validations are ok
			// now add to data to DB, Send Email, ect.
			
			// let's assume everything is ok, setup successful response
			$response['type'] = 'success';
			$response['message'] = 'Thank-You for submitting the form!';	
		} catch(Exception $e){
			$response['type'] = 'error';
			$response['message'] = $e->getMessage();
		}
		// now we are ready to turn this hash into JSON
		print json_encode($response);
		exit;
	}
?>


#2 Victor Hugo Odo

Victor Hugo Odo

    Doutor

  • Administradores
  • 779 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Compartilhar conhecimentos!

Posted 03/06/2013, 22:45

Olá,

Esse código não está disparando. Ele só comentou o local onde entra a persistência em BD e o envio.

Aqui tem alguns scripts, caso queira: http://www.freshdesi...-tutorials.html

Abs,

Fórum WMO - Administrador


#3 Loi

Loi

    12 Horas

  • Usuários
  • 128 posts
  • Sexo:Não informado

Posted 04/06/2013, 07:46

Antes de mais nada, muito obrigado pela atenção! Esse site q vc indicou é bem mais legal. Peguei lá um script que vai resolver a minha vida, mas ao abrir, não vi como colocar o meu endereço de e-mail nem o subject definido. Como disse, não programo em PHP. Será que vc me ajuda? Segue o código:
<?php



//Retrieve form data. 

//GET - user submitted data using AJAX

//POST - in case user does not support javascript, we'll use POST instead

$name = ($_GET['name']) ? $_GET['name'] : $_POST['name'];

$email = ($_GET['email']) ?$_GET['email'] : $_POST['email'];

$website = ($_GET['website']) ?$_GET['website'] : $_POST['website'];

$comment = ($_GET['comment']) ?$_GET['comment'] : $_POST['comment'];



//flag to indicate which method it uses. If POST set it to 1

if ($_POST) $post=1;



//Simple server side validation for POST data, of course, you should validate the email

if (!$name) $errors[count($errors)] = 'Digite seu nome.';

if (!$email) $errors[count($errors)] = 'Digite um e-mail válido.'; 

if (!$comment) $errors[count($errors)] = 'Digite sua mensagem.'; 



//if the errors array is empty, send the mail / no errors found

if (!$errors) {



	//if POST was used, display the message straight away

	if ($_POST) {

		echo 'Mensagem enviada com sucesso.';

		

	//This one for ajax

	//1 means success, 0 means failed

	} else {

		echo '1';	

	}





} else {

	//display the errors message

	for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>';

	echo '<a href="jquery-ajaxform.php">Back</a>';

	exit;

}









?>


#4 Victor Hugo Odo

Victor Hugo Odo

    Doutor

  • Administradores
  • 779 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Compartilhar conhecimentos!

Posted 04/06/2013, 12:57

Rs,

Você está dando sorte mesmo, nesse também não tem o mecanismo de envio.

Bom, fiz um rapidinho pra você ver. No caso usei a classe phpmailer, pois existem vários servidores que deixam desabilitado por padrão a função mail que é fundamental para o envio. Esta classe faz uma conexão SMTP para envio, então você precisa dos dados de usuário, senha e servidor smtp.

Segue link para a classe phpmailer: http://phpmailer.worxware.com/

Exemplo de código para colocar no começo do seu script, lembre-se de substituir os dados de smtp, username e password pelos seus dados. $mail->AddAddress, serve para mais um email receber a msg, e $mail->AddBCC também, mas com cópia oculta e são opcionais. Logo na primeira linha da função há um require, certifique-se que ele aponte para o diretório que que você salvar a classe phpmailer.



function _mail($from,$subject, $message){
	require("mail/class.phpmailer.php");

	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->SMTPDebug  = 0;
	$mail->SMTPAuth = true;
	$mail->SMTPSecure = "tls";
	$mail->Host = "---.----.com.br";
	$mail->Port = 587;
	$mail->Username = "----";
	$mail->Password = "-----";
	
	$mail->From = $from;
	$mail->AddAddress("----.-----@----.com.br");
	$mail->AddBCC("----.---@---.com.br");
	$mail->IsHTML(true);
	
	$mail->Subject = $subject;
	$mail->Body = utf8_decode($message);
	
	$enviado = $mail->Send();
	
	$mail->ClearAllRecipients();
	$mail->ClearAttachments();

	return $enviado;
}


Agora que tem a função responsável pelo disparo, basta substituir o conteúdo do seu if(!errors) por:

	$message = '
        Nome:' . $name .'<br />
        Email:' . $email .'<br />
        Mensagem:' . $comment ;

	$headers = "MIME-Version: 1.0" . "\r\n";
	$headers .= "Content-type: text/html; charset=utf-8" . "\r\n";

	$headers .= "From:" .$email . "\r\n";
	$headers .= "Reply-To: " . $email . "\r\n";


	if (_mail( $email, $to, $subject, $message)) {
		echo 'Mensagem enviada com sucesso.';
	} else {
		echo 'A mensagem não pôde ser enviada.';
	}

Espero ter ajudado.
abs.

Fórum WMO - Administrador


#5 Loi

Loi

    12 Horas

  • Usuários
  • 128 posts
  • Sexo:Não informado

Posted 05/06/2013, 05:57

Agora deu certo! Brigadão :lol:

#6 Victor Hugo Odo

Victor Hugo Odo

    Doutor

  • Administradores
  • 779 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:Compartilhar conhecimentos!

Posted 06/06/2013, 00:38

Olá,

Fico contente. Bons ventos.

Posted Image

Fórum WMO - Administrador





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq