Stepan Roh's Ratings 0.1 (c)2000 Štěpán Roh ------------------------------------------- CGI skript ratings.pl implementuje jednoduchý hlasovací systém. Funguje dvěma způsoby. Buď se vkládá přes SSI direktivu #include a tehdy vrací aktuální stav hlasování nebo se volá jako CGI a tehdy slouží k hlasování. Může mít čtyři parametry. Parametr profile určuje jméno uživatelského profilu (s kterým je spojeno jméno datového souboru), není-li uveden, pak v případě, že dokument odkazuje na uživatelský web (~user), bere se soubor .htratings v adresáři WWW daného uživatele (ten se bere i v případě, že profil je jménem uživatele), jinak se bere profil jménem global. Datový soubor musí být zapisovatelný pro webový server (prakticky to znamená, že musí mít právo write pro ostatní). Parametr item určuje jméno položky, není-li uveden, bere se jméno aktuálního dokumentu bez úvodních lomítek, popř. bez počátečního ~user, a bez příp. parametrů za otazníkem, u kterého se navíc nahradí lomítka a mezery za podtržítka (takže /~stepan/test/test.shtml?val=2 se změní na test_test.shtml). Dalším parametrem je rating, kde je uložena hlasovaná hodnota. Posledním parametrem je view. Má-li nenulovou hodnotu, pak se neprovádí inkrementace čítače, ale pouze jeho zobrazení (resp. zobrazení podílu celkové hodnoty a počtu hlasujících). Není-li uveden, má nulovou hodnotu v případě, že je uveden i parametr rating, jinak má nenulovou hodnotu. Je-li roven 'num', zobrazí se počet hlasujících, je-li roven 'sum', zobrazí se celková hodnota. Datový soubor má řádky formátu jméno položky::minimum::maximum::krok::přesnost zobrazení na desetinná místa::součet::počet::URL stránky zobrazené při úspěchu::URL stránky zobrazené při neúspěchu::soubor se záznamem hlasování::poslední hlasující IP adresa. Všechny položky musí být v datovém souboru uvedeny předem, není-li nějaká uvedena, pak se místo její hodnoty vrátí 'XXX' a v error_log se objeví chybová hláška. Řádky a položky začínající na '#' se ignorují. Stránky pro úspěch a neúspěch se zobrazují pouze, je-li skript spuštěn v módu přidávání. Soubor se záznamem hlasování nemusí být uveden, pak se žádné záznamy nevedou. Tento soubor musí být zapisovatelný pro webový server. Zapisuje se do něj každý úspěšný pokus o hlasování ve formátu: [datum a čas] IP adresa hlasovaná hodnota Poslední hlasující IP zaznamenává údaj o poslední IP adrese, z které se hlasovalo. Hlasuje-li někdo z této adresy znovu, pak se jeho hlas nezapočítá. Pro vypnutí této vlastnosti stačí na místo této adresy napsat pomlčku. Datový soubor se vždy celý načte a poté celý zapíše. V případě, že je činnost skriptu přerušena uprostřed zápisu, může se soubor poškodit. Proto radím - kontrolujte a zálohujte. Příklad souboru .htratings: test::0::100::10::0::690::15::/~stepan/test.shtml::/x::/home/stepan/WWW/.htratings.test::- Příklad hlasovací stránky: % ( hlasujících)
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% Štěpán Roh