![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Robiąc dalej swoją stronkę chciałem zrobić system oceniania grafiki. Nie chcę aby każdy mógł oceniać jeden obrazek ile chce więc pomyślałem jak by wykorzystać Cookie. Wybrałem Cookie bo już ich używałem i wiem o nich więcej niż o Sesjach(choć to prawie to samo). Wymyśliłem jak to zrobić ale nie wiem czy będzie to w "dobrym smaku". Otóż kiedy ktoś wybierze ocenę i kliknie oceń przeniesie się na stronę ocenianie.php(wiem, wiem lamersko, ale AJAXA nie umiem i a nie lubię używać czegoś czego nie do końca nie rozumiem), tam doda do bazy ocenę. Następnie wyślę COOKIE z id tego obrazka w nazwie i przy następnej próbie oceniania tego samego obrazka będę sprawdzał czy ktoś nie ma już COOKIE z tym id. Ważność cookie 6h. Potem proste przekierowanie na stronę z której ocenialiśmy. W sumie prosty system i działa. I tu właśnie mam pytania: 1) Przy takim systemie każdy kto będzie chciał oceniać będzie zasypywany przez dużą ilość COOKIE, czy to jest "złe"? 2) Czy istnieje możliwość aby w jednym Cookie zapisywać całą tablicę z wieloma ID? W C++ dało tak radę kiedy tworzyliśmy tablicę ze Wskaźnikami to innych tablic. W COOKIE nie mam zielonego pojęcia... wydaje mi się to niemożliwe. 3) Ocenianie o którym piszę widziałem na wielu stronach, ale nie wiem jaka jest konstrukcja takich systemów oceniania, mógłbym prosić o link do strony która opisuje taki system lub o sam skrócony algorytm? Bardzo dziękuję wszystkim którzy mi odpowiedzą. Ten post edytował Abaddor 15.07.2009, 12:25:04 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
a co jeśli ktoś wyczyści cookies przeglądarki ;]
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chodzi o ocenianie, do którego mogą dokonywać tylko zarejestrowani użytkownicy do zrób sobie tabelę w bazie danych z np. "votes" -> id | user_id | graphic_id
Na cookie tego nie powinieneś robić, gdyż tak jak napisał Spawnm użytkownik może je skasować. Poza tym pytałeś się czy duża ilość COOKIE to źle - Z tego co pamiętam strona może wysłać maksymalnie 20 cookies'ów do przeglądarki usera (w przypadku większej ilości nowe Cookie zastępuje najstarsze). Ponadto 1 Cookie nie może być dłuższy niż 4 KB, bo inaczej przeglądarka go "przycina". -------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Witam, Robiąc dalej swoją stronkę chciałem zrobić system oceniania grafiki. Nie chcę aby każdy mógł oceniać jeden obrazek ile chce więc pomyślałem jak by wykorzystać Cookie. Wybrałem Cookie bo już ich używałem i wiem o nich więcej niż o Sesjach(choć to prawie to samo). Wymyśliłem jak to zrobić ale nie wiem czy będzie to w "dobrym smaku". Jeżeli sesje i cookie to prawie jest to samo, to ja radzę zacząć od kursu php. Otóż kiedy ktoś wybierze ocenę i kliknie oceń przeniesie się na stronę ocenianie.php(wiem, wiem lamersko, ale AJAXA nie umiem i a nie lubię używać czegoś czego nie do końca nie rozumiem), tam doda do bazy ocenę. Następnie wyślę COOKIE z id tego obrazka w nazwie i przy następnej próbie oceniania tego samego obrazka będę sprawdzał czy ktoś nie ma już COOKIE z tym id. Ważność cookie 6h. Potem proste przekierowanie na stronę z której ocenialiśmy. W sumie prosty system i działa. I tu właśnie mam pytania: To najwyższy czas się brać za naukę. 1) Przy takim systemie każdy kto będzie chciał oceniać będzie zasypywany przez dużą ilość COOKIE, czy to jest "złe"? Tak źle. 2) Czy istnieje możliwość aby w jednym Cookie zapisywać całą tablicę z wieloma ID? W C++ dało tak radę kiedy tworzyliśmy tablicę ze Wskaźnikami to innych tablic. W COOKIE nie mam zielonego pojęcia... wydaje mi się to niemożliwe. Z tego co pamiętam strona może wysłać maksymalnie 20 cookies'ów do przeglądarki usera (w przypadku większej ilości nowe Cookie zastępuje najstarsze). Ponadto 1 Cookie nie może być dłuższy niż 4 KB, bo inaczej przeglądarka go "przycina". Istnieje, więcej tu serialize()" title="Zobacz w manualu PHP" target="_manual i tu unserialize()" title="Zobacz w manualu PHP" target="_manual 3) Ocenianie o którym piszę widziałem na wielu stronach, ale nie wiem jaka jest konstrukcja takich systemów oceniania, mógłbym prosić o link do strony która opisuje taki system lub o sam skrócony algorytm? Bardzo dziękuję wszystkim którzy mi odpowiedzą. Jeżeli chodzi o ocenianie, do którego mogą dokonywać tylko zarejestrowani użytkownicy do zrób sobie tabelę w bazie danych z np. "votes" -> id | user_id | graphic_id
Ten post edytował fifi209 15.07.2009, 12:47:05 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat 1) Przy takim systemie każdy kto będzie chciał oceniać będzie zasypywany przez dużą ilość COOKIE, czy to jest "złe"? Jest złe. Cookie jest wysyłane przy każdym żądaniu HTTP, nawet przy otwieraniu obrazka. W ciastkach trzymaj jak najmniej. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Doczytałem i jednak sesje to co innego(choć opierają się na Cookie lub Get). Mój błąd.
Dowiem się więcej o sesjach i na nich oprę też system logowania(bo mam na COOKIEs :| ). Pójdzie łatwo bo wszystko napisane na Klasach. Ostatnie pytanie: Czy znacie jakiś system do oceniania dla niezarejestrowanych użytkowników? Bo choć mam prawie wszystko gotowe(logowanie, tabele w bazie danych, poziomy admina) to wolałbym aby na początku nie było kont użytkowników(tylko admina). Albo wskazówki lub sugestie na czym oprzeć taki system oceniania dla każdego. O kod nie proszę bo ten sam napiszę. Bo jak widać mój wymyślony system legł w gruzach:P Programowanie w C++ i PHP(oprócz składni języka) to widać całkiem inne szkoły.... |
|
|
![]()
Post
#7
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat (choć opierają się na Cookie lub Get) Bzura. Sesje, a cookies i GET, które jest metodą przesyłania żądań pomiędzy serwerem HTTP a przeglądarką, nie mają ze sobą nic wspólnego. Cytat na nich oprę też system logowania(bo mam na COOKIEs :| ). Świetnie. W sam raz na prosty włam. Cytat Programowanie w C++ i PHP(oprócz składni języka) to widać całkiem inne szkoły... Tak samo jak jazda samochodem osobowym i bolidem F1. Niby to samo, a jednak... Cytat Czy znacie jakiś system do oceniania dla niezarejestrowanych użytkowników? Wątpię, aby były jakieś gotowe, ale mogę sie mylić, bo nigdy nie szukałem. Napisanie czegoś takiego chyba jest szybsze niż znalezienie w sieci i zaadoptowanie do własnej aplikacji. -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Bzura. Sesje, a cookies i GET, które jest metodą przesyłania żądań pomiędzy serwerem HTTP a przeglądarką, nie mają ze sobą nic wspólnego. Czyli mam lipną książkę:P W niej piszą że Sesje opierają się na Cookie, bo wysyłane jest każdemu Cookie z identyfikatorem sesji i od tego się zaczyna. A jeśli użytkownik ma wyłączoną usługę cookie to serwer domyślnie używa metody get. Eh, trzeba zainwestować w dobrą książkę:| Dzięki za wszystko. Muszę zmienić system logowania. I poszukam jak zrobić z tym ocenianiem, bo mi nie chodzi o kod, tylko o sposób:P |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Poszukaj sobie na forum, bo nieraz był poruszany ten problem.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Klasę Usera z logowaniem przerobiłem już na Sesje.
A teraz naprawdę ostatnie pytanie:D Popróbowałem sobie AJAXA, w sumie nie jest trudny, założenie rozumiem(choć większość funkcji Javy nie zrozumiałem). I w Ajaxie zrobię ocenianie. Pytanie czy tak jak chciałem wysyłać userowi ID ocenionego w Cookie mogę zrealizować jako Sesję? Bo pliki sesji trzymane są na serwerze więc nie obciążam usera, a jedynie serwer. Pytam czy to dobre rozwiązanie bo jak zrobić wiem, ale w necie nie piszą nigdy czy takie rzeczy nie są "złe". Bo w programowaniu niektórych rzeczy się po prostu nie robi, choć można... Może niektórych drażnię swoimi pytaniami(za co przepraszam), ale zazwyczaj jest tak że można czytać i nauczyć, ale jednak czyjaś rada ujęta w słowa + argumenty jest bezcenna. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Nie bo sesja wygasa, musisz to zapisać w cookie (tak jak pisałeś) albo w bazie.
Co do zapisu w cookie pisałem o serialize" title="Zobacz w manualu PHP" target="_manual i unserialize" title="Zobacz w manualu PHP" target="_manual -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wiem wiem.
Ale moim zdaniem na początek wystarczy na sesji, chodzi o to żeby nikt nie klikał oceny 1000 razy. A jeśli ktoś będzie musiał wyłączyć i włączyć przeglądarkę(lub usuwać cookie z id sesji), wejść na stronę i znowu zagłosować to nie będzie aż takich problemów. Mało kto będzie też używał botów w tym celu. Potem i tak wprowadzę system użytkowników, ale na początku nie może go być, bo nowa strona musi być otwarta dla wszystkich:D Bardzo mi pomogliście, dziękuję wszystkim. Jeśli będę miał podobne problemy(związane z inżynierią programowania) to będę was spamował na Wiadomościach:P |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 17:10 |