Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie z cookies
Forum PHP.pl > Forum > PHP
pat15
Czy napisał by mi tutaj ktoś system oparty na cookiesach który działałm by w nastęoujący sposób:

Jeżeli ktoś weźmie udział w ankiecie to tworzy się cookies który umożliwia zagłosowania dopiero po 24h ale blokada ta musi działać nawet po zmianie adresu IP. Skrypt sondy oraz cookies że tylko jeden głos dziennie mam ale potrzeba mi właśnie żeby nawet po zmianie IP nie szło głosować drugi raz.

Jeżeli gdzieś już padło to pytani to przepraszam.
hwao
smile.gif

  1. <?php
  2. setcookie( 'time', time(), time()+60*60*60*24 );
  3. ?>


teraz sprawdzasz czy jest cookie smile.gif

  1. <?php
  2. if( isSet( $_COOKIE['time'] ) ) {
  3. ?>


jak jest to sprawdzasz czy uplynely 24h smile.gif


  1. <?php
  2. if( $_COOKIE['time'] > 60*60*60*24 ) {
  3. ?>

nie uplynely (chyba sprawdz czy napewno > ma byc w ta strone biggrin.gif czesto myle winksmiley.jpg )
wiec user nie moze glosowac, tzn dal glos nie minely 24h

  1. <?php
  2. } else {
  3. ?>

user mial ciacho ale minely 24h moze glosowac smile.gif
  1. <?php
  2. } else {
  3. ?>

user nie ma ciastka pewnie nie glosowal, moze zaglosowac
// koniec

Mozesz to zrobic na funckji ktora zwraca true/false smile.gif (true moze glosowac, false nie moze )..

Ma to jedna wade poniewaz user moze usunac ciastko smile.gif ale takie zycie... smile.gif
crash
Cytat(hwao @ 2006-01-04 22:50:00)
  1. <?php
  2. if( $_COOKIE['time'] > 60*60*60*24 ) {
  3. ?>

Trochę namieszałeś, bo ten warunek będzie zawsze spełniony skoro w ciachu "time" jest wartość time() czyli duuużo więcej niż ilość sekund w 1 dobie.
Proponuję:
  1. <?php
  2. if( $_COOKIE[ 'time' ] + 5184000 > time() )
  3. ?>
pat15
Kurde coś mi to nie idzie :/ Byłby ktoś wstanie mi to dokleić do mojego skryptu ? Wysłałbym pliki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.