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í | ||
IČ | 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 |
Obsah
- PHP integrovaný web server
- PHP skript
- Proměnné
- Řídící konstrukce
- Vkládání souborů
- GET
- Databáze
- POST
- Session
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).
<?php $_SESSION["parametr"] = "hodnota";