Tvoríme si e-shop, diel 2.

Jakub Žilinčan  /  15. 06. 2007, 00:00

V minulom dieli sme sa prekúsali teóriou a v dnešnej časti si ukážeme už niečo viac z praxe. Rozoberieme si, ako bude fungovať redakčný systém a vytvoríme si prihlasovací skript do hlavného súboru, z ktorého sa všetko riadi.

Analýza
Každý správny redakčný systém musí spĺňať určité pravidlá. Medzi tie najhlavnejšie určite patrí použiteľnosť, jednoduchosť a nenápadný dizajn. Predpokladá sa, že celý e-shop bude riadený z domu, resp. kancelárie. To znamená, že sa doň nebudem prihlasovať inde (napr. v kaviarni), a tomu prispôsobíme aj zabezpečenie. Prihlasovanie nájdete nižšie v tomto článku.

Štruktúra
Náš redakčný systém bude fungovať na báze jednoduchého prihlásenia s určitými údajmi. Tieto údaje budú uložené v databáze v tabulke "admins". Tabuľku si najlepšie vytvoríte v MySQL admine pomocou SQL príkazu.
CREATE TABLE `admins` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nick` VARCHAR( 50 ) NOT NULL UNIQUE ,
`heslo` VARCHAR( 50 ) NOT NULL ,
`prava` INT NOT NULL
)

Hneď si do tabľky vložíme aj prvého užívateľa, ktorý bude mať práva administrátora. Meno: admin, heslo: eshopadmin.

INSERT INTO `admins` (
`id` ,
`nick` ,
`heslo` ,
`prava`
)
VALUES (
NULL , 'admin', MD5( 'eshopadmin' ) , '0'
);


Okrem toho si vytvoríme súbor "config.php", v ktorom budeme skladovať ostatné údaje.

 

<?
$config_stranka=$SERVER_NAME; //$SERVER_NAME znamená, že názov stránky je braný automaticky podľa názvu domény. Môžete ho ľubovoľne zmeniť, no pre správnu funkčnosť neodporúčam.
$config_db_uziv="uzivatel_db"; //prihlasovacie meno do databázy
$config_db_heslo="heslo_db"; //prihlasovacie heslo do databázy
$config_db_host="localhost"; //server
$config_db_databaza="databaza_db"; //názov databázy
?>

Tento skript budeme ďalej rozširovať, bolo len potrebné nakonfigurovať databázu.

Pre prihlasovanie do databázy použijeme jednoduchý súbor "db.php"
<?
$spojenie = mysql_connect($config_db_host,$config_db_uziv,$config_db_heslo);
mysql_select_db($config_db_databaza, $spojenie);
?>

Mohlo by sa zdať, že súbor "index.php" je hlavná časť, no nieje to pravda. Tento súbor nám bude slúžiť len na prihlasovanie a následné presmerovanie.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="w3.org/1999/xhtml" xml:lang="sk" lang="sk">
 <head>
 <title>Prihlásenie do redakčného systému</title>
 </head>
<body>
<form action="index.php" method="post">
meno: <input type="text" name="meno"/><br/>
heslo: <input type="password" name="heslo"/><br/>
<input type="submit" name="submit" value="Prihlás"/>
</form>

if (isset($_POST['submit'])){
require "config.php";
require "db.php";
$meno=addslashes($_POST['meno']);
$heslo=md5($_POST['heslo']);
$q=mysql_query("SELECT id,nick,heslo,prava FROM admins WHERE nick='$meno' AND heslo='$heslo'");
if(mysql_num_rows($q)<>0){
$value=mysql_fetch_array($q);
session_name('user');
session_start();
$_SESSION['nick'] = $value[1];
$_SESSION['prava'] = $value[3];
$_SESSION['id'] = $value[0];
header('location:pridaj.php?' .SID);
}
else{
echo "Zle zadané údaje";
}
}//submit
?>
</body>
</html>



Tento skript pracuje veľmi jednoducho. Pokiaľ sa zhodujú zadané údaje s údajmi v databáze, pokračujeme ďalej na hlavnú stránku redakčného systému "pridaj.php". Funkcia addslashes pridá spätné lomítko pred všetky nebezpečné znaky, ako napr. " ' ".Ak sú údaje zlé, skript nás ďalej nepustí.

Súbor "index.php" je uložený v adresári "rs".

V ďalšom dieli budeme pokračovať vytvorením a jemným naštýlovaním hlavného súboru redakčného systému.

Neprehliadnite: