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

no entiendo por que anda mal

Estas en el tema de no entiendo por que anda mal en el foro de Frameworks JS en Foros del Web. es un formulario de login con ajax pero funciona mal... aqui dejo el codigo por si lo quieren ver formulario.html Código HTML: <!DOCTYPE html PUBLIC ...
  #1 (permalink)  
Antiguo 12/03/2011, 16:53
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
no entiendo por que anda mal

es un formulario de login con ajax pero funciona mal... aqui dejo el codigo por si lo quieren ver

formulario.html
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Titulo</title>
<link href="estilosajax.css" rel="stylesheet" type="text/css">
<script language="Javascript">

function crearInstancia(){
	XMLHttp = false;
	
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	
	}else if(window.ActiveXObject){
		var versiones = ["Msxml2.XMLHTTP.7.0","Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0",
						"Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
		
		for (var i = 0;i<versiones.lenght;i++){
			try{
				XMLHttp = new ActiveXObject(versiones[i]);
					if(XMLHttp){
					return XMLHttp;
					break;
					}
			
			} catch (e){};
		}
	}
}
function validarUsuario(){
	XMLHttp = crearInstancia();
	
		if(XMLHttp){
			username = document.form.username.value;
			password = document.form.password.value;
	
			url="login.php?username" + username + "&password=" + password;
			XMLHttp.open("POST",url,true)
			XMLHttp.onreadystatechange=cambiaEstado
			XMLHttp.send(null)
		}else{
			alert('No se pudo crear la instancia');
		}
}

function cambiaEstado(){
	var respuesta;
		if(XMLHttp.readyState==4){
			if(XMLHttp.responseText=='1'){
				respuesta = "Bienvenido!";
			}else if(XMLHttp.responseText == '2'){
				respuesta = "por favor complete usuario y contrasena";
			}else {
				respuesta = "usuario o contraseña invalidos";
			}
			
			document.getElementById("respuesta").innerHTML = respuesta;
		}	
}	
	


</script>

</head>
<body>
<table align="center">
	<tr>
		<td colspan="2">
			<span class="top"> >> Login de usuarios </span>
		</td>
	</tr>
	<tr>
		<td class="lateral">
		<form name="form" id="form">
		
		<br/>
		<span>Username</span>
		<br/>
		<span><input type="text" name="username" id="username"></span>
		<br/>
		<span>Contraseña</span>
		<br/>
		<span><input type="password" name="password" id="password"></span>
		<br/>
		<br/>
		<span><input type="button" value="Enviar" onClick="validarUsuario();"></span>
		<br/>
		</form>
		</td>
		<td class="contenido">
			<span id="respuesta" name="respuesta">&nbsp;</span>
		</td>
	
	</tr>
	<tr>
		<td colspan="2">
			<span class="pie">&nbsp;</span>
		</td>
	</tr>
</form>
</table>
</body>
</html> 
y este archivo es el que recibe los datos y devuelve la variable..

login.php
Código PHP:
<?php


$username 
'admin';
$contrasena 'admin';

if(
$_GET[username] && $_GET[password])
{
    if(
$_GET[username] == $username && $_GET[password] == $contrasena)
    {
        echo 
'1';
    }
    else
    {
        echo 
'0';
    }
}
else
{
    echo 
'2';
}

?>
el codigo lo saque de un libro que estoy leyendo y lo copie tal cual estaba para practicarlo pero no funciona..

saludos
  #2 (permalink)  
Antiguo 12/03/2011, 17:35
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: no entiendo por que anda mal

veo el

if (XMLHttp.readyState==4) ...

y el

if (XMLHttp.status== 200) //HTTP OK

sin ello no funciona, revisa bien los tutoriales de ajax y te darás cuenta

además XMLHttp no está accesible por la función cambiaEstado porque fue declarado dentro de validarUsuario

te has comido varios punto y coma al final de las instrucciones " ; "
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 12/03/2011 a las 17:41
  #3 (permalink)  
Antiguo 12/03/2011, 19:28
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: no entiendo por que anda mal

Cita:
Iniciado por maycolalvarez Ver Mensaje
veo el

if (XMLHttp.readyState==4) ...

y el

if (XMLHttp.status== 200) //HTTP OK

sin ello no funciona, revisa bien los tutoriales de ajax y te darás cuenta

además XMLHttp no está accesible por la función cambiaEstado porque fue declarado dentro de validarUsuario

te has comido varios punto y coma al final de las instrucciones " ; "
es que andar anda, pero me dice siempre el mismo mensaje: "usuario o contraseña invalidos"

Etiquetas: ajax
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 10:01.