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(1, 1000).$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(1, 1000).$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.");
?>