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:

  1. Pripraviť SQL dotaz
  2. Vykonať dotaz
  3. 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.
💡 Vedeli ste?Fun fact: PHP bolo pôvodne vytvorené Rasmusom Lerdorfom v roku 1994 ako sada skriptov na sledovanie návštevnosti jeho webových stránok a rýchlo sa rozrástlo do plnohodnotného jazyka používaného po celom svete.

Porovnanie prístupov k databáze

VlastnosťPDOmysqli
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]);
💡 Vedeli ste?Did you know that using password_hash() with PASSWORD_DEFAULT ensures PHP môže v budúcnosti upgradovať štandard hashovania bez zmeny vášho kódu?

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

Zaregistruj sa pre celé zhrnutie
KartičkyTest znalostíZhrnutiePodcastMyšlienková mapa
Začni zadarmo

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

## Ú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): ```php $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: 1. Pripraviť SQL dotaz 2. Vykonať dotaz 3. Získať a spracovať výsledky Praktický príklad s prepared statement (PDO): ```php $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: ```php $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. Fun fact: PHP bolo pôvodne vytvorené Rasmusom Lerdorfom v roku 1994 ako sada skriptov na sledovanie návštevnosti jeho webových stránok a rýchlo sa rozrástlo do plnohodnotného jazyka používaného po celom svete. ## 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é) ```php // 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]); ``` Did you know that using password_hash() with PASSWORD_DEFAULT ensures PHP môže v budúcnosti upgradovať štandard hashovania bez zmeny vášho kódu? ## 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