Foros del Web » Programando para Internet » PHP »

Sesiones y contador de visitas

Estas en el tema de Sesiones y contador de visitas en el foro de PHP en Foros del Web. Hola! Tengo un pequeño problema con PHP. Recien estoy empezando con esto que aparentaba ser muy facil hasta que me encontre con el siguiente problema: ...
  #1 (permalink)  
Antiguo 27/04/2006, 07:23
 
Fecha de Ingreso: abril-2006
Mensajes: 66
Antigüedad: 18 años
Puntos: 0
Sesiones y contador de visitas

Hola! Tengo un pequeño problema con PHP. Recien estoy empezando con esto que aparentaba ser muy facil hasta que me encontre con el siguiente problema:
Arma un contador de visitas contador.php, que registra las visitas en un txt a forma de log, almacenando IP, horario y navegador, y el contador lo que hace es contar las lineas de este archivo.
Voy bien hasta que lo tengo que hacer andar: Tengo un index.php, que varia su contenido segun la seccion en la que esté por get, de modo que el el include de contador se ejecuta en cada seccion y aumenta en uno! index.php?id=1 - index.php?id=1&subid=2 etc. todos aumentan el contador! Me dije claro! que simple es esto!, solo debo generar una sesion y se acabo el problema....
ahora, me es imposible hacerlo andar! No logre verificar correctamente si hay o no sesion iniciada para hacer el "include" de contador.php .... alguna idea? Tiene que ser muy facil!
  #2 (permalink)  
Antiguo 27/04/2006, 07:28
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
¿Qué error te esta arrojando?

Si pudieras poner tu código por favor
  #3 (permalink)  
Antiguo 27/04/2006, 07:48
 
Fecha de Ingreso: abril-2006
Mensajes: 66
Antigüedad: 18 años
Puntos: 0
Una de las cosas que probé era algo como:

session_start();
if(isset($_SESSION['lala'])){
}else{
include("contador.php");
$_SESSION['lala']=true;
}

Pero sigue variando el contador de sesion en sesion... lo que necesito es hacer el include solo una vez por sesion, y que el resto de las veces no se ejecute.
  #4 (permalink)  
Antiguo 27/04/2006, 08:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Podrías usar simplemente:

Código PHP:
<?
session_start
();
if(empty(
$_SESSION['lala'])){ 
  include(
"contador.php");
  
$_SESSION['lala']=true
}
?>
Pero que las "sesiones" funcionen así de simple depende de otros factores. Sobre todo de configuración de PHP y de condiciones de uso del código.

Si así no te funciona, el problema lo tienes al parecer con la propagación del SID (Identificador único de sesión) .. Si no mencionas nada más de código .. "asumes" que quieres o necesitas propagar el SID en cookies, por ende necesitas un navegador que acepte dicha cookie y que NADA las bloquee (lease: firewalls, ciertos antivirus con esas funcionalidades, barras de herramientas tipo yahoo, google .. etc con esas funcionalidades .. etc).

También la configuración de PHP tiene que ser acorde con el tema de propagación del SID en cookies. PHP.ini directiva:

session.use_cookies = ON

Y opcionalmente (y recomendado por seguridad):

session.use_only_cookies = ON

y desactivar:
session.use_trans_sid = OFF (si es que estuviese a ON) para no propagar el SID en el URL ..

Una prueba sencilla para detectar problemas de ese tipo es "imprimir" el valor de SID como constante que es y ver si ante una recarga de página o link sobre si misma como parece que haces el SID es el mismo o cambia (debe ser el mismo)

Pruebalo .. bajo session_start() usa:
echo SID;

Y observa (toma nota y comparalo con los sub-siguientes).

más info:
www.php.net/session

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 27/04/2006, 14:54
 
Fecha de Ingreso: abril-2006
Mensajes: 1
Antigüedad: 18 años
Puntos: 0
Hola tambien estoy buscando ayuda tengo un problema y creo que es por las sesiones, ya que antes de incluirlas en el sistema funcionaba bien: cuando le doy clip al boton atras del navegador me muestra el siguiente error: La página solicitada se creó utilizando la información que envió en un formulario. Esta página no está ya disponible. Como medida de precaución, Internet Explorer no volverá a enviarle la información.
Para volver a enviar la información y ver esta página Web haga clic en el botón Actualizar .

Cuando le doy en actualizar se muestra la informacion correctamente quiciera saber si pueden ayudarme a solucionar ese problema se los agradeceria...
  #6 (permalink)  
Antiguo 28/04/2006, 07:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por JGJG52
Hola tambien estoy buscando ayuda tengo un problema y creo que es por las sesiones, ya que antes de incluirlas en el sistema funcionaba bien: cuando le doy clip al boton atras del navegador me muestra el siguiente error: La página solicitada se creó utilizando la información que envió en un formulario. Esta página no está ya disponible. Como medida de precaución, Internet Explorer no volverá a enviarle la información.
Para volver a enviar la información y ver esta página Web haga clic en el botón Actualizar .

Cuando le doy en actualizar se muestra la informacion correctamente quiciera saber si pueden ayudarme a solucionar ese problema se los agradeceria...
Deberías hacer tu pregunta en un tema nuevo. Si bien "podrías" tener un problema con sesiones .. no tiene nada que ver con este.

Por otro lado si muestras un mensaje de error textual .. usa la etiqueta del foro [ quote] .. [/ quote]. ( O lo separas como un "parrafo" .. para que se vea más claro y se identifique).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 23:38.