Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Detallito Login ajax+php

Estas en el tema de Detallito Login ajax+php en el foro de Frameworks JS en Foros del Web. Hola forer@s: Tengo esta funcion ajax: Código: function ajaxFunction(){ var xmlHttp; try{ xmlHttp=new XMLHttpRequest(); return xmlHttp; } catch (e){ try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); return xmlHttp; } ...
  #1 (permalink)  
Antiguo 12/10/2010, 14:25
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 7 meses
Puntos: 23
Detallito Login ajax+php

Hola forer@s:

Tengo esta funcion ajax:

Código:
function ajaxFunction(){
  var xmlHttp;
  
  try{
  	xmlHttp=new XMLHttpRequest();
    return xmlHttp;
  } 
  catch (e){
	  try{
      	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      	return xmlHttp;
      } 
	  catch (e){
      	try{
        	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        	return xmlHttp;
		} 
		catch (e) {
        alert("Tu navegador no soporta AJAX!");
        return false;
      	}
	  }
  }
}

function logueo(user, pass, capa, error){
	var usuario= document.getElementById(user).value;
	var contrasena= document.getElementById(pass).value;
	
		var ajax;
    	ajax= ajaxFunction();
    	ajax.open("GET", "../../CIByR/login.php?usuario="+usuario+"&contrasena="+contrasena, true);
    	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	ajax.onreadystatechange = function() {
    		if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {                                      
    		   document.getElementById(capa).innerHTML= "<center><img src='./../CIByR/pag_consulta/images/loader.gif' alt='Procesando'><br><br> Espere por favor...</center>";
    		}
    		else if (ajax.readyState==4){                            
    			if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {                    
    			 	document.getElementById(error).innerHTML= "<center><img src='./../CIByR/images_icon/error_icon.png'><br><br> Datos Incorrectos</center>";                
    			} else {                    
    			  	document.getElementById(capa).innerHTML= "Bienvenido " + ajax.responseText; 
    			}                            
    		}
    		ajax.send(null);
		}
}
creo que ya funcionaria bien, excepto por una cosa, que mi validacion php no esta regresandole el valor q necesita y no se ni como se mandaria desde php ni como lo recibe ajax, este es mi login.php:

Código PHP:
<?php
header
('Content-Type: text/html; charset=iso-8859-1');
include(
'xxx/xxx/xxx.php');
$xxx_mysql =  xxx(); //conexion bd

$usuariotrim($_GET['usuario']);
$contrasenatrim($_GET['contrasena']);

$query "SELECT rpe, passwords FROM xxx WHERE rpe='$usuario'";
$conmysql_query($query) or die('Error en la consulta'.mysql_error());
$crow=mysql_fetch_array($conMYSQL_ASSOC);

$user=$crow['rpe'];
$pass=$crow['passwords'];

