PHP pre začiatočníkov - Úvod, 1.diel

Autor článku: PaBi3
Vydané dňa: 30.04.2005
http://www.pabi3.com/1-php-pre-zaciatocnikov-uvod,-1.diel


V prvej časti seriálu PHP pre začiatočníkov nemôže chýbať jeho samotná história a ani inštalácia. Ak sa chcete dozvedieť viac prečítajte si tento článok.

Označenie PHP bolo pôvodne skratkou anglickej frázy "Personal Home Page". Túto technológiu vytvoril v roku 1994 Rasmus Lerdorf kvôli sledovaniu návštevníkov na jeho stránke. S postupným nárastom užitočnosti a možností tejto technológie sa ujal názov "PHP: Hypertext Pre-processor".

Podľa oficiálnej prezentácie je "PHP vloženým skriptovacím jazykom". Je to komplexná, ale aj tak popisná definícia. K tejto definícii by som mal dodať, že PHP je technológia nezávislá na platforme, určnenej pre serveri.
Skutočnosť, že ide o serverovú techonológiu, znamená, že všetko, čo sa v kóde PHP odohráva, sa odohráva na serveri (nie na klientovi, ktorým je počítač návštevníka webového serveru). PHP sa dá používať na väčšine operačných systémoch vrátane Microsoft Windows , Unix, Linux a aj Macintosh. Ešte dôležitejšia je však skutočnosť, že skript napísaný na jednom serveri bude fungovať prakticky bez úprav, tiež na akomkoľvek serveri.

Je zrejmé, že by bolo najlepšie pracovať na serveri, na ktorom je inštalovaná verzia PHP. PHP je jazyk pre dynamické prezentácie. Medzi jeho prednosti patrí výkon, tesná integrácia s väčšinou dostupných databázových systémov, stabilita a takmer neobmedzené možnosti jeho rozširovania. Všetky uvedené výhody sú zdarma. Jazyk PHP je pre začínajúcich programátorov tá najlepšia voľba a potom si už budú môcť robiť s ich skriptami čo si len pomyslia.

V januári roku 1999 jazyk PHP používalo asi 1.000.000 milión domén a na to o 5 rokov v januári roku 2004 sa jazyk PHP rozšíril na 16.000.000 miliónov domén.

Ako už bolo uvedené jazyk PHP pracuje na strane serveru a to znamená, že kód, ktorý napíšete v jazyku PHP, je uložený na počítači, ktorý ponúka webové stránky návštevníkom. Kedykoľvek užívateľ navštívi webovú stránku napísanú v PHP jazyku, server načíta kód PHP a potom ho zpracuje podľa zadaných parametrov. PHP sa veľmi odlišuje od statických stránok HTML. Ale aby som upozornil s pohľadu koncového užívateľa neni HTML a PHP veľmi odišné i keď obsah stránky je vytvorený podstatne odlišne.

V totmo diely by som mal upozorniť na to, že v sekcií download http://www.pabi3.com/download.php sa nachádza celý potrebný balíček pomocou ktorého sa vám nainštaluje podpora PHP skriptov, MySQL databáza a server Apache. Preto by som odporúčal pre začiatočníkov navštíviť sekciu download.

Ako prvým začnem samotným PHP. Nájdete ho na stránke www.php.net. Všetko potrebné nájdete v sekcií download. Stahujte podľa toho aký máte operačný systém.

Ďaľej by som pokračoval s databázou MySQL. Navštívime stránku www.mysql.com.

Teraz by sme prišli k Apachu. Server, ktorý udržiava PHP a MySQL pri chode. Stiahneme ho na adrese www.apache.org.

Ďalej máme na internete možnosť stiahnúť si aj hotové balíčky ako napr. "PHP HOME 2" alebo "PHP Triad" a mnoho ďalších.

Osobne používam "PHP HOME 2" a preto všetko čo stačí urobiť pri inštalácií je čakať a po jej ukončení reštartovať počítač. Potom sa už len riadte krokmi, ktoré budú uvedené na obrazovke a nič nepokazíte.

PHP pre začiatočníkov - Software, 2.diel


Diel bude tentokrát venovaný základnej syntaxy, ktorá je nevyhnutnou potrebou pri písaní php skriptov a tvorbe dynamických webových stránok. Ak si prečítate tento článok ďaľej zistíte, že syntax nieje ani taká zložitá ako vyzerá, a že php je jedným z najrýchejšie sa učiacich skriptovacích jayzykov.

PHP skripty sa v zdrojovom kóde uzatvárajú veľmi jednoducho. Môže to byť celým alebo skráteným spôsobom. Oddelovať sa musia pri napr. od HTML kódu.

Toto sú značky oddelovania:
<?php ?>
alebo skrátenou podobou
<? ?>
alebo aj
<script language="php"> </script>
Asi prvé čo by som mal zaradiť ako váš prvý php skript by bol príkaz echo, ktorý slúži ako napísanie vami požadovaného textu alebo HTML kódu, ktorý sa odošle do prehliadača.
Toto je príkaz "echo" na vypísanie textu:
<?php echo "Toto je môj prvý skript v jazyku PHP."; ?>
Tento príkaz vypísal tento text:
Toto je môj prvý skript v jazyku PHP.
PHP skripty môžete zapisovať medzerami, preskokom na riadok a akokoľvek inak. Syntaxy php to vôbec nevadí.
Aby ste lepšie pochopili minulej vete tak vám sem napíšem názorný príkad:
<?php

echo       " Toto je php skript "  
   ;
?>
Ak by sme však do skriptu php chceli zaviesť aj niečo ako HTML kód typu napr.:
<?php
echo "<img src="image/phprs.gif">;
?>
tak by nám php skript vypísal chybu. Aby bol skript funkčný musíme to napísať takto:
<?php
echo "<img src"image/phprs.gif">;
?>
A ešte je tu možnosť aj použítia apostrofov
<?php
echo ´<img src="image/phprs.gif">´;
?>
Ak by ste apostrof nevedli zaspísať je to v celku jednoduché - stačí použíť skratku - Alt + 3, 9. Opačné lomítka zapisujeme takto - pravý ALT + Q.

Ďaľší typ zápisu kódu by boli premenné. Premennými si môžeme výrazne uľahčiť prácu s textom, funckiami, databázami a pod. Názorný príklad pre základné použitie premennej v texte je takýto:

<?php
$premenna = "php";
echo "Ja ovládam $premenna";
?>
alebo aj takto
<?php
$premenna = "php";
echo "Ja ovládam ".$premenna."";
?>
Mali by sme dostať nasledujúci text:
Ja ovládam php
Celá syntax je v podstate veľmi jednoduchá a toto zdaleka nieje všetko. PHP obsahuje omnoho viac kódu ktorý môžeme zapísať ale to sa do jedného článku asi nezmestí a preto som zhrnul to základné zo základného do jedného článku. Toto by bol asi koniec tejto časti. V ďaľšej časti si povieme niečo o odosielaní formulárov.

 

PHP pre začiatočníkov - Premenné, operátory, konštanty, 3.diel


V minulej časti sme si hovorili o základnej syntaxi php a popísali sme si niečo málo aj o premenných. V tejto časti sa dozviete viac o premenných, operátoroch a konštantách. Jazyk php nieje taký ťažký ako si môžete myslieť a stačí si len pozorne prečítať každý článok aby ste aj vy sami dostali syntax do rúk a hlavy samozrejme.

Premenné v php zastupujú jednu z najdôležitejších súčastí každého php skriptu. Teraz počítam s tým, že už určite máte nainštalované php HOME 2 ako som odporúčal alebo to môžu byť aj iné inštalátori ako napr. php Triad alebo ručne nainštalované php, mysql a apache. Teraz už k premenným. Za premenné sa dočasne dosadzujú hodnoty. Môžeme do nich dosadiť text alebo číslice, či už celé alebo desatinné.

 

V php rozlišujeme tieto typy premenných a to:

- integer - celé čísla
- double - desatinné čísla
- string - textová hodnota - napr. $premenna = "pabi3";
- array - pole (viac sa dozviete vo vyšších dieloch seriálu)
- object - objekt
- boolean - pravda/nepravda alebo true/false (0/1)
- NULL - premenná bez hodnoty (prázdna)
- Globálne premenné - podporované od verzie php4

Asi prvé čo php vyžaduje je správna syntax a to aj v prípade premenných:

- Názov premennej začína znakom $
- Zápis sa vzťahuje aj na viac typov znakov ako sú čísla, pomlčky... atď - napr.: $pÁbi_3
- Prvým znakom za symbolom $ nesmie byť číslica (min. znak ako napr. _ )
- premenné v php sú cast-sensitive čo znamená, že premenná $pabi3 je niečo iné ako premenná $PaBi3
- premennej sa hodnota priraďuje pomocou znaku "="

Každá teória v php by sa mala aj odskúšať a to aj v prípade premenných. Všetko vyzerá celkom jednoduché ale nieje tomu tak, pretože na každý programovací jazyk si treba zvyknúť a až potom sa vám dostane do rúk celá syntax. Výnimkou nieje ani php. Toto je príklad využitia premenných:

 

<?
$test = "PaBi3";
$cislo = 10;
$descislo = 15.54321;
$hodnota = $cislo + $descislo;

echo "$test<br><br>"; // vypíše PaBi3
echo "$cislo<br><br>"; // vypíše 10
echo "$descislo<br><br>"; // vypíše 15.54321
echo "Toto $cislo + $descislo sa rovná $hodnota";
?>

To by bola asi taká úvodná prax s premennými. Určite ste si všimli aj znaky, pomocou ktorých premenné sčitujete. Takýchto znakov je viac a tiež majú svoju syntax. Volajú sa porovnávacie príkazy a logické operátory.

Ich syntax je nasledovná a myslím, že už nieje potrebné ďalej vysvetlovať ich zápis keď sa mi zdá logický už aj s príklade vyššie uvedeného pre premenné.

Syntax Vysvetlenie Typ Príklad
= Priraďuje hodnotu Priraďovanie $x = 1
== Rovná sa Porovnávanie $x == 1
!= Nerovná sa Porovnávanie $x != 1
< Je menší Porovnávanie $x < 1
> Je väčší Porovnávanie $x > 1
<= Je menší alebo rovný Porovnávanie $x <= 1
>= Je väčší alebo rovný Porovnávanie $x >= 1
! Neni Logický !$x
&& A Logický $x && $y
|| Alebo Logický $x || $y
+ Sčítanie Aritmetický $x + $y
- Odčítanie Aritmetický $x - $y
* Násobenie Aritmetický $x * $y
/ Delenie Aritmetický $x / $y
% Zvyšok po celočíselnom delení Aritmetický $x % $y

Všetky operátory patria do hlavy každého dobrého programátora lebo ich obsahuje každý programovací alebo skriptovací jazyk len možno v inom zápise. My sa ale venujme php.

Ďalšia téma syntaxy budú konštanty. Premenné uchovávajú svoju hodnotu dočasne ale konštanty si ju udržiavajú počas procesu celého skriptu. Hodnota konštanty je nezmeniteľná. Základná syntax je v celku jednoduchá rovnako ako bolo u premenných. Zapisuje sa ako define(). Hodnota sa teraz ale nepriraďuje pomocou "=", ale iba pomocou takéhoto zápisu:

<?
define("ZAKLAD","konštanta");
echo "Toto je ".ZAKLAD.""; // vypíše nám "Toto je konštanta".
?>

Konštanty sa dajú použiť napr, pri práci s jazykovou mutáciou stránky. Je len na vás ako ich využijete ale toto by bola asi tá správna cesta :).

Toto by bolo na záver asi všetko o premenných, operátoroch a konštantách. Nezabudnite si prečítať aj ďalšiu časť :-)).

 

PHP pre začiatočníkov - Podmienky, 4.diel


Podmineky v php a ich použitie. Ak ste si neprečítali minulý diel - premenné, operátory a konštatny, tak si to radšej prečítajte, pretože to budete potrebovať. Je to súčasť syntaxy, ktorá sa najčastejšie zapisuje do podmienok a ešte som nevidel nejaký dobrý skript, ktorý by podmienky neobsahoval(až na výnimky).

Podmienky sú v php dôležitou súčasťou bez ktorej sa veľa skriptov nezaobíde. Už s prekladu nám je jasné, že "if" znamená v predade "ak". Podmienka if zaisťuje overenie splnenia alebo nesplnenia zadanej podmienky. Základná syntax má 3 typy zápisu (if, elseif, else). Zápis je nasledovný:
<?
if (podmienka){
vykonanie pri splnení podmienky
}
elseif (iná podmienka){ // ak nieje splnená 1.podmienka urob túto
vykonanie pri splnení podmienky
}
else { // ako vidíte tak tu nieje podmienka
vykonaj pri nesplnení predošlých podmienok // zadáte nejakú činnosť, ktorá nastane pri neslpnení predošlých podmienok.
}
?>

Toto bola základná syntax, ktorú si teraz môžeme rýchlo overiť a to tak, že si to vyskúšame v praxi:

<?
$a = 8;
$b = 3;
$c = 10;

if ($a+$b > $c){
echo "".$a+$b." je väčšie ako $c";
}
elseif ($a+$b < $c){
echo "".$a+$b." je menšie ako $c";
}
else {
echo "Čísla neobsahujú žiadnu hodnotu";
}
?>

Toto je kompletný príklad na ktorom si vysvetlíme o čo ide. Všetko je logické a jednoducho spracované. Najprv sme si zadali premenné $a, $b a $c a priradili sme im číselné hodnoty. Ďalej nasleduje podmienka "if", čiže "ak" premenná $a sčítaná s premennou $b je väčšia ako premenná $c, tak napíš "hodnotu sčítaných premenných $a a $b" ďalej, text "je väčšie ako" a nakoniec hodnotu $c. Naším zápisom dosiahneme toto: "11 je väčšie ako 10.". Prvá podmienky bola splnená a máme to teraz celé hotové. Ak by však premenné mali takéto hodnoty:

$a = 6;
$b = 3;
$c = 10;

