php php hypertext preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym...

37
I.Wojnicki, JiTW PHP – PHP Hypertext Preprocessor Igor Wojnicki Katedra Informatyki Stosowanej Akademia Górniczo-Hutnicza w Krakowie 4 grudnia 2013 $Id: php0.tex,v 1.4 2013/10/27 09:32:42 wojnicki Exp $ Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 1 / 36

Upload: others

Post on 09-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTWPHP – PHP Hypertext Preprocessor

Igor Wojnicki

Katedra Informatyki StosowanejAkademia Górniczo-Hutnicza w Krakowie

4 grudnia 2013

$Id: php0.tex,v 1.4 2013/10/27 09:32:42 wojnicki Exp $

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 1 / 36

Page 2: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

Spis Tresci

1 PHPOpis Jezyka

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 2 / 36

Page 3: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP

Literatura

White E., Eisenhamer, J.D.: PHP 5 w praktyce. Helion, Gliwice2007.Lis M.: PHP 5: praktyczny kurs. Helion, Gliwice 2006.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 3 / 36

Page 4: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Spis Tresci

1 PHPOpis Jezyka

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 4 / 36

Page 5: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Jezyk I

PHP (angielski akronim rekurencyjny, którego rozwiniecie to PHPHypertext Preprocessor), pierwotnie nazwany Personal HomePage - skryptowy jezyk programowania, słuzacy przedewszystkim do tworzenia dynamicznych stron WWW i wykonywanyw tym przypadku po stronie serwera, z mozliwosciazagniezdzania w HTML (badz XHTML).

PHP jest podobny w załozeniach do duzo starszego mechanizmuSSI (Server Side Includes), jednak jest w stosunku do SSInieporównanie bardziej rozbudowany.

Udostepniany jest na zasadach licencji open-source. Jegoskładnia bazuje na jezykach C, Java i Perl.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 5 / 36

Page 6: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Jezyk II

PHP moze byc uzywane nie tylko do tworzenia stron WWW. Jegomodułowa budowa pozwala takze na programowanie aplikacji zinterfejsem graficznym (rozszerzenie PHP-GTK), a takze nawykonywanie z linii polecen (podobnie jak Perl i Python).PHP umozliwia takze współprace z wieloma systemamirelacyjnych baz danych (np. MySQL, Oracle, PostgreSQL,SQLite) oraz korzystanie z alternatywnych sposobówprzechowywania danych - plików tekstowych i XML-owych. Mozebyc uruchamiane na wiekszosci systemów operacyjnych(uwzgledniajac najpopularniejsze) oraz serwerów sieciowych.PHP w srodowisku Linux wraz z serwerem Apache i silnikiem bazdanych MySQL stanowi popularna platforme serwerowa, tzw.LAMP.Od wersji 5 udostepnia wydajne mechanizmy obiektowe.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 6 / 36

Page 7: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Popularnosc PHP

Kwiecien 2007PHP: 20,917,850 domen, 1,224,183 adresów.4-ty jezyk pod wzgledem popularnosci (po Java, C, C++)1.

1http://langpop.com/Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 7 / 36

Page 8: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Charakterystyka I

Interpreter.Zastosowania Internetowe.Interpreter Stand-alone.

Mozliwosci:TCP/IP, DNS.http, https, ftp, gopher, telnet, ldap, irc, snmp, ssh.eMail.IMAP (Internet Message Access Protocol, Internet Mail AccessProtocol), POP3 (Post Office Protocol), NNTP (Network NewsTransfer Protocol).dBase, DBM (BerkeleyDB, GDBM), PostgreSQL, Oracle, MySQL,SQL Server, FrontBase, ODBC, Sybase, SQLite, InterBase,Firebird, IBM DB2, Informix, mSQL, Paradox.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 8 / 36

Page 9: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Charakterystyka II

Niskopoziomowe I/O.Expect: Interakcja z zewnetrznymi aplikacjami poprzezstdin/stdout/stderr.gnuPG.ID3, oggvorbis..Transofrmacje: PNG, JPEG, GIF, TIFF.Exif.Kerberos.Uruchamianie metod obiektów Java.Przetwarzanie XML, XSLT.Kompresja: bzip2, lzf, gzip, zip.Mimetype (jaki typ pliku?).PDF, Postscript.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 9 / 36

Page 10: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Charakterystyka III

Wyrazenia Regularne.

Konwersja znaków diakrytycznych: GNU Recode.

Obsługa Sesji za pomoca cookies.

Obliczenia Statystyczne.

ncurses: interakcja w srodowisku tekstowym.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 10 / 36

Page 11: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Osadzanie I

Instrukcje zakonczone srednikiem (;) [1]<?php echo("Tralala Bum!\n"); ?>

<?phpif (wyrazenie-logiczne) {

?><strong>prawda </strong>

<?php} else {

?><strong>fałsz </strong>

<?php}

?>

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 11 / 36

Page 12: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Komentarze I

jak dla jezyka C: /* ... */

jak dla jezyka C++ (do konca linii): //

jak dla powłoki sh (do konca linii): #

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 12 / 36

Page 13: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Typy Danych I

PHP obsługuje osiem typów prostych.

boolowski (boolean): True/False$foo = True;

liczba całkowita (integer)moga byc zapisane w notacji dziesietnej, szesnastkowej (0x) lubósemkowej (0),

liczba zmiennoprzecinkowa (float)$a = 1.234; $a = 1.2e3; $a = 7E-10;

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 13 / 36

Page 14: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Typy Danych II

łancuch znaków (string), ciag bajtówecho ’przykładowy tekst’;

podwójne cudzysłowy, interpretacje wiekszej ilosci sekwencjicytowania dla znaków specjalnych.echo "tab \t nowa\n";heredoc$str = <<<EODPrzykład łancucha znaków,zajmujacego kilka linii,zapisanego w składni heredoc.EOD;

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 14 / 36

Page 15: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Typy Danych III

tablica (array)

$tablica=array(1,2,3,’cos’,5);echo $tablica[0];

$inna=array( 1 => ’jeden’,5 => ’piec’,

’trzy’ => 3 );echo $inna[5];echo $inna[’trzy’];

obiekt (object)

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 15 / 36

Page 16: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Typy Danych IV

identyfikator zasobów (resource) jest specjalna zmienna,przechowujaca odnosnik do zewnetrznego zródła zasobów.Identyfikatory zasobów sa tworzone i wykorzystywane przezspecjalne funkcje (zobacz suplement z lista tych funkcji ipowiazanych z tym typów zasobów w dokumentacji PHP). Uwaga:Identyfikator zasobów został wprowadzony w PHP 4.

NULL wartosc specjalna oznacza, ze zmienna nie przechowujezadnej wartosci. Uwaga: typ NULL został równiez wprowadzonyw PHP 4

PHP ustala typ danych na podstawie kontekstu.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 16 / 36

Page 17: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Zmienne I

Kazda zmienna w PHP zapisuje sie, poprzedzajac jej nazweznakiem dolara $.

Dostepne sa funkcje które moga sprawdzic typ danych:is_array(), is_int(), is_float() ... itp.

oraz istnienie samej zmiennej i jej wartosci: isset(), isnull()– uwaga na róznice, zobacz: unset()!

Wielkosc liter w nazwie zmiennej jest rozrózniana.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 17 / 36

Page 18: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Zmienne II

Referencje: & (od PHP4)

<?php$foo = ’PHP’;$bar = &$foo;$bar = "To jest $bar";

echo $bar;echo $foo;?>

Zasieg zmiennej ogranicza blok, w którym jest zdefiniowana.static zmienne statyczne (w ramach funkcji!!!)Zmienne jako nazwy zmiennych ${$var}=5;

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 18 / 36

Page 19: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Zmienne Globalne I

$_GLOBALS referencje do zmiennych globalnych, nazwa zmiennej= klucz$_SERVER tworzone przez serwer http$_GET $_POST zmienne dostarczone do skryptu metoda GETlub POST$_COOKIE zmienne dostarczone przez mechanizm COOKIES$_REQUEST zawiera informacje z get/post/cookie$_FILES zmienne dostarczone przez przesłanie plików$_ENV zmienne srodowiskowe, kontekst uruchomienia skryptu

1 Dla wersji ponizej 4.1 obowiazywały nazwy zmiennych globalnychw formacie: $HTTP_*_VARS.

2 Dla PHP3 dane przekazywanem przez POST/GET były zmiennymiglobalnymi.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 19 / 36

Page 20: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Stałe I

Stała jest identyfikatorem (nazwa) dla prostej wartosci. Jak samanazwa wskazuje, wartosc ta nie moze sie zmieniac podczas działaniaskryptu (poza wyjatkami: __FILE__ i __LINE__). Domyslnie, przystałych uwzgledniana jest wielkosc liter. Przyjeto, ze stałe sa pisaneduzymi literami.

define(’WEB_MASTER’,’[email protected]’);echo WEB_MASTER;

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 20 / 36

Page 21: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Operatory I

Arytmetyczne - analogiczne do C: + - / * %

Przypisania: = += -=

Bitowe: & | ~ ^ << >>

Porównania: == === != <> !== <= < >= >

Warunkowe: (expr) ? (expr1) : (expr2);

Wykonania: ‘ ‘

Inkrementacji/Dekrementacji: ++ --

Logiczne: and or xor ! && ||Konkatencja łancuchów znaków: . .=

Łaczenie tablic: +

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 21 / 36

Page 22: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Struktury Sterujace I

if elseif else

if (wyrazenie) { //1 postac// jesli wyrazenie jest prawdziwe

}if (wyrazenie) { //2 postac// jesli wyrazenie jest prawdziwe

}else {// jesli wyrazenie jest jest fałszywe

}

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 22 / 36

Page 23: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Struktury Sterujace II

