Zhrnutie na Číselné systémy, IPv6, Webové servery a Databázy
Číselné systémy, IPv6, Webové servery a Databázy: Prehľad pre študentov
Úvod do PHP
PHP je populárny skriptovací jazyk určený predovšetkým pre vývoj dynamických webových aplikácií. V tomto materiáli sa sústredíme na základné pojmy, praktické príklady práce s databázou pomocou PHP (bez podrobností o MySQL ako samostatnej téme) a bezpečnostné zásady pri práci s údajmi.
Definícia: PHP (PHP: Hypertext Preprocessor) je serverový skriptovací jazyk určený na generovanie dynamického HTML a spracovanie údajov na serveri.
Základné časti PHP aplikácie
1. Pripojenie k databáze
Rozdelenie úloh pri práci s databázou:
- otvorenie spojenia
- vykonanie dotazov
- spracovanie výsledkov
- zatvorenie spojenia
Príklad (zjednodušený koncept):
$host = 'localhost';
$user = 'uzivatel';
$pass = 'heslo';
$dbname = 'databaza';
// vytvorenie pripojenia (pomocou PDO alebo mysqli)
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
Definícia: PDO je PHP Data Objects — rozhranie pre prácu s rôznymi databázovými systémami cez jednotné API.
2. Získanie údajov z tabuľky
Postup pri načítaní údajov:
- Pripraviť SQL dotaz
- Vykonať dotaz
- Získať a spracovať výsledky
Praktický príklad s prepared statement (PDO):
$sql = 'SELECT id, meno, email FROM uzivatelia WHERE aktivny = :aktivny';
$stmt = $pdo->prepare($sql);
$stmt->execute(['aktivny' => 1]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
echo $row['id'] . ' - ' . $row['meno'] . ' - ' . $row['email'];
}
Definícia: Prepared statement je predkompilovaný SQL dotaz, ktorý oddelí štruktúru dotazu od vstupných parametrov a zvyšuje bezpečnosť.
3. Zatvorenie spojenia
V PDO sa spojenie uvoľní nastavením objektu na null:
$pdo = null;
Pri použití mysqli sa používa $mysqli->close().
Bezpečnostné zásady pri práci s PHP
- Nikdy neukladať heslá v čitateľnej forme: použite hashovanie, napr. password_hash() a password_verify().
- Používať prepared statements pri vkladaní alebo získavaní údajov, aby ste predišli SQL injection.
- Obmedzovať prístupové práva databázového používateľa – definujte len potrebné oprávnenia.
Porovnanie prístupov k databáze
| Vlastnosť | PDO | mysqli |
|---|---|---|
| Podpora viacerých DB | + | - |
| Prepared statements | + | + |
| Objektovo orientované API | + | + |
| Jednoduché použitie pre MySQL | + | + |
Definícia: SQL injection je typ útoku, pri ktorom útočník vkladá zlovestný SQL kód do dotazu cez vstup používateľa.
Praktické tipy a dobré postupy
- Validujte a sanitizujte vstupy z formulárov.
- Používajte try/catch bloky pri práci s PDO a logujte chyby bezpečne mimo verejného priestoru.
- Nastavte správne znakovanie (UTF-8) pri pripojení a pri výstupe.
- Rozdeľte logiku aplikácie: oddeliť prístup k údajom, obchodnú logiku a zobrazovanie.
Malý príklad: registrácia používateľa (zjednodušené)
// prijatie vstupu
$meno = $_POST['meno'];
$heslo = $_POST['heslo'];
// hashovanie hesla
$hash = password_hash($heslo, PASSWORD_DEFAULT);
// uloženie do DB pomocou prepared statement
$sql = 'INSERT INTO uzivatelia (meno, heslo_hash) VALUES (:meno, :hash)';
$stmt = $pdo->prepare($sql);
$stmt->execute(['meno' => $meno, 'hash' => $hash]);
Záver
- PHP je praktický na rýchly vývoj dynamických aplikácií.
- Dodržiavajte bezpečnostné zásady: hashovanie hesiel, prepared statements a obmedzené práva.
- Používajte PDO pre flexibilitu a lepšiu správu chýb.
Zhrnutie: Základy práce s PHP zahŕňajú bezpečné pripojenie k databáze, vykonávanie dotazov cez prepared statements, správne hashovanie hesiel a uzatváranie spojení. Dodržiavanie týchto princípov minimaliz
Už máš účet? Prihlásiť sa
PHP Základy
Klíčová slova: Počítačové siete, Webové servery, PHP, MySQL
Klíčové pojmy: Používajte PDO pre pripojenie k databáze, Vždy používajte prepared statements pre SQL dotazy, Heslá ukladajte len ako hash pomocou password_hash(), Pri PDO uvoľnite spojenie nastavením $pdo = null, Validujte a sanitizujte vstupy z formulárov, Logujte chyby bezpečne mimo verejného prístupu, Nastavte znakovanie UTF-8 pri pripojení a výstupe, Obmedzte databázové práva len na potrebné operácie, Oddelte prístup k dátam, logiku a zobrazovanie, Používajte try/catch pri práci s databázou