,... tak by nám náš skript vypísal podmienku druhú a to je tá, ktorá nasleduje za elseif. Skript nám napíše toto: "9 je menšie ako 10.". Ak by však čísla nemali žiadnu hodnotu čo sa zapisuje nasledovne:

$a = NULL;
$b = NULL;
$c = NULL;
Skript nevedel zapísať žiadnu s podmienok. Musel by pristúpiť na náš posledný riadok, ktorý vypíše text "Čísla neobsahujú žiadnu hodnotu". Else sa odlišuje od elseif tým, že nemá žiadnu podmienku. Else by sa dalo preložiť aj "alebo" a elseif na "alebo ak". Ak potrebujete vedieť niečo o porovnávacích znamienkach, tak si prečítajte minulý diel.

V ďalšom diele niečo viac o poliach.

PHP pre začiatočníkov - Polia, 5.diel


V tomto diele sa dozviete o poliach a ich možnosti zápisu. Niečo si povieme aj o superglobálných poliach a jedno si aj vykúšame. Uvedieme príklad využitia polí a možnosti odoslania dát resp. hodnôt.

Polia sú trochu odlišné od premenných. Ich základná odlišnosť spočíva v tom, že v premenných môže byť len jedna hodnota a v poliach môže byť rada hodnôt. V poliach sa môžu taktiež nachádzať premenné, čísla a aj iné polia. Polia delíme na indexové a asociatívne. Indexové používajú čísla a asociatívne, ktoré využívajú premenné, reťazce a pod.. Pri indexovaných poliach sa počíta prvá hodnota od číslice nula. Základná syntax polí sa začína takto:
<?
$pole = array ("PHP","MySQL","Apache");

echo "{$pole["0"]}<br>";
echo "{$pole["1"]}<br>";
echo "{$pole["2"]}<br>";
?>
alebo aj takto:
<?
$pole[] = "PHP";
$pole[] = "MySQL";
$pole[] = "Apache";
// môžu byť aj s číslami ako $pole[0], $pole[1] a pod.

echo "{$pole["0"]}<br>";
echo "{$pole["1"]}<br>";
echo "{$pole["2"]}<br>";
?>

Ste práve svedkom príkladu, ktorý využíva indexové pole. Máte možnosť si všimnúť aj spomínané indexovanie od nuly. Pole zapisujeme podobne ako premennú ale pred ňu si zapíšeme array aby sme vedeli, že ide o pole a aby to samozrejme vedel aj jazyk php. Keď zapisujeme pole do príkazu echo, tak si určite musíte všimnúť, že sa zapisujú do týchto znakov {} resp. takto {$pole["0"]}. Druhý príklad je rovanký len sme pole rozdelili. Toto je ukážka asociatívnych polí:

<?
$pole["PHP"] = "PHP: Hypertext Preprocessor";
$pole["MySQL"] = "Structured Query Language";
$pole["Apache"] = "Open source Web server";

echo "Skratka PHP znamená <b>{$pole["PHP"]}</b><br>";
echo "Skratka MySQL znamená <b>{$pole["MySQL"]}</b><br>";
echo "Skratka Apache znamená <b>{$pole["Apache"]}</b><br>";
?>

Ako máte sami možnosť vidieť, tak asociatívne polia využívajú k svojej správnej funkcií ako kľúč reťazce a nie číslice. Polia sú čiastočne prerobiteľné a to tak, že ich môžete indexovať od jednotky a nie od nuly. Je to dosiahnuteľné potom ako pred indexované pole vložíme takýto dotaz:

<?
$pole = array (1 => "PHP","MySQL","Apache");

echo "{$pole["1"]}<br>";
echo "{$pole["2"]}<br>";
echo "{$pole["3"]}<br>";
?>

Možno si budete myslieť, že "prerobenie" je dosť tvrdý výraz pre takúto drobnú úpravu. Mohli by sme polia indexovať taktiež aj od 5 alebo od 100. Je tu aj plno iných možností a je to len na vás akú si vy zvolíte. Máte možnosť vidieť, že pred array sme vložili  1 a za ňou nasledoval tento znak =>.

Od verzie PHP v4.1 boli implementované aj tzv. "Superglobálne polia.". Tieto polia majú oproti bežným jednu veľkú výhodu a to je bezpečnosť. Hodnotu, ktorú pole odosiela poznáme a vieme odkiaľ je. Poznáme mnoho druhov superglobálnych polí a medzi ne patria aj $_GET a $_POST. Ako príklad využitia si môžete zobrať aj formuláre do ktorých sa hodnota odosiela. Cez $_GET sa nám odoslaná hodnota vypíše v prehliadači tam kde zadávame adresu a to znamená, že sa ukladá aj do histórie. Preto veľmi neodporúčam využívať tento typ pre heslá užívateľov. Pri $_POST nevidíte ako sa odosiela hodnota a ani sa neukladá do histórie. Ukladanie a odosielanie hesiel ešte nepatrí do tejto časti. Polí je mnoho a dostaneme sa k nim v budúcich dieloch.

Ako príklad použitia polí môžem uviesť aj malý formulár. Poviete si "len formulár už nie", ale je to tak. Je to najjednoduchší príklad aký pre začiatočníka môžem uviesť. Ako prvé si napíšeme celý zdrojový kód formuláru a potom si už len všetko vysvetlíme. Prvý súbor sa bude volať - "index.php":

<form action="form.php" method="get">
<input name="text" type="text" /><br />
<input type="submit" value="Odoslať hodnotu." />
</form>

Druhý súbor "form.php" bude príjmať hodnoty od "index.php":

<?
if(isset($_GET["text"])){
echo $text;
}
?>

Súbor "index.php" neobsahuje žiadny kód php. Obsahuje len čistý formulár, ktorý je nastavený nasledovne: v tagu form máme zapísané dve veci a to action="" a method="". Action nám zaistí odoslanie hodnôt do súboru "form.php" Ďalej tu máme method. Ako už bolo spomínané pri superglobálnych poliach, tak aj tu máme niečo podobné. My sme nastavili method na GET, čo znamená, že tam kde v prehliadači zadávame URL adresu bude teraz zadaná naša hodnota, ktorú sme napísali do formuláru a odoslali. Zapísaná bude takto: form.php?text=PaBi3. Samozrejme iba ak sme zadali text "PaBi3". Ak by sme zadali method na "post", tak by nám vyšlo toto: form.php. A ďalej nič.

Druhý súbor je celý v php a nepotrebuje ani veľmi zložité vysvetlenie ale toto je časť venovaná poliam takže sme použili už spomínané superglobálne pole $_GET. $_GET slúži podobne ako aj method resp. superglobálne polia sú založené na podobnej báze. Tiež si to celé môžeme preložiť do slovenčiny a zistíme, že nám výde toto: ak(jenastavené($_získaj["text"])) napíš $text. Je to pochopiteľné už len z názvu. Celkom jednoduché tak ako minule :-). Toto by bolo k poliam asi všetko.

PHP pre začiatočníkov - Email, 6.diel


V tejto časti nášho seriálu sa dozviete ako odoslať email pomocou skriptu napísaného v jazyku PHP resp. sa naučíte používať funkciu mail().

