Ver Mensaje Individual
  #7 (permalink)  
Antiguo 12/08/2015, 01:57
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Almacenar información de usuario específico

Buenas,
Cita:
Iniciado por jesus_spanishteacher Ver Mensaje
Vaya, nadie me echa una manita?
La solución te la ha dado xfxstudios

Cita:
Iniciado por xfxstudios Ver Mensaje
bueno te explico debes almacenar la id del usuario en la tabla 2 para que esta se pueda vincular, si no lo haces no se va a vincular, podria ser algo asi:

Código PHP:
Ver original
  1. <?php
  2. ?>
  3. <?php
  4.  
  5. $id_user = $_SESSION['id'];
  6.  
  7. $inserta = $db->query("INSERT INTO tabla (id_user, v1 ,v2, v3) VALUES ('$id_user' , 'valor1' , 'valor2' , 'valor3')");
  8. ?>
claro siempre que asignes la id a una variable de sesión al loguearte, en caso contrario tendrias que hacer una consulta para traer la ide del usuario y luego almacenarla
1.- Si tu servidor lo permite, usa mysqli en vez de mysql. (En servidores con versiones modernas de PHP te dará errores el script)

2.- Las contraseñas se guardan "hasheadas" mediante sha1() o cualquier otra función que se te ocurra. Así que deberías compararlas con el mismo preceso de hasheo.
Código PHP:
$contrasena mysql_real_escape_string($contrasena);
$sql="SELECT * FROM datos_usuarios WHERE nombreusuario='$nombreusuario'and contrasena='sha1($contrasena)'"
3.- En las consultas, usa solo lo que necesites...
Código PHP:
$sql="SELECT id, usuario, password FROM datos_usuarios WHERE...";

// mejor que:
$sql="SELECT * FROM datos_usuarios WHERE..."
4.- Asignar correctamente las variables de sesion.
Código PHP:
session_start();

$id   1;
$user 'usuario';
$pass sha1('12345678');

$_SESSION = array(
    
'id'   => $id,
    
'user' => $user,
    
'pass' => $pass,
);

var_dump($_SESSION);

// salida
array (size=3)
  
'id' => int 1
  
'user' => string 'usuario' (length=7)
  
'pass' => string '7c222fb2927d828af22f592134e8932480637c0d' (length=40
5.- Guarda en la sesión el id del usuario. Lo podrás usar despues donde quieras sin necesidad de hacer consultas a la base de datos. Es lo que comentaba xfxstudios en el mensaje anterior.
Como en el ejemplo del punto nº 4

6.- Sobre esto:
Cita:
He estado indagando cómo ir almacenando los datos para mantener abierta la sesión de un usuario al pasar de una página a otra y he encontrado varias posibilidades, a ver si me aconsejáis si alguna de esas es mejor:

- usar: function.session-set-save-handler.
"Es lo mismo" que session_start(), solo que permite trabajar con las sesiones en la base de datos. Es un poco más complejo de lo que parece a simple vista.

Habría que perfilar más cosas, pero por ahora con esto tienes para un rato de trabajo

PD.: Lo he escrito con cortes contínuos por el captcha de cloudFlare, así que igual se me ha quedado algo atrás. Cualquier cosa me comentan.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight