Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/06/2011, 03:47
ivimendoza
 
Fecha de Ingreso: abril-2011
Mensajes: 85
Antigüedad: 13 años
Puntos: 5
Problema con formulario

Buenas, tengo el siguiente código:

Código PHP:
Ver original
  1. <?php
  2. function form_mail($Para, $Asunto, $Texto, $De)
  3. {
  4. $bHayFicheros = 0;
  5. $CabeceraTexto = "";
  6. $Adjuntos = "";
  7.  
  8. if ($De)$Cabeceras = "From:".$De."\n";
  9. else $Cabeceras = "";
  10. $Cabeceras .= "MIME-version: 1.0\n";
  11. foreach ($_POST as $Nombre => $Valor)
  12. $Texto = $Texto."\n".$Nombre." = ".$Valor;
  13.  
  14. foreach ($_FILES as $vAdjunto)
  15. {
  16. if ($bHayFicheros == 0)
  17. {
  18. $bHayFicheros = 1;
  19. $Cabeceras .= "Content-type: multipart/mixed;";
  20. $Cabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
  21.  
  22. $CabeceraTexto = "----_Separador-de-mensajes_--\n";
  23. $CabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
  24. $CabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
  25.  
  26. $Texto = $CabeceraTexto.$Texto;
  27. }
  28. if ($vAdjunto["size"] > 0)
  29. {
  30. $Adjuntos .= "\n\n----_Separador-de-mensajes_--\n";
  31. $Adjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
  32. $Adjuntos .= "Content-Transfer-Encoding: BASE64\n";
  33. $Adjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
  34.  
  35. $oFichero = fopen($vAdjunto["tmp_name"], 'r');
  36. $Contenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
  37. $Adjuntos .= chunk_split(base64_encode($Contenido));
  38. fclose($oFichero);
  39. }
  40. }
  41.  
  42. if ($bHayFicheros)
  43. $Texto .= $Adjuntos."\n\n----_Separador-de-mensajes_----\n";
  44. return(mail($Para, $Asunto, $Texto, $Cabeceras));
  45. }
  46.  
  47. //cambiar aqui el email
  48. if (form_mail("[email protected]", $_POST[asunto],
  49. "Su bandeja de entrada ha recibido uno o varios e-mails:\n\n", $_POST[email]))
  50. echo "form enviado";
  51. ?>

El caso es que todo va bien, se manda correctamente y demás, pero claro... si accedo directamente al archivo PHP desde un servidor se envía un mensaje en blanco... y claro, eso ocasiona muchos mensajes spam... entonces mi pregunta es, como hago que cuando entre a la ruta del archivo PHP no se mande? Simplemente que el archivo se mande si lo llamo desde otro sitio?

Un saludo y gracias

Última edición por jpinedo; 13/06/2011 a las 17:47