V tejto časti si preberiem odoslanie emailu pomocou PHP. Jednoduchý proces nám odošle email v parametroch:

mail(prijemca, predmet, text)

Pri odosielaní emailu nezabúdame na to, že ak email odosielame s osobného počítaču a neobsahuje SMTP, tak email nebude možné odoslať. Funkcia mail() vracia hodnotu 1 alebo 0 čo vyjadruje úspešnosť akcie. Môže to byť po pozitívnej stránke(odoslané) alebo po negatívnej(neodoslané).

Pri emaili môžeme ešte doplniť adresu odosielateľa a to nasledovne.:

mail(prijemca, predmet, text, from:odosielatel);

Tento argument je nepovinný a nie je potrebné ho uvádzať.

Teraz sa presuniem k ostrému odoslaniu emailu:

<?
$prijemca = "email@domena.tld";
$predmet = "Test";
$sprava = "Toto je testovacia textová správa, ktorá bude odoslaná pomocou jazyka PHP";

mail("$prijemca", "$predmet", "$sprava");
?>

Príjemcu sme si dosadili pomocou premenných ale ak chcete posielať email staticky, tak je možné to napísať aj takto:

mail("email@domena.tld", "test", "Toto je testovacia textová správa, ktorá bude odoslaná pomocou jazyka PHP");

Teraz sa dostaneme k prekódovaniu emailu. Povedzme, že tieto premenné už obsahujú nejakú hodnotu.

$adresa_prijemcu = elektronická adresa pošty
$subject = subject, proste predmet;
$text = vlastni telo zpravy;
Prekódovanie na charset ISO-8859-2. Nasleduje prevedenie z windows-1250 do ISO-8859-2.
$text_1 = StrTr($text,
"x8Ax8Dx8Ex9Ax9Dx9E",
"xA9xABxAExB9xBBxBE");
Nasleduje prekódovanie do Base64
$text_2 = Base64_Encode($text_1);
Teraz pridanie hlavičiek.
$headers .= "MIME-Version: 1.0 ".
"Content-Type: text/plain; charset="iso-8859-2" ".
"Content-Transfer-Encoding: base64 ";
A nakoniec odošleme email.
@mail($adresa_prijemcu,$subject,$text_2,$headers);

Ak používame windows, tak neptrebujeme kódovanie.
Prekódovanie do Base64.
$text_2 = Base64_Encode($text);
Pridanie hlavičiek
$headers .= "MIME-Version: 1.0 ".
"Content-Type: text/plain; charset="windows-1250" ".
"Content-Transfer-Encoding: base64 ";
A odoslanie emailu.
@mail($adresa_prijemcu,$subject,$text_2,$headers);

 

Keď už som pritom, tak mi nedá vysvetliť aj niečo na čo som zabudol. Všimli ste si pri funckí mail() znak @. Tento znak je tam s dôvodu potláčania chýb. Ak nastane na tom mieste chyba v skripte(nie v syntaxi), tak sa chyba nevypíše. Samozrejme táto vec je použiteľná pri všetkých funkciách v php nielen pri mail().

Toto je koniec dielu o emailoch a nabudúce niečo o externých súboroch.

PHP pre začiatočníkov - Externé súbory, 7.diel


Zahňovanie externých súborov je jedna z najdôležitejších vecí, ktoré by ste mali na začiatok ovládať. V tejto časti sa naučíte jej syntax a popíšeme si jej 4 hlavné funkcie, ktorými tieto súbory zahrňujeme.

PHP vďaka 4 funkciám dokáže pracovať aj s externými súbormi. Vhodné využitie sa objavuje pri požadovaní práce s viacerými súbormi s ktorých by mohol byť jeden alebo jedna skupina ich primárnym cieľom pre čerpanie informácií resp. čerpanie informácií s externých skriptov. Tieto štyri funkcie sú include(), include_once(), require(),require_once().

include - zahrnie požadovaný externý súbor, na ktorý odkazuje. Pri nejakej nezhode alebo chybe skriptu napr. pri neexistencií externého súboru skript pokračuje ďalej a neukončí svoju činnosť iba sa vypíše chybové hlásenie o neúspešnosti zahrnutia externého súboru.

include_once - v podstate je to to isté ako include ale zaistí zahrnutie súboru do skriptu iba jeden krát. Viac už externý súbor byť zahrnutý nemôže.

require - zahrnie požadovaný externý súbor, na ktorý odkazuje. Pri nejakej nezhode alebo chybe skriptu napr. pri neexistencií externého súboru skript nepokračuje ďalej a ukončí svoju činnosť potom vypíše chybové hlásenie.

require_once - tak ako u include_once aj toto je to isté, len s tým rozdielom , že require_once má tie isté vlastnosti ako obyčajné require.

Prípony _once majú v podstate takú funkciu aby zaistili zahrnutie súboru iba jeden krát v jednom skripte.

Všetky zahrnuté externé súbory neprimajú výsledok od serveru ale od prehliadača ak však v danom externom súbore nájdeme niečo čo bude napísané medzi znakmi <??><??>a pod., tak to potom znamená, že náš prehliadač bude spracovávať externý súbor ako bežný prehliadač, čiže všetko prevedie do HTML podoby aj skripty PHP. Tým pádom môžete kľudne do include(aj ostatných) zahrnúť PHP skripty, ktoré budú normálne spracované.

Ak by som mal prísť k praxi, tak vám následným príkladom ukážem ako to má všetko vyzerať.
<?
include("subor.html");
echo "<h1>Tento skript je dlhý</h1>";
?>
Príklad si môžete prezrieť tu. Vypíše sa "Tento skript je dlhý". Zvýraznil som to nadpisom pomocou tagu <h1> aby to bolo dobre vidieť :-). Taktiež sa zobrazí chybové hlásenie, ktoré je zobrazené s dôvodu neúspešného načítanie externého súboru(lebo neexistuje). Ak by súbor existoval, tak by sme videli buď prázdnu obrazovku alebo obsah zahrnutého skriptu.

Require()
<?
require("subor.html");
echo "<h1>Tento skript je dlhý</h1>";
?>
Pri tomto pokuse spustenia skriptu si môžete všimnúť, že sa nám vypísalo chybové hlásenie ale nezobrazil sa nám text, ktorý sme sa pokúsili vypísať pomocou funkcie echo. Príklad tohoto skriptu si môžete pozrieť tu.

Toto by bolo asi všetko o zahrňovaní externých súborov. V nasledujúcej časti si povieme niečo o práci s funkciami a pomocou nich budeme tvoriť šablónu.

PHP pre začiatočníkov - Funkcie, 8.diel

Autor článku: PaBi3
Vydané dňa: 30.04.2005
Čítané: 131x
Definícia vlastných funkcií v php patrí ku každodennej praxi, ak chcete vedieť syntax zápisu vlastnej funkcie, tak nieje nič jednoduchšie ako jej samotná definícia. Všetko o tvorbe vlastných funkcií sa dozviete v tejto časti.

