Foros del Web » Programando para Internet » PHP »

Problemas con PHP y Ajax al tratar de mandar un correo

Estas en el tema de Problemas con PHP y Ajax al tratar de mandar un correo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/10/2011, 12:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
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
  #2 (permalink)  
Antiguo 26/10/2011, 13:01
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

fijate con el firebug o hace un alert en el resultado ajax
  #3 (permalink)  
Antiguo 26/10/2011, 13:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

Cita:
Iniciado por Patriarka Ver Mensaje
fijate con el firebug o hace un alert en el resultado ajax
No me saca ningún error el Firebug
  #4 (permalink)  
Antiguo 26/10/2011, 13:09
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

Entre recien y yo si estoy viendo error con el firebug,

[cycle] terminating; zero elements found by selector
illegal character in ga.js line 1
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 26/10/2011, 13:11
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

Cita:
Iniciado por h2swider Ver Mensaje
Entre recien y yo si estoy viendo error con el firebug,

[cycle] terminating; zero elements found by selector
illegal character in ga.js line 1
¿Y eso que quiere decir?
no tengo ningún 2ga.js en mis librerías javascript
  #6 (permalink)  
Antiguo 26/10/2011, 13:20
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

problemas de encoding quizás, usas ganalitics no? mira.

http://www.google-analytics.com/ga.js
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 26/10/2011, 13:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

Ah tienes razón.

Pero ahora surge otro problema. Agregué el jquery desde Google

<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>

Y me saca el error "jQuery is not defined". Pero cuando entro al código fuente por medio de Firefox si que puedo entrar al archivo jQuery.
  #8 (permalink)  
Antiguo 26/10/2011, 13:39
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

CONSEJO:
bajaste el jquery y listo, pensa que si trabajas local y sin conexion no podes hacer nada,
o si a google se le ocurre bloquear ese servicio que hacemos he?
  #9 (permalink)  
Antiguo 26/10/2011, 13:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

Pero en otra página que tengo también carga el jquery desde Google, uso el mismo script para el correo y todo bien.
  #10 (permalink)  
Antiguo 26/10/2011, 13:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Problemas con PHP y Ajax al tratar de mandar un correo

Pero bueno, regresando a la parte anterior con el jquery instalado dentro de mi máquina y no en Google, sigue jalando ese error donde jala toda la página ¿qué hago?

Etiquetas: ajax, correo, formulario, html, trazar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.