Buenas,
Cita:
Iniciado por jesus_spanishteacher
Vaya, nadie me echa una manita?
La solución te la ha dado
xfxstudios Cita:
Iniciado por xfxstudios
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<?php
?>
<?php
$id_user = $_SESSION['id'];
$inserta = $db->query("INSERT INTO tabla (id_user, v1 ,v2, v3) VALUES ('$id_user' , 'valor1' , 'valor2' , 'valor3')");
?>
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,