
15/04/2011, 16:52
|
 | Mod on free time | | Fecha de Ingreso: agosto-2008 Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 7 meses Puntos: 2237 | |
Respuesta: problemas con manejos de sesiones Tu codigo... sorry por ponerlo como texto, solo quiero remarcar algunas cosas:
-----------------------
if (isset($_POST['username']) && isset($_POST['password'])) { session_start();
$ilink3=mysql_connect($servidor,$usuario,$password ) or die(mysql_error());
mysql_select_db($sdb,$ilink3);
// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta = mysql_query("SELECT id,usuario,password FROM users WHERE usuario='".$_POST['username']."'") or die(mysql_error());
if (mysql_num_rows($usuario_consulta) != 0) {
if (($login == $usuario_consulta['usuario'])&&($password == $usuario_consulta['passwoord']))
{ session_name($usuarios_sesion);
// incia sessiones
// Paranoia: decimos al navegador que no "cachee" esta página. session_cache_limiter('nocache,private');
// Asignamos variables de sesión con datos del Usuario para el uso en el
// resto de páginas autentificadas.
// definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
$_SESSION['usuario_id']=$usuario_consulta['id'];
--------------------------------
1. Al inicio de la pagina ya tienes un session_start(), el marcado en rojo sale sobrando.
2. Si quieres definir un nombre especifico para las sesiones, debe ser antes de session_start().
3. Creo que lo mismo aplica para session_cache_limiter()... es decir, antes de session_start().
Resumen:
- Un solo session_start() por script y debe ser al principio.
- Si quieres aplicar modificadores, como nombre y/o especificaciones de cache, debes hacerlo antes de iniciar la sesion.
- Si usas nombre de sesion en login, debes usar exactamente el mismo en todos los otros scripts donde quieras tener acceso a las variables de sesion. |