Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/01/2013, 05:40
Avatar de paxarin
paxarin
 
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 3 meses
Puntos: 6
enviar un formulario a la bbdd y al email

Muy buenas.
Necesito que me saqueis de una duda que lleva dandome guerra demasiado tiempo ya!
Tengo un formulario en la web que es enviado a la bbdd para que allí a traves del cms sea visto.
Este es el formulario.
Código:
<div id="formulario">
        	<form id="pie" onSubmit="return validar2(this)" action="insertar-datos.php" method="post">
                    <input type="text" name="nombre" id="nombre" alt="Nombre" value="Nombre"  onfocus="cambiar(true,'nombre','Nombre')" onBlur="cambiar(false,'nombre','Nombre')"/>
                    <input type="text" name="mail" id="mail" alt="E-mail" value="E-mail" onFocus="cambiar(true,'mail','E-mail')" onBlur="cambiar(false,'mail','E-mail')" />
                    <select name="tipo" id="tipo">
                    <option value="">¿En que podemos ayudarte?</option>
                    <option value="Remedios caseros">Más información sobre:</option>
                    <option value="Plantas medicinales">Envio de articulos</option>
                    <option value="Terapias naturales">Información legal </option>
                    <option value="Diseño publicidad">Sugerencias</option>
                    <option value="Cosmetica natural">Enviarnos tus articulos</option>
               		</select>
                    <label id="msg"><p>Explicanos un poco más.</p></label>
                    <textarea name="msg" class="color" id="msg" alt="Comentario" value="Comentario" onFocus="cambiar(true,'msg','Comentario')" onBlur="cambiar(false,'msg','Comentario')"></textarea> 
                    <div id="btn_form">
                    <input type="submit" value=""  />
                    </div>
              </form>
En inserta-datos.php esta este codigo.
Código:
<?php
$conexion = mysql_connect("localhost","xxxxxx","xxxx");
        mysql_select_db("xxxxxxxxxxx",$conexion);

        // Con esta sentencia SQL insertaremos los datos en la base de datos
        mysql_query("INSERT INTO tblcontac (strNombre,strEmail,strTelefono,IntTipo,IntConocer,strComentario)
        VALUES ('{$_POST['nombre']}','{$_POST['mail']}','{$_POST['telefono']}','{$_POST['tipo']}','{$_POST['conocer']}','{$_POST['msg']}')",$conexion);
		if (mysql_errno()!=0)
{
	echo "No se pudo insertar los datos en la tabla. Error" .mysql_errno() ." - ".mysql_error();
	mysql_close($conexion);
}	else{
	$conexion;
	header("location:enviado.html");
	}
?>
Hasta aqui todo correcto, pero mi duda es la siguiente.
Se que tengo que hacer uso de una función mail() en la que le indico a que correo quiero enviar la respuesta del formulario recibido.
Pero donde debo de llamarla?
y como hacerlo correctamente?
Estuve buscando por la red y la verdad no encontre nada claro sobre esto.
Tengo hecho el php para enviarlo al correo.
Código:
<!DOCTYPE html >
<html lang="es-es">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$nombre 	= $_POST['nombre'];
$servicios 	= $_POST['servicios'];
$mail 	= $_POST['mail'];
$telefono 		= $_POST['telefono'];
$conocer 		= $_POST['conocer'];
$mensaje 	= $_POST['msg'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este correo electronico fue enviado por " . $nombre . " \r\n";
$mensaje .= "Realizando una consulta sobre el siguiente servicio : " . $servicios . " \r\n";
$mensaje .= "Su numero de telefono es el: " . $telefono . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "¿Como nos conocio?".$conocer. " \r\n";
$mensaje .= "Mensaje: " . $_POST['msg'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Desde Otra forma de vida';

mail($para, $asunto, utf8_decode($mensaje), $header);
/**
	Validate an email address.
	Provide email address (raw input)
	Returns true if the email address has the email 
	address format and the domain exists.
	*/
	function isValidEmail($email) {
		$isValid = true;
		if (strstr($_SERVER['HTTP_HOST'],'localhost') == FALSE) {
			$atIndex = strrpos($email, "@");
			if (is_bool($atIndex) && !$atIndex) {
			  $isValid = false;
			} else {
			  $domain = substr($email, $atIndex+1);
			  $local = substr($email, 0, $atIndex);
			  $localLen = strlen($local);
			  $domainLen = strlen($domain);
			  if ($localLen < 1 || $localLen > 64) {
				 // local part length exceeded
				 $isValid = false;
			  } else if ($domainLen < 1 || $domainLen > 255) {
				 // domain part length exceeded
				 $isValid = false;
			  } else if ($local[0] == '.' || $local[$localLen-1] == '.') {
				 // local part starts or ends with '.'
				 $isValid = false;
			  } else if (preg_match('/\\.\\./', $local)) {
				 // local part has two consecutive dots
				 $isValid = false;
			  } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) {
				 // character not valid in domain part
				 $isValid = false;
			  } else if (preg_match('/\\.\\./', $domain)) {
				 // domain part has two consecutive dots
				 $isValid = false;
			  } else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) {
				 // character not valid in local part unless 
				 // local part is quoted
				 if (!preg_match('/^"(\\\\"|[^"])+"$/',str_replace("\\\\","",$local))) $isValid = false;
			  }
			  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) {
				 // domain not found in DNS
				 $isValid = false;
			  }
			}
		}
		return $isValid;
	}

 echo "<script>window.location='http://localhost/paxarin/otra-forma/enviado.html</script>";
?>
Pero si hago una cosa no puedo hacer la otra.
Alguien puede decirme como puedo hacerlo? o donde puedo buscar la solución.
Muchas gracias!!
__________________
http://www.paxarindesign.es