Comunidad de diseño web y desarrollo en internet online

switch con ajax que no funciona

Citar            
MensajeEscrito el 27 Ene 2011 07:30 am
Hola amigos: Nuevamente pidiendoles ayuda luego de horas de intentar resolver un problema.
el problema es:
tengo una pagina donde los usuarios se van a loguear en realidad consiste de 3 paginas
1 login.php donde se encuentra el formulario
2 funcionLogin.js donde se encuentran las funciones de ajax
3 loguinCheck.php donde se hace un query con los datos en viados por formularios y se debuelve la respuesta a funcionLoguin.js para mostrar en la web los resultados.

funciona todo a la perfeccino hasta que se me ocurrio hacer un switch para que muestre un cartel con los errores si es ke los hay y la verdad no entiendo porke pero en ves de mostrar el cartel con el error me muestra el texto con la variable del error.
les adjunto los codigos fuentes a ver si alguien me puede dar una mano .
gracias!"!!

soy re mil re novato y estos codigos los hise leyendo un poco de aui otro de aya y otro de mas aya asi ke traten de explicarse como si yo tubiera 5 años!! jaja gracias.

loguin.php

Código PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design J R Solutions
http://www.jrsolutions.com.ar
vercion 4

-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Huayra Muyoj on-line" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Huayra Muyoj On-Line</title>
<link href="estilo.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="templates/funcionLogin.js"></script>

<!-- @global -->
<div id="global">
   <div id="menu">
      <ul>
         <li><a href="index.php">Home</a></li>
            <li><div id="espaciomenu"></div></li>
         <li class="current_page_item"><a href="quienes.php">Quienes Somos</a></li>
            <li><div id="espaciomenu"></div></li>
         <li><a href="curriculum.php">Curriculum</a></li>
            <li><div id="espaciomenu"></div></li>
         <li><a href="giras.php">Giras</a></li>
            <li><div id="espaciomenu"></div></li>
            <li><a href="galeria.php">Galeria de Imagenes</a></li>
            <li><div id="espaciomenu"></div></li>
            <li><a href="noticias.php">Noticias</a></li>
            <li><div id="espaciomenu"></div></li>
            <li><a href="foros.php">Foros</a></li>
            <li><div id="espaciomenu"></div></li>
            <li><a href="contacto.php">Contacto</a></li>
            <li><div id="espaciomenu"></div></li>
            <li><a href="login.php">Registrate</a></li>
      </ul>
   </div>
   <!-- end #menu -->
    <!-- espacio -->
    <div style="clear: both;">&nbsp;</div>
    <!-- end espacio-->
    <!-- Header -->
    <div id="header">
    </div>
    <!-- end header -->
    <!-- recuadro contenedor -->
    <div id="contenedor">
      <div class="post">
        <h1 align="center">TALLER DE DANZAS NATIVAS &ldquo;HUAYRA MUYOJ&rdquo;</h1>
        <h2 align="center">PANEL DE USUARIOS</h2>
        </div>                
        <div id="centrarContacto">
       
<?php 
echo"<div id=\"centrar1\">";
      if(isset($HTTP_COOKIE_VARS["Nick"])!= false){
         include('templates/inc.coneccion.php');
         $nickN = $HTTP_COOKIE_VARS['Nick']; 
         $passN = $HTTP_COOKIE_VARS['Pass'];
         $sql = "SELECT *, DATE_FORMAT(u_fecha, '%d/%m/%Y') as u_fecha FROM usuarios WHERE u_nick='$nickN' and u_password='$passN'";
         $rs = mysql_query($sql, $conect);
         if(mysql_num_rows($rs)>0){
         $row = mysql_fetch_assoc($rs);      

         echo"
         <div id=\"cuadroUsuario\">
         <div class=\"cuadroUsuarioFoto\"><img src=\"imagen/huayra.gif\" alt=\"\" width=\"97\" height=\"92\" border\"0\"/></div>              
         <div class=\"cuadroUsuarioTitulo\">".utf8_encode($row['u_nick'])."</div>
         <div class=\"cuadroUsuarioTexto\">".utf8_encode($row['u_nombre'])." ".utf8_encode($row['u_apellido'])."<br /><br />Usuario desde el:<br />".utf8_encode($row['u_fecha'])."</div>
         </div>";
         }else{
            echo"Error de coneccion...";
            echo" <a href=\"login.php\">reitentar...</a>";

         }
         echo"</div>";
      }else{
      
      ?>

                <!-- funcion enviar formulario ajax -->
              <div id="centrar1">
                <div id="formContenedor">
                    <form id="formLogin">
                    <style>
                    #transparencia{
                    height:100px;
                    }
                    </style>
                        <div id="transparencia">
                            <div id="transparenciaMensaje"></div>
                        </div>
                        <table>
                            <tbody>
                                <tr>
                                    <td class="label">Nick</td>
                                    <td class="campo"><input class="inputNormal" type="text" id="inputNick"></td>
                                    <td class="ayuda"><img src="ayuda.gif" alt="Ayuda" onmouseover="muestraAyuda(event, 'Nick')"></td>
                                </tr>
                                <tr>
                                    <td class="label">Contrase&ntilde;a</td>
                                    <td class="campo"><input class="inputNormal" type="password" id="inputPass"></td>
                                    <td class="ayuda"><img src="ayuda.gif" alt="Ayuda" onmouseover="muestraAyuda(event, 'Pass')"></td>
                                </tr>
                                </tr>
                            </tbody>
                        </table>
                        <br>
                        <div>
                            <button id="botonEnviar" onClick="validaForm()" type="button">Ingresar</button>
                            <button type="reset">Borrar</button>
                        </div>
                    </form>
                </div>
<!-- Capa para mostrar los mensajes de ayuda al presionar los iconos correspondientes -->
<div id="mensajesAyuda">
   <div id="ayudaTitulo"></div>
   <div id="ayudaTexto"></div>
</div>

</div></div>
<?
}
?>     
<div style="clear": both;\>&nbsp;</div>
 </div>
      <div id="pie">&nbsp;</div>
      </div>
  <!-- end #golbal -->
    </div>
<div style="clear: both;">&nbsp;</div>
   <div id="piedepagina">
      <p>Copyright (c) 2010 Huayra Mulloj On-Line All rights reserved. Design by <a href="http://jrsolutions.com.ar/">J. R. Solutions</a>.</p>
   </div>
   <!-- end #footer -->
</body>
</html>


funcionLogin.js

Código Javascript :

// 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("formLogin");
   urlDestino="loginCheck.php";
   
   claseNormal="input";
   claseError="inputError";
   
   ayuda=new Array();
   ayuda["Nick"]="Ingresa tu nombre de usuario. OBLIGATORIO";
   ayuda["Pass"]="Ingresa tu contraseña. 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 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 validaForm()
{
//   limpiaForm();
   error=0;
   
   var Nick=eliminaEspacios(form.inputNick.value);
   var Pass=eliminaEspacios(form.inputPass.value);

   
   if(!validaLongitud(Nick, 0, 4, 50)) campoError(form.inputNick);
   if(!validaLongitud(Pass, 0, 4, 50)) campoError(form.inputPass);
   
   if(error==1)
   {
      var texto="<img src='error.gif' alt='Error'><br>Error: revise los campos en rojo.<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><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("Nick="+Nick+"&Pass="+Pass);
      
      ajax.onreadystatechange=function(){
         if (ajax.readyState==4){
<!-- es aqui donde tengo los problemas porke en vez de hacer el switch y mostrar el mensaje de la variable texto me muestra el contenido de la variable respuesta
            var respuesta=ajax.responseText
            switch(respuesta){
               case "nick_no_existe" :
                  var texto="<img src='../error.gif'><br><br>Error: el Nick es incorrecto.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
                  muestraMensaje(texto);
               break;
               case "pass_incorrecto":
                  var texto="<img src='../error.gif'><br><br>Error: La contraseña es incorecta.<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
                  muestraMensaje(texto);
               break;
               case "faltan_datos":
                  var texto="<img src='../error.gif'><br><br>Error: Faltan daos po favor reintente....<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
                  muestraMensaje(texto);
               break;
               case "error_conecion":
                  var texto="<img src='../error.gif'><br><br>Error: Problemas de conecion, reintente....<br><br><button style='width:45px; height:18px; font-size:10px;' onClick='ocultaMensaje()' type='button'>Ok</button>";
                  muestraMensaje(texto);
               break;
               default:
               ocultaMensaje();
               document.getElementById("centrar1").innerHTML = ajax.responseText;
               break;
            }
            

         }
      }
   }
}




