Sedum ryb

Dokumentace projektu

Název: IS administrace obsahu WWW stránek hudební skupiny
Řešitelé: Pavel Lipenský, Lukáš Grulich
Datum: 30. prosince 2002
Popis: Dokumentace k PHP a MySQL části projektu (zadání viz. specifikace)

Popis ovládání

Uživatel ovládá IS prostřednictvím HTML formulářů a hypertextových odkazů. Přístup k administraci mají pouze členové kapely a správce systému. Běžný uživatel může jen zobrazit obsah stránek (XML výpisy).

Přihlášení do systému

Je podmíněno zadáním přihlašovacího jména a hesla. Jestliže uživatel své heslo zapomene, může si nechat vygenerovat od IS nové, které mu bude zasláno na jeho E-mail (pokud ho dříve uvedl).

Počáteční jméno i heslo správce je insroot.

Administrace obsahu stránek

Členové kapely a správce mají právo vytvářet a měnit obsah stránek. Administrace je tématicky rozdělena na části Akce (koncerty}, Fotky (přiřazování k akcím), Věci (skladby), CéDa (audio ke skladbám, interpreti) a Nastavení (osobní data uživatele). Správce sytému má (na rozdíl od členů kapely) v sekci Nastavení přístup ke všem účtům a možnost vytvářet nové.

Přidávání nových položek je v některých sekcích podmíněno existencí fyzických souborů na disku (fotky, audio soubory). Správné umístění těchto souborů musí zajistit správce systému, např. pomocí ftp.

Popis systému

Součásti projektu

./admin/* Zdrojové soubory implementace v PHP. Předpokládá se, že administrace by neměla být dostupná z kořenového adresáře. Místo admin lze použít libovolný jiný název.
./img/* Soubory grafického rozhraní systému.
./ceda/
./ceda/tumb/
Adresáře pro soubory (př. *.jpg) s CD obaly. V adresáři tumb musí být zmenšené obrázky (100x100 px) se stejnými názvy.
./foto/
./foto/tumb/
Adresáře pro soubory (př. *.jpg) fotek z akcí. V adresáři tumb musí být zmenšené obrázky (max. 100x100 px) se stejnými názvy.
./mp3/ Adresář pro (*.mp3) audio soubory. Názvy souborů určují vzestupně pořadí skladeb na CD titulech (ve výpisech).
./ryby/ Adresář pro soubory (př. *.jpg) fotek členů kapely. Je definováno omezení, že účet bez fotografie (př. správce) nemůže být použit jako interpret na CD titulu.
dokumentace.html Tato dokumentace.
specifikace.html Formální a neformální specifikace projektu.
db.sql Vzorový soubor vytvoření prázdné MySQL databáze. Implicitně je nastaven server localhost. Jméno databáze a jméno a heslo MySQL uživatele je ins.
tables.sql Struktura MySQL databáze projektu (včetně vytvoření účtu správce).

Systémové požadavky

IS je možno provozovat na serverech s podporou PHP a MySQL. Zasílání hesel funguje v případě, že je server připojen k síti Internet a umožňuje posílání E-mailů.

Instalace systému

- umístěte projekt na server
- v MySQL zadejte příkaz '\. db.sql' pro vytvoření nové databáze (předpokládá se, že k tomu máte oprávnění)
- vytvořte strukturu databáze a účet správce příkazem '\. tables.sql'
- ověřte a případně modifikujte parametry připojení k databázi ve funkci db_connect() v souboru './admin/db_fns.php'
- ve funkci auth_notify_passwd() v souboru './admin/auth_fns.php' nastavte E-mailovou adresu pro odesílání hesel

Popis implementace

PHP

Na straně serveru se provádí jak syntaktická kontrola dat (velikost a formát položek), tak sémantická (platnost datumů, ověření existence E-mailu). Před odesláním dat zpět prohlížeči jsou data transformována tak, aby nemohlo dojít k narušení HTML kódu (převod znaků '<').

Spojení mezi serverem a klientem je realizováno pomocí session-proměnných. Přihlášení do IS je tedy navíc podmíněno podporou cookies na straně klienta.

MySQL

Ve starších (stabilních) verzích MySQL nelze zajistit referenční integritu s využitím cizích klíčů. Zachování konzistence databáze je řešeno zamykáním tabulek (viz. manuál MySQL).

Hesla k účtům jsou z bezpečnostních důvodů ukládána šifrovaně (MD5). Data se sice přenášejí nekódovaně, ale v případě hesel pouze směrem na server, kde se kódují a ověřují podle vzoru v databázi.

XML

Identifikátory v databázi a v ER diagramu si vzájemně neodpovídají vlivem toho, že specifikace projektu a XML vznikli dodatečně. S ER diagramem korespondují až XML výpisy (k přejmenování identifikátorů dochází až na úrovni XML výstupu).

Valid HTML 4.0!