elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Duda] Formulario PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Formulario PHP  (Leído 1,809 veces)
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
[Duda] Formulario PHP
« en: 6 Julio 2010, 00:28 am »

Hola a todos ::), estaba haciendo un formulario en php que envia datos y una imagen adjunta a un email, quisiera que me ayudaran ya que sigo teniendo errores y el problema creo que esta en el archivo a subir

Ejemplo:

En mi form tengo varias validaciones

if condicion
   elseif
      elseif
          elseif
else

y aqui es donde enviaria el mail si cumple todas las validaciones, el codigo es el siguiente:

Código
  1. else{
  2. //Abre y lee la imagen.
  3. $adjunto = fopen($FILES['voucher']['name'], 'r');
  4. $contenido = fread($adjunto, filesize($FILES['voucher']['name']));
  5. $encoded_attach = chunk_split(base64_encode($contenido));
  6. fclose($adjunto);
  7. //Se recogen los datos del formulario para montar el cuerpo del mensaje.
  8. $mensaje ="- Nombres: $nombres\n";
  9. $mensaje .="- Apellidos: $apellidos\n";
  10. $mensaje .="- DNI o Carne de Extranjeria: $DNI_CarneExtranjeria\n";
  11. $mensaje .="- Tipo Persona: $tipo_persona\n";
  12. // Se monta la cabecera del mensaje.
  13. $cabeceras = "From:<$mail_service>\n";
  14. // Si se requiere "Reply-To" usar: $cabeceras .= "Reply-To:$correo \n";
  15. $cabeceras .= "MIME-version: 1.0\n";
  16. //Se establecen las otras cabeceras del mensaje.
  17. $cabeceras .= "Content-type: multipart/form-data; ";
  18. $cabeceras .= "boundary=\"Message-Boundary\"\n";
  19. $cabeceras .= "X-attachments:".$adjunto;
  20. $cabeceras .= "Content-transfer-encoding: 7BIT\n";
  21. //Se configuran las propiedades del cuerpo del mensaje
  22. $body_top = "--Message-Boundary\n";
  23. $body_top .= "Content-type: text/plain;charset=US-ASCII\n";
  24. $body_top .= "Content-transfer-encoding: 7BIT\n";
  25. $body_top .= "Content-description: Mail messagebody\n\n";
  26. //Se establece el cuerpo del mensaje.
  27. $cuerpo = $body_top.$mensaje;
  28. //Se adjunta la imagen al cuerpo del mensaje.
  29. $nombre_file = $FILES['voucher']['name'];
  30. $cuerpo .= "\n\n--Message-Boundary\n";
  31. $cuerpo .= "Content-type: Binary;name=\"$nombre_file\"\n";
  32. $cuerpo .= "Content-Transfer-Encoding: BASE64\n";
  33. $cuerpo .= "Content-disposition: attachment;filename=\"$nombre_file\"\n\n";
  34. $cuerpo .= "$encoded_attach\n";
  35. $cuerpo .= "--Message-Boundary--\n";
  36. //Se establece la direccion de correo de destino.
  37. $destino = "emaildestino@hotmail.com";
  38. //Se ejecuta la funcion mail PHP.
  39. mail($destino,$asunto,$cuerpo,$cabeceras);
  40. echo 'envio exitoso';
  41. }
  42.  

Y el problema que tengo es el siguiente:

Me aparecen estos errores...

Código
  1. Warning: fopen() [function.fopen]: Filename cannot be empty in /home/miweb/public_html/inscripciones/mail.php on line 195
  2.  
  3. Warning: fread(): supplied argument is not a valid stream resource in /home/miweb/public_html/inscripciones/mail.php on line 196
  4.  
  5. Warning: fclose(): supplied argument is not a valid stream resource in /home/miweb/public_html/inscripciones/mail.php on line 198
  6.  
  7. envio exitoso.
  8.  

Lo que sucede ahora es que el mail se envia y llega de la siguiente forma:


Como veran el adjunto llega totalmente diferente (como si se subiera el temporal o algo asi) y ademas, pesa 0 Kb.

Espero me puedan ayudar, ya he intentado varias cosas y nada  :-\

Gracias!!


En línea

bomba1990


Desconectado Desconectado

Mensajes: 395



Ver Perfil WWW
Re: [Duda] Formulario PHP
« Respuesta #1 en: 8 Julio 2010, 18:18 pm »

bueno lo primero es que segun lo que estas m ostrando es que lo que estas mandadno a leer no existe y el sistema no lo puede leer. deberias hacer una comprobacion primero para sabr si existe el archivo, y segundo hay algo raro en tu mensaje cuando llegue a mi casa leo mejor y te digo si son ideas mias o que.


En línea

"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: [Duda] Formulario PHP
« Respuesta #2 en: 8 Julio 2010, 18:27 pm »

ya lo logre hacer, preferi usar la clase phpmailer... gracias de todas formas  ::)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines