![]()
Otázka: PHP – prostředí
Předmět: Informatika, Programování
Přidal(a): cadys
Úvod
- Jazyk PHP je skriptovací jazyk na úrovní backendu, který komunikuje s databází, ale dokážeme pomocí něj vytvářet I funkce, dynamické prostředí a frontend. Uvozuje se tagem <?php a končí ?>. Pomocí php můžeme i zobrazovat html a css <?php echo “<div style=“Your_mother“>Hello world <br/><div/>“?>.
- PHP se řadí do rodiny C-like jazyků, není však typovaný. Existuje spoustu knihoven a frameworků (FW NETTE, symphony). Téměř 80 procent stránek užívá PHP – jazyk na komunikaci se servrem.
- Pro instalaci a použití php si musíme nainstalovat tzw WAMP (Windows, Apache, MySQL, PHP). Jedná se o softwarový balíček, který obsahuje veškeré potřebné komponenty pro vytvoření funkčního serveru na počítači Windows. Existuje také LAMP (Linux). Spouštíme si tak vlastní lokální server na svém počítači.
Pojmy
- Apache:
-
- Apache je populární open-source webový server, který poskytuje prostředky pro zpracování HTTP požadavků a poskytování webových stránek a aplikací uživatelům. WAMP obsahuje Apache server, který může být jednoduše nakonfigurován a spuštěn na Windows.
- MySQL:
-
- MySQL je open-source relační databázový systém, který umožňuje ukládání, správu a zpracování dat ve webových aplikacích. WAMP zahrnuje MySQL jako součást balíčku, což umožňuje uživatelům vytvářet a testovat webové aplikace, které vyžadují databázi.
- PHP:
-
- PHP je populární skriptovací jazyk určený pro vývoj dynamických webových stránek a aplikací. WAMP obsahuje PHP interpret, který umožňuje uživatelům psát skripty a programy v PHP a spouštět je na lokálním webovém serveru.
- Fungování WAMP je poměrně jednoduché. Po instalaci WAMP stačí spustit aplikaci a následně spustit Apache server a MySQL databázi. Poté můžete vytvářet a testovat webové aplikace vytvořené v PHP pomocí Apache serveru a přistupovat k databázi MySQL pro ukládání a zpracování dat. WAMP poskytuje uživatelům prostředí, ve kterém mohou vytvářet a testovat webové aplikace na jejich vlastním počítači před jejich nasazením na produkční server.
Zápis
- Komentář se píše /* a ukončuje se */, pro jednořádkový se píše //
- Každý příkaz musí končit ;
- Proměnná se definuje pomocí $var = “String“. “ pokračování, tečka spojuje řetězce“;
- Konstanta se definuje pomocí define(“Name_const“,“value – číslo bez uvozovek“);
- Pole $age=array(„Peter“=>“35“);
- echo „Peter is “ . $age[‚Peter‘] . “ years old.“;
- Expanze proměnné znamená, že když je proměnná v echu a je ohraničena uvozovkami, vypíše se její hodnota, avšak pokud je echo uvozeno apostrofy, proměnná se nevypíše a zobrazí se jen holý text
- Chceme-li zahrnout např. funkce ze souboru function.php nebo navigační lištu stránky, použijeme příkaz require “function.php“; pokud chceme, aby se soubor provedl nebo vypsal pouze jednou např. při připojení databáze, napíšeme require_once “connect_db.php“;
- Phpinfo() vypíše info o stávající verzi php
- Pro vypsání proměnné můžeme použít i fci print(). Pokud chceme vypsat pole, musíme napsat print_r(). Pole definujeme jako $pole = array(prvek1, prvek2,…); Pole může obsahovat i podpole. $pole = array(‚a‘, ‚b‘, 1, 2, array(‚první‘ => ‚podpole‘, ‚vytištěno‘)); podpole má klíčovou hodnotu první. Získám jí pomocí print($pole[4][první]);
- === provede krom hodnoty čísla i kontrolu typu
Řídící struktury
- Prostě funkce.
Předdefinované fce
- V PHP existuje několik předdefinovaných globálních proměnných, které jsou automaticky dostupné ve všech skriptech bez ohledu na jejich umístění. Tyto proměnné poskytují informace o prostředí, aktuálním požadavku a další užitečné informace. Zde je seznam některých z nejčastěji používaných předdefinovaných proměnných v PHP:
-
- $_GET: Obsahuje data získaná z řetězce dotazu (query string) v URL adrese požadavku GET.
- $_POST: Obsahuje data odeslaná formulářem metodou POST.
- $_REQUEST: Obsahuje data odeslaná formulářem metodou GET nebo POST, stejně jako data z cookies.
- $_SESSION: Obsahuje data o relaci aktuálního uživatele. Umožňuje ukládat a získávat informace o uživateli přes více stránek.
- $_COOKIE: Obsahuje hodnoty cookies poslané klientem do serveru.
- $_FILES: Obsahuje informace o nahrávaných souborech pomocí HTML formuláře typu „file“.
- $_SERVER: Obsahuje informace o serveru a běžícím skriptu, jako jsou cesty k souborům, hlavičky HTTP požadavku a další.
- $_ENV: Obsahuje informace o prostředí serveru, například proměnné prostředí nastavené v konfiguračním souboru serveru.
- $_SESSION: Obsahuje data o aktuální relaci uživatele.
- $_GLOBALS: Obsahuje odkazy na všechny globální proměnné v PHP skriptu.
- Tyto proměnné jsou velmi užitečné při práci s webovými formuláři, správě relací, zpracování nahrávaných souborů a získávání informací o prostředí serveru a běžícího skriptu.
<?php
define("BR", "<br/>\n");
// klasicky C-like for cyklus
for ($x = 0; $x <= 10; $x++) {
echo "The number is: $x " . BR;
}
// foreach cyklus
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
echo "$value " . BR;
}
// foreach cyklus nad asoc. polem
$people = array("Josef" => "47", "Martin" => "45", "Joe" => "43");
foreach ($people as $name => $age) {
echo "$name $age" . BR;
}
// switch
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!" . BR;
break;
case "blue":
echo "Your favorite color is blue!" . BR;
break;
case "green":
echo "Your favorite color is green!" . BR;
break;
default:
echo "Your favorite color is neither red, blue, nor green!" . BR;
}
// if-then-elseif-else
$hour = date("H"); // do $hour hodina z aktualniho casu
if ($hour < "10") {
echo "Have a good morning!" . BR;
} elseif ($hour < "20") {
echo "Have a good day!" . BR;
} else {
echo "Have a good night!" . BR;
}
?>
Session
- Http je bezstavový protokol, proto po vykonání příkazu a doručení stránky uživateli práce pro server končí a ten ji zapomíná.
- Někdy si potřebujeme informace o např. uživateli uchovat. Proto se používá tzv. session (sezení). Spouští se pomocí session_start(). http tak uloží informace do tzv. cookies (sušenek) který pak www prohlížeč serveru vždy pošle a ten tedy ví, o jakého uživatele se jedná a ví potřebné informace. Tyto informace se pak ukládají do super globální proměnné $_SESSION[atribut], která je dostupné ze všech funkcí i stránkách dokumentu, který tuto session obsahuje (viditelná).
- Pokud session chceme ukončit, použijeme session_destroy(). Pokud v doméně běží více php aplikací využívající session, musíme session pojmenovávat => session-name().
Formuláře
- Odeslat informace z formuláře můžeme pomocí dvou metod – Get a Post.
- Do metody get se vejde jen určité množství znaků a ukládá se příkazového řádku prohlížeče – je lehce napadnutelné a omezená délka.
- Do metody post se vejde delší množství znaků a není vidět. Jsou totiž odeslána na standartní vstup (asi serveru).
HTML
<form method="get">
<input type="text" name="filter"/>
<input type="submit" value="Submit"/>
</form>
PHP
<?php
// Načteme hodnotu z filtrovacího pole
$filter = isset($_GET["filter"]) ? $_GET["filter"] : '';
// Zobrazíme hodnotu filtru
echo "Hodnota filtru: " . htmlspecialchars($filter);
?>
HTML
<form method="post">
<input type="text" name="filter"/>
<input type="submit" value="Submit"/>
</form>
PHP
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Načteme hodnotu z filtrovacího pole a ochráníme proti XSS útokům
$filter = htmlspecialchars($_POST["filter"]);
echo "Zadaný filtr: " . $filter;
}
?>