cvs: phpdoc-pl /chapters tutorial.xml
| From: | Leszek Krupinski | Date: | Tue, 24 Feb 2004 02:06:48 +0000 |
| Subject: | cvs: phpdoc-pl /chapters tutorial.xml | ||
| Groups: | php.doc.pl | ||
| Request: | Send a blank email to doc-pl+get-283@lists.php.net to get a copy of this message | ||
leszek Mon Feb 23 21:06:48 2004 EDT
Added files:
/phpdoc-pl/chapters tutorial.xml
Log:
http://cvs.php.net/co.php/phpdoc-pl/chapters/tutorial.xml?r=1.1&p=1 Index: phpdoc-pl/chapters/tutorial.xml +++ phpdoc-pl/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- EN-Revision: 1.29 Maintainer: coder Status: ready --> <!-- $Revision: 1.1 $ --> <chapter id="tutorial"> <title>Ma³y przewodnik</title> <para> W tym ma³ym przewodniku chcieliby¶my przybli¿yæ ci podstawy PHP. Rozdzia³ ten opisuje tylko tworzenie dynamicznych stron internetowych, ale PHP ma tak¿e inne zastosowania. Wiêcej informacji znajdziesz w rozdziale <link linkend="intro-whatcando">Co potrafi PHP</link>. </para> <para> Strony zawieraj±ce skrypty PHP nie ró¿ni± siê zbytnio od zwyk³ych dokumentów HTML, co oznacza, ¿e w ten sam sposób mo¿esz je tworzyæ i modyfikowaæ. </para> <sect1 id="tutorial.requirements"> <title>Czego potrzebujesz?</title> <para> Zak³adamy, ¿e twój serwer ma w³±czon± obs³ugê PHP i wszystkie pliki o rozszerzeniu <filename>.php</filename> s± przetwarzane przez interpreter PHP. Na wielu serwerach jest to domy¶lne rozszerzenie dla skryptów, ale mimo wszystko warto zasiêgn±æ informacji u administratora. Je¿eli twój serwer obs³uguje PHP, nie musisz wykonywaæ ¿adnych dodatkowych czynno¶ci. Po prostu twórz swoje pliki <filename>.php</flename> i umieszczaj je w dowolnych katalogach na serwerze. Nie musisz nic kompilowaæ ani instalowaæ ¿adnych dodatkowych narzêdzi. Pomy¶l o skryptach PHP jak o zwyczajnych dokumentach HTML wykorzystuj±cych ca³± gamê nowych znaczników, które daj± ci praktycznie nieograniczone mo¿liwo¶ci. Wiêkszo¶æ komercyjnych i czê¶æ niekomercyjnych serwerów WWW obs³uguje skrypty PHP, jednak je¶li twój serwer do tej grupy nie nale¿y, mo¿esz poszukaæ odpowiedniej oferty w jednym z kilku katalogów, których adresy znajdziesz w sekcji <ulink url="&url.php.links;">linki</ulink>. </para> <para> Powiedzmy, ¿e chcesz budowaæ i uruchamiaæ swoje skrypty na w³asnym komputerze. W tym wypadku, bêdzisz musia³ zainstalowaæ serwer WWW np. <link linkend="install.apache">Apache</link> i oczywi¶cie <ulink url="&url.php.downloads;">PHP</ulink>. Najprawdopodobniej bêdziesz chcia³ tak¿e umo¿liwiæ skryptom dostêp do bazy danych, takiej jak <ulink url="&url.mysql.docs;">MySQL</ulink>. Elementy te mo¿esz zainstalowaæ odzielnie lub w ³atwiejszy sposób, korzystaj±c z <ulink url="&url.installkits;">pakietu</ulink>, który zarówno zainstaluje jak i skonfiguruje wszystkie sk³adniki. Instalacja serwera WWW z obs³ug± PHP nie nie jest trudna zarówno w systemach Linux jak i Windows. Je¶li u¿ywasz systemu Linux, mo¿esz skorzystaæ z wyszukiwarki <ulink url="&url.rpmfind;">rpmfind</ulink> w celu odnalezienia wymaganych pakietów RPM. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Twój pierwszy skrypt PHP</title> <para> Utwórz w g³ównym katalogu serwera (<varname>DOCUMENT_ROOT</varname>) plik o nazwie <filename>hello.php</filename> i nastêpuj±cej tre¶ci: </para> <para> <example> <title>Twój pierwszy skrypt PHP: <filename>hello.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>Test PHP</title> </head> <body> <?php echo "<p>Witaj ¦wiecie !</p>"; ?> </body> </html> ]]> </programlisting> <simpara> Teraz korzystaj±c z przegl±darki internetowej otwórz wcze¶niej utworzony plik, podaj±c jego pe³ny adres URL (np. <literal>http://twoj.serwer.pl/hello.php</literal>). Je¿eli testujesz swój skrypt lokalnie, jego adres URL to, zale¿nie od konfiguracji serwera, <literal>http://localhost/hello.php</literal> lub <literal>http://127.0.0.1/hello.php</literal>. Zwróæ uwagê na dyrektywy <varname>DocumentRoot</varname> i <varname>ServerName</varname> w pliku konfiguracyjnym twojego serwera (dla serwera Apache jest to plik &httpd.conf;). Je¶li wszystko jest poprawnie skonfigurowane, interpreter PHP przetworzy plik i wy¶le do przegl±darki nastêpuj±ce dane: </simpara> <para> <screen role="html"> <![CDATA[ <html> <head> <title>Test PHP</title> </head> <body> <p>Witaj ¦wiecie !</p> </body> </html> ]]> </screen> </para> </example> </para> <para> Zauwa¿ jak bardzo to siê ró¿ni od skryptów CGI. Plik nie musi byæ kompilowany ani poddawany jakimkolwiek innym przetworzeniom. </para> <para> To chyba najprostszy program, jaki mo¿na sobie wyobraziæ i chyba naprawdê nigdy nie bêdziesz musia³ u¿ywaæ PHP do tworzenia stron takich jak ta. Ca³e jego zadanie polega na wy¶wietleniu zdania: <literal>Witaj ¦wiecie !</literal> przy u¿yciu wbudowanej w PHP instrukcji <function>echo</function>. </para> <para> Je¿eli po wypróbowaniu tego przyk³adu w przegl±darce pojawi³a siê pusta strona, otworzy³o siê okno z pytaniem o zapisanie pliku lub te¿ wy¶wietli³a siê ca³a zawarto¶æ <filename>hello.php</filename>, bardzo mo¿liwe, ¿e serwer ma wy³±czon± obs³ugê PHP (lub te¿ nie ma jej wcale). W takim wypadku popro¶ administratora o jej aktywowanie przy pomocy wskazówek z rozdzia³u <link linkend="installation">Instalacja</link>. Je¶li tworzysz skrypty lokalnie, równie¿ powiniene¶ zapoznaæ siê z tre¶ci± tego rozdzia³u, aby upewniæ siê czy wszystko jest poprawnie skonfigurowane. Gdy problem mimo wszystko w dalszym ci±gu siê powtarza, skorzystaj z informacji zawartych na stronie <ulink url="&url.php.support;">Pomocy technicznej PHP</ulink>. </para> <para> G³ównym celem tego przyk³adu by³o pokazanie specyficznej sk³adni PHP. Najpierw u¿yli¶my znacznika <literal><?php</literal>, aby poinformowaæ interpreter, ¿e w tym miejscu rozpoczyna siê kod PHP. Nastêpnie wprowadzili¶my instrukcjê wy¶wietlaj±c± napis <literal>Witaj ¦wiecie !</literal> i zakoñczyli¶my skrypt znacznikiem <literal>?></literal>. W ten w³a¶nie sposób mo¿esz mieszaæ kod PHP ze znacznikami HTML. Wiêcej informacji o sk³adni PHP znajdziesz w rozdziale <link linkend="language.basic-syntax">Podstawowa sk³adnia</link>. </para> <note> <title>Edytory tekstowe</title> <para> Istnieje wiele tekstowych edytorów i zintegrowanych ¶rodowisk programistycznych (IDE), których mo¿esz u¿yæ do tworzenia, modyfikowania i zarz±dzania skryptami PHP. Obszerna lista takich programów znajduje siê na stronie <ulink url="&url.phpeditorlist;">&url.phpeditorlist;</ulink>. Je¿eli chcia³by¶ poleciæ innym jaki¶ edytor, zajrzyj na powy¿sz± stronê i popro¶ jej w³a¶ciciela o dodanie programu do spisu. </para> </note> <note> <title>Procesory tekstu</title> <para> Programy takie jak StarOffice Writer, Microsoft Word i Abiword nie nadaj± siê zbytnio do pracy ze skryptami PHP. Je¿eli mimo to chcesz korzystaæ z której¶ z wymienionych aplikacji, musisz mieæ pewno¶æ, ¿e kod skrypu zapisywany jest jako zwyk³y tekst. W przeciwnym wypadku PHP nie bêdzie w stanie przetworzyæ pliku. </para> </note> <note> <title>Notatnik Windows</title> <para> Je¶li piszesz skrypty w Windowsowym Notatniku, sprawdzaj czy pliki zapisywane s± z rozszerzeniem .php (Notatnik domy¶lnie zapisuje wszystkie pliki dodaj±c rozszerzenie .txt). Kiedy zapisujesz plik i program wy¶wietla okno dialogowe z pytaniem o nazwê pliku, umie¶æ tê nazwê w cudzys³owie (np. "<filename>hello.php</filename>"). Drugim sposobem jest wybranie z rozwijanej listy 'Zapisz jako typ' w tym samym oknie opcji 'Wszystkie pliki' (zamiast ustawionej domy¶lnie 'Dokumenty tekstowe (*.txt)'). Teraz mo¿esz podaæ nazwê pliku bez cudzys³owów. </para> </note> <para> Teraz kiedy napisa³e¶ ju¿ pierwszy dzia³aj±cy program, czas stworzyæ chyba najbardziej znany skrypt PHP! Stwórz nowy plik, umie¶æ w nim znaczniki PHP i wywo³aj funkcjê <function>phpinfo</function>. Po uruchomienia skryptu, ujrzysz w swojej przegl±darce d³ug± stronê zawieraj±c± wiele przydatnych informacji o twoim systemie operacyjnym i ustawieniach takich jak <link linkend="language.variables.predefined">zmienne predefiniowane</link>, za³adowane modu³y PHP, i opcje <link linkend="configuration">konfiguracji</link>. Po¶wiêæ trochê czasu na przejrzenie tych informacji. </para> </sect1> <sect1 id="tutorial.useful"> <title>Co¶ u¿ytecznego</title> <para> Zabierzmy siê teraz za co¶, co mo¿e siê nam do czego¶ przydaæ. Chcemy sprawdziæ w jakiej przegl±darce internetowej u¿ytkownik ogl±da nasz± stronê. W tym celu odczytamy nag³ówek User-Agent, który zosta³ przes³any w ¿±daniu HTTP przez przegl±darkê u¿ytkownika. Informacja ta znajduje siê w <link linkend="language.variables">zmiennej</link>. Nazwy zmiennych s± w PHP poprzedzone znakiem dolara "$". Zmienna, która nas interesuje, to <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> <note> <title>Zmienne superglobalne</title> <para> <link linkend="reserved.variables.server">$_SERVER</link> jest specjaln± zmienn± PHP, która zawiera informacje zwi±zane z serwerem i ¶rodowiskiem uruchomieniowym danego skryptu. Zmienna ta jest nazywana superglobaln± (b±d¼ autoglobaln±). Co to oznacza, dowiesz siê na stronie po¶wiêconej <link linkend="language.variables.predefined">zmiennym predefiniowanym</link>. Zmienne superglobalne wprowadzono w PHP w wersji <ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Przedtem wykorzystywane by³y tablice <varname>$HTTP_*_VARS</varname>, takie jak <varname>$HTTP_SERVER_VARS</varname>. Chocia¿ u¿ywanie ich nie jest zalecane, s± one w dalszym ci±gu dostêpne w PHP (przeczytaj tak¿e notatkê dotycz±c± u¿ywania <link linkend="tutorial.oldcode">starej sk³adni</link>). </para> </note> <para> Mo¿emy w ³atwy sposób wy¶wietliæ warto¶æ tej zmiennej: </para> <para> <example> <title>Wy¶wietlanie warto¶ci zmiennej (elementu tablicy)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> ]]> </programlisting> <para> Przyk³adowym wynikiem dzia³ania tego skryptu mo¿e byæ: <screen role="html"> Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) </screen> </para> </example> </para> <para> W PHP istnieje wiele <link linkend="language.types">typów</link> zmiennych. W powy¿szym przyk³adzie wy¶wietlili¶my warto¶æ elementu <link linkend="language.types.array">tablicy</link>. Tablice mog± mieæ wiele zastosowañ. </para> <para> <varname>$_SERVER</varname> jest tylko jedn± ze zmiennych, które zawsze s± dostêpne dla skryptów PHP. Lista wszystkich takich zmiennych znajduje siê w sekcji <link linkend="reserved.variables">Predefiniowane zmienne</link>, mo¿esz tak¿e wygenerowaæ j± przy pomocy prostego skryptu: </para> <para> <example> <title>Poka¿ wszystkie zmienne predefiniowane</title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> <para> Po wywo³aniu skryptu, ujrzysz w swojej przegl±darce stronê zawieraj±c± wiele informacji o PHP ³±cznie z kompletn± list± zmiennych predefiniowanych. </para> <para> Pomiêdzy znacznikami skryptu PHP mo¿esz umie¶ciæ wiele ró¿nych instrukcji, nie tylko <function>echo</function>. Przyk³adowo, je¶li chcesz sprawdziæ czy przegl±darka u¿ytkownika to Internet Explorer, mo¿esz napisaæ taki skrypt: </para> <para> <example> <title>Przyk³ad wykorzystania <link linkend="control-structures">struktur kontrolnych</link> i <link linkend="functions">funkcji</link></title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { echo 'U¿ywasz Internet Explorera<br />'; } ?> ]]> </programlisting> <para> Jak nietrudno siê domy¶liæ, skrypt mo¿e wy¶wietliæ: <screen role="html"> <![CDATA[ U¿ywasz Internet Explorera<br /> ]]> </screen> </para> </example> </para> <para> W powy¿szym przyk³adzie wprowadzili¶my kilka nowych rozwi±zañ. Przede wszystkim mamy tutaj instrukcjê <link linkend="control-structures.if">if</link>. Dla osób znaj±cych podstawow± sk³adniê jêzyka C powinna ona wygl±daæ znajomo. Je¶li nie rozumiesz do czego ta instrukcja s³u¿y, nie obejdzie siê bez lektury rozdzia³u <link linkend="langref">Opis jêzyka</link>. W pocz±tkowej fazie nauki jêzyka pomocne mog± byæ tak¿e ksi±¿ki opisuj±ce PHP od podstaw. Spis publikacji po¶wiêconych PHP znajduje siê pod adresem <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Nastêpnym nowym rozwi±zaniem jest wywo³anie funkcji <function>strpos</function>. <function>strpos</function> jest funkcj± wbudowan± w PHP, s³u¿y do wyszukiwania jednego ³añcucha znaków w drugim. W naszym przyk³adzie próbowali¶my odnale¼æ <literal>"MSIE"</literal> w zmiennej <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Je¿eli ci±g ten zosta³ odnaleziony, funkcja zwróci³a jego pozycjê w ³añcuchu <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Je¶li funkcja nie zwróci³a warto¶ci &false;, wykonywany by³ kod umieszczony wewn±trz nawiasów klamrowych instrukcji <link linkend="control-structures.if">if</link>. W przeciwnym wypadku, gdy <function>strpos</function> zwróci³a warto¶æ &false;, kod by³ pomijany. Spróbuj napisaæ kilka podobnych przyk³adów z wykorzystaniem instrukcji <link linkend="control-structures.if">if</link>, <link linkend="control-structures.else">else</link> oraz funkcji takich jak <function>strtoupper</function> lub <function>strlen</function>. Ka¿da ze stron opisuj±cych te metody zawiera tak¿e przyk³ady, które pomog± ci zrozumieæ ich dzia³anie. Je¿eli nie jeste¶ pewny jak u¿ywaæ funkcji, zajrzyj na stronê wyja¶niaj±c± <link linkend="about.prototypes">jak czytaæ opisy funkcji</link> i do rozdzia³u <link linkend="functions">Funkcje</link>. </para> <para> Przejd¼my teraz krok dalej i zobaczmy w jaki sposób mo¿emy przeplataæ kod HTML instrukcjami jêzyka PHP: </para> <para> <example> <title>Mieszanie HTML z PHP</title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { ?> <h3>Funkcja strpos zwróci³a warto¶æ inn± ni¿ &false;</h3> <center><b>U¿ywasz Internet Explorera</b></center> <?php } else { ?> <h3>Funkcja strpos zwróci³a warto¶æ false</h3> <center><b>Nie u¿ywasz Internet Explorera</b></center> <?php } ?> ]]> </programlisting> <para> Wynikiem dzia³ania tego skryptu mo¿e byæ: <screen role="html"> <![CDATA[ <h3>Funkcja strpos zwróci³a warto¶æ true</h3> <center><b>U¿ywasz Internet Explorera</b></center> ]]> </screen> </para> </example> </para> <para> Tym razem zamiast instrukcji <function>echo</function> skorzystali¶my z innej mo¿liwo¶ci - wymieszali¶my ze sob± kod HTML i PHP. W tym miejscu warto zaznaczyæ, ¿e skrypt mimo du¿ych zmian w zastosowanej sk³adni, nadal dzia³a tak samo. W zale¿no¶ci od tego, co zwróci funkcja <function>strpos</function>, wy¶wietlony zostanie tylko jeden blok kodu HTML. Innymi s³owy, wszystko zale¿y od tego, czy ci±g <literal>MSIE</literal> zostanie odnaleziony w ³añcuchu <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> </sect1> <sect1 id="tutorial.forms"> <title>PHP i formularze</title> <para> Obs³uga formularzy HTML to jedno z podstawowych zadañ skryptów PHP. Najpro¶ciej mówi±c, warto¶ci wszystkich elementów formularza (pól tekstowych, pól checkbox i radio, list rozwijanych itp.) s± automatycznie udostêpniane skryptom PHP. Przyk³ady i informacje na ten temat znajdziesz w sekcji <link linkend="language.variables.external">Zmienne spoza PHP</link>. Oto przyk³adowy formularz HTML: </para> <para> <example> <title>Prosty formularz HTML</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="post"> Twoje imiê: <input type="text" name="imie" /> Data urodzenia: <input type="text" name="rok" /> <input type="submit" /> </form> ]]> </programlisting> </example> </para> <para> Nie ma tu nic niezwyk³ego. To po prostu zwyczajny formularz zbudowany ze standardowych znaczników jêzyka HTML. Gdy u¿ytkownik wype³ni pola tekstowe i kliknie przycisk, informacje zostan± przes³ane do skryptu <filename>action.php</filename>. W tym pliku móg³by¶ umie¶ciæ co¶ takiego: </para> <para> <example> <title>Wy¶wietlanie danych z formularza</title> <programlisting role="php"> <![CDATA[ Cze¶æ <?php echo $_POST['imie']; ?>. Urodzi³e¶ siê w <?php echo $_POST['rok']; ?> roku. ]]> </programlisting> <para> Wynikiem wykonania takiego skryptu mo¿e byæ: </para> <screen role="html"> <![CDATA[ Cze¶æ Zenek. Urodzi³e¶ siê w 1980 roku. ]]> </screen> </example> </para> <para> Chyba nie trzeba t³umaczyæ do czego s³u¿y powy¿szy skrypt. Zmienne <varname>$_POST['imie']</varname> i <varname>$_POST['rok']</varname> s± automatycznie ustawiane po przes³aniu formularza przez u¿ytkownika. Wcze¶niej u¿yli¶my zmiennej superglobalnej <varname>$_SERVER</varname>; teraz poznali¶my zmienn± <link linkend="reserved.variables.post">$_POST</link> (równie¿ superglobaln±), która przechowuje wszystkie dane wys³ane w formularzu. Zauwa¿, ¿e nasz formularz przekazywany jest metod± POST (parametr <emphasis>method</emphasis>). Je¶li wybraliby¶my metodê <emphasis>GET</emphasis>, wszystkie dane znajdowa³y siê w zmiennej superglobalnej <link linkend="reserved.variables.get">$_GET</link>. Ostatecznie mo¿esz równie¿ skorzystaæ ze zmiennej <link linkend="reserved.variables.request">$_REQUEST</link>, je¶li nie interesuje ciê to, sk±d pochodz± przes³ane dane. Zmienna ta zawiera wszystkie informacje niezale¿nie od tego czy zosta³y one przekazane metod± GET, POST czy te¿ w ciasteczku (cookie). Przyjrzyj siê te¿ funkcji <function>import_request_variables</function>. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>U¿ywanie starej sk³adni w nowych wersjach PHP</title> <para> Odk±d PHP sta³o siê popularnym jêzykiem skryptowym, istniej± du¿e archiwa darmowych skryptów, które mo¿na czêsto bez ¿adnych ograniczeñ wykorzystywaæ na swoich stronach WWW. Twórcy PHP postarali siê, aby uruchamianie starszych skryptów by³o mo¿liwe we wszystkich nowszych wersjach ¶rodowiska. Czasami jednak, aby uruchomiæ taki program, trzeba bêdzie dokonaæ w nim pewnych zmian. </para> <para> Dwie najistotniejsze zmiany w stosunku do starszych wersji PHP to: <itemizedlist> <listitem> <simpara> Zast±pienie zmiennych <varname>$HTTP_*_VARS</varname> (które wewn±trz funkcji musz± byæ importowane tak jak zmienne globalne) <link linkend="language.variables.superglobals">tablicami superglobalnymi</link> w wersji <ulink url="&url.php.release4.1.0;">4.1.0</ulink> ¶rodowiska PHP. Oto one: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_FILES</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> i <varname>$_SESSION</varname>. Wykorzystywane wcze¶niej tablice <varname>$HTTP_*_VARS</varname>, takie jak np. <varname>$HTTP_POST_VARS</varname>, nadal s± dostêpne dla skryptów. &avail.register-long-arrays; </simpara> </listitem> <listitem> <simpara> Zmienne pochodz±ce "z zewn±trz" nie s± ju¿ domy¶lnie rejestrowane jako zwyczajne zmienne skryptu. Inaczej mówi±c, od wersji <ulink url="&url.php.release4.2.0;">4.2.0</ulink> dyrektywa konfiguracyjna <link linkend="ini.register-globals">register_globals</link> w pliku &php.ini; domy¶lnie przyjmuje warto¶æ <emphasis>off</emphasis>. Zalecana metoda odwo³ywania siê do zmiennych "z zewn±trz" polega na zastosowaniu opisanych wy¿ej tablic superglobalnych. W starszych skryptach, ksi±¿kach i kursach mo¿esz siê spotkaæ ze star± sk³adni±, która jest niestety mniej bezpieczna. Korzystaj±c ze zmiennych superglobalnych masz pewno¶æ, ¿e dane przes³ane metod± GET znajd± siê w tablicy <varname>$_GET</varname>, metod± POST w <varname>$_POST</varname> itd. </simpara> </listitem> </itemizedlist> Wiêcej informacji na ten temat znajdziesz w sekcji <link linkend="language.variables.predefined">Zmienne predefiniowane</link> i na stronach pokrewnych. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Co dalej?</title> <para> Z ju¿ nabyt± wiedz± nie powiniene¶ mieæ problemów ze zrozumieniem kolejnych rozdzia³ów podrêcznika i zawartych w nich przyk³adowych skryptów. Przyk³ady mo¿esz znale¼æ równie¿ na innych stronach po¶wiêconych PHP: <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> <para> Je¶li chcesz obejrzeæ rozmaite prezentacje na temat PHP i jego zastosowañ, zajrzyj na strony: <ulink url="&url.php.conf;"> &url.php.conf;</ulink> i <ulink url="&url.php.talks;">&url.php.talks; </ulink> </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->
http://cvs.php.net/co.php/phpdoc-pl/chapters/tutorial.xml?r=1.1&p=1 Index: phpdoc-pl/chapters/tutorial.xml +++ phpdoc-pl/chapters/tutorial.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- EN-Revision: 1.29 Maintainer: coder Status: ready --> <!-- $Revision: 1.1 $ --> <chapter id="tutorial"> <title>Ma³y przewodnik</title> <para> W tym ma³ym przewodniku chcieliby¶my przybli¿yæ ci podstawy PHP. Rozdzia³ ten opisuje tylko tworzenie dynamicznych stron internetowych, ale PHP ma tak¿e inne zastosowania. Wiêcej informacji znajdziesz w rozdziale <link linkend="intro-whatcando">Co potrafi PHP</link>. </para> <para> Strony zawieraj±ce skrypty PHP nie ró¿ni± siê zbytnio od zwyk³ych dokumentów HTML, co oznacza, ¿e w ten sam sposób mo¿esz je tworzyæ i modyfikowaæ. </para> <sect1 id="tutorial.requirements"> <title>Czego potrzebujesz?</title> <para> Zak³adamy, ¿e twój serwer ma w³±czon± obs³ugê PHP i wszystkie pliki o rozszerzeniu <filename>.php</filename> s± przetwarzane przez interpreter PHP. Na wielu serwerach jest to domy¶lne rozszerzenie dla skryptów, ale mimo wszystko warto zasiêgn±æ informacji u administratora. Je¿eli twój serwer obs³uguje PHP, nie musisz wykonywaæ ¿adnych dodatkowych czynno¶ci. Po prostu twórz swoje pliki <filename>.php</flename> i umieszczaj je w dowolnych katalogach na serwerze. Nie musisz nic kompilowaæ ani instalowaæ ¿adnych dodatkowych narzêdzi. Pomy¶l o skryptach PHP jak o zwyczajnych dokumentach HTML wykorzystuj±cych ca³± gamê nowych znaczników, które daj± ci praktycznie nieograniczone mo¿liwo¶ci. Wiêkszo¶æ komercyjnych i czê¶æ niekomercyjnych serwerów WWW obs³uguje skrypty PHP, jednak je¶li twój serwer do tej grupy nie nale¿y, mo¿esz poszukaæ odpowiedniej oferty w jednym z kilku katalogów, których adresy znajdziesz w sekcji <ulink url="&url.php.links;">linki</ulink>. </para> <para> Powiedzmy, ¿e chcesz budowaæ i uruchamiaæ swoje skrypty na w³asnym komputerze. W tym wypadku, bêdzisz musia³ zainstalowaæ serwer WWW np. <link linkend="install.apache">Apache</link> i oczywi¶cie <ulink url="&url.php.downloads;">PHP</ulink>. Najprawdopodobniej bêdziesz chcia³ tak¿e umo¿liwiæ skryptom dostêp do bazy danych, takiej jak <ulink url="&url.mysql.docs;">MySQL</ulink>. Elementy te mo¿esz zainstalowaæ odzielnie lub w ³atwiejszy sposób, korzystaj±c z <ulink url="&url.installkits;">pakietu</ulink>, który zarówno zainstaluje jak i skonfiguruje wszystkie sk³adniki. Instalacja serwera WWW z obs³ug± PHP nie nie jest trudna zarówno w systemach Linux jak i Windows. Je¶li u¿ywasz systemu Linux, mo¿esz skorzystaæ z wyszukiwarki <ulink url="&url.rpmfind;">rpmfind</ulink> w celu odnalezienia wymaganych pakietów RPM. </para> </sect1> <sect1 id="tutorial.firstpage"> <title>Twój pierwszy skrypt PHP</title> <para> Utwórz w g³ównym katalogu serwera (<varname>DOCUMENT_ROOT</varname>) plik o nazwie <filename>hello.php</filename> i nastêpuj±cej tre¶ci: </para> <para> <example> <title>Twój pierwszy skrypt PHP: <filename>hello.php</filename></title> <programlisting role="php"> <![CDATA[ <html> <head> <title>Test PHP</title> </head> <body> <?php echo "<p>Witaj ¦wiecie !</p>"; ?> </body> </html> ]]> </programlisting> <simpara> Teraz korzystaj±c z przegl±darki internetowej otwórz wcze¶niej utworzony plik, podaj±c jego pe³ny adres URL (np. <literal>http://twoj.serwer.pl/hello.php</literal>). Je¿eli testujesz swój skrypt lokalnie, jego adres URL to, zale¿nie od konfiguracji serwera, <literal>http://localhost/hello.php</literal> lub <literal>http://127.0.0.1/hello.php</literal>. Zwróæ uwagê na dyrektywy <varname>DocumentRoot</varname> i <varname>ServerName</varname> w pliku konfiguracyjnym twojego serwera (dla serwera Apache jest to plik &httpd.conf;). Je¶li wszystko jest poprawnie skonfigurowane, interpreter PHP przetworzy plik i wy¶le do przegl±darki nastêpuj±ce dane: </simpara> <para> <screen role="html"> <![CDATA[ <html> <head> <title>Test PHP</title> </head> <body> <p>Witaj ¦wiecie !</p> </body> </html> ]]> </screen> </para> </example> </para> <para> Zauwa¿ jak bardzo to siê ró¿ni od skryptów CGI. Plik nie musi byæ kompilowany ani poddawany jakimkolwiek innym przetworzeniom. </para> <para> To chyba najprostszy program, jaki mo¿na sobie wyobraziæ i chyba naprawdê nigdy nie bêdziesz musia³ u¿ywaæ PHP do tworzenia stron takich jak ta. Ca³e jego zadanie polega na wy¶wietleniu zdania: <literal>Witaj ¦wiecie !</literal> przy u¿yciu wbudowanej w PHP instrukcji <function>echo</function>. </para> <para> Je¿eli po wypróbowaniu tego przyk³adu w przegl±darce pojawi³a siê pusta strona, otworzy³o siê okno z pytaniem o zapisanie pliku lub te¿ wy¶wietli³a siê ca³a zawarto¶æ <filename>hello.php</filename>, bardzo mo¿liwe, ¿e serwer ma wy³±czon± obs³ugê PHP (lub te¿ nie ma jej wcale). W takim wypadku popro¶ administratora o jej aktywowanie przy pomocy wskazówek z rozdzia³u <link linkend="installation">Instalacja</link>. Je¶li tworzysz skrypty lokalnie, równie¿ powiniene¶ zapoznaæ siê z tre¶ci± tego rozdzia³u, aby upewniæ siê czy wszystko jest poprawnie skonfigurowane. Gdy problem mimo wszystko w dalszym ci±gu siê powtarza, skorzystaj z informacji zawartych na stronie <ulink url="&url.php.support;">Pomocy technicznej PHP</ulink>. </para> <para> G³ównym celem tego przyk³adu by³o pokazanie specyficznej sk³adni PHP. Najpierw u¿yli¶my znacznika <literal><?php</literal>, aby poinformowaæ interpreter, ¿e w tym miejscu rozpoczyna siê kod PHP. Nastêpnie wprowadzili¶my instrukcjê wy¶wietlaj±c± napis <literal>Witaj ¦wiecie !</literal> i zakoñczyli¶my skrypt znacznikiem <literal>?></literal>. W ten w³a¶nie sposób mo¿esz mieszaæ kod PHP ze znacznikami HTML. Wiêcej informacji o sk³adni PHP znajdziesz w rozdziale <link linkend="language.basic-syntax">Podstawowa sk³adnia</link>. </para> <note> <title>Edytory tekstowe</title> <para> Istnieje wiele tekstowych edytorów i zintegrowanych ¶rodowisk programistycznych (IDE), których mo¿esz u¿yæ do tworzenia, modyfikowania i zarz±dzania skryptami PHP. Obszerna lista takich programów znajduje siê na stronie <ulink url="&url.phpeditorlist;">&url.phpeditorlist;</ulink>. Je¿eli chcia³by¶ poleciæ innym jaki¶ edytor, zajrzyj na powy¿sz± stronê i popro¶ jej w³a¶ciciela o dodanie programu do spisu. </para> </note> <note> <title>Procesory tekstu</title> <para> Programy takie jak StarOffice Writer, Microsoft Word i Abiword nie nadaj± siê zbytnio do pracy ze skryptami PHP. Je¿eli mimo to chcesz korzystaæ z której¶ z wymienionych aplikacji, musisz mieæ pewno¶æ, ¿e kod skrypu zapisywany jest jako zwyk³y tekst. W przeciwnym wypadku PHP nie bêdzie w stanie przetworzyæ pliku. </para> </note> <note> <title>Notatnik Windows</title> <para> Je¶li piszesz skrypty w Windowsowym Notatniku, sprawdzaj czy pliki zapisywane s± z rozszerzeniem .php (Notatnik domy¶lnie zapisuje wszystkie pliki dodaj±c rozszerzenie .txt). Kiedy zapisujesz plik i program wy¶wietla okno dialogowe z pytaniem o nazwê pliku, umie¶æ tê nazwê w cudzys³owie (np. "<filename>hello.php</filename>"). Drugim sposobem jest wybranie z rozwijanej listy 'Zapisz jako typ' w tym samym oknie opcji 'Wszystkie pliki' (zamiast ustawionej domy¶lnie 'Dokumenty tekstowe (*.txt)'). Teraz mo¿esz podaæ nazwê pliku bez cudzys³owów. </para> </note> <para> Teraz kiedy napisa³e¶ ju¿ pierwszy dzia³aj±cy program, czas stworzyæ chyba najbardziej znany skrypt PHP! Stwórz nowy plik, umie¶æ w nim znaczniki PHP i wywo³aj funkcjê <function>phpinfo</function>. Po uruchomienia skryptu, ujrzysz w swojej przegl±darce d³ug± stronê zawieraj±c± wiele przydatnych informacji o twoim systemie operacyjnym i ustawieniach takich jak <link linkend="language.variables.predefined">zmienne predefiniowane</link>, za³adowane modu³y PHP, i opcje <link linkend="configuration">konfiguracji</link>. Po¶wiêæ trochê czasu na przejrzenie tych informacji. </para> </sect1> <sect1 id="tutorial.useful"> <title>Co¶ u¿ytecznego</title> <para> Zabierzmy siê teraz za co¶, co mo¿e siê nam do czego¶ przydaæ. Chcemy sprawdziæ w jakiej przegl±darce internetowej u¿ytkownik ogl±da nasz± stronê. W tym celu odczytamy nag³ówek User-Agent, który zosta³ przes³any w ¿±daniu HTTP przez przegl±darkê u¿ytkownika. Informacja ta znajduje siê w <link linkend="language.variables">zmiennej</link>. Nazwy zmiennych s± w PHP poprzedzone znakiem dolara "$". Zmienna, która nas interesuje, to <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> <note> <title>Zmienne superglobalne</title> <para> <link linkend="reserved.variables.server">$_SERVER</link> jest specjaln± zmienn± PHP, która zawiera informacje zwi±zane z serwerem i ¶rodowiskiem uruchomieniowym danego skryptu. Zmienna ta jest nazywana superglobaln± (b±d¼ autoglobaln±). Co to oznacza, dowiesz siê na stronie po¶wiêconej <link linkend="language.variables.predefined">zmiennym predefiniowanym</link>. Zmienne superglobalne wprowadzono w PHP w wersji <ulink url="&url.php.release4.1.0;">4.1.0</ulink>. Przedtem wykorzystywane by³y tablice <varname>$HTTP_*_VARS</varname>, takie jak <varname>$HTTP_SERVER_VARS</varname>. Chocia¿ u¿ywanie ich nie jest zalecane, s± one w dalszym ci±gu dostêpne w PHP (przeczytaj tak¿e notatkê dotycz±c± u¿ywania <link linkend="tutorial.oldcode">starej sk³adni</link>). </para> </note> <para> Mo¿emy w ³atwy sposób wy¶wietliæ warto¶æ tej zmiennej: </para> <para> <example> <title>Wy¶wietlanie warto¶ci zmiennej (elementu tablicy)</title> <programlisting role="php"> <![CDATA[ <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> ]]> </programlisting> <para> Przyk³adowym wynikiem dzia³ania tego skryptu mo¿e byæ: <screen role="html"> Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) </screen> </para> </example> </para> <para> W PHP istnieje wiele <link linkend="language.types">typów</link> zmiennych. W powy¿szym przyk³adzie wy¶wietlili¶my warto¶æ elementu <link linkend="language.types.array">tablicy</link>. Tablice mog± mieæ wiele zastosowañ. </para> <para> <varname>$_SERVER</varname> jest tylko jedn± ze zmiennych, które zawsze s± dostêpne dla skryptów PHP. Lista wszystkich takich zmiennych znajduje siê w sekcji <link linkend="reserved.variables">Predefiniowane zmienne</link>, mo¿esz tak¿e wygenerowaæ j± przy pomocy prostego skryptu: </para> <para> <example> <title>Poka¿ wszystkie zmienne predefiniowane</title> <programlisting role="php"> <![CDATA[ <?php phpinfo(); ?> ]]> </programlisting> </example> </para> <para> Po wywo³aniu skryptu, ujrzysz w swojej przegl±darce stronê zawieraj±c± wiele informacji o PHP ³±cznie z kompletn± list± zmiennych predefiniowanych. </para> <para> Pomiêdzy znacznikami skryptu PHP mo¿esz umie¶ciæ wiele ró¿nych instrukcji, nie tylko <function>echo</function>. Przyk³adowo, je¶li chcesz sprawdziæ czy przegl±darka u¿ytkownika to Internet Explorer, mo¿esz napisaæ taki skrypt: </para> <para> <example> <title>Przyk³ad wykorzystania <link linkend="control-structures">struktur kontrolnych</link> i <link linkend="functions">funkcji</link></title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { echo 'U¿ywasz Internet Explorera<br />'; } ?> ]]> </programlisting> <para> Jak nietrudno siê domy¶liæ, skrypt mo¿e wy¶wietliæ: <screen role="html"> <![CDATA[ U¿ywasz Internet Explorera<br /> ]]> </screen> </para> </example> </para> <para> W powy¿szym przyk³adzie wprowadzili¶my kilka nowych rozwi±zañ. Przede wszystkim mamy tutaj instrukcjê <link linkend="control-structures.if">if</link>. Dla osób znaj±cych podstawow± sk³adniê jêzyka C powinna ona wygl±daæ znajomo. Je¶li nie rozumiesz do czego ta instrukcja s³u¿y, nie obejdzie siê bez lektury rozdzia³u <link linkend="langref">Opis jêzyka</link>. W pocz±tkowej fazie nauki jêzyka pomocne mog± byæ tak¿e ksi±¿ki opisuj±ce PHP od podstaw. Spis publikacji po¶wiêconych PHP znajduje siê pod adresem <ulink url="&url.php.books;">&url.php.books;</ulink>. </para> <para> Nastêpnym nowym rozwi±zaniem jest wywo³anie funkcji <function>strpos</function>. <function>strpos</function> jest funkcj± wbudowan± w PHP, s³u¿y do wyszukiwania jednego ³añcucha znaków w drugim. W naszym przyk³adzie próbowali¶my odnale¼æ <literal>"MSIE"</literal> w zmiennej <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Je¿eli ci±g ten zosta³ odnaleziony, funkcja zwróci³a jego pozycjê w ³añcuchu <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. Je¶li funkcja nie zwróci³a warto¶ci &false;, wykonywany by³ kod umieszczony wewn±trz nawiasów klamrowych instrukcji <link linkend="control-structures.if">if</link>. W przeciwnym wypadku, gdy <function>strpos</function> zwróci³a warto¶æ &false;, kod by³ pomijany. Spróbuj napisaæ kilka podobnych przyk³adów z wykorzystaniem instrukcji <link linkend="control-structures.if">if</link>, <link linkend="control-structures.else">else</link> oraz funkcji takich jak <function>strtoupper</function> lub <function>strlen</function>. Ka¿da ze stron opisuj±cych te metody zawiera tak¿e przyk³ady, które pomog± ci zrozumieæ ich dzia³anie. Je¿eli nie jeste¶ pewny jak u¿ywaæ funkcji, zajrzyj na stronê wyja¶niaj±c± <link linkend="about.prototypes">jak czytaæ opisy funkcji</link> i do rozdzia³u <link linkend="functions">Funkcje</link>. </para> <para> Przejd¼my teraz krok dalej i zobaczmy w jaki sposób mo¿emy przeplataæ kod HTML instrukcjami jêzyka PHP: </para> <para> <example> <title>Mieszanie HTML z PHP</title> <programlisting role="php"> <![CDATA[ <?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { ?> <h3>Funkcja strpos zwróci³a warto¶æ inn± ni¿ &false;</h3> <center><b>U¿ywasz Internet Explorera</b></center> <?php } else { ?> <h3>Funkcja strpos zwróci³a warto¶æ false</h3> <center><b>Nie u¿ywasz Internet Explorera</b></center> <?php } ?> ]]> </programlisting> <para> Wynikiem dzia³ania tego skryptu mo¿e byæ: <screen role="html"> <![CDATA[ <h3>Funkcja strpos zwróci³a warto¶æ true</h3> <center><b>U¿ywasz Internet Explorera</b></center> ]]> </screen> </para> </example> </para> <para> Tym razem zamiast instrukcji <function>echo</function> skorzystali¶my z innej mo¿liwo¶ci - wymieszali¶my ze sob± kod HTML i PHP. W tym miejscu warto zaznaczyæ, ¿e skrypt mimo du¿ych zmian w zastosowanej sk³adni, nadal dzia³a tak samo. W zale¿no¶ci od tego, co zwróci funkcja <function>strpos</function>, wy¶wietlony zostanie tylko jeden blok kodu HTML. Innymi s³owy, wszystko zale¿y od tego, czy ci±g <literal>MSIE</literal> zostanie odnaleziony w ³añcuchu <varname>$_SERVER["HTTP_USER_AGENT"]</varname>. </para> </sect1> <sect1 id="tutorial.forms"> <title>PHP i formularze</title> <para> Obs³uga formularzy HTML to jedno z podstawowych zadañ skryptów PHP. Najpro¶ciej mówi±c, warto¶ci wszystkich elementów formularza (pól tekstowych, pól checkbox i radio, list rozwijanych itp.) s± automatycznie udostêpniane skryptom PHP. Przyk³ady i informacje na ten temat znajdziesz w sekcji <link linkend="language.variables.external">Zmienne spoza PHP</link>. Oto przyk³adowy formularz HTML: </para> <para> <example> <title>Prosty formularz HTML</title> <programlisting role="html"> <![CDATA[ <form action="action.php" method="post"> Twoje imiê: <input type="text" name="imie" /> Data urodzenia: <input type="text" name="rok" /> <input type="submit" /> </form> ]]> </programlisting> </example> </para> <para> Nie ma tu nic niezwyk³ego. To po prostu zwyczajny formularz zbudowany ze standardowych znaczników jêzyka HTML. Gdy u¿ytkownik wype³ni pola tekstowe i kliknie przycisk, informacje zostan± przes³ane do skryptu <filename>action.php</filename>. W tym pliku móg³by¶ umie¶ciæ co¶ takiego: </para> <para> <example> <title>Wy¶wietlanie danych z formularza</title> <programlisting role="php"> <![CDATA[ Cze¶æ <?php echo $_POST['imie']; ?>. Urodzi³e¶ siê w <?php echo $_POST['rok']; ?> roku. ]]> </programlisting> <para> Wynikiem wykonania takiego skryptu mo¿e byæ: </para> <screen role="html"> <![CDATA[ Cze¶æ Zenek. Urodzi³e¶ siê w 1980 roku. ]]> </screen> </example> </para> <para> Chyba nie trzeba t³umaczyæ do czego s³u¿y powy¿szy skrypt. Zmienne <varname>$_POST['imie']</varname> i <varname>$_POST['rok']</varname> s± automatycznie ustawiane po przes³aniu formularza przez u¿ytkownika. Wcze¶niej u¿yli¶my zmiennej superglobalnej <varname>$_SERVER</varname>; teraz poznali¶my zmienn± <link linkend="reserved.variables.post">$_POST</link> (równie¿ superglobaln±), która przechowuje wszystkie dane wys³ane w formularzu. Zauwa¿, ¿e nasz formularz przekazywany jest metod± POST (parametr <emphasis>method</emphasis>). Je¶li wybraliby¶my metodê <emphasis>GET</emphasis>, wszystkie dane znajdowa³y siê w zmiennej superglobalnej <link linkend="reserved.variables.get">$_GET</link>. Ostatecznie mo¿esz równie¿ skorzystaæ ze zmiennej <link linkend="reserved.variables.request">$_REQUEST</link>, je¶li nie interesuje ciê to, sk±d pochodz± przes³ane dane. Zmienna ta zawiera wszystkie informacje niezale¿nie od tego czy zosta³y one przekazane metod± GET, POST czy te¿ w ciasteczku (cookie). Przyjrzyj siê te¿ funkcji <function>import_request_variables</function>. </para> </sect1> <sect1 id="tutorial.oldcode"> <title>U¿ywanie starej sk³adni w nowych wersjach PHP</title> <para> Odk±d PHP sta³o siê popularnym jêzykiem skryptowym, istniej± du¿e archiwa darmowych skryptów, które mo¿na czêsto bez ¿adnych ograniczeñ wykorzystywaæ na swoich stronach WWW. Twórcy PHP postarali siê, aby uruchamianie starszych skryptów by³o mo¿liwe we wszystkich nowszych wersjach ¶rodowiska. Czasami jednak, aby uruchomiæ taki program, trzeba bêdzie dokonaæ w nim pewnych zmian. </para> <para> Dwie najistotniejsze zmiany w stosunku do starszych wersji PHP to: <itemizedlist> <listitem> <simpara> Zast±pienie zmiennych <varname>$HTTP_*_VARS</varname> (które wewn±trz funkcji musz± byæ importowane tak jak zmienne globalne) <link linkend="language.variables.superglobals">tablicami superglobalnymi</link> w wersji <ulink url="&url.php.release4.1.0;">4.1.0</ulink> ¶rodowiska PHP. Oto one: <varname>$_GET</varname>, <varname>$_POST</varname>, <varname>$_COOKIE</varname>, <varname>$_SERVER</varname>, <varname>$_FILES</varname>, <varname>$_ENV</varname>, <varname>$_REQUEST</varname> i <varname>$_SESSION</varname>. Wykorzystywane wcze¶niej tablice <varname>$HTTP_*_VARS</varname>, takie jak np. <varname>$HTTP_POST_VARS</varname>, nadal s± dostêpne dla skryptów. &avail.register-long-arrays; </simpara> </listitem> <listitem> <simpara> Zmienne pochodz±ce "z zewn±trz" nie s± ju¿ domy¶lnie rejestrowane jako zwyczajne zmienne skryptu. Inaczej mówi±c, od wersji <ulink url="&url.php.release4.2.0;">4.2.0</ulink> dyrektywa konfiguracyjna <link linkend="ini.register-globals">register_globals</link> w pliku &php.ini; domy¶lnie przyjmuje warto¶æ <emphasis>off</emphasis>. Zalecana metoda odwo³ywania siê do zmiennych "z zewn±trz" polega na zastosowaniu opisanych wy¿ej tablic superglobalnych. W starszych skryptach, ksi±¿kach i kursach mo¿esz siê spotkaæ ze star± sk³adni±, która jest niestety mniej bezpieczna. Korzystaj±c ze zmiennych superglobalnych masz pewno¶æ, ¿e dane przes³ane metod± GET znajd± siê w tablicy <varname>$_GET</varname>, metod± POST w <varname>$_POST</varname> itd. </simpara> </listitem> </itemizedlist> Wiêcej informacji na ten temat znajdziesz w sekcji <link linkend="language.variables.predefined">Zmienne predefiniowane</link> i na stronach pokrewnych. </para> </sect1> <sect1 id="tutorial.whatsnext"> <title>Co dalej?</title> <para> Z ju¿ nabyt± wiedz± nie powiniene¶ mieæ problemów ze zrozumieniem kolejnych rozdzia³ów podrêcznika i zawartych w nich przyk³adowych skryptów. Przyk³ady mo¿esz znale¼æ równie¿ na innych stronach po¶wiêconych PHP: <ulink url="&url.php.links;">&url.php.links;</ulink>. </para> <para> Je¶li chcesz obejrzeæ rozmaite prezentacje na temat PHP i jego zastosowañ, zajrzyj na strony: <ulink url="&url.php.conf;"> &url.php.conf;</ulink> i <ulink url="&url.php.talks;">&url.php.talks; </ulink> </para> </sect1> </chapter> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"../../manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->