// 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";
}

loginCheck.php

Código PHP :

<?
ob_start(); //esto es para habilitar el buffer de salida. Esto para poder enviar las cookies al navegador sin que te marque error

include('templates/inc.coneccion.php');

function quitar($mensaje) 
{ 
$mensaje = str_replace("<","&lt;",$mensaje); 
$mensaje = str_replace(">","&gt;",$mensaje); 
$mensaje = str_replace("\'","'",$mensaje); 
$mensaje = str_replace('\"',"&quot;",$mensaje); 
$mensaje = str_replace("\\\\","&#92",$mensaje); 
return $mensaje; 
} 
echo"<div id=\"centrar1\">";
if(trim($HTTP_POST_VARS["Nick"]) != "" && trim($HTTP_POST_VARS["Pass"]) != "") { 
   $nickN = quitar($HTTP_POST_VARS['Nick']); 
   $passN = quitar($HTTP_POST_VARS['Pass']); 

   $sql = "SELECT u_password FROM usuarios WHERE u_nick='$nickN'";
   $rs = mysql_query($sql, $conect); 
   if($row = mysql_fetch_array($rs)) { 
      if($row["u_password"] == $passN) { 
         setcookie("Nick",$nickN); 
         setcookie("Pass",$passN);
 
         $sql = "SELECT *, DATE_FORMAT(u_fecha, '%d/%m/%Y') as u_fecha FROM usuarios WHERE u_nick='$nickN' and u_password='$passN'";
         $rs = mysql_query($sql, $conect);
         if(mysql_num_rows($rs)>0){
         $row = mysql_fetch_assoc($rs);      

         echo"
         <div id=\"cuadroUsuario\">
         <div class=\"cuadroUsuarioFoto\"><img src=\"imagen/huayra.gif\" alt=\"\" width=\"97\" height=\"92\" border\"0\"/></div>              
         <div class=\"cuadroUsuarioTitulo\">".utf8_encode($row['u_nick'])."</div>
         <div class=\"cuadroUsuarioTexto\">".utf8_encode($row['u_nombre'])." ".utf8_encode($row['u_apellido'])."<br /><br />Usuario desde el:<br />".utf8_encode($row['u_fecha'])."</div></div>";
         }else{
            echo"error_conecion";
         }
      }else{ 
         echo"pass_incorrecto";
      } 
   }else{ 
   echo"nick_no_existe";
   } 
   mysql_free_result($rs); 
}else{ 
echo"faltan_datos";
} 
mysql_close(); 

ob_end_flush(); //esto va para poder enviar headers al navegador sin tener problemas
?>

Por JaVIChO

18 de clabLevel



 

msie8
Citar            
MensajeEscrito el 27 Ene 2011 07:36 am

Por JaVIChO

18 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Feb 2011 06:49 pm
Haz un alert(ajax.responseText). Me late que hay un fallo en el código PHP y devuelve un mensaje de error de PHP que no estás viendo.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 08 Feb 2011 07:40 pm
Not Found...

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 09 Feb 2011 01:04 am
elerror no esta en php pues el codigo es simple ya lo revise varias veses yo creo ke el error esta en el bucle pues pasa como si la variable no ubiera sido definida, de todas formas lo solucione de otra forma.. lo que hise fue hacer ke php cargue el error y muesrte un boton ke para re intentar si hay un error, gracias de todas formas amigos!

Por JaVIChO

18 de clabLevel



 

msie8

 

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