SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: javier3 en Viernes 16 de Enero de 2004, 18:09

Título: Generar Contador
Publicado por: javier3 en Viernes 16 de Enero de 2004, 18:09
Hola a todos quisiera que me ayuden como puedo hacer un contador que solo incremente cada vez que yo ingrese a la página mas no cada vez que se actualize no se si me entienden por fa alguien ayudeme gracias..
Título: Re: Generar Contador
Publicado por: Avalon en Lunes 19 de Enero de 2004, 18:19
Hola Javier. Podrías hacerlo mediante el uso de cookies. Por ejemplo, cuando alguien entre a tu página por primera vez creas una cookie en su máquina para marcar que la visita ya ha sido contabilizada. Parto de la base que ya dispones del código del contador y sólo te falta controlar que se incremente la primera vez que se acceda a la página durante una sesión. Entonces sería algo como esto:

Código: Text
  1. <?php
  2.  
  3.     // Primero controlamos si existe la cookie en la máquina del visitante
  4.  
  5.     // Si no existe...
  6.     if (!$_COOKIE["contador"]) {
  7.  
  8.   // Creamos la cookie
  9.   setcookie("contador", 1);
  10.  
  11.   // Incrementamos el contador en 1
  12.   // Aquí iría el código de tu contador
  13.     }
  14.  
  15. ?>
  16.  


De esta forma sólo se contabilizaria una visita por sesión. Es decir, hasta que el visitante cierre su navegador. Si lo que quieres es contabilizar una visita por usuario y día podrías ponerle una fecha de expiración a la cookie. Para 24 horas sería esto:

Código: Text
  1. setcookie("contador", 1, time()+60*60*24);
  2.  


Espero que te sirva.


Salu2,
Avalon
Título: Re: Generar Contador
Publicado por: javier3 en Viernes 23 de Enero de 2004, 18:51
Hola Avalon, mira te envio el codigo que puse pero me sale un error
<?php
   if (!$_COOKIE["contador"])
   {
   setcookie("contador", 1);
//Este código le agregé yo.
   $contador1=$rsconta->Fields("numero");//Estoy recuperando de una tabla el ultimo número registrado
   ++$contador1; //luego le incremento en uno
   $sql="update contador set numero=$contador1"; luego ese incremento tengo que guardarlo en la tabla
   $cnconta->Execute($sql);//ejecuto la actualización y al final en la otra página imprimo la variable $contador1 pero me sale este error
}?>


Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\newportal\index.php:9) in c:\apache\htdocs\newportal\pg_titulo.php on line 16

te explico el código del contador esta en pg_titulo.php pero, ésta página esta incluida dentro de la página index.php y cuando levanto el index.php me sale el error que te puse arriba pero si me llega a imprimir la página pg_titulo.php
 haber si me puedes ayudar gracias.... :comp:
Título: Re: Generar Contador
Publicado por: Avalon en Viernes 23 de Enero de 2004, 19:09
Ese error aparece cuando se envía algo al navegador (por ejemplo con un echo o print) antes de que se ejecute el setcookie.

Si puedes adjunta en un mensaje tanto index.php como pg_titulo.php dentro un archivo .zip para ayudarte a encontrar el error.


Salu2,
Avalon
Título: Re: Generar Contador
Publicado por: javier3 en Viernes 23 de Enero de 2004, 19:42
Ahi esta Avalon los archivos... ayudame
Título: Re: Generar Contador
Publicado por: Avalon en Viernes 23 de Enero de 2004, 20:49
Como dije antes no puedes enviar información a la salida antes de ejecutar la instrucción setcookie. Tendrás que modificar tu index.php para que el archivo donde se encuentra el contador se interprete antes que estas líneas:

Código: Text
  1. &#60;html&#62;
  2. &#60;head&#62;
  3. &#60;title&#62;::: Portal Gráfico del Perú &#60;/title&#62;
  4. &#60;/head&#62;
  5. &#60;body topmargin=0 leftmargin=0&#62;
  6. &#60;table width=&#34;756&#34; border=0 cellspacing=&#34;0&#34; cellpadding=&#34;0&#34; &#62;
  7.   &#60;tr&#62;
  8.     &#60;td colspan=&#34;3&#34;&#62;
  9.  


Salu2,
Avalon