if (wyrazenie1) { //3 postac// jesli wyrazenie1 jest prawdziwe

}elseif (wyrazenie2) {// jesli wyrazenie2 jest prawdziwe

}else {//wykonywane jest jesli wszystkie//wyrazenia sa fałszywe

}

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 23 / 36

Page 24: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Struktury Sterujace III

switch, analogicznie do C

switch (zmienna) {case WARTOSC_1://instrukcje do wykonania...

break;case WARTOSC_2:break;case WARTOSC_n:break;

}

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 24 / 36

Page 25: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Struktury Sterujace IV

forfor (INICJACJA; WARUNEK; OPERACJA) {//blok instrukcji

}

whilewhile (WARUNEK) {// blok instrukcji

}

dodo {// blok instrukcji

} while (WARUNEK);

break, continue, analogicznie jak C

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 25 / 36

Page 26: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Struktury Sterujace V

foreach, iteracja na elementach tablicy (od PHP4)

foreach(array_expression as $value)statement

foreach(array_expression as $key => $value)statement

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 26 / 36

Page 27: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Struktury Sterujace VI

funkcje

function nazwa ($arg1, $arg2) {//wiersze kodureturn $my_var; // opcjonalne

}

require, include – wczytanie skryptu z innego pliku, wprzypadku niepowodzenia include generuje ostrzezenie,require bład krytyczny.

include ’vars.php’;require ’A.php’;

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 27 / 36

Page 28: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Funkcje I

Funkcji nie mozna przeciazac... bo zbyt ciezkie sie zepsuja.Przekazywanie argumentów przez wartosc.Przekazywanie argumentów przez referencje:function dodaj_cos_extra(&$string){

$string .= ’i cos extra.’;}

Wartosci domyslne argumentów.function robkawe ($typ = "cappucino"){

return "Robie kubek $typ.\n";}

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 28 / 36

Page 29: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Funkcje II

Zwracanie referencji.

function &zwrocReferencje(){return $jakasref;

}$nowaref =& zwrocReferencje();

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 29 / 36

Page 30: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Funkcje III

Nazwa funkcji jako zmienna.

function foo(){echo "W foo()<br>\n";

}function bar($arg = ’’){

echo "W bar(); argumentemjest ’$arg’.<br>\n";

}$func = ’foo’;$func();$func = ’bar’;$func(’test’);

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 30 / 36

Page 31: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Interakcje z Serwerem WWW I

Formularze.<form action="foo.php" method="post">Name:<input type="text"

name="username"><br><input type="submit">

</form>

zmienna $_POST["username"] otrzyma wartosc wprowadzonaprzez uzytkownika.Cookies. Analogicznie jak $_POST/$_GET, wszystkie cookies saprzeslane w tablicy $_COOKIE, funkcja setcookie()tworzy/modyfikuje wartosci cookies (funkcja moze byc uzytajedynie zanim skrypt cokolwiek wygeneruje na wyjsciu).

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 31 / 36

Page 32: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Przykładowa Obsługa Formularza I

Dane klineta w polach formularza: DATA_*Zakupione produkty: PROD_*

<html><head><meta HTTP-EQUIV="Content-Type"CONTENT="text/html;charset=iso-8859-2">

<meta http-equiv="Content-Language"CONTENT="pl">

<TITLE>podziekowanie</TITLE></head><body><?php$to = ’[email protected]’;

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 32 / 36

Page 33: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Przykładowa Obsługa Formularza II

$subject = ’Zamowienie’;$body = "Zamowienie:\n\n";foreach ( $_POST as $k => $v ) {

if (!strncmp($k,’DATA_’,5)){if ($v != ’’) {$n=substr($k,5);$body="${body}${n}: $v \n";

}}

}$body="${body}\n";foreach ( $_POST as $k => $v ) {if (!strncmp($k,’PROD_’,5)){if ($v != ’’) {$n=substr($k,5);

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 33 / 36

Page 34: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Przykładowa Obsługa Formularza III

$body="${body}produkt: $n ilosc: $v \n";}

}}$body="${body}\n

Razem do zaplaty:$_POST[TOTAL]";if (mail($to, $subject, $body)){?><p>Dziekuje za złozenie zamówienia<br>

<?php}else {?>

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 34 / 36

Page 35: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Przykładowa Obsługa Formularza IV

<p>Bład!!! Zamówienie nie zostało wysłane !!!

<?php}

?></body></html>

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 35 / 36

Page 36: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Rodzaje Kontroli Dostepu

HTTP authorization,Formularze HTML+ POST/GET + COOKIES + DBMS.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 36 / 36

Page 37: PHP PHP Hypertext Preprocessorhome.agh.edu.pl/~wojnicki/wiki/_media/pl:jitw:dphp0.pdf · w tym przypadku po stronie serwera, z mozliwo˙ scia˛´ zagniezd˙ zania w HTML (bad˛ z´

I.Wojnick

i, JiTW

PHP Opis Jezyka

Podrecznik PHP.http://www.php.net/manual/pl/.

Igor Wojnicki (AGH, KIS) PHP 4 grudnia 2013 36 / 36