Comunidad de diseño web y desarrollo en internet online

Problemas con un formulari Ajax/PHP

Citar            
MensajeEscrito el 25 Ago 2009 04:56 am
Hola que tal, necesito ayuda, estoy usando un formulario de contacto escrito en PHP y AJAX el temas es que funciona de maravilla en mi localhost pero cuando lo subo me da un problema, el cual es: que al completar el formulario y cliquear en el boton de enviar me da error, intente mas tarde, sabe a que se puede deber?

Código PHP :

<?php
function validaLongitud($valor, $permiteVacio, $minimo, $maximo)
{
   $cantCar=strlen($valor);
   if(empty($valor))
   {
      if($permiteVacio) return TRUE;
      else return FALSE;
   }
   else
   {
      if($cantCar>=$minimo && $cantCar<=$maximo) return TRUE;
      else return FALSE;
   }
}

function validaCorreo($valor)
{
   if(eregi("([a-zA-Z0-9._-]{1,30})@([a-zA-Z0-9.-]{1,30})", $valor)) return TRUE;
   else return FALSE;
}

// MAIN   

if($_POST)
{
   foreach($_POST as $clave => $valor) $$clave=addslashes(trim(utf8_decode($valor)));
   sleep(5);
   if(!validaLongitud($nombre, 0, 4, 50)) $error=1;
   if(!validaLongitud($empresa, 1, 4, 50)) $error=1;
   if(!validaLongitud($telefono, 1, 4, 50)) $error=1;
   if(!validaCorreo($correo)) $error=1;
   if(!validaLongitud($comentarios, 0, 5, 500)) $error=1;
   
   if($error==1) echo "Error";
   else
   {
      $fecha=date("d/m/y - H:i");
      $mensaje="
Tenés un nuevo mensaje desde el Sitio:

Fecha: $fecha
Nombre: $nombre
Empresa: $empresa
Telefono: $telefono
Correo electrónico: $correo
Comentarios: $comentarios";
      mail("[email protected]", "Comentario desde la Web", $mensaje, "From: Sitio Web <[email protected]>");
      echo "OK";
   }
}
?>

y este es el ajax

Código :

// Variables para setear
onload=function() 
{
   cAyuda=document.getElementById("mensajesAyuda");
   cNombre=document.getElementById("ayudaTitulo");
   cTex=document.getElementById("ayudaTexto");
   divTransparente=document.getElementById("transparencia");
   divMensaje=document.getElementById("transparenciaMensaje");
   form=document.getElementById("formulario");
   urlDestino="mail.php";
   
   claseNormal="input";
   claseError="inputError";
   
   ayuda=new Array();
   ayuda["Nombre"]="Ingresa tu nombre. De 4 a 50 caracteres. OBLIGATORIO";
   ayuda["Empresa"]="Ingresa el nombre de tu Empresa. De 4 a 50 caracteres.";
   ayuda["Telefono"]="Ingresa un teléfono de contacto.";
   ayuda["Correo"]="Ingresa un e-mail válido. OBLIGATORIO";
   ayuda["Comentario"]="Ingresa tus comentarios. De 5 a 500 caracteres. OBLIGATORIO";
   
   preCarga("ok.gif", "loading.gif", "error.gif");
}

function preCarga()
{
   imagenes=new Array();
   for(i=0; i<arguments.length; i++)
   {
      imagenes[i]=document.createElement("img");
      imagenes[i].src=arguments[i];
   }
}

