Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Michal Kutil ČVUT FEL Praha kutilm@fel.cvut.cz
PHP Michal Kutil ČVUT FEL Praha
2
1. Úvod
3
Zdroje PHP a MySQL rozvoj webových aplikací Luke Welling a Laura Thomsonová; Softpress; 2004 PHP v příkladech V. Smilek, J. Berit a L. Mrázek L.; KOPP; 2001 Ukázat
4
Historie PHP Personal Home Page PHP Hypertext Preprocesor
Rasmus Lerdorf Informace o návštěvnících jeho stránek Skriptovací jazyk Dal k dispozici zdrojové kódy Open Source produkt Rekurzivní název jako: GNU Gnu’s Not Unix
5
Vývoj používání PHP
6
Charakteristika PHP Skriptovací jazyk
Dynamické vytváření webových stránek Jednoduchost Nezávislost na platformě Vysoký komfort práce s databázemi V kódu lze lehce kombinovat HTML a PHP Syntaxe podobná C, C++, Javě
7
Mechanismus zpracování
Webový prohlížeč Server Webový server Apache, IIS Požadavek Souborový systém *.html, *.gif, *.jpeg, *.php Webová stránka html, gif, jpeg, js NE PHP! *.html,*.gif,… *.php PHP Instalace SERVERU, Firefoxe, a webdeveloper extension, pspad Zjistit jak moc toho vědi o HTML? - Rychlokurz o HTML - Ukázka html na úvodní stránce Méďovy včelnice Odpověď Database MySQL
8
2. Základy programování
9
Vzorová aplikace Nejběžnější aplikace Webové stránky Méďovy včelnice
Zpracování formulářů Webové stránky Méďovy včelnice Seznam produktů Objednávkový formulář Zpracování formuláře Uložení objednávky (soubor, databáze) Odeslání potvrzení o přijetí em
10
Seznam produktů Objednávkový formulář Soubor formular.php
Jde pouze o HTML Atribut action a method tágu form Atribut name tágu input
11
Zpracování objednávky
Soubor s názvem uloženým v atributu action tágu form: objednavka.php Soubor musí mít koncovku *.php Alternativní konfigurace serveru: *.php3, *.php4, *.php5, *.phtml, … Výstupem bude opět jen HTML!
12
Vkládání PHP do HTML Pod nadpis <h2> vložte následující:
echo '<p>Objednávka byla zpracována.</p>'; ?> Otevřete stránku přes server a prostudujte zdrojový kód. Zkontrolovat že do prohlížeče prošel pouze HTML kód. - prohlížeč nemusí rozumět PHP
13
Obsah souboru s PHP kódem
HTML Značky PHP: <?php … ?>, <? … ?>, … Příkazy PHP: echo Prázdné znaky Komentáře: Blokové /* … */ Řádkové // … , # … Další PHP značky: script: <script language=‘php’ > echo ‘ahoj’ </script> asp: <% echo ‘ahoj’ %> Prázdné znaky: vysvětlit v html – ukázat na příkladu vysvětlit v php – echo ‘ahoj’; echo ‘ světe’; – echo ‘ahoj ’; echo ‘ světe’; Komentáře: - Komentář v html: <!-- --> - Napsat komentář na začátek kódu s autorem, datem a popisem souboru
14
Vkládání dynamického obsahu
Zatím bychom se bez PHP obešli Dynamická změna obsahu stránek Na základě vnějších vlivů Na základě chování uživatele Doplňte stránku se zpracováním objednávky o informaci o datu a času objednání <?php echo ‘<p>Objednávka byla zpracována v ‘; echo date(‘H:I, jS F’); echo ‘</p>’; ?> na nalezt informaci o funkci date a pohrat si.
15
Data z formuláře Data jsou uloženy v proměnných
Proměnné začínají znakem $ Data dostupná přes tři různé proměnné $medsv $_POST['medsv'] ($_GET['medsv']) $HTTP_POST_VARS['medsv'] Existence v závislosti na verzi a konfiguraci PHP Doplňte objednávku o přehled počtu nakoupených věcí Prvni varianta dostupna pouze pokud je nastavena konfigurace register_globals (Bezpečnost skriptu) Druha varianta dostupna pouze od verze 4.1.0
16
Uživatelem deklarované proměnné
Proměnné vždy začínají znakem $ Proměnné se nemusí deklarovat Přiřazování hodnot proměnným $celkovemnozstvi = 0; $celkovacena = 0.00; $celkovacena = $cenaposleve; $jmenoobchodu = ‘Méďova včelnice’; Promenne které jsou tvořeny v průběhu skriptu jsou v první variantě (Podmínky pro nazvi na straně: 57)
17
Operátory + Sčítání $a + $b; $c + 30 - Odečítání $a - $b; $c - 30
* Násobení $a * $b; $c * 30 / Dělení $a / $b; $c / 30 % Modus (zbytek po dělení) $a % $b . Spojení (Spojuje textové řetězce) S použitím operátoru spojení vypisujte přehled objednaných věcí pomocí jednoho příkazu echo Vypište celkový počet objednaných věcí Funkce isset, empty Na odpoledne: Zavést cenu za produkt: define(‘CENA’,50); Přehled cen kolik jsem nakoupil Celková cena k zaplacení
18
Řídící struktury Rozhodování pomocí podmínek
if ( podmínka ) { příkaz(y) } else { jiný(é) příkaz(y) } Podmínka - porovnávací a binární operátory Bloky příkazů {} Doplňte zpracování objednávky, tak aby se vypsalo že si uživatel nic neobjednal Porovnávací a binární operátory: strana 66 Blokové prvky {} ELSE – nepovinné Na odpoledne - sleva při objednání medu světlého: %; %; %
19
Příkaz SWITCH Podobné příkazu if, ale možno určit více hodnot výsledku
switch ( výraz ) { case hodnota : příkaz(y); break; case hodnota : příkaz(y); break; default : příkaz(y); break; } Doplňte objednávku o marketinkový průzkum návratnosti reklamy Do formuláře přidat <SELECT name=“reklama”><option value=“a”>Jsem stálý zákazník</option> ….
20
Opakování akcí while (podmínka) { příkaz(y) } for (výraz1; podmínka; výraz2) { příkaz(y) } Vytvořte stránku s ceníkem (tabulkou). Cena dopravy zboží je závislá na vzdálenosti.
21
Opakovací cvičení Operátory if switch
Na začátku skriptu vytvořit jednoduché proměnné ($medsv=$_POST['medsv']) Operátory Zavést cenu za produkt Přehled kolik mě co stálo Celkově k zaplacení if Vypsat varování pokud si uživatel nic neobjednal Sleva z celkové částky (10-49kg 5%, 50-99kg 10%, 100 a více 15%) switch Zjistit návratnost reklamy
22
3. Zajímavé možnosti PHP
23
Pole Číselně indexovaná pole Asociativní pole Vícerozměrná pole
Řazení polí Med světlý Med tmavý Vosk produkty
24
Číselně indexované pole
Vytvoření pole $produkty=array('Med světlý','Med tmavý','Vosk'); $produkty=array(1=>'Med světlý','Med tmavý','Vosk'); Přístup k obsahu pole $produkty[0] $produkty[3]='Medovina'; Informaci o datu objednání zobrazte korektně s českými názvy měsíců Řazení pole: sort()
25
Asociativní pole Vytvoření pole Přístup k obsahu pole
$cena=array('medsv'=>80,'medtm'=>90,'vosk'=>50); Přístup k obsahu pole $cena['medsv'] $cena['vosk']='nezjištěno'; Použijte k výpočtu ceny za objednávku asociativní pole, předchozí příkazy pouze zakomentujte Řazení pole: asort(), ksort()
26
"Recyklace" kódu Uživatelem definovaná funkce function echop($text) {
echo '<p>'.$text.'</p>'; } Vložení externího souboru include ('menu.inc.php'); Použijte funkci echop při zpracovaní objednávky Vytvořte soubor menu.inc.php s odkazy na všechny doposud vytvořené soubory, tento soubor pomocí include vložte na konec každé stránky
27
4. Ukládání a získávání dat
28
Uložení objednávky Zápis do souboru $fp = fopen('objednavky.txt','a');
Otevření souboru Zápis Zavření souboru $fp = fopen('objednavky.txt','a'); fwrite($fp, $text); fclose($fp); Uložte objednávku do souboru objednavky.txt Módy strana 90: (r, w, a)
29
Načtení objednávky ze souboru
Načtení příkazem file $nacteneobj=file('objednavky.txt'); Vytvořte soubor prehledobj.php jenž zobrazí všechny doposud provedené objednávky
30
5. Pokročilé programování
31
Proměnná chameleón $jmenoproduktu = 'medsv'; $$jmenoproduktu = 52;
stejné jako $medsv echo $medsv; // vypise 52
32
Úvozovky Podobný význam jako apostrofy
Větší inteligence při interpretaci echo "Objednáno $medsv kg medu sv."; Vkládání znaku ENTER a TAB echo "\n\t"; Pozor na úvozovky echo "Citace zapisujem do \"";
33
Mail Odeslaní se provádí pomocí příkazu:
mail ( 'nadpis zprávy', 'zpráva ...'); Testovat skript tak, že jeho výsledek nejdříve vytisknete na obrazovku a poté teprve použijete příkaz mail(…) Nikdy neumisťujte tento příkaz do cyklu
34
Já Honza Krákora ČVUT FEL Praha
35
Podpora emailu Služba pošty není všude podporována Je třeba
být hodný na administrátora serveru nechat si nastavit SMTP a Firewall nastavit si PHP pro odesílání ů (SMTP nastavení) Někteří poskytovatelé standardně podporují (např. Webzdarma)
36
6. PHP a jiní poskytovatelé
Poskytovatelé serverů s PHP (např. webzdarma, Pípni) PHP, , DB (MySQL), logy atd. Placené zálohy, logy, servis bezpečnostních služeb Free – neplacené bez záloh, levné Založte si konto u , připojte se pomocí FTP a nahrajte tam svojí presentaci Vytvořte skript .php na posílání ů z vaší aplikace
37
“.ahoj.pepo...\n\r\t” -> “ahoj.pepo”
7. Práce s řetězci V PHP velmi jednoduché Silná podpora viz. funkce Trim(), Ltrim(), Rtrim() odstraňují prázdné znaky z řetězce “.ahoj.pepo...\n\r\t” -> “ahoj.pepo”
38
Trim $str = array('a', 'ahoj', 'ahoj pepo ', ' ahoj pepo ');
/* tupy vypsani */ foreach($str as $i){ echo 'retezec: "'.$i."\"\n"; } /* trim funkce */ echo 'retezec: "'.trim($i)."\"\n";
39
Rtrim a Ltrim /* rtrim (chop) funkce */ foreach($str as $i){
echo 'retezec: "'.rtrim($i)."\"\n"; } /* ltrim */ echo 'retezec: "'.ltrim($i)."\"\n"; ?> upravte skript na zpracování u tak aby ořízl řetězec u o prázdné znaky
40
$out = str_replace($starystr, $novystr, $str)
funkce str_replace() přemaže řetězec starystr řetězcem novystr v řetězci str, výsledek uloží do out $out = str_replace($starystr, $novystr, $str) Upravte vaše tabulky aby se vypisoval sudý a lichý řádek jinak (použijte str_replace a CSS) Upravte text zprávy odesílané em aby se místo objevil text (zavinac)
41
Implode, explode atd. funkce Implode() funkce Explode()
sloučí položky pole do řetězce str, mezi jednotlivá políčka vloží znaky str = explode(znaky, pole); funkce Explode() rozdělí řetězec str do pole řetězců pole, dělení je dáno parametrem hledej pole = explode(hledej, str);
42
Další funkce funkce strlen ( string ) funkce strtolower ( string )
funkce strtoupper ( string ) funkce htmlspecialchars( string ) funkce nl2br( string ) funkce ereg (pattern, string , out)
43
To je konec
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.