Anónimo
Enviar via email y guardar en mysql
Tengo un formulario con datos de usuario y quiero que cuado los llene se realize el envio al correo del usuario y esos datos queden en mi base de datos mysql
1 Respuesta
Respuesta de Adrian Manz
1
1
Adrian Manz, Desarrolador Front-End y Back-End
Te copio uno que hice hace un tiempo:
contacto.php ---------------------
<?php
require("libreria/conexiondb.php");
require("email.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- --><title>Contacto</title><!-- -->
<script type="text/javascript">
<!--
function enviarFormulario(){
NOMBRE = document.formulario.NOMBRE.value;
EMAIL = document.formulario.EMAIL.value;
TELEFONO = document.formulario.TELEFONO.value;
ASUNTO = document.formulario.ASUNTO.value;
CONSULTA = document.formulario.CONSULTA.value;
if (NOMBRE == "" || EMAIL == "" || TELEFONO == "" || ASUNTO == "" || CONSULTA == "")
alert("Por favor, rellene todos los campos y vuelva a enviar el formulario. Muchas gracias.");
else if ( !(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(EMAIL)) )
alert("Introduzca un email valido.");
else
document.formulario.submit();
}
//-->
</script>
<style>
.contacto { margin:3px 10px; text-align:center }
.contacto span { font-family:Arial; font-size:12px; font-weight:bold; color:#136893}
.contacto span b { font-size:14px;}
</style>
</head>
<body>
<div id="top">
<div id="page">
<div id="fugast4" class=""><div class="contacto"><span><b>Realiza tu consulta en el siguiente formulario, contestaremos a tu problema/presupuesto en el menor tiempo posible.</b></span>
<form action="contacto.php" method="post" id="formulario" name="formulario">
<input type="hidden" name="Env" value="Si" />
<br />
<label for="NOMBRE"><span>Indique su nombre: </span></label>
<input name="NOMBRE" type="text" id="NOMBRE" value="<?php echo $_POST["NOMBRE"];?>" /><br />
<label for="EMAIL"><span>Indique su E-Mail: </span></label>
<input name="EMAIL" type="text" id="EMAIL" value="<?php echo $_POST["EMAIL"];?>" /><br />
<label for="TELEFONO"><span>Indique su Teléfono: </span></label>
<input name="TELEFONO" type="text" id="TELEFONO" value="<?php echo $_POST["TELEFONO"];?>" /><br />
<br />
<label for="ASUNTO"><span>Resuma su problema: </span></label>
<input name="ASUNTO" type="text" id="ASUNTO" value="<?php echo $_POST["ASUNTO"];?>" /><br /><br />
<label for="CONSULTA"><span>Especifique su problema para una correcta comunicación:</span><br /></label>
<textarea name="CONSULTA" cols="60" rows="7" id="CONSULTA"><?php echo $_POST["CONSULTA"];?></textarea><br /><br />
<div class="formu-izq">
<a href="javascript:enviarFormulario();"><img src="piezas/bt_enviar.jpg" alt="Enviar" border="0" /></a><br />
</div>
</form>
</div>
</div>
<div id="layer3copy"></div>
<!-- <div id="facebook" class=""><a href="" target="_blank" title="Siguenos en Facebook"><img src="piezas/facebook.png" width="40" height="40" alt="facebook" border="0" /></a></div> --></div><!-- /page --><!--/footer-->
</div><!-- /top -->
<!-- -->
<!-- -->
<?php
if (isset($_POST["Env"])){
$email = $_POST["EMAIL"];
$busca = @mysql_query("SELECT * FROM contacto WHERE EMAIL LIKE '$email'");
$resultados = mysql_num_rows($busca);
if ($resultados != 0){
?>
<script type="text/javascript">alert("El Email ya está siendo usado");</script>
<?php
}else{
$value = "Nombre='".$_POST["NOMBRE"]."',Email='".$_POST["EMAIL"]."',Telefono='".$_POST["TELEFONO"]."',Asunto='".$_POST["ASUNTO"]."',Consulta='".$_POST["CONSULTA"]."'";
$sql= "INSERT INTO contacto SET $value";
if (@mysql_query($sql)) {
enviarcorreo( "[email protected]", "Consulta Web");
?>
<script type="text/javascript">alert("Su correo ha sido registrado.");</script>
<?php
} else {
?>
<script type="text/javascript">alert("Se ha producido un error.");</script>
<?php
}
}
}
?>
</body></html>
email.php --------
<?php
function enviarcorreo($micorreo, $miasunto){
//volcamos todos los datos para enviar
foreach (array_keys($_POST) as $valor) {
if ($valor != "Enviar"){
$addvalor = $valor.": ".$_POST[$valor];
$datos = $datos.$addvalor."\n";
}
}
//enviamos el correo
if(@mail($micorreo, $miasunto, utf8_decode($datos))){
?><script type="text/javascript">alert("Su mensaje se ha enviado correctamente.");</script><?php
}else{
?><script type="text/javascript">alert("Se ha producido un error durante el envio.");</script><?php
}
}
?>
conexiondb.php -----------
<?php
//conexion a la base de datos
$bd=@mysql_connect("localhost", "usuario", "clave");
if (!$bd) {
echo ("Error, No se pudo conectar con la base de datos en este
momento, Inténtelo más tarde");
exit();
}
$sel=@mysql_select_db("contactos");
if (!$sel){
echo( "Error, No se puede acceder a la base de datos en este momento, Inténtelo más tarde");
exit();
}
@mysql_query("SET NAMES 'utf8'");
?>
Pruebalo y me dices si tienes dudas o algo.
contacto.php ---------------------
<?php
require("libreria/conexiondb.php");
require("email.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- --><title>Contacto</title><!-- -->
<script type="text/javascript">
<!--
function enviarFormulario(){
NOMBRE = document.formulario.NOMBRE.value;
EMAIL = document.formulario.EMAIL.value;
TELEFONO = document.formulario.TELEFONO.value;
ASUNTO = document.formulario.ASUNTO.value;
CONSULTA = document.formulario.CONSULTA.value;
if (NOMBRE == "" || EMAIL == "" || TELEFONO == "" || ASUNTO == "" || CONSULTA == "")
alert("Por favor, rellene todos los campos y vuelva a enviar el formulario. Muchas gracias.");
else if ( !(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(EMAIL)) )
alert("Introduzca un email valido.");
else
document.formulario.submit();
}
//-->
</script>
<style>
.contacto { margin:3px 10px; text-align:center }
.contacto span { font-family:Arial; font-size:12px; font-weight:bold; color:#136893}
.contacto span b { font-size:14px;}
</style>
</head>
<body>
<div id="top">
<div id="page">
<div id="fugast4" class=""><div class="contacto"><span><b>Realiza tu consulta en el siguiente formulario, contestaremos a tu problema/presupuesto en el menor tiempo posible.</b></span>
<form action="contacto.php" method="post" id="formulario" name="formulario">
<input type="hidden" name="Env" value="Si" />
<br />
<label for="NOMBRE"><span>Indique su nombre: </span></label>
<input name="NOMBRE" type="text" id="NOMBRE" value="<?php echo $_POST["NOMBRE"];?>" /><br />
<label for="EMAIL"><span>Indique su E-Mail: </span></label>
<input name="EMAIL" type="text" id="EMAIL" value="<?php echo $_POST["EMAIL"];?>" /><br />
<label for="TELEFONO"><span>Indique su Teléfono: </span></label>
<input name="TELEFONO" type="text" id="TELEFONO" value="<?php echo $_POST["TELEFONO"];?>" /><br />
<br />
<label for="ASUNTO"><span>Resuma su problema: </span></label>
<input name="ASUNTO" type="text" id="ASUNTO" value="<?php echo $_POST["ASUNTO"];?>" /><br /><br />
<label for="CONSULTA"><span>Especifique su problema para una correcta comunicación:</span><br /></label>
<textarea name="CONSULTA" cols="60" rows="7" id="CONSULTA"><?php echo $_POST["CONSULTA"];?></textarea><br /><br />
<div class="formu-izq">
<a href="javascript:enviarFormulario();"><img src="piezas/bt_enviar.jpg" alt="Enviar" border="0" /></a><br />
</div>
</form>
</div>
</div>
<div id="layer3copy"></div>
<!-- <div id="facebook" class=""><a href="" target="_blank" title="Siguenos en Facebook"><img src="piezas/facebook.png" width="40" height="40" alt="facebook" border="0" /></a></div> --></div><!-- /page --><!--/footer-->
</div><!-- /top -->
<!-- -->
<!-- -->
<?php
if (isset($_POST["Env"])){
$email = $_POST["EMAIL"];
$busca = @mysql_query("SELECT * FROM contacto WHERE EMAIL LIKE '$email'");
$resultados = mysql_num_rows($busca);
if ($resultados != 0){
?>
<script type="text/javascript">alert("El Email ya está siendo usado");</script>
<?php
}else{
$value = "Nombre='".$_POST["NOMBRE"]."',Email='".$_POST["EMAIL"]."',Telefono='".$_POST["TELEFONO"]."',Asunto='".$_POST["ASUNTO"]."',Consulta='".$_POST["CONSULTA"]."'";
$sql= "INSERT INTO contacto SET $value";
if (@mysql_query($sql)) {
enviarcorreo( "[email protected]", "Consulta Web");
?>
<script type="text/javascript">alert("Su correo ha sido registrado.");</script>
<?php
} else {
?>
<script type="text/javascript">alert("Se ha producido un error.");</script>
<?php
}
}
}
?>
</body></html>
email.php --------
<?php
function enviarcorreo($micorreo, $miasunto){
//volcamos todos los datos para enviar
foreach (array_keys($_POST) as $valor) {
if ($valor != "Enviar"){
$addvalor = $valor.": ".$_POST[$valor];
$datos = $datos.$addvalor."\n";
}
}
//enviamos el correo
if(@mail($micorreo, $miasunto, utf8_decode($datos))){
?><script type="text/javascript">alert("Su mensaje se ha enviado correctamente.");</script><?php
}else{
?><script type="text/javascript">alert("Se ha producido un error durante el envio.");</script><?php
}
}
?>
conexiondb.php -----------
<?php
//conexion a la base de datos
$bd=@mysql_connect("localhost", "usuario", "clave");
if (!$bd) {
echo ("Error, No se pudo conectar con la base de datos en este
momento, Inténtelo más tarde");
exit();
}
$sel=@mysql_select_db("contactos");
if (!$sel){
echo( "Error, No se puede acceder a la base de datos en este momento, Inténtelo más tarde");
exit();
}
@mysql_query("SET NAMES 'utf8'");
?>
Pruebalo y me dices si tienes dudas o algo.
- Compartir respuesta
- Anónimo
ahora mismo