Foros del Web » Programando para Internet » PHP »

Insertar formulario en Mysql y enviar por correos.

Estas en el tema de Insertar formulario en Mysql y enviar por correos. en el foro de PHP en Foros del Web. Buenas a todos otra vez. Tengo un formulario de contacto que he insertado en una web con dreamweaber, a su vez tengo creada una base ...
  #1 (permalink)  
Antiguo 25/10/2011, 08:43
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 7 meses
Puntos: 10
Insertar formulario en Mysql y enviar por correos.

Buenas a todos otra vez.

Tengo un formulario de contacto que he insertado en una web con dreamweaber, a su vez tengo creada una base de datos en mysql "nombre" y una tabla "contacto".

Lo que me gustaria es insertar en la tabla de la base de datos los datos de este formulario y que ademas los datos de ese formulario se envien a una direccion de correos.

Insertar los datos del formulario en la tabla de la base de datos no es problema, ya esta hecho y funciona a la perfeccion.

Ahora pregunto, dentro del codigo que me genera dreamweaber como ademas mando ese formulario por correos ????

Puestos, se me ocurre introducir este codigo php despues de todo el que se genera por dreamweaber y justo antes del cierre del formulario, o es despues ?? </form>

El formulario tiene 6 campos y el codigo php seria:

Código PHP:
<?php
 $dia
=date("m.d.Y");
 
$hora=date("H:i:s");
 
$nombre $_POST['nombre']; 
 
$email $_POST['email']; 
 
$telefono $_POST['telefono']; 
 
$asunto $_POST['asunto'];
 
$texto $_POST['texto']; 
 
$destinatario="[email protected]";
 
$subject$asunto;
 
$desde 'Desde: ' $emai;
 
$contingut "
 El mensaje se a enviado el dia: $dia a las: $hora\n\n 
----------------------------------------------------------------------------\n
 Nombre: $nombre\n
 Email: $email\n
 Consulta / Asunto: $asunto\n
 Telefono: $telefono\n
 Texto: $texto\n
 ----------------------------------------------------------------------------\n
 "
;
 
mail($destinatario$subject$contingut$desde);
 
?>
Me podriais decir si esto funcionaria ?????

Como siempre, muchisimas gracias por vuestra atencion y dedicacion
Manyblue
  #2 (permalink)  
Antiguo 25/10/2011, 11:28
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 21 años, 5 meses
Puntos: 13
Respuesta: Insertar formulario en Mysql y enviar por correos.

Yo pondría este código juso antes o después del que inserta los datos en la bbdd. Creas las variables que vienen del formulario. Pues muy bien. Esas mismas variables las usas para insertar los datos dentro de la bbdd.
  #3 (permalink)  
Antiguo 26/10/2011, 02:52
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 7 meses
Puntos: 10
Respuesta: Insertar formulario en Mysql y enviar por correos.

OK, muchas gracias ante todo.
Las seis variables del php que envia el formulario son las mismas del formulario de insersion de registro (11) (hay un menu cargado a mano no desde la base de datos) de los cuales del formulario solo son (5) (nombre, email, telefono, asunto, texto) (asunto es el menu cargado a mano).
Bajo estas premisas y suponiendo que el codigo de envio es correcto, pues el de insersion del formulario en su tabla de su base de datos si que es correcto, esta comprobado.

Formulario:


Código PHP:
<form method="post" name="form1" action="<?php echo $editFormAction?>">
            <table width="670" align="center">
              <tr valign="baseline">
                <td width="278" align="right" valign="middle" nowrap>Nombre / Name:</td>
                <td width="380" align="left" valign="top"><input name="nombre" type="text" class="formulario" value="" size="25"></td>
              </tr>
              <tr valign="baseline">
                <td align="right" valign="middle" nowrap>Email:</td>
                <td align="left" valign="top"><input name="email" type="text" class="formulario" value="" size="30"></td>
              </tr>
              <tr valign="baseline">
                <td align="right" valign="middle" nowrap>Tel&eacute;fono / Telephone / Telefone:</td>
                <td align="left" valign="top"><input name="telefono" type="text" class="formulario" value="" size="13"></td>
              </tr>
              <tr valign="baseline">
                <td align="right" valign="middle" nowrap>Asunto / issue / Ausgabe:</td>
                <td align="left" valign="top"><select name="asunto" class="formulario">
                  <option value="Información General" <?php if (!(strcmp("Información General"""))) {echo "SELECTED";} ?>>Información General</option>
                  <option value="Dudas, Quejas y Sugerencias" <?php if (!(strcmp("Dudas, Quejas y Sugerencias"""))) {echo "SELECTED";} ?>>Dudas, Quejas y Sugerencias</option>
                  <option value="Molestias Vecinales" <?php if (!(strcmp("Molestias Vecinales"""))) {echo "SELECTED";} ?>>Molestias Vecinales</option>
                  <option value="Negocios" <?php if (!(strcmp("Negocios"""))) {echo "SELECTED";} ?>>Negocios</option>
                </select></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right" valign="top">Texto / Text:</td>
                <td align="left" valign="top"><textarea name="texto" cols="40" rows="5" class="formulario"></textarea></td>
              </tr>
              <tr valign="baseline">
                <td nowrap align="right">&nbsp;</td>
                <td align="left" valign="top"><br>
                  <input type="submit" class="formulario" value="Enviar">
                  <input name="button" type="reset" class="formulario" id="button" value="Restablecer"></td>
              </tr>
            </table>
            <input type="hidden" name="MM_insert" value="form1">
          </form>

