Foros del Web » Programando para Internet » PHP »

Correo y Bases de datos

Estas en el tema de Correo y Bases de datos en el foro de PHP en Foros del Web. Bueno antes que nada un saludo a todos los participantes del foro. Antes que nada tratare de explicar lo que intento hacer, deseo enviar los ...
  #1 (permalink)  
Antiguo 23/11/2004, 11:53
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2
Antigüedad: 19 años, 5 meses
Puntos: 0
Correo y Bases de datos

Bueno antes que nada un saludo a todos los participantes del foro. Antes que nada tratare de explicar lo que intento hacer, deseo enviar los datos de un formulario a una base de datos MySQL y que tambien se envien a un correo, he logrado hacer que se envien los datos a la base de datos y tambien he logrado hacer que se envien por correo pero cuando lo hago de esta forma se envian 2 correos, uno al cargar la pagina con datos en blanco y el otro al enviar los datos a la base de datos.

No se si exista alguna forma mas sencilla de hacer lo que quiero hacer pero creanme que ya me frustre xP asi que espero puedan ayudarme cualquier idea o ayuda para mejorarlo sera muy agradecida ( ).

Bueno un saludo y espero me ayuden xP see ya'!
  #2 (permalink)  
Antiguo 23/11/2004, 12:06
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Saludos.

Cómo haces para mandar a guardar en tu base de datos solamente cuando vienen valores de tu form?? O cada vez que carga el formulario vacio, se guarda un registro con campos vacios en tu DB ??

Asímismo debes hacer para mandar el mail. "Verifica" que estas haciendo un action antes de enviar el mail.

Algo así:

Código PHP:
if ($_POST['nombre']) {
 
/* Guardo los datos en la DB y envio el mail */
}else{
 
/* Muestro el formulario vacio para que llenen los datos.*/

Donde $_POST['nombre'] es uno de los campos de tu formulario

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 23/11/2004, 12:25
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2
Antigüedad: 19 años, 5 meses
Puntos: 0
OK gracias pero ... no entiendo muy bien lo que me tratas de decir, mira digamoslo de esta forma :

Lo que quiero hacer es enviar el registro a la base de datos y enviar un correo con esos datos pero lo que me pasa es esto :

1) abro la pagina donde esta mi formulario y me envia un correo en blanco, mas sin embargo no agrega ningun registro a mi base de datos.
2) relleno los datos y agrega el registro a la base de datos y me envia un correo con ellos.

el codigo de mi formulario es este :
<form action="correo.php" name="form1" method="POST" > <-- de esta forma solo me envia un correo con los datos al pulsar

contenido de correo .php
<?php
@extract($_POST);
$nomven = stripslashes ($nomven);
$nomcte = stripslashes($nomcte);
$dir = stripslashes($dir);
mail('[email protected]',$nomven,"$nomcte\n,$ nomven";
header("location:clientes.php");
?>

caso 2

<form action=<? php echo $editFormAction; @extract($_POST);
$nomven = stripslashes ($nomven);
$nomcte = stripslashes($nomcte);
$dir = stripslashes($dir);
mail('[email protected]',$nomven,"$nomcte\n,$ nomven";
header("location:clientes.php"); ?> name="form1" method="POST" >

<-- de esta forma me envia un correo en blanco y despues de llenar los datos me lo agrega el registro a la base y me envia el correo con los datos.
  #4 (permalink)  
Antiguo 23/11/2004, 12:45
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
No creo que lo vea tan claro pero voy a tratar de ordenar un poco las ideas.

Tu tienes un formulario donde tus usuarios llenan unos campos.

Ese formulario llevara esos datos hasta un registro en la DB y los enviara por mail.

Ahora, yo lo haría así:

Archivo trabajar.php:

Código PHP:
<?
   
if (!$_POST['name']) { //Si no vienen datos muestro el formulario
?>

<form action="trabajar.php" method ="POST">
<input type="text" name="nombre">
<input type="submit" value="Enviar" name="Enviar">
</form>

<?
   
}elseif ($_POST['name']) {

    
//Guardo en la DB
   
$nombre stripslashes ($_POST['nombre']);
   
$query "INSERT INTO TU_TABLA (nombre_usuario) VALUES ('".$nombre."')";

    
//Envio el mail
    
mail('[email protected]',$nombre,"$nombre\n,$nombre";
?>
Email enviado
<?
   
}
?>

Así no tienes que hacer header location ni usar varios archivos.

Todo lo puedes hacer en uno solo.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 23/11/2004 a las 12:55
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 08:10.