Jazyk php obsahuje množstvo užitočných funkcií, ktoré sú ľahko využiteľné, ak však v našom kóde chceme použiť funkciu, ktorá by nám spracovala požadovaný skript podľa našich predstáv, tak použijeme funkciu function(). Je to veľmi nápomocná funkcia pomocou ktorej si mi môžeme definovať svoju vlastnú funkciu (hotové funkcie v jazyku php sú napr.: echo(), date(), empty()...atď.). Základná syntax zápisu vlastnej funkcie je nasledovná:
function nazov_funkcie() {
telo funkcie
}
Použitie v praxi je veľmi nápomocné a využijete túto funkciu v každom väčšom skripte. Využitie funkcie si môžeme ukázať v názornom príklade.
<?php
function napis() {
$skript = "funkcia napis()";
echo "Toto je $skript";
}
echo napis();
?>
Zadefinovali sme si vlastnú funkciu a nižšie vidíte jej využitie. Skript mám vypíše nasledujúci výsledok "Toto je funkcia napis()". Prezrieť si to môžete tu.

Zápis funkcie má ešte jednu možnú variantu a to je varianta zo zápisom argumentov. Jej syntax sa neodlišuje veľmi významne ale ak typujete, že argumety sa zapisujú do zátvorky tak typujete správne. Argumety vo funkcií majú nasledovnú syntax:
function nazov_funkcie(argument, argument2) {
telo funkcie
}
Argumenty môžu mať významnú funkciu a odporúčam ich použiť aj kvôli predchádzaniu chybových hlásení. Funkcie argumenty primajú, tak ako je to napr. u funkcie echo, ktorá príma vami zadaný text. Počet argumentov je ľubovoľný čiže ich môžeme zapísať koľko chceme. Argumenty sa nazývajú tiež aj parametre, tak sa netreba zmiasť. Teraz si napíšeme malý skript, ktorý bude vyžadovať odoslanie argumetov cez formulár.
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="text" name="meno" /><br />
<input type="text" name="priezvisko" /><br />
<input type="submit" name="odoslat" value="Odoslať" />
</form>
<?php
function napis($meno, $priezvisko){
echo "$meno<br />";
echo "$priezvisko<br />";
}

if (isset($_POST["odoslat"])){
echo napis($meno, $priezvisko);
}
?>
Máte sami možnosť vidieť príjem informácií s argumentu a všetko čo som napísal v tomto skripte si môžeme prezrieť v tomto hotovom príklade. Kliknite tu.

Po zadaní mena a priezviska sa nám vypíše meno a aj priezvisko zadané do formulára. Toto by bolo asi o funkciách všetko a ukončujem túto časť.

V ďalšom diele si niečo povieme o cykloch for a while

PHP pre začiatočníkov - Cykly, 9.diel


Cykly v php sú nevyhnutnou pomôckou často aj pri vypísaní dát s databáz, ďalej sú vhodné na stránkovanie ale to všetko sa nedozviete. Dozviete sa zatiaľ len to najpodstatnejšie - "Čo je to cyklus? Ako zapísať cyklus v php? Ako použiť cyklus v php?". Na tú poslednú som už tu v úvode sčasti odpovedal a teraz by ste sa mali dozvedieť tie ostatné odpovede.

Cykly slúžia na výpis hodnôt počas trvania nejakej podmienky. V php rozlišujeme základné cykly na

- for (určitý počet opakovaní)
- while (opakovanie kým neprestane platiť daná podmienka)

Syntax cyklov v php je nasledovná:

for(začínajúca hodnota; podmienka; výsledná hodnota)
{
vykonanie príkazu
}

while(podmienka)
 {
 vykonanie príkazu
 }

Obidva cykly sú vhodné pre každé použitie a ukázal by som vám aj ako na to pri databázach ale musíte si ešte chvíľu počkať. Zatiaľ uvediem príklad použitia cyklov v dvoch skriptoch.

Začnem cyklom "for" a ešte predtým ako napíšem skript, tak ho opíšem bližšie. Hneď ako začne php spracovať cyklus for je vykonaná začínajúca hodnota a overí sa podmienka. Ak je táto hodnota úspešne splnená sú príkazy vo vnútri for vykonané. Po ukončení skriptu je vykonaná výsledná hodnota a opäť sa overí podmienka. Proces trvá dovtedy kým zadaná podmienka platí.

<?php
for ($hodnota = 1; $hodnota <= 30; $hodnota++){
echo "$hodnota<br />";
}
?>

V cykle for sme premennej  $hodnota dosadili hodnotu 1. Táto časť predstavovala začínajúcu hodnotu. Ďalej sa overila podmienka, ktorá nám určila či je hodnota menšia alebo sa rovná hodnote 30. Keďže táto podmienka je splnená nasleduje výsledná hodnota. Výsledná hodnota nám bude postupne zvyšovať premennú $hodnota o 1 číslicu až kým nedosiahne jej hodnotu 30. Určite ste si všimli správne vysvetlenie pri prvom kóde(viz, nad syntaxov cyklov). Je tam napísané, že for  splní len niekoľko opakovaní.

U while je to trochu inak. Tu bude výpis hodnoty trvať dovtedy kým bude podmienka platiť ale princíp funkcie je takmer identický. Len spôsob využitia závisí od chvíle v ktorej sa nachádzate a uváženia akého cyklu využijete. Ako na to sa dozviete iba praxou.

<?php
while ($hodnota < 30){
$hodnota++;
echo "$hodnota<br />";
}
?>

Premenná $hodnota sa pri zahájení cyklu inicializuje. Kým je menšia ako 30, tak sa bude cyklus príkazu stále opakovať. Pomocou $hodnota++ budeme navršovať premennej vždy hodnotu o 1 vyššiu až kým nedosiahneme jej hodnotu 30.

Ďalšie možnosti zápisu cyklov while sú obšírnejšie ako napr. použitie "do while". Zo samotného názvu vyplýva čo znamená. Cyklus musí byť urobený aspoň raz, pretože podmienka je testovaná na konci skriptu. Vždy pri cyklovaní si treba zabezpečiť to aby sme sa nedostali k nekonečnému cyklu. Niektoré prehliadače to zvládajú ale prehliadač ako IE sa mi zasekne a musím ho resetovať. Je to naozaj iba na vlastné riziko :-). Otestujte to.

Príklad skriptov si môžete prezrieť tu:Kliknite sem.

PHP pre začiatočníkov - Manipulácia s časom, 10.diel


V php rozoznávame mnoho funkcií na zobrazenie času. Teraz si ukážeme len tú základnú možnosť ako zobraziť čas na stránke pomocou dynamicky generovaného kódu.

Čas, jeho zápis a jeho využitie v php je veľmi rozmanité. Zápis času je jednoduchý a má svoju syntax, ktorú treba dodržať. Funkcia date vracia reťazec zadaných informácií o dátume. Formát zápisu je date(). Môžeme však použiť aj date([]). Medzi hranaté zátvorky sa píše časové razítko, ktoré sa ale veľmi nepoužíva, pretože nieje povinné. Zapisuje počet sekúnd uplynutých od dátumu 1.1.1970(tzv. Unixová éra).

