Foros del Web » Programando para Internet » PHP »

planteo teorico

Estas en el tema de planteo teorico en el foro de PHP en Foros del Web. hola como estan??: bueno...bueno... aver como me hago entender sobre lo ke kiero preguntar... la cosa es asi: kiero hacer un sitema en el cual ...
  #1 (permalink)  
Antiguo 09/05/2006, 14:30
Avatar de JAK^  
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 12 años, 1 mes
Puntos: 4
Exclamación planteo teorico

hola como estan??: bueno...bueno... aver como me hago entender sobre lo ke kiero preguntar...

la cosa es asi:
kiero hacer un sitema en el cual los usuarios se den de alta temporalmente, es decir no tendria una base de datos de los usaurios, osea quiero ke sean usarios mietras dura su estadia en la pagina (como pasa en los chat por ejemplo ), kiero ke en una pagina figuren todos los usuarios ke esten disponibles en ese momento con sus respectivos datos por ejemplo nik, otro_datto, otro_dato2, esa es basicamente la idea... espero se entienda... no kiero ke me digan a nivel codigo como hacerla sino ke me orienten como deberia encarar esto, si es solamente php, si es nesesario tecnologia de cliente, si conocen algo de donde me pueda orientar,

muchisimas gracias por su atencion saludos
__________________
hola . . .
  #2 (permalink)  
Antiguo 09/05/2006, 14:36
Avatar de ProWebDeveloper  
Fecha de Ingreso: julio-2005
Ubicación: Maracay - Edo. Aragua
Mensajes: 117
Antigüedad: 12 años, 4 meses
Puntos: 1
Si lo que comentas es lo que deseas yo creo que con el uso de sessiones estas hecho... no se si eventualmente necesitaras una tabla para almacenar los usuarios q estan activos pero creo que tan solo el uso de sesiones estaria bien...
__________________
ProWebDeveloper
  #3 (permalink)  
Antiguo 09/05/2006, 15:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
kiero hacer un sitema en el cual los usuarios se den de alta temporalmente, es decir no tendria una base de datos de los usaurios, osea quiero ke sean usarios mietras dura su estadia en la pagina (como pasa en los chat por ejemplo ),
Hasta aquí todo bine simplemente usando sesiones.

Cita:
kiero ke en una pagina figuren todos los usuarios ke esten disponibles en ese momento con sus respectivos datos por ejemplo nik, otro_datto, otro_dato2,
Por la definición de sesión y por el hecho de que las sesiones creadas sólo pertenecen a los clientes que las inician, .. no podrías leer esos datos de sesión de cada usuario en forma global como para obtener esas estadísticas de uso o quien está en el sistema.

En este caso necesitas de una BBDD para almacenar dicha información y gestionar rutinas de "tiempo de expiración" para eliminar esos registros cuando consideres que el usuario no ha tenido actividad con el sistema en cierto tiempo.

Así funciona el típico sistema de reconocimiento de usuarios activos en un sitio .. por ejempo este:

http://www.forosdelweb.com/showpost....45&postcount=3

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 09/05/2006, 16:07
Avatar de JAK^  
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 12 años, 1 mes
Puntos: 4
hola Cluster! sip efectivamente asi lo habia pensado el problema ke se me planteo al pensarlo asi es: (espero me entiendas)

Ke los usuarios siempre estaran inactivos!! (si leiste bien) proke una ves ke se den de alta, los usarios no van a usar el sito para nada solo dejaran abierta la ventana. ¿¿para que?? la idea es esta
los usuarios se registran solamente para ke otros sepan ke estan en linea en ese momento. por eso es ke nececito ke se muestre en otra pagina kien esta en linea. no se si se entiende... yo lo habia pensado como vos me desis pero me tope con este problema. seria facil si todos los usuarios se acuerdan de apretar el boton de cerrar sesion, pero si no se acuerdan e ahy el problema
o si se le acava el tiempo en un cyber y se le reinicia la makina etc...

muchas gracias por su atencion saludos
__________________
hola . . .
  #5 (permalink)  
Antiguo 09/05/2006, 16:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. yo no hablé de un registro de usuarios "definitivo" ..

Se trata de que almacenes esa información de tu usuario .. ese "nick" y demás datos que pidas a tu usuario en una BBDD y establezcas métodos como el del último link que te mostré para "expirar" automáticamente esos datos a cierto tiempo (pues no es tu objetivo tenernos por siempre en tus BBDD).


Cita:
seria facil si todos los usuarios se acuerdan de apretar el boton de cerrar sesion, pero si no se acuerdan e ahy el problema
Prueba el código que te expuse en mi último link .. ahí veras como se trabaja lo que se denomina "tiempo de inactividad" o como determinar un tiempo de expiración en forma automática. Este método NO es exacto .. tienes el margen de error tal como el tiempo que definias tu como que un usuario "ya no está en tu sistema" si pasó cierto tiempo entre su última iteracción con el sistema (movió alguna página, hizo llegar algún dato al servidor .. etc) y la hora/fecha actual.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 09/05/2006, 16:25
Avatar de JAK^  
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 12 años, 1 mes
Puntos: 4
Cita:
Pero .. yo no hablé de un registro de usuarios "definitivo" ..

Se trata de que almacenes esa información de tu usuario .. ese "nick" y demás datos que pidas a tu usuario en una BBDD y establezcas métodos como el del último link que te mostré para "expirar" automáticamente esos datos a cierto tiempo (pues no es tu objetivo tenernos por siempre en tus BBDD).
Sip, te entiendo perfectamente y gracias ... pero lo ke psa es esto... el code de "tiempo de inactividad", si lo comprendo pero el tema es ke los usuarios siempre van a estar inactivos, una ves ke se registren no van hacer nada mas en la pagina aparte de mantenerla abierta, la idea del sistema es simplemente registrarte para ke otros vean ke estas. el code de inactividad no me sirve porke los usarios no van a estar usando el sistema solo tendran abierta la ventana.

gracias de nuevo muy atento
__________________
hola . . .
  #7 (permalink)  
Antiguo 09/05/2006, 17:39
Avatar de JAK^  
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 12 años, 1 mes
Puntos: 4
sigo sin encontrarle la vuenlta.... es complicado o soy yo el problema??
__________________
hola . . .
  #8 (permalink)  
Antiguo 09/05/2006, 18:39
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 14 años, 11 meses
Puntos: 8
Jak, para mi tenes que hacer esto

1. ser registra-> va a la DB se cre un campo, actividad = time()

2. se mueve en la pagina se actualiza el campo anterior, actividad = time()

3. Mostras datos con "SELECT * FROM temporales WHERE actividad > ".time()-60*$minutos_online.""

4.si tenes CronJobs o lo que quieras usar podes eliminar a los inactivos con DELETE FROM temporales WHERE actividad < ".time()-60*$minutos_online.""

saludos, para mi asi es como tenes que hacer la cosa :P y suerte
  #9 (permalink)  
Antiguo 09/05/2006, 19:14
Avatar de JAK^  
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 12 años, 1 mes
Puntos: 4
hola Nefertiter, mmm pero me parece ke tendria el mismo drama ke kon las sesiones, el gran problema ke tengo es ke en este caso la inactividad en la pagina no kiere decir la desconeccion del usuario. no se si estoy logrando hacerme entender. el usuario una ves registrado no va moverse mas en la pagina va minimizar la venta na y la dejara ahy hasta ke se valla y durante todo ese tiempo tengo ke tenerlo como activo, no se si realizando refresh a kada 5min seria una alternativa y cada ves ke se carga la pagina se haga el update en la ddbb, kisa asi funcione ke kren??
__________________
hola . . .
  #10 (permalink)  
Antiguo 10/05/2006, 02:07
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 14 años
Puntos: 0
Bueno, me parece comprender tu problema.

1.- Ingresa a la pagina para registrarse e iniciar sesion (es necesario para manejar variables y tener identificado al usuario, tu elijes si deseas sesiones o no).
2.- Se reciben los datos y se guardan en una tabla llamada usuarios. La tabla puede manejar simples nicks (para no tener nombres duplicados, pues simplemente validas), o toda una variedad de datos como usuario y password. La tabla no guardara tiempos, esos los administrara el cliente, pero hasta este momento tus usuarios estan registrados y existiran todo el tiempo que sea hasta el siguiente proceso.
3.- El usuario puede navegar e irse a prepara un emparedado, su usuario sigue activo en el sistema.
4.- Mediante codigo javascript o AJAX (Consultar en el foro correspondiente), puedes programar un timer de 5 pasos de aviso en el navegador. El tiempo tu lo elijes. El codigo puede ser independiente del servidor o mandar peticiones al servidor sin gastar tanto ancho de banda, solo peticiones he? (Estoy hablando de ajax para poder realizar el envio de peticiones).

