LOGIN EN PHP AJAX Y MYSQL NO ME EJECUTA EL INDEX.PHP (SOLUCIONADO)

Iniciado por smagno, 19 Octubre 2009, 17:11 PM

0 Miembros y 1 Visitante están viendo este tema.

smagno

[code][code][code]
HOLA NECESITO QUE ME EJECUTE EL INDEX.PHP EN OTRA PAGINA NO EN LA MISMA
DESPUES DE VALIDAR EL USUARIO QUE ESTOY HACIENDO MAL.

DE ANTEMANO MUCHAS GRACIAS




[code LOGIN.PHP]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
   <title>Acceso al sistema</title>
   <meta http-equiv="content-type" content="text/html; charset=utf-8" />

   <link type="text/css" rel="stylesheet" href="screen.css" />
   
   <script language="‭‬‭‬javascript" type="text/‭‬‭‬javascript" src="js/ajax.js"></script>
   
<script type="text/‭‬‭‬javascript">
      
   $(function() {
      // highlight
      var elements = $("input[type!='submit'], textarea, select");
      elements.focus(function(){
         $(this).parents('li').addClass('highlight');
      });
      elements.blur(function(){
         $(this).parents('li').removeClass('highlight');
      });
      
      $("#frmlogin").validate()
   });
   </script>

</head>
<body>
   <div id="page">
   
       <div id="header">
           <table width="800" border="0" class="">
               <tr>
                   <td><img src="img/logo.jpg" width="228" height="77" /></td>
                   <td>
                   <h1>SISTEMA CONTROL DE RECAUDOS (RECAUDOS-WEB)</h1>
                   </td>
               </tr>
           </table>
       </div>
      
      <div id="content" >
         <p id="status"></p>
           <form name="frmlogin" id="frmlogin" method="POST" action="#" onSubmit="enviarAccesoUsuario(); return false">

            <fieldset>
               <legend>Acceso al Sistema</legend>
                   
                   <ul>
                       <li>
                          <label for="usuario"><span class="required">Usuario : </span></label>
                           <input name="usuario" type="text" class="text required" id="usuario" size="20" maxlength="10" minlength="4" />
                      </li>
                       <li>
                           <label for="pass1"><span class="required">Clave : </span></label>
                           <input name="pass1" type="password" class="text required" id="pass1" size="20" maxlength="10" minlength="4" />
                       </li>
                       <li>
                     <label class="centered info"><a id="registrar" href="frmusuarios.php">Registrar ...</a></label>
                  </li>
                   </ul>
           </fieldset>
               <fieldset class="submit" align="center">
                  <table width="60%" border="0" >
                      <tr>
                       <td>&nbsp;</td>
                     <td><input type="submit" class="button" name="submit" value="Entrar ..." /></td>
                     <td><input type="reset" class="button" name="limpiar" value="Limpiar ..." /></td>
                     <td>&nbsp;</td>
                       </tr>
                   </table>
               </fieldset>

               <div class="clear"></div>
               <div id="resultado"></div>
         </form>
       </div>
</div>
</body>
</html>

[/code]


[code AJAX.JS]

function objetoAjax(){
   var xmlhttp=false;
   try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
      try {
         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
         xmlhttp = false;
       }
   }

   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
      xmlhttp = new XMLHttpRequest();
   }
   return xmlhttp;
}

function enviarAccesoUsuario(){
   
   //donde se mostrará lo resultados
    divResultado = document.getElementById('resultado');
    divResultado.innerHTML = '<img src="img/loading.gif">';
 
    //valores de las cajas de texto
    usu = document.frmlogin.usuario.value;
    pa1 = document.frmlogin.pass1.value;
   
   //instanciamos el objetoAjax
    ajax=objetoAjax();
    //uso del metodo POST
    //archivo que realizará la operacion
    //validarusuario.php
    ajax.open("POST", "validarusuario.php", true);
    
   ajax.onreadystatechange=function() {
       if (ajax.readyState==4) {
       
      //mostrar resultados en esta capa
       divResultado.innerHTML = ajax.responseText
    }
 }

 ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 //enviando los valores
 ajax.send("usuario="+usu+"&pass1="+pa1)
}

[/code]

[code VALIDARUSUARIO.PHP]

<?php

session_start(); //abrimos la sesion para poder despues pasar variables de una pagina a otra

include_once('Connections/miconexionsql.php');

function quitar($mensaje) //funcion para quitar caracteres no permitidos
{
   $nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
   $mensaje = str_replace($nopermitidos, "", $mensaje);
   return $mensaje;
}
function mysql_escape($cadena) {
   if(get_magic_quotes_gpc() != 0) {
       $cadena = stripslashes($cadena);
   }
   return mysql_real_escape_string($cadena);
}  

//variables POST

$estado= "0";  //creo la variable $estado=0 para compararla despues con el campo de la BD estado y si son cero le dejara pasar

$usuario  = $_POST['usuario'];
$pass1    = $_POST['pass1'];

if($usuario==NULL) {
   echo "No permite [USUARIO] en blanco.";
   return false;
}
if($pass1==NULL) {
   echo "No permite [CLAVE] en blanco.";
   return false;
}

Conectar();
$result = mysql_query("SELECT usuario, clave, estado FROM ma_usuarios WHERE usuario='$usuario'");
if($row = mysql_fetch_array($result)){

   // ciframos "Ciframos" el password
   $clave = sha1(md5($pass1));

   if($row['clave'] == $clave){
      $_SESSION["s_usuario"] = $row['usuario'];
       
      if( $estado == $row['estado']){  
          ?>
              <SCRIPT LANGUAGE="‭‬‭‬javascript">
              location.href = "index.php";
              </SCRIPT>
           <?
      }else{
           echo '<span class="Estilo5">Cuenta de Usuario sin activar</span>';
          session_destroy();
      }
   }else{
      echo '<span class="Estilo5">Clave incorrecta.</span>';
   }
}else{
   echo '<span class="Estilo5">Usuario no Existente.</span>';
}
mysql_close();

?>

[/code]

Mr. Crowley

Hola, no he analizado mucho el codigo, pero revise esta parte:


<SCRIPT LANGUAGE="‭‬javascript">
    location.href = "index.php";
</SCRIPT>


Hagalo desde la funcion (ajavascript) que valida al usuario.

window.location.href="loquesea.php";
Mi blog personal: www.calirojas.com

Azielito

ajax no ejecuta javascript cuando carga un archivo, o sea, si el archivo cargado tiene javascript no lo ejecuta, por eso no te esta funcionando U_U




Busca en inet que han hecho una solucion, o sea

básicamente tienes que captar el contenido del archivo cargado
buscar los tags "<script" </script>" y todo o que este dentro ponerlo dentro de un "eval()" =\


Mr. Crowley

Sorry, es que ahora no andaba con mucho tiempo y tuve que salir. Usa solucion facil puede ser la siguiente:

En el script php, hacer la validacion y devolverle al ajax (por ejemplo) la cadena "hola", con javascript se toma ese valor y se redirecciona:


ajax.onreadystatechange=function() {
        if (ajax.readyState==4) {
       
      //mostrar resultados en esta capa
        if(ajax.responseText=="hola"){
             window.location.href="donde_sea.php";
        }else{
             divResultado.innerHTML = ajax.responseText
        }
     }
  }


Listo.. eso debe funcionarle perfectamente  ;D
Mi blog personal: www.calirojas.com

Hadess_inf

yo pense que era

document.location.href= 'pagina'

Mr. Crowley

window.location.href="pagina"; carga la nueva pagina y habilita el boton de atras (seria algo asi como hacer clic en un enlace que le envia a otra pagina). document.location.href="pagina"; no habilita el boton de atras...
Mi blog personal: www.calirojas.com

Azielito

dado el caso Mr. Crowley ha dado la respuesta :xD

si ya cargo yl el texto es "xxxxx"
   hacer lo que uno imageine, por ejemplo, otra funcion en ajax llamando la pagina de inicio
fin

:xD

smagno

#7
[code]
Gracias Mr. Crowley y a todos en el foro...

PERO ME PRESENTA LO SIGUIENTE.

EN FORMA LOCALHOST ME FUNCIONA COMO QUIERO. PERFECTO
PERO CUANDO LO SUBO A INTERNET ME SUCEDE QUE ECHO "Usuario Valido" ME QUEDA SOLO Y NO PASA AL INDEX.PHP.

LA VERDAD  SOY NUEVO EN AJAX - PHP - MYSQL TENGO A PENAS UN MES PERO ESTOY APREDIENDO GRACIAS A TODOS USTEDES.
AGRADECIENDOLES DE ANTEMANO..

BUENO LA MODIFICACION QUE HICE FUE LA SIGUIENTE.

[code]


[code VALIDARUSUARIO.PHP]

if($row = mysql_fetch_array($result)){

   // ciframos "Ciframos" el password
   $clave = sha1(md5($pass1));

   if($row['clave'] == $clave){
      $_SESSION["s_usuario"] = $row['usuario'];
       
      if( $estado == $row['estado']){
         echo "Usuario Valido";
      }else{
                   echo '<span class="Estilo5">Cuenta de Usuario sin activar</span>';
          session_destroy();
      }
   }else{
      echo '<span class="Estilo5">Clave incorrecta.</span>';
   }
}else{
   echo '<span class="Estilo5">Usuario no Existente.</span>';
}

[/code]


[code AJAX.JS]

function enviarAccesoUsuario(){
   
   //donde se mostrará lo resultados
    divResultado = document.getElementById('resultado');
    divResultado.innerHTML = '<img src="img/loading.gif">';
 
    //valores de las cajas de texto
    usu = document.frmlogin.usuario.value;
    pa1 = document.frmlogin.pass1.value;
   
   //instanciamos el objetoAjax
    ajax=objetoAjax();
    //uso del metodo POST
    //archivo que realizará la operacion
    //validarusuario.php
    ajax.open("POST", "validarusuario.php", true);
    
   ajax.onreadystatechange=function() {
       if (ajax.readyState==4) {
       
         // alert(ajax.responseText)
         if (ajax.responseText=="Usuario Valido"){
            window.location.href="index.php";
         }else{
            divResultado.innerHTML = ajax.responseText
         }
   }
    }

   ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   //enviando los valores
   ajax.send("usuario="+usu+"&pass1="+pa1)
}

[/code]

Mr. Crowley

Como es eso de que "le queda solo y no pasa al index"??  :-(
Mi blog personal: www.calirojas.com

smagno

SI CLARO ME MUESTRA LA PAGINA EN BLANCO MOSTRANDOME EN LA PARTE SUPERIOR "Usuario Valido" Y QUEDA AHI. Y NO PASA AL INDEX.PHP EN FORMA LOCALHOST SI FUNCIONA PERFECTO.