Foros del Web » Programando para Internet » PHP »

Cookies!

Estas en el tema de Cookies! en el foro de PHP en Foros del Web. Hola, mi duda es la siguiente... Tengo una base de datos con imagenes, o textos, etc... entonces queria que fuesen votados y solo una vez ...
  #1 (permalink)  
Antiguo 07/11/2005, 04:48
 
Fecha de Ingreso: agosto-2005
Mensajes: 79
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación Cookies!

Hola, mi duda es la siguiente...

Tengo una base de datos con imagenes, o textos, etc...

entonces queria que fuesen votados y solo una vez por dia por ejemplo.

Entonces hacia lo siguiente: comprobaba que no hay una cookie asignada a esa imagen o texto por ejemplo. Y sino la habia, añadia el voto a la base de datos y creaba la cookie. Pero no se que pasa que no va... tengo una pelea con las coockis impresionantes.

Queria hacerla con un array ya que en la tabla imagenes hay mas de una entonces mi idea era la siguiente...

Código PHP:
<?
$imagen_id
=$_POST["imagen_id"];
$puntos=$_POST["puntos"];

if (empty(
$c_imagen[$imagen_id]) {
    include (
"config_bd.php"); 
    
mysql_query($sql,$conex); //He omitido la sentencia UPDATE
   
setcookie ("c_imagen[".$imagen_id."],"votado",time()+86400);
}

header ("
Location: ............");
?>
Pero no va la verdad... no se porque pero antes me iba..y fui a tocar algo en el formulario de la pagina de votaciones... para decir... que si exite pusiera ya has votado y sino me mostrara la lista desplegable con las puntuaciones.

Gracias!
  #2 (permalink)  
Antiguo 07/11/2005, 06:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si dices que hay más código involucrado y que lo has tocado .. mejor será que indiques todo el código que usas para este proceso.

Pero .. lo que sí que se observa es como tomas tu variable de cookie .. deberías usar:

$_COOKIE['c_imagen'][$imagen_id]

De todas formas .. revisa el uso de cookies al respecto (usando los arrays superglobales):

www.php.net/setcookie

Un saludo,
  #3 (permalink)  
Antiguo 07/11/2005, 06:12
 
Fecha de Ingreso: agosto-2005
Mensajes: 79
Antigüedad: 12 años, 4 meses
Puntos: 0
Ya consegui mas o menos que funcionase....

pero me he dao cuenta que si votas varias cosas... las anteriores pierden la cookie y ya puedes votar otra vez... tiene algun limite o algo?

yo he comprobao mas o menos a 20 cosas diferentes...
  #4 (permalink)  
Antiguo 07/11/2005, 06:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Las cookies no son ilimitadas .. tienen sus restricciones de cuantos datos puedes almacenar en ella:

Aquí tienes las especificaciones:
http://wp.netscape.com/newsref/std/cookie_spec.html

Cita:
There are limitations on the number of cookies that a client can store at any one time. This is a specification of the minimum number of cookies that a client should be prepared to receive and store.
300 total cookies
4 kilobytes per cookie, where the name and the OPAQUE_STRING combine to form the 4 kilobyte limit.
20 cookies per server or domain. (note that completely specified hosts and domains are treated as separate entities and have a 20 cookie limitation for each, not combined)
Servers should not expect clients to be able to exceed these limits. When the 300 cookie limit or the 20 cookie per server limit is exceeded, clients should delete the least recently used cookie. When a cookie larger than 4 kilobytes is encountered the cookie should be trimmed to fit, but the name should remain intact as long as it is less than 4 kilobytes.
----------------------

No sé si usas algún sistema de usuarios para esas votaciones .. o el voto es libre (cualquiera que ingrese a tu página puede votar) .. Pero, sería ideal que gestionases usuarios, así puedes llevar mejor el control de quien vota y cuanto.

Un saludo,
  #5 (permalink)  
Antiguo 07/11/2005, 06:29
 
Fecha de Ingreso: agosto-2005
Mensajes: 79
Antigüedad: 12 años, 4 meses
Puntos: 0
muchas gracias!

pero ahora mi pregunta del millon!

Como tienen 4kb... como puedo meter todos los datos en una misma cockie? yo pense que haciendo una cookie de tipo array se podria... pero me cuenta.

Alguien sabe como puedo meter la informacion de cada una de las fotos... si esta o no votada dentro de una cookie?
  #6 (permalink)  
Antiguo 07/11/2005, 08:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El limite lo dá el tamañó el número de cookies que crees por domino.

Al usar un array .. parece que lo interpreta como cookies independientes (no te lo puedo asegurar .. revisa la documentación oficial sobre cookies .. pero no de PHP sino de la que las define. PHP sólo te pone a tu disposición funciones para "usar" cookies .. los límites no los impone PHP sobre este tema.).

Prueba a usar una sóla cookie y serializa tus "ID's" a almacenar (separando esos ID's por comas y leyendolos así). Usa explode() e implode() para el proceso (por qué si usas "serialize()" y "unserialize()" creo que vas a tener más datos de control por el camino .. no obstante pruebalas también.



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 13:58.