Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
Redakční systém II.
redakcni system
19. dubna 2001, 00.00 | Druhé pokračování seriálu, ve kterém společně vytváříme jednoduchý redakční systém. Dnes si nadefinujeme několik funkcí a vytvoříme úvodní stránku administrační části systému, včetně autorizace uživatelů.
V prvním díle jsem naznačil že by se dnešní pokračování mělo věnovat skriptům které budou umožňovat zakládání uživatelů a následnou editaci jejich údajů. Toto tvrzení bylo trošku unáhlené, protože jsem si příliš neuvědomil rozsáhlost projektu. Dnes se proto budu věnovat skriptům pro vstup do administrace redakčního systému. Přihlášení do RS bude probíhat pomocí HTTP autorizace, takže pokud budete chtít skripty ladit na svém počítači lokálně, budete potřebovat PHP běžící jako modul apache serveru, tzn. budete potřebovat PHP 4. Pokud jej nemáte, můžete si stáhnout "okenní" verzi PHP 4.0.4pl1 z mých stránek nebo ze stránek PHP.cz, kde také naleznete i verze pro jiné OS. Instalace modulu je obsažená jen v plném instalačním souboru (alespoň u Win verze), který má cca 4MB.
Dnes také popíši skript function.php, který bude obsahovat námi definované funkce, abychom je později nemuseli stále přepisovat. Tento skript Vám nebudu hned ze začátku ukazovat celý, ale budeme jej podle potřeby rozšiřovat o další funkce, tak, jak budou přibývat. Alespoň Vás nebudou rozptylovat relativně zdlouhavé části kódu, které bychom prozatím nevyužili. Stejný postup bude i u jiných skriptů, které budou větší. V samotných textech článků se vždy budu snažit několika větami přiblížit funkci jednotlivého kódu, který bude navíc dostatečně okomentován. U složitějších SQL dotazů se budu také pozastavovat a budu uvádět komentář proč a jak se selectuje.
Tak a řečí kolem by už bylo dost, přejdeme raději ke konstruktivní práci a tou teď bude rozdělení adresářové struktury redakčního systému. Jednotlivých souborů bude docela dost, takže bude vhodné je trošku roztřídit. Vytvořte si na serveru adresář, ve kterém bude váš nastávající redakční systém (může to být klidně root serveru) a umístěte do něj skript conn.php z prvního dílu. V hlavním adresáři si pak vytvořte dva adresáře. Jeden bude admin a druhý inc, kterému nastavte práva pro zápis (chmod 706) - později do něj budeme generovat některé soubory. V adresáři admin pak založte ještě adresář img, kde si později uložíme dva obrázky (pro funkčnost systému však nebudou nutné - jde jen o kosmetický doplněk).
Stránky administrace redakčního systému budou rozděleny do dvou rámů, levý bude navigační a bude obsahovat odkazy na jednotlivé části administrace. Druhý bude sloužit pro samotné administrační skripty. V adresáři admin si vytvoříme skript index.php, který se bude starat o prvotní přihlášení do systému a zároveň nám okno prohlížeče rozdělí na výše zmíněné rámy. Skript si nejdříve vyžádá autorizaci pomocí autorizačního formuláře. Po jeho vyplnění se skript pokusí v tabulce autori najít záznam s odpovídajícím loginem a heslem. Jelikož systém rozlišuje autory aktivní a neaktivní, bude se moci přihlásit jen ten uživatel, který bude mít ve sloupečku stav hodnotu a. Pokud takovýto záznam v databázi nenajdeme, nebo uživatel stiskne v autorizačním formuláři tlačítko storno, zakážeme uživateli přístup a skript ukončíme. Pokud záznam v databázi najdeme, rozdělíme okno prohlížeče na rámy a načteme do nich patřičné soubory.
index.php (/admin/index.php)
|
Pokud autorizace proběhne bez problémů, rozdělí se okno prohlížeče na rámy, do kterých se načtou skripty menu.php a main.php. Dříve než začnu s popisem těchto skriptů budeme si muset vytvořit includovaný skript, který jsem zmiňoval výše (function.php), který umístíme do rootu RS (/function.php). Pro začátek bude tento include skript obsahovat tři funkce:
- head() - standardní hlavička stránky. Hlavička bude obsahovat i příkazy zakazující cachování stránek, jelikož by to vzhledem k povaze celé aplikace nebylo vhodné. Bude se vkládat na začátek výstupu téměř každého skriptu.
|
- foot() - standardní patička stránky. Bude se vkládat na konec výstupu téměř každého skriptu. Náš příklad obsahuje jen dva HTML tagy.
|
- auth() - funkce ověřující platnost přístupových údajů. Na každé stránce administrace RS se budou opětovně kontrolovat přihlašovací údaje. Bylo by docela možné, že by někdo zavolal jiný skript než index.php a měl by pak velkou šanci upravovat data. Postup ověřování je totožný jako v indexovém skriptu.
|
Nyní máme připravený i include soubor function.php a můžeme přejít ke skriptům main.php a menu.php, které se načtou do vytvořeného framesetu. Soubor main.php neobsahuje žádné zlváštní údaje, takže nebude vadit, když nebudeme kontrolovat přístupové údaje v databázi ale jen zkontrolujeme zda existuje proměnná $PHP_AUTH_USER. Pokud ano, zobrazíme stránku - její obsah nechávám na Vaší fantazii - pokud proměnná neexistuje nedovolíme její zobrazení.
main.php (/admin/main.php)
|
V souboru menu.php už využijeme definované funkce auth(), jelikož musíme zjistit jaká práva v systému přihlášený uživatel má - podle toho mu připravíme menu. Šéfredaktor má v systému nejvýšší váhu a má proto všechna práva. Jeho "podřízenými" jsou redaktoři/korektoři, kteří mají téměř stejná práva jako šéfredaktor. Jediné co redaktoři nemohou je vytvářet nové uživatele RS, editovat schválené články. Posledním a právy nejméně obdařeným článkem systému jsou autoři. Ti mohou do systému pouze vkládat nové články, textové zprávy a mohou získat přehled o čtenosti vlastních článků.
menu.php (/admin/menu.php)
|
Tak a máme hotovou i navigaci v administrační části redakčního systému. V příštích dílech seriálu si budeme popisovat jednotlivé položky menu, takže se konečně dostaneme ke slíbenému vytváření uživatelů, jejich editaci či mazání. Pro dnešek je to ode mne vše. Těším se na Vás u dalšího pokračování.
Obsah seriálu (více o seriálu):
- Redakční systém I.
- Redakční systém II.
- Redakční systém III.
- Redakční Systém IV.
- Redakční systém V.
- Redakční systém VI.
- Redakční systém VII.
- Redakční systém VIII
- Redakční systém - tisk
- Redakční systém - generování
- Redakční systém - generování II.
- Redakční systém - generování III.
- Redakční systém - generování IV
- Redakční systém - generování V.
- Redakční systém - krátké zprávy a CSS styly
- Upload obrázků
- Upload - II a logout
- Schvalování článků - II
- Dodatečné přidání obrázku
- Regulární výrazy I
- Regulární výrazy II
- Redakční systém: Fulltext - I.
- Fulltext - II
- Co s RS?
- Optimalizace databáze v RS
- Interní vzkazy - I
- Interní vzkazy - II
- Interní vzkazy - III
- Náměty od čtenářů - I
- Náměty od čtenářů - II
- Náměty od čtenářů - III
- Náměty od čtenářů - IV
- Náhrada FTP
- Ankety
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007