Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/06/2012, 12:38
elgoncho99
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: problemas con usuarios

Cuando procesas el login, aun no sabes que usuario es. Asi que es imposible tener el id de usuario si aun no chequeaste la base de datos.

Te puse un par de comentarios y te complete el codigo, imagino que en alguna parte recuperas la session no? porque para declarar una variable de session en el array $_SESSION es necesario iniciar la session con session_start().
Código PHP:
Ver original
  1. <?php
  2.     include 'conex.php';
  3.     /*
  4.      * $id      = $_POST['idusu'];
  5.      * Esto conceptualmente esta mal, porque aun no sabes el id de usuario.
  6.      * Primero debes ir a la base de datos para ver si el usuario existe.
  7.      *
  8.      */
  9.    
  10.     $usuario = $_POST['usuario'];
  11.     $clave   = $_POST['contrasena'];   
  12.    
  13.     // Esto esta mal por el mismo motivo anterior.
  14.     //$_SESSION['id'] = $id;
  15.    
  16.     $sql = "SELECT id_usuario,
  17.                    txt_nomusuario,
  18.                    txt_contrasena
  19.             FROM usuarios
  20.             WHERE txt_nomusuario = '".$usuario."'
  21.                 AND txt_contrasena = '".$clave."'";
  22.  
  23.     //verifica si se puede hacer consulta
  24.     if ( ! ($consulta = mysql_query($sql)) )   
  25.     {
  26.         echo '<script type="text/javascript"> alert ("Error, falla de conexion") </script>';
  27.         echo '<script type="text/javascript">window.location="index.php"</script>';
  28.         exit();
  29.     }
  30.     else
  31.     {
  32.         // si hay uno al menos consiguio registro
  33.         if (mysql_num_rows($consulta)==0)
  34.         {
  35.             echo '<script type="text/javascript"> alert ("Error, usuario no registrado") </script>';
  36.             echo '<script type="text/javascript">window.location="index.php"</script>';
  37.             exit();
  38.         }
  39.         else
  40.         {
  41.             /*
  42.              * Verificar la clave aca no tiene sentido, ya lo verificaste en la base de datos.
  43.              * Si trajo 1 coincidencia de txt_nomusuario = $usuario y txt_contrasena = $clave
  44.              * esta validado!
  45.              */
  46.            
  47.             $user = mysql_fetch_row($consulta);
  48.             /*
  49.              * Aca es donde tiene un arrar $user con los datos de tu usuario
  50.              * y es aca donde tenes que setear el id de usuario en la variable de session
  51.              */
  52.             $_SESSION["id"] = $user['id_usuario'];
  53.             $_SESSION["valido"] = 1;
  54.             header( "location: menu.php");
  55.             exit();
  56.         }
  57.     }
  58. ?>


Espero te sirva. Saludos.