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!!