Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Specyficzny system oceniania
Forum PHP.pl > Forum > Przedszkole
hexel
Witam

Na serwerze hostowane są obrazki i animacje. Do każdego takiego pliku tworzone są osobne pliki htm, umieszczane na serwerze, a linki do nich przekazywane klientowi,
który może obejrzeć zrobioną grafikę.

Chciałbym wprowadzić pod każdą taką grafiką możliwość głosowania na nią. tzn. kciuk w górę dodający punkt i kciuk w dół odejmujący go.

Tutaj pojawiają się problemy:
1. grafik produkuje się dużo, czasami po kilkanaście w ciągu dnia przez jedną osobą (a jest ich kilka), dlatego niemożliwe jest nadawanie różnych niepowtarzalnych id dla każdego tworzonego htma (to dodatkowa praca zabierająca czas).
Najlepiej, gdyby id generowało się automatycznie na podstawie np. nazwy pliku htm (na zasadzie skąd przyszło kliknięcie w link)
2. serwer gdzie hostujemy grafiki i pliki htm nie obsługuje PHP
(mam jednak osobny serwer obsługujący PHP)

Wymyśliłem coś takiego, żeby w plikach htm w każdym pojawiał się ten sam kod odpowiadający za głosowanie, który po odpowiednim kliknięciu połączy się z plikiem php na serwerze z możliwością obsługi PHP.
Głos będzie zapisany do id tworzonego na podstawie http referrer.

Wszystkie systemy darmowe i płatne służące do głosowania (jakie przeglądałem) wymagały określania osobnej nazwy id dla każdego ocenianego zasobu. Chciałbym w jakiś sposób pozbyć się tego problemu.
Mam świadomość tego, że opis mojego problemu może wydać się niezrozumiały, ale nie wiem jak inaczej to opisać.


proszę o Wasze sugestie.
tolomei
Aby dodawać komentarze - musimy mieć jakiś niepowtarzalny identyfikator dla każdego zasobu. Stwórzmy go więc na podstawie linku do pliku .htm, tak jak mówiłeś lub na podstawie nazwy pliku graficznego(o ile nazwy są unikalne).

Na serwerze mielibyśmy bazę danych a w niej tabelę z naszymi grafikami.
Złożoność bazy danych zależy od ilości funkcjonalności - ja podam przykład najprostszy.
Tabela 'obrazy'
Kolumny: id | punkty

Elementy pliku htm które będą nas interesowały to:
- button łapka w górę, dalej oznaczany jako [+]
- button łapka w dół, dalej oznaczany jako [-]
- miejsce gdzie wyświetlimy bieżącą liczbę punktów, czyli jakiś <div id="punkty">.

Do pliku htm byśmy dołączyli skrypt JavaScript do połączeń z serwerem przy pomocy AJAX.
Proponuję użyć jQuery ze względu na szybkość z jaką można taki skrypt stworzyć.

Pierwsza funkcja JavaScript byłaby uruchamiana od razu po załadowaniu się dokumentu htm.
Pobierałaby ona jakiś charakterystyczny dla dokumentu element(tak jak mówiliśmy na początku - url lub nazwę pliku). Ważne, aby to był unikatowy i niepowtarzalny ciąg znaków. Ciąg ten funkcja wysyłała by na serwer. Serwer PHP po odebraniu ciągu haszowała by go funkcją md5, a następnie szukałaby takiego id w bazie:
- w razie nie znalezienia takiego id - rekord taki zostałby automatycznie tworzony, a do pliku htm zwracana wartość punktów równa zero
- w razie znalezienia - odczytana wartość punktów byłaby zwracana do pliku htm.
Skrypt js po otrzymaniu danych od serwera - wrzucałby liczbę punktów do div-a z punktami.

Druga funkcja JavaScript byłaby wykonywana po kliknięciu na [+] lub na [-]. Analogicznie do poprzedniej funkcji wysyłałaby informację o dodaniu, bądź odjęciu punktu na serwer. W odpowiedzi otrzymywałaby aktualną ilość punktów.

Wszystko mogłoby być bardziej skomplikowane, gdybyśmy chcieli rejestrować kliknięcia, użytkowników którzy kliknęli i czy mieli takie prawo. Ale to już inna historia.

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