Foros del Web » Programando para Internet » PHP »

Registrar en base de datos y enviar información a correo

Estas en el tema de Registrar en base de datos y enviar información a correo en el foro de PHP en Foros del Web. Buenas tardes a todos, tengo un problema al cual no le encuentro una solución, estoy realizando un registro a una base de datos y al ...
  #1 (permalink)  
Antiguo 17/08/2015, 14:37
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Registrar en base de datos y enviar información a correo

Buenas tardes a todos, tengo un problema al cual no le encuentro una solución, estoy realizando un registro a una base de datos y al intentar recuperar los valores ingresados para enviarlos mediante MAIL() al correo del usuario, esta información simplemente no se envía, todo lo estoy metiendo en un mismo código porque estoy generando un número de serie que se tiene que registrar en la base de datos y le tiene que llegar usuario a manera de notificación.

Ya busque en otras paginas con ejemplos y no doy con la solución, espero que alguien con más experiencia en el tema me pueda corregir en lo que me estoy equivocando.

Muchas gracias.


Código PHP:
Ver original
  1. <?php
  2.  
  3.   //GENERO UN NUMERO ALEATORIO QUE TENDRE QUE ENVIAR AL USUARIO, ALGO ASI COMO UN TIQUET DE REGISTRO
  4.   $caracteres="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  5.   $maximo = strlen($caracteres);
  6.   for ($i=1; $i<=10; $i++){
  7.       $generar_codigo = mt_rand(1, $maximo);
  8.       $codigo.=$caracteres[$generar_codigo-1];
  9.   }
  10.  
  11.   $bd_host = "localhost";
  12.   $bd_usuario = "XXXXXXX";
  13.   $bd_password = "XXXXXXX";
  14.   $bd_base = "XXXXXXX";
  15.  
  16.   $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
  17.   mysql_select_db($bd_base, $con);
  18.  
  19.   if(!empty($_POST['name']) AND !empty($_POST['email']) AND !empty($_POST['telephone']) AND !empty($_POST['reason'])){
  20.  
  21.   $name=iconv("UTF-8", "ISO-8859-1",ucwords(strtolower($_POST["name"])));
  22.   $email=strtolower($_POST["email"]);
  23.   $telephone=$_POST['telephone'];
  24.   $reason=iconv("UTF-8", "ISO-8859-1",ucfirst(strtolower($_POST['reason'])));
  25.  
  26.   $resonarray=array(
  27.         '1' => 'FALLA DE SISTEMA',
  28.         '2' => 'ERROR DE CAPTURA',
  29.         '3' => 'OTRO'
  30.     );
  31.  
  32.   $question=iconv("UTF-8", "ISO-8859-1",$_POST['question']);
  33.   $texto=iconv("UTF-8", "ISO-8859-1",ucfirst(strtolower($_POST["texto"])));
  34.   $serial=$codigo;
  35.  
  36.   $sql="INSERT INTO aclaracion (nombre, correo, telefono, motivo, aclaracion, descripcion, folio) VALUES ('$name', '$email', '$telephone', '$resonarray[$reason]', '$question', '$texto', '$serial')";
  37.   mysql_query($sql,$con) or die('Error. '.mysql_error());  // <- HASTA AQUI TODO BIEN, EL PROBLEMA ES QUE NO ME ENVIA NINGUN CORREO
  38.  
  39.   $cuestion = 'Aclaración folio: ' . $serial;
  40.   $namesender = 'Atención';
  41.   $mailsender = '[email protected]';
  42.  
  43.   //GENERO UN ARREGLO PARA QUE DEPENDIENDO DEL TIPO DE MOTIVO SE ENVIE UNA COPIA OCULTA AL PERSONAL DEL AREA QUE CORRESPONDE
  44.   $carboncopy=array(
  45.         '1' => '[email protected], [email protected]',
  46.         '2' => '[email protected], [email protected]',
  47.     );
  48.  
  49.   $body = "MIME-Version: 1.0\n";
  50.   $body = "Content-type: text/html; charset=UTF-8\n";
  51.   $body = 'Nombre del usuario: '. $name;
  52.  
  53.   mail($email,$cuestion,$body,"MIME-Version: 1.0\nContent-type: text/html; charset=UTF-8\nFrom: ".$namesender."<" . $mailsender . ">\nBcc:".$carboncopy[$reason]);
  54.  
  55.   } else {
  56.     echo "Error, verifica los campos.";
  57.   }
  58.  
  59. ?>
  #2 (permalink)  
Antiguo 17/08/2015, 14:53
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Registrar en base de datos y enviar información a correo

no es necesario recuperar la data luego de ingresada, solo utiliza las mismas variables que pasas desde el form para cargar la data del email y enviarlo
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 17/08/2015, 15:00
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Registrar en base de datos y enviar información a correo

Hola xfxstudios, gracias por tu comentario.
Pues así lo intento pero no se envía. Desde el formulario lo envio de esta forma

Código HTML:
Ver original
  1. <form action="upload.php" method="post" enctype="multipart/form-data" target="upload_window">

Pero como digo solo se registra en la base de datos, pero no se envía ningún correo.
  #4 (permalink)  
Antiguo 17/08/2015, 15:32
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Registrar en base de datos y enviar información a correo

esto no es body:

Código PHP:
Ver original
  1. $body = "MIME-Version: 1.0\n";
  2.   $body = "Content-type: text/html; charset=UTF-8\n";
declaralas como header y si vas a colocar varias lineas en el body debes concatenar, algo asi:

Código PHP:
Ver original
  1. $body = "DATOS1\n";
  2.  $body .= "DATOS2\n";
  3.  $body .= "DATOS 3";
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 17/08/2015, 16:00
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Registrar en base de datos y enviar información a correo

Gracias corregí eso de acuerdo a tu mensaje pero aun así no se envía ningún correo.
  #6 (permalink)  
Antiguo 17/08/2015, 16:34
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Registrar en base de datos y enviar información a correo

no se que servidopr estas utilizando para tu prueba, si es local o es un hosting, pero prueba a editar todo de esta manera:

http://php.net/manual/es/function.mail.php
__________________
[email protected]
HITCEL

Etiquetas: correo, registro
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 12:47.