Príklad zápisu kódu pre dátum je nasledovný:
<?php
echo "Aktuálny dátum: ".date("j. F. Y ")."<br />";
echo "Aktuálny čas: ".date("G:i")."<br />";
?>
Tento zápis nám vypíše nasledujúci text:
Aktuálny dátum: 26. February. 2005 Aktuálny čas: 14:05
Tento text sa samozrejme v článku nemení, pretože je to len statický zápis článku. Vyskúšajte si to sami v praxi.
Nasledujúca tabuľka nám ukáže možnosti formátovania dátumu:
Znak Popis Príklad
Y Formát roku - celý 2005
y Formát roku - dvojciferný 05
n Formát mesiaca - 1 miestne 2
m Formát mesiaca - od nuly 02
F Formát mesiaca - celý February
M Formát mesiaca - krátky Feb
j Deň v mesiaci - celý 9
d Deň v mesiaci - od nuly 09
l Deň v týždni - celý Friday
D Deň v týždni - krátky Fri
w Deň v týždni - číselný, "0" (nedeľa) až "6" (sobota) 0
g Hodina - 12 hodinový formát 4
G Hodina - 24 hodinový formát 16
h Hodina - 12 hodinový formát od nuly 04
H Hodina - 24 hodinový formát od nuly 16
i Minúty 30
a Predpoludnie, dopoludnie - malé am
A Predpoludnie, dopoludnie - veľké AM
s Sekundy 25
U Sekundy (Unix) počet od 1.1.1970 1109425733

Z tabuľky môžeme použiť ľubovoľné formátovanie, ktoré sa nám na stránke zobrazí. Na čas existuje mnoho funkcií zobrazenia ale len táto je tá správna a prvá cesta pre začiatočníka.

Ak by ste chceli zobrazovať v php aj dni v slovenskom preklade je to možné po napísaní jednoduchej funkcie.
function Datum ()
{
$den = array ("Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota");
$mesiace = array ("Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December");
return $den[Date("w")].", ".Date ("j") . "." .$mesiace[Date ("n") - 1]. " " . Date ("Y");
}
Po volaní tejto funkcie budete môcť vypisovať dátumi v preklade do nášho jazyka samozrejme to tam môžete zapísať aj v nemčine, hebrejčine atď. je to v podstate jedno. Celá táto funkcia má význam s toho dôvodu, že funkcia date() vracia všetky hodnoty v anglickom jazyku.

Toto by bol asi koniec dielu a nabudúce niečo o spojení s databázou.

PHP pre začiatočníkov - Databázy, 11.diel


V tejto časti sa presunieme ďaleko od základnej syntaxi a začneme využívať databázu MySQL pomocou ktorej sa naučíme tvoriť web rýchlo a prehľadne. Od tejto časti začína skutočná dynamika resp. využívanie php a databázy.

PHP je momentálne najviac spájané s SQL databázovým systémom MySQL. Ich vzájomná práca je nevyhnutná pre správu užívateľov, správu diskusných fór, zoznamov atď. Sú tu aj iné spôsoby ako to nahradiť a to napr. používať externé súbory pre prácu s dátami ale neodporúča sa to. MySQL je lepšie a rýchlejšie.

V článku sa dozviete základnú prácu s databázami. Základ by mal pozostávať už s pripojenia do databázy. Pripojenie do databázy zahájime pomocou jednoduchého skriptu.(mysql.php)

<?php
define("SERVER","sem_zadajte_server");
define("LOGIN","sem_zadajte_login");
define("PASS","sem_zadajte_heslo");
define("DATABASE","sem_zadajte_databázu");

$dbc = mysql_connect(SERVER,LOGIN,PASS) or die('Pripojenie k serveru zlyhalo!');
mysql_select_db(DATABASE) or die('Nepodarilo sa označiť databázovú tabuľku!');
?>

Pre pripojenie budeme používať konštanty nie premenné, pretože ich hodnota zostáva len v jednom skripte a je nemožné ju zmeniť.  Premenné sú v tomto prípade menej bezpečné. Na pripojenie však využijeme premennú $dbc. Ako vidíte funkcia mysql_connect() nás pripojí do databázy. Jej tvar pripojenia bude vyzerať nasledovne mysql_connect("server","login","heslo"). Aby sme mohli využívať aj databázu a nie sa k nej len pripojiť využijeme funkciu mysql_select_db(). Jej tvar asi netreba vysvetľovať, pretože do zátvoriek udávame len jeden parameter a to databázu ktorú budeme využívať.

Určite vás teraz zaujíma ako vytvoriť databázu, ktorú bude server využívať. Na vytvorenie databázy budeme využívať funkciu mysql_query(). S touto funkciu sa nestretávate prvý krát ale budeme ju využívať ešte v mnohých skriptoch. Funkcia mysql_query() posiela príkaz do databázy, ktorý sa má vykonať. Skript na vytvorenie databázy by som odporúčal používať iba na localhoste, pretože inde nemusí fungovať. Asi sa často nestretnete so serverom kde bude tvorba databázy povolená. Preto používame klasicky nastavený localhost. Skript na vytvorenie databázy(mysql_cd.php).

<?php
include_once("mysql.php");
mysql_query("CREATE DATABASE tabulky") or die("Nepodarilo sa vytvoriť databázu!");
?>

Po vykonaní skriptu sa zahrnie externý súbor na pripojenie do databázy (v súbore mysql.php nerátame mysql_select_db() to zapíšeme až po vytvorení databázy) a následne sa pošle príkaz na vytvorenie databázy. Ak by databázu nebolo možné vytvoriť tak by sa skript ukončil dôsledkom funkcie die(). Funkcia die() zastaví celý skript a  vykoná len príkaz, ktorý má vo svojich zátvorkách zapísaný ako parametre. Príčina neúspechu vytvorenia môže pozostávať s mnohých dôvodov a to môže byť napr. toto - databáza, ktorú chcete vytvoriť už existuje alebo server nepovoľuje tvorbu databázy pomocou skriptov. Ak chcete databázu vymazať stačí použiť namiesto príkazu CREATE príkaz DROP. Tento príkaz funguje pochopiteľne iba vtedy ak je už databáza vytvorená. V MySQL je jedno či používate syntax tatko - "CREATE DATABASE" alebo takto - "create database". Nič sa tým neovplyvní ale prehľadnejšie je to ako používate túto syntax veľkými písmenami.

Ak už máme vytvorenú databázu, tak je teraz možné vytvoriť aj nejakú tabuľku. Na vytvorenie tabuľky použijeme taktiež príkaz mysql_query(). Skript na vytvorenie tabuľky môže vyzerať nasledovne(mysql_ct.php):

<?php
include_once("mysql.php");
mysql_query("CREATE TABLE tabulka(
id_tabulky MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT ,
nick VARCHAR( 25 ) NOT NULL ,
email VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( id_tabulky )
)")
or die("Nepodarilo sa vytvoriť tabuľku!");
?>

Vytvorenie tabuľky je po úspešnosti skriptu dokončené. Ako vidíte teraz sme v databáze "tabulky" vytvorili tabuľku "tabulka". Stĺpec "id_tabulky" predstavuje jediné číslo, ktoré môže vlastniť záznam, ktorý bude v tabuľke vložený. Identifikovať ho musíme na spodku celého príkazu pomocou PRIMARY KEY(id_tabulky ). Je to niečo ako vaše rodné číslo. Máte ho len vy a nikto iný na svete. Do stĺpca "nick" a "email" budeme pomocou php zadávať informácie. Budú sa ukladať v týchto dvoch stĺpcoch pomocou formulára, ktorý ale budete vidieť až v nasledujúcej časti :-).

