Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Setcookie - 406 Not Acceptable, Alternatywa?
MarcinUser
post 7.05.2011, 11:04:16
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 19.07.2010

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


Witam, na moim serwerze po użyciu kodu:

  1. setcookie ($id, $id, time()+3600*24);


Strona nie działa, pokazuje się komunikat 406 Not Acceptable. Pisałem do obsługi i kazali mi zmienić to na zgodne z ich serwerem i na tym koniec. Dlatego proszę Was o pomoc bo ostatnio ich obsługa jest... thumbsdownsmileyanim.gif

Chodzi o to, że mam jakby ankietę w której można głosować raz dziennie. Kod strony to:
  1. if(!isset($_COOKIE[$id]))
  2. {
  3. echo 'Głos oddany';
  4. setcookie ($id, $id, time()+3600*24);
  5. }
  6. else
  7. echo 'Juz glosowałeś';


Ten post edytował MarcinUser 7.05.2011, 11:06:52
Go to the top of the page
+Quote Post
.radex
post 7.05.2011, 11:29:49
Post #2





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Alternatywa: użyj sesji.

Zapisz w sesji timestamp ostatniego głosu i podczas próby głosowania sprawdź, czy jest starszy niż dzień temu.

To rozwiązanie też jest bardzo dalekie od ideału (można je bardzo łatwo obejść), ale unikniesz problemów z ciasteczkami.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
MarcinUser
post 7.05.2011, 21:44:11
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 19.07.2010

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


Tylko, że ogólnie na tym serwerze ciasteczek mogę używać. Mam na nim postawione forum phpbb3 oraz portal na Joomla!, gdzie mam moduł ankiet, w którym faktycznie można tylko raz głosować. Ale ingerencja w taki kod jest ciężka, dlatego myślałem że jest inne rozwiązanie z ciasteczkami.

Ale dzięki smile.gif
Go to the top of the page
+Quote Post
Bags_Bunny
post 7.05.2011, 22:11:59
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


Co zawiera $id? Może np. serwerowi się nie podoba, że nazwa ciastka to liczba. Spróbuj dodać literkę na początku.


--------------------
rm -rf /*
Go to the top of the page
+Quote Post
MarcinUser
post 15.05.2011, 10:51:21
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 19.07.2010

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


Serwerowi nie podobała się zawartość ciasteczka.
Kod
setcookie ($id, $id, time()+3600*24);


Pierwsze $id nazwa a drugie to zawartość. Wystarczyło zmienić to drugie na dowolny znak np:
Kod
setcookie ($id, "1", time()+3600*24);


I działa. Dzięki smile.gif
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: 15.07.2025 - 02:45