PHP - Recoger email destino de base de datos MySql

   
Vista:

Recoger email destino de base de datos MySql

Publicado por romay2001 (17 intervenciones) el 28/12/2012 18:43:19
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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= "destino@correo.com";
  $remitente = $_POST['email'];
  $asunto = "Mensaje enviado por: ".$_POST['nombre'];
  mail($destino,$asunto,$mensaje,"FROM: $remitente");
?>
  <p><strong>Mensaje enviado.</strong></p>
<?php
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Recoger email destino de base de datos MySql

Publicado por xve (5513 intervenciones) el 29/12/2012 08:47:39
Para ello, tendrás que hacer la consulta a la base de datos, no? no se muy bien cual es el problema que tienes... nos puedes informar con mas detalle?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recoger email destino de base de datos MySql

Publicado por romay2001 (17 intervenciones) el 29/12/2012 10:27:00
Buenas,

Muchas gracias por tu pronta respuesta. Te comento:

La consulta ya la tengo echa con el nombre de "detalle_empresa" que extrae todos los datos de una tabla "empresas" entre los cuales se encuentra el campo "email" de cada empresa.

En el código que os he pasado antes (hacia el final) se encuentra la dirección a la que se envía el formulario de contacto, fíjate:

$destino= "destino@correo.com";

Lo que pasa es que es una dirección siempre igual, yo quiero que sea dinámica, ya que el formulario va a estar en la ficha de contacto de cada empresa y quiero que cada mensaje enviado vaya a la dirección de cada empresa.

Espero que se haya entendido.

Muchas gracias de antemano por la ayuda.


Miguel Varela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Recoger email destino de base de datos MySql

Publicado por xve (5513 intervenciones) el 30/12/2012 10:42:44
La verdad es que no se muy bien donde tienes el problema...

Si has realizado una consulta a la base de datos, y tienes el campo con el valor, en vez de poner:
1
$destino= "destino@correo.com";

pon algo así:
1
$destino=$row["email"];


Como no vemos la consulta, no se exactamente el nombre de la variable...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recoger email destino de base de datos MySql

Publicado por romay2001 (17 intervenciones) el 30/12/2012 13:56:28
Buenas,

Muchas gracias Xve por la respuesta, desafortunadamente creo que no funciona. La consulta se llama detalle (recoge todos los datos identificativos típicos de una empresa). He probado a poner lo siguiente:

$destino= $row_detalle['email'];

Pero no ha habido suerte, no funciona.

Muchas gracias a todos de antemano.


romay2001
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de xve

Recoger email destino de base de datos MySql

Publicado por xve (5513 intervenciones) el 30/12/2012 17:18:13
Hola, pon esto en el código:

print_r($row_detalle);

y muéstranos que te devuelve... ahí veremos el contenido del array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recoger email destino de base de datos MySql

Publicado por romay2001 (17 intervenciones) el 30/12/2012 19:21:42
Muchas gracias Xve,

Al código que me has dado en el anterior mensaje le he añadido lo de 'email' y lo he insertado así:

$destino= print_r($row_detalle['email'];

Al actualizarlo en el servidor y presentarlo me sale un syntax error.

Ni tan siquiera sé si he hecho lo que me pedias. Mis conocimientos de php son algo limitados.

Un saludo

romay2001
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de xve

Recoger email destino de base de datos MySql

Publicado por xve (5513 intervenciones) el 31/12/2012 09:32:31
Perdona no me explique...

print_r($row_detalle);

es una sola linea, simplemente inserta una linea y ponlo.
http://php.net/manual/es/function.print-r.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recoger email destino de base de datos MySql

Publicado por romay2001 (17 intervenciones) el 31/12/2012 12:07:28
Buenas, muchisimas gracias por toda tu ayuda pero tampoco esta vez ha habido suerte. Te dejo como lo he puesto, da un error de sintaxis:

<?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'];
print_r($row_detalle['email'];
$remitente = $_POST['email'];
$asunto = "Mensaje enviado por: ".$_POST['nombre'];
mail($destino,$asunto,$mensaje,"FROM: $remitente");
?>
<p><strong>Mensaje enviado.</strong></p>
<?php
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de xve

Recoger email destino de base de datos MySql

Publicado por xve (5513 intervenciones) el 31/12/2012 17:58:56
pero yo no te he dicho que pongas eso que has puesto¿? lee los mensajes anteriores!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Recoger email destino de base de datos MySql

Publicado por romay2001 (17 intervenciones) el 01/01/2013 16:09:44
Muy buenas y, ante todo, muy feliz 2013,

La verdad es que, tal como me parecía, no he entendido bien donde tenía que poner el código que me dabas. No obstante, ya he encontrado una solución y quiero compartirla contigo.

He añadido un campo "input" que automáticamente se rellena con el valor del email destino y luego la variable "destino" recoge dicha dirección de email. El único "problema" es que me aparece un campo tipo "input" con el email a donde se va a enviar el formulario. Es un problema menor y no me importa, igual estaría bien hacerlo invisible de alguna forma. Esto es lo que tengo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    <label>      </label>
    <table width="630" border="0" cellspacing="0" cellpadding="5">
      <tr>
        <th colspan="4" scope="col"><span class="Estilo27">Contacto directo con</span> <span class="Estilo15"><?php echo $row_detalle['nombre']; ?></span></th>
        </tr>
      <tr>
        <td width="18%" class="Estilo28">Nombre:
          <input name="nombre" type="text" size="20" /></td>
        <td width="18%" class="Estilo28">Tel&eacute;fono:
          <input name="telefono" type="text" size="15" /></td>
        <td width="27%"><span class="Estilo28">Email:
          <input name="email" type="text" size="24" />
        </span></td>
        <td width="37%" class="Estilo28">Para:
          <input name="destino" type="text" value="<?php echo $row_detalle['email']; ?>" size="20" /></td>
      </tr>
      <tr>
        <td colspan="4"><span class="Estilo28">Mensaje:</span>          <textarea name="mensaje" rows="6" cols="74"></textarea></td>
        </tr>
      <tr>
        <td colspan="2">&nbsp;</td>
        <td><input name="reset" type="reset" value="Borrar" /></td>
        <td><input name="submit" type="submit" value="Enviar"/></td>
      </tr>
    </table>
    <label><br />
      <br />
    </label>
              </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= $_POST['destino'];
  $remitente = $_POST['email'];
  $asunto = "Mensaje enviado por: ".$_POST['nombre'];
  mail($destino,$asunto,$mensaje,"FROM: $remitente");
?>
  <p><strong>Mensaje enviado.</strong></p>
<?php
}
?>


Funcionar funciona, a ver que te parece a ti la solución.

Muchas gracias por toda la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar