elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda con sessiones en php para evitar conflictos cuando se loguean muchos users
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con sessiones en php para evitar conflictos cuando se loguean muchos users  (Leído 3,784 veces)
mit


Desconectado Desconectado

Mensajes: 830

¡Mit!


Ver Perfil WWW
Duda con sessiones en php para evitar conflictos cuando se loguean muchos users
« en: 24 Diciembre 2008, 21:55 pm »

Hola, de nuevo yo aqui molestando.
tengo algunas variables de sesion en las que capturo el id_usuario,nombre_usuario, por mencionar algunas.

uso session_start(); para iniciar una sesion nueva o retomar una sesion existente.

Mi duda es la siguiente: Si se logueas por ejemplo 10 usuarios y al hacer loguin que pasa con las sesiones ??
Logicamente pienso yo que cuando varios usuarios se loguean, las sessiones se guardan de la siguiente manera:

sesion ->id[0]  ->Vars ['id_usuario'] -> 100
sesion ->id[0]  ->Vars ['nombre_usuario'] -> mit19t
sesion ->id[0]  ->Vars ['pais'] -> Mexico

sesion ->id[1]  ->Vars ['id_usuario'] -> 101
sesion ->id[1]  ->Vars ['nombre_usuario'] -> hacker
sesion ->id[1]  ->Vars ['pais'] -> Mexico
.
.
.
sesion ->id[10]  ->Vars ['id_usuario'] -> 110
sesion ->id[10]  ->Vars ['nombre_usuario'] -> net
sesion ->id[10]  ->Vars ['pais'] -> Argentina


Asi es como se manejan las sesiones con sus respectivas variables???
De ser asi, yo siempre uso solamente el session_start(); y session_destroy();

Es necesario algo adicional como asignarle un id de sesion a cada usuario que se loguea, o basta con el session_start() ??
Se crea automaticamente el id de session ??


Gracias y disculpen de nuevo las molestias

saludos


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Duda con sessiones en php para evitar conflictos cuando se loguean muchos users
« Respuesta #1 en: 25 Diciembre 2008, 19:14 pm »

No debes declarar ningún id a la sesión ya que php los organiza automáticamente, fijate que cuando te crea la cookie del phpsessid tiene un formato aleatorio que identifica quien eres, ahora desde php no debes hacer nada ya que por defecto se utilizará la sesión del mismo usuario... un ejemplo..

Código
  1. <?php
  2. if(!$SESSION['nombre']){
  3. $SESSION['nombre'] = $_GET['nombre'];
  4. echo 'Estableciendo sesión...';
  5. }else{
  6. echo 'Tu nombre es: '.htmlspecialchars($SESSION['nombre'], ENT_QUOTES);
  7. }
  8. ?>

Si lo abres desde dos exploradores diferentes como por ejemplo IE y FF verás que a cada explorador se le asignará una cookie llamada phpsessid que solo servirá para identificar que sesion se está usando con un contenido aleatorio, dentro del servidor en el directorio temporal se alojan estas sesiones en formato de texto plano con el contenido de cada variable o constante declarada, ahora en un explorador ejecutas test.php?nombre=whk1 y en el otro explorador test.php?nombre=whk2 verás que cuando refresques ambos te responderán diferente porque cada explorador ha iniciado una sesión diferente y el que ya lo haya iniciado se queda con esos datos asi que puedes hacer una función globalizada pensando en un solo usuario y eso funcionará para todos a la ves.

Ahora si usas session_destroy() estarás terminando solamente con la sesión del usuario que visualiza esa web no la de los demás y eliminará todos los datos que escribiste en su sesión.

Dale un vistazo a esto:
http://cl.php.net/manual/es/book.session.php


« Última modificación: 25 Diciembre 2008, 19:17 pm por WHK » En línea

mit


Desconectado Desconectado

Mensajes: 830

¡Mit!


Ver Perfil WWW
Re: Duda con sessiones en php para evitar conflictos cuando se loguean muchos users
« Respuesta #2 en: 25 Diciembre 2008, 19:20 pm »

Mas claro ni el agua hermano, excelente explicacion, ahora podre probar las sessiones localmente sabiendo que se asignan sesiones diferentes en navegadores distintos.

Muchas gracias amigo
Saludos
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Duda con sessiones en php para evitar conflictos cuando se loguean muchos users
« Respuesta #3 en: 25 Diciembre 2008, 19:32 pm »

Ojo, no es que cada navegador solamente tenga sesiones diferentes  :P sino que cada sesion iniciada tiene un identificador diferente, o sea dos personas con el mismo explorador obtendrán sesiones diferentes, esto es independiente del explorador solo te lo habia dado de ejemplo, si borras la cookie phpsessid te volverá a crear una sesión totalmente nueva.
En línea

mit


Desconectado Desconectado

Mensajes: 830

¡Mit!


Ver Perfil WWW
Re: Duda con sessiones en php para evitar conflictos cuando se loguean muchos users
« Respuesta #4 en: 25 Diciembre 2008, 20:40 pm »

Ojo, no es que cada navegador solamente tenga sesiones diferentes  :P sino que cada sesion iniciada tiene un identificador diferente, o sea dos personas con el mismo explorador obtendrán sesiones diferentes, esto es independiente del explorador solo te lo habia dado de ejemplo, si borras la cookie phpsessid te volverá a crear una sesión totalmente nueva.

Vale vale, asi lo habia entendido jejje, lo que pasa es que no podia ver globalmente como iba a ser el comportamiento de las sesiones cuando se loguearan muchos usuarios en mi web cuando estuviera montada en internet, y como yo trataba de loguearme con firefox por ejemplo, trataba de iniciar 2 sesiones desde fiferox con usuarios diferentes lo cual causaba conflicto, se destruia la sesion anterior y se creaba otra con el segundo usuario con el que me logueaba. Es por eso que mencione que ahora si iba a poder verlo de forma global, ya que podria hacer la prueba de dos logueos a la vez usando firefox y internet explorer por ejemplo, ya que estoy trabajando localmente por ahora.

Pero gracias de todos modos por la aclaracion jeje  ;)

Saludos gran WHK :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Google habría cambiado la extensión '.bro' para evitar conflictos de género
Noticias
wolfbcn 0 853 Último mensaje 12 Octubre 2015, 21:33 pm
por wolfbcn
Duda guardar score de users
PHP
carwar 1 2,519 Último mensaje 1 Noviembre 2017, 04:28 am
por SrTrp
Continuar cuando tienes un valor que lleva a muchos address
Ingeniería Inversa
bluedrago 0 2,143 Último mensaje 4 Septiembre 2019, 12:28 pm
por bluedrago
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines