Tentokrát vytvoříme pro náš webový rozcestník administrační skript, díky kterému budete moci zakládat a editovat kategorie a registrované odkazy.
Výsledek naší práce (webový rozcestník) si můžete prohlédnout zde.
S pomocí administračního skriptu budete přidávat a editovat jednotlivé kategorie v rozcestníku a odkazy, které vám do něho někdo zapsal. Kdyby se náhodou někdo dostal do vaší administrační části, vše je zabezpečeno heslem, které jste si nastavili v minulém konfiguračním souboru config.php .
1. Vytvořte začátek stránky, který obsahuje upozornění na případnou existenci souboru install.php. Pokud v dané složce existuje install.php, nepustí vás skript dále a zakončí se (viz. exit;
). Kdybyste nesmazali instalační soubor, mohl by kdokoli, kdo by na něj narazil, změnit nastavení rozcestníku:
<? require(„config.php“); ?> <html> <head> <title><? echo „$heading“; ?> – Administrace</title> <style> P,A,BODY {font-family: Verdana,Helvetica,Arial; font-size: 13px;} A:HOVER {color: <? echo „$hlink“; ?>;} </style></head> <body bgcolor=“<? echo „$bgcolor“; ?>“ text=“<? echo „$text“; ?>“ link=“<? echo „$link“; ?>“ vlink=“<? echo „$vlink“; ?>“ alink=“<? echo „$alink“; ?>“> <p><b><? echo „$heading“; ?> – Administrace</b><hr></p><p> <?php if(file_exists(„install.php“)) { // nesmí existovat install.php echo „Smažte <b>install.php</b> před pokračováním.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } if(!$f) { ?> |
|
2. Pokud bude instalační skript smazán, zobrazí se tato část:
<ul> <li><a href=“admin.php?f=cat“>Přidat/Editovat Kategorie</a> <li><a href=“admin.php?f=link“>Editovat odkazy</a> </ul> |
|
3. Pokud klepnete na Přidat/Editovat kategorie, zobrazí se nabídka pro přidání a editaci kategorie:
<?php } else { // kategorie if($f==cat) { if(!$a) { ?> <ul> <li><a href=“admin.php?f=cat&a=add“>Přidat novou kategorii</a> <li><a href=“admin.php?f=cat&a=edit“>Editovat kategorii</a> </ul> |
|
4. Další část slouží pro přidání kategorie. Na desátém řádku se kontroluje heslo, které jste zadali ve formuláři. Jakmile budou zadaná všechna pole formuláře, zapíše se kategorie do MySQL:
<?php } else { if($a==’add‘) { if($d) { if($jmenokat && $popiskat && $testpass) { if($testpass!=$adminpass) { // při neshodě zadaného hesla a hesla v config.php vypíše chybu. echo „Heslo je špatné.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } // konexe do databáze: $conn=mysql_connect($server,$dbuser,$dbpass); $query=“select count(*) from odkazkat“; $result=mysql_db_query($dbname,$query,$conn); $counter = mysql_result($result,0); $counter++; $query=“INSERT INTO odkazkat VALUES(‚$counter‘,’$jmenokat‘,’$popiskat‘)“; $result=mysql_db_query($dbname,$query,$conn); ?> Kategorie byla přidána. <?php } else { // jestliže nebylo vše zadáno echo „Všechna pole nebyla zadána.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } } else { ?> <form action=“admin.php“ method=“POST“> Jméno kategorie:<br><input size=“30″ name=“jmenokat“ maxlength=“30″> <br> Popis kategorie:<br><input size=“50″ name=“popiskat“ maxlength=“50″><br> Admin. heslo:<br><input type=“password“ name=“testpass“ size=“30″><br> <input type=“hidden“ name=“f“ value=“cat“> <input type=“hidden“ name=“a“ value=“add“> <input type=“submit“ name=“d“ value=“addcat“> </form> |
|
5. V této části pro editaci kategorií je opět kontrola hesla a pod ní samotná část editace (update) dané kategorie do MySQL databáze:
<?php } } elseif($a==’edit‘) { if($e) { if($jmenokat && $popiskat && $testpass) { if($testpass!=$adminpass) { // kontrola hesla echo „Špatné heslo.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } // konexe mySQL: $conn=mysql_connect($server,$dbuser,$dbpass); $query=“UPDATE odkazkat SET hlavicka=’$jmenokat‘,popisek=’$popiskat‘ WHERE uid =’$uid'“; $result=mysql_db_query($dbname,$query,$conn); ?> Kategorie byla zeditována. <?php } else { echo „Všechna pole nebyla kompletní.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } } else { if($d) { // konexe: $conn=mysql_connect($server,$dbuser,$dbpass); $query=“select * from odkazkat where uid=’$d'“; $result=mysql_db_query($dbname,$query,$conn); list($uid,$hlavicka,$desc)=mysql_fetch_row($result); ?> <form action=“admin.php“ method=“POST“> Jméno kategorie:<br><input size=“30″ name=“jmenokat“ maxlength=“30″ value=“<? echo „$hlavicka“; ?>“> <br> Popis:<br><input size=“50″ name=“popiskat“ maxlength=“50″ value=“<? echo „$desc“; ?>“><br> Admin. heslo:<br><input type=“password“ name=“testpass“ size=“30″><br> <input type=“hidden“ name=“f“ value=“cat“> <input type=“hidden“ name=“a“ value=“edit“> <input type=“hidden“ name=“uid“ value=“<? echo „$d“; ?>“> <input type=“submit“ name=“e“ value=“editcat“> </form> |
|
6. Nyní necháte vypsat všechny existující kategorie. Pak stačí jen klepnout na tu vámi vybranou a můžete začít editovat:
<?php } else { echo „<ul> „; // konexe do MySQL $conn=mysql_connect($server,$dbuser,$dbpass); $query="select * from odkazkat"; $result=mysql_db_query($dbname,$query,$conn); while($row=mysql_fetch_array($result)) { echo „<li><a href=\"admin.php?f=cat&a=edit&d=$row[uid]\">$row[hlavicka]</a> „; } echo „</ul>"; } } } } |
|
7. Následující část slouží pro editaci odkazů. V editaci se vypíší všechny zadané parametry pro daný link a vy budete moci zeditovat vpodstatě vše. Jméno, odkaz, popis i jeho kategorii. Poté se vypíší zadané odkazy stejně, jako seznam kategorií, opět jen klepnete myší a editujete:
// linky } elseif($f==link) { if($d) { if($e) { if($jmenolinku && $linkurl && $popislinku && $kategorie && $testpass && $uid) { // musí být opět zadáno vše if($testpass!=$adminpass) { echo „Špatné heslo.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } $conn=mysql_connect($server,$dbuser,$dbpass); $query=“UPDATE odkazy SET kategorie=’$kategorie‘,jmeno=’$jmenolinku‘,linkurl=’$linkurl‘,popisek=’$popislinku‘ where uid=’$uid'“; $result=mysql_db_query($dbname,$query,$conn); ?> Odkaz zeditován. <?php } else { echo „Všechna pole nebyla zadána.</p> <p> <hr> [<a href=\“$home_url\“>$homename</a>] [<a href=\“admin.php\“>Index Administrace</a>] </body> </html>“; exit; } } else { $conn=mysql_connect($server,$dbuser,$dbpass); $query=“select * from odkazy where uid=’$d'“; $result=mysql_db_query($dbname,$query,$conn); list($uid,$kategorie,$jmenolinku,$linkurl,$desc,$hits)=mysql_fetch_row($result); ?> <form action=“admin.php“ method=“POST“> Jméno odkazu:<br> <input size=“30″ name=“jmenolinku“ value=“<? echo „$jmenolinku“; ?>“><br> URL odkazu:<br> <input size=“30″ name=“linkurl“ value=“<? echo „$linkurl“; ?>“><br> Popis:<br> <input size=“50″ name=“popislinku“ value=“<? echo „$desc“; ?>“><br> <?php $conn=mysql_connect($server,$dbuser,$dbpass); $q=“select * from odkazkat“; $r=mysql_db_query($dbname,$q,$conn); while($row=mysql_fetch_array($r)) { if($row[uid]==$kategorie) { echo „<input type=\“radio\“ name=\“kategorie\“ value=\“$row[uid]\“ CHECKED>$row[hlavicka] „; } else { echo „<input type=\“radio\“ name=\“kategorie\“ value=\“$row[uid]\“>$row[hlavicka] „; } } ?> <br> Admin. heslo:<br> <input type=“password“ name=“testpass“><br> <input type=“hidden“ name=“uid“ value=“<? echo „$uid“; ?>“> <input type=“hidden“ name=“f“ value=“link“> <input type=“hidden“ name=“d“ value=“<? echo „$d“; ?>“> <input type=“submit“ name=“e“ value=“edit_link“> </form> <?php } } else { echo „<ul>“; $conn=mysql_connect($server,$dbuser,$dbpass); $query=“select * from odkazy“; $result=mysql_db_query($dbname,$query,$conn); while($row=mysql_fetch_array($result)) { echo „<li><a href=\“admin.php?f=link&d=$row[uid]\“>$row[jmeno]</a>“; } echo „</ul>“; mysql_free_result($result); } } } ?> |
|
8. Zakončení skriptu bude vypadat takto:
</p> <p> <hr> [<a href=“<? echo „$home_url“; ?>“><? echo „$homename“; ?></a>] [<a href=“admin.php“>Index Administrace</a>] [<a href="links.php">Rozcestník</a>] </body> </html> |
|
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.