V nasledujúcej časti si ukážeme ako vložiť informácie do databázy. Berte časti tohto seriálu nie ako manuál pre "SQL jazyk" ale iba ako manuál pre využívanie "SQL jazyka" pomocou PHP.

PHP pre začiatočníkov - Zápis do databázy, 12.diel


Vkladanie záznamov do databázy pomocou sql jazyka je štart do skutočnej dynamiky stránok. Ak chcete vedieť ako na to prečítajte si tento diel.

Dnes sa naučíme vložiť do databázy záznam. Článok bude súvisieť s minulým dielom a tak verím, že pripojenie do databázy pre vás nebude žiadny problém. Ak už máme vytvorený súbor mysql.php a je v ňom nastavené správne pripojenie do databázy, tak môžeme začať zo zápisom do DB. Na odoslanie príkazu do databázy mysql budeme potrebovať príkaz mysql_query(). Použili sme ho minule a budeme ho používať ešte veľakrát, pretože pomocou neho robíme úkony v databáze. Na vkladanie záznamu bude slúžiť príkaz INSERT. Povedzme , že tabuľka vyzerá takto:
CREATE TABLE tabulka(
id_tabulky MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT ,
nick VARCHAR( 25 ) NOT NULL ,
email VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( id_tabulky )
);
Ak už je tabuľka vytvorená vloženie záznamu môžeme započať týmto skriptom.
<?php require_once("mysql.php");
$sql = mysql_query("INSERT INTO tabulka(nick,email) VALUES('login','login@login.com')");

if($sql){
echo "Záznam bol úspešne vložený do databázy!";
} else {
echo "Záznam sa nepodarilo vložiť do databázy!";
}
mysql_close();
?>
Po spustení skriptu sa záznam vloží do databázy. Ak sa čokoľvek nepodarí záznam do databázy nebude možné vložiť. Funkcia mysql_close() zatvorí spojenie s databázou a uvoľní po sebe pamäť. Do databázy sme vkladali len nick a email. Id_tabulky sa doplní automaticky. Príkaz INSERT môžeme vkladať aj v tvare:
INSERT INTO tabulka(email,nick) VALUES('login@login.com','login');
alebo je tu aj možnosť vložiť len záznam, ktorý chceme. Takže email alebo nick môžeme vylúčiť pretože sú zbytočné, ak do nich nebudeme nič zapisovať. Jeden záznam je ale minimum čo musím vložiť. Ak by sme skript pustili znova vložil by do databázy. duplicitný obsah ale id_tabulky bude vždy iné. To nikdy nebude duplicitné. Takisto môžete záznam vkladať aj pomocou odoslaných hodnôt s formuláru. Môžete použiť superglobálne polia $_GET alebo $_POST. V podstate je to jedno. Stačí zapísať dáta nasledovne:
<form action="uloz.php" method="post">
<fieldset><legend>Ulož záznam</legend>
<input name="login" type="text" /><br />
<input name="email" type="text" /><br />
<input type="submit" value="Ulož záznam" /><br />
</fieldset></form>
A skript na uloženie do databázy(uloz.php).
<?php require_once("mysql.php");
$_POST['login'] = $login;
$_POST['email'] = $email;

$sql = mysql_query("INSERT INTO tabulka(nick,email) VALUES('$login','$email')");

if($sql){
echo "Záznam bol úspešne vložený do databázy!";
} else {
echo "Záznam sa nepodarilo bložiť do databázy!";
}
mysql_close();
?>
A záznam je uložený :-)! Všetko pomocou formuláru. Je to jednoduché. Ak to ešte stále nechápete skúste navštíviť staršie diely kde sa dozviete ako používať superglobálne polia.

Po vložení záznamu bude možné záznam aj vypísať ale to až v ďalšom diely.

PHP pre začiatočníkov - Výpis dát s databázy, 13.diel


Ak už viete zapisovať dáta do databázy určite vám láme hlavou myšlienka ako ich dostať von resp. ako ich vypísať na stránku. Po prečítaní článku to zistíte.

Hlavnou funkciou pre výpis záznamov je mysql_fetch_array(). Vracia jeden riadok dát v ľubovolnom formáte. Funkcia, ktorá bude vypisovať dáta s databázy by mala mať nasledujúci formát:
$data = mysql_fetch_array($sql);
Do hodnoty premennej $sql uložíme označenie dát s databázy pomocou príkazu select a funkcie mysql_query().
$sql = mysql_query("SELECT * FROM tabulka");
$data = mysql_fetch_array($sql);
Funkcia mysql_fetch_array() má aj nepovinné argumenty. Označujú nám výber polí s databázy resp. či je pole asociatívne, indexové alebo oboje. V dieli kde som písal o poliach som vysvetlil aké sú to asociatívne aj indexové ale ak si to nepamätáte, tak nevadí. Asociatívne nám budú odkazovať na nejaký stĺpec v tabuľke, čo bude mať tento tvar:
$data = mysql_fetch_array($sql, MYSQL_ASSOC);
$nick = $data["nick"];
$email = $data["email"];
Naopak indexové nebudú odkazovať na stĺpec v tabuľke ich menom ale ich poradím. Indexovanie sa bude začínať od čísla 0, tak ako to bolo u polí. Zápis do premenných bude vyzerať takto:
$data = mysql_fetch_array($sql, MYSQL_NUM);
$nick = $data["1"];
$email = $data["2"];
Argument MYSQL_BOTH môže využívať všetky s uvedených možností a tak jeho použitie uvádzať asi nemusím. Taktiež môžete namiesto funkcie mysql_fetch_array použiť aj funkcie, ktoré budú vyhradené iba pre jeden s argumentov.
mysql_fetch_array($sql, MYSQL_NUM) mysql_fetch_row()
mysql_fetch_array($sql, MYSQL_ASSOC) mysql_fetch_assoc()
V tejto tabuľke vidíte oproti sebe stojace funkcie, ktoré sú si podobné a majú aj podobný efekt. Samozrejme je najlepšie používať funkciu mysql_fetch_array() a vyberať si výpis dát s argumentmi alebo aj bez nich. Výpis dát v php bude vyzerať takto:
<?php
require_once("mysql.php");
while ($data = mysql_fetch_array($sql, MYSQL_BOTH)){
$nick = $data["nick"];
$email = $data["email"];
echo "Nickname: $nick | Email: $email<br />\n";
}
?>
Na výpis dát sme použili cyklus while. Pomocou tohto cyklu sa nám dáta budú vypisovať dovtedy až kým sa nenačítajú a nenapíšu všetky. Je to vhodné ak v tabuľke máte viac ako len jeden záznam. Teraz sú dáta načítané a vypísané.

V nasledujúcej časti si ukážeme ako vypísať počet záznamov s databázy.

PHP pre začiatočníkov - Počet záznamov, 14.diel


Ak chcete vedieť ako zistiť počet napr. registrovaných užívateľov na stránke resp. počet záznamov v databáze stačí, ak si prečítate tento diel.

V tomto diele si ukážeme ako získať počet záznamov uložených v databáze. Na to nám budem slúžiť funkcia mysql_num_rows(). Vracia počet záznamov z výsledku. Povedzme, že na našej stránke sa zaregistruje 100 užívateľov. To znamená, že do tabuľky napr. uzivatelia sa uloží 100 záznamov. Pomocou funkcie mysql_query() ich označíme.
<?php
require_once("mysql.php");
$sql = mysql_query("SELECT * FROM uzivatelia");
?>
Čo je require_once() už viete s predchádzajúcich dielov a súbor čo zahrňuje je len ako príklad. Predstavujte si súbor mysql.php ako skript na pripojenie do databázy. Premenná $sql bude držať hodnotu, ktorá pri použití vytvorí požadovaný výsledok resp. označí našich užívateľov a teraz nastala chvíľa keď máme možnosť použiť funkciu mysql_num_rows().
<?php
require_once("mysql.php");
$sql = mysql_query("SELECT * FROM uzivatelia");
echo mysql_num_rows($sql);
?>
Na výpis výsledku zo záznamu sme použili funkciu echo() aby sme videli počet záznamov(reg. užívateľov) v prehliadači. V tomto momente máme výpis užívateľov hotový a môžete si funkciu vyskúšať.

Môžeme samozrejme použiť aj funkciu mysql_num_fields(), ktorá vracia počet stĺpcov s výsledku. Povedzme, že tabuľka uzivatelia bude obsahovať 3 stĺpce - id, meno, email. Funkcia mysql_num_fields() nám vráti číslo 3. Častejšie budete používať asi funkciu mysql_num_rows(), pretože má väčší rozsah využitia.

Toto by bol koniec článku a nabudúce si niečo povieme o sessions v blízkej budúcnosti sa vrátime opäť k databázam.

PHP pre začiatočníkov - Sessions, 15.diel


Úvod do sessions. Popis základných funkcií a menšie príklady na skript pre prihlasovanie užívateľov vám prinesie tento diel.

Session proměnné v php slouží k přenosu proměnných mezi skripty.

Náš článek bude rozdělen do dvou částí: teoretickou a praktickou.

1) Pro práci se session jsou v php tyto funkce:
- session_start(); - Inicializuje session
- session_destroy(); - Zruší session
- session_register(Jmeno); - Zaregistruje session proměnnou
- session_unregister(Jmeno); - Zruší session proměnnou. (Pokud potřebujeme jednu promměnou zrušit a ostatní ponechat)
- session_unset(); - Zruší všechny session proměnné, ale ponechá session iniciované, oproti session_destroy();
- session_id(); - Vypíše řetězec, který bude předáván v URL pro session

Ikdyž je již v php k registrování proměnné funkce session_register(Jmeno), je ale lepší pro registrování session proměnné tento zápis:
$_SESSION['jmeno'] = hodnota;
Totéž platí i pro zrušení, můžeme použít místo session_unregister(Jmeno), jiný zápis:
unset($_SESSION['jmeno']);
Pro to, abyste mohli dobře pracovat se session, musíte mít také dobře nastavené věci ohledně session:

session.save_path - Do tohoto adresáře se vám bude session ukládat. Php do něj musí mít proto povolený zápis
session.name - Přes tento název se bude předávat session řetězec. Pokud je nastaveno PHPSESSID, bude výsledek vypadat takto: index.php?PHPSESSID=h0d913f2e367783aafbf2ab590ab853e
session.use_cookies - Pokud chcete, aby se pro přenos session používali cookies, nastavte 1, pokud ne 0
session.cookie_lifetime - Doba, po kterou je cookies platná(v sekundách)

2) Praktická ukázka použití index.php
<?php
session_start();
$_SESSION['jmeno'] = 'Josef';
echo '<a href="index2.php?PHPSESSID='.session_id().'">Pokračovat</a>';
?>
index2.php
<?php
session_start();
echo 'Vaše jméno je '.$_SESSION['jmeno'];
session_destroy();
?>
Po přečtení tohoto článku byste měli být schopni alespoň umět základy práce se session a vytvořit si například skript na přihlašování uživatelů apod.

PHP pre začiatočníkov - Triedy, 16.diel

Autor článku: Xfish5
Vydané dňa: 29.05.2005
Čítané: 150x
I když je jazyk php velmi jednoduchý, obsahuje v sobě možnost vytvářet třídy a jejich objekty. Objektové programování je užitečnější při větších projektech. Téma bude úvod do objektového programování v PHP4.

Jak jsem již nastínil v úvodu, vše se bude točit kolem tříd a objektů. Přesněji: Nejprve si vytvoříme nějakou třídu (dalo by se říci knihovku, ve které máme uloženy informace co má třída dělat). Ty "informace" jsou uloženy v metodách. Metoda není nic jiného než uživatelská funkce, která obsahuje nějaký kus kodu.

Třídu vytvoříme následovně:
class NazevTridy{
// Obsah třídy
}
Nyní máme vytvořenu třídu. Co by to ale bylo za třídu, která by neměla v sobě proměnné. :-) Jsou to proměnné, které budou používány uvnitř třídy. Musíme si je napřed nadefinovat pomocí klíčového slova VAR. Ve třídě s nimi nemanipulujeme jak s normálními proměnnými, ale musíme před ně dát $this->PROMENNA.
Opět malá ukázka:
class NazevTridy{
var $promenna;
var $promenna1;
var $promenna2;
// Pokračování třídy
}
Třída vytvořena, proměnné taky máme, ale něco tomu chybí, ano, je to konstruktor. Je to metoda(funkce), která se se automaticky provede při inicializaci třídy(viz. níže). Konstruktor má stejné jméno jako samotná třída.
Ukázka:
class NazevTridy{
var $promenna;
var $promenna1;
var $promenna2;

function NazevTridy($promenna,...) {
// PHP kod
}
// Další metody
}
Z přechozího příkladu je již patrné, jak budou vypadat ostatní metody.
class NazevTridy{
var $promenna;
var $promenna1;
var $promenna2;

function NazevTridy($promenna,...) {
// PHP kod
}

funtion metoda1() {

}
funtion metoda2() {

}
funtion metoda3() {

}
}
Pokud mám takto třídu vytvořenou, musíme nějak pracovat s jejími objekty. Nejprve si musíme třídu inicializovat. Ukázka:
include 'nazev_tridy.php';

$nazevObjektu = new nazevTridy(); // použití konstruktoru při inicializaci
nebo
include 'nazev_tridy.php';

$nazevObjektu = new nazevTridy;
Teď nám již nebrání nic, používat metody a proměnné ve třídě.
$nazevObjektu->metoda();
$nazevObjektu->promenna = hodnota;
V druhém díle si ukážeme na praktickém příkladě ukázku OOp v php.
Ostatné články zaradené v tejto rubrike  | [zobraz/ukri články]
Diskusie k článku  | [zobraz/ukri diskusie]
[ 2 ]sdf

xx