1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP Web Development] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [To je CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> V tomto videu se budeme učit o použití PHP pro vývoj webových aplikací. 5 00:00:11,000 --> 00:00:14,000 PHP je skriptovací jazyk, který může být použit k provedení 6 00:00:14,000 --> 00:00:17,000 webové stránky na webovém serveru. 7 00:00:17,000 --> 00:00:21,000 Webový server je v podstatě stroj zaměřuje na poskytování obsahu 8 00:00:21,000 --> 00:00:24,000 které mohou být přístupné přes internet. 9 00:00:24,000 --> 00:00:30,000 Když přejdete na webovou stránku, jako je Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 kód v souboru s názvem home.php která žije na webovém serveru Facebook někde 11 00:00:35,000 --> 00:00:38,000 budou provedeny na tomto serveru. 12 00:00:38,000 --> 00:00:41,000 Tento kód bude pravděpodobně vytvářet nějaký výstup 13 00:00:41,000 --> 00:00:43,000 které se následně odeslané ze serveru 14 00:00:43,000 --> 00:00:45,000 se ve Vašem webovém prohlížeči. 15 00:00:45,000 --> 00:00:49,000 Budeme používat CS50 zařízení jako webový server. 16 00:00:49,000 --> 00:00:51,000 Váš přístroj pravděpodobně nebude zdaleka tak silný jako stroje 17 00:00:51,000 --> 00:00:57,000 v Facebook datovém centru, ale budete mít žádný problém používat jej pro vývoj webových aplikací. 18 00:00:57,000 --> 00:01:05,000 >> Když budeme navigovat na adresu URL jako http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 jsme se konfigurovat zařízení prostřednictvím aplikace zvané server Apache HTTP 20 00:01:10,000 --> 00:01:19,000 hledat soubor s názvem hello.php uvnitř home / jharvard / vhosts / localhosts / html ve výchozím nastavení. 21 00:01:19,000 --> 00:01:23,000 Pokud existuje tento soubor pak bude Apache používat interpret PHP 22 00:01:23,000 --> 00:01:27,000 spustit PHP kód v hello.php. 23 00:01:27,000 --> 00:01:31,000 Pokud tento soubor neexistuje, Apache se hodit nebyla nalezena chyba 24 00:01:31,000 --> 00:01:36,000 nebo 404 chyb, které jste pravděpodobně viděli při procházení webu. 25 00:01:36,000 --> 00:01:40,000 >> Pojďme se podívat na hello.php. 26 00:01:40,000 --> 00:01:45,000 Vidíme zde, že hello.php generuje signál řádek výstupu. 27 00:01:45,000 --> 00:01:51,000 Když jsme běželi hello.php na příkazovém řádku pomocí php hello.php 28 00:01:51,000 --> 00:01:54,000 že výstup byl vytištěn na terminálu. 29 00:01:54,000 --> 00:01:58,000 Teď, když jsme se přístup k tomuto souboru přes URL ve webovém prohlížeči 30 00:01:58,000 --> 00:02:01,000 jeho výstup bude zaslána na webovém prohlížeči, 31 00:02:01,000 --> 00:02:09,000 tak míří do URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 můžeme vidět výstup v našem webovém prohlížeči. 33 00:02:12,000 --> 00:02:17,000 >> Zkusme přidávat další printf naší hello world program. 34 00:02:17,000 --> 00:02:23,000 Dobře, pojďme se vrátit na webovém prohlížeči, a vidět to, co máme. 35 00:02:23,000 --> 00:02:25,000 Zajímavé. 36 00:02:25,000 --> 00:02:28,000 Spíše než tisk další řádek na samostatném řádku, jako byste viděli 37 00:02:28,000 --> 00:02:32,000 v terminálu, vypadá to, že dostal smushed na stejném řádku 38 00:02:32,000 --> 00:02:36,000 jako ostatní printf, tak možná nové linky nefungují v PHP. 39 00:02:36,000 --> 00:02:38,000 Ne tak docela. 40 00:02:38,000 --> 00:02:41,000 Pamatujte si, že HTML se obvykle používá k vytváření webových stránek 41 00:02:41,000 --> 00:02:44,000 které lze zobrazit pomocí webových prohlížečů. 42 00:02:44,000 --> 00:02:49,000 Nejen, že je řetězec ahoj z PHP není platný HTML, 43 00:02:49,000 --> 00:02:53,000 ale připomenout, že nemůžeme používat \ n znak v HTML 44 00:02:53,000 --> 00:02:55,000 vytvořit zalomení řádku. 45 00:02:55,000 --> 00:03:01,000 Místo toho, aby prostě výstupu výstupní řetězec Pojďme platný HTML. 46 00:03:01,000 --> 00:03:04,000 Při použití odstavce tagy každý z našich printf volání 47 00:03:04,000 --> 00:03:07,000 bude zobrazen na samostatném řádku, 48 00:03:07,000 --> 00:03:11,000 takže teď, když jsme se navštívit URL ukazující na valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 vidíme výstup, který jsme hledali. 51 00:03:19,000 --> 00:03:22,000 >> Teď, když se podíváme na zdrojový kód této stránky 52 00:03:22,000 --> 00:03:25,000 můžeme vidět, že jsme se při pohledu na platný HTML, 53 00:03:25,000 --> 00:03:28,000 který jsme vytvořili z PHP. 54 00:03:28,000 --> 00:03:31,000 Uvedení všech našich HTML uvnitř printf volání 55 00:03:31,000 --> 00:03:34,000 se samozřejmě dostane opravdu otravné. 56 00:03:34,000 --> 00:03:38,000 Naštěstí můžeme snadno míchat HTML a PHP 57 00:03:38,000 --> 00:03:41,000 ve stejném souboru. php. 58 00:03:41,000 --> 00:03:47,000 Pamatujte si, že všechny naše PHP kód musí být vložen do 00:03:49,000 a>. 60 00:03:49,000 --> 00:03:52,000 Cokoliv, co není uzavřen v těchto oddělovačů 61 00:03:52,000 --> 00:03:55,000 bude jednoduše odeslat jako výstup do prohlížeče 62 00:03:55,000 --> 00:03:57,000 spíše než být popraven. 63 00:03:57,000 --> 00:04:01,000 To znamená, že můžeme udělat něco takového. 64 00:04:01,000 --> 00:04:05,000 Můžeme jednoduše napsat HTML uvnitř našeho souboru. Php 65 00:04:05,000 --> 00:04:11,000 a pak vložit PHP bloky všude tam, kde bychom chtěli nějaký php kód, který bude vykonán. 66 00:04:11,000 --> 00:04:15,000 Zde se definovat několik proměnných v horní části souboru, 67 00:04:15,000 --> 00:04:19,000 a později jsme je vytisknout v naší HTML. 68 00:04:19,000 --> 00:04:27,000 Nyní, když jsme se navštívit tuto adresu URL, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 můžeme vidět naše hodnoceny PHP uvnitř našeho HTML. 70 00:04:33,000 --> 00:04:36,000 >> Nyní se pojďme podívat na to, jak můžeme předat data 71 00:04:36,000 --> 00:04:39,000 mezi našimi různými PHP stránek. 72 00:04:39,000 --> 00:04:51,000 Spíše než říkat 73 00:04:51,000 --> 00:04:58,000 můžeme jednoduše říci: 00:05:01,000 a>. 75 00:05:01,000 --> 00:05:03,000 Pojďme se nyní podívat na to, jak můžeme předat data 76 00:05:03,000 --> 00:05:06,000 mezi našimi různými PHP stránek. 77 00:05:06,000 --> 00:05:11,000 Jeden způsob, jak můžeme udělat, je zakódování informace do URL stránky. 78 00:05:11,000 --> 00:05:14,000 Při procházení webu, možná jste si všimli, že některé adresy URL 79 00:05:14,000 --> 00:05:20,000 obsahovat? následuje řetězec obsahující tyto znaky a rovnítka. 80 00:05:20,000 --> 00:05:23,000 Tato část URL je znám jako řetězec dotazu, 81 00:05:23,000 --> 00:05:29,000 a to vám umožní efektivně předat argumenty PHP skriptu. 82 00:05:29,000 --> 00:05:34,000 Řetězec dotazu se skládá z klíče a hodnoty, stejně jako tabulky hash. 83 00:05:34,000 --> 00:05:38,000 Znaménko rovná se odděluje klíč a odpovídající hodnotu 84 00:05:38,000 --> 00:05:41,000 zatímco ampersandy oddělit páry. 85 00:05:41,000 --> 00:06:05,000 URL, která vypadá jako http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 má 2 páry klíč hodnota v řetězci dotazu. 87 00:06:09,000 --> 00:06:12,000 Klíčem foo mapuje na hodnotu baru, 88 00:06:12,000 --> 00:06:16,000 a klíč Baz mapuje na hodnotu qux. 89 00:06:16,000 --> 00:06:23,000 Můžeme snadno přístup k těmto páry klíčových hodnot pomocí speciální proměnné v PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Je asociativní pole 92 00:06:32,000 --> 00:06:36,000 který je automaticky naplněn dotazu řetězec data. 93 00:06:36,000 --> 00:06:46,000 To znamená, že vzhledem k této URL $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 se bude rovnat řetězec baru. 95 00:06:49,000 --> 00:06:56,000 >> Pojďme se podívat na get.php vidět $ _GET v akci. 96 00:06:56,000 --> 00:07:00,000 Zde jsme použili funkci nazvanou var_dump, 97 00:07:00,000 --> 00:07:03,000 , které, pokud je podáván pole nebo jiné proměnné 98 00:07:03,000 --> 00:07:05,000 bude tisknout to pro nás. 99 00:07:05,000 --> 00:07:12,000 Nyní, když jsme prostě přístup http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 pak uvidíme, prázdné pole, protože jsme to za předpokladu, řetězec dotazu. 101 00:07:17,000 --> 00:07:29,000 Pokud se nám to poskytnout řetězec dotazu prostřednictvím http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 pak můžeme vidět, že proměnná $ _GET bude obsahovat 103 00:07:34,000 --> 00:07:37,000 dvojice klíč hodnota řetězce dotazu je. 104 00:07:37,000 --> 00:07:42,000 Ale co když nechceme, aby naše data uvnitř URL stránky? 105 00:07:42,000 --> 00:07:46,000 Pro velké množství dat, může to mít za následek některé docela ošklivé adresy URL 106 00:07:46,000 --> 00:07:49,000 které se chystáte, aby se naše lesklé webové stránky vypadat lame. 107 00:07:49,000 --> 00:07:52,000 Můžeme místo toho dát řetězec dotazu do těla 108 00:07:52,000 --> 00:07:57,000 z HTTP požadavků, spíše než URL žádost je. 109 00:07:57,000 --> 00:08:02,000 Pak můžeme použít $ _POST proměnné PHP 110 00:08:02,000 --> 00:08:05,000 přístup k páry klíč hodnota. 111 00:08:05,000 --> 00:08:10,000 Jeden způsob, jak to udělat, je pomocí formuláře HTML. 112 00:08:10,000 --> 00:08:13,000 Zde máme jednoduchý HTML formulář. 113 00:08:13,000 --> 00:08:17,000 Všimněte si, že atribut způsob tohoto formuláře je příspěvek. 114 00:08:17,000 --> 00:08:21,000 To říká prohlížeči, aby dal páry klíčových hodnot ve formuláři 115 00:08:21,000 --> 00:08:25,000 do těla požadavku, spíše než na adresu URL. 116 00:08:25,000 --> 00:08:28,000 >> Pokud bychom měli použít hodnota se pro tento atribut 117 00:08:28,000 --> 00:08:32,000 pak dvojice klíč hodnota ve formuláři by místo toho jít do řetězce dotazu, 118 00:08:32,000 --> 00:08:36,000 takže jsme je mohli přistupovat přes $ _GET znovu. 119 00:08:36,000 --> 00:08:42,000 Atribut akce formuláře říká prohlížeči, kde pro odesílání dat. 120 00:08:42,000 --> 00:08:46,000 Zde naše dva vstupní prvky mají atributy jméno. 121 00:08:46,000 --> 00:08:51,000 Hodnota atributů název bude sloužit jako klíče do našich dat, 122 00:08:51,000 --> 00:08:56,000 a hodnoty textových vstupů budou hodnoty těchto klíčů. 123 00:08:56,000 --> 00:08:59,000 Nyní se pojďme podívat na post.php, 124 00:08:59,000 --> 00:09:03,000 soubor, že tato forma je předkládá. 125 00:09:03,000 --> 00:09:10,000 Stejně jako jsme to udělali předtím, my jsme prostě zobrazovat obsah proměnné $ _POST. 126 00:09:10,000 --> 00:09:18,000 >> Pojďme přejít na formuláři s http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Teď, když jsme se předložit formulář můžeme vidět, že data z form.php 128 00:09:23,000 --> 00:09:30,000 je předán post.php bez přidání řetězec dotazu na adresu URL. 129 00:09:30,000 --> 00:09:35,000 Nyní jsme viděli dva různé způsoby předávání dat mezi stránkami PHP, 130 00:09:35,000 --> 00:09:37,000 získat a zveřejnit. 131 00:09:37,000 --> 00:09:41,000 V našich příkladech jsme použili dva různé typy požadavků HTTP. 132 00:09:41,000 --> 00:09:45,000 Jak se dalo očekávat, požadavek GET byl použit, když jsme osídlené 133 00:09:45,000 --> 00:09:51,000 Byla použita $ _GET z URL, a žádost o příspěvek 134 00:09:51,000 --> 00:09:55,000 když jsme obydlený $ _POST. 135 00:09:55,000 --> 00:09:59,000 Při navrhování své webové aplikace je to dobré pravidlo použít požadavky GET 136 00:09:59,000 --> 00:10:03,000 pokud vaše aplikace bude pouze pro čtení dat, a požaduje příspěvek 137 00:10:03,000 --> 00:10:05,000 pokud vaše aplikace bude zapisovat data. 138 00:10:05,000 --> 00:10:09,000 Například vyhledávací dotaz číst data z vaší aplikace, 139 00:10:09,000 --> 00:10:12,000 takže požadavek GET smysl. 140 00:10:12,000 --> 00:10:17,000 Na druhou stranu, bude vaše aplikace zapisovat data přes něco jako registrační formulář, 141 00:10:17,000 --> 00:10:22,000 o to požádají, pošta by dávalo větší smysl, a to je přehled některých z technik 142 00:10:22,000 --> 00:10:26,000 budeme používat v CS50 vytvořit webové stránky pomocí PHP. 143 00:10:26,000 --> 00:10:30,000 >> Jmenuji se Tommy, a to je CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]