Este es es codigo de envio:


Código PHP:
<?php
 $dia
=date("m.d.Y");
 
$hora=date("H:i:s");
 
$nombre $_POST['nombre']; 
 
$email $_POST['email']; 
 
$telefono $_POST['telefono']; 
 
$asunto $_POST['asunto'];
 
$texto $_POST['texto']; 
 
$destinatario="[email protected]";
 
$subject$asunto;
 
$desde 'Desde: ' $emai;
 
$contingut "
 El mensaje se a enviado el dia: $dia a las: $hora\n\n 
----------------------------------------------------------------------------\n
 Nombre: $nombre\n
 Email: $email\n
 Consulta / Asunto: $asunto\n
 Telefono: $telefono\n
 Texto: $texto\n
 ----------------------------------------------------------------------------\n
 "
;
 
mail($destinatario$subject$contingut$desde);
 
?>

Osea, introduzco el codigo php del envio antes (<form>) o despues (</form>)
Ya se que entre los dos no va, lo he probado y me da errores php.
Lo probare pero debere subir todo al server junto con la base de datos pues en mi pc no va, el server tiene "sendmail" por lo que si envia el formulario.

Es todo esto correcto ??

Como siempre muchisimas gracias por tu atencion y un saludo:
Manyblue

PD: Se me olvido, el formulario no lo cree yo lo creo dreamweaber mediante DATOS - INSERTAR REGISTRO, pero yo cogi las mismas pal codigo de envio, miralo.
  #4 (permalink)  
Antiguo 01/11/2011, 10:11
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 7 meses
Puntos: 10
Respuesta: Insertar formulario en Mysql y enviar por correos.

Inserte el código despues y antes de <form> y </form> y nada no se me abre la pagina en cuestion, los permisos estan bien
  #5 (permalink)  
Antiguo 01/11/2011, 10:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Insertar formulario en Mysql y enviar por correos.

1 - recuerda que PHP se ejecuta del lado del servidor

2 - debes de verificar si se ha enviado data por POST, de esa forma puedes enviar el correo, de lo contrario se enviara uno vacio

3 - ¿que OS tiene el server?: en OS windows has de instalar y configurar un SMTP
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 02/11/2011, 04:38
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 7 meses
Puntos: 10
Respuesta: Insertar formulario en Mysql y enviar por correos.

bueno a ver creo que no me he explicado bien, por lo que pido disculpas.
Antecedentes.
1) Página web hecha en dreamweaber CS 5.5
2) SO con el que trabajo: Windows 7 Ultimate x64
3) Servidor instalado: WampServer x64 (php, mysql, phpmyadmin
4) Ademas posea 4 servidores en funcionamiento: (3) con Ubuntu 11.04 + Lamp y (1) con freweBSD 8.1 + php + mysql + phpmyadmin.

En los 4 esta instalado sendmail cosa que en el windows no por lo que no lo puedo probar ahi pero en los 4 anteriores si.

Cree la pagina en php con dreamweaber en la cual ya existe conexion mysql para una base de datos (X) con dos tablas y sus consiguientes campos.
No quería solo hacer un (POST) enviar.php para que me mande el formulario en cuestion a una determinada direccion de email si no que lo que hice es usar el asistente de insersion de registro para rellenar la tabla correspondiente de la base de datos y ademas lo enviase ese mismo formulario por email.

Lo primero no hay problema, con el mismo codigo php del archivo enviar.php me envia el formulario perfectamente lo de header para redirigirlo despues no me funciono por lo que en la misma pagina enviar.php puse un texto se envio formulario y enlace a pagina anterior y todo funciono.

Pero no es eso lo que quiero si no insertar formulario en su tabla y ademas que lo envie por correo, intente despues del asistente de insersion de registro meter el php de enviar antes y despues de >form> y </form> que creo dreamweaber pero no me va se queda la pagina trancada y no habre.

Ya no se lo que hacer pues no he encontrado tutos de esto en concreto para dreamweaber. Haciendolo a mano, pues si pero tardaria demasiado pues debo repasar algunos conceptos de php.

Agradeceria ayuda dando las gracias como siempre de antemano.

No se si me termino de explicar para probar todo dije que tengo tres server ahora a disposicion con Ubuntu + el eamp en el pc con adobe CS 5.5 Master collection.

Un saludo para todos: Manyblue

Etiquetas: formulario, mysql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:54.