Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2011, 12:47
alvarols
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 16 años
Puntos: 15
Problemas con PHP y Ajax al tratar de mandar un correo

Tengo un problema, y es que tengo un script en una página donde estoy tratando de mandar un correo. Este script lo estoy tratando de implementar en una página de un cliente y no funciona bien, lo cual se me hace raro, porque en otras páginas funcionaba a la perfección. Si manda los correos correctamente, pero cuando aparece el aviso de que "ya se mandó el correo" o que falta "agregar tal o tal cosa" no solo aparece el mensaje, sino que jala toda una sección de la página. Pueden ver el error que esta jalando al tratar de enviar el correo aquí.

http://www.alvarols.com/clientes/ider/ider/contacto.php


A continuación les anexo los códigos que estoy utilizando. Este es el código PHP:

Código PHP:
<?php
if($_POST)
{
$javascript_enabled trim($_REQUEST['browser_check']);
$nombre trim($_REQUEST['nombre']);
$empresa trim($_REQUEST['empresa']);
$ciudad trim($_REQUEST['ciudad']);
$estadotrim($_REQUEST['estado']);
$telefono trim($_REQUEST['telefono']);
$email trim($_REQUEST['email']);
$comentarios trim($_REQUEST['comentarios']);



//mail settings
$mail "[email protected]";
$cabeceras "Content-type: text/html; charset=utf-8";
$asunto "Contacto de un cliente";
$headers "Content-type: text/html; charset=utf-8";
$message "<b>Nombre del contacto:</b> $nombre <br /> <b>Empresa:</b> $empresa <br /> <b>Ciudad:</b> $ciudad<br /> <b>Estado:</b> $estado<br /> <b>Teléfono:</b> $telefono<br /> <b>Email:</b> $email<br /> <b>Comentarios:</b> $comentarios<br />";



    if ( 
$nombre == "" )
    {
        
$result "Un nombre es requerido";
    }
    elseif (!
preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/"$email)) 
    {
        
$result "Escribe un correo electrónico válido";
    }
    elseif ( 
$empresa == "" )
    {
        
$result "Una empresa es requerida";
    }
        elseif ( 
$ciudad == "" )
    {
        
$result "Una ciudad es requerida";
    }
            elseif ( 
$estado == "" )
    {
        
$result "Un estado es requerido";
    }
            elseif ( 
$telefono == "" )
    {
        
$result "Un teléfono es requerido";
    }
    elseif ( 
strlen($comentarios) < 10 )
    {
        
$result "Escribe más de 10 caracteres";
    }
    else
    {    
        
            
mail($mail,$asunto,$message,$headers);
        
$result "Muchas gracias, nos pondremos en contacto lo más pronto posible";
        
    }
    
    if(
$javascript_enabled == "true") {
        echo 
$result;
        die();
    }

}
?>
Este es el código HTML con el que está diseñado el formulario de contacto:

Código HTML:
<form name="contactform" id="form" method="post" action="contacto.php">
<div id="resultado"><?php if($result) echo "<div class='mensaje'>".$result."</div>"; ?></div>
<br />

<label class="name">Nombre<br /><input class="text" name="nombre" type="text" value="<?php echo $nombre; ?>" /><br /></label>
<span class="SeparadorHorizontalPunteado"></span>
<label class="empresa">Empresa<br /><input class="text" name="empresa" type="text" value="<?php echo $empresa; ?>" /><br /></label>
<span class="SeparadorHorizontalPunteado"></span>
<label class="email">Email<br /><input class="text" name="email" type="text" value="<?php echo $email; ?>" /><br /></label>
<span class="SeparadorHorizontalPunteado"></span>
<label class="ciudad">Ciudad<br /><input class="text" name="ciudad" type="text" value="<?php echo $ciudad; ?>" /><br /></label>
<span class="SeparadorHorizontalPunteado"></span>
<label class="estado">Estado<br /><input class="text" name="estado" type="text" value="<?php echo $estado; ?>" /><br /></label>
<span class="SeparadorHorizontalPunteado"></span>
<label class="telefono">Teléfono<br /><input class="text" name="telefono" type="text" value="<?php echo $telefono; ?>" /><br /></label>
<span class="SeparadorHorizontalPunteado"></span>
<label class="comentarios">Comentarios<br /><textarea class="text" name="comentarios"><?php echo $comentarios; ?></textarea><br /></label>
<input type="hidden" name="browser_check" value="false" />
<input type="submit" name="submit" value="Enviar Mensaje" id="submit" class="FormularioBotonEnvio" />

</form> 
Y este es el Ajax:

Código:
<script type="text/javascript">

	document.contactform.browser_check.value = "true"; //sets the hidden input(browser_check) value as true if the javascript is enabled.
		
	 $("#submit").click(function(){
	 
		$('#result').html('<img src="http://www.tutorialstag.com/examples/images/loader.gif" class="loading-img" alt="loader image">').fadeIn();
		var input_data = $('#form').serialize();
				$.ajax({
				   type: "POST",
				   url:  "<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>",
				   data: input_data,
				   success: function(msg){
					   $('.loading-img').remove(); //Removing the loader image because the validation is finished
					   $('<div class="mensaje">').html(msg).appendTo('div#resultado').hide().fadeIn('slow'); //Appending the output of the php validation in the html div
				   }					   
				});	
				
			return false;
			
	  });	

	</script>
Ojalá me pudieran ayudar, muchas gracias