Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Mostrar datos de una autenticacion de usuarios

Estas en el tema de Mostrar datos de una autenticacion de usuarios en el foro de Mysql en Foros del Web. Hola, necesito vuestra ayuda, soy muy novato. Es sobre un sistema de autenticación de usuario contraseña con php y mysql. Creo haber conseguido que me ...
  #1 (permalink)  
Antiguo 11/10/2010, 12:37
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 0
Mostrar datos de una autenticacion de usuarios

Hola, necesito vuestra ayuda, soy muy novato. Es sobre un sistema de autenticación de usuario contraseña con php y mysql.
Creo haber conseguido que me reconozca el usuario y contraseña que están en una tabla, pero luego no soy capaz de mostrar datos del registro de esa tabla, tales como nombre, apellidos, etc.
Os paso el código de lo que he creado, agradeceré muchísimo vuestros comentarios. Seguí los siguientes pasos:

1º formulario para mandar el usuario contraseña

<?php
if ($_GET["errorusuario"]=="si"){
?>
<font color="red" size="+2"><b>Datos incorrectos</b></font>
<?php
}
else{
?>

<?php
}
?>

2º estos datos los mando a una pagina que se llama autenticacion.php

<?php
session_start();
//Conectando a base de datos
$con = mysql_connect("SERVIDOR", "USUARIO", "PASSWORD")
or die("<h3>No se ha podido establecer conexión con el servidor.</h3>");
mysql_select_db("BASE DE DATOS") or die("<h3>La base de datos no se ha encontrado</h3>");
//generando la consulta sobre el usuario y su contrasena
$qr = "SELECT usuario, contrasena, nombre, apellidos ";
$qr .= "FROM clientes WHERE usuario = '" . $_POST['usuario'];
$qr .= "' AND contrasena = '" . $_POST['contrasena'] . "'";
//ejecutando la consulta
$rs = mysql_query($qr);
$row = mysql_fetch_object($rs);

//verificando si hay un usuario con ese password mediante numrows
$nr = mysql_num_rows($rs);
if($nr == 1){
//usuario y contraseña válidos
//se define una sesion y se guarda el dato session_start();
$_SESSION["autenticado"] = "si";
$_SESSION["usuario"] = $_POST['usuario'];
$_SESSION["nombreusr"] = $row->nombre . " " . $row->apellidos;
header ("Location: aplicacion.php");
}
else if($nr <= 0) {
//si no existe se va a login.php y pone el valor de error a SI
header("Location: login.php?errorusuario=si");
}
?>

3º Hay otra página que se llama seguridad.php

<?php
//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTICADO
if ($_SESSION["autenticado"] == "si") {

}
else{
//si el usuario no está autenticado
//redirigirlo a la página de inicio de sesión
header("Location: login.php");
//salimos de este script
exit();
}
?>

4º si el usuario / password es correcto lo manda a la página aplicacion.php

<?php
include "seguridad.php";
?>

<html>
<head>
</head>
<body>
<h1>Ahora estas en una aplicacion segura</h1>
<br>
<br>
<a href="salir.php">Salir del sistema</a>
</body>
</html>

Hasta aquí llega por lo que entiendo que la conexión a la base de datos, y a la tabla de clientes en particular lo hace bien, pero ahora es donde no se como mostrar diferentes campos del registro al que pertenece el usuario logueado.

Muchas gracias
  #2 (permalink)  
Antiguo 12/10/2010, 03:54
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Mostrar datos de una autenticacion de usuarios

Lo que ocurre es que al saltar de tu pagina de login a aplicacion.php los datos de la consulta los pierdes, es decir tu solo veras en la pagina aquellos datos que te mandes por post o get y si realizas consultas a la base de datos, lo mas comodo es como haces pasarte los datos por variables de session,

$_SESSION["usuario"] = $_POST['usuario'];
$_SESSION["nombreusr"] = $row->nombre . " " . $row->apellidos;

aunque debes de recordar poner al principio del todo en cada pagina

<?php session_start();

para que el servidor sepa que tiene que llevar las variables de sesion a la pagina que esta cargando,

por ultimo si necesitas rescatar mas datos de tu usuario, puedes crearte un array de session ya que las variables de session se comportan igual que el resto de variables de php create un array con los datos de la consulta,

yo te aconsejo que lleves los datos minimos por variables de session y realices una nueva query en la pagina donde quieras sacar los datos, deja las variables de session para la seguridad y para las 4 cosas indispensables

Etiquetas: usuarios
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 03:10.