if(
$user==NULL){
    echo 
"rpe=".$usuario." no existe"//aqui deberia ir variable de error
}
else{
    if (
$contrasena!=$pass){
        echo 
"password=".$contrasena." incorrecto"//aqui deberia ir variable de error
    
}
    else{
          echo 
"Bienvenido rpe=".$user." pass=".$pass//aqui debe ir variable de succes o algo asi
    
}

?>
Se que en mi php tendria q declarar como una variable q le diga a ajax si los datos son correctos o no y en base a eso ajax pondra el div de error o el mensaje de bienvenido, pero no se como hacerlo...

Por fas alguien puede decirme como hacerlo

Gracias
  #2 (permalink)  
Antiguo 12/10/2010, 17:14
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 11 meses
Puntos: 9
Respuesta: Detallito Login ajax+php

Puedes dejar el responseText para la bienvenida pero cuando exista algun error puedes escribir un: echo "error";

"error" es tu indicador que la validación no ha sido exitosa, con ella puedes mandar el mensaje de error por defecto a cualquier div. Entonces tu función ajax podría quedar mas o menos asi: (lo adaptas)

Código:
if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {                    
	document.getElementById(error).innerHTML= "Datos Incorrectos";                
} else {   
	if(ajax.responseText=="error") {
	
		alert("Datos incorrecto de usuario");
	
		
	
	}
	else{
	
		document.getElementById(capa).innerHTML= "Bienvenido " + ajax.responseText;
	
	}
                 
	 
}
__________________
Quitenme la vida pero no la bebida.
  #3 (permalink)  
Antiguo 12/10/2010, 17:53
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 7 meses
Puntos: 23
Respuesta: Detallito Login ajax+php

Gracias cesarpunk, me despejaste un poco mas el panorama, pero mi logueo no funciona, no hace nada ni manda error ni nada...

Mira asi qdo mi js con unos pequeños ajustes q le hice:

Código:
function logueo(user, pass, capa){
	var usuario= document.getElementById(user).value;
	var contrasena= document.getElementById(pass).value;
	alert ("si");
		var ajax;
    	ajax= ajaxFunction();
    	ajax.open("GET", "../../CIByR/login.php?usuario="+usuario+"&contrasena="+contrasena, true);
    	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	ajax.onreadystatechange = function() {
			alert ("1");
    		if (ajax.readyState==1) { 
    		   document.getElementById(capa).innerHTML= "<center><img src='./../CIByR/pag_consulta/images/loader.gif' alt='Procesando'><br><br> Espere por favor...</center>";
    		}
    		else if (ajax.readyState==4){                            
    			if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {                   
alert("Error en la validación");
    			} 
				else{   
					if(ajax.responseText=="err_user") {
						alert("El usuario no existe");
					}
					else{
						if(ajax.responseText=="err_pass") {
							alert("Contraseña incorrecta");
						}
						else{
							document.getElementById(capa).innerHTML= "Bienvenido " + ajax.responseText;
						}
					}
				}          
    		}
    		ajax.send(null);
		}
}
y en el php (pongo solo el codigo importante):

Código PHP:
if($user==NULL){
    echo 
"err_user";
}
else{
    if (
$contrasena!=$pass){
        echo 
"err_pass";
    }
    else{
          echo 
"rpe=".$user." pass=".$pass;
    }

Probe loguearme con datos correctos e incorrectos y no hace nada, veras q puse un alert "si" y "1" para verificar q si entra a la funcion y si me muestra el alert "si" pero el "1" ya no, despues del "si" no hace nada, la pagina dice listo...

Las variables si llegan bien al php, pero de ahi no se q onda...

Alguien podrá decirme q hago mal??

Gracias
  #4 (permalink)  
Antiguo 12/10/2010, 17:58
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 7 meses
Puntos: 23
Respuesta: Detallito Login ajax+php

Gracias cesarpunk, me despejaste un poco mas el panorama, pero mi logueo no funciona, no hace nada ni manda error ni nada...

Mira asi qdo mi js con unos pequeños ajustes q le hice:

Código:
function logueo(user, pass, capa){
	var usuario= document.getElementById(user).value;
	var contrasena= document.getElementById(pass).value;
	alert ("si");
		var ajax;
    	ajax= ajaxFunction();
    	ajax.open("GET", "../../CIByR/login.php?usuario="+usuario+"&contrasena="+contrasena, true);
    	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	ajax.onreadystatechange = function() {
			alert ("1");
    		if (ajax.readyState==1) { 
    		   document.getElementById(capa).innerHTML= "<center><img src='./../CIByR/pag_consulta/images/loader.gif' alt='Procesando'><br><br> Espere por favor...</center>";
    		}
    		else if (ajax.readyState==4){                            
    			if (ajax.responseText.length == 0 || ajax.responseText == null || ajax.responseText == 'undefined') {                   
alert("Error en la validación");
    			} 
				else{   
					if(ajax.responseText=="err_user") {
						alert("El usuario no existe");
					}
					else{
						if(ajax.responseText=="err_pass") {
							alert("Contraseña incorrecta");
						}
						else{
							document.getElementById(capa).innerHTML= "Bienvenido " + ajax.responseText;
						}
					}
				}          
    		}
    		ajax.send(null);
		}
}
y en el php (pongo solo el codigo importante):

Código PHP:
if($user==NULL){
    echo 
"err_user";
}
else{
    if (
$contrasena!=$pass){
        echo 
"err_pass";
    }
    else{
          echo 
"rpe=".$user." pass=".$pass;
    }

Probe loguearme con datos correctos e incorrectos y no hace nada, veras q puse un alert "si" y "1" para verificar q si entra a la funcion y si me muestra el alert "si" pero el "1" ya no, despues del "si" no hace nada, la pagina dice listo...

Las variables si llegan bien al php, pero de ahi no se q onda...

Alguien podrá decirme q hago mal??

Gracias
  #5 (permalink)  
Antiguo 12/10/2010, 20:00
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 7 meses
Puntos: 23
Respuesta: Detallito Login ajax+php

Yo de nuevo, ya vi mi error...

mi funcion ajax la terminaba asi:

Código:
  ajax.send(null);
  }
}
y debe ser asi:

Código:
  }
  ajax.send(null);
}
Simple no??

Pues esa simplesa lo descomponia!!!

jejeje

Gracias

Etiquetas: ajax, ajax-php, login
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 14:19.