Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Setcookie - 406 Not Acceptable
Forum PHP.pl > Forum > PHP
MarcinUser
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ś';
.radex
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.
MarcinUser
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
Bags_Bunny
Co zawiera $id? Może np. serwerowi się nie podoba, że nazwa ciastka to liczba. Spróbuj dodać literkę na początku.
MarcinUser
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
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.