Foros del Web » Programando para Internet » PHP »

Visita Unica

Estas en el tema de Visita Unica en el foro de PHP en Foros del Web. Wenas a Todos, Estoy haciendo una web q necesita identificar la visita, para determinar si ya la ha visto antes, Y que cuente como unica ...
  #1 (permalink)  
Antiguo 26/09/2005, 09:40
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Visita Unica

Wenas a Todos,

Estoy haciendo una web q necesita identificar la visita, para determinar si ya la ha visto antes,
Y que cuente como unica la visita cada 24 horas,

Osea q por ejemplo, cuente la visita si yo la visito ahora, pero si la visito dentro de 10 horas no, Pero si la visito dentro de 25 si.

Tenia pensado acerlo Con Sessiones y no se como poner para q la session se acabe a las 24 horas.

Creo q se pone en el php.ini pero no se bien

Alguna Idea ?
  #2 (permalink)  
Antiguo 26/09/2005, 09:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En ese caso te combiene más usar cookies. Eso sí dependerás que tu usuario las acepte. Si registras IP's .. tendrás problemas con los usuarios que pasan por un proxy o los que usan conexiones con IP's dinámicas.

¿Tienes posibilidad de gestionar usuarios para tu sitio? .. es decir . .que pasen por un registro y su "login" para entrar a tu sistema? .. Si es así .. eso sería lo mejor. Los anteriores soluciones tienen sus pró's y contras.

Un saludo,
  #3 (permalink)  
Antiguo 26/09/2005, 11:36
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
La verdad esq me interesa cualquier visita con tal de q tenga IP diferente, aunq sea d la misma persona :)

Lo q m interesa es diferenciarlo cada 24 horas en el caso d q sea la misma,

Yo creo q uso la Cookie para identificarlos, creo q esta asi el PHP.ini y tengo q en el tiempo d la cookie sea 86400 ( si no rcuerdo mal , en segundos para las 24 horas ) pero no se si asi quitara la cookie cada 24 horas, esq necesito como si, a las 24 horas, s quitara la variabe registrada y la session se destruyera y no se como acerlo
  #4 (permalink)  
Antiguo 26/09/2005, 11:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
A ver .. creo que estás confundiendo (o no nos entendemos) lo que significa propagar el SID (Identificador Único de Sesión) de una sesión vía Cookies a lo que significa usar Cookies (setcookie())

Si propagas el SID en cookies y tienes un tiempo de expiración de esta determinado mayor que cero .. cuando caduque lo que pierdes es el "SID" como enlace entre el cliente que la creó y el servidor .. En ese caso la sesión ya no es accesible (ya no tienes el SID). Ahora, tendrás que ajustar el tiempo de duración de la sesión (session.gc_maxlifetime) que por defecto son 1440 segundos .. (24 minutos) .. ajustalo a un valor igual o algo superior a lo que definas en tu cookie sino .. la sesión te va a expirar antes que tu cookie y no conseguiras el efecto de que muera la sesión completamente cuando la cookie y su tiempo definido lo haga.

Un saludo,
  #5 (permalink)  
Antiguo 26/09/2005, 12:02
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Pero esq no entiendo bien d configurar esto xDD :


Código:
; Whether to use cookies.
session.use_cookies = 1

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 86400

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Handler used to serialize data.  php is the standard serializer of PHP.
session.serialize_handler = php

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

session.gc_probability = 1
session.gc_divisor     = 100

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
En este Ultimo pongo el mismo q el otro ?
  #6 (permalink)  
Antiguo 26/09/2005, 12:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por lo menos:

session.gc_maxlifetime debería ser algo superior a session.cookie_lifetime

Un saludo,
  #7 (permalink)  
Antiguo 26/09/2005, 12:11
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
A ver me expliko algo mas,

Yo al iniciar la pagina, para comprobar si el tio ya a estado ago esto

session_start()

if (!$visitado) { Codigo q Quiero si no Ha estado ; } else { Codigo q quiero si ya a estado }

Tonces lo q quiero esq a las 24 horas, se quite el valor de $visitado, o q se cerrara la sesion y ya no valiera, algo q me permita con el mismo codigo comprobar otra vez session y ver q no la tiene seteada. ^^
  #8 (permalink)  
Antiguo 26/09/2005, 12:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Como ya te he comentado -configurando- tus sesiones para que se propague el SID en cookies y ajustando los valores que te mencioné harías lo mismo que con una cookie directamente!.

Las cookies trabajadas de esta forma dependen del PC .. (navegador que use) no de la IP que pueda tener en ese momento de la conexión .. Por supuesto dependes de que tu navegador (el que usen tus usuarios) acepte dichas cookies.


Cita:
Tonces lo q quiero esq a las 24 horas, se quite el valor de $visitado
No sé si comprendes el concepto de "expiración" de una cookie cualquiera (sea que la cree PHP por su uso en conjunto con sesiones o cookies directas vía setcookie()) .. Pero es eso lo que hace al terminar el tiempo de expiración de una COOKIE! .. el valor almacenado en ella desaparece ..

NOTA: .. NO uses variables como globales usa $_SESSION o $_COOKIE para acceder a tus variables de sesión o cookies.

Un saludo,
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 12:08.