PHP - Sesiones Para Diego Romero

   
Vista:

Sesiones Para Diego Romero

Publicado por w (43 intervenciones) el 24/09/2007 18:39:41
Hola Diego
No sé porque pero no pude contestar tu respuesta a mi pregunta, la página no me funcionó.
Pero bien, tu decias respecto a mi pregunta sobre contar el número de sesiones abiertas por un usuario:
A ver, vamos desde el principio, dices que tienes dos sitios locales, los sitios son así?
http://localhost/sitio1/
http://localhost/sitio2/
Si es así, me temo que eso es UN SOLO SITIO.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sesiones Para Diego Romero

Publicado por w (43 intervenciones) el 24/09/2007 18:41:25
que pena escribir asi pero es que he tenido problemas con la pagina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sesiones Para Diego Romero

Publicado por juan (43 intervenciones) el 24/09/2007 18:46:35
En fin, sigo teniendo problemas para postear una duda, no sé que pasa pero no me deja, y si escribo cualquier babosada ahí si la postea, ...no entiendo.

Lo que pasa es que deseo saber cuantas sesiones tiene abiertas un usuario pero no he podido hacerlo, pues deseo permitir un máximo de 3 y la función que utilizo no cuenta sino la primera vez que me logueo. Me puedes colaborar con esto porfa!!!

Gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sesiones Para Diego Romero

Publicado por Diego Romero (1450 intervenciones) el 24/09/2007 20:41:52
No estoy muy seguro de dónde ves un problema, quizá (y admito que puedo estar absolútamente equivocado en esto) es que tienes un error de concepción respecto de las sesiones.
Un usuario solo puede tener una sesión. La pregunta es cómo sabe el servidor qué es un usuario qué es otro usuario?, usa varios parámetros: el host virtual al que está accediendo, si accede a example.com no es lo mismo que si accede a ejemplo.com.ar aunque el servidor maneje esos dos dominios en la misma máquina; el navegador que usa, si accede a example.com con IE y luego accede a example.com con Opera para el servidor son dos usuarios distintos, no usa la IP del usuario, porque dos peticiones al servidor desde la misma IP no asegura que sean el mismo usuario (podría ser un ciber); a veces usa cookies, si el navegador lo admite, el servidor envia una cookie al navegador que solo contiene un string de identificación (la SID) y se la pide cada vez que accede a un dominio particular. Internamente el servidor crea una sesión identificada con la SID.
Lo que yo entiendo que quieres hacer es que un usuario tenga dos o más SIDs que para todo caso práctico es como si un mismo usuario fueran DOS o más usuarios cuando no lo son.
La única forma que se me ocurre de hacer esto es que el navegador le pase al servidor las SID por URL, no tengo idea cómo harás para que el navegador "lleve la cuenta" de qué SID usar en cada momento, pero en teoría se puede hacer: basta con que generes una SID en servidor y se la pases al cliente, el cliente se la guarda, luego generes otra SID en el serividor y se la pases al cliente que se la guarda también, luego el navegador envia una u otra SID dependiendo de ... cualquier factor que quieras implementar... mediante URL, esto en PHP se puede hacer reescribiendo las peticiones GET para que incluyan por omisión un parámetro PHPSESSID. Esto se puede hacer editando el PHP.INI (no recuerdo la entrada exacta en el PHP.INI pero no te costará mucho encontrala).
¿Voy bien interpretando lo que quieres?.

PD: este foro a veces no te acepta mensajes porque tiene un filtro de "palabras prohibidas" que a veces detecta falsos positivos, especialmente con esa palabra que es sinónimo de ordenador... ;).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sesiones Para Diego Romero

Publicado por Juan (43 intervenciones) el 26/09/2007 15:20:29
Hola Diego,

ya tengo un poco más claro lo de las sesiones pero aún me funciona a medias, te cuento, en la página estoy permitiendo un máximo de 3 sesiones, y como me fue complicado manejar la cantidad de sesiones que tiene un usuario en un momento dado con cookies, lo que hice fue adicionar un campo en la BD que llevara ese contador el cual se alimenta cada vez que se inicia una sesion basandome en el id del usuario que se loguea, hasta ahí bien, aunque ni tanto porque a veces no funciona correctamente no sé porque (ej: hace rato no me generó la cookie al iniciar la sesión, ...qué sería??, no sé!!, despues funcionó normalmente), ahora, al momento de ir cerrando sesiones lo mando a una página llamada logout.php que me opera dicha cantidad de sesiones del usuario restandole una a medida que las van cerrando, con lo que sé cuantas sesiones tiene un usuario, el problema es que en logout.php no sé por qué cuando abro las 3 sesiones permitidas, va restando bien, pero al momento de cerrar la última, no me la resta y queda el campo en la BD en 1, cosa que no es cierta, pero fijate que si abro 2 o solo 1, ahí si funciona bien, te coloco el código de logout.php para que le des un vistazo:
Aparentemente esta bien el código, ...qué opinas???
<? session_start();
require("conecta_sql_radio.php");
$q = new conectemysql("impresion-guias");
$q1 = new conectemysql("impresion-guias");
$total_sesiones = 0;
$sql = "SELECT a.Sesiones_Abiertas FROM usuarios a, perfiles b
WHERE a.Usuario = '$UsuarioMIG'
AND a.Id_perfil = b.Id_perfil";
$q->ejecutar($sql);
$q->cargar();
$total_sesiones = $q->dato(0);
if($total_sesiones >= 3){
#Esto esta asi porque al momento de ser 3 sesiones, en la BD
#el campo queda en 4.
$total_sesiones = 2;
}else{
$total_sesiones = $total_sesiones - 1;
}
$sql1 = "UPDATE usuarios SET
Sesiones_Abiertas = '$total_sesiones'
WHERE Usuario = '$UsuarioMIG'";
$q1->ejecutar($sql1);
$q1->cargar();
session_destroy();
?><script>location.href = "inicio.php";</script>

...estas sesiones a veces como que son un karma!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar