Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][PHP]Rodzaje Cookies i Sesje?
Forum PHP.pl > Forum > Przedszkole
Soks
Chciałbym zacząć od tego iż raczej rzadko zadaje pytania na forach, ale tym razem temat wydaje mi się być dosyć trudny i chciałbym by ktoś "poukładał" mi wszystko w głowie. Czytając różne artykuły na temat cookies nauczyłem się je tworzyć. Dość szybko zauważyłem, że wygasają po zamknięciu przeglądarki i większość (jak nie wszystkie) przeglądarki mają ustawione by właśnie po jej zamknięciu ciasteczka wygasały. Tworzę własny "system" głosowania, więc chciałem się jakoś zabezpieczyć przed powtórnym głosowaniem, zastosowałem blokadę IP, ale uważam, że to trochę za mało. Potrzebuję, więc cookies lub sesji. Im bardziej zagłębiam się w temat tym bardziej wydaje się być to skomplikowane. Czytając napotkałem się z różnymi rodzajami cookies. Czy ktoś mógłby mi je bardziej opisać? Przeczytałem o cookies:

- cookies zwykłych - wygasają po zamknięciu przeglądarki, z tym nie miałem problemu
- cookies trwałych lub stałych - zapisywane na dysku i nic więcej się nie mogłem dowiedzieć, w jakim języku programowania się je tworzy czy coś, dosłownie nic
- cookies flashowych - także zapisywanych na dysku, najprawdopodobniej tworzy je się w ActionScript, ale nie wiem
- cookies sesyjnych - jak sądzę sesje je tworzą, ale czy także wygasają po zamknięciu przeglądarki?

Teraz tak moim głównym problemem jest jak zrobić w momencie, gdy ktoś ma zmienne IP, nie mógł głosować dwa razy w ciągu 24h? Próbowałem ze zwykłymi cookies ale wygasają po zamknięciu przeglądarki, chciałem zrobić to w sesjach, lecz one w momencie gdy ktoś wejdzie na stronę zaczną odliczać czas od początku. Szukałem czegoś o cookies trwałych, lecz nic nie znalazłem. Czy ktoś mógłby mi wyjaśnić jakie są rodzaje cookies i je opisać oraz zasugerować czym najlepiej zrobić taką blokadę w momencie gdy ktoś ma zmienne IP? Z góry dziękuję za każdą pomoc.
muniekw
Jeśli ktoś ma zmienne IP to ja szczerze nie widziałem jakiegoś sensownego zabezpieczenia. Zrestartujesz modem i po sprawie.
thek
A więc tak naprawdę niepotrzebnie rozdrabniałeś je wszystkie bo to trochę jak oceniać kobiety po kolorze włosów. Co z tego że jedna ma blond, a inna to szatynka? To samo jest z cookies. Różnica między nimi w zasadzie jest znikoma. Choćby te które nazywasz zwykłymi, a te uznawane za stałe... Mają tylko inny czas wygaśnięcia ustawiony smile.gif Jeśli cookies ma tę datę ustawioną na przeszłość to zniknie po zamknięciu, ale jeśli przyszłość to będzie do tej daty ważne. Jeśli więc ustawisz w cookies północ danego dnia to do tej godziny będzie ono ważne i blokowało by ponowne głosowanie. Ale niestety userzy czyszczą cookies, więc w tym momencie by się całość rypnęła. Każdy rodzaj ciastek w takim momencie poleci. Niezależnie od tego czy to się Tobie podoba czy nie. By zablokować arbitralnie, musiałbyś wymusić na userach zalogowanie się i oflagować "ten user już głosował". Każda inna forma wymaga już analizy głosów pod kątem badania user_agenta, adresów IP, rodzaju systemu operacyjnego, rozdzielczości ekranu i tym podobnych kombinacji by wyłapać osoby siedzące za proxy, ze zmiennym IP i w różny sposób próbujące oszukiwać.
Soks
Właśnie chodzi oto, że jak ustawie, by cookies wygasło za 24h to i tak ono wygaśnie po zamknięciu przeglądarki, bo ono jest zapisywane w przeglądarce. A mi chodzi oto by ktoś wytłumaczył mi jak zrobić cookies zapisywany na dysku, wtedy przy zamknięciu przeglądarki nie usunie się. Myślałem też o cookies flashowych, ale też nie wiem jak to działa, dlatego też proszę o Waszą pomoc. snitch.gif

PS. A może da się to zrobić w sesjach?


Edit.

Wymyśliłem coś takiego.
W sesjach oprócz tych danych "właściwych", że zapiszę też datę utworzenia sesji i jeżeli data utworzenia sesji będzie 24h lub więcej dalsza od daty utworzenia sesja wygaśnie. Chciałem zapytać jeszcze zanim zacznę pisać czy takie coś w ogóle zadziała i na jakiej zasadzie działa sesja, bo czytałem, że domyślnie przechowuje się 24min, ale czy nie wygaśnie po zamknięciu przeglądarki i jak wydłużyć czas działania tej sesji?
JulekJP
Sessje tylko są aktywne do zamknięcia przeglądarki.. A cookies moze ustawic nawet na rok i przeglądarka po wyłączeniu nie usunie, jedynie może użytkownik.
Soks
W takim razie, dlaczego przeglądarka usuwała mi cookies, po zamknięciu przeglądarki? Wkleję kawałek kodu jak tworzyłem cookies.

  1. setcookie("$nazwa", '1', time()+86400);


Mam Mozille i domyślnie ustawione: "Akceptuj ciasteczka z innych witryn, Przechowuj: do zamknięcia programu Firefox" i chyba większość przeglądarek ma tak ustawione, tylko zdziwiło mnie też dlaczego niektóre ciasteczka się nie usuwają po zamknięciu przeglądarki a moje się usuwa. Być może to jest właśnie cookies stałe?


Edit.
Doszedłem do następującego wniosku, chyba, że się gdzieś pomyliłem to mnie wyprowadźcie z błędu:
Jeżeli sesje wygasają po zamknięciu przeglądarki to jest to rozwiązanie, które z góry odpada. Następnie, cookies sesyjne też odpada bo to jest praktycznie to samo co zwykłe cookies, tylko, że zapisywane przez sesje losowo. Cookies stałe i zwykłe to chyba to samo z tą różnicą, że w jednym jest określona data wygaśnięcia, a w drugim nie. Rozwiązanie mogłoby być cookies flashowe, o których raczej mało osób wie i przeglądarka ich nie usuwa, ale nie chce mi się szukać, ani uczyć jak się je tworzy. Dlatego też postanowiłem użyć cookies stałych, zresztą już to napisałem i pozostaje mi liczyć na to, że większość przeglądarek ma ustawione, żeby trzymać ciasteczka do wygaśnięcia.
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.