Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/08/2010, 01:15
malkavie
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 13 años, 9 meses
Puntos: 1
Autenticacion de usuarios

Si otra vez yo, ya lo se hombre aún no termino de resolver una cosa y ya estoy haciendo otra... bueno pues ahora estoy un poquin atorado con mi autenticación de usuarios, sucede que tengo mi formulario html que envía los datos de sesión, hasta aquí todo funciona, luego recibo datos en el archivo que procesará la info para validar su existencia, nuevamente todo sale bien; el asunto es como sigue, no he logrado almacenar los datos del usuario, su nombre por ejemplo, para que, una vez iniciada la sesión y sin importar que página de mi sitio visite en todo momento vea la leyenda "bienvenido fulanito" y esto será así hasta que decida cerrar la sesión. Les pongo mi código para que le echen un ojo y me digan que puede estar fallando:

//acá va todo el cotorreo de la conexion a base de datos, ustedes saben

$cliente = $_POST['usuario'];
$clave = $_POST['clave'];

$cliente = stripslashes($cliente);
$clave = stripslashes($clave);
$cliente = mysql_real_escape_string($cliente);
$clave = mysql_real_escape_string($clave);

$consulta = "SELECT * FROM clientes WHERE email='$cliente' AND password='$clave'";
$usuario = mysql_db_query($base,$consulta);

if (mysql_num_rows($usuario)==1)

//esto funciona, si meto datos incorrectos veo el mensaje final de datos no validos, si son correctos inicia sesión sin pedos.

{
$datos = mysql_fetch_array($usuario);

//acá es donde no sé como coger toda la info del usuario para crear la session, o al menos yo creo que todo el desmadre esta aquí

$estado = $datos['status'];
if ($estado == 2)
{
echo "No has activado aún tu cuenta";

//ahm, si bueno algo simplista mi sistema de activación... alguna idea?

}
else
{
$id = $datos['Id'];
$nombre = $datos['nombre'];
$clase = $datos['clase'];
$mail = $datos['email'];
session_start();
$_SESSION['id'] = $id;
$_SESSION['estado'] = 'Autenticado';
$_SESSION['nombre'] = $nombre;
$_SESSION['clase'] = $clase;
$_SESSION['email'] = $mail;

echo "Bienvenido $nombre has iniciado sesión correctamente";
echo $nombre; //esta la puse de prueba para ver si cogía los datos de arriba, pero no hace nada
}
}
else
{
echo "Los datos no son válidos";
}

El asunto es que necesito esa info del usuario que se leguea ya que son, en su mayoría, personal que debe tener acceso a ciertas partes de la base de datos para editar o agregar registros, entre otras cosas, pero ademas necesito saber quién hizo la modificación, por eso paso toda esa info a la session. La línea que dice "bienvenido $nombre has iniciado sesión" no imprime nada en $nombre, es decir que la variable llega vacia.

Espero haber sido claro con esto... a veces no sé si soy peor explicando o programando...

Gracias de antemano