Foros del Web » Programando para Internet » PHP »

Coockie para PhP

Estas en el tema de Coockie para PhP en el foro de PHP en Foros del Web. Hola. Tengo una pagina donde votan... y queria restringirlo por coockie. Ya tengo restringido por IP pero siguen haciendo multiples votos... Asi que queria agregarle ...
  #1 (permalink)  
Antiguo 09/03/2011, 10:06
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Coockie para PhP

Hola.

Tengo una pagina donde votan... y queria restringirlo por coockie.

Ya tengo restringido por IP pero siguen haciendo multiples votos...

Asi que queria agregarle coockie y si la cosa sigue mal tendre que hacer que esten registrados y validar el registro para votar...

En fin ese es otro tema.

Para agregar coockie lo hago a travez del setcoockie();

Y para saber si el usuario tiene la coockie?
  #2 (permalink)  
Antiguo 09/03/2011, 10:13
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Coockie para PhP

Código PHP:
if (isset($_COOKIE['nombreCookie'])) {
    
// ya votaste ;D


saludos
  #3 (permalink)  
Antiguo 09/03/2011, 10:13
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Coockie para PhP

mira te lo voy a poner en palabras ya que no colocas el codigo

si (usuario hizo un voto){
guardar en la base de datos;
setcookie("miGalleta", "unValor", time() + 3600); // aca declaras la cookie y le dices que va a durar el tiempo actual mas 3600 segundos
}

y para verificar si la galleta existe

if (isset($_COOKIE["migalleta"]) && $_COOKIE["migalleta"] == 'unValor'){
echo "que pasa gamin, tu ya realizaste un voto hace x tiempo. Debes esperar.";
}

Espero esto te ayude a desarrollar tu código.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 09/03/2011, 10:14
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Cita:
Iniciado por Hidek1 Ver Mensaje
Código PHP:
if (isset($_COOKIE['nombreCookie'])) {
    
// ya votaste ;D


saludos
Muchas gracias.
Una ultima cosa.

En un juego llamado argentum, echo en vb, se podia banear por ID de disco duro.

Hay alguna forma de hacer eso con php?.
  #5 (permalink)  
Antiguo 09/03/2011, 10:27
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Coockie para PhP

argentum jjajjujuua yo jugue eso :P

PHP trabaja en el servidor... no puedes obtener esos datos del cliente
saludos.
  #6 (permalink)  
Antiguo 09/03/2011, 10:43
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Cita:
Iniciado por Hidek1 Ver Mensaje
argentum jjajjujuua yo jugue eso :P

PHP trabaja en el servidor... no puedes obtener esos datos del cliente
saludos.
:p es buenisimo el juego.

Ultima pregunta que me surgio...

ahi pregunto si tiene la coockie.
y como pregunto si no tiene la coockie(sin else)
  #7 (permalink)  
Antiguo 09/03/2011, 10:45
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Coockie para PhP

O.o seria asi creo

if (!isset($_COOKIE["migalleta"]))
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 09/03/2011, 10:50
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Cita:
Iniciado por jotaincubus Ver Mensaje
O.o seria asi creo

if (!isset($_COOKIE["migalleta"]))

XD!!!
Cuestion
Código:
if (!isset($_COOKIE['ya_votaste'])) {
 setCookie("ya_votaste",$time() +3600*24);
}
En un mini manual que encontre recien todos los ejemplos tenian puesto un valor
Código:
 setCookie("ya_votaste","4",$time() +3600*24);
Si uso el isset no tengo que metger valor y con eso la coockie ya estaria por 1 dia, no?.

Y verificaban la coockie con un condicional
Código:
<!- cookiecontador.php ->
<?php

$visitas = $visitas + 1;
setCookie(“visitas”,$visitas,time() +3600*24*365);

?>
<html>
<body>
<?php
If ($visitas > 1 {
Echo (“Esta es tu visita número “visitas.”);
} else {
Echo (“Bienvenido, esta es la primera vez que visitas esta pagina”);
}
?>

</body>
</html>
  #9 (permalink)  
Antiguo 09/03/2011, 10:55
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Coockie para PhP

El primer parámetro es, pues, el nombre de la cookie. Es el único valor estrictamente necesario, los demás son opcionales.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 09/03/2011, 10:56
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Cita:
Iniciado por jotaincubus Ver Mensaje
El primer parámetro es, pues, el nombre de la cookie. Es el único valor estrictamente necesario, los demás son opcionales.
Ah.
Tendras idea de por que me tira error

if (!isset($_COOKIE['ya_votaste'])) {
setCookie("ya_votaste",$time() +3600*24);
}

Si le saco el setcookie anda, si se lo dejo me tira error en esa linea
  #11 (permalink)  
Antiguo 09/03/2011, 10:58
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Coockie para PhP

que error te arroja ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #12 (permalink)  
Antiguo 09/03/2011, 10:59
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Coockie para PhP

$time() <-- ?

es una variable funcion ?

time()


saludos.
  #13 (permalink)  
Antiguo 09/03/2011, 11:03
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Cita:
Iniciado por Hidek1 Ver Mensaje
$time() <-- ?

es una variable funcion ?

time()


saludos.
Funcion

Gracias por la ayuda.
  #14 (permalink)  
Antiguo 09/03/2011, 11:53
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Perdon por bumpear pero como que habia quedado resulto el tema.

Tengo otra duda que surgio recien y para no abrir otro tema la hago aca.

Resulta que los usuarios pueden votar a mas de una cosa, pero solo una vez en cada una por dia.

Si hago como hice arriba, le seteo la cookie y tendria que hacer una cookie para cada uno, ya que si pregunto si tiene cookie aunque haya votado en la 1, no podra votar en la 2.

Podria hacer algo asi...
Código:
if(!isset($_COOKIE['ya_votaste'])){
$idguardada = $aid;
setcookie("ya_votaste",$idguardada, time()+3600*24);
}
Guarde la id como numero.. el problema es... pisa la anterior?

Si no la pisa y se puede hacer
Hay alguna forma para ver si no tiene la cookie con ese id.?
Algo como...

if(!isset($_COOKIE['ya_votaste'][$aid])){
...
}
  #15 (permalink)  
Antiguo 09/03/2011, 12:14
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Coockie para PhP

PHP reemplaza una galleta existente si la que se declara nuevamente tiene el mismo nombre...

Si deseas asignar multiples valores a una galleta simple, añade simplemente [] a el nombre de la galleta.

Galleta = Cookie // por si no entienden
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #16 (permalink)  
Antiguo 09/03/2011, 12:18
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Cita:
Iniciado por jotaincubus Ver Mensaje
PHP reemplaza una galleta existente si la que se declara nuevamente tiene el mismo nombre...

Si deseas asignar multiples valores a una galleta simple, añade simplemente [] a el nombre de la galleta.

Galleta = Cookie // por si no entienden
Entonces la cookie quedarie como un array?.

Y este lo leeria como el mismo (un for ya_votaste[i] == $aid)?

PD: karma va con K $:
  #17 (permalink)  
Antiguo 09/03/2011, 12:21
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Coockie para PhP

setcookie("ya_votaste[1]",$valor1, time()+3600*24);
setcookie("ya_votaste[2]",$valor2, time()+3600*24);
setcookie("ya_votaste[N]",$valorN, time()+3600*24);

Mira este bonito ejemplo que nos regala la pagina oficial de PHP

<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
$name = htmlspecialchars($name);
$value = htmlspecialchars($value);
echo "$name : $value <br />\n";
}
}
?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 09/03/2011 a las 12:24 Razón: mas informacion
  #18 (permalink)  
Antiguo 09/03/2011, 13:39
Avatar de Pafate  
Fecha de Ingreso: mayo-2010
Mensajes: 232
Antigüedad: 14 años
Puntos: 1
Respuesta: Coockie para PhP

Es hermoso el codigo, pero algo estoy haciendo mal :p

No vale reirse de los codigos de los demas.

Código:
Si no tien cookie seteo la "1"
if(!isset($_COOKIE['ya_votaste'])){
setcookie("ya_votaste[1]",$aid, time()+3600*24);
$result = mysql_query($query);
$num = mysql_numrows($result);
}else{
$num = 0;
Si tiene una cookie, busco a ver si esta repitiendo el voto.
if(isset($_COOKIE['ya_votaste'])){(Sep lo pregunto devuelta aunque este el else)
    foreach ($_COOKIE['ya_votaste'] as $yavot => $mid) {<---Warning: Invalid argument supplied for foreach()
        $yavo = htmlspecialchars($yavot);
        $mid = htmlspecialchars($mid);
        if($mid == $aid){
        $num = 1;
        break;
Si lo repitio, paro el for y sale $num = 1;
Aca tengo algo para salir del otro if? como un endif?
        }
    }
if($num == 0){ <- Si termino el for y no encontro nada, le seteo la nueva cookie
$cn = $_Get["$yavo"];(Mande fruta creo, como saco los valores de adentro del for?)
$cn = $cn + 1;
setcookie("ya_votaste[$cn]",$aid, time()+3600*24);
$result = mysql_query($query);
$num = mysql_numrows($result);
}
 }}

Última edición por Pafate; 09/03/2011 a las 13:44

Etiquetas: Ninguno
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 04:45.