Základy php

Úseky, psané v jazyce php, jsou až na výjimky vložené do stránky, vytvářené v html kódu. Jazyk php je běžný interpretovaný programovací jazyk. Úseky, psané v tomto jazyce, začínáme klíčovým slovem <?php a končíme pomocí ?> (úsek mezi bude překládán z jazyka php). Hlavním příkazem pro výstup generovaného html z php je "echo":

<HTML>
 <HEAD>
 <TITLE>Název stránky</TITLE>
 </HEAD>
<BODY>
Tento text je zapsán přímo v html.
<?php
echo "Tento text je generován pomocí php skriptu.";
?>

</HTML>

Pokud tento příklad umístíte na internetový server a zobrazíte přes internet (nikoli lokálně jako soubor), získáte přeloženou stránku (zkuste "View source":

<HTML>
 <HEAD>
 <TITLE>Název stránky</TITLE>
 </HEAD>
<BODY>
Tento text je zapsán přímo v html.
Tento text je generován pomocí php skriptu.

</HTML>

php příkazy jsou překládány přímo na serveru, takže návštěvník stránek nemůže vidět zdrojový kód. Další výhodou je, že pokud již program na vašem serveru odladíte, bude fungovat bez ohledu na to, jak si uživatelé budou vyměňovat své prohlížeče internetu (o změně překladačů na serveru by ty, kdo na něm mají stránky, měl správce serveru informovat).

Proměnné

Jména proměnných musí začínat znakem dolaru. Je to dědictví programovacího jazyka Perl, ze kterého php vychází. Usnadňuje to nejen překlad, ale také to zpřehledňuje stránky; jinak je to pro většinu programátorů dost nezvyklé. Proměnné není třeba deklarovat, program je vytvoří při prvním použití. Je ovšem součástí dobrého vychování programátora začít použití nové proměnné tím, že jí přiřadíme hodnotu (platí ve všech programovacích jazycích).

$abc = "Jakýkoli text";
$ef = 11;
$klm = 2 + 3 * $ef;
$mn1 = "Jakýkoli $abc zde";
$mn2 = 'Jakýkoli $abc zde';

Cykly

Pro nás nejdůležitější je "for" cyklus. Deklarace je stejná jako v C++ - na první řádce jsou typicky tři příkazy v okrouhlých závorkách, v pořadí inicializace proměnné cyklu, podmínka pro skončení cyklu a jako třetí pokyn pro změnu hodnoty proměnné cyklu, typicky inkrementace pomocí "++", oddělené středníky.
Na dalších řádkách je zapsáno tělo cyklu ve složených závorkách:

for ($i=1; $i<11; $i++)
{
echo "Toto je jednotlivý řádek";
}

Tento příklad vypíše desetkrát text zadaný v příkazu echo. Zkuste si jej zobrazit v prohlížeči a porovnejte zobrazený text stránky a zdrojový kód stránky. Ve zdrojovém kódu je každé opakování na samostatném řádku. Konec řádku pak prohlížeč zobrazí jako mezeru. Pokud chceme odřádkování, nesmíme zapomenout do textu přidat <br> .

Typickým školním příkladem je trojúhelník z hvězdiček:

for ($j=1; $j<11; $j++)
{
for ($i=1; $i<$j; $i++)
{
echo "***";
}
echo <br>;
}

Zde je uvnitř jednoho cyklu druhý cyklus.

Podpora formulářů

Pokud chcete předávat data serveru, musí formulár mít vyplněný parametr "action=" a všechna předávaná pole musí být pojmenovaná (parament "name="). Důležitou součástí formuláře je tlačítko "submit", které ovšem lze nahradit použitím odpovídající funkce v Javascriptu. Je dobré uvést, jak budou předávána data, pomocí parametru "method=", který může mít hodnotu "post", nebo "get" (první je default).

<Form action="test.php" method="post">
<input type="text" name="abc" value="*****"><br>
<input type="text" name="ace" value="Alik"><br>
<input type="submit" value="Send it!">
</form>

Původně byl každý prvek předáván serveru jako samostatná proměnná, která měla jméno odvozené z parametru "name" jednotlivého prvku doplněním o znak dolaru zleva. Toto chování může správce serveru z důvodu kompatability povolit v konfiguračním souboru http démona pomocí direktivy "register_global" - pak by šlo psát:

<?php
echo "$abc <br> $ace <br>";
?>

Na většině serverů je to zakázané a my musíme použít asociativní pole $_GET a nebo $_POST:

<?php
echo "$_POST['abc'] <br> $_POST['ace'] <br>";
?>

...nebo spojením řetězců příkazem spojení, tečkou:

<?php
echo $_POST["abc"]." <br> ".$_POST["ace"]." <br>";
?>

Jméno proměnné je pak vně uvozovek, resp. apostrofů (ze zkušeností to vede k menšímu počtu programátorských překlepů). První způsob umožňoval vytvářet krásné jednoduché (a tedy bezpečné a spolehlivé) stránky. Byl zrušen z obavy, že by někdo mohl zapomenout inicializovat proměnnou, a tím umožnil někomu podstrčit vlastní hodnotu. Tento argument je nesmyslný, protože tak základní chybu by žádný programátor nikdy neudělal.

V některých případech by bylo užitečné si vypsat vše, co nám formulář poslal. Jazyk php poskytuje prostředky pro práci s asociativními polemi (prvek pole je, resp. může být adresován jménem místo indexem), které nám umožní vypsat nejen obsah vyplněný ve formuláři, ale také názvy jednotlivých polí. To může být užitečné pro ladění formulářů, kdy je můžeme směrovat nejprve na jakýsi univerzální zobrazovač předávaných dat, abychom měli přehled, co formulář vlastně posílá. Více na další stránce.

Poznámka - pokud si nemůžete vzpomenout na jednotlivé prvky formuláře, zkuste napište to, co víte, do Google, nebo se podívejte na w3schools.com.