Jednoduchý návod na vlastní prezentaci v PHP s použitím CSS a MySql databáze.
Administrace
Máme již „chodivou“ prezentaci, ale přidávání novinek, odkazů a jiných dat. ručně do databáze je celkem nepraktické a né každému dáme login a heslo. Proto nám určitě zjednoduší práci nějaké to admin rozhraní, kde vyplníme jen potřebné pole a o celý zápis se nám postará nějaký ten skript.
modules/admin/index.inc
<?php
global $access,$admpage;
include("config.php");
$dbadmin = mysql_query("Select * FROM admin_menu ORDER BY id ASC") or die ("Nelze se nacist data pro admin_menu." . mysql_error());
echo "<h2 align='center'>Administrace</h2>";
if ($access=="0") {echo "<br><center><font size='5' color='#FF0000'>Byly zadány špatné přihlašovací informace!</font></center>"; exit;}
echo "<center>";
while ($vypisadmin = mysql_fetch_array($dbadmin))
{
if ($vypisadmin['odkaz']!="admini"){
echo "<input value='".$vypisadmin['nazev']."' onclick=\"document.location.href='?page=admin&admpage=".$vypisadmin['odkaz']."';\" type=button class=input_menu>";
} elseif ($_SERVER["PHP_AUTH_USER"]=="admin") {
echo "<input value='".$vypisadmin['nazev']."' onclick=\"document.location.href='?page=admin&admpage=".$vypisadmin['odkaz']."';\" type=button class=input_menu>";
}
if ($vypisadmin['id']=="5" or $vypisadmin['id']=="10" or $vypisadmin['id']=="15")
{echo"<br>";}
}
echo "</center><hr>";
if ($admpage!="") {
if ($admpage=="admini"){
if ($_SERVER["PHP_AUTH_USER"]=="admin") {
if (file_exists("./modules/$page/$admpage.inc")) {
include ("modules/$page/$admpage.inc");
} else {
echo "<h2>tento modul neexistuje nebo není zaveden.</h2>";}}
else {echo "<h2>Nemáte potřebná oprávnění</h2>";}
} else {
if (file_exists("./modules/$page/$admpage.inc")) {
include ("modules/$page/$admpage.inc");
} else {
echo "<h2>tento modul neexistuje nebo není zaveden.</h2>";}
}
}
?>
Tak pro začátek si požádáme o proměnné access a admpage a vložíme si soubor config.php abychom mohli pracovat s databází.
Dále si pomocí funkce mysql_query vložíme do proměnné dbadmin obsah tabulky admin_menu seřazený podle hodnot id .
Příkazem echo si vypíšeme nadpis Administrace.
Dále podmínkou zkontrolujeme, jestli proměnná access, kterou nám posílá přihlašovací skript, nemá hodnotu 0. Pokud ano vypíše se chybová hláška a skript se ukončí. To nám zajistí funkce exit
Pokud má hodnotu jinou než 0, pokračujeme dále. Tím jsme zajistili kontrolu přihlášení.
Následuje cyklus který vypíše jednotlivé tlačítka admin menu. Obsahuje podmínku, která zkontroluje jestli je přihlášen uživatel admin. Pokud ano zobrazí mu také tlačítko na zobrazení modulu pro administraci uživatelů. Obsahem cyklu je i podmínka která nám zajistí zobrazení jen 5 tlačítek na řádek.
Dále zkontrolujeme proměnou amdpage. Pokud se rovná hodnotě admin, zkontrolujeme jestli má přihlášený uživatel login admin. Pokud ano, zobrazíme mu modul s administrací uživatelů.
Pokud se hodnota proměnné admpage rovná čemukoli jinému než admin, zkontrolujeme jestli požadovaný soubor existuje a pokud ano tak ho zobrazíme. Pokud ne, vypíšeme chybovou hlášku.
Nesmíme taky zapomenout vytvořit tabulku admin_menu s daty pro menu admin rozhraní.
CREATE TABLE `admin_menu` (
`id` int(3) NOT NULL auto_increment,
`nazev` varchar(60) NOT NULL default '',
`odkaz` varchar(60) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;
INSERT INTO `admin_menu` (`id`, `nazev`, `odkaz`) VALUES
(1, 'Administrátoři', 'admini'),
(2, 'Hlavní menu', 'menu'),
(3, 'Odkazy', 'odkazy'),
(4, 'Novinky', 'novinky');
Do tabulky jsme si hned vložili data pro tlačítka úpravy uživatelů, hlavního menu, odkazů a novinek.
V příštím díle si vytvoříme vše potřebné pro přihlašování do administračního rozhraní.
K nahlédnutí na http://ukazky.owebu.cz/diviweb
Login: admin
Heslo: root
Autor: Václav Dressler