Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie z cookies
pat15
post 4.01.2006, 20:15:59
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 4.01.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował pat15 4.01.2006, 20:17:41
Go to the top of the page
+Quote Post
hwao
post 4.01.2006, 22:50:00
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




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
Go to the top of the page
+Quote Post
crash
post 4.01.2006, 23:06:04
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Go to the top of the page
+Quote Post
pat15
post 6.01.2006, 19:19:38
Post #4





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 4.01.2006

Ostrzeżenie: (0%)
-----


Kurde coś mi to nie idzie :/ Byłby ktoś wstanie mi to dokleić do mojego skryptu ? Wysłałbym pliki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:10