Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/12/2008, 09:48
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: :S porque no hace su funcion ?

Válidas sugerencias, pero el problema real por el que el usuario consulta se soluciona con el primer punto. El problema es que al hacer una comparación LIKE, buscas registros que contengan el string dado como parte del valor en X columna, y como en este caso $usuario no tiene valor, entonces la consulta queda como LIKE '', y obviamente un vacío se encuentra incluído en todos los registros.

Sobre la segunda sugerencia de emiliodeg, eso sería válido si estuviésemos hablando de uin formulario de login. Pero el usuario especifica que con ese trozo de código quiere comprobar si hay una sesión iniciada. Por lo tanto, $_SESSION es correcto.

Otra cosa, y que me intriga ya que es muy común de ver, es esto:

Código PHP:
$_SESSION["usuario"]=$usuario;
    
$_SESSION["pass"]=$pass;
    
$usuario=$_SESSION["usuario"];
    
$pass=$_SESSION["pass"]; 
Con las dos primeras líneas de código unseteas las variables de sesión, ya que ni $usuario ni $pass existen.

Y por último, te recomendaría trabajar mejor en el algoritmo que has planteado para comprobar el login de tus usuarios. ¿No es más fácil crear una variable de sesión al momento del login que indique que el usuario se ha logueado y trabajar primero en base a esa variable? Así, si la variable existe, recién pasas a comprobar que los datos de usuario y/o contraseña guardados en las otras variables de sesión correspondan a un usuario real. Si no existe, no es necesario hacer tal comprobación.

Y una última cosa. La redirección con tags HTML meta es un proceso que se puede detener desde el navegador. Asegúrate de terminar el script con un exit; al realizar la redirección, pues si no todo el contenido "restringido" podría ser visto fácilmente impidiendo que la página redireccione. O mejor usa header('Location:...');