Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Sesión diferente para cada usuario

Estas en el tema de Sesión diferente para cada usuario en el foro de PHP en Foros del Web. Saludos! Tengo un pequeño problemilla. Tengo un script de PHP para gestionar el login de usuarios. Estos, junto con su contraseña se encuentran alojados en ...
  #1 (permalink)  
Antiguo 08/04/2013, 03:53
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Sesión diferente para cada usuario

Saludos! Tengo un pequeño problemilla.
Tengo un script de PHP para gestionar el login de usuarios. Estos, junto con su contraseña se encuentran alojados en una base de datos MySql. Uso XAMPP.
Solo pueden loguearse los usuarios que hay en la BBDD, si no es así informa de que usuario o contraseña son incorrectos, pero si son correctos(por el momento tengo puesto para que me redireccione a www.google.es por probar) me gustaría que cada usuario tuviera su página de sesión, es decir, que con tu usuario solo pudieras acceder a tus datos.

Si obtengo respuesta y es necesario posteo el código para que me digan que debo añadir.

Un saludo y gracias de antemano!!

Lo ideal sería que en la BBDD donde se almacena usuario y contraseña, en otro campo se almacenase la dirección a la página del usuario que se loguea.
  #2 (permalink)  
Antiguo 08/04/2013, 04:29
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Sesión diferente para cada usuario

Buenas the_sheriff_pino

Lo que comentas serviría, un campo en la BBDD que guarde la página donde quieres redireccionar a ese usuario. El problema es que no sabes hacerlo en PHP? Cuelga el código donde tienes la comprobación del login y como rediriges a google

Saludos!
  #3 (permalink)  
Antiguo 08/04/2013, 04:35
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Sesión diferente para cada usuario

Cita:
Iniciado por Kamae Ver Mensaje
Buenas the_sheriff_pino

Lo que comentas serviría, un campo en la BBDD que guarde la página donde quieres redireccionar a ese usuario. El problema es que no sabes hacerlo en PHP? Cuelga el código donde tienes la comprobación del login y como rediriges a google

Saludos!
El siguiente código sería la validación, casi al final del código hay una línea que comienza con header(location: ppersonal.php).

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4.  
  5. <body>
  6. <?php
  7. if (!isset( $_POST['usuario'] )) {
  8. header("Location: login.php");
  9. } else {
  10. $id = mysql_connect("localhost", "root", "toor");
  11. mysql_select_db("san lorenzo", $id);
  12. $consulta = "SELECT * FROM loguin WHERE nom_usuario = '{$_POST['usuario']}' AND password = '{$_POST['contrasenia']}'";
  13. $datos = mysql_query($consulta, $id);
  14. $numDatos = @mysql_num_rows($datos);
  15. if ($numDatos <= 0) {
  16. echo "Usuario o contrase&ntilde;a incorrectos.<br>";
  17. } else {
  18. $_SESSION['nom_usuario'] = $_POST['usuario'];
  19. header("Location: ppersonal.php");
  20. }
  21. }
  22. ?>
  23. </body>
  24. </html>

A este código redireccionaría la página anterior, no se si es estríctamente necesario pero ahí está.(Creo que esta página no sería necesaria y que se podía redireccionar directamente desde el código anterior).
Código PHP:
<html>
<head>
</head>

<body>

<?php 
session_start
(); //Iniciamos sesión
    
if (!isset($_SESSION['usuario'])) 
        { 
            
header("location: http://www.google.es"); 
        } 
?> 

</body>
</html>
  #4 (permalink)  
Antiguo 08/04/2013, 05:33
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Sesión diferente para cada usuario

En efecto, desde el código anterior, al lado del location puedes poner ya el enlace donde quieres que vaya. A no ser que necesitaras hacer alguna gestión previa (por ejemplo temas de log y demás) no hace falta que pases por un .php tuyo propio.

Tienes el campo creado? Supongamos que se llama pagina:

Código PHP:
<html>
<head>
</head>
 
<body>
<?php 
session_start
(); 
if (!isset( 
$_POST['usuario'] )) { 
header("Location: login.php"); 
} else { 
$id mysql_connect("localhost""root""toor"); 
mysql_select_db("san lorenzo"$id); 
$consulta "SELECT pagina FROM loguin WHERE nom_usuario = '{$_POST['usuario']}' AND password = '{$_POST['contrasenia']}'"
$res mysql_query($consulta$id); // Ponle $res para q no se llame igual que la de abajo, $datos
$datos = @mysql_fetch_row($res); // En vez de num_rows, que devuelve la cantidad, haz un fetch_row que te devuelve los datos
if (!isset($datos[0])) { 
   echo 
"Usuario o contrase&ntilde;a incorrectos.<br>"
} else { 
   
$_SESSION['nom_usuario'] = $_POST['usuario']; 
   
header("Location: ".$datos[0]); 
exit;


?> 
</body>
</html>
Saludos
  #5 (permalink)  
Antiguo 08/04/2013, 05:44
Avatar de the_sheriff_pino  
Fecha de Ingreso: abril-2013
Ubicación: Córdoba
Mensajes: 118
Antigüedad: 11 años
Puntos: 0
Respuesta: Sesión diferente para cada usuario

Cita:
Iniciado por Kamae Ver Mensaje
En efecto, desde el código anterior, al lado del location puedes poner ya el enlace donde quieres que vaya. A no ser que necesitaras hacer alguna gestión previa (por ejemplo temas de log y demás) no hace falta que pases por un .php tuyo propio.

Tienes el campo creado? Supongamos que se llama pagina:

Código PHP:
<html>
<head>
</head>
 
<body>
<?php 
session_start
(); 
if (!isset( 
$_POST['usuario'] )) { 
header("Location: login.php"); 
} else { 
$id mysql_connect("localhost""root""toor"); 
mysql_select_db("san lorenzo"$id); 
$consulta "SELECT pagina FROM loguin WHERE nom_usuario = '{$_POST['usuario']}' AND password = '{$_POST['contrasenia']}'"
$res mysql_query($consulta$id); // Ponle $res para q no se llame igual que la de abajo, $datos
$datos = @mysql_fetch_row($res); // En vez de num_rows, que devuelve la cantidad, haz un fetch_row que te devuelve los datos
if (!isset($datos[0])) { 
   echo 
"Usuario o contrase&ntilde;a incorrectos.<br>"
} else { 
   
$_SESSION['nom_usuario'] = $_POST['usuario']; 
   
header("Location: ".$datos[0]); 
exit;


?> 
</body>
</html>
Saludos
Diste en el clavo!!
Un problema menos... Muchas Gracias Kamae!
  #6 (permalink)  
Antiguo 08/04/2013, 06:10
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años
Puntos: 13
Respuesta: Sesión diferente para cada usuario

Me alegro que te haya servido, suerte!

Etiquetas: cada, diferente, mysql, sesión, usuario, 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 05:34.