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

Problema raro con autenticacion :: SOLUCIONADO

Estas en el tema de Problema raro con autenticacion :: SOLUCIONADO en el foro de Frameworks JS en Foros del Web. Hasta hace un par de horas, tenía un sistema de autentucación de usuarios que funcionaba bien. Mientras, trabajaba en otras areas de mi web. Y ...
  #1 (permalink)  
Antiguo 05/03/2010, 18:19
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 12 años, 8 meses
Puntos: 101
De acuerdo Problema raro con autenticacion :: SOLUCIONADO

Hasta hace un par de horas, tenía un sistema de autentucación de usuarios que funcionaba bien. Mientras, trabajaba en otras areas de mi web. Y ahora.... la autenticación falla.

IE me marca error en esta linea en vez de publicar "Error en la contraseña".

<html xmlns="http://www.w3.org/1999/xhtml" lang="sp" dir="ltr">

O en una linea imposible, como por ejemplo 45334637.

Firefox también da un error ambigüo:
missing ; before statement
[Break on this error] <br/>Wrong name or password! <br />

No dice en donde pasa eso! Marca la linea 4:
index.php (línea 4)

<head profile="http://gmpg.org/xfn/11">

Afortunadamente, la version online está funcionando. Pero en servidor local esta pasando eso. Funciona cuando el login es correcto, pero falla cuando no lo es. No puedo ni hacer un alert!


Esto es el codigo, que no toqué durante toda la tarde (creo):

Cita:
<script type="text/javascript">
$("#logueate .boton").click(function() {
$.post($("#logueate").attr("action"), $("#logueate").serialize(), function(data) {

if (eval(data)=="1"){
$.jGrowl("Welcome!",{life:2000});
setTimeout("location.reload(true)",1500);
} else{

$.jGrowl(data);
};

});
return false;
});
</script>
El PHP:
Cita:
$query = mysql_query("SELECT username,password FROM $table WHERE username = '$nombre'") or die(mysql_error());
$data = mysql_fetch_array($query);

if($data['password'] != $clave) {
echo "<br/>Wrong name or password! <br />";
}

else{
$query = mysql_query("SELECT id,username,password FROM $table WHERE username = '$nombre'") or die(mysql_error());
$row = mysql_fetch_array($query);

$_SESSION["nombre"] = $row['username'];

echo "1"; // ante esta respuesta hay un page reload

} ;
Si tienen alguna idea, escucho.

Última edición por mayid; 06/03/2010 a las 07:57
  #2 (permalink)  
Antiguo 05/03/2010, 18:27
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 12 años, 8 meses
Puntos: 101
Respuesta: Problema raro con autenticacion

Acabo de probar que el problema esta en index, no en lo que traigo por ajax (el formulario y el mensaje de ok o error).

Subi la version que da error aquí:
http://artofillusion.com.ar/MeshRepository/index2.php

La correcta es esta:
http://artofillusion.com.ar/MeshRepository/index.php

Y para probarlo solo tienen que poner un nombre de usuario y contraseña incorrectos.
  #3 (permalink)  
Antiguo 05/03/2010, 18:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 12 años, 8 meses
Puntos: 101
Respuesta: Problema raro con autenticacion

No entiendo. Es remoto anda. En local no.

Aunque no es del todo cierto. Si quiero registrarme como nuevo usuario, y pongo dos contraseñas diferentes, tampoco recibo notificación, sino error!

(en local sigo teniendo problemas con nuevo usuario).

Última edición por mayid; 05/03/2010 a las 18:39
  #4 (permalink)  
Antiguo 06/03/2010, 07:56
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 12 años, 8 meses
Puntos: 101
Respuesta: Problema raro con autenticacion

Solucionado. El problema es con eval()

if (eval(data)=="1"){

A mi entender, eval convierte lo que sea en texto. Y quería asegurarme de que javascript tomara el "1" que imprime PHP como cadena, y no como número. Por eso lo usaba. Pero ya veo que es problematico.

Que lindo empezar la mañana resolviendo un problema complicado!
  #5 (permalink)  
Antiguo 07/03/2010, 09:30
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 16 años
Puntos: 281
Respuesta: Problema raro con autenticacion :: SOLUCIONADO

Que yo sepa, lo que hace eval() es hacer que un String se ejecute como javascript.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
  #6 (permalink)  
Antiguo 07/03/2010, 10:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 12 años, 8 meses
Puntos: 101
Respuesta: Problema raro con autenticacion :: SOLUCIONADO

Se ve que leyendo a las apuradas en internet, entendí que eval convertiría las respuestas en texto. Pero lo planteé en el foro de javascript, y me dicen que SIEMPRE en ajax/javascript recibimos respuestas de texto.

Ayer tuve un montón de dudas con esto, que a veces andaba y una hora después dejaba de funcionar (o andaba en local y no en remoto, etc):

if (data=="1"){ }

Además, al hacer un alert(" ' " +data+ " ' ") llegué a obtener esto:

'
1'

Y la razón era que en php había un espacio (un renglon) antes de el comienzo de la etiqueta <php

De cualquier manera, pude recibir bien esa data así:

if (data==1){ }

... sin comillas. Fue una tarde con muchos interrogantes para mí.

Etiquetas: raro, solucionado
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 16:12.