Foros del Web » Programando para Internet » PHP »

contar visitas por notas con cookies

Estas en el tema de contar visitas por notas con cookies en el foro de PHP en Foros del Web. Estoy realizando un contador de articulos cada vez que una persona ingresa a una nota guarda el id enla cookie, para asi no contar nuevamente ...
  #1 (permalink)  
Antiguo 11/01/2009, 14:31
 
Fecha de Ingreso: junio-2004
Mensajes: 80
Antigüedad: 19 años, 10 meses
Puntos: 0
Mensaje contar visitas por notas con cookies

Estoy realizando un contador de articulos cada vez que una persona ingresa a una nota guarda el id enla cookie, para asi no contar nuevamente esa visita si reingresa a la nota.

Pero siempre me genera un error la primera vez que se visita el enlace.
Warning: in_array(): Wrong datatype for second argument in cookienota.php on line 18

Tengo el siguiente codigo:

Código:
<?php setcookie("idnota[$_GET[id]]", "$_GET[id]",time() + 86400); ?>
<html>
<head>
    <title>Contador de notas</title>
</head>
<body>
<p> <a href="?id=2">2</a> <a href="?id=3">3</a> <a href="?id=4">4</a> <a href="?id=5">5</a> <a href="?id=6">6</a> <a href="?id=7">7</a> <a href="?id=8">8</a> <a href="?id=9">9</a></p>
<br />
<hr />
<?
    echo $_GET[id]."<BR>";
 ?>
<hr> 
<?php
echo "<br>";
//---------------------------
if (in_array($_GET[id], $_COOKIE['idnota'], TRUE)){ //en esta linea es que se genera el error cuando se visita la primera vez, si ud le da un cli al un numero anterior ya no vuelve a aparecer.
echo "$_GET[id] visitado\n";//no guarda informacion
}else{
    echo "no visitado";
            //Guarda informacion
    }
?>
<p style="color:#F00">Este error no puede salir la primera vez que se visita la pagina:</p>
<p style="color:#F00; font-weight:bold;">Warning: in_array(): Wrong datatype for second argument in cookienoticia.php on line 18
no visitado </p>
</body>
</html>
Agradezco cualquier ayuda

artaniz
  #2 (permalink)  
Antiguo 11/01/2009, 14:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: contar visitas por notas con cookies

mira, el detalle... es que la primer ves no existe la variable !! ¿entiendes eso??

ahora, debes dominar este evento... con un simple if-then-else para evitar este tipo de colisiones...

Código PHP:
// si existe $bar usamos $bar, si no NULL
$foo = isset($bar)? $barnull
el segundo problema, lo tienes al hacer setcookie() ¿a idnota[N] ???

y luego, la recuperas como $_COOKIE['idnota'] de modo que son incompatibles, no es correcto, ¿que pretendes con los corchetes de idnota???

para ver el contenido real de las cookies, usa un print_r() sobre $_COOKIE y así, usas el valor del indice adecuado...


ahora, me imagino que pensabas agregar un elemento al array idnota[] ¿cierto??

pero esto no se hace así, ya que "idnota[$_GET[id]]" es una cadena (string) literal.. y no un verdadero array !!



para resolver eso, de la mejor manera... has algo así

Código PHP:
$_COOKIE['idnota'][$_GET['id']] = 'foo'// OK 

¿listo???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 10:20.