Ver Mensaje Individual
  #12 (permalink)  
Antiguo 08/09/2008, 17:37
binagol
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires
Mensajes: 247
Antigüedad: 15 años, 8 meses
Puntos: 6
Pregunta Respuesta: formulario de contacto con multiple seleccion

De acuerdo, hasta ahora yo venia posteando solo la parte con la que tenia problemas, ahora voy a postear el formulario completo con sus dos partes (formulario y envio del mail...)

validar(this) es una validacion de los campos en JS... no me parecio necesiario agregarlo... al igual que uword y cimg() que son la captcha anti spam.
por ultimo la parte de php la saque de internet y consultando en foros y fue modificada varias veces y adaptada, por lo que es posible que tenga cosas innesesarias y incorrectas...
agradeceria, si logran interpretar lo que hice(que seguramente es un quilombo innecesario) que me digan todos los errores que se presentan. para poder corregirlos.

el formulario seria(sacando le la parte de tablas y diseño):
Código:
<form id="busqueda" name="busqueda" method="post" onsubmit="return validar(this)"  action="enviar.php">
      <input type="hidden" name="token" value="<?=$token?>" />
      <input type="hidden"  name="a" value="1" />
      <input type="hidden" name="ip" value="<?=$_SERVER['REMOTE_ADDR']?>" />
      <input type="hidden" name="httpref" value="<?=$httprefe?>" />
      <input type="hidden" name="httpagent" value="<?=$httpagente?>" />
      <input type="hidden" name="date" value="<?=$datee?>" />                   
                  
      <select name="barrio[]" size="3" multiple="multiple">
          <option value="Indistinto" selected="selected">Indistinto</option>
          <option value="Abasto">Abasto</option>
          <option value="Agronomia">Agronomia</option>
          <option value="Almagro">Almagro</option>
          <option value="Balvanera">Balvanera</option>
          <option value=".. Once">.. Once</option>
          <option value="Barracas">Barracas</option>
          <option value="Barrio Norte">Barrio Norte</option>
          <option value=".. P. Las Heras">.. P. Las Heras</option>
          <option value=".. Plaza San Martin">.. Plaza San Martin</option>
          <option value=".. Recoleta">.. Recoleta</option>
          <option value="Belgrano">Belgrano</option>
          <option value=".. Barrancas">.. Barrancas</option>
     </select>

     <select name="type" class="gris" id="type">
          <option value="Indistinto" selected="selected">Indistinto</option>
          <option value="Departamento">Departamento</option>
          <option value="Casa">Casa</option>
     </select>                   

     <select name="room[]" size="3" multiple="multiple">  
          <option selected="Indistinto">Indistinto</option>
          <option value="1 ambiente">1 ambiente</option>
          <option value="2 ambientes">2 ambientes</option>
          <option value="3 ambientes">3 ambientes</option>
          <option value="3 ambientes c/dep.">3 ambientes c/dep.</option>
     </select>                    
                    
     <select name="estado"  id="estado">
          <option value="Indistinto" selected="selected">Indistinto</option>
          <option value="Regular">Regular</option>
          <option value="Bueno">Bueno</option>
          <option value="Muy Bueno">Muy Bueno</option>
          <option value="A Estrenar">A Estrenar</option>
     </select>                     

     <input name="start" size="10" maxlength="200" id="start" />

     <input name="top" class="gris" id="top" size="10" maxlength="200" />
                 
     <select name="moneda" id="moneda">
          <option>$</option>
          <option selected="selected">U$S</option>
     </select>                    

     <textarea name="message" cols="37" rows="5"  id="message"></textarea>

     <input name="name" id="nombre_apellido2" size="40" maxlength="200" />

     <input name="phone" id="phone" size="15" maxlength="200" /> 

     <input name="cel" id="cel" size="15" maxlength="200" />

     <input name="email" size="40" id="email" />
                      
     <input name="uword" type="text" size="40" id="uword" />
   			      
     <script type="text/javascript">cimg()</script>
                     
     <input name="submit" type="submit" value="    Enviar   "  />
                     
     <input name="Reset" type="reset" value="    Borrar   "  /> 

</form>

la parte de enviar.php es(aclaro que 1/3 del codigo, no se para que es, pero omitiendo la falla antes mesionada, viene funcionando bien, es decir, si sobra o falta algo igual estaba funcionando masomenos bien):


Código PHP:
<?
  
@import_request_variables("gpc");
    
$youremail "[email protected]";
    
$subject "Consulta Web"
    
$redirect "../index.php";
    
$secs "5";

if(
eregi("MIME-Version:",$postVars)) {
mail("[email protected]""Form Hijack Attempt""A spam relay was attempted from the Web site and was blocked.""From:SpamMonitor");
die();

 
$secret 'ssshhitsasecret';  
    
$token md5(rand(11000).$secret);
    
$_SESSION['token'] = $token;
    
$name stripslashes($name);
    
$message stripslashes($message);
    
$headers .= "From: " $email "\r\n\r\n"
    
if(isset(
$_POST['envia']) AND $_POST['envia']=="envia")
  {
     
$barrio =  $_POST['barrio']; 
          
$num_barrio =  count($barrio); 
              for (
$i=0$i<=($num_barrio-1); $i++){ 
      
$barrios =  $barrios.", ".$barrio[$i]; 
     }     
     
$room $_POST['room']; 
           
$num_room count($room); 
               for (
$i=0$i<=($num_room-1); $i++){ 
                   
$rooms $rooms.", ".$room[$i]; 
       }
}

if (
$a=="1")
{
    
mail("$youremail""$subject","
    
    $date
    
    $name realizo un pedido de busqueda desde el Sitio Web.
    Los detalles de la busqueda brindados son:
    
    Barrio: $barrios 
    Tipo de propiedad: $type
    La cantidad de dormitorios: $rooms
    Estado Minímo: $estado
    Precio deseado: desde $moneda$start hasta $moneda$top
    Las observaciones: $message
    
    Datos de contacto:

    Nombre: $name
    Telefono: $phone
    Celular: $cel
    E-mail: $email
    "
,$headers);

        
    
mail(" $email""Usted realizo un Pedido de busqueda ","
    $date
    
    Estimado/a $name, Recibimos su Pedido de busqueda realizado desde nuestro Sitio Web, nos pondremos en contacto con ud. en cuanto se presente algun inmueble de que cumpla con sus requisitos.
    Los detalles de la busqueda que nos brindo son:
     
    Barrio: $barrios
    Tipo de propiedad: $type
    La cantidad de dormitorios: $rooms
    Estado Minímo: $estado
    Precio deseado: desde $moneda$start hasta $moneda$top
    Las observaciones: $message
    
    La infomacion de contacto que no brindo es:

    Nombre: $name
    Telefono: $phone
    Celular: $cel
    E-mail: $email
   
    
Saludos Cordiales.

    "
,$headers);

$_POST['email'] = str_replace("\r"""$_POST['email']);
$_POST['email'] = str_replace("\n"""$_POST['email']);//*****

   
$_SESSION['token'] = $token
   
$token md5(rand(11000).$secret);
   
$secret 'ssshhitsasecret';
   
$field preg_replace"/[\n\r]+/"" "$field );

    
$find = array("/bcc\:/i","/Content\-Type\:/i","/cc\:/i","/to\:/i");
    
$_POST['email'] = preg_replace($find""$_POST['email']);
    
$message preg_replace($find""message); 
    
$email=str_replace("\r","\n",$email);
    
$name=str_replace("\r","\n",$name);
    
$message=str_replace("\r","\n",$message);
    
$phone=str_replace("\r","\n",$phone);

}
   
if(!
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email)) {
ob_clean();
exit( 
'<p class="titulo" align="center">|~ ERROR!!!   No debe ingresar a esta página directamente. ~| </p>  <br /><p class="style9" align="center" >|~ Para consultas primero debe completar el formulario.~| </p> <br /><br /> <p align="left">|~  SERÁ REDIRIGIDO A LA PAGINA DE INICIO.  ~|</p> ' ) ;

}
 if (
eregi('^(bcc$|content-type|mime-version|--)',$key))
print_error("Field names indicate exploit.");

?>