Comunidad de diseño web y desarrollo en internet online

Formulario correo: recoger email destino de una db Mysql

Citar            
MensajeEscrito el 28 Dic 2012 07:27 pm
Buenas,

A ver si me podeis echar una mano con este dilema. Estoy haciendo un formulario de contacto y quiero que el email de destino lo recoja de una base de datos MySql.

El formulario en si ya funciona pero no recoge el email de la base de datos sinó que hay que dárselo en la programación.

Las conexiones en la base de datos y vinculaciones ya están correctamente hechas.

Esta es la parte de programación que tengo referida al formulario de contacto y al envío del mismo, muchas gracias de antemano

<?php
if (!isset($_POST['email'])) {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>
Nombre:
<input name="nombre" type="text" />
</label>
<label>
Teléfono:
<input name="telefono" type="text" />
</label>
<label>
Email:
<input name="email" type="text" />
</label>
<label>
Mensaje:
<textarea name="mensaje" rows="6" cols="50"></textarea>
</label>
<input type="reset" value="Borrar" />
<input type="submit" value="Enviar" />
</form>
<?php
}else{
$mensaje="Mensaje del formulario de contacto de nnatali.com";
$mensaje.= "\nNombre: ". $_POST['nombre'];
$mensaje.= "\nEmail: ".$_POST['email'];
$mensaje.= "\nTelefono: ". $_POST['telefono'];
$mensaje.= "\nMensaje: \n".$_POST['mensaje'];
$destino= "[email protected]";
$remitente = $_POST['email'];
$asunto = "Mensaje enviado por: ".$_POST['nombre'];
mail($destino,$asunto,$mensaje,"FROM: $remitente");
?>
<p><strong>Mensaje enviado.</strong></p>
<?php

Por romay2001

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Ene 2013 07:58 pm
Donde estás obteniendo los datos de la DB??

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

firefox
Citar            
MensajeEscrito el 09 Ene 2013 09:39 am

danmoracr escribió:

Donde estás obteniendo los datos de la DB??


Muchas gracias por la respuesta. Lo que he hecho es montar una consulta llamada "detalle" tal que así:

<?php require_once('Connections/listado.php'); ?>
<?php require_once('Connections/empresas.php'); ?>

<?php
$colname_detalle = "-1";
if (isset($_GET['empresa_id'])) {
$colname_detalle = (get_magic_quotes_gpc()) ? $_GET['empresa_id'] : addslashes($_GET['empresa_id']);
}
mysql_select_db($database_listado, $listado);
$query_detalle = sprintf("SELECT empresas.empresa_id, empresas.nombre, logo, actividades.id_actividad, actividades.actividad, descripcion, calle, cp, poblacion, concellos.concello, concellos.id_concello, provincias.provincia, tlf1, tlf2, fax, email, web, mapa, foto1, foto2, foto3, foto4, provincias.id_provincia, empresas.documento, empresas.descripcion_documento FROM empresas, provincias, concellos, actividades, empresas_destacadas WHERE empresas.empresa_id = %s AND provincias.id_provincia = empresas.id_provincia AND concellos.id_concello = empresas.id_concello AND actividades.id_actividad = empresas.id_actividad ", $colname_detalle);
$detalle = mysql_query($query_detalle, $listado) or die(mysql_error());
$row_detalle = mysql_fetch_assoc($detalle);
$totalRows_detalle = mysql_num_rows($detalle);

Los datos los recoge todos bien al hacer la prueba en Dreamweaver.

Gracias de nuevo

romay2001

Por romay2001

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Ene 2013 04:16 pm
Hola, he revisado el codigo y te hago algunas sugerencias, revisalo y me avisas como te va.

Código PHP :

<?php
require_once('Connections/listado.php');
require_once('Connections/empresas.php');

$colname_detalle = "-1";
if (isset($_GET['empresa_id'])) {
   $colname_detalle = (get_magic_quotes_gpc()) ? $_GET['empresa_id'] : addslashes($_GET['empresa_id']);
}

mysql_select_db($database_listado, $listado);

// PARA EMPEZAR NO SE SI NECESITAS CONSULTAR TODOS LOS CAMPOS, YO SOLO TRAERIA EL CAMPO email
//$query_detalle = sprintf("SELECT empresas.empresa_id, empresas.nombre, logo, actividades.id_actividad, actividades.actividad, descripcion, calle, cp, poblacion, concellos.concello, concellos.id_concello, provincias.provincia, tlf1, tlf2, fax, email, web, mapa, foto1, foto2, foto3, foto4, provincias.id_provincia, empresas.documento, empresas.descripcion_documento FROM empresas, provincias, concellos, actividades, empresas_destacadas WHERE empresas.empresa_id = %s AND provincias.id_provincia = empresas.id_provincia AND concellos.id_concello = empresas.id_concello AND actividades.id_actividad = empresas.id_actividad ", $colname_detalle);

//NO SE SI SON LOS CAMPOS CORRECTOS, PERO LA IDEA ES ESTA
$query_detalle = sprintf("SELECT email FROM empresas WHERE empresa_id = %s LIMIT 1", $colname_detalle);
$detalle = mysql_query($query_detalle, $listado) or die(mysql_error());
$row_detalle = mysql_fetch_assoc($detalle);
$totalRows_detalle = mysql_num_rows($detalle);
   
if (!isset($_POST['email'])):

// En el formalario hay que pasar de alguna manera el id de la empresa, ya que utilizas la variable PHP_SELF debes agregar manual el ID
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>?empresa_id=<?php echo $colname_detalle; ?>" method="post">
   <label>Nombre: <input name="nombre" type="text" /></label>
   <label>Teléfono: <input name="telefono" type="text" /></label>
   <label>Email: <input name="email" type="text" /></label>
   <label>Mensaje: <textarea name="mensaje" rows="6" cols="50"></textarea></label>
   <input type="reset" value="Borrar" /> <input type="submit" value="Enviar" />
</form>
<?php
else:
   $mensaje="Mensaje del formulario de contacto de nnatali.com";
   $mensaje.= "\nNombre: ". $_POST['nombre'];
   $mensaje.= "\nEmail: ".$_POST['email'];
   $mensaje.= "\nTelefono: ". $_POST['telefono'];
   $mensaje.= "\nMensaje: \n".$_POST['mensaje'];
   /* ------------------------------------------------------- */
   $destino = $row_detalle['email'];
   /* ------------------------------------------------------- */
   $remitente = $_POST['email'];
   $asunto = "Mensaje enviado por: ".$_POST['nombre'];

   $send = mail($destino,$asunto,$mensaje,"FROM: $remitente");

   if($send){
      echo "<p><strong>Mensaje enviado.</strong></p>";
   }
endif;

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

firefox
Citar            
MensajeEscrito el 11 Ene 2013 10:16 am
Muchas gracias, funciona perfectamente y era justo lo que necesitaba.

Un saludo y muchas gracias de nuevo pues me ha servido de gran ayuda.


romay2001

Por romay2001

11 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.