Ejemplo:

1.-En 30 minutos su sistema cerrara sesion -Pulse aceptar para actualizar su tiempo de espera
2.-En 20 minutos su sistema cerrara sesion -Pulse aceptar para actualizar su tiempo de espera
3.-En 10 minutos su sitema cerrarar sesion -Pulse aceptar para actualizar su tiempo de espera
4.-En 5 minutos su sistema cerrara sesion. -Pulse aceptar para actualizar su tiempo de espera
5.-Su sesion a terminado, ingrese nuevamente al sistema. -Pulse aceptar para cerrar

Nota: El usuario seguira activo cada vez que actualize y se desactivara una vez pasado el tiempo de espera, desde su ultima actualizacion.

5.- El usuario sigue activo y no gastas ancho de banda, hasta que el timer del navegador termina sus tiempos de aviso, donde el script termina la sesion, enviando una instruccion a tu navegador, de eliminar el usuario.

6.- Hasta aqui todo esto es simple, usaras codigo php,mysql y javascript o AJAX.

7.- Que si quieres borrar la tabla si no hay un usuario, eso tambien se puede, mysql permite tablas temporales, que actuan igual que una tabla normal, solo que esta la puedes borrar despues de usarla. Que como se borra esta tabla, pues simplemente se checa si existe y si no se crea, para agregar un usuario.

8.- Cuando ingrese tu, un query checa si existe la tabla y recorre filas, para mostrar los usuarios ok.

Esa fue la explicasion sencilla, ahora va la complicada. Puedes usar un sistema de registro de usarios, que inserte el tiempo en un campo timestamp o tiempo unix y confrontar este tiempo con las funciones de fecha de php, o las de mysql (las funciones de mysql son excelentes). Correr un cronjob que cheque el tiempo actual con el tiempo del usuario y si este ha pasado el tiempo permitido, eliminarlo. A la vez usas un query o en español CONSULTA, para ver quienes estan en linea. Si no quieres utilizar cronjobs, utilizar ajax para enviar ubdates a la tabla, para decir cuanto tiempo tienen estos usuarios.

Otra forma mas sencilla es dejar registrado al usuario en la base de datos, y si este se va y regresa al tercer dia, este estara activo un maximo de 1 dia (cronjob o ajax), asi que para volver a ingresar, un codigo checara un cookie y volvera a iniciar sesion y asi susecivamente.

Saludos.
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.

Última edición por ProgramadorMax; 10/05/2006 a las 02:14
  #11 (permalink)  
Antiguo 10/05/2006, 02:38
Avatar de vash-stampede-  
Fecha de Ingreso: abril-2006
Ubicación: En el estómago de una Rana
Mensajes: 441
Antigüedad: 11 años, 7 meses
Puntos: 3
Dios ke miedo me das......

Eso es cojonudo jejejejeje, no se me habria ocurrido en años, me parece muy buena idea, y creo ke para tu idea podría funcionar...., Ademas en el mensaje podrías poner algo como que a las 2 horas o 3 de conexión, ponga llevas ya 3 horas aqui metido, vete a por un vaso de agua y descansa un poko.

Jejeje no se algo de ese tipo jiji.
__________________
¡¡¡ Hoy el son de la batalla llegará hasta mi lucharemos hasta vencer o morir, hoy avanzaremos entre toda oscuridad llevando en nuestra sangre el himno de Rohan !!!!!
  #12 (permalink)  
Antiguo 10/05/2006, 06:13
Avatar de JAK^  
Fecha de Ingreso: octubre-2005
Ubicación: ^^CaMiNiTo Al CoSTaDo DeL
Mensajes: 850
Antigüedad: 12 años, 1 mes
Puntos: 4
muchas gracias a todos!!! hoy tengo ke empezar a trabajar en este sistema, les ire comentando los avances, uno de los grandes problemas ke tengo a parte del ya comentado, es el publico al ke sera orientado, es un publico de conocimiento muy basico en el tema de compu e intenet, la mayoria (por no decir todos) son los clasicos adictos a los chats y esas cosas asike tengo ke hacer todo lo mas facil y agradable posible para el usuario (mas dificil para mi jajjajaja)
__________________
hola . . .
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:04.