Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/02/2006, 13:09
Avatar de claudiovega
claudiovega
 
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 21 años
Puntos: 11
Lo que dicen es que compruebes que los parámetros pasados a la función mail no contengan esos headers. Para ello, inserta la funcion que ellos te dan en tu codigo y luego la llamas antes de llamar la funcion mail, comprobando que los parametros que pasará a ésta estén sin esos headers, te muestran incluso el ejemplo de como hacerlo.

Código PHP:
<?php
  
include("global.inc.php");

  
//colocamos la funcion
  
function ValidarDatos($campo){
    
//Array con las posibles cabeceras a utilizar por un spammer
    
$badHeads = array("Content-Type:",
                                 
"MIME-Version:",
                                 
"Content-Transfer-Encoding:",
                                 
"Return-path:",
                                 
"Subject:",
                                 
"From:",
                                 
"Envelope-to:",
                                 
"To:",
                                 
"bcc:",
                                 
"cc:");

    
//Comprobamos que entre los datos no se encuentre alguna de
    //las cadenas del array. Si se encuentra alguna cadena se
    //dirige a una página de Forbidden
    
foreach($badHeads as $valor){ 
      if(
strpos(strtolower($campo), strtolower($valor)) !== false){ 
        
header("HTTP/1.0 403 Forbidden"); 
        exit; 
      }
    } 
  } 
  
$errors=0;
  
$error="Se encontraron los siguientes errores mientras se enviaba la información.<ul>";
  
pt_register('POST','Email');
  
pt_register('POST','Nombredelservidorpublico');
  
pt_register('POST','Apellidodelservidorpublico');
  
pt_register('POST','Hechosqueconstituyenladenuncia');
    
$Hechosqueconstituyenladenuncia=preg_replace("/(\015\012)|(\015)|(\012)/","&nbsp;<br />"$Hechosqueconstituyenladenuncia);if($Email=="" || $Nombredelservidorpublico=="" || $Apellidodelservidorpublico=="" || $Hechosqueconstituyenladenuncia=="" ){
   
$errors=1;
   
$error.="<li>No llenó uno o más de los espacios requeridos. Por favor regrese e inténtelo de nuevo.";
}
   if(!
eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$Email)){
   
$error.="<li>Escribió una dirección de correo inválida";
   
$errors=1;
}
   if(
$errors==1) echo $error;
   else{
$where_form_is="http".($HTTP_SERVER_VARS["HTTPS"]=="on"?"s":"")."://".$SERVER_NAME.strrev(strstr(strrev($PHP_SELF),"/"));
$message="Nombre completo: ".$Nombrecompleto."
Primer apellido:"
.$Primerapellido."
Segundo apellido:"
.$Segundoapellido."
Calle: "
.$Calle."
Numero:"
.$Numero."
Colonia:"
.$Colonia."
Ciudad:"
.$Ciudad."
Telefono: "
.$Telefono."
Email: "
.$Email."
Nombre del servidor publico: "
.$Nombredelservidorpublico."
Primer apellido del servidor publico: "
.$Apellidodelservidorpublico."
Segundo apellido del servidor publico:"
.$Segundoapellidodelservidor."
Hechos que constituyen la denuncia: "
.$Hechosqueconstituyenladenuncia."
"
;
   
$message stripslashes($message);

   
//validar datos del mensaje
   
ValidarDatos($mensaje):
   
mail("[email protected],","Denuncia de corrupción",$message,"From: phpFormGenerator");

   
header("Refresh: 0;url=http://www.midominio.com/gracias.htm");
?>
<?php 
}
?>