dum | žák

Dynamický web

Název školy Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace
Adresa školky Kostelní 134, 411 08 Štětí
46773509
Název operačního programu OP Vzdělávání pro konkurenceschopnost
Registrační číslo CZ.1.07/1.5.00/34.1006
Označení vzdělávacího materiálu
Název tématické oblasti (sady) Programování
Název materiálu PHP - Notičky
Anotace
Autor Jazyk
Očekávaný výstup
Klíčová slova
Druh výukového zdroje Věková skupina žáků
Typ interakce Ročník
Speciální vzdělávací potřeby žádné
Zhotoveno, (datum/období) Celková velikost

pdf icon
PHP - Notičky

Obsah

PHP integrovaný web server

Integrovaný web server se spouští příkazem (upravte cestu k php.exe dle potřeby):

	C:/php/php.exe -S localhost:80

Před tím se ovšem přepněte do adresáře s projektem, se kterým chcete pracovat.

PHP skript

PHP kód se zabaluje mezi značky <?php a ?>, pokud se vyskytuje uvnitř html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title><?php echo $title;?></title>
</head>
<body>

nebo začíná <?php, pokud jde pouze čistě o PHP skript.

<?php
 
echo "Ahoj Světe!";
 

Proměnné

Proměnné se deklarují tím, že se zapíše název proměnné s uvozujícím znakem $ a následným přiřazením hodnoty. PHP je netypový jazyk, proměnné tedy nemají explicitně definované datové typy. Pro názvy proměnných platí určitá pravidla:

  • nesmí začínat číslem

  • skládá se z písmen abecedy (na velikosti záleží) a čísel

  • nesmí obsahovat mezery nebo znaky jiné než podtržítka

$text = "Lorem ipsum";
$barva = "red";
$velikost = "14pt";
$efekt = "underline";

Řídící konstrukce

statement je nějaký výraz, např. $var, $var > 2 nebo $var == false nebo $var == $var2 and $var != $var3, atp.

if

<?php
 
if (statement) {
    // body ...
}
 

switch

<?php
 
switch(statement) {
    case "value":
        // body ...
        break;
    case "value2":
        // body ...
        break;
    //...
    default:
        // body ...
 
}

for

Typický první výraz přiřazuje nějaké proměnné (např. $i) počáteční hodnotu. Druhý výraz pak reprezentuje podmínku cyklení. Třetí výraz pak tvoří inkrementační složku, pro navyšování hodnoty proměnné (z prvního výrazu) o nějaký přírůstek (ať už kladný nebo záporný).

<?php
 
for (statement1; statement2; statement3) {
    // body ...
}
 

while

<?php
 
while (statement) {
    // ...body
}
 
do {
    // body
} while (statement);

Vkládání souborů

include

Nebude-li vkládaný soubor existovat, vrátí interpret chybové hlášení typu warning, skript pak pokračuje v běhu.

Parametrem kontrukce include je název (relativní/absolutní cesta) vkládaného php souboru.

<?php
 
include "header.php";
 

require

Nebude-li vkládaný soubor existovat, vrátí interpret chybové hlášení typu error, skript pak okamžitě skončí.

Parametrem kontrukce require je název (relativní/absolutní cesta) vkládaného php souboru.

<?php
 
require "header.php";
 

GET

Parametry metody GET se přijímají přes superglobální proměnnou $_GET. Je to vlastně asociativní pole, kde index pole je název parametru v URL.

Např. k parametru t v URL http://localhost/test.php?t=lorem lze přistoupit přes $_GET["t"].

isset

Pro testování přítomnosti parametru/indexu v poli lze využít funkci isset(). Funkce vrací true, pokud index existuje, jinak false.

Databáze

Chyby

Po každé akci lze zjistit, zdali byla úspěšná nebo nikoli. Textová podoba chyby je obsažená v objektu $my->error.

Spojení s DB

Spojení vyžaduje 4 parametry: adresu serveru (host), jméno uživatele (user), heslo a název databáze (schema). Druhým příkazem je třeba nastavit kódování přenosu mezi klientem a serverem.

<?php
 
$my = new mysqli("host", "user", "password", "schema");
$my->set_charset("utf8");
 

Dotazování DB

Metoda query přebírá v parametru řetězec, což je vlastně SQL dotaz. Vrací resource nebo False při neúspěchu.

<?php
 
$res = $my->query("SQL dotaz ...");
 

Pokud je dotaz typu SELECT, pak s proměnnou $res dále pracuje. V každém případě je třeba provést test na přítomnost False, zdali nedošlo k chybě.

Získání dat z DB

<?php
 
while ($data = $res->fetch_object()) {
 
}
 

Proměnná $data obsahuje objekt, který reprezentuje jeden řádek z tabulky. Nebo obsahuje False.

K vlastnostem objektu lze přistupovat přes názvy sloupců v tabulce, např. $data->id je sloupec id.

POST

Metoda POST funguje obdobně jako GET. Používá se převážně pro formuláře. Hodnoty metody POST se přijímají přes superglobální proměnnou $_POST. Pro testování přítomnosti indexu v poli lze opět využít funkci isset().

Přesměrování

Odesíláme-li data metodou POST nějakému skriptu, který bude data zpracovávat, pak je dobré tento skript opustit přesměrováním na jiných skript (spíše stránku), kterou už může uživatel vidět (např. zpět na index.php).

Pro tyto účely se používá funkce header(). Ta má mj. parametr, tzv. hlavičku: location, díky které se můžeme uživatele přesměrovat jinam.

    header("location: index.php");

Je možné si předat i GET parametr, např.

    header("location: index.php?status=0");

Session

Pokud chceme využít sezení, je nezbytné před jakýmkoli výstupem skriptu (např. příkaz echo) zavolat funkci:

<?php
 
session_start();
 

Poté je dostupná superglobální proměnná $_SESSION. Což je obdoba proměnné $_POST nebo $_GET, tudíž s ní můžeme pracovat stejně pro čtení dat.

Uložení hodnoty do sezení

S proměnnou $_SESSION pracujeme stejně jako s kterýmkoli jiným polem. Pod nějaký klíč (index) přiřadíme libovolnou hodnotu (číslo, řetězec, boolean nebo i pole).

  1. <?php
  2.  
  3.  
  4. $_SESSION["parametr"] = "hodnota";
  5.