1 00:00:00,000 --> 00:00:10,393 >> [Přehrávání hudby] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 DAVID J. Malan: Dobře. 4 00:00:12,120 --> 00:00:12,830 Vítejte zpátky. 5 00:00:12,830 --> 00:00:13,890 To je CS50. 6 00:00:13,890 --> 00:00:15,570 To je konec týdne 8. 7 00:00:15,570 --> 00:00:18,360 A jak víte, máme dost pravidelné úřední hodiny v několika 8 00:00:18,360 --> 00:00:21,090 z jídelny, včetně Annenberg. 9 00:00:21,090 --> 00:00:23,860 A někteří z týmu laskavě udělali pár fotek v poslední době. 10 00:00:23,860 --> 00:00:26,230 A na počest Halloween, mysleli jsme, že bychom 11 00:00:26,230 --> 00:00:30,160 sdílet ten, který nás spíše vystihuje překvapení tady v sále jen Annenbergova 12 00:00:30,160 --> 00:00:31,490 v noci. 13 00:00:31,490 --> 00:00:36,300 Váš spolužák Jacob pózovala pro Tato fotografie, ale zábavnější 14 00:00:36,300 --> 00:00:39,760 byla na Facebooku, následující rozhovor, co se stalo potom. 15 00:00:39,760 --> 00:00:43,020 >> Jeho první příspěvek v odpovědi jeho fotografie byla tato. 16 00:00:43,020 --> 00:00:46,740 O několik minut později, když se rozhodl jeden až sebe s tím. 17 00:00:46,740 --> 00:00:53,800 To šlo a pak jít na to, a pak, ještě zábavně 18 00:00:53,800 --> 00:00:55,320 je, když jeho máma přizvukoval. 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 A pak konečně, zdá se, to byl jen 21 00:01:01,800 --> 00:01:04,860 skvělý trik pro hrát, co se děje. 22 00:01:04,860 --> 00:01:07,080 >> Takže pokud byste chtěli vidět Jacoba a další, 23 00:01:07,080 --> 00:01:10,880 mezi nimi Cynthia Meng, který je zákulisí CS50 zóny zaměstnanců, 24 00:01:10,880 --> 00:01:13,970 zamířit na tuto adresu URL a této hře zde. 25 00:01:13,970 --> 00:01:18,810 Takže bez dalších okolků, dnes pokračovat v tomto Podívejte se na webové programování, 26 00:01:18,810 --> 00:01:21,810 a skutečné tvorba programů že neběží na příkazovém řádku, 27 00:01:21,810 --> 00:01:24,080 ale místo toho použít uvnitř prohlížeči. 28 00:01:24,080 --> 00:01:26,320 >> Pravděpodobně teď, nebo velmi krátce, budete 29 00:01:26,320 --> 00:01:30,200 být uprostřed provádění vlastní webový server, který 30 00:01:30,200 --> 00:01:31,700 se liší od webové programování. 31 00:01:31,700 --> 00:01:36,210 WWW server v pset6 je vše kolem psaní software, který ví, jak se 32 00:01:36,210 --> 00:01:39,300 Požadavky protokolu HTTP z webového prohlížeče, nebo dokonce z vás, člověk, 33 00:01:39,300 --> 00:01:42,340 s programem s názvem Telnet, a pak reagovat na tyto žádosti buď 34 00:01:42,340 --> 00:01:48,600 by vyplivl HTML soubor, nebo jpeg, nebo gif, nebo dokonce .php soubor. 35 00:01:48,600 --> 00:01:52,490 >> Ale s webovým serverem, není to předpokládá, že stačí otevřít soubor PHP, 36 00:01:52,490 --> 00:01:55,260 něco, co končí v .php, a pak vyplivnout obsah. 37 00:01:55,260 --> 00:01:58,440 To má dělat co do tohoto souboru první? 38 00:01:58,440 --> 00:01:59,390 Abych tak řekl. 39 00:01:59,390 --> 00:02:04,060 Ne zkompilovat, jsme si řekli v pondělí, ale rather-- Takže interpretovat. 40 00:02:04,060 --> 00:02:08,070 >> PHP je interpretovaný jazyk, a tak jedním z klíčových funkcí ve Vašem webovém 41 00:02:08,070 --> 00:02:11,550 Server, i když prováděna námi, je tato schopnost pro váš webový server 42 00:02:11,550 --> 00:02:12,490 všímat, oh. 43 00:02:12,490 --> 00:02:14,580 Jedná se o soubor končící .php. 44 00:02:14,580 --> 00:02:17,970 Dovolte mi, abych nejen poslat na Uživatel, jako by to statický obsah, 45 00:02:17,970 --> 00:02:20,970 ale dovolte mi, abych ho četl řádek po linka, zleva doprava, a interpretovat jej. 46 00:02:20,970 --> 00:02:23,030 >> A k tomu, že vás kluci budou v podstatě 47 00:02:23,030 --> 00:02:26,520 pramici na programu v zařízení, a na mnoha počítačových systémů, 48 00:02:26,520 --> 00:02:27,500 Právě volal PHP. 49 00:02:27,500 --> 00:02:30,579 To je název PHP Jazyk vlastní interpret. 50 00:02:30,579 --> 00:02:33,120 Tak, že kus realizujeme pro vy, a to, co zbylo pro vás, 51 00:02:33,120 --> 00:02:35,240 nakonec je číslo kusů, mezi nimiž 52 00:02:35,240 --> 00:02:37,960 je provádění podpory pro statický obsah. 53 00:02:37,960 --> 00:02:40,180 >> Ale teď, a problém nastavit sedm, jste 54 00:02:40,180 --> 00:02:43,660 začnou se přechodu na vlastně psát PHP kód 55 00:02:43,660 --> 00:02:45,970 který se interpretovat v rozhovoru s back-end 56 00:02:45,970 --> 00:02:47,960 databáze, která ukládá informace. 57 00:02:47,960 --> 00:02:51,020 Tak ať je lepší nejprve pochopit, pár těchto superglobals 58 00:02:51,020 --> 00:02:53,720 a jak moc moc vás dostat ven z krabice zdarma 59 00:02:53,720 --> 00:02:55,250 s jazykem, jako je PHP. 60 00:02:55,250 --> 00:02:57,350 Věci, které nemají realizovat sami. 61 00:02:57,350 --> 00:03:01,700 >> Takže jsme viděli v pondělí $ _GET, což je superglobal, 62 00:03:01,700 --> 00:03:05,496 který je právě PHP mluvit za globální Proměnná můžete přistupovat kdekoliv. 63 00:03:05,496 --> 00:03:06,620 A to, co je uvnitř $ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 Co je uvnitř tohoto superglobal, co vidíme? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 Jistě statisticky na Nejméně jedna osoba ví. 68 00:03:19,020 --> 00:03:21,590 Co je uvnitř $ _GET? 69 00:03:21,590 --> 00:03:22,426 Jo? 70 00:03:22,426 --> 00:03:24,130 >> Diváků: Je to proměnné si dát v řetězci dotazu. 71 00:03:24,130 --> 00:03:24,530 >> DAVID J. Malan: Perfect. 72 00:03:24,530 --> 00:03:26,488 Je to na vás proměnné dal v řetězci dotazu. 73 00:03:26,488 --> 00:03:29,910 Takže, v našem příkladu starší reimplementing Google, když jsme měli 74 00:03:29,910 --> 00:03:34,130 URL, a pak otazník, který vymezuje počátek HTTP 75 00:03:34,130 --> 00:03:37,950 parametry, pak jsme měli q rovné něco, jako q se rovná kočky, 76 00:03:37,950 --> 00:03:41,500 co by automaticky dovnitř z toho $ _GET Super globální pro vás, 77 00:03:41,500 --> 00:03:47,430 protože PHP, je klíčovým Q, a hodnoty jejich koček. 78 00:03:47,430 --> 00:03:51,250 >> Jinými slovy, $ _GET a všichni tyto věci jsou asociativní pole, 79 00:03:51,250 --> 00:03:54,530 hashovací tabulky druhu, že ukládat klíče a hodnoty. 80 00:03:54,530 --> 00:03:57,980 Nyní, v roce pset5, hash Tabulka jste mohli realizovat, 81 00:03:57,980 --> 00:04:00,220 nebo pokusu může zavedly, opravdu 82 00:04:00,220 --> 00:04:04,010 byl účinně asociativní pole, datová struktura 83 00:04:04,010 --> 00:04:07,220 kterým můžete přiřadit klíče s hodnotami. 84 00:04:07,220 --> 00:04:09,690 >> Ale v pset5, hodnoty byly triviální. 85 00:04:09,690 --> 00:04:12,430 Hodnota byla v podstatě pravdivý nebo nepravdivý. 86 00:04:12,430 --> 00:04:13,900 Je slovo ve slovníku? 87 00:04:13,900 --> 00:04:18,279 Takže, když hash slovo, jako jablka aby zjistil, jestli jablko je ve slovníku, 88 00:04:18,279 --> 00:04:21,820 šek funkce pravděpodobně vrátil true nebo false. 89 00:04:21,820 --> 00:04:24,120 Takže, to je účinně hodnota se dostáváme zpět. 90 00:04:24,120 --> 00:04:26,456 >> Ale my jsme viděli v pondělí Stručně řečeno, můžete samozřejmě 91 00:04:26,456 --> 00:04:28,830 spojit zajímavější hodnoty než jen true nebo false 92 00:04:28,830 --> 00:04:30,790 s klíči, jako jablko. 93 00:04:30,790 --> 00:04:33,909 Dalo by se dokonce vrátit libovolný řetězec, a opravdu, 94 00:04:33,909 --> 00:04:36,200 to je to, co $ _GET a tyto ostatní proměnné vám to. 95 00:04:36,200 --> 00:04:40,595 >> Takže $ _POST je podobný v duchu, ale pokud odešlete formulář poštou, 96 00:04:40,595 --> 00:04:44,490 jiný způsob HTTP, která je používá pro věci, jako je kreditní karty, 97 00:04:44,490 --> 00:04:48,410 a osobní údaje, a to i binární informace, jako jsou fotografie, 98 00:04:48,410 --> 00:04:51,840 ty věci, skončí uvnitř $ _POST. 99 00:04:51,840 --> 00:04:53,770 A vlastně soubory jako JPEG a kdoví co ještě, 100 00:04:53,770 --> 00:04:58,290 je tu i jiný, že to není sem volal $ _FILES stejně. 101 00:04:58,290 --> 00:05:01,280 >> Takže serveru nebudeme zabývat příliš moc, ale to vám dává přístup 102 00:05:01,280 --> 00:05:04,860 třídit nižších detailech úrovni o samotný server, který používáte. 103 00:05:04,860 --> 00:05:07,430 Cookie a zasedání, i když, budeme skutečně vidět teď. 104 00:05:07,430 --> 00:05:10,940 Poslední je to, co použít k implementaci pojem nákupního košíku. 105 00:05:10,940 --> 00:05:14,480 Super jednoduchý, ale odvolání že tento příklad zde měli, 106 00:05:14,480 --> 00:05:17,640 počítat, kolikrát jste už tuto stránku před navštívili. 107 00:05:17,640 --> 00:05:20,850 >> Ale dnes, spíše než jen se podívejte na účinek tohoto, pojďme otevřít 108 00:05:20,850 --> 00:05:22,640 Chrome Inspector, které můžete obvykle 109 00:05:22,640 --> 00:05:25,740 provést kliknutím pravým tlačítkem myši nebo kontroly klepnutím na libovolné místo na webové stránce, 110 00:05:25,740 --> 00:05:27,250 a pak zvolte příkaz Prozkoumat prvek. 111 00:05:27,250 --> 00:05:31,600 Nebo můžete jít přes menu které popíšeme v pset6 se spec. 112 00:05:31,600 --> 00:05:35,020 A já jdu na kartu Síť tady, a pojďme se dívat na chvíli 113 00:05:35,020 --> 00:05:37,590 HTTP provoz, který je tam a zpět. 114 00:05:37,590 --> 00:05:40,929 >> Dovolte mi, abych nejprve pokračovat a cache Smazání Chrome. 115 00:05:40,929 --> 00:05:43,470 Takže někteří z vás mohou být obeznámeni s touto technikou již, 116 00:05:43,470 --> 00:05:45,790 a budeme ji používat tady účely ladění. 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 Nyní se jako počítač vědci začnou 119 00:05:50,890 --> 00:05:53,920 Přitom pro ladění účely, přičemž 120 00:05:53,920 --> 00:05:55,910 budeme vymazat vyrovnávací paměť, typicky, abychom 121 00:05:55,910 --> 00:05:57,670 Můžete se zbavit věcí, označované jako cookie. 122 00:05:57,670 --> 00:06:01,700 Takže jste asi obecně seznámeni s tím, co jsou sušenky, nebo alespoň 123 00:06:01,700 --> 00:06:04,370 že existují, ale to, co je vaše pochopení z nich, 124 00:06:04,370 --> 00:06:06,920 jen jako uživatel počítače, co je to soubor cookie? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 Jo. 127 00:06:09,990 --> 00:06:14,391 >> Diváků: Je to trochu of-- dobře, ne bit v období informatiky. 128 00:06:14,391 --> 00:06:18,303 Je to údaj, že Webové stránky pošle na vás, aby 129 00:06:18,303 --> 00:06:20,209 aby bylo možné zaznamenávat statistiky na vás. 130 00:06:20,209 --> 00:06:21,250 DAVID J. Malan: OK, dobře. 131 00:06:21,250 --> 00:06:24,980 Takže je to údaj, že serveru, dá do počítače, 132 00:06:24,980 --> 00:06:28,840 a pojďme zobecnit, i víc, je to klíč value-- dobře, 133 00:06:28,840 --> 00:06:30,064 že je stále přesnější. 134 00:06:30,064 --> 00:06:31,980 Jedná se o kus Informace, údaj, 135 00:06:31,980 --> 00:06:34,430 že server je schopen aby na vašem počítači 136 00:06:34,430 --> 00:06:38,592 a velmi často, server dělá to tak, jak si uvědomit, kdo jste. 137 00:06:38,592 --> 00:06:40,300 Tak například, kurzy jsou pak jste pravděpodobně 138 00:06:40,300 --> 00:06:42,982 přihlášen do lokalit, jako je Facebook, nebo Gmail, nebo jiní před, 139 00:06:42,982 --> 00:06:44,940 a přihlaste se pomocí svého uživatelské jméno a heslo, 140 00:06:44,940 --> 00:06:49,000 a pak po které se z nějakého počtu minut nebo hodin nebo dokonce dnů, 141 00:06:49,000 --> 00:06:52,970 Server si zapamatuje, že jste ve skutečnosti přihlášen. 142 00:06:52,970 --> 00:06:54,600 A teď, jak se to vlastně děje? 143 00:06:54,600 --> 00:06:58,630 Vzhledem k tomu, že jste rozhodně není přepisování Vaše uživatelské jméno a heslo pokaždé, když 144 00:06:58,630 --> 00:07:00,760 přejdete na jinou stránku na Facebooku. 145 00:07:00,760 --> 00:07:02,570 Tak to dopadá Cookies jsou odpovědí. 146 00:07:02,570 --> 00:07:05,360 >> Cookie si můžete myslet, as, Něco jako, digitální ruku 147 00:07:05,360 --> 00:07:09,200 razítko, které můžete získat za pobavení parku, nebo klub, který v podstatě 148 00:07:09,200 --> 00:07:11,740 indikuje jste tady dříve, a vy jste již 149 00:07:11,740 --> 00:07:16,070 zobrazeno Vaše ID na vyhazovače, pro instance, a to klub nebo park 150 00:07:16,070 --> 00:07:19,050 by nyní předpokládat, že vás byly ověřeny již. 151 00:07:19,050 --> 00:07:21,270 Už jste byly identifikovány tím. 152 00:07:21,270 --> 00:07:24,740 >> Takže s tím na mysli, pojďme otevřít čítače zde. 153 00:07:24,740 --> 00:07:27,220 Nech mě jít napřed, jen jsem to udělal, a zrušte zaškrtnutí všech mých cookies. 154 00:07:27,220 --> 00:07:29,970 A teď, co budu dělat, je podržte klávesu Shift, jen pro jistotu, 155 00:07:29,970 --> 00:07:31,740 a násilně obnovte stránku. 156 00:07:31,740 --> 00:07:34,170 Shift jen se ujistěte, že se nic mezipaměti. 157 00:07:34,170 --> 00:07:36,850 A tady je žádost že šel tam a zpět. 158 00:07:36,850 --> 00:07:41,560 Takže tady máme požadavek, a nechat me přiblížit tady, a hodně z toho 159 00:07:41,560 --> 00:07:44,710 je trochu nezajímavé údaje pro Nyní, že prohlížeč má automaticky 160 00:07:44,710 --> 00:07:47,800 poslal, ale pojďme na položku Zobrazit Zdroj vidět syrové hlavičky. 161 00:07:47,800 --> 00:07:51,700 >> A pokud jste skočil do pset6 již, budete jistě poznat, co 162 00:07:51,700 --> 00:07:54,990 takhle, a možná některé těchto dalších řádcích, 163 00:07:54,990 --> 00:07:59,040 ale co je ještě zajímavější pro dnešní den když jsem se posunout dolů, nikoliv na žádost 164 00:07:59,040 --> 00:08:02,870 ale tzv odpověď tento řádek pravděpodobně vypadá povědomě. 165 00:08:02,870 --> 00:08:04,977 To je dobrá věc, když vidíte 200 OK. 166 00:08:04,977 --> 00:08:07,060 Zřejmě to je datum a čas na serveru 167 00:08:07,060 --> 00:08:08,268 a je tu spoustu věcí. 168 00:08:08,268 --> 00:08:09,290 Ach, to je zajímavé. 169 00:08:09,290 --> 00:08:13,430 >> Ukázalo se, že při každém použití PHP, alespoň v tomto serveru, 170 00:08:13,430 --> 00:08:16,360 Server vyplivne to, co Verze PHP používáte. 171 00:08:16,360 --> 00:08:18,962 Což vlastně k bezpečnosti účely, není dobrá věc. 172 00:08:18,962 --> 00:08:21,170 Ale budeme se vracet k tomu jindy možná. 173 00:08:21,170 --> 00:08:25,740 Ale teď je to šťavnaté linka dnes, a stručně viděli některé z nich, 174 00:08:25,740 --> 00:08:29,240 Myslím si, že se s Facebook účtem, když tropil kolem inspektora v té době, 175 00:08:29,240 --> 00:08:33,380 soubor cookie je to, co je výsadba že malý kousek informací 176 00:08:33,380 --> 00:08:34,890 na vašem počítači. 177 00:08:34,890 --> 00:08:37,490 >> Toto je záhlaví HTTP to je účinně 178 00:08:37,490 --> 00:08:39,970 vyprávění prohlížeče Chrome, IE, cokoliv, 179 00:08:39,970 --> 00:08:44,480 hey prohlížeč obchod na uživatele pevný disk, nebo do paměti RAM uživatele, 180 00:08:44,480 --> 00:08:49,680 klíč s názvem PHPSESSID, což je zkrácený zápis pro ID relace, 181 00:08:49,680 --> 00:08:53,670 a dát mu hodnotu 0vlk8t, tečka, tečka, tečka. 182 00:08:53,670 --> 00:08:56,480 Opravdu dlouho pseudo náhodný alfanumerický řetězec. 183 00:08:56,480 --> 00:08:59,480 Je to jen opravdu velké číslo, ale to je kódován s písmeny a čísly 184 00:08:59,480 --> 00:09:03,550 tak, aby velikost to může být dokonce větší než samotné čísla. 185 00:09:03,550 --> 00:09:06,947 A pak, jen tak mimochodem, Path = /, že prostě znamená, že tato cookie měla být 186 00:09:06,947 --> 00:09:08,780 spojené s celistvost webových stránek, 187 00:09:08,780 --> 00:09:11,150 nejen konkrétní strana celá věc. 188 00:09:11,150 --> 00:09:12,930 Tak tohle je to, že virtuální ruku razítko. 189 00:09:12,930 --> 00:09:16,330 Je to, jako by se na serveru, Facebook, nebo v našem případě spotřebičů, 190 00:09:16,330 --> 00:09:21,140 má doslova písemného 0vlk8t a tak dále, na své ruce. 191 00:09:21,140 --> 00:09:24,360 Všimněte si, co se na serveru, ne dělat je, že to není 192 00:09:24,360 --> 00:09:27,730 ukládání moje uživatelské jméno, určitě není ukládání své heslo. 193 00:09:27,730 --> 00:09:31,710 >> Místo toho se zdá být ukládání pseudo náhodný informací 194 00:09:31,710 --> 00:09:35,010 tak, že nikdo nemůže odhadnout, co moje ruka razítko. 195 00:09:35,010 --> 00:09:37,590 Na straně serveru, Mezitím server 196 00:09:37,590 --> 00:09:40,370 bude mít na paměti, pravděpodobně v databázi nebo tak něco, 197 00:09:40,370 --> 00:09:46,490 že uživatel, který v budoucnu představuje ruční razítko 0vlk8t, tečka, 198 00:09:46,490 --> 00:09:51,440 dot, dot, by měl být spojen s tímto zejména nákupní košík, abych tak řekl. 199 00:09:51,440 --> 00:09:55,060 Jinými slovy, když jsem teď jít sem a znovu načtěte tuto stránku 200 00:09:55,060 --> 00:09:58,020 jak se server vědět že jsem navštívil jednou? 201 00:09:58,020 --> 00:10:01,730 >> Nebo pokud bych to znovu, jak se na server vím, že jsem ho navštívil dvakrát? 202 00:10:01,730 --> 00:10:04,680 No, pokud bych šel do této poslední požadavek, který 203 00:10:04,680 --> 00:10:09,150 Nyní je třetí, kterou jsem poslal celkem, všimněte si, moje žádost nyní. 204 00:10:09,150 --> 00:10:11,300 Stále je to požádat až sem, stejný 205 00:10:11,300 --> 00:10:15,040 jako dříve, je tu ještě celá parta z věcí, které jsme ignorovali jako dříve, 206 00:10:15,040 --> 00:10:19,350 ale úplně poslední záhlaví, to čas, protože jsem tu byl, 207 00:10:19,350 --> 00:10:21,980 je prezentace tento virtuální ruční razítko. 208 00:10:21,980 --> 00:10:28,957 >> Přičemž tato linie zde, není nastavena cookie ale cookie tlustého střeva PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 to je jen můj prohlížeč je automatické Prezentace této straně razítko tak, aby 210 00:10:32,040 --> 00:10:37,910 Nyní server, jakmile si uvědomí, ooh, je to uživatel 0vlk8t dot, dot, dot, 211 00:10:37,910 --> 00:10:42,010 Nyní mohu vzpomenout, kým je a reassociate s tímto uživatelem cokoliv 212 00:10:42,010 --> 00:10:46,450 Informace chci, a všichni že informace mohou být uloženy Vámi, 213 00:10:46,450 --> 00:10:50,130 programátor, v $ _SESSION. 214 00:10:50,130 --> 00:10:57,170 >> Tak, aby bylo jasno, když jsem otevřít opravdu rychle v gedit, že skutečný soubor, counter.php, 215 00:10:57,170 --> 00:11:02,340 v mé místní hostitelské veřejném seznamu stejně jako předtím, všimněte si, že skutečně 216 00:11:02,340 --> 00:11:06,860 Já jsem nakonec ukládání $ _SESSION Citace konec citátu "pult" 217 00:11:06,860 --> 00:11:10,110 hodnota čítače, které předchozí Mám z těchto řádků tady, že my 218 00:11:10,110 --> 00:11:13,010 Podíval se na poslední dobu plus jeden. 219 00:11:13,010 --> 00:11:14,980 Tak pod kapotou, to všechny cookies. 220 00:11:14,980 --> 00:11:17,563 Je to přesně ten typ digitální ruční razítko tam a zpět, 221 00:11:17,563 --> 00:11:20,450 a upřímně řečeno, pokud otevřete Chrome je Inspektor na jakýchkoli webových stránkách, 222 00:11:20,450 --> 00:11:22,580 navštívit dnes, Super vysoká pravděpodobnost, 223 00:11:22,580 --> 00:11:25,450 budete vidět možná jeden, možná půl tuctu sušenky 224 00:11:25,450 --> 00:11:26,650 vzpomíná vás. 225 00:11:26,650 --> 00:11:29,500 >> A ještě hůř, pokud ti, Webové stránky jste na návštěvě 226 00:11:29,500 --> 00:11:32,640 všichni mají reklamy, které je jistě docela běžné dnes, 227 00:11:32,640 --> 00:11:36,100 a pokud tyto reklamy se blíží z nějakého centrálního strany, někoho 228 00:11:36,100 --> 00:11:39,000 jako je Google nebo AdWords, jak se zavolejte na jedno z jejich produktů 229 00:11:39,000 --> 00:11:42,880 nebo jiných takových prodejců, že prodej reklamy, co je zajímavé, 230 00:11:42,880 --> 00:11:46,510 a upřímně řečeno, to, co je trochu znepokojující, o tom, jak funguje HTTP, 231 00:11:46,510 --> 00:11:50,855 je, že pokud máte ad vložený v Facebook.com a Google.com, 232 00:11:50,855 --> 00:11:54,240 a Harvard.edu, libovolný počet webových stránek, takže je to takový 233 00:11:54,240 --> 00:11:58,130 že existuje střední člověk, který si odpykává up reklamy na všech třech těchto webových stránek, 234 00:11:58,130 --> 00:12:02,110 Ukazuje se, že Cookies jsou na doméně. 235 00:12:02,110 --> 00:12:05,910 >> Takže pokud máte reklama pocházející z Stejná společnost na různých internetových stránkách, 236 00:12:05,910 --> 00:12:11,140 že společnost může účinně sledovat, kdo jste na všech těchto webových stránek. 237 00:12:11,140 --> 00:12:13,140 Harvard možná nevíte jste na návštěvě Facebook. 238 00:12:13,140 --> 00:12:15,306 Facebook nemusí vědět a jste na návštěvě Harvard. 239 00:12:15,306 --> 00:12:18,160 Ale ať už ad servis Používají-li, že je doména 240 00:12:18,160 --> 00:12:21,710 přítomen v obou Harvard.edu webu stránky a Facebook.com webové stránky, 241 00:12:21,710 --> 00:12:26,850 tento střed muž jistě ví, kdo jste protože tyto soubory cookie sdíleny 242 00:12:26,850 --> 00:12:30,910 celé, nebo spíše, že tzv prostředníka. 243 00:12:30,910 --> 00:12:33,820 >> Takže se vrátíme k tomu v bezpečnostní důsledky z nich, 244 00:12:33,820 --> 00:12:37,170 ale je tu spousta informací jsou uloženy informace o vás, kdykoliv budete 245 00:12:37,170 --> 00:12:40,120 navštívit největší libovolnou webovou stránku na internet a je to opravdu 246 00:12:40,120 --> 00:12:42,877 redukuje na tento velmi jednoduchý mechanismus. 247 00:12:42,877 --> 00:12:44,710 Co se stane, pak, pokud jste super paranoidní 248 00:12:44,710 --> 00:12:48,190 a vy se rozhodnete jít do Chrome nebo IE nebo co a vypnout soubory cookie? 249 00:12:48,190 --> 00:12:49,365 Co se stane? 250 00:12:49,365 --> 00:12:50,790 Jo? 251 00:12:50,790 --> 00:12:53,170 Můžete really-- jsi udělal toto právo? 252 00:12:53,170 --> 00:12:54,350 OK. 253 00:12:54,350 --> 00:12:55,994 Ne, jděte do toho. 254 00:12:55,994 --> 00:12:59,645 >> Diváků: Některé webové stránky nemají funkce bez ní, jako je Facebook. 255 00:12:59,645 --> 00:13:00,520 DAVID J. Malan: Yeah! 256 00:13:00,520 --> 00:13:02,311 Takže některé webové stránky se prostě přestane fungovat. 257 00:13:02,311 --> 00:13:05,520 A ve většině webových stránkách v těchto dnech které zásadním způsobem spoléhají na cukroví, 258 00:13:05,520 --> 00:13:08,360 zejména mají-li se přihlásit v, oni jen tak zlomit. 259 00:13:08,360 --> 00:13:10,360 Vzhledem k tomu, vzít v úvahu alternativa, v případě, že webové stránky 260 00:13:10,360 --> 00:13:14,480 nemá žádný způsob, jak si pamatovat, kdo jste, a proto je webový prohlížeč není 261 00:13:14,480 --> 00:13:16,949 představuje s každým HTTP Požadavek této straně razítko, 262 00:13:16,949 --> 00:13:18,740 efektivní webové stránky jako je Facebook se děje 263 00:13:18,740 --> 00:13:22,050 mít s výzvou k přihlásit každý zatraceně čas 264 00:13:22,050 --> 00:13:26,200 změníte stránek, nebo klikněte na odkaz, který je jistě nijak zvlášť dobrý uživatel 265 00:13:26,200 --> 00:13:26,920 zážitek. 266 00:13:26,920 --> 00:13:30,020 >> Tak to tam taky je Mezi kompromisy. 267 00:13:30,020 --> 00:13:34,140 Takže bez dalších okolků, pojďme se za samozřejmé, že se programování pro web, 268 00:13:34,140 --> 00:13:37,630 v jazycích jako PHP, můžete si uvědomit, informace, jako že v problému nastavení 269 00:13:37,630 --> 00:13:41,550 sedm let, když se rozhodnete svůj vlastní E * Trade-jako webové stránky, se kterými koupit 270 00:13:41,550 --> 00:13:45,710 a prodávat akcie, budete pamatovat přesně, co uživatel koupil a prodal 271 00:13:45,710 --> 00:13:49,110 a který on nebo ona je prostřednictvím tohoto zasedání. 272 00:13:49,110 --> 00:13:51,110 Ale budeme potřebovat milovník způsob, než e-mail 273 00:13:51,110 --> 00:13:52,640 na začátek uchovávání informací kolem. 274 00:13:52,640 --> 00:13:53,140 Je to tak? 275 00:13:53,140 --> 00:13:56,780 >> V pondělí jsme si povídali o Frosh IM a jak ve verzi jednoho z těchto webových stránek, 276 00:13:56,780 --> 00:14:00,250 Před lety, všechno, co jsme udělali, bylo e-mailem Proctor, který je 277 00:14:00,250 --> 00:14:04,250 na starosti intramurálních sportů programu, jméno a pohlaví, 278 00:14:04,250 --> 00:14:07,330 a zda nebo ne oni jsou kapitán, a koleji někoho, kdo je 279 00:14:07,330 --> 00:14:10,136 registraci intramurálním sportu. 280 00:14:10,136 --> 00:14:13,010 Takže to není špatné, ale on nebo ona pak musel troll přes jejich e-mailu, 281 00:14:13,010 --> 00:14:16,010 vytvořit tabulku, nebo něco takového to, aby vše zorganizovat. 282 00:14:16,010 --> 00:14:19,750 Tak určitě my, programátory to může udělat pro tento Proctor. 283 00:14:19,750 --> 00:14:22,970 A tak vstoupí v SQL, Structured Query Language, 284 00:14:22,970 --> 00:14:26,050 který bude vypadat pěkně liší jak C a PHP, 285 00:14:26,050 --> 00:14:30,990 a budete potápět mnohem více rukou PHP a problém nastavit sedm, ale také SQL 286 00:14:30,990 --> 00:14:35,310 nebo SQL, je to jazyk, který Používáte mluvit do databáze. 287 00:14:35,310 --> 00:14:36,480 >> Ale co je to databáze? 288 00:14:36,480 --> 00:14:38,440 Dobře si myslíte, že databáze, alespoň pro tuto chvíli, 289 00:14:38,440 --> 00:14:41,750 jak jen být jako soubor aplikace Excel, nebo Pokud jste uživateli čísla souborů Mac, 290 00:14:41,750 --> 00:14:44,400 nebo pokud jste Google Apps uživatel tabulky Google, 291 00:14:44,400 --> 00:14:49,120 je to efektivní databáze, nebo opravdu konkrétně relační databáze. 292 00:14:49,120 --> 00:14:53,070 Relační databáze je jen něco, co má řádků a sloupců, 293 00:14:53,070 --> 00:14:56,440 a můžete ukládat jakékoliv Informace uvedené v těchto řádcích nebo sloupcích. 294 00:14:56,440 --> 00:15:00,480 >> Ale to, co je hezké o SQL a o aktuálních databázích, a to nejen 295 00:15:00,480 --> 00:15:04,910 tabulky nebo Google tabulky, je, že můžete použít jazyk 296 00:15:04,910 --> 00:15:09,000 skutečně provádět dotazy vložit data pro odstranění dat, 297 00:15:09,000 --> 00:15:11,620 hledat dat, a to i co je nejdůležitější, a ti 298 00:15:11,620 --> 00:15:16,110 Nemusíte používat poměrně ručně Jak jste si možná běžně Google 299 00:15:16,110 --> 00:15:17,690 tabulkový takhle. 300 00:15:17,690 --> 00:15:22,217 >> Tak v SQL, je to banda základní příkazy nebo kusy 301 00:15:22,217 --> 00:15:23,300 funkčnosti postavena v roce. 302 00:15:23,300 --> 00:15:26,450 Je tu mnoho více než ti, ale můžete jít na velkou vzdálenost 303 00:15:26,450 --> 00:15:28,620 jen tím, že věděl, že tento jazyk nazývá 304 00:15:28,620 --> 00:15:30,840 SQL má alespoň čtyři prohlášení, že můžete využít. 305 00:15:30,840 --> 00:15:34,420 >> Odstranit pro odstranění dat, Vložte, pro přidávání řádků, 306 00:15:34,420 --> 00:15:37,340 Aktualizace pro změnu řádky, a výběr, 307 00:15:37,340 --> 00:15:39,860 pro získání zpět řádků a že je to opravdu to, co dělá SQL. 308 00:15:39,860 --> 00:15:43,810 Působí pouze na řádcích tak že při vložení nebo odstranění, 309 00:15:43,810 --> 00:15:47,470 nebo aktualizace, nebo vybrat, co jste dostat se zpátky jako tzv sady výsledků, 310 00:15:47,470 --> 00:15:49,690 jako pole řádků. 311 00:15:49,690 --> 00:15:51,700 Banda řádků z tabulky. 312 00:15:51,700 --> 00:15:54,050 >> Takže zpět v den, a dokonce k tomuto dni, 313 00:15:54,050 --> 00:15:56,560 můžete komunikovat s databáze pomocí příkazového řádku, 314 00:15:56,560 --> 00:15:59,691 ale není to nijak zvlášť zábavné to černé a bílé okno styl 315 00:15:59,691 --> 00:16:02,190 a vlastně spustit příkazy a hrabat kolem databázi. 316 00:16:02,190 --> 00:16:06,054 Grafické uživatelské rozhraní, nebo GUI, je mnohem výhodnější, pravděpodobně, 317 00:16:06,054 --> 00:16:08,970 a tak se nástroj doporučujeme a předinstalované na vás na spotřebiče 318 00:16:08,970 --> 00:16:10,580 se nazývá phpMyAdmin. 319 00:16:10,580 --> 00:16:14,060 Je to celkem náhoda, že Název této věci má PHP v tom, 320 00:16:14,060 --> 00:16:17,430 znamená to, že lidé, kdo napsal tento program se 321 00:16:17,430 --> 00:16:18,670 napsal v PHP. 322 00:16:18,670 --> 00:16:23,740 >> Ale je to nakonec o správě databázový server, jako server MySQL 323 00:16:23,740 --> 00:16:26,589 že byste mohli mít, jak ano, v CS50 spotřebiče. 324 00:16:26,589 --> 00:16:29,130 Takže tam je více podrobností zde než musíme se starat o dnes, 325 00:16:29,130 --> 00:16:33,280 ale to, co je klíčové je, že na levé straně straně je seznam databází 326 00:16:33,280 --> 00:16:36,040 že máte na svém počítači, na vašem CS50 spotřebiče 327 00:16:36,040 --> 00:16:40,090 nebo přijít závěrečné projekty, které byste mohli mít na třetí strany, společnost je 328 00:16:40,090 --> 00:16:43,415 webové stránky nebo webový server, který můžete platit za prostor. 329 00:16:43,415 --> 00:16:45,290 Takže na levé straně je databází, z nichž jedna 330 00:16:45,290 --> 00:16:48,750 je pset7, který jsem si půjčil od vedle týdny pset, a pak na vrcholu 331 00:16:48,750 --> 00:16:51,570 tam si všimnout, že je banda karet, z nichž jeden 332 00:16:51,570 --> 00:16:55,150 je databáze, SQL, stav, uživatelé, export a tak dále. 333 00:16:55,150 --> 00:16:56,900 Takže můžete jít dlouhou způsob, jen tím, že si uvědomil, 334 00:16:56,900 --> 00:16:59,770 že většina z uživatelského rozhraní je v levém horním sloupci 335 00:16:59,770 --> 00:17:02,650 a přes vrchol až tam. 336 00:17:02,650 --> 00:17:04,980 Takže to, co můžeme skutečně udělat s tímhle? 337 00:17:04,980 --> 00:17:08,609 Dobře, pojďme začít vytvářet bit informace takto. 338 00:17:08,609 --> 00:17:11,760 >> Předpokládejme, že následující situace, jak bude za pár dní, 339 00:17:11,760 --> 00:17:14,440 Chcete-li implementovat webové stránky s názvem CS50 Finance, 340 00:17:14,440 --> 00:17:17,328 a tyto stránky vám umožní koupit citovat konec citátu a prodávat akcie. 341 00:17:17,328 --> 00:17:19,619 A to bude přijít na to, cena těchto akcií, 342 00:17:19,619 --> 00:17:22,380 nakonec, jak uvidíte, tím, že mluví do Yahoo Finance. 343 00:17:22,380 --> 00:17:26,250 Které nádherně, má bezplatnou službu kterým můžete projít v burzovní 344 00:17:26,250 --> 00:17:29,830 jako GOOG pro Google, a to bude vám zpět aktuální zásoby společnosti Google 345 00:17:29,830 --> 00:17:32,250 cena v minulosti několik minut nejméně. 346 00:17:32,250 --> 00:17:35,080 >> Takže budete používat, že nakonec, předstírat, že pro uživatele 347 00:17:35,080 --> 00:17:37,750 nakupovat a prodávat skutečné zásoby pomocí virtuálních peněz, 348 00:17:37,750 --> 00:17:39,750 ale první věc, uživatel to bude vidět 349 00:17:39,750 --> 00:17:43,850 to je přihlašovací obrazovka, která je žádá pro jejich uživatelského jména a hesla. 350 00:17:43,850 --> 00:17:46,540 A tak, jako jeden z prvních výzvy pro vás pset7 351 00:17:46,540 --> 00:17:50,460 bude realizovat zadní část databáze, tabulky chcete-li, 352 00:17:50,460 --> 00:17:53,369 že to bude ukládat uživatelské jména a hesla 353 00:17:53,369 --> 00:17:56,660 a nakonec to, co zásoby, které vlastní, a kolik, a kolik peněz mají, 354 00:17:56,660 --> 00:18:00,110 tak spoustu dalších věcí jiné tabulky nebo tabulky. 355 00:18:00,110 --> 00:18:05,020 >> Takže pojďme se podívat na to, jak to by se mohlo na první pohled zdát. 356 00:18:05,020 --> 00:18:06,980 Chystám se vrátit do zařízení a já jsem 357 00:18:06,980 --> 00:18:14,102 jít na tuto adresu URL zde phpMyAdmin localhost / phpMyAdmin 358 00:18:14,102 --> 00:18:16,060 a uvidíte, že to vezme mě do rozhraní 359 00:18:16,060 --> 00:18:18,520 přesně tak, jak jsme viděli na screen shot, a tady jsem 360 00:18:18,520 --> 00:18:21,560 mají další databáze volal přednáška pro dnešek 361 00:18:21,560 --> 00:18:24,280 a nech mě jít napřed První a klikněte na pset7. 362 00:18:24,280 --> 00:18:27,940 >> Zdá se mi, že mají několik možností, jeden pro nové, pro vytvoření nové tabulky, 363 00:18:27,940 --> 00:18:30,770 a odkaz na uživatele, který je tabulka již jsem vytvořil. 364 00:18:30,770 --> 00:18:31,790 Takže to, co je tabulka? 365 00:18:31,790 --> 00:18:33,740 Takže pokud jste použili Excel dříve, a pokud jste 366 00:18:33,740 --> 00:18:37,110 použité čísla nebo Google Tabulkové procesory, můžete otevřít okno 367 00:18:37,110 --> 00:18:39,350 a dostanete spoustu řádků a sloupců, 368 00:18:39,350 --> 00:18:43,120 ale pak obvykle mají listy po dně, nebo samostatných záložkách. 369 00:18:43,120 --> 00:18:46,140 Můžete myslet na sebe list jako tabulku 370 00:18:46,140 --> 00:18:51,150 aby databáze, v konečném důsledku, je kombinace jedné nebo více tabulek, jedna 371 00:18:51,150 --> 00:18:54,064 nebo více listů, v svět normální tabulky. 372 00:18:54,064 --> 00:18:55,980 Tak nech mě jít dopředu a klikněte na tento listu 373 00:18:55,980 --> 00:18:59,420 že jsem premade, tzv uživatelé, také známý jako 374 00:18:59,420 --> 00:19:00,700 Databázové tabulky. 375 00:19:00,700 --> 00:19:04,130 A kdybych přejděte sem, dovolte mi, abych oddálit trochu, 376 00:19:04,130 --> 00:19:08,479 To je to, co říká phpMyAdmin nás je uvnitř této tabulky právě teď. 377 00:19:08,479 --> 00:19:11,020 Je to trochu matoucí na první pohled pohled, protože UI není 378 00:19:11,020 --> 00:19:15,140 nejkrásnější věc na světě, ale to, co je zajímavé, je tato část zde. 379 00:19:15,140 --> 00:19:17,970 ID, uživatelské jméno a hash. 380 00:19:17,970 --> 00:19:20,510 >> Předem, a budete rukou To problém nastavit sedm, 381 00:19:20,510 --> 00:19:25,050 my vám soubor, který obsahuje super malé databázové tabulky, půjčil si vlastně 382 00:19:25,050 --> 00:19:27,070 od hackera vydání o problém nastavit dva, 383 00:19:27,070 --> 00:19:29,480 uvnitř které je šest řádků. 384 00:19:29,480 --> 00:19:32,720 Jeden pro Belinda všechny způsob, jak se k jednomu pro Zamyla, 385 00:19:32,720 --> 00:19:35,980 a všimněte si na levé straně těch, uživatelská jména jsou jedinečné ID jako jeden, 386 00:19:35,980 --> 00:19:39,410 dva, tři, čtyři, pět, šest, celá čísla, a pak se na pravé straně jsou hodnoty hash. 387 00:19:39,410 --> 00:19:42,780 >> A pokud jsou šance, že jsi to neudělal Problém hacker vydání nastavit dva, 388 00:19:42,780 --> 00:19:46,560 ale hash je stejně jako zašifrovaný Heslo s několika výhradami. 389 00:19:46,560 --> 00:19:49,470 A tak to, co vidíte zde šifrovaná verze všech šest 390 00:19:49,470 --> 00:19:52,950 z našich hesel z problému nastavit dva je hacker vydání. 391 00:19:52,950 --> 00:19:56,500 Nyní na levé straně je jen pár GUI věci, editaci tohoto řádku, kopírování tento řádek, 392 00:19:56,500 --> 00:19:57,630 odstranění tohoto řádku. 393 00:19:57,630 --> 00:19:59,840 >> Ale co je zajímavé, Nyní je následující. 394 00:19:59,840 --> 00:20:03,810 Mohu skutečně začít experimentování s touto tabulkou. 395 00:20:03,810 --> 00:20:07,330 Takže když jdu a klepněte na tlačítko SQL karta, jsem si tuhle velkou textové pole. 396 00:20:07,330 --> 00:20:10,190 A to není, jak budeme to, když vlastně psaní kódu. 397 00:20:10,190 --> 00:20:12,700 Aby bylo jasno, phpMyAdmin je jen nástroj, který je 398 00:20:12,700 --> 00:20:16,450 bude nám hrabat kolem databázi a dejte nám experimentovat s dotazy. 399 00:20:16,450 --> 00:20:19,430 >> Tak například, že I spustit právě tento. 400 00:20:19,430 --> 00:20:22,820 Select, který je jedním z těch, klíčová slova jsem již zmínil, hvězda, 401 00:20:22,820 --> 00:20:25,900 která se podílí sloupce v tabulce. 402 00:20:25,900 --> 00:20:26,820 Z toho, co stůl? 403 00:20:26,820 --> 00:20:27,990 No, uživatelé. 404 00:20:27,990 --> 00:20:29,950 A upozornění, že je to divný konvence v SQL 405 00:20:29,950 --> 00:20:32,140 kde jste skutečně používat zpět klíšťata, typicky, 406 00:20:32,140 --> 00:20:35,940 Není jednoduché uvozovky a ne dvojité uvozovky když mluvíte o tabulky jmen, 407 00:20:35,940 --> 00:20:38,990 takže zpět citace je věc na Horní levá ruka na klávesnici nejvíce 408 00:20:38,990 --> 00:20:39,720 pravděpodobné. 409 00:20:39,720 --> 00:20:41,850 >> Tak nech mě jít napřed nyní a nech to samo o sobě 410 00:20:41,850 --> 00:20:46,020 a přejděte dolů a klepněte na tlačítko Přejít, a my jsme vlastně bude vidět to samé. 411 00:20:46,020 --> 00:20:52,410 Jen jsme realizovali dotazu SQL říká vybrat vše hvězdu 412 00:20:52,410 --> 00:20:55,610 z tabulky s názvem uživatele, a to, co dostanete zpět, je to. 413 00:20:55,610 --> 00:20:58,400 Nakonec budeme moci udělat to samé v kódu, 414 00:20:58,400 --> 00:21:02,109 ale teď vše, co jsem chtěl to bylo vidět, že ve svém prohlížeči. 415 00:21:02,109 --> 00:21:03,900 Tak pojďme něco udělat trochu jinak. 416 00:21:03,900 --> 00:21:08,330 Nech mě jít zpátky na kartu SQL, a řekněme, že to, co? 417 00:21:08,330 --> 00:21:11,520 Zamyla ztratil vše o ní peníze, a proto je 418 00:21:11,520 --> 00:21:13,190 čas pro nás, aby ji smazat jako uživatel. 419 00:21:13,190 --> 00:21:14,630 Ona už není přihlášení. 420 00:21:14,630 --> 00:21:18,870 >> Takže jsem chtěl říct smazat from-- dobře, udržovat kapitalizaci 421 00:21:18,870 --> 00:21:23,080 konzistence, vymazat od uživatelů, kde. 422 00:21:23,080 --> 00:21:25,430 A tak můžeme mít tyto predikáty, nebo tyto 423 00:21:25,430 --> 00:21:31,180 kvalifikace, na konci svého prohlášení kde a jak bych mohl smazat Zamyla? 424 00:21:31,180 --> 00:21:34,190 Její jméno Zamyla, tak sloupec, jeden ze sloupců 425 00:21:34,190 --> 00:21:37,950 byl jmenován, tak kde name = "Zamyla". 426 00:21:37,950 --> 00:21:40,000 A tady jsem použít double citace nebo jednoduché uvozovky, 427 00:21:40,000 --> 00:21:42,958 použít pouze zadní klíšťata, kdy mluví o jménech, například, 428 00:21:42,958 --> 00:21:45,130 tabulek a polí. 429 00:21:45,130 --> 00:21:47,440 A dovolte mi, abych na tlačítko naleznete zde. 430 00:21:47,440 --> 00:21:50,400 A teď, webová stránka je být trochu nervózní. 431 00:21:50,400 --> 00:21:53,620 >> Nebo opravdu chcete provést smazat od uživatelů, kde název odpovídá životnosti Zamyla? 432 00:21:53,620 --> 00:21:54,680 Ano. 433 00:21:54,680 --> 00:22:01,900 Takže teď, když se vrátíme k mému stolu klepnutím na možnost uživatele si všimněte, že Hm. 434 00:22:01,900 --> 00:22:02,530 Podělal já. 435 00:22:02,530 --> 00:22:04,070 A ve skutečnosti, jsem tak trochu klikli pryč tak rychle, 436 00:22:04,070 --> 00:22:06,195 jste ani vidět červené chybové hlášení, možná. 437 00:22:06,195 --> 00:22:07,649 Co jsem udělal špatně? 438 00:22:07,649 --> 00:22:09,690 Diváků: Nemusel jsi využít její jméno. 439 00:22:09,690 --> 00:22:11,260 DAVID J. Malan: Jo, já vydělával její jméno, 440 00:22:11,260 --> 00:22:13,770 ale její username-- Vlastně jsem udělal pár chyb, ne? 441 00:22:13,770 --> 00:22:16,720 Jeden z nich, její jméno je zamyla, malá písmena Z, 442 00:22:16,720 --> 00:22:20,140 a název sloupce je uživatelské jméno, nejmenoval, tak se pojďme to udělat znovu. 443 00:22:20,140 --> 00:22:25,750 Nech mě jít napřed a odstranit ze uživatelům, pokud 444 00:22:25,750 --> 00:22:28,990 Uživatelské jméno rovná citovat unquote "Zamyla". 445 00:22:28,990 --> 00:22:29,490 V pořádku? 446 00:22:29,490 --> 00:22:32,600 Takže to vypadá o něco lépe, ať mě jít přejděte dolů a klepněte na tlačítko Přejít. 447 00:22:32,600 --> 00:22:34,730 Je to stále bude křičet na mě pro jistotu. 448 00:22:34,730 --> 00:22:37,500 I klepněte na tlačítko Ano, a teď vidíme, Upřímně řečeno se to stalo, opravdu 449 00:22:37,500 --> 00:22:39,870 rychlá, méně než jeden Druhý jistě, to 450 00:22:39,870 --> 00:22:41,720 je přesně dotaz, který dostal popraven. 451 00:22:41,720 --> 00:22:45,617 Chcete-li potvrdit, dovolte mi, abych na tlačítko uživatele a opravdu teď Zamyla je pryč. 452 00:22:45,617 --> 00:22:46,700 Nyní se pojďme udělat pravý opak. 453 00:22:46,700 --> 00:22:49,320 Předpokládejme, že Gabe chce zaregistrovat na internetových stránkách. 454 00:22:49,320 --> 00:22:52,825 Co je to SQL dotaz, co je Příkaz bych mohl psát přidat Gabe? 455 00:22:52,825 --> 00:22:54,200 No je to docela jednoduché. 456 00:22:54,200 --> 00:22:58,260 Vložit do uživatelů, a teď to je trochu tajemný. 457 00:22:58,260 --> 00:23:03,190 Musím upřesnit, na server, co pole chci přiřadit. 458 00:23:03,190 --> 00:23:06,630 Nemám opravdu jedno, co Gabe ID číslo, takže budu přeskočit, že. 459 00:23:06,630 --> 00:23:11,360 Já místo toho chtěl říct uživatelské jméno, hash, a pak 460 00:23:11,360 --> 00:23:14,960 hodnoty Chci vložit tam bude Gabe. 461 00:23:14,960 --> 00:23:16,800 A pak jeho hash, nevím. 462 00:23:16,800 --> 00:23:19,900 Takže teď jdu nechat to jako velký dělat. 463 00:23:19,900 --> 00:23:21,650 Vrátíme se k že v nastavení problém 464 00:23:21,650 --> 00:23:23,390 spec, jak vlastně udělat. 465 00:23:23,390 --> 00:23:24,630 >> Takže si všimnout, opět, syntax. 466 00:23:24,630 --> 00:23:28,430 Vložit do názvu tabulky, pak závorkách seznam polí, 467 00:23:28,430 --> 00:23:30,980 sloupce, které chcete přidat hodnoty, a potom jen 468 00:23:30,980 --> 00:23:34,495 stejný přesné uspořádání zleva přímo z hodnot, které chcete přidat, 469 00:23:34,495 --> 00:23:36,870 a to jen proto, že balení text je poněkud delší. 470 00:23:36,870 --> 00:23:38,520 Takže teď mi dovolte klepněte na tlačítko Přejít. 471 00:23:38,520 --> 00:23:39,830 Jeden řádek vloží. 472 00:23:39,830 --> 00:23:43,020 A teď když jsem se vrátit do uživatelé, co je zajímavé 473 00:23:43,020 --> 00:23:48,960 je to, že není pouze Gabe nyní v databáze, což je zřejmě jeho ID? 474 00:23:48,960 --> 00:23:49,820 >> No to je sedm. 475 00:23:49,820 --> 00:23:51,479 Proč je to sedm let, když jsem se přidat? 476 00:23:51,479 --> 00:23:54,020 Takže i to je jeden z funkce, které dostanete v databázi. 477 00:23:54,020 --> 00:23:55,750 Mnoho vestavěný funkčnosti. 478 00:23:55,750 --> 00:23:57,950 Ukazuje se, že při tuto tabulku vytvořili, 479 00:23:57,950 --> 00:24:01,390 I přednastavena, že je to automaticky přidělí ID takovým způsobem 480 00:24:01,390 --> 00:24:02,480 že se zvýší. 481 00:24:02,480 --> 00:24:05,470 Takže pokud jste někdy strčil kolem, a podíval se na to, co jsi heslo? 482 00:24:05,470 --> 00:24:09,292 číslo, v těchto dnech je to opravdu co dělat, ale Facebook jako API, 483 00:24:09,292 --> 00:24:11,750 Application Programming Interface, kdy můžete získat zpět 484 00:24:11,750 --> 00:24:14,430 celá parta údajů o sami, o své přátele, 485 00:24:14,430 --> 00:24:15,347 a vaše připojení. 486 00:24:15,347 --> 00:24:17,430 A co býval druh v pohodě, zpět v den, 487 00:24:17,430 --> 00:24:19,510 Byl se podívat na to, co vaše Facebook ID číslo bylo. 488 00:24:19,510 --> 00:24:22,390 Mark Zuckerberg je, Například, je tři 489 00:24:22,390 --> 00:24:23,890 protože on byl autorem těchto stránek. 490 00:24:23,890 --> 00:24:27,610 A jak příběh pokračuje, on vytvořil dvě testovací účty, uživatelé jedna a dvě, 491 00:24:27,610 --> 00:24:28,690 které pak smazány. 492 00:24:28,690 --> 00:24:32,780 A tak, Zuck, jak je jeho jméno na Facebooku, je ID číslo tři, 493 00:24:32,780 --> 00:24:36,110 a každý z nás má moc čísel větší než tři v těchto dnech. 494 00:24:36,110 --> 00:24:37,980 Ve skutečnosti, v určitém okamžiku Facebook se vzdálil 495 00:24:37,980 --> 00:24:42,410 ze i pomocí int, která je 32-bitová hodnota, k používání 496 00:24:42,410 --> 00:24:44,480 Dalším krokem, v podstatě dlouhá tak dlouho 497 00:24:44,480 --> 00:24:47,150 že by mohly pojmout i více uživatelů registraci. 498 00:24:47,150 --> 00:24:49,420 Tak trochu legrace historický fakt. 499 00:24:49,420 --> 00:24:51,660 >> Tak to je právě Základní syntaxe, se kterými 500 00:24:51,660 --> 00:24:54,470 můžeme provést několik dotazy, ale můžeme skutečně 501 00:24:54,470 --> 00:24:56,744 dělat spoustu dalších věcí s SQL. 502 00:24:56,744 --> 00:24:58,910 A uvidíte, nakonec, v problému nastavit sedm 503 00:24:58,910 --> 00:25:01,034 že budete muset provést Počet rozhodnutí o návrhu, 504 00:25:01,034 --> 00:25:03,290 mezi nimi bude jaké typy dat použít. 505 00:25:03,290 --> 00:25:08,240 Takže stejně jako v C, jsou údaje typy v databázi, jako je MySQL, 506 00:25:08,240 --> 00:25:12,640 a datové typy si musíte vybrat ze tato odvětví zde. 507 00:25:12,640 --> 00:25:17,287 Char, varchar, Int, velký int, decimal a datum, čas, a mnoho dalších. 508 00:25:17,287 --> 00:25:18,370 Takže pojďme to skutečně udělat. 509 00:25:18,370 --> 00:25:21,060 Pojďme předstírat, že jsme neměli ruka vám tabulka tohoto uživatele 510 00:25:21,060 --> 00:25:25,080 a nech mě jít dopředu a vytvořit pro sám, na přednáškách database-- 511 00:25:25,080 --> 00:25:31,000 vlastně nech mě jít dopředu a odstraňte tabulka mám tu již 512 00:25:31,000 --> 00:25:32,940 takže můžeme vlastně vytvořit to. 513 00:25:32,940 --> 00:25:33,550 Jejda. 514 00:25:33,550 --> 00:25:35,970 Chystám se tento pokles stůl, a teď jsem 515 00:25:35,970 --> 00:25:38,337 jít znovu přednáška databáze sem, 516 00:25:38,337 --> 00:25:40,420 Chystám se vytvořit tabulku tzv uživatelů a pojďme 517 00:25:40,420 --> 00:25:43,010 prostě tři sloupce zpočátku a klepněte na tlačítko Přejít. 518 00:25:43,010 --> 00:25:44,990 >> Nyní, z větší části, Znovu, toto je jen 519 00:25:44,990 --> 00:25:48,570 pomocí tohoto grafického nástroje s názvem phpMyAdmin, a to, co děláme teď 520 00:25:48,570 --> 00:25:49,600 je vytvoření tabulky. 521 00:25:49,600 --> 00:25:53,170 Takže to je jako jít na Soubor, Nový, a vytvoření nového souboru aplikace Excel. 522 00:25:53,170 --> 00:25:55,440 Takže to mě ptá, málo otázky, zleva doprava, 523 00:25:55,440 --> 00:25:58,620 to, co je název prvního sloupce, a poté na název druhého sloupce, 524 00:25:58,620 --> 00:25:59,560 a název třetí. 525 00:25:59,560 --> 00:26:00,518 Takže pojďme znovu to. 526 00:26:00,518 --> 00:26:05,460 ID, a pak jméno bylo jedno, a pak hash byl jiný. 527 00:26:05,460 --> 00:26:08,970 Takže to, co by měl datový typ být nyní pro pole, jako je ID? 528 00:26:08,970 --> 00:26:14,470 >> Zde je celý seznam datových typů pro vás k dispozici v databázi, 529 00:26:14,470 --> 00:26:16,070 a teď pojďme prostě jít s int. 530 00:26:16,070 --> 00:26:18,160 32-bitová hodnota, vůbec se mi nelíbí myslet realisticky, že jsem 531 00:26:18,160 --> 00:26:21,484 bude mít více než 4 miliardy Uživatelé v mém účtu, v mých službách, 532 00:26:21,484 --> 00:26:23,650 takže budu držet v pohybu na další otázku. 533 00:26:23,650 --> 00:26:25,490 Nebudu specifikovat délky nebo hodnoty, 534 00:26:25,490 --> 00:26:28,540 to neplatí pro int tady, sám o sobě. 535 00:26:28,540 --> 00:26:30,740 A teď se můžete určit, Zdá se, že výchozí 536 00:26:30,740 --> 00:26:33,970 hodnota, která nebudu specifikovat. 537 00:26:33,970 --> 00:26:36,050 Kolace, já nevím, co to je. 538 00:26:36,050 --> 00:26:37,290 Atribut. 539 00:26:37,290 --> 00:26:39,455 Teď jsme vlastně dělat má rozhodnutí o návrhu. 540 00:26:39,455 --> 00:26:42,580 Takže tam je několik polí tady, že ne všechny které jsou použitelné, ale bez znaménka 541 00:26:42,580 --> 00:26:43,380 prostě znamená co? 542 00:26:43,380 --> 00:26:45,400 Že int musí být? 543 00:26:45,400 --> 00:26:46,210 Jen non-negativní. 544 00:26:46,210 --> 00:26:48,090 Tak to musí být 0 na nahoru. 545 00:26:48,090 --> 00:26:51,120 Ne, nebudu kontrolovat, protože Chci každý uživatel mít ID, 546 00:26:51,120 --> 00:26:52,470 nemůže být null. 547 00:26:52,470 --> 00:26:55,949 A pak se dostáváme k trochu více Zajímavý design rozhodnutí, jako je tento. 548 00:26:55,949 --> 00:26:58,990 Vrátíme se k tomu ve chvíli, ale co další funkce databáze 549 00:26:58,990 --> 00:27:04,200 je, že můžete říct, databázový server pokračovat 550 00:27:04,200 --> 00:27:07,100 a optimalizovat sebe, svou RAM a místa na pevném disku, 551 00:27:07,100 --> 00:27:11,770 tak, že vybere a vložky, a odstraní a aktualizace jsou opravdu rychle. 552 00:27:11,770 --> 00:27:13,250 Porovnejme to s pset5. 553 00:27:13,250 --> 00:27:16,259 >> Pokud byste chtěli hledat něco v hash tabulce, která 554 00:27:16,259 --> 00:27:18,300 si myslíte, že jako databáze, kteří měli udělat vše, 555 00:27:18,300 --> 00:27:21,500 pracovat, aby vaše hash tabulky rychle. 556 00:27:21,500 --> 00:27:22,840 Je to jako, samozřejmě, vy. 557 00:27:22,840 --> 00:27:23,060 Je to tak? 558 00:27:23,060 --> 00:27:26,080 Vy jste měli dát do všech časových pokuty tuning věci, jak se funkce hash 559 00:27:26,080 --> 00:27:27,820 právo, přijít na to, jak mnoho lopaty mít. 560 00:27:27,820 --> 00:27:29,611 >> Ale to, co je hezké, zase, o databáze 561 00:27:29,611 --> 00:27:31,762 stačí pramici všechny to jiným lidem 562 00:27:31,762 --> 00:27:33,720 kdo si myslel, že to až pro vás a to, co 563 00:27:33,720 --> 00:27:37,170 Chystám se říci, na základě index je, že moje ID pole 564 00:27:37,170 --> 00:27:41,149 bude primární způsob identifikace uživatele v této databázi. 565 00:27:41,149 --> 00:27:42,940 Nebudu myslet z Zamyla jako Zamyla, 566 00:27:42,940 --> 00:27:45,800 Budu myslet na ji jako číslo 6. 567 00:27:45,800 --> 00:27:49,814 >> Proč je to snad lepší intuitivně myslet a modelu 568 00:27:49,814 --> 00:27:52,480 každý z vašich jednotlivých řádků pomocí číslo, místo něčeho 569 00:27:52,480 --> 00:27:56,480 jako řetězec, jako je Zamyla nebo Gabe nebo delší řetězec ještě? 570 00:27:56,480 --> 00:27:57,444 Jo? 571 00:27:57,444 --> 00:28:00,117 >> Diváků: ID je jedinečný? 572 00:28:00,117 --> 00:28:01,200 DAVID J. Malan: znovu, řekni? 573 00:28:01,200 --> 00:28:02,283 Diváků: ID je jedinečný? 574 00:28:02,283 --> 00:28:04,400 DAVID J. Malan: ID je jedinečný, ale suppose-- 575 00:28:04,400 --> 00:28:06,320 například v případě obecně se uživatelským jménem, ​​předpokládám, že 576 00:28:06,320 --> 00:28:10,110 Také jsem řekl, že může být jen jeden Zamyla ve světě, a pouze jeden Gabe. 577 00:28:10,110 --> 00:28:13,730 Mohl bych uložit jedinečnost omezení na řetězci, i kdybych chtěl. 578 00:28:13,730 --> 00:28:15,550 Takže není špatná myšlenka. 579 00:28:15,550 --> 00:28:16,500 >> Diváků: Více bezpečí. 580 00:28:16,500 --> 00:28:17,874 >> DAVID J. Malan: Bezpečnější, proč? 581 00:28:17,874 --> 00:28:20,705 Diváků: Nemůžete říct, který je, který, jak je v uživatel. 582 00:28:20,705 --> 00:28:22,580 DAVID J. Malan: OK, Nelze říci, který uživatel 583 00:28:22,580 --> 00:28:24,380 je který, takže je tu o ochraně osobních údajů aspekt k tomu, 584 00:28:24,380 --> 00:28:27,810 zejména v případě, že ID možná objevit se v URL. 585 00:28:27,810 --> 00:28:29,960 Tak jistý, že by mohl druh práce, taky. 586 00:28:29,960 --> 00:28:30,640 Jiné myšlenky? 587 00:28:30,640 --> 00:28:31,383 Jo? 588 00:28:31,383 --> 00:28:34,316 >> Diváků: Je to jednodušší provádět operace na int. 589 00:28:34,316 --> 00:28:35,940 DAVID J. Malan: To je skutečný kicker. 590 00:28:35,940 --> 00:28:38,850 Je to jen efektivnější, a snadnější pro počítač, 591 00:28:38,850 --> 00:28:40,431 provádět operace na celé číslo. 592 00:28:40,431 --> 00:28:40,930 Je to tak? 593 00:28:40,930 --> 00:28:43,905 Int je zaručeno, že být 32-bit, zatímco Zamyla 594 00:28:43,905 --> 00:28:47,660 je dlouhá několik znaků, Gabriel je dlouhá několik dalších znaků, 595 00:28:47,660 --> 00:28:51,930 Davenport je opravdu dlouhý, a tak je nijak zvlášť efektivní používat 596 00:28:51,930 --> 00:28:55,860 řetězce porovnávat hodnoty a hledat pro pole a aktualizovat pole, 597 00:28:55,860 --> 00:28:57,790 pokud se můžete dostat pryč pouze s jedním celým číslem. 598 00:28:57,790 --> 00:28:59,090 Jen 32 bitů. 599 00:28:59,090 --> 00:29:02,570 Tak uživatelská jména, i tímto způsobem, nemusí být jedinečný, 600 00:29:02,570 --> 00:29:05,040 i když pravděpodobně měly být, a to i tímto způsobem také 601 00:29:05,040 --> 00:29:07,520 uživatel by si mohli změnit své uživatelské jméno. 602 00:29:07,520 --> 00:29:10,810 >> Takže pojďme se teď opustit toto jako primární prostředky k identifikaci uživatele. 603 00:29:10,810 --> 00:29:13,510 To se říká databáze jděte do toho a optimalizovat sami 604 00:29:13,510 --> 00:29:17,065 takže look up na ID je super rychlý. 605 00:29:17,065 --> 00:29:19,620 AI, strašně jmenoval, jen znamená, Auto Přírůstek, 606 00:29:19,620 --> 00:29:21,500 a to je kontrola box musíme zkontrolovat 607 00:29:21,500 --> 00:29:24,614 určit, že ID pole být automaticky aktualizovány pro mě, 608 00:29:24,614 --> 00:29:26,530 a pak jdu přejděte doprava zde 609 00:29:26,530 --> 00:29:29,279 a upřímně řečeno, já nejsem opravdu zájem V žádné další z těchto oblastí. 610 00:29:29,279 --> 00:29:30,630 Rozhodně ne dnes. 611 00:29:30,630 --> 00:29:33,770 >> Takže já jdu sem, do prvního sloupce, kde 612 00:29:33,770 --> 00:29:35,830 I třeba zadat uživatelské jméno a hash, a pojďme 613 00:29:35,830 --> 00:29:38,080 Alespoň zaměřením na druhý pro teď. 614 00:29:38,080 --> 00:29:41,498 Int pravděpodobně není správná výzva, Takže to, co je snad větší smysl? 615 00:29:41,498 --> 00:29:42,741 >> DIVÁKŮ: Text. 616 00:29:42,741 --> 00:29:43,824 DAVID J. Malan: znovu, řekni? 617 00:29:43,824 --> 00:29:44,710 DIVÁKŮ: Text. 618 00:29:44,710 --> 00:29:44,980 DAVID J. Malan: Text? 619 00:29:44,980 --> 00:29:45,590 OK, jsem slyšel text. 620 00:29:45,590 --> 00:29:46,090 Co ještě? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 Máme druh má spoustu možností že jsou textové povahy. 623 00:29:53,860 --> 00:29:55,990 Takže když, a proč dělat můžete použít některé z nich? 624 00:29:55,990 --> 00:29:59,560 No char, v rozporu s tím, co by mohlo myslíte, že není jediný znak. 625 00:29:59,560 --> 00:30:01,550 Je to určitý počet znaků. 626 00:30:01,550 --> 00:30:04,600 Takže pokud víme, že všechna uložená jména musí být jako osm znaků, 627 00:30:04,600 --> 00:30:08,490 jak bylo obyčejné v starší počítačové systémy, mohl bych říci, char 628 00:30:08,490 --> 00:30:09,830 a pak bych mohl říci, 8 zde. 629 00:30:09,830 --> 00:30:12,930 To je, když ve třetím sloupci se stává použitelné při vytváření tabulky. 630 00:30:12,930 --> 00:30:15,450 >> Ale to je trochu nepříjemné proto, že někteří lidé mohou 631 00:30:15,450 --> 00:30:17,660 Chcete mít delší uživatelské jméno než osm znaků, 632 00:30:17,660 --> 00:30:19,743 někteří lidé mohou chtít mají kratší jméno, 633 00:30:19,743 --> 00:30:22,210 tak proč zavazuji na konkrétní číslo? 634 00:30:22,210 --> 00:30:24,710 Proč mají proměnnou počet znaků a jen 635 00:30:24,710 --> 00:30:28,580 říkají, že maximální délka jména je, já nevím, jako 64 znaků. 636 00:30:28,580 --> 00:30:31,780 Já si nemyslím, že žádné přátele, kteří mají názvy delší než 64 znaků, 637 00:30:31,780 --> 00:30:34,810 a to iv případě, že je to příliš krátká byste mohli rozhodně narazit ji libovolně. 638 00:30:34,810 --> 00:30:37,330 >> Takže varchar je proměnná počet znaků. 639 00:30:37,330 --> 00:30:41,010 Text není špatný instinkt, a upřímně řečeno, že tak nějak dělá to, co říká, 640 00:30:41,010 --> 00:30:45,460 ale textové pole může být jako 65.000 bytů nejméně. 641 00:30:45,460 --> 00:30:50,790 To je asi zbytečná pro pole, a ve skutečnosti, Jo, 65535. 642 00:30:50,790 --> 00:30:53,740 To je asi zbytečná pro jméno, takže budeme držet, typicky 643 00:30:53,740 --> 00:30:56,910 s varchars pro textové pole a hash, taky. 644 00:30:56,910 --> 00:30:59,990 Hash, se ukázalo, mohli bychom dělat varchar stejně, nebo něco takového, 645 00:30:59,990 --> 00:31:03,080 ale nebudeme zaměřovat dnes na kryptografie tam a čísla 646 00:31:03,080 --> 00:31:05,210 že bychom mohli ve skutečnosti chtít použít k jeho délce. 647 00:31:05,210 --> 00:31:07,430 >> Ale dovolte mi, abych přejděte doprava. 648 00:31:07,430 --> 00:31:11,280 Můžete mít pouze jeden primární index pro tabulku, 649 00:31:11,280 --> 00:31:16,380 ale chci použít některý z nich, Nyní se uživatelským jménem, ​​řekli byste? 650 00:31:16,380 --> 00:31:21,980 Co by uživatelské jméno být založena na vágní Pochopení těchto čtyř variant? 651 00:31:21,980 --> 00:31:23,340 Jen tím, že jejich jména? 652 00:31:23,340 --> 00:31:24,140 >> Diváků: Unique. 653 00:31:24,140 --> 00:31:25,100 >> DAVID J. Malan: Tak jedinečné, že jo? 654 00:31:25,100 --> 00:31:28,190 Takže se ukazuje, že nejen že by mohla řeknete databázi, v předstihu, 655 00:31:28,190 --> 00:31:30,380 To je hlavní způsob identifikace polí. 656 00:31:30,380 --> 00:31:32,990 Můžete si také říkají, že je Bude to jedinečná pole. 657 00:31:32,990 --> 00:31:34,700 To nebude věc, kterou jsem spoléhat na 658 00:31:34,700 --> 00:31:38,490 ale já bych databáze do mají v zásadě, že pokud podmínka, tak 659 00:31:38,490 --> 00:31:42,340 že kdybych někdy zkoušeli registrovat dva uživatelé se stejným názvem, 660 00:31:42,340 --> 00:31:44,360 databáze naplno nebude mě nechat. 661 00:31:44,360 --> 00:31:47,490 Mohl bych mít nějaké další kód v PHP, která brání tolik, 662 00:31:47,490 --> 00:31:50,640 ale databáze také může zajistit že se nikdy nestane. 663 00:31:50,640 --> 00:31:53,370 >> Nyní, jak je stranou, a to zejména si myslíte o závěrečných prací, 664 00:31:53,370 --> 00:31:57,030 Mějte na paměti, it indexu a full textu jsou vlastně docela užitečné. 665 00:31:57,030 --> 00:32:01,080 Máte-li k dispozici větší databanku, ne s desítky, ale stovky či tisíce 666 00:32:01,080 --> 00:32:05,270 či dokonce miliony polí, můžete také říct databázi předem 667 00:32:05,270 --> 00:32:07,980 To je oblast, jdu k vyhledávání na pozemku. 668 00:32:07,980 --> 00:32:10,520 Možná, že její jméno, Možná, že je to bio, pokud jste 669 00:32:10,520 --> 00:32:13,750 dělat Facebook-jako webové stránky, které má odstavce, že uživatel je dovoleno 670 00:32:13,750 --> 00:32:16,799 zachránit, a chcete-li řekněte databázi předem 671 00:32:16,799 --> 00:32:20,090 Budu se vyhledávání na tomto poli hodně, ale to není nutně jedinečný, 672 00:32:20,090 --> 00:32:22,800 můžete zadat vytvořit mi index. 673 00:32:22,800 --> 00:32:27,990 Nebo můžete říci také dovolit, abych to udělal druh libovolných vyhledávání, jako je Command 674 00:32:27,990 --> 00:32:30,420 nebo se stisknutou klávesou F, stejně jako vy by mohl v textovém editoru, 675 00:32:30,420 --> 00:32:34,184 takže byste se mohli podívat libovolné řetězce nebo podřetězce v této oblasti. 676 00:32:34,184 --> 00:32:36,600 Jinými slovy, jsme stále do té míry, v semestru 677 00:32:36,600 --> 00:32:40,720 kde se nemusíte obávat jak implementovat věci efektivně. 678 00:32:40,720 --> 00:32:44,540 Musíte jen vědět, co Rozhodnutí designu, aby se tak, že jste 679 00:32:44,540 --> 00:32:48,470 pomocí správných nástrojů pro obchodu s cílem zvýšit objem funkce 680 00:32:48,470 --> 00:32:50,380 že ostatní lidé si vybudovali pro vás. 681 00:32:50,380 --> 00:32:54,240 Takže rekapitulace, by primární jen mají jednu, můžete mít pouze jeden, 682 00:32:54,240 --> 00:32:59,630 a je to věc, kterou jste se zavázat, že použití k určení polí jedinečně. 683 00:32:59,630 --> 00:33:02,710 Unikátní je právě svým duchem podobat, ale můžete jen občas použít, 684 00:33:02,710 --> 00:33:04,530 ale chcete databáze ji uložit. 685 00:33:04,530 --> 00:33:08,050 Index prostě znamená, preventivně urychlit v budoucnu 686 00:33:08,050 --> 00:33:10,230 takže mohu hledat věci v této oblasti. 687 00:33:10,230 --> 00:33:13,700 A pak plné znění je obecně pro odstavce, nebo eseje, nebo velké skupiny 688 00:33:13,700 --> 00:33:16,270 textu, kde vás také chtít mít 689 00:33:16,270 --> 00:33:19,420 divoké karty, jako ekvivalent hvězdy. 690 00:33:19,420 --> 00:33:19,920 Přesně tak. 691 00:33:19,920 --> 00:33:22,580 >> Tak to byl druh hodně najednou. 692 00:33:22,580 --> 00:33:25,220 Uvidíme, jestli se nemůžeme pálit několik z těchto funkcí 693 00:33:25,220 --> 00:33:29,540 a pak postavit něco poměrně jednoduchý, ale výkonný. 694 00:33:29,540 --> 00:33:31,380 Takže mezi ostatní Rozhodnutí design vám nablízku 695 00:33:31,380 --> 00:33:34,005 nakonec bude mít se spolu linie skladovacích motorů. 696 00:33:34,005 --> 00:33:37,370 A dovolte mi, aby zmínku o tomto v očekávání závěrečných prací, 697 00:33:37,370 --> 00:33:42,020 a předvídání pojďme say-- no pojďme to udělat. 698 00:33:42,020 --> 00:33:43,820 Budujme tento malý aplikace jako první. 699 00:33:43,820 --> 00:33:48,070 Chystám se jít do mého terminálu okna, a zde není 700 00:33:48,070 --> 00:33:52,500 pouze counter.php, které jsme nyní děje jak se zbavit, jak již germanu, 701 00:33:52,500 --> 00:33:54,570 ale máme spoustu adresářů a to 702 00:33:54,570 --> 00:33:58,080 bude velmi podobné v duchu na to, co uvidíte v problému nastavit sedm. 703 00:33:58,080 --> 00:34:00,980 >> Takže máme tři adresáře zahrnuje veřejné a šablony, které 704 00:34:00,980 --> 00:34:05,040 je přesně tam, kde jsme skončili na Pondělí celé naší MVC paradigmatu. 705 00:34:05,040 --> 00:34:09,290 A rekapitulace, na veřejnosti se chystá jít jakýkoliv soubor, který chci uživatelům ve skutečnosti 706 00:34:09,290 --> 00:34:12,969 v moci navštívit v jejich prohlížeče pomocí adresy URL. 707 00:34:12,969 --> 00:34:13,502 Šablona. 708 00:34:13,502 --> 00:34:14,710 Co jsme dát do šablony? 709 00:34:14,710 --> 00:34:17,070 Jaké věci? 710 00:34:17,070 --> 00:34:21,659 Nebylo moc, ale pár Soubory nejpozději v pondělí. 711 00:34:21,659 --> 00:34:22,619 Jo. 712 00:34:22,619 --> 00:34:23,100 >> Diváků: Záhlaví a zápatí? 713 00:34:23,100 --> 00:34:24,516 >> DAVID J. Malan: Záhlaví a zápatí. 714 00:34:24,516 --> 00:34:26,679 Takže máme něco podobného i dnes. 715 00:34:26,679 --> 00:34:30,330 Máme ještě několik dalších souborů, ale Zápatí vidím, záhlaví vidím, 716 00:34:30,330 --> 00:34:31,909 a spoustu dalších souborů. 717 00:34:31,909 --> 00:34:35,482 Tak tohle je ekvivalentní zastává názor, V MVC, která 718 00:34:35,482 --> 00:34:37,690 znovu, bude trochu víc jasné, problém nastavit sedm, 719 00:34:37,690 --> 00:34:40,380 ale to je jen složka, že jsem uvedení hodně mých estetiky. 720 00:34:40,380 --> 00:34:42,840 Spousta mých HTML, hodně mých forem. 721 00:34:42,840 --> 00:34:46,899 Mezitím, zahrnuje, je další adresář, který má tyto tři soubory 722 00:34:46,899 --> 00:34:48,440 a pojďme se rychle podívat na to. 723 00:34:48,440 --> 00:34:51,699 >> Chystám se jít dopředu a otevřít config.php. 724 00:34:51,699 --> 00:34:54,610 Jak to dopadá, mnohem stejně jako dříve v termínu, 725 00:34:54,610 --> 00:34:57,850 jste ostrý součástí CS50 tečka h s pset7. 726 00:34:57,850 --> 00:35:00,780 V dnešním příkladu, budete k tomu ekvivalent, který 727 00:35:00,780 --> 00:35:03,600 s vyžadovat prohlášení které účinně 728 00:35:03,600 --> 00:35:05,340 zahrnuje tyto několik řádků. 729 00:35:05,340 --> 00:35:08,225 Takže aby bylo jasno, to je soubor s názvem config.php. 730 00:35:08,225 --> 00:35:09,350 A všimněte si, co to dělá. 731 00:35:09,350 --> 00:35:11,970 Je to zřejmě něco mystické, soustružení na chybová hlášení 732 00:35:11,970 --> 00:35:13,680 takže je můžete vidět v prohlížeči. 733 00:35:13,680 --> 00:35:15,860 Je to tedy zřejmě vyžaduje dva další soubory 734 00:35:15,860 --> 00:35:19,530 tak to je jako #include v C, a pak tohle jsme se vidět, 735 00:35:19,530 --> 00:35:22,720 a my jsme spoléhali na to zapne že nákupní košík jako funkčnost. 736 00:35:22,720 --> 00:35:25,610 >> To znamená, že cookie být poslán zpět a vpřed. 737 00:35:25,610 --> 00:35:27,290 Tak proč je to zajímavé? 738 00:35:27,290 --> 00:35:32,460 No, když se vrátíme k tomu adresář a otevřít, například, 739 00:35:32,460 --> 00:35:33,741 constance.php. 740 00:35:33,741 --> 00:35:38,840 Všimněte si, že PHP dělá podpůrné konstanty, není to úplně jako #define v C. 741 00:35:38,840 --> 00:35:41,290 Místo toho doslova říkají definované a oznámení 742 00:35:41,290 --> 00:35:44,110 že jsem se ukládají do předem čtyři konstanty v tomto souboru. 743 00:35:44,110 --> 00:35:47,020 Jeden pro dnešní databáze, pro moje heslo pro mé uživatelské jméno, 744 00:35:47,020 --> 00:35:48,690 a název serveru. 745 00:35:48,690 --> 00:35:51,644 Tak to skutečně bude docela podobný problém nastavit sedm. 746 00:35:51,644 --> 00:35:54,560 A konečně, a to je místo, kde jsem dostane nějaké pěkné funkce 747 00:35:54,560 --> 00:35:59,000 z pracovníků, functions.php je banda kódu psali jsme, 748 00:35:59,000 --> 00:36:01,040 a já jsem ukradl některé z těchto od problém nastavit sedm 749 00:36:01,040 --> 00:36:05,920 pro dnešní den, který dělá spoustu věcí a pojďme stačí se podívat na jeden z nich 750 00:36:05,920 --> 00:36:07,270 zejména. 751 00:36:07,270 --> 00:36:09,720 Tato funkce zde dotaz, bude 752 00:36:09,720 --> 00:36:13,600 PHP funkce nazýváme za účelem výkonu SQL. 753 00:36:13,600 --> 00:36:16,070 Před chvílí jsme byli s použitím phpMyAdmin, ale to je jen 754 00:36:16,070 --> 00:36:18,720 pro druh výukovým účelům a diagnostické účely 755 00:36:18,720 --> 00:36:20,494 a zapomínání databázový soubor. 756 00:36:20,494 --> 00:36:22,660 Pokud se skutečně používat svůj databáze, vy, člověk, 757 00:36:22,660 --> 00:36:24,100 se zřejmě nebude k vytažení web 758 00:36:24,100 --> 00:36:25,740 stránky pokaždé, když někdo zaregistruje. 759 00:36:25,740 --> 00:36:29,870 Budeš psát kód, který vložky a odstraní uživatele na vyžádání, 760 00:36:29,870 --> 00:36:32,490 a budeme to dělat pomocí funkce dotazu. 761 00:36:32,490 --> 00:36:35,360 Kdybych teď posunout dolů, je tu bude ještě několik funkcí. 762 00:36:35,360 --> 00:36:37,170 Přesměrování se chystá být funkce jsme napsali 763 00:36:37,170 --> 00:36:40,160 pro vás, které vám umožní Poslat uživateli na jinou adresu URL, 764 00:36:40,160 --> 00:36:43,780 a činí je funkce, docela jako jsme viděli v pondělí, že ve skutečnosti činí 765 00:36:43,780 --> 00:36:48,000 šablona, ​​ale více o nich forma pset7 vlastní procházce. 766 00:36:48,000 --> 00:36:50,500 Pro tuto chvíli, pojďme do toho a to. 767 00:36:50,500 --> 00:36:54,860 >> Nech mě jít do mé přednášky stolu a vidět, že je v současné době nic 768 00:36:54,860 --> 00:36:59,640 jen ještě tady, a dovolte mi, abych také jít do mého veřejného adresáře, kde 769 00:36:59,640 --> 00:37:02,780 je tam jen jeden soubor, index.php. 770 00:37:02,780 --> 00:37:06,920 Tento soubor se zdá být super jednoduché v současné době, to vypadá takhle. 771 00:37:06,920 --> 00:37:09,110 Velmi podobně, jak jsme skončil v pondělí. 772 00:37:09,110 --> 00:37:11,945 Jsem vyžadující tento soubor, config.php, který je v 773 00:37:11,945 --> 00:37:15,160 obsahuje adresář, který je dot dot, moji rodiče, 774 00:37:15,160 --> 00:37:17,650 a pak je to právě činí tento soubor. 775 00:37:17,650 --> 00:37:18,960 Takže to, co je to soubor? 776 00:37:18,960 --> 00:37:24,700 >> Pojďme otevřít v mých šablon form.php, a my budeme vidět. 777 00:37:24,700 --> 00:37:28,500 Super jednoduché, zřejmě je tato forma chystá předložit do _GET $ nebo $ _POST. 778 00:37:28,500 --> 00:37:29,320 Rychlá kontrola zdravý rozum. 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 Doslova vizuálně vyhledat soubor. 781 00:37:35,690 --> 00:37:36,610 Metoda se rovná příspěvku. 782 00:37:36,610 --> 00:37:39,280 Takže to nebude používat URL jako Google dělá, že to bude tak nějak skrýt 783 00:37:39,280 --> 00:37:41,030 Informace pozadí scény a je to 784 00:37:41,030 --> 00:37:43,580 bude předkládat soubor s názvem register.php, 785 00:37:43,580 --> 00:37:45,660 a to je soubor jsme ještě nenapsal 786 00:37:45,660 --> 00:37:47,610 ale to, co to bude vypadat jako to je. 787 00:37:47,610 --> 00:37:52,670 >> Pokud jdu do samostatné stránky Toto je co localhost / index.php vypadá. 788 00:37:52,670 --> 00:37:56,930 A opět, server je jen za předpokladu, že index.php. 789 00:37:56,930 --> 00:37:57,910 Enter. 790 00:37:57,910 --> 00:37:59,870 Tak to je místo, kde jsme na, a to, co chci dělat 791 00:37:59,870 --> 00:38:02,450 je schopen zadat věci jako David, a pak 792 00:38:02,450 --> 00:38:08,050 moje telefonní číslo, které se bude říkat 617-555-1212 teď, zaregistrujte se 793 00:38:08,050 --> 00:38:09,910 a teď register.php nebyl nalezen. 794 00:38:09,910 --> 00:38:11,440 Tak jsem třeba to provést. 795 00:38:11,440 --> 00:38:13,320 Takže pojďme rychle vytasit něco takového nahoru. 796 00:38:13,320 --> 00:38:18,640 Nech mě jít do mého veřejném seznamu a to gedit z register.php, 797 00:38:18,640 --> 00:38:22,300 a teď budu pokračovat a spuštění režimu PHP, jako jsme to udělali v pondělí, 798 00:38:22,300 --> 00:38:25,430 a zavřete PHP tag, a pojďme udělat pár věcí. 799 00:38:25,430 --> 00:38:28,336 >> Takže jeden, já vím, z když napsal, že formu, 800 00:38:28,336 --> 00:38:29,960 že chci zkontrolovat následující. 801 00:38:29,960 --> 00:38:35,670 Pokud je prázdná, bez ohledu na uživatele zadali do pole Název, pak 802 00:38:35,670 --> 00:38:39,860 Jdu něco říct jako omluvit chybí jméno. 803 00:38:39,860 --> 00:38:42,380 Omlouvám se, zatím, je není postaven v PHP věc, 804 00:38:42,380 --> 00:38:45,970 je to funkce jsme psali ve functions.php pro pset7 805 00:38:45,970 --> 00:38:47,940 tak, že budete mít k němu přístup. 806 00:38:47,940 --> 00:38:53,830 Jinak v případě, že jiné oblasti je prázdný, číslo, pak jsem 807 00:38:53,830 --> 00:38:58,370 jít omluvit uživatele a říkají chybějící číslo. 808 00:38:58,370 --> 00:38:59,320 Uložte tento soubor. 809 00:38:59,320 --> 00:39:02,640 >> Nyní se vraťme do svého prohlížeče, zpět do fóra zkuste to znovu. 810 00:39:02,640 --> 00:39:04,070 Registrovat. 811 00:39:04,070 --> 00:39:05,090 OK. 812 00:39:05,090 --> 00:39:06,730 Nic se nestalo, což je dobré. 813 00:39:06,730 --> 00:39:08,120 Nedostal jsem se chybová zpráva. 814 00:39:08,120 --> 00:39:11,651 Ale když místo toho, pojďme znovu tento strana, a neposkytuje nic. 815 00:39:11,651 --> 00:39:12,150 Sakra. 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 Udělej to. 818 00:39:17,140 --> 00:39:18,810 Registrovat. 819 00:39:18,810 --> 00:39:20,350 Co jsem udělal špatně? 820 00:39:20,350 --> 00:39:24,860 Pokud je prázdný, name $ _POST. 821 00:39:24,860 --> 00:39:26,350 Ještě jednou? 822 00:39:26,350 --> 00:39:27,670 >> Oh, samozřejmě. 823 00:39:27,670 --> 00:39:30,919 Zapomněl jsem nejdůležitější část, která je třeba ("../ zahrnuje / config.php."). 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 Potřebuji mít přístup k Omlouvám se funkce, které 826 00:39:36,460 --> 00:39:37,770 Proto se nic neděje. 827 00:39:37,770 --> 00:39:39,460 Funkce ve skutečnosti neexistuje. 828 00:39:39,460 --> 00:39:40,640 Tak si to zkuste znovu. 829 00:39:40,640 --> 00:39:42,350 Pojďme znovu načíst stránku, klepněte na tlačítko Registrovat. 830 00:39:42,350 --> 00:39:43,060 OK. 831 00:39:43,060 --> 00:39:43,770 Tady to je. 832 00:39:43,770 --> 00:39:45,700 Takže výstup jsme Zde je vidět výsledek 833 00:39:45,700 --> 00:39:47,685 volání omluvit funkce, super jednoduchý, 834 00:39:47,685 --> 00:39:50,060 a to jen vytiskne cokoliv Dávám to jako argument. 835 00:39:50,060 --> 00:39:51,370 >> Dobře, tak pojďme spolupracovat. 836 00:39:51,370 --> 00:39:54,240 Pojďme poskytnout své jméno jako David, zaregistrujte se, 837 00:39:54,240 --> 00:39:56,890 Chybí číslo OK pojďme stanoví, že taky. 838 00:39:56,890 --> 00:39:58,650 617-555-1212. 839 00:39:58,650 --> 00:39:59,250 Registrovat. 840 00:39:59,250 --> 00:39:59,750 OK. 841 00:39:59,750 --> 00:40:02,760 Takže je všechno v pořádku teď, jen nic zajímavé se děje. 842 00:40:02,760 --> 00:40:06,000 Takže teď pojďme udělat něco víc Zajímavé stane takhle. 843 00:40:06,000 --> 00:40:09,980 Nech mě jít do phpMyAdmin, a pojďme vlastně vytvořit tabulku s názvem uživatelé 844 00:40:09,980 --> 00:40:12,330 Chystám se dát tři sloupy, a budu rychle 845 00:40:12,330 --> 00:40:16,250 vytvořit ID, a pak jméno a číslo, 846 00:40:16,250 --> 00:40:18,832 a pole ID jsem k odchodu jako int. 847 00:40:18,832 --> 00:40:20,790 Název pole jdu ponechat jako varchar, 848 00:40:20,790 --> 00:40:23,257 a řekneme 64, poněkud svévolně. 849 00:40:23,257 --> 00:40:25,090 Počet Jdu aby, víš co? 850 00:40:25,090 --> 00:40:27,350 Jdeme do zde podpora čísla v USA, 851 00:40:27,350 --> 00:40:31,510 tak jdu něco dělat jako char a pak 10 znaků 852 00:40:31,510 --> 00:40:34,540 max pro předčíslí a pak sedm číslic. 853 00:40:34,540 --> 00:40:37,870 A pak tady, jdu specifikovat auto přírůstek této oblasti 854 00:40:37,870 --> 00:40:40,550 aby to primární klíč, a Chystám se jít dopředu a ne 855 00:40:40,550 --> 00:40:42,240 kontrolovat některé z těchto dalších boxů. 856 00:40:42,240 --> 00:40:48,030 >> Takže když jsem teď konečně klepněte na tlačítko Uložit, a já jsem se vrátit k mému uživatelů tabulky, 857 00:40:48,030 --> 00:40:52,270 To je, jak to vypadá, když Nyní klikněte na strukturu Nová karta. 858 00:40:52,270 --> 00:40:54,550 Takže to, aby bylo jasné, je jen způsob, jak phpMyAdmin se 859 00:40:54,550 --> 00:40:58,570 říkat své databázové tabulky má ID, jméno a číslo 860 00:40:58,570 --> 00:41:02,040 s těmito konkrétní konfigurací a budeme ignorovat zbývající pole 861 00:41:02,040 --> 00:41:03,140 tam teď. 862 00:41:03,140 --> 00:41:04,810 >> Takže teď, co mám dělat? 863 00:41:04,810 --> 00:41:09,060 Takže když jsem se jít do mého zdrojový kód, pokud je vše v pořádku 864 00:41:09,060 --> 00:41:11,190 Chci spustit následující dotaz. 865 00:41:11,190 --> 00:41:14,970 Vložit do, a mohu jen říkají uživatelé nevím přesně 866 00:41:14,970 --> 00:41:18,620 Potřebujeme ty zadní klíšťata, pokud je to není nebezpečný slovo jako uživatele. 867 00:41:18,620 --> 00:41:22,810 Budu říkat jména, číslo, a pak tady jsem 868 00:41:22,810 --> 00:41:24,960 nebude pevný kód číslice hodnot dosud. 869 00:41:24,960 --> 00:41:26,760 Chystám se dát dva otazníky. 870 00:41:26,760 --> 00:41:29,320 A to je konvence v mnoha jazycích 871 00:41:29,320 --> 00:41:31,730 přičemž v případě, že chcete mít zástupný řetězec 872 00:41:31,730 --> 00:41:34,105 budete používat na otázku značky, z důvodů, které budu 873 00:41:34,105 --> 00:41:36,370 vrátit se na chatu o bezpečnost, a zde 874 00:41:36,370 --> 00:41:39,420 Chystám se v těch dvě pole psát jméno, 875 00:41:39,420 --> 00:41:44,850 a pak po řadu, a nyní soubor uložte. 876 00:41:44,850 --> 00:41:47,090 >> A teď budu jít dolů je super zde 877 00:41:47,090 --> 00:41:55,690 jednoduše říci rendersuccess.php, který bude další šablony. 878 00:41:55,690 --> 00:41:57,380 Chystám se vytvořit opravdu rychle. 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php a já jsem prostě jít říci H1 úspěch v tomto souboru. 880 00:42:06,270 --> 00:42:06,990 Dobrá. 881 00:42:06,990 --> 00:42:11,312 Takže teď, pojďme zpět k prohlížeč, kde jsem navštívil předtím. 882 00:42:11,312 --> 00:42:14,270 Pojďme dál a potvrďte jsem napsal Davida, jsem napsal v telefonní číslo, 883 00:42:14,270 --> 00:42:15,390 registrovat. 884 00:42:15,390 --> 00:42:16,100 Sakra. 885 00:42:16,100 --> 00:42:17,420 Co jsem udělal špatně? 886 00:42:17,420 --> 00:42:20,850 Takže jsem viděl chybu tady, mají chybu ve vašem syntaxi SQL. 887 00:42:20,850 --> 00:42:24,900 Dovolte mi, abych skočit zpět do gedit, ať mě jít zpátky do register.php, 888 00:42:24,900 --> 00:42:28,830 a to, co jsem opomenout, že bylo důležité, naposledy? 889 00:42:28,830 --> 00:42:29,722 Potřebuju to. 890 00:42:29,722 --> 00:42:32,930 Chcete-li vědět, že jiné než z s nevšiml, ale potřebuju to. 891 00:42:32,930 --> 00:42:35,596 >> Takže teď se vraťme, a to bylo užitečné vidět v prohlížeči 892 00:42:35,596 --> 00:42:37,680 a to je důvod, proč v config.php jsme vyplivnout chyby. 893 00:42:37,680 --> 00:42:41,770 Pojďme dál a znovu, klepněte na tlačítko Pokračovat, úspěch. 894 00:42:41,770 --> 00:42:47,060 Takže teď mě nech jít ke mně Databáze tady a klikněte na uživatele, 895 00:42:47,060 --> 00:42:51,680 a procházet, a všimněte si teď mít David ve své databázi zde. 896 00:42:51,680 --> 00:42:55,810 Nyní technicky tento web je ale ne na veřejný internet, 897 00:42:55,810 --> 00:42:57,890 takže nemůžu mít jiný lidé v uvedení zde, 898 00:42:57,890 --> 00:43:01,120 ale když jsem teď chtěl, pro instance, poslat sám textovou zprávu. 899 00:43:01,120 --> 00:43:03,920 Pojďme ven na údu zde a uvidíme, jestli to skutečně funguje. 900 00:43:03,920 --> 00:43:07,331 Chystám se jít dopředu a odstranit tento řádek 901 00:43:07,331 --> 00:43:09,080 a budeme rozmazání to ve videu později 902 00:43:09,080 --> 00:43:11,900 takže nemáme Celý internet mi SMS, 903 00:43:11,900 --> 00:43:17,270 a nyní budeme pokračovat až do prohlížeč a půjdeme přes přednášet 904 00:43:17,270 --> 00:43:22,040 a my budeme psát v různých Číslo které zde nastavíte, zaregistrujte se, úspěch. 905 00:43:22,040 --> 00:43:25,550 >> Takže teď, moje číslo je pravděpodobně v databáze, a teď to nejzábavnější. 906 00:43:25,550 --> 00:43:28,774 Pojďme skutečně používat PHP dělat něco programově, 907 00:43:28,774 --> 00:43:30,940 buď z příkazu linka nebo někde jinde, 908 00:43:30,940 --> 00:43:32,773 a teď jsem jen jít, aby to jednoduché 909 00:43:32,773 --> 00:43:36,230 a já jdu do mého adresář zde a proveďte následující kroky. 910 00:43:36,230 --> 00:43:44,920 Gedit script řekněme, my budeme říkat text, #! / user / bin / env PHP, 911 00:43:44,920 --> 00:43:46,700 jako jsme viděli minule. 912 00:43:46,700 --> 00:43:47,950 PHP. 913 00:43:47,950 --> 00:43:55,055 >> Teď budu dělat, vyžadovat zahrnuje config.php, 914 00:43:55,055 --> 00:43:57,360 i když by to mohlo vyvolat mírné chyby. 915 00:43:57,360 --> 00:44:03,960 A teď budu pokračovat a říct, řádky, dotaz, vyberte hvězda od uživatelů, 916 00:44:03,960 --> 00:44:08,149 a teď tady budu dělat techniku od minule pro každý řádek jako řádek. 917 00:44:08,149 --> 00:44:09,690 A já udělám něco jednoduchého. 918 00:44:09,690 --> 00:44:19,090 Printf řekněme, že jméno je to, a číslo je to, zpětné lomítko n. 919 00:44:19,090 --> 00:44:23,320 A teď jdu projít v řadě citovat konec citátu jméno, 920 00:44:23,320 --> 00:44:28,140 a číslo řádku citace konec citátu, a teď pojďme do toho 921 00:44:28,140 --> 00:44:31,430 a okno má terminál chmod + x to, aby se 922 00:44:31,430 --> 00:44:33,970 tento skript s názvem textu spustitelný soubor. 923 00:44:33,970 --> 00:44:36,080 A teď pojďme běžet text. 924 00:44:36,080 --> 00:44:37,590 >> OK, tak pokrok. 925 00:44:37,590 --> 00:44:39,960 Takže jsem teď napsal příkazový řádek skriptu, 926 00:44:39,960 --> 00:44:43,300 v jazyce PHP s názvem, který, z důvodu, že vyžadují řadu, 927 00:44:43,300 --> 00:44:46,380 má přístup ke všem těm konfigurace konstanty, které jsem uvedené. 928 00:44:46,380 --> 00:44:48,177 Název databáze a tak dále. 929 00:44:48,177 --> 00:44:50,260 Ve skutečnosti, jen aby bylo jasno že to není náhoda, 930 00:44:50,260 --> 00:44:54,730 nech mě jít napřed a registraci velmi rychle, někdo jako Rob 931 00:44:54,730 --> 00:44:58,890 a mu dá číslo 555-1212. 932 00:44:58,890 --> 00:45:01,557 >> A teď, když jsem spustit skript znovu, všimněte si moc 933 00:45:01,557 --> 00:45:03,140 z toho, co děláme s databází. 934 00:45:03,140 --> 00:45:07,680 Teď jsem hned viděl, co Další dva řádky jsou v mé databázi. 935 00:45:07,680 --> 00:45:10,699 Takže teď pojďme zkusit něco udělat i milovník uvnitř, 936 00:45:10,699 --> 00:45:12,740 a to je ta část, máme netestováno předem, 937 00:45:12,740 --> 00:45:15,910 tak naposledy, co jsem to udělal to šlo hrozně nakřivo, 938 00:45:15,910 --> 00:45:17,120 Máme video, které v tomto smyslu. 939 00:45:17,120 --> 00:45:18,286 >> Vlastně jo, sranda stranou. 940 00:45:18,286 --> 00:45:20,480 Takže v poslední době, přednáška stejně jako před dvěma lety, 941 00:45:20,480 --> 00:45:23,230 Rozhodli jsme se, jsem se rozhodl, aby se to vše by bylo skvělý nápad 942 00:45:23,230 --> 00:45:28,150 dynamicky generovat e-maily třídy, přes celý databáze CS50 943 00:45:28,150 --> 00:45:33,390 studenti, kteří nám dali jejich čísla a jejich mobil dopravci, kteří vás 944 00:45:33,390 --> 00:45:36,290 možná pamatujete z pset0, jak rozum, to dopadá 945 00:45:36,290 --> 00:45:40,650 Měl jsem malou chybu v mém programu a udělal pár chyb v roce 2012, myslím. 946 00:45:40,650 --> 00:45:43,997 >> Kdy, co jsem měl na smyčce, která se dělal přesně tyhle věci, 947 00:45:43,997 --> 00:45:46,580 iterace přes databázi, dostat jméno z databáze, 948 00:45:46,580 --> 00:45:49,940 jméno z databáze, a pak se na sebe opakování tohoto cyklu jsem poslal e-mail. 949 00:45:49,940 --> 00:45:54,130 Ale místo toho, ¾e odeslání jedné e-mailu, I poslal jednoho e-mailu první iteraci, 950 00:45:54,130 --> 00:45:58,200 a dva e-maily druhé iteraci, poslal tři e-maily druhé iteraci, což 951 00:45:58,200 --> 00:46:01,230 jak si možná pamatujete z našich diskuse o asymptotické notace 952 00:46:01,230 --> 00:46:06,400 tento velký O špatných, jako n na druhou je, kolik zpráv jsem poslal, 953 00:46:06,400 --> 00:46:08,560 ale to nebylo ani e-maily to textové zprávy. 954 00:46:08,560 --> 00:46:12,070 >> A jak víte, účast není Super High ke konci semestru 955 00:46:12,070 --> 00:46:15,360 a tak jsem si myslel, že by bylo roztomilé na čas říci: "Proč nejsi třída?" 956 00:46:15,360 --> 00:46:17,880 V textu zprávy I odeslána na celou třídu, 957 00:46:17,880 --> 00:46:22,140 a to bylo legrační, rád 50% třídy, ale druhý 50%, z nichž někteří 958 00:46:22,140 --> 00:46:26,102 vyděšený, poslal jsem neuvěřitelně omluvným sladké poznámky 959 00:46:26,102 --> 00:46:28,560 aby zaměstnanci omlouvat za co vynechal přednášku právě 960 00:46:28,560 --> 00:46:29,530 to jednou, že jo? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> Tak, že by strašně nakřivo. 963 00:46:34,030 --> 00:46:37,030 Takže v tomto duchu, zkusme to znovu, ale jen s mým číslem. 964 00:46:37,030 --> 00:46:41,940 V předstihu, v functions.php, Napsal jsem tuto funkci zde. 965 00:46:41,940 --> 00:46:44,250 Je to jen text, a to trvá tři argumenty. 966 00:46:44,250 --> 00:46:46,360 Číslo, nosič a zpráva. 967 00:46:46,360 --> 00:46:50,390 >> Já používám příkaz switch, který nádherně PHP vzít řetězce, a to nejen 968 00:46:50,390 --> 00:46:53,350 celá čísla, a já jsem se realizovat veškerou podporu pro to ještě, 969 00:46:53,350 --> 00:46:55,370 Právě jsem udělal AT & T a Verizon. 970 00:46:55,370 --> 00:46:57,610 Vzhledem k tomu, že dopadá že s těmito nosiči 971 00:46:57,610 --> 00:47:00,570 mají e-mail na SMS bran, kdy můžete opravdu 972 00:47:00,570 --> 00:47:05,529 pošlete e-mail na adresu jako telefonní číslo v vtext.com 973 00:47:05,529 --> 00:47:08,070 a v případě, že uživatel není blokován zprávy, bude to projít 974 00:47:08,070 --> 00:47:09,340 je textová zpráva. 975 00:47:09,340 --> 00:47:13,270 >> A teď, jak to udělat, budu muset přidat jedno pole opravdu rychle, aby mé databáze. 976 00:47:13,270 --> 00:47:15,470 Chystám se jít do moje konstrukce, a já jsem 977 00:47:15,470 --> 00:47:21,880 bude pokračovat a přidat pole na konci tabulky. 978 00:47:21,880 --> 00:47:25,227 Pojďme na tlačítko Přejít, a já jsem bude volat tento dopravce 979 00:47:25,227 --> 00:47:27,310 a teď jdu ponechat jako text pruhu, 980 00:47:27,310 --> 00:47:29,320 ale můžeme být milovník v budoucnosti. 981 00:47:29,320 --> 00:47:31,961 Chystám se jít rychle na mém stole, a já jsem 982 00:47:31,961 --> 00:47:34,210 bude, jak se zbavit Rob, protože to je falešný číslo, 983 00:47:34,210 --> 00:47:38,540 Chystám se jít do Upravit tady a já jsem změní svůj nosič ručně 984 00:47:38,540 --> 00:47:43,410 být Verizon, který jej je, a teď tady. 985 00:47:43,410 --> 00:47:44,980 >> Pojďme udělat rychlou kontrolu zdravý rozum. 986 00:47:44,980 --> 00:47:52,730 Pojďme otevřít náš textový skript, který vypadá to, nosič je% s. 987 00:47:52,730 --> 00:47:58,230 Děláme mnohem větší chybu kontrolu, než jsem udělal v roce 2012, dopravce. 988 00:47:58,230 --> 00:48:01,160 A teď, já jdu dopředu a znovu spusťte skript. 989 00:48:01,160 --> 00:48:01,660 OK. 990 00:48:01,660 --> 00:48:06,100 Carrier je Verizon, což znamená, Nyní doufám, že můžu dělat jen to. 991 00:48:06,100 --> 00:48:08,360 Správně v letošním roce, doufejme, že je to tady. 992 00:48:08,360 --> 00:48:12,200 >> Takže uvnitř této smyčky for, jsem bude mít nejen tento printf, 993 00:48:12,200 --> 00:48:15,990 Jsem také chystá zavolat text a použití této funkce odvolání 994 00:48:15,990 --> 00:48:19,670 Byl to trvá několik, nosič a zpráva. 995 00:48:19,670 --> 00:48:23,310 Takže pojďme se podívat, číslo bude být řádek citovat konec citátu "číslo" 996 00:48:23,310 --> 00:48:31,660 řádek citace konec citátu "dopravce" a poslední z nich byla zpráva. 997 00:48:31,660 --> 00:48:36,250 Nenechte mhouřit tento rok, středník. 998 00:48:36,250 --> 00:48:36,780 >> OK. 999 00:48:36,780 --> 00:48:38,280 Palce. 1000 00:48:38,280 --> 00:48:39,970 Uvidíme, jestli to funguje. 1001 00:48:39,970 --> 00:48:41,720 Dobře, tak. 1002 00:48:41,720 --> 00:48:43,000 Jdeme na to. 1003 00:48:43,000 --> 00:48:47,380 Pojďme odemknout telefon, přes prsty, sakra. 1004 00:48:47,380 --> 00:48:50,300 Nedefinovaný proměnná may-- oh počkej, počkej, počkej, opravdu rychle. 1005 00:48:50,300 --> 00:48:51,340 Velmi rychle, opravdu rychle. 1006 00:48:51,340 --> 00:48:53,380 To je naprosto stojí za to. 1007 00:48:53,380 --> 00:48:57,710 Nech mě chytit, dejte mi chytit, uh-oh. 1008 00:48:57,710 --> 00:48:59,965 Děkuji vám, že texty mají začal od někoho jiného. 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 Nech mě jít napřed a otevřít real rychle, dropbox.php / mail zde. 1011 00:49:11,650 --> 00:49:12,660 Standby. 1012 00:49:12,660 --> 00:49:14,455 Naprosto stojí za to. 1013 00:49:14,455 --> 00:49:17,430 Soubory ke stažení. 1014 00:49:17,430 --> 00:49:18,560 OK, zdroj src8m. 1015 00:49:18,560 --> 00:49:19,700 OK. 1016 00:49:19,700 --> 00:49:21,380 >> Potřebujete další jeden řádek zde. 1017 00:49:21,380 --> 00:49:24,530 Oh, že to je, že je to v Frosh IM, to je v registru na tři. 1018 00:49:24,530 --> 00:49:28,820 Oh ahoj, Margo, moc děkuji. 1019 00:49:28,820 --> 00:49:31,130 OK, a já jsem tu chybí tento řádek. 1020 00:49:31,130 --> 00:49:33,010 Takže dovolte mi, abych se rychle chytit tento řádek kódu, 1021 00:49:33,010 --> 00:49:36,200 který zahrnuje poštu nebo knihovnu že jsem vlastně chcete použít, 1022 00:49:36,200 --> 00:49:38,300 Jdu rychle zpět do funkce, 1023 00:49:38,300 --> 00:49:42,337 Chystám se jít na vrcholu tohoto souboru a požadovat, aby tento soubor stejně, 1024 00:49:42,337 --> 00:49:45,420 a teď jdu opravdu na mou prsty, když jsem se vrátit do příkazu 1025 00:49:45,420 --> 00:49:49,530 řádek skriptu, který je uvnitř dnešní místního hostitele adresáře. 1026 00:49:49,530 --> 00:49:50,610 Spustit textu. 1027 00:49:50,610 --> 00:49:52,720 Enter. 1028 00:49:52,720 --> 00:49:53,220 Mail. 1029 00:49:53,220 --> 00:49:53,719 Standby. 1030 00:49:53,719 --> 00:49:58,850 1031 00:49:58,850 --> 00:49:59,600 Standby. 1032 00:49:59,600 --> 00:50:01,680 Mail. 1033 00:50:01,680 --> 00:50:02,290 Oh, OK. 1034 00:50:02,290 --> 00:50:03,870 Jdeme na to. 1035 00:50:03,870 --> 00:50:06,880 >> Mail dostane nový PHP mailer. 1036 00:50:06,880 --> 00:50:09,970 Udělal jsem toto právo? 1037 00:50:09,970 --> 00:50:11,067 Sakra. 1038 00:50:11,067 --> 00:50:12,150 To-- oh, počkat, počkat, počkat. 1039 00:50:12,150 --> 00:50:12,649 Stand by. 1040 00:50:12,649 --> 00:50:15,820 1041 00:50:15,820 --> 00:50:18,630 Slibuji, že to je Bude to stojí za to. 1042 00:50:18,630 --> 00:50:20,340 Adresa. 1043 00:50:20,340 --> 00:50:24,390 To je důvod, proč nedělám příklady přímo před třídou. 1044 00:50:24,390 --> 00:50:26,350 Fuj. 1045 00:50:26,350 --> 00:50:27,910 Následující příjemci se nezdařilo. 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 Zkusme jednu poslední věc. 1048 00:50:33,040 --> 00:50:40,660 SMTP nastavit od, přidejte adresu, adresa je skutečně, že. 1049 00:50:40,660 --> 00:50:43,980 Zkusme tuto poslední část na adresu. 1050 00:50:43,980 --> 00:50:47,210 Aw, jsem opravdu smutné právě teď. 1051 00:50:47,210 --> 00:50:47,854 Děkuju. 1052 00:50:47,854 --> 00:50:50,270 Ale já opravdu oceňuji všechny texty jste odesílání. 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 Máte tento Davida. 1055 00:50:56,320 --> 00:50:59,310 Jste fouká to. 1056 00:50:59,310 --> 00:51:01,720 Pojďme ho tam nechat a budeme opravit v pondělí. 1057 00:51:01,720 --> 00:51:04,290 Uvidíme se pak. 1058 00:51:04,290 --> 00:51:08,090 >> Daven FARNHAM: A teď Hluboké Myšlenky od Daven Farnham. 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 Pokud binární strom spadne v lese a nikdo není kolem C to-- [se smíchem]. 1061 00:51:17,590 --> 00:51:18,998