function nuevoAjax()
{ 
   var xmlhttp=false; 
   try 
   { 
      // No IE
      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
   }
   catch(e)
   { 
      try
      { 
         // IE 
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(E) { xmlhttp=false; }
   }
   if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 
   return xmlhttp; 
}

function limpiaForm()
{
   for(i=0; i<=4; i++)
   {
      form.elements[i].className=claseNormal;
   }
   document.getElementById("inputComentario").className=claseNormal;
}

function campoError(campo)
{
   campo.className=claseError;
   error=1;
}

function ocultaMensaje()
{
   divTransparente.style.display="none";
}

function muestraMensaje(mensaje)
{
   divMensaje.innerHTML=mensaje;
   divTransparente.style.display="block";
}

function eliminaEspacios(cadena)
{
   // Funcion para eliminar espacios delante y detras de cada cadena
   while(cadena.charAt(cadena.length-1)==" ") cadena=cadena.substr(0, cadena.length-1);
   while(cadena.charAt(0)==" ") cadena=cadena.substr(1, cadena.length-1);
   return cadena;
}

function validaLongitud(valor, permiteVacio, minimo, maximo)
{
   var cantCar=valor.length;
   if(valor=="")
   {
      if(permiteVacio) return true;
      else return false;
   }
   else
   {
      if(cantCar>=minimo && cantCar<=maximo) return true;
      else return false;
   }
}

function validaCorreo(valor)
{
   var reg=/(^[a-zA-Z0-9._-]{1,30})@([a-zA-Z0-9.-]{1,30}$)/;
   if(reg.test(valor)) return true;
   else return false;
}

function validaForm()
{
   limpiaForm();
   error=0;
   
   var nombre=eliminaEspacios(form.inputNombre.value);
   var empresa=eliminaEspacios(form.inputEmpresa.value);
   var telefono=eliminaEspacios(form.inputTelefono.value);
   var correo=eliminaEspacios(form.inputCorreo.value);
   var comentarios=eliminaEspacios(form.inputComentario.value);
   
   if(!validaLongitud(nombre, 0, 4, 50)) campoError(form.inputNombre);
   if(!validaLongitud(empresa, 1, 4, 50)) campoError(form.inputEmpresa);
   if(!validaLongitud(telefono, 1, 4, 50)) campoError(form.inputTelefono);
   if(!validaCorreo(correo)) campoError(form.inputCorreo);
   if(!validaLongitud(comentarios, 0, 5, 500)) campoError(form.inputComentario);
   
   if(error==1)
   {
      var texto="<img src='error.gif' alt='Error'><br><br>Error: revise los campos en rojo.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
      muestraMensaje(texto);
   }
   else
   {
      var texto="<img src='loading.gif' alt='Enviando'><br>Enviando. Por favor espere.<br><br><button style='width:60px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ocultar</button>";
      muestraMensaje(texto);
      
      var ajax=nuevoAjax();
      ajax.open("POST", urlDestino, true);
      ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      ajax.send("nombre="+nombre+"&empresa="+empresa+"&telefono="+telefono+"&correo="+correo+"&comentarios="+comentarios);
      
      ajax.onreadystatechange=function()
      {
         if (ajax.readyState==4)
         {
            var respuesta=ajax.responseText;
            if(respuesta=="OK")
            {
               var texto="<img src='ok.gif' alt='Ok'><br>Gracias por su mensaje.<br>Le responderemos a la brevedad.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
            }
            else var texto="<img src='error.gif'><br><br>Error: intente más tarde.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
            
            muestraMensaje(texto);
         }
      }
   }
}

// Mensajes de ayuda

if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
else navegador=1;

function colocaAyuda(event)
{
   if(navegador==0)
   {
      var corX=window.event.clientX+document.documentElement.scrollLeft;
      var corY=window.event.clientY+document.documentElement.scrollTop;
   }
   else
   {
      var corX=event.clientX+window.scrollX;
      var corY=event.clientY+window.scrollY;
   }
   cAyuda.style.top=corY+20+"px";
   cAyuda.style.left=corX+15+"px";
}

function ocultaAyuda()
{
   cAyuda.style.display="none";
   if(navegador==0) 
   {
      document.detachEvent("onmousemove", colocaAyuda);
      document.detachEvent("onmouseout", ocultaAyuda);
   }
   else 
   {
      document.removeEventListener("mousemove", colocaAyuda, true);
      document.removeEventListener("mouseout", ocultaAyuda, true);
   }
}

function muestraAyuda(event, campo)
{
   colocaAyuda(event);
   
   if(navegador==0) 
   { 
      document.attachEvent("onmousemove", colocaAyuda); 
      document.attachEvent("onmouseout", ocultaAyuda); 
   }
   else 
   {
      document.addEventListener("mousemove", colocaAyuda, true);
      document.addEventListener("mouseout", ocultaAyuda, true);
   }
   
   cNombre.innerHTML=campo;
   cTex.innerHTML=ayuda[campo];
   cAyuda.style.display="block";
}


Desde ya muchas gracias

Por Walichero

1 de clabLevel



 

safari
Citar            
MensajeEscrito el 26 Ago 2009 10:14 am
Por favor, se mas explicito en tu error.

Por Mr_Anderson

151 de clabLevel



Genero:Masculino  

Terminaltor

chrome
Citar            
MensajeEscrito el 14 Sep 2009 09:24 pm
el error es el siguiente, cuando el doc.php con su formulario armado esta en mi localHost funciona bien, pero cuando lo subo al hosting deja de funcionar, de todas forma lo reemplace al codigo por un netamente de php el cual funcina bien, pero no es lo que queria
SALUDOS


Wally

Por Walichero

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.