4. diel - Programujeme neobjektové redakčný systém v PHP (Ners)
V minulej lekcii, Formulár a výpis dát z databázy do tabuľky v PHP , sme dokončili jednoduchú aplikáciu k registrácii a výpisu užívateľov. Úplné základy práce s databázu teda už ovládame a nič nám nebráni k tomu, aby sme si naprogramovali plnohodnotný redakčný systém v PHP.
Ners
V niekoľkých málo dieloch vytvoríme systém, pomocou ktorého sa budeme môcť na náš web prihlasovať a nahrávať na neho články pomocou editora. Systém som pomenoval Ners (neobjektové Redakčný systém). Má tieto atribúty:
- Celý systém je napísaný len základnými PHP funkciami, teda bez objektov a bez šablón. Jedinou výnimkou je databázový wrapper, bez ktorého sa bohužiaľ nezaobídeme.
- Celý systém je obsiahnutý len v 6tich PHP súboroch
- Dĺžka žiadneho súboru systému nepresahuje 100 riadkov. (Asi o 5 riadkov je dlhší len editor.php, kde som nechal nejaké medzery kvôli prehľadnosti).
- Systém stihneme vytvoriť veľmi rýchlo a to iba v štyroch tutoriáloch
- Systém obsahuje užívateľské role, registráciu, prihlasovanie, výpis článkov a interaktívne editor článkov
Systém bol napísaný tak, aby ho mohol používať a rozširovať ktokoľvek bez ohľadu na jeho znalosti PHP. Bez objektov, knižníc a všetkého ďalšieho sa obišiel vďaka kompromisom, zjednodušením a minimálnym požiadavkám. Systém nie je určený pre vážne projekty a neukazuje, ako sa v PHP správne programujú informačné systémy. Ukazuje, ako možno čo najjednoduchšie dosiahnuť požadovaný výsledok. Pre vážne informačné systémy musíte použiť MVC framework. Na ITnetworku je na túto tému veľa pokročilých seriálov a materiálov.
Príprava projektu
Než začneme programovať PHP skripty, pripravíme si layout stránky a databázovú štruktúru.
Layout
Najprv budeme potrebovať nejaký layout (HTML kostru), do ktorého doprogramujeme pomocou PHP požadované funkcie. Určite ho nebudeme tvoriť od znova, ale vypožičiame si ho z miestneho ukážkového webe od Honzu Bittnera. V seriáli Webové stránky krok za krokom si otvoríte posledný diel a kompletné web si stiahnite a prezrite. Ak čomukoľvek nerozumiete, v seriáli nájdete detailný vysvetlenie každej časti. Web je len čisté HTML, takže by ste s ním nemali mať problém.
Založte si nový PHP projekt a presuňte do neho obsah archívu s HoBiho webom. Všetky HTML stránky z neho odstráňte, nebudeme ich potrebovať.
Databázy
Do projektu si vložte náš wrapper Db.php (k stiahnutiu v 2. dielu tohto seriálu).
Prejdite do PHPMyAdmin a vytvorte si nejakú novú databázu, ja si ju pomenoval ners_db. Nezabudnite nastaviť porovnávanie na utf8_czech_ci.
Databázu si otvoríte. Teraz si vytvoríme tabuľky, budú len dve.
Užívatelia
Vytvorte si novú tabuľku uzivatele. Bude mať spolu 4 stĺpce (polia):
- uzivatele_id - typ int - primárny kľúč, autoincrement
- jmeno - typ varchar - dĺžka 255
- heslo - typ varcha - dĺžka 255
- admin - typ int, predvolené: 0 (vyberte
možnosť "Podľa zadania" a potom zadajte
0
, viď obrázok nižšie)
Stĺpec admin určuje či je používateľ administrátor (0/1).
Naklikaná tabuľka by mala vyzerať takto:
(Nezabudnite na primárny kľúč a AI u polia uzivatele_id. Na screenshotu to nie je vidieť)
Uložíme tlačidlom Uložiť nižšie.
Články
Pridáme ešte tabuľku clanky. Tá bude obsahovať 6 stĺpcov (polí).
- clanky_id - typ int - primárny kľúč, autoincreament
- titulok - typ varchar - dĺžka 255
- obsah - typ text
- url - varchar - dĺžka 255
- popis - varchar - dĺžka 255
- klicova_slova - varchar - dĺžka 255
Naklikaná tabuľka:
(Opäť nezabudnite na primárny kľúč a autoinkrementácie u polia clanky_id)
Stĺpec URL je url adresa, cez ktorú budeme k článku pristupovať. Napr. pre článok s titulkom "Úvodná článok" by URL mohlo vypísať ako "uvodni-clanek". Niektoré systémy články zobrazujú len podľa číselného ID, čo je však nepríjemné ako pre užívateľov, tak pre vyhľadávače. Pre text článku zvolíme dátový typ text, varchar je vhodný najmä pre kratšie texty.
Potvrdíme tlačidlom Uložiť. Teraz máme všetko pripravené pre to, aby sme sa pustili do samotných PHP skriptov.
PHP skript
PHP skriptov bude teda celkom 6. Každý skript bude rozdelený na 2 časti. V prvej polovici bude PHP blok s obsluhou, v druhej polovici bude HTML kód so stránkou a nejakú prímesí PHP kódu s výpisom výstupu obsluhy. Tieto 2 časti sa v aplikácii väčšinou striktne oddeľujú do samostatných súborov, ale to pre naše účely zanedbáme. Ako som už uvádzal, na prvom mieste tohto projektu je jednoduchosť, vďaka ktorej bude návrh aplikácia trochu trpieť. Malý projekt to zvládne, s niečím väčším by to bol už problém.
Ako prvý sa musíme do nášho systému zaregistrovať. Preto do koreňového priečinka s projektom pridáme súbor registrace.php
Do súboru vložíme najprv nasledujúci HTML kód:
<!DOCTYPE html> <html lang="cs-cz"> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="styl.css" type="text/css" /> <title>Registrace</title> </head> <body> <article> <div id="centrovac"> <header> <h1>Registrace</h1> </header> <section> <?php if (isset($zprava)) echo('<p>' . $zprava . '</p>'); ?> <form method="post"> Jméno<br /> <input type="text" name="jmeno" /><br /> Heslo<br /> <input type="password" name="heslo" /><br /> Heslo znovu<br /> <input type="password" name="heslo_znovu" /><br /> Zadejte aktuální rok (antispam)<br /> <input type="text" name="rok" /><br /> <input type="submit" value="Registrovat" /> </form> </section> <div class="cistic"></div> </div> </article> </body> </html>
Je krátky a jednoduchý. Obsahuje HTML štruktúru a v nej formulár pre registráciu nového užívateľa do systému. Užívateľ zadá meno, 2x heslo (pre kontrolu) a zadá aktuálny rok, čo je jednoduchá ochrana proti spamu. V HTML kódu je malá prímes PHP, ktorá vypisuje text v premennej $ sprava, ak táto premenná existuje. Premennou budeme používať na prenos správy z PHP bloku do HTML bloku.
Stránka vyzerá teraz takto:
V budúcej lekcii, Ners - Registrácia užívateľov v PHP , si k nej dopíšeme PHP blok.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkamiStiahnuté 287x (1.9 kB)