1 00:00:00,000 --> 00:00:10,393 >> [Glazbom] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 DAVID J. Malan: U redu. 4 00:00:12,120 --> 00:00:12,830 Dobro došli natrag. 5 00:00:12,830 --> 00:00:13,890 Ovo je CS50. 6 00:00:13,890 --> 00:00:15,570 To je kraj tjedna 8. 7 00:00:15,570 --> 00:00:18,360 A kao što znate, imamo prilično redovitog radnog vremena u nekoliko 8 00:00:18,360 --> 00:00:21,090 od blagovaona dvorana, uključujući Annenberg. 9 00:00:21,090 --> 00:00:23,860 A neki od tima ljubazno uzeo neke fotografije u zadnje vrijeme. 10 00:00:23,860 --> 00:00:26,230 A u čast Halloween, mislili smo da 11 00:00:26,230 --> 00:00:30,160 podijeliti onu koja nam već uhvaćen od strane iznenađenje ovdje u Annenberg dvorani jednostavno 12 00:00:30,160 --> 00:00:31,490 neku večer. 13 00:00:31,490 --> 00:00:36,300 Vaš kolega Jakov pozirala ova slika, ali je više zabavno 14 00:00:36,300 --> 00:00:39,760 bio na Facebooku, uslijedila Razgovor što se dogodilo nakon toga. 15 00:00:39,760 --> 00:00:43,020 >> Njegov prvi post odgovor njegovu fotografiju je to. 16 00:00:43,020 --> 00:00:46,740 Nekoliko minuta kasnije, on je odlučio jednom do sebe s tim. 17 00:00:46,740 --> 00:00:53,800 On je otišao na onda ići na to, a potom, još više zabavno 18 00:00:53,800 --> 00:00:55,320 kad mu je mama zvučale. 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 I onda u konačnici, čini to bio samo 21 00:01:01,800 --> 00:01:04,860 prekrasna smicalica za igrati što se događa. 22 00:01:04,860 --> 00:01:07,080 >> Dakle, ako želite vidjeti Jakova i drugima, 23 00:01:07,080 --> 00:01:10,880 Među njima Cynthia Meng, koji je Iza kulisa CS50 zone osoblja, 24 00:01:10,880 --> 00:01:13,970 glavu na ovaj URL i ove drame ovdje. 25 00:01:13,970 --> 00:01:18,810 Dakle, bez dodatnih teškoća, danas smo nastaviti ovaj pogled na web programiranja, 26 00:01:18,810 --> 00:01:21,810 i stvarna stvaranje programa koji se ne odvijaju na naredbenog retka, 27 00:01:21,810 --> 00:01:24,080 ali umjesto toga pokrenuti unutar preglednika. 28 00:01:24,080 --> 00:01:26,320 >> Vjerojatno je sada, ili vrlo kratko, idete 29 00:01:26,320 --> 00:01:30,200 da se usred provedbe vlastiti web poslužitelj, koji se 30 00:01:30,200 --> 00:01:31,700 razlikuje od web programiranja. 31 00:01:31,700 --> 00:01:36,210 Web poslužitelj u pset6 je sve o pisanje softver koji zna kako se 32 00:01:36,210 --> 00:01:39,300 HTTP zahtjeva iz preglednika, ili čak i od tebe, ljudski, 33 00:01:39,300 --> 00:01:42,340 s programom pod nazivom Telnet i onda odgovoriti na te zahtjeve bilo 34 00:01:42,340 --> 00:01:48,600 tako pljuvanje iz HTML datoteke, ili JPEG ili GIF, ili čak .php datoteke. 35 00:01:48,600 --> 00:01:52,490 >> No, s web server, to nije trebao samo otvoriti PHP datoteku, 36 00:01:52,490 --> 00:01:55,260 nešto što završava u php, a zatim ispljune sadržaj. 37 00:01:55,260 --> 00:01:58,440 To je trebalo učiniti što da tu datoteku prvi? 38 00:01:58,440 --> 00:01:59,390 Tako govoriti. 39 00:01:59,390 --> 00:02:04,060 Nije ga sastaviti, rekao nam je u ponedjeljak, ali rather-- Dakle, interpretirati ga. 40 00:02:04,060 --> 00:02:08,070 >> PHP je tumačiti jezik, i tako jedan od ključnih značajki u vašem web 41 00:02:08,070 --> 00:02:11,550 poslužitelja, iako provodi nama, je ta sposobnost za svoj web poslužitelj 42 00:02:11,550 --> 00:02:12,490 primijetiti, oh. 43 00:02:12,490 --> 00:02:14,580 Ova je datoteka završava u php. 44 00:02:14,580 --> 00:02:17,970 Dopustite mi ne samo to poslati Korisnik kao da je statičan sadržaj, 45 00:02:17,970 --> 00:02:20,970 nego neka mi to pročitao line linije, s lijeva na desno, i interpretirati ga. 46 00:02:20,970 --> 00:02:23,030 >> I to, da vas Dečki će biti 47 00:02:23,030 --> 00:02:26,520 čamac na programu u aparat, i na puno računalnih sustava, 48 00:02:26,520 --> 00:02:27,500 Upravo zove PHP. 49 00:02:27,500 --> 00:02:30,579 To je naziv za PHP Jezik vlastiti tumač. 50 00:02:30,579 --> 00:02:33,120 Dakle, taj komad ćemo provesti za ti, i ono što je ostalo za vas, 51 00:02:33,120 --> 00:02:35,240 u konačnici, je broj komada, među kojima 52 00:02:35,240 --> 00:02:37,960 provodi podršku za statički sadržaj. 53 00:02:37,960 --> 00:02:40,180 >> Ali sada, i Problem postaviti sedam, ti si 54 00:02:40,180 --> 00:02:43,660 će početi prijelaz na zapravo pisanje PHP kod 55 00:02:43,660 --> 00:02:45,970 koji se tumači U razgovoru s leđa kraj 56 00:02:45,970 --> 00:02:47,960 baze podataka koji pohranjuje podatke. 57 00:02:47,960 --> 00:02:51,020 Dakle-a neka bolje razumjeti prvi par tih superglobals 58 00:02:51,020 --> 00:02:53,720 i koliko snage vam izaći iz kutije za besplatno 59 00:02:53,720 --> 00:02:55,250 s jezikom poput PHP. 60 00:02:55,250 --> 00:02:57,350 Stvari nemate da se provede. 61 00:02:57,350 --> 00:03:01,700 >> Dakle, vidjeli smo u ponedjeljak $ _GET, što je superglobal, 62 00:03:01,700 --> 00:03:05,496 koji je samo PHP govoriti za globalno varijabla možete pristupiti bilo gdje. 63 00:03:05,496 --> 00:03:06,620 A što je unutar $ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 Što je unutar toga superglobal da vidimo? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 Sigurno statistički na Najmanje jedna osoba ne zna. 68 00:03:19,020 --> 00:03:21,590 Što je unutar $ _GET? 69 00:03:21,590 --> 00:03:22,426 Da? 70 00:03:22,426 --> 00:03:24,130 >> PUBLIKA: To su varijable stavite u nizu upita. 71 00:03:24,130 --> 00:03:24,530 >> DAVID J. Malan: Savršeno. 72 00:03:24,530 --> 00:03:26,488 To su ti varijable staviti u nizu upita. 73 00:03:26,488 --> 00:03:29,910 Dakle, u našem starijem primjeru reimplementing Googleu kada smo imali 74 00:03:29,910 --> 00:03:34,130 URL, a zatim upitnik, koji markira početak HTTP 75 00:03:34,130 --> 00:03:37,950 parametre, a onda smo imali q jednak nešto, poput q jednak mačke, 76 00:03:37,950 --> 00:03:41,500 što bi automatski ući to $ _GET super globalni za vas, 77 00:03:41,500 --> 00:03:47,430 zbog PHP, je ključ Q, i vrijednosti njihovih mačaka. 78 00:03:47,430 --> 00:03:51,250 >> Drugim riječima, $ _GET i sve ove stvari su asocijativne nizove, 79 00:03:51,250 --> 00:03:54,530 hash tablice sorti, da pohranu ključeva i vrijednosti. 80 00:03:54,530 --> 00:03:57,980 Sada, natrag u pset5, mljeveno meso Tablica ste možda provedene, 81 00:03:57,980 --> 00:04:00,220 ili ti možda pokušati su provedene, uistinu 82 00:04:00,220 --> 00:04:04,010 je zapravo asocijativni polje, struktura podataka 83 00:04:04,010 --> 00:04:07,220 gdje možete povezati tipke sa vrijednostima. 84 00:04:07,220 --> 00:04:09,690 >> No, u pset5 su vrijednosti bile beznačajne. 85 00:04:09,690 --> 00:04:12,430 Vrijednost je u biti istinito ili lažno. 86 00:04:12,430 --> 00:04:13,900 Je li riječ u rječniku? 87 00:04:13,900 --> 00:04:18,279 Dakle, kada raspršen riječi poput jabuka da li je jabuka u rječniku, 88 00:04:18,279 --> 00:04:21,820 ček funkcija vjerojatno vratio istina ili laž. 89 00:04:21,820 --> 00:04:24,120 Dakle, to je učinkovito Vrijednost ćemo dobiti natrag. 90 00:04:24,120 --> 00:04:26,456 >> Ali smo vidjeli u ponedjeljak Ukratko, možete sigurno 91 00:04:26,456 --> 00:04:28,830 pridružiti još zanimljivije vrijednosti nego samo istina ili laž 92 00:04:28,830 --> 00:04:30,790 s ključevima, poput jabuka. 93 00:04:30,790 --> 00:04:33,909 Vi zapravo mogao vratiti proizvoljna string, i doista, 94 00:04:33,909 --> 00:04:36,200 to je ono što $ _GET i to druge varijable neka vam je činiti. 95 00:04:36,200 --> 00:04:40,595 >> Dakle _POST $ je sličan u duhu, ali ako pošaljete obrazac poštom, 96 00:04:40,595 --> 00:04:44,490 različite HTTP metoda koja je koristiti za stvari kao što su kreditne kartice, 97 00:04:44,490 --> 00:04:48,410 i privatne informacije, pa čak i binarni informacije poput fotografija, 98 00:04:48,410 --> 00:04:51,840 te stvari završiti unutar _POST $. 99 00:04:51,840 --> 00:04:53,770 A zapravo datoteke kao što su JPEG i sitnica, 100 00:04:53,770 --> 00:04:58,290 tu je čak i jedan koji nije Ovdje se zove $ _FILES kao dobro. 101 00:04:58,290 --> 00:05:01,280 >> Dakle, poslužitelj nećemo boraviti na previše mnogo, ali to vam daje pristup 102 00:05:01,280 --> 00:05:04,860 sortirati detalja niže razine o Sama poslužitelja koji koristite. 103 00:05:04,860 --> 00:05:07,430 Cookie i na sjednici, međutim, smo uspješno ćemo vidjeti. 104 00:05:07,430 --> 00:05:10,940 Posljednji je ono što ćemo koristiti za provedbu pojam košarici. 105 00:05:10,940 --> 00:05:14,480 Super jednostavna, ali opoziv da smo imali ovaj primjer ovdje, 106 00:05:14,480 --> 00:05:17,640 računajući koliko puta je prije posjetio tu stranicu. 107 00:05:17,640 --> 00:05:20,850 >> Ali danas, umjesto da samo pogled na Učinak toga, neka se otvaraju 108 00:05:20,850 --> 00:05:22,640 Inspektor Chrome, koje možete obično 109 00:05:22,640 --> 00:05:25,740 učiniti desnim klikom ili kontrolu klikom bilo gdje na web stranici, 110 00:05:25,740 --> 00:05:27,250 a zatim odaberite pregledajte element. 111 00:05:27,250 --> 00:05:31,600 Ili možete ići kroz izbornike koje smo opisali u pset6 u spec. 112 00:05:31,600 --> 00:05:35,020 I ja idem na kartici Network ovdje, i neka je gledati na trenutak 113 00:05:35,020 --> 00:05:37,590 HTTP promet koji je ide natrag i naprijed. 114 00:05:37,590 --> 00:05:40,929 >> Dopustite mi da prije ići naprijed i Isprazni Chrome. 115 00:05:40,929 --> 00:05:43,470 Dakle, neki od vas bi moglo biti upoznati s ovom tehnikom već, 116 00:05:43,470 --> 00:05:45,790 a mi ćemo ga koristiti za ispravljanje pogrešaka svrhe ovdje. 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 Sada mi kao računalo Znanstvenici će početi 119 00:05:50,890 --> 00:05:53,920 to za ispravljanje pogrešaka svrhe, pri čemu 120 00:05:53,920 --> 00:05:55,910 ćemo očistiti cache, tipično, tako da se 121 00:05:55,910 --> 00:05:57,670 može riješiti stvari zove kolačiće. 122 00:05:57,670 --> 00:06:01,700 Dakle, vjerojatno ste upoznati općenito s tim što su kolačići, ili barem 123 00:06:01,700 --> 00:06:04,370 da oni postoje, ali ono što je vaše razumijevanje od njih, 124 00:06:04,370 --> 00:06:06,920 samo kao korisnika računala, što je cookie? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 Da. 127 00:06:09,990 --> 00:06:14,391 >> PUBLIKA: To je malo of-- dobro, ne malo u trajanju od računalnih znanosti. 128 00:06:14,391 --> 00:06:18,303 To je podatak koji web šalje k ​​vama kako bi 129 00:06:18,303 --> 00:06:20,209 da bi mogli snimati statističke podatke o vama. 130 00:06:20,209 --> 00:06:21,250 DAVID J. Malan: U redu, dobro. 131 00:06:21,250 --> 00:06:24,980 Tako da je dio podataka koji poslužitelja, stavlja na vaše računalo, 132 00:06:24,980 --> 00:06:28,840 i neka je to generalizirati i više, to je ključ value-- dobro, 133 00:06:28,840 --> 00:06:30,064 da je sve precizniji. 134 00:06:30,064 --> 00:06:31,980 To je komad Podaci, podatak, 135 00:06:31,980 --> 00:06:34,430 da poslužitelj može staviti na računalu 136 00:06:34,430 --> 00:06:38,592 a vrlo često, poslužitelj ne to tako da ne zaboravite tko ste. 137 00:06:38,592 --> 00:06:40,300 Tako na primjer, izgledi su vjerojatno ste 138 00:06:40,300 --> 00:06:42,982 prijavljeni na stranicama kao što su Facebook, ili Gmail, ili netko drugi prije, 139 00:06:42,982 --> 00:06:44,940 a što se prijavite sa svojim korisničko ime i lozinku, 140 00:06:44,940 --> 00:06:49,000 i nakon toga, neko broj minuta ili sati ili čak dana, 141 00:06:49,000 --> 00:06:52,970 poslužitelja sjeća da je vi ste, u stvari, prijavljeni. 142 00:06:52,970 --> 00:06:54,600 Sada, kako se to zapravo događa? 143 00:06:54,600 --> 00:06:58,630 Jer ti sigurno ne doradu vaše korisničko ime i lozinku svaki put 144 00:06:58,630 --> 00:07:00,760 dođete do različite stranicu na Facebooku. 145 00:07:00,760 --> 00:07:02,570 Tako ispada Kolačići su odgovor. 146 00:07:02,570 --> 00:07:05,360 >> Cookie možete misliti kako je, vrsta sviđa, digitalni ruku 147 00:07:05,360 --> 00:07:09,200 Pečat koje možete dobiti na zabavu parku ili klub koji u suštini 148 00:07:09,200 --> 00:07:11,740 označava da ste bili ovdje prije, a vi ste već 149 00:07:11,740 --> 00:07:16,070 pokazali svoj ID na izbacivač, za instanca, a to klub ili park 150 00:07:16,070 --> 00:07:19,050 Sada bi trebao pretpostaviti da vas Već su ovjerena. 151 00:07:19,050 --> 00:07:21,270 Već su identificirani od strane njega. 152 00:07:21,270 --> 00:07:24,740 >> Dakle, s tim na umu, neka se otvaraju brojač ovdje. 153 00:07:24,740 --> 00:07:27,220 Dopustite mi ići naprijed, samo sam učinio, jasno i sve moje kolačiće. 154 00:07:27,220 --> 00:07:29,970 I sad ono što ću učiniti je držite Shift, samo za dobru mjeru, 155 00:07:29,970 --> 00:07:31,740 i prisilno ponovno učitati stranicu. 156 00:07:31,740 --> 00:07:34,170 Shift samo pazite da ništa ne dobiva spremljeno. 157 00:07:34,170 --> 00:07:36,850 I ovdje je zahtjev koji je išao naprijed i natrag. 158 00:07:36,850 --> 00:07:41,560 Dakle, ovdje imamo zahtjev, i neka ja povećavanje ovdje i puno toga 159 00:07:41,560 --> 00:07:44,710 je vrsta nezanimljivo pojedinosti za sada kada preglednik ima automatski 160 00:07:44,710 --> 00:07:47,800 poslana, ali neka je kliknuti View Izvor vidjeti sirove zaglavlja. 161 00:07:47,800 --> 00:07:51,700 >> A ako ste zaronili u pset6 već, sigurno ćete prepoznati stvari 162 00:07:51,700 --> 00:07:54,990 ovako, a možda i neke od ovih ostalih linija ovdje, 163 00:07:54,990 --> 00:07:59,040 ali ono što je još zanimljivije za danas ako sam pomaknite prema dolje, a ne na zahtjev 164 00:07:59,040 --> 00:08:02,870 ali na tzv odgovor, ova linija vjerojatno izgleda poznato. 165 00:08:02,870 --> 00:08:04,977 To je dobra stvar kada vidite 200 OK. 166 00:08:04,977 --> 00:08:07,060 Očito je to Datum i vrijeme na poslužitelju 167 00:08:07,060 --> 00:08:08,268 a tu je hrpa stvari. 168 00:08:08,268 --> 00:08:09,290 Oh, to je zanimljivo. 169 00:08:09,290 --> 00:08:13,430 >> Ispada da kad god koristite PHP, barem na poslužitelj, 170 00:08:13,430 --> 00:08:16,360 poslužitelja pljuje ono verzija PHP koju koristite. 171 00:08:16,360 --> 00:08:18,962 Što, zapravo, za sigurnost svrhe, nije dobra stvar. 172 00:08:18,962 --> 00:08:21,170 No, mi ćemo se vratiti na to neki drugi put, možda. 173 00:08:21,170 --> 00:08:25,740 Ali sada je to sočno linija i danas, i kratko vidjeli smo neke od njih, 174 00:08:25,740 --> 00:08:29,240 Mislim Facebook kad smo poked oko inspektora u to vrijeme, 175 00:08:29,240 --> 00:08:33,380 Skup Kolačić je ono što je sadnja da je mali dio informacija 176 00:08:33,380 --> 00:08:34,890 na vaše računalo. 177 00:08:34,890 --> 00:08:37,490 >> To je HTTP zaglavlja to je učinkovito 178 00:08:37,490 --> 00:08:39,970 govori vaš preglednik, Chrome, IE, što god, 179 00:08:39,970 --> 00:08:44,480 hej preglednik trgovina na korisnikovom tvrdi disk, ili na korisnikovom RAM, 180 00:08:44,480 --> 00:08:49,680 pod nazivom ključ PHPSESSID, koji je skraćenica za ID sesije, 181 00:08:49,680 --> 00:08:53,670 i dati mu vrijednost 0vlk8t, točka, točka, točka. 182 00:08:53,670 --> 00:08:56,480 Stvarno dugo pseudo slučajni alfanumerički niz. 183 00:08:56,480 --> 00:08:59,480 To je samo jako veliki broj, ali to je kodirani slova i brojeva 184 00:08:59,480 --> 00:09:03,550 tako da je veličina toga može biti čak i veći od brojeva sama. 185 00:09:03,550 --> 00:09:06,947 A onda, usput, Put = /, koji samo znači da je ovaj kolačić trebao biti 186 00:09:06,947 --> 00:09:08,780 povezana s cjelokupnost web stranice, 187 00:09:08,780 --> 00:09:11,150 ne samo specifičan Stranica cijela stvar. 188 00:09:11,150 --> 00:09:12,930 Dakle, to je da virtualni ruku pečat. 189 00:09:12,930 --> 00:09:16,330 To je kao da poslužitelj, Facebook, ili u našem slučaju aparat, 190 00:09:16,330 --> 00:09:21,140 ima doslovno pisani 0vlk8t i tako dalje, na svoju ruku. 191 00:09:21,140 --> 00:09:24,360 Obavijest ono poslužitelja, Ne radi se to nije 192 00:09:24,360 --> 00:09:27,730 spremanje svoje korisničko ime, zasigurno Ne spremanje moju zaporku. 193 00:09:27,730 --> 00:09:31,710 >> Umjesto toga, čini se da pohranjivanje pseudo slučajni informacije 194 00:09:31,710 --> 00:09:35,010 tako da nitko ne može pogoditi ono što je moja ruka pečat. 195 00:09:35,010 --> 00:09:37,590 Na strani poslužitelja, U međuvremenu, poslužitelj 196 00:09:37,590 --> 00:09:40,370 će se sjetiti, vjerojatno u bazi podataka ili nešto, 197 00:09:40,370 --> 00:09:46,490 da korisnik, koji u budućnosti predstavlja ruku pečat 0vlk8t, dot, 198 00:09:46,490 --> 00:09:51,440 dot, dot, treba biti povezan s ovim Konkretno košarica, da se tako izrazim. 199 00:09:51,440 --> 00:09:55,060 Drugim riječima, ako ja sad ići ovamo i ponovno ovu stranicu, 200 00:09:55,060 --> 00:09:58,020 kako se poslužitelj zna da Posjetio sam jedno vrijeme? 201 00:09:58,020 --> 00:10:01,730 >> Ili, ako sam to učiniti opet, kako se poslužitelj znam da sam ga posjetio dva puta? 202 00:10:01,730 --> 00:10:04,680 Pa ako idem dolje na to Najnoviji zahtjev, koji je 203 00:10:04,680 --> 00:10:09,150 sada je treći koji sam poslao ukupno, primijetit moj zahtjev sada. 204 00:10:09,150 --> 00:10:11,300 Još uvijek to zatražiti ovdje, isto 205 00:10:11,300 --> 00:10:15,040 kao i prije, tu je još cijela hrpa stvari koje smo ignorirao kao i prije, 206 00:10:15,040 --> 00:10:19,350 ali vrlo posljednja zaglavlja, to vrijeme, jer sam bio ovdje, 207 00:10:19,350 --> 00:10:21,980 je predstavljanje Ova virtualna ruka pečat. 208 00:10:21,980 --> 00:10:28,957 >> Čime ta crta ovdje, nije postavljen kolačić ali Kolačić debelog PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 to je samo moje preglednika i automatski Predstavljanje ove ruku pečat, tako da 210 00:10:32,040 --> 00:10:37,910 Sada poslužitelja, čim se ostvari, Oh, to je user 0vlk8t dot, dot, dot, 211 00:10:37,910 --> 00:10:42,010 Ja sada mogu sjetiti tko je on ili ona je i reassociate s tom korisnika god 212 00:10:42,010 --> 00:10:46,450 Informacije želim, a sve da se informacije mogu biti pohranjeni po vama, 213 00:10:46,450 --> 00:10:50,130 programer, u $ _SESSION. 214 00:10:50,130 --> 00:10:57,170 >> Dakle, da bude jasno, ako sam otvoriti vrlo brzo U gedit da stvarna datoteka, counter.php, 215 00:10:57,170 --> 00:11:02,340 u mom lokalna domaćina javni imenik kao i prije, primijetiti da je, doista, 216 00:11:02,340 --> 00:11:06,860 Ja sam u konačnici spremanje u $ _SESSION Citat citat "kontra" 217 00:11:06,860 --> 00:11:10,110 vrijednost brojača koji je prethodno JA dobiti iz ovih redaka ovdje da mi 218 00:11:10,110 --> 00:11:13,010 Pogledao je posljednji put plus jedan. 219 00:11:13,010 --> 00:11:14,980 Dakle, ispod haube, to je sve kolačiće jesu. 220 00:11:14,980 --> 00:11:17,563 To je samo vrsta digitalnih Ruka pečat ide naprijed i natrag, 221 00:11:17,563 --> 00:11:20,450 a iskreno ako otvorite Chrome-a Inspektor na bilo koju web stranicu 222 00:11:20,450 --> 00:11:22,580 posjetite danas, s super visoka vjerojatnost, 223 00:11:22,580 --> 00:11:25,450 ti ćeš vidjeti možda jednu, možda pola tuceta kolačići 224 00:11:25,450 --> 00:11:26,650 biti zapamćena po vama. 225 00:11:26,650 --> 00:11:29,500 >> I još gore, ako su oni web stranice koje posjećujete 226 00:11:29,500 --> 00:11:32,640 svi imaju reklame, koje svakako je vrlo čest i danas, 227 00:11:32,640 --> 00:11:36,100 a ako ti oglasi dolaze iz neke središnje stranke, netko 228 00:11:36,100 --> 00:11:39,000 kao što je Google AdWords ili kako su nazvati jedan od njihovih proizvoda 229 00:11:39,000 --> 00:11:42,880 ili druge takve tvrtke koje prodavati oglase, ono što je zanimljivo, 230 00:11:42,880 --> 00:11:46,510 i iskreno što je malo zabrinjavajuće, o tome kako HTTP radi, 231 00:11:46,510 --> 00:11:50,855 je da ako imate oglas ugrađen U Facebook.com, i Google.com, 232 00:11:50,855 --> 00:11:54,240 i Harvard.edu, bilo koji broj internetskih stranica, pa je tako 233 00:11:54,240 --> 00:11:58,130 da postoji srednji čovjek koji je služio up oglasa za sve tri od tih web stranica, 234 00:11:58,130 --> 00:12:02,110 ispada da kolačići su po šumi. 235 00:12:02,110 --> 00:12:05,910 >> Dakle, ako imate oglas dolaze iz Ista tvrtka na različite web stranice, 236 00:12:05,910 --> 00:12:11,140 da tvrtka može učinkovito pratiti tko vi ste u svim tim web stranice. 237 00:12:11,140 --> 00:12:13,140 Harvard možda ne znaju posjećujete Facebook. 238 00:12:13,140 --> 00:12:15,306 Facebook možda ne znaju i posjećujete Harvard. 239 00:12:15,306 --> 00:12:18,160 No, bez obzira na servis oglasa oni koriste ako je domena 240 00:12:18,160 --> 00:12:21,710 prisutna u oba Harvard.edu webu stranice i web stranice, Facebook.com 241 00:12:21,710 --> 00:12:26,850 ovaj srednji čovjek sigurno zna tko si Zbog ove kolačiće se dijeli 242 00:12:26,850 --> 00:12:30,910 preko, odnosno da se, da je tzv posrednik. 243 00:12:30,910 --> 00:12:33,820 >> Tako ćemo se vratiti na to sigurnost njihove posljedice, 244 00:12:33,820 --> 00:12:37,170 ali postoji puno informacija pohranjene o vama bilo koje vrijeme 245 00:12:37,170 --> 00:12:40,120 posjetite najviše bilo koju web stranicu na Internet i to stvarno 246 00:12:40,120 --> 00:12:42,877 smanjuje na ovaj vrlo jednostavan mehanizam. 247 00:12:42,877 --> 00:12:44,710 Što će se dogoditi, a zatim, ako je ti si super paranoičan 248 00:12:44,710 --> 00:12:48,190 a vi odlučite ići u Chrome ili IE ili što god i isključite kolačiće? 249 00:12:48,190 --> 00:12:49,365 Što se događa? 250 00:12:49,365 --> 00:12:50,790 Da? 251 00:12:50,790 --> 00:12:53,170 Vi really-- ste učinili to pravo? 252 00:12:53,170 --> 00:12:54,350 U redu. 253 00:12:54,350 --> 00:12:55,994 Ne, samo naprijed. 254 00:12:55,994 --> 00:12:59,645 >> PUBLIKA: Određene web stranice nemaju funkcija bez nje sviđa Facebook. 255 00:12:59,645 --> 00:13:00,520 DAVID J. Malan: Da! 256 00:13:00,520 --> 00:13:02,311 Dakle, određene web stranice samo će prestati raditi. 257 00:13:02,311 --> 00:13:05,520 I u većini web stranice ovih dana koje iz temelja oslanjaju na kolačiće, 258 00:13:05,520 --> 00:13:08,360 pogotovo ako imaju se prijavite u, oni samo ćeš slomiti. 259 00:13:08,360 --> 00:13:10,360 Zato razmislite alternativa, ako web stranice 260 00:13:10,360 --> 00:13:14,480 nema načina da se prisjetimo tko ste, i stoga vaš web preglednik ne 261 00:13:14,480 --> 00:13:16,949 predstavlja sa svakim HTTP Zahtjev RUKE pečata, 262 00:13:16,949 --> 00:13:18,740 učinkovito web stranice poput Facebooka odlazeći 263 00:13:18,740 --> 00:13:22,050 moramo Vas obavijestiti da prijaviti svaki darn put 264 00:13:22,050 --> 00:13:26,200 promijenite stranice, ili kliknite na link, koji sigurno nije osobito dobar korisnik 265 00:13:26,200 --> 00:13:26,920 iskustvo. 266 00:13:26,920 --> 00:13:30,020 >> Tako da je, također, među trgovačkim off. 267 00:13:30,020 --> 00:13:34,140 Dakle, bez dodatnih teškoća, neka je uzme zdravo za gotovo da je s web programiranja, 268 00:13:34,140 --> 00:13:37,630 u jezicima kao što su PHP, možete se sjetiti Informacije kao da je u problemu postavljena 269 00:13:37,630 --> 00:13:41,550 sedam kada provesti svoj E * Trade-poput web stranice s kojom kupiti 270 00:13:41,550 --> 00:13:45,710 i prodavati dionice, vi ćete se točno sjetiti ono što je korisnik kupio i prodao 271 00:13:45,710 --> 00:13:49,110 a tko je on ili ona je putem ove sjednice. 272 00:13:49,110 --> 00:13:51,110 Ali ćemo morati ljubitelj način nego e-mail 273 00:13:51,110 --> 00:13:52,640 za početak čuvanje informacija okolo. 274 00:13:52,640 --> 00:13:53,140 Pravo? 275 00:13:53,140 --> 00:13:56,780 >> U ponedjeljak, razgovarali smo o Frosh IM i kako je u verziji jedan od toj stranici, 276 00:13:56,780 --> 00:14:00,250 prije nekoliko godina, sve što smo radili bilo e-mail Proctor tko je 277 00:14:00,250 --> 00:14:04,250 zadužen za intramuralnih sportova Program, ime i spol, 278 00:14:04,250 --> 00:14:07,330 i da li ili ne oni kapetan, i spavaonica nekoga tko je 279 00:14:07,330 --> 00:14:10,136 registracije za intramuralnih sport. 280 00:14:10,136 --> 00:14:13,010 Dakle, to nije loše, ali on ili ona tada morao trol kroz svoje e-mail, 281 00:14:13,010 --> 00:14:16,010 napraviti tablicu ili nešto slično da, da bi sve organizirali. 282 00:14:16,010 --> 00:14:19,750 Dakle, sigurno mi kao programera mogu to učiniti za tu Proctor. 283 00:14:19,750 --> 00:14:22,970 I tako ući u SQL, Strukturirani jezik upita, 284 00:14:22,970 --> 00:14:26,050 koja će izgledati lijepo razlikuje oba C i PHP, 285 00:14:26,050 --> 00:14:30,990 a vi ćete roniti u puno više ruku na PHP i problema postaviti sedam, ali i SQL, 286 00:14:30,990 --> 00:14:35,310 ili SQL, to je jezik koji koristite za razgovor s bazom podataka. 287 00:14:35,310 --> 00:14:36,480 >> No, ono što je baza podataka? 288 00:14:36,480 --> 00:14:38,440 Pa što mislite o baze podataka, barem za sada, 289 00:14:38,440 --> 00:14:41,750 kao upravo se kao Excel datoteke, ili Ako ste Mac korisnik a brojevi datoteka, 290 00:14:41,750 --> 00:14:44,400 ili ako ste Google Apps Korisnik Google proračunske tablice, 291 00:14:44,400 --> 00:14:49,120 to je učinkovito baze podataka, ili stvarno posebno relacijskih baza podataka. 292 00:14:49,120 --> 00:14:53,070 Relacijskih baza podataka je samo nešto što ima redaka i stupaca, 293 00:14:53,070 --> 00:14:56,440 i možete spremiti bilo kakve Informacije u tim retke ili stupce. 294 00:14:56,440 --> 00:15:00,480 >> No, ono što je lijepo o SQL, i o aktualnim bazama podataka, a ne samo 295 00:15:00,480 --> 00:15:04,910 tablice ili Google proračunske tablice, je da možete koristiti jezik 296 00:15:04,910 --> 00:15:09,000 zapravo izvršavanje upita umetanje podataka, ukloniti podatke, 297 00:15:09,000 --> 00:15:11,620 tražiti podatke, čak i što je najvažnije, i ti 298 00:15:11,620 --> 00:15:16,110 Ne morate ga koristiti prilično ručno kao što ste možda obično Google 299 00:15:16,110 --> 00:15:17,690 proračunske tablice kao što je ovaj. 300 00:15:17,690 --> 00:15:22,217 >> Tako je u SQL, postoji hrpa temeljne izjave ili komada 301 00:15:22,217 --> 00:15:23,300 funkcionalnosti izgrađen. 302 00:15:23,300 --> 00:15:26,450 Tu je još mnogo više od toga, ali možete ići veliku udaljenost 303 00:15:26,450 --> 00:15:28,620 samo znajući da je taj jezik zove 304 00:15:28,620 --> 00:15:30,840 SQL ima najmanje četiri izvještaji možete utjecati. 305 00:15:30,840 --> 00:15:34,420 >> Obriši, za uklanjanje podataka, Umetnite, za dodavanje redaka, 306 00:15:34,420 --> 00:15:37,340 Update, za promjenu redaka, i odabirom, 307 00:15:37,340 --> 00:15:39,860 za dobivanje natrag redaka i to je upravo ono što SQL radi. 308 00:15:39,860 --> 00:15:43,810 Ona djeluje isključivo na redovima tako da kada stavite ili ukloniti, 309 00:15:43,810 --> 00:15:47,470 ili ažurirati, ili odaberite ono što ste vratimo kao tzv rezultata set, 310 00:15:47,470 --> 00:15:49,690 kao i niz redaka. 311 00:15:49,690 --> 00:15:51,700 Hrpa redaka iz tablice. 312 00:15:51,700 --> 00:15:54,050 >> Dakle, natrag u dan, pa čak i do današnjeg dana, 313 00:15:54,050 --> 00:15:56,560 možete komunicirati s baze podataka pomoću naredbenog retka, 314 00:15:56,560 --> 00:15:59,691 ali to nije osobito zabavan za korištenje ovo crno-bijeli stil prozor 315 00:15:59,691 --> 00:16:02,190 i zapravo izvršavati naredbe i guranje oko baze podataka. 316 00:16:02,190 --> 00:16:06,054 Grafičko korisničko sučelje, ili GUI, je puno više preferira, nedvojbeno, 317 00:16:06,054 --> 00:16:08,970 pa alat preporučujemo i predinstaliran za vas na aparatu 318 00:16:08,970 --> 00:16:10,580 naziva phpMyAdmin. 319 00:16:10,580 --> 00:16:14,060 To je ukupno slučajnost da Ime ove stvari ima PHP u njemu, 320 00:16:14,060 --> 00:16:17,430 to samo znači da su ljudi koji je napisao ovaj program se 321 00:16:17,430 --> 00:16:18,670 Napisao ga je u PHP. 322 00:16:18,670 --> 00:16:23,740 >> No, to je u konačnici o primjeni poslužitelj baze podataka, poput MySQL poslužitelja 323 00:16:23,740 --> 00:16:26,589 da ste možda, kao ti ne, u CS50 aparata. 324 00:16:26,589 --> 00:16:29,130 Dakle, postoji više detalja ovdje nego moramo voditi brigu o tome danas, 325 00:16:29,130 --> 00:16:33,280 ali ono što je ključno je da na lijevoj strani Ruka strana je popis baza podataka 326 00:16:33,280 --> 00:16:36,040 da imate na računalu, na svom CS50 aparata, 327 00:16:36,040 --> 00:16:40,090 ili dolaze završne projekte koji bi mogli imati na treće osobe, tvrtke 328 00:16:40,090 --> 00:16:43,415 web stranice ili web poslužitelj, koji možda se plaćati za prostor. 329 00:16:43,415 --> 00:16:45,290 Dakle, na lijevo je baze podataka, od kojih je jedan 330 00:16:45,290 --> 00:16:48,750 je pset7 koje sam posudio od iduće pset tjedana, a zatim na vrhu 331 00:16:48,750 --> 00:16:51,570 postoji primjetiti postoji hrpa kartica, od kojih jedan 332 00:16:51,570 --> 00:16:55,150 je baza podataka, SQL, status, Korisnici, izvoz i tako dalje. 333 00:16:55,150 --> 00:16:56,900 Na taj način možete ići dug Način samo ostvarivanje 334 00:16:56,900 --> 00:16:59,770 da je većina od korisničkog sučelja je u gornjem lijevom stupcu 335 00:16:59,770 --> 00:17:02,650 i na vrhu sve do tamo. 336 00:17:02,650 --> 00:17:04,980 Dakle, što možemo zapravo učiniti s tim? 337 00:17:04,980 --> 00:17:08,609 Pa, krenimo stvarajući malo informacija kako slijedi. 338 00:17:08,609 --> 00:17:11,760 >> Pretpostavimo sljedeće je slučaj, kao što će se u samo nekoliko dana, 339 00:17:11,760 --> 00:17:14,440 Želite li provesti web stranice, pod nazivom CS50 financija, 340 00:17:14,440 --> 00:17:17,328 i ove web stranice omogućuje kupnju citat citat i prodati dionice. 341 00:17:17,328 --> 00:17:19,619 I to će shvatiti cijena tih dionica, 342 00:17:19,619 --> 00:17:22,380 konačnici kao što ćete vidjeti, u razgovoru za Yahoo Finance. 343 00:17:22,380 --> 00:17:26,250 Koji, predivno, ima besplatnu uslugu gdje možete proći u burzovni 344 00:17:26,250 --> 00:17:29,830 kao što je GOOG za Google, a to će daju ti natrag Googleov trenutne zalihe 345 00:17:29,830 --> 00:17:32,250 Cijena u prošlosti Nekoliko minuta najmanje. 346 00:17:32,250 --> 00:17:35,080 >> Tako ćete koristiti da, u konačnici, pretvarati za korisnika 347 00:17:35,080 --> 00:17:37,750 kupiti i prodati stvarna dionice koje koriste virtualni novac, 348 00:17:37,750 --> 00:17:39,750 ali vrlo prva stvar Korisnik će vidjeti 349 00:17:39,750 --> 00:17:43,850 je to prijava zaslon koji ih traži za svoje korisničko ime i lozinku. 350 00:17:43,850 --> 00:17:46,540 I tako, jedan od prvih izazovi za vas u pset7 351 00:17:46,540 --> 00:17:50,460 koja će se provoditi na leđa kraj baze podataka, proračunske tablice, ako hoćete, 352 00:17:50,460 --> 00:17:53,369 to će pohraniti korisnička imena i lozinke 353 00:17:53,369 --> 00:17:56,660 i na kraju ono dionica koje posjeduju, i koliko, i koliko novca imaju, 354 00:17:56,660 --> 00:18:00,110 pa hrpa drugih stvari u druge tablice, ili proračunske tablice. 355 00:18:00,110 --> 00:18:05,020 >> Tako ćemo pogledati kako je to Možda se na prvi pogled. 356 00:18:05,020 --> 00:18:06,980 Ja ću se vratiti aparata, a ja sam 357 00:18:06,980 --> 00:18:14,102 ići na ovaj URL ovdje phpMyAdmin localhost / phpMyAdmin 358 00:18:14,102 --> 00:18:16,060 i vidjet ćete da je to vodi me na sučelje 359 00:18:16,060 --> 00:18:18,520 baš kao što smo vidjeli na zaslon metak, a ja ovdje 360 00:18:18,520 --> 00:18:21,560 imaju dodatnu bazu podataka pozvao predavanje za danas 361 00:18:21,560 --> 00:18:24,280 i neka mi ići naprijed Prvi i kliknite na pset7. 362 00:18:24,280 --> 00:18:27,940 >> Čini mi se da ima nekoliko opcija, jedan za novo, za stvaranje nove tablice, 363 00:18:27,940 --> 00:18:30,770 i link na korisnike, koji je tablica sam već stvorio. 364 00:18:30,770 --> 00:18:31,790 Dakle, ono što je stol? 365 00:18:31,790 --> 00:18:33,740 Dakle, ako ste koristili Excel prije, a ako ste 366 00:18:33,740 --> 00:18:37,110 korištenih brojeva ili Google Proračunske tablice, otvorite prozor 367 00:18:37,110 --> 00:18:39,350 a vi dobili hrpu redaka i stupaca, 368 00:18:39,350 --> 00:18:43,120 ali onda obično imaju listove po dnu, ili zasebnim karticama. 369 00:18:43,120 --> 00:18:46,140 Možete misliti svaki list kao tablicu 370 00:18:46,140 --> 00:18:51,150 tako da baza podataka, u konačnici, je Kombinacija jedne ili više tablica, jedan 371 00:18:51,150 --> 00:18:54,064 ili više radnih listova, u Svijet normalne tablice. 372 00:18:54,064 --> 00:18:55,980 Pa neka mi ići naprijed i kliknite na ovu listu 373 00:18:55,980 --> 00:18:59,420 da sam premade, zvani korisnici, A.K.A. 374 00:18:59,420 --> 00:19:00,700 Tablica baze podataka. 375 00:19:00,700 --> 00:19:04,130 A ako sam dođite ovamo, neka mi smanjili malo, 376 00:19:04,130 --> 00:19:08,479 to je ono što se govori phpMyAdmin nama je unutar tog stola upravo sada. 377 00:19:08,479 --> 00:19:11,020 To je malo zbunjujuće na prvi Pogled jer UI ne 378 00:19:11,020 --> 00:19:15,140 najljepša stvar na svijetu, ali ono što je zanimljivo je to dio ovdje. 379 00:19:15,140 --> 00:19:17,970 ID, korisničko ime i mljeveno meso. 380 00:19:17,970 --> 00:19:20,510 >> U unaprijed, a vi ćete biti u ruku to je u problemu postaviti sedam, 381 00:19:20,510 --> 00:19:25,050 dajemo vam datoteku koja sadrži super mala tablica baze podataka, posudio je zapravo 382 00:19:25,050 --> 00:19:27,070 iz hakerske izdanju Problem je postaviti dva, 383 00:19:27,070 --> 00:19:29,480 unutar koje postoji šest redaka. 384 00:19:29,480 --> 00:19:32,720 Jedan za sve Belinda je putu prema dolje kako bi jedan za Zamyla, 385 00:19:32,720 --> 00:19:35,980 i obavijest s lijeve strane onih korisnička imena su jedinstveni ID kao jedan, 386 00:19:35,980 --> 00:19:39,410 dva, tri, četiri, pet, šest, cijeli brojevi, a zatim na desnoj strani su presjeke. 387 00:19:39,410 --> 00:19:42,780 >> A ako, izgledi su, što nije učinio Problem haker izdanje postaviti dva, 388 00:19:42,780 --> 00:19:46,560 ali mljeveno meso je isto kao šifrirana lozinku s nekoliko upozorenja. 389 00:19:46,560 --> 00:19:49,470 I tako, ono što vidite ovdje su su šifrirane verzije svih šest 390 00:19:49,470 --> 00:19:52,950 naših lozinke iz problema postaviti dva je haker izdanje. 391 00:19:52,950 --> 00:19:56,500 Sada s lijeve strane je samo neki GUI stvari, uređivanje ovaj redak, kopirati ovaj redak, 392 00:19:56,500 --> 00:19:57,630 brisanja ovaj redak. 393 00:19:57,630 --> 00:19:59,840 >> No, ono što je zanimljivo Sada je sljedeći. 394 00:19:59,840 --> 00:20:03,810 Ja zapravo mogu početi eksperimentiranje s ovim stolom. 395 00:20:03,810 --> 00:20:07,330 Dakle, ako odem i kliknite na SQL karticu, ja dobiti ovaj veliki okvir za tekst. 396 00:20:07,330 --> 00:20:10,190 A to nije kako ćemo to učiniti kada se zapravo pisanje koda. 397 00:20:10,190 --> 00:20:12,700 Da bude jasno, phpMyAdmin je samo alat koji je 398 00:20:12,700 --> 00:20:16,450 će neka nam probiti oko baze podataka i neka nam eksperimentirati s upitima. 399 00:20:16,450 --> 00:20:19,430 >> Tako na primjer, pretpostavimo Ja izvršiti upravo to. 400 00:20:19,430 --> 00:20:22,820 Odabir, što je jedan od onih Ključne riječi što sam spomenuo ranije, zvijezdu, 401 00:20:22,820 --> 00:20:25,900 što predstavlja sve stupci u tablici. 402 00:20:25,900 --> 00:20:26,820 Iz onoga što tablica? 403 00:20:26,820 --> 00:20:27,990 Pa, korisnici. 404 00:20:27,990 --> 00:20:29,950 I tu obavijest je ovo čudno konvencija u SQL 405 00:20:29,950 --> 00:20:32,140 gdje se zapravo koristiti natrag krpelja, obično, 406 00:20:32,140 --> 00:20:35,940 Ne jednostruke navodnike, a ne dvostruki navodnici Kada govorimo o imenima tablice, 407 00:20:35,940 --> 00:20:38,990 pa natrag citat je stvar na Gornja lijeva ruka tipkovnici najviše 408 00:20:38,990 --> 00:20:39,720 vjerojatno. 409 00:20:39,720 --> 00:20:41,850 >> Pa neka mi ići naprijed sada i samo ostaviti na miru 410 00:20:41,850 --> 00:20:46,020 i pomaknite se dolje i kliknite Idi, a mi smo zapravo će vidjeti istu stvar. 411 00:20:46,020 --> 00:20:52,410 Upravo smo izvršiti SQL upit govoreći odaberite Sve zvijezdu 412 00:20:52,410 --> 00:20:55,610 od stol pod nazivom korisnicima, a ono što se vratite je to. 413 00:20:55,610 --> 00:20:58,400 U konačnici, mi ćemo biti u mogućnosti učiniti da istu stvar u kodu, 414 00:20:58,400 --> 00:21:02,109 ali za sada sve što sam želio to je bio vidjeti ga u svom pregledniku. 415 00:21:02,109 --> 00:21:03,900 Pa neka je učiniti nešto malo drugačiji. 416 00:21:03,900 --> 00:21:08,330 Pusti me da se vratim na SQL kartici, i neka je samo reći da je što? 417 00:21:08,330 --> 00:21:11,520 Zamyla je izgubio sve o njoj novac, i stoga je 418 00:21:11,520 --> 00:21:13,190 vrijeme za nas da joj izbrisati kao korisnik. 419 00:21:13,190 --> 00:21:14,630 Ona više ne prijave. 420 00:21:14,630 --> 00:21:18,870 >> Zato ću reći brisanje from-- dobro, održavanje kapitalizaciju 421 00:21:18,870 --> 00:21:23,080 dosljednost, brisanje od korisnika gdje je. 422 00:21:23,080 --> 00:21:25,430 I tako, možemo imati tih predikati, ili oni 423 00:21:25,430 --> 00:21:31,180 kvalificiraju, na kraju moje izjave gdje i kako mogu izbrisati Zamyla? 424 00:21:31,180 --> 00:21:34,190 Po njezinim imenom Zamyla, tako stupcu, jedan od stupova 425 00:21:34,190 --> 00:21:37,950 je dobio ime, pa gdje name = "Zamyla". 426 00:21:37,950 --> 00:21:40,000 I ovdje sam koristiti dvostruka citati ili jednostruke navodnike, 427 00:21:40,000 --> 00:21:42,958 koristite samo vratiti krpelja kada govoriti o imenima, primjerice, 428 00:21:42,958 --> 00:21:45,130 tablica ili polja. 429 00:21:45,130 --> 00:21:47,440 I neka mi kliknite Idi ovdje. 430 00:21:47,440 --> 00:21:50,400 A sada, web stranica kao malo napet. 431 00:21:50,400 --> 00:21:53,620 >> Ili, da li vi stvarno želite izvršiti brisanje od korisnika gdje ime jednak Zamyla? 432 00:21:53,620 --> 00:21:54,680 Da. 433 00:21:54,680 --> 00:22:01,900 Pa sad, ako se vratimo na moj stol Klikom korisnika, primijetiti da hm. 434 00:22:01,900 --> 00:22:02,530 Goofed sam. 435 00:22:02,530 --> 00:22:04,070 A u stvari, ja vrsta kliknuli daleko tako brzo 436 00:22:04,070 --> 00:22:06,195 niste ni vidjeli crvena poruka o pogrešci, možda. 437 00:22:06,195 --> 00:22:07,649 Što sam učinio krivo? 438 00:22:07,649 --> 00:22:09,690 PUBLIKA: Niste potrebno kapitalizirati svoje ime. 439 00:22:09,690 --> 00:22:11,260 DAVID J. Malan: Da sam kapitaliziraju njezino ime, 440 00:22:11,260 --> 00:22:13,770 ali joj korisničko ime-- zapravo sam napravili par grešaka, zar ne? 441 00:22:13,770 --> 00:22:16,720 Jedan od njih, njezin korisničko ime zamyla, mala slova Z, 442 00:22:16,720 --> 00:22:20,140 i ime stupac korisničko ime, Nije ime, pa ćemo to učiniti opet. 443 00:22:20,140 --> 00:22:25,750 Pusti me naprijed i izbrisati iz korisnike gdje 444 00:22:25,750 --> 00:22:28,990 korisničko ime jednak citat citat "Zamyla". 445 00:22:28,990 --> 00:22:29,490 Sve u redu? 446 00:22:29,490 --> 00:22:32,600 Dakle, ovo izgleda malo bolje, neka da odem pomaknite prema dolje i kliknite Idi. 447 00:22:32,600 --> 00:22:34,730 Još uvijek će vikati na mene kako bi bili sigurni. 448 00:22:34,730 --> 00:22:37,500 Ja kliknite Da, a sada vidimo, iskreno se to dogodilo, stvarno 449 00:22:37,500 --> 00:22:39,870 brzo, manje od jedne Druga sigurno, ovaj 450 00:22:39,870 --> 00:22:41,720 Upravo upit koji je dobio pogubljeni. 451 00:22:41,720 --> 00:22:45,617 Za potvrdu, neka mi kliknite korisnike i doista je sada Zamyla je otišao. 452 00:22:45,617 --> 00:22:46,700 Sada ćemo učiniti suprotno. 453 00:22:46,700 --> 00:22:49,320 Pretpostavimo da je Gabe želi Registrirajte se za web stranicu. 454 00:22:49,320 --> 00:22:52,825 Što je SQL upit, što je Naredba bih mogao upisati dodati Gabeu? 455 00:22:52,825 --> 00:22:54,200 Pa to je prilično jednostavan. 456 00:22:54,200 --> 00:22:58,260 Umetnite na korisnike, a sada to dobiva malo zagonetan. 457 00:22:58,260 --> 00:23:03,190 Moram navesti, na poslužitelj, ono polja želim dodijeliti. 458 00:23:03,190 --> 00:23:06,630 Ja stvarno ne briga što Gabe je ID broj, pa ću preskočiti to. 459 00:23:06,630 --> 00:23:11,360 Ja sam umjesto toga reći korisničko ime, mljeveno meso, a zatim 460 00:23:11,360 --> 00:23:14,960 vrijednosti Želim staviti tamo će biti Gabe. 461 00:23:14,960 --> 00:23:16,800 A onda mu je mljeveno meso, ne znam. 462 00:23:16,800 --> 00:23:19,900 Dakle, za sada, idem ostavite da se kao velika učiniti. 463 00:23:19,900 --> 00:23:21,650 Mi ćemo se vratiti da je set problema 464 00:23:21,650 --> 00:23:23,390 spec kako ste zapravo učiniti. 465 00:23:23,390 --> 00:23:24,630 >> Dakle primijetiti, opet, sintakse. 466 00:23:24,630 --> 00:23:28,430 Uložite u ime tablice, a zatim zagradi popis polja, 467 00:23:28,430 --> 00:23:30,980 stupci želite dodati Vrijednosti u, i onda samo 468 00:23:30,980 --> 00:23:34,495 Isto točno naručivanja prepušteno Pravo vrijednosti koje želite dodati, 469 00:23:34,495 --> 00:23:36,870 a to je samo zato što omatanje Tekst je malo dugo. 470 00:23:36,870 --> 00:23:38,520 Pa sad neka mi kliknite Go. 471 00:23:38,520 --> 00:23:39,830 Jedan red umetnuta. 472 00:23:39,830 --> 00:23:43,020 I sad kad bih se vratiti Korisnici, ono što je zanimljivo 473 00:23:43,020 --> 00:23:48,960 da ne samo da je sada u Gabe baze podataka, što je očito njegov ID? 474 00:23:48,960 --> 00:23:49,820 >> Pa to je sedam. 475 00:23:49,820 --> 00:23:51,479 Zašto je sedam godina kad nisam ga dodati? 476 00:23:51,479 --> 00:23:54,020 Dakle, to je, također, jedna od značajke ste dobili od baze podataka. 477 00:23:54,020 --> 00:23:55,750 Puno izgrađen u funkcionalnosti. 478 00:23:55,750 --> 00:23:57,950 Ispada da kada stvorio ovu tablicu, 479 00:23:57,950 --> 00:24:01,390 Konfigurirano sam to automatski pridružiti ID tako 480 00:24:01,390 --> 00:24:02,480 da koracima. 481 00:24:02,480 --> 00:24:05,470 Dakle, ako ste ikada poked okolo, i pogledala što vaš Facebook ID 482 00:24:05,470 --> 00:24:09,292 broj je, ovih dana to je zapravo i nije stvar za napraviti, ali Facebook kao API, 483 00:24:09,292 --> 00:24:11,750 Application Programming Interface, gdje možete dobiti natrag 484 00:24:11,750 --> 00:24:14,430 cijela hrpa podataka o sebi, o svojim prijateljima, 485 00:24:14,430 --> 00:24:15,347 i vaše veze. 486 00:24:15,347 --> 00:24:17,430 A ono što je nekad bila neka vrsta cool, natrag u dan, 487 00:24:17,430 --> 00:24:19,510 je pogledati što je vaš Facebook ID broj bio. 488 00:24:19,510 --> 00:24:22,390 Mark Zuckerberg je, na primjer, je tri 489 00:24:22,390 --> 00:24:23,890 jer je on bio autor stranice. 490 00:24:23,890 --> 00:24:27,610 A što se priča, on je stvorio dva računa ispitivanja, korisnik jedan i dva, 491 00:24:27,610 --> 00:24:28,690 koji je zatim izbrisan. 492 00:24:28,690 --> 00:24:32,780 I tako, Zuck, kao što je njegovo korisničko ime na Facebooku, je ID broj tri, 493 00:24:32,780 --> 00:24:36,110 a svi od nas imaju puno brojeva veći od tri ovih dana. 494 00:24:36,110 --> 00:24:37,980 U stvari, u nekom trenutku Facebook odmaknuo 495 00:24:37,980 --> 00:24:42,410 od čak pomoću int, koji je 32-bitne vrijednosti, na korištenje 496 00:24:42,410 --> 00:24:44,480 Sljedeći korak, u biti dugo dugo, tako 497 00:24:44,480 --> 00:24:47,150 da bi mogli smjestiti čak i više korisnika registracije. 498 00:24:47,150 --> 00:24:49,420 Tako zabavno malo povijesna činjenica. 499 00:24:49,420 --> 00:24:51,660 >> Dakle, to je samo Osnovna sintaksa kojom 500 00:24:51,660 --> 00:24:54,470 bismo mogli izvršiti par upita, ali možemo zapravo 501 00:24:54,470 --> 00:24:56,744 to hrpa više stvari sa SQL. 502 00:24:56,744 --> 00:24:58,910 I vidjet ćete, u konačnici, u problemu postaviti sedam 503 00:24:58,910 --> 00:25:01,034 koje morate napraviti broj dizajnerskih rješenja, 504 00:25:01,034 --> 00:25:03,290 Među njima će biti koje vrste podataka za korištenje. 505 00:25:03,290 --> 00:25:08,240 Dakle, baš kao u C, postoje podaci vrste u bazi podataka, kao što su MySQL, 506 00:25:08,240 --> 00:25:12,640 te vrste podataka morate odabrati od tih polja su ovdje. 507 00:25:12,640 --> 00:25:17,287 Char, varchar, Int, veliki int, decimale vrijeme i datum, i mnogi drugi. 508 00:25:17,287 --> 00:25:18,370 Pa neka je zapravo to. 509 00:25:18,370 --> 00:25:21,060 Ajmo se pretvarati da nismo Ruka što ovaj korisnički stol 510 00:25:21,060 --> 00:25:25,080 i neka mi ići naprijed i stvoriti, za Osobno, u predavanjima database-- 511 00:25:25,080 --> 00:25:31,000 zapravo neka mi ići naprijed i brisanje stol sam ovdje već 512 00:25:31,000 --> 00:25:32,940 tako da mi zapravo može stvoriti to. 513 00:25:32,940 --> 00:25:33,550 Ups. 514 00:25:33,550 --> 00:25:35,970 Idem da ispadne ovo stol, a sad sam 515 00:25:35,970 --> 00:25:38,337 ići opet predavanje baze podataka ovamo, 516 00:25:38,337 --> 00:25:40,420 Ja ću stvoriti tablicu nazivaju korisnici i neka je 517 00:25:40,420 --> 00:25:43,010 Upravo to tri stupca početku i kliknite Idi. 518 00:25:43,010 --> 00:25:44,990 >> Sada, za najveći dio, opet, to je samo 519 00:25:44,990 --> 00:25:48,570 koristeći ovaj grafički alat nazvan phpMyAdmin, i što radimo sada 520 00:25:48,570 --> 00:25:49,600 stvara tablicu. 521 00:25:49,600 --> 00:25:53,170 Dakle, ovo je poput odlaska File, New, i stvarajući novu Excel datoteku. 522 00:25:53,170 --> 00:25:55,440 Dakle, to pita me malo Pitanja, s lijeva na desno, 523 00:25:55,440 --> 00:25:58,620 što je naziv prvog stupca, i naziv drugom stupcu 524 00:25:58,620 --> 00:25:59,560 i naziv trećinu. 525 00:25:59,560 --> 00:26:00,518 Tako ćemo stvoriti ovo. 526 00:26:00,518 --> 00:26:05,460 ID, a zatim korisničko ime bio je jedan, a zatim mljeveno meso je još jedna. 527 00:26:05,460 --> 00:26:08,970 Pa što bi trebao tip podataka se sada za području poput ID? 528 00:26:08,970 --> 00:26:14,470 >> Ovdje je cijeli popis tipova podataka dostupne u bazi podataka, 529 00:26:14,470 --> 00:26:16,070 i za sada neka je samo ići s int. 530 00:26:16,070 --> 00:26:18,160 32-bitne vrijednosti, ja ne mislim realno sam 531 00:26:18,160 --> 00:26:21,484 će imati više od 4 milijarde Korisnici na mom računu, u mojoj službi, 532 00:26:21,484 --> 00:26:23,650 pa ću se nastaviti kretati na sljedeće. 533 00:26:23,650 --> 00:26:25,490 Neću navesti duljina ili vrijednosti, 534 00:26:25,490 --> 00:26:28,540 to ne odnosi Ovdje za int, sama po sebi. 535 00:26:28,540 --> 00:26:30,740 I sad ja mogu odrediti, očito, zadani 536 00:26:30,740 --> 00:26:33,970 vrijednost, što neću navesti. 537 00:26:33,970 --> 00:26:36,050 Uspoređivanje, ne znam što je to. 538 00:26:36,050 --> 00:26:37,290 Atribut. 539 00:26:37,290 --> 00:26:39,455 Sada smo zapravo učiniti imaju dizajn odluku. 540 00:26:39,455 --> 00:26:42,580 Dakle, postoji nekoliko polja ovdje, nisu svi od kojih su primjenjivi, ali nepotpisano 541 00:26:42,580 --> 00:26:43,380 samo znači što? 542 00:26:43,380 --> 00:26:45,400 To int mora biti? 543 00:26:45,400 --> 00:26:46,210 Samo ne-negativni. 544 00:26:46,210 --> 00:26:48,090 Dakle, ona mora biti 0 na gore. 545 00:26:48,090 --> 00:26:51,120 Ne, ja ne idem provjeriti, jer Želim svaki korisnik imati iskaznicu, 546 00:26:51,120 --> 00:26:52,470 to ne može biti nula. 547 00:26:52,470 --> 00:26:55,949 A onda smo dobili nešto više zanimljive dizajnerske odluke kao što je ovaj. 548 00:26:55,949 --> 00:26:58,990 Mi ćemo se vratiti na to u ovom trenutku, ali ono još jedna značajka baze podataka 549 00:26:58,990 --> 00:27:04,200 je, je da možete reći poslužitelj baze podataka ići naprijed 550 00:27:04,200 --> 00:27:07,100 i optimizirati sebe, vaš RAM-a i tvrdi disk prostor, 551 00:27:07,100 --> 00:27:11,770 tako da odabire i umetci i briše, i nadogradnje su jako brzo. 552 00:27:11,770 --> 00:27:13,250 Usporedite to s pset5. 553 00:27:13,250 --> 00:27:16,259 >> Ako biste željeli potražiti nešto u svom hash tablici, koji 554 00:27:16,259 --> 00:27:18,300 mislite kao baze podataka, koji su morali učiniti sve 555 00:27:18,300 --> 00:27:21,500 raditi za izradu vaš hash tablicu brzo. 556 00:27:21,500 --> 00:27:22,840 To je kao, očito, vi. 557 00:27:22,840 --> 00:27:23,060 Pravo? 558 00:27:23,060 --> 00:27:26,080 Morao si staviti u sve vrijeme kazne tuning stvari, uzimajući hash funkciju 559 00:27:26,080 --> 00:27:27,820 U redu, figuring out kako mnogi kante imati. 560 00:27:27,820 --> 00:27:29,611 >> No, ono što je lijepo, opet, o baza podataka 561 00:27:29,611 --> 00:27:31,762 ti samo čamac sve ovo drugim ljudima 562 00:27:31,762 --> 00:27:33,720 koji su mislili da kroz za vas, a što 563 00:27:33,720 --> 00:27:37,170 Ja ću reći ovdje u Indeks je da moje osobne polju 564 00:27:37,170 --> 00:27:41,149 će biti primarni način identificiranje korisnika u ovoj bazi podataka. 565 00:27:41,149 --> 00:27:42,940 Neću razmišljati od Zamyla kao Zamyla, 566 00:27:42,940 --> 00:27:45,800 Ja ću misliti ju kao broj 6. 567 00:27:45,800 --> 00:27:49,814 >> Zašto je to, možda, bolje intuitivno misliti i modela 568 00:27:49,814 --> 00:27:52,480 svaki od vaših pojedinačnih redaka pomoću Broj umjesto da nešto 569 00:27:52,480 --> 00:27:56,480 poput niza, poput Zamyla ili Gabe ili duže string dalje? 570 00:27:56,480 --> 00:27:57,444 Da? 571 00:27:57,444 --> 00:28:00,117 >> PUBLIKA: ID je jedinstven? 572 00:28:00,117 --> 00:28:01,200 DAVID J. Malan: Recite opet? 573 00:28:01,200 --> 00:28:02,283 PUBLIKA: ID je jedinstven? 574 00:28:02,283 --> 00:28:04,400 DAVID J. Malan: ID je jedinstven, ali suppose-- 575 00:28:04,400 --> 00:28:06,320 kao što je slučaj u cjelini s korisničkim imenima, pretpostavljam 576 00:28:06,320 --> 00:28:10,110 Također sam rekao da može biti samo jedan Zamyla u svijetu, a samo jedan je Gabe. 577 00:28:10,110 --> 00:28:13,730 Mogao sam nametnuti jedinstvenost ograničenje na žice, također, ako sam htjela. 578 00:28:13,730 --> 00:28:15,550 Dakle, nije loša misao. 579 00:28:15,550 --> 00:28:16,500 >> PUBLIKA: Više sigurna. 580 00:28:16,500 --> 00:28:17,874 >> DAVID J. Malan: Više sigurna, zašto? 581 00:28:17,874 --> 00:28:20,705 PUBLIKA: Ne mogu reći što koji je, kao i kod korisnika. 582 00:28:20,705 --> 00:28:22,580 DAVID J. Malan: U redu, vi Ne mogu reći koji korisnik 583 00:28:22,580 --> 00:28:24,380 je što tako da privatnost aspekt na njega, 584 00:28:24,380 --> 00:28:27,810 posebno ako IDS možda pojavljuju u URL-ova. 585 00:28:27,810 --> 00:28:29,960 Pa jeste, da bi vrsta posla, previše. 586 00:28:29,960 --> 00:28:30,640 Ostali misli? 587 00:28:30,640 --> 00:28:31,383 Da? 588 00:28:31,383 --> 00:28:34,316 >> PUBLIKA: To je lakše obavljaju poslove na int. 589 00:28:34,316 --> 00:28:35,940 DAVID J. Malan: To je pravi buntovnik. 590 00:28:35,940 --> 00:28:38,850 To je samo učinkovitije, ili jednostavnije za računalo, 591 00:28:38,850 --> 00:28:40,431 za obavljanje poslova na cijeli broj. 592 00:28:40,431 --> 00:28:40,930 Pravo? 593 00:28:40,930 --> 00:28:43,905 Int je zajamčeno biti 32-bitni, dok Zamyla 594 00:28:43,905 --> 00:28:47,660 je duga nekoliko znakova, Gabriel je dug još nekoliko znakova, 595 00:28:47,660 --> 00:28:51,930 Davenport je stvarno dugo, i tako to nije osobito učinkovito koristiti 596 00:28:51,930 --> 00:28:55,860 žice za usporedbu vrijednosti i gledati za polja, i unapređivanje poljima, 597 00:28:55,860 --> 00:28:57,790 Ako možete dobiti daleko sa samo jednom cijeli broj. 598 00:28:57,790 --> 00:28:59,090 Samo 32 bita. 599 00:28:59,090 --> 00:29:02,570 Dakle korisnička imena, također, na taj način, ne moraju biti jedinstveni, 600 00:29:02,570 --> 00:29:05,040 iako su vjerojatno trebali biti, pa čak i na taj način previše 601 00:29:05,040 --> 00:29:07,520 Korisnik može biti dopušteno promijeniti svoje korisničko ime. 602 00:29:07,520 --> 00:29:10,810 >> Tako ćemo sada ostaviti ovo kao primarni način identifikacije korisnika. 603 00:29:10,810 --> 00:29:13,510 To govori baze podataka ići naprijed i optimizirati sebe 604 00:29:13,510 --> 00:29:17,065 tako da izgled up na ID su super brzo. 605 00:29:17,065 --> 00:29:19,620 AI, užasno zove, samo znači Auto Pomak, 606 00:29:19,620 --> 00:29:21,500 a to je provjera okvir trebamo provjeriti 607 00:29:21,500 --> 00:29:24,614 navesti da je ID polje automatski ažurira za mene, 608 00:29:24,614 --> 00:29:26,530 a onda ću pomaknite udesno ovdje 609 00:29:26,530 --> 00:29:29,279 i iskreno nisam stvarno zanima U više od ovih područja. 610 00:29:29,279 --> 00:29:30,630 Dakako, ne danas. 611 00:29:30,630 --> 00:29:33,770 >> Zato ću se vratiti ovdje, u prvom stupcu, gdje 612 00:29:33,770 --> 00:29:35,830 Moram navesti ime i mljeveno meso, i neka je 613 00:29:35,830 --> 00:29:38,080 na najmanje naglaskom na Druga za sada. 614 00:29:38,080 --> 00:29:41,498 Int vjerojatno nije pravo poziva, pa što ima više smisla možda? 615 00:29:41,498 --> 00:29:42,741 >> PUBLIKA: Tekst. 616 00:29:42,741 --> 00:29:43,824 DAVID J. Malan: Recite opet? 617 00:29:43,824 --> 00:29:44,710 PUBLIKA: Tekst. 618 00:29:44,710 --> 00:29:44,980 DAVID J. Malan: Tekst? 619 00:29:44,980 --> 00:29:45,590 U redu, čuo sam tekst. 620 00:29:45,590 --> 00:29:46,090 Što još? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 Mi vrste imaju hrpu izbora da su tekstualne u prirodi. 623 00:29:53,860 --> 00:29:55,990 Dakle, kada i zašto, ne koristite neki od njih? 624 00:29:55,990 --> 00:29:59,560 Pa char, suprotno onome što možda mislim, nije jedan lik. 625 00:29:59,560 --> 00:30:01,550 To je određeni broj znakova. 626 00:30:01,550 --> 00:30:04,600 Dakle, ako znamo da su svi korisnička imena mora biti poput osam znakova, 627 00:30:04,600 --> 00:30:08,490 kao što je nekada bilo uobičajeno u starija računalni sustavi, mogao bih reći char 628 00:30:08,490 --> 00:30:09,830 a onda bih mogao reći 8 ovdje. 629 00:30:09,830 --> 00:30:12,930 Tada je treći stup postaje primjenjuje prilikom stvaranja tablice. 630 00:30:12,930 --> 00:30:15,450 >> No, to je vrsta neugodno jer neki ljudi mogu 631 00:30:15,450 --> 00:30:17,660 Želite imati duži korisničko ime od osam znakova, 632 00:30:17,660 --> 00:30:19,743 neki ljudi možda žele imaju kraći korisničko ime, 633 00:30:19,743 --> 00:30:22,210 pa zašto sam počinio na određeni broj? 634 00:30:22,210 --> 00:30:24,710 Zašto ne imati varijablu broj znakova i jednostavno 635 00:30:24,710 --> 00:30:28,580 kažu da je maksimalna duljina ime je, ne znam, kao što je 64 znakova. 636 00:30:28,580 --> 00:30:31,780 Ne mogu se sjetiti bilo kojeg prijatelja koji imaju imena dulje od 64 znakova, 637 00:30:31,780 --> 00:30:34,810 pa čak i ako je to prekratko ste mogli Sigurno ga naletjeti proizvoljno. 638 00:30:34,810 --> 00:30:37,330 >> Tako je varchar promjenjiva broj znakova. 639 00:30:37,330 --> 00:30:41,010 Tekst nije loša instinkt, a iskreno da vrsta čini ono što kaže, 640 00:30:41,010 --> 00:30:45,460 ali riječi može biti kao i 65.000 bajtova najmanje. 641 00:30:45,460 --> 00:30:50,790 To je vjerojatno overkill za polje, i zapravo, Yup, 65.535. 642 00:30:50,790 --> 00:30:53,740 To je vjerojatno overkill za ime, pa ćemo se držati, obično, 643 00:30:53,740 --> 00:30:56,910 s varchars za tekstualnog polje i mljeveno meso, previše. 644 00:30:56,910 --> 00:30:59,990 Mljeveno meso, ispada, mogli bismo napraviti varchar kao dobro ili nešto slično, 645 00:30:59,990 --> 00:31:03,080 ali ne danas će se usredotočiti na kriptografija tamo i brojevi 646 00:31:03,080 --> 00:31:05,210 da mi zapravo želite koristiti za svoje dužine. 647 00:31:05,210 --> 00:31:07,430 >> No, dopustite mi da se pomaknite prema dolje udesno. 648 00:31:07,430 --> 00:31:11,280 Možete imati samo jednu Primarni indeks za stolom, 649 00:31:11,280 --> 00:31:16,380 ali ne želim primijeniti bilo koju od njih, Sada, s imenom, biste rekli? 650 00:31:16,380 --> 00:31:21,980 Ono što treba korisničko ime se temelji na neodređeno razumijevanje tih četiri opcije? 651 00:31:21,980 --> 00:31:23,340 Samo po njihovim imenima? 652 00:31:23,340 --> 00:31:24,140 >> PUBLIKA: Jedinstveni. 653 00:31:24,140 --> 00:31:25,100 >> DAVID J. Malan: Dakle jedinstven, zar ne? 654 00:31:25,100 --> 00:31:28,190 Tako ispada da su ne samo mogla kažeš bazu podataka, unaprijed, 655 00:31:28,190 --> 00:31:30,380 To je primarni način identificiranja polja. 656 00:31:30,380 --> 00:31:32,990 Također možete reći da je ovo će biti jedinstveno polje. 657 00:31:32,990 --> 00:31:34,700 To neće biti što sam se osloniti na, 658 00:31:34,700 --> 00:31:38,490 ali ja bih baze podataka u u biti ima da ako stanje, tako da 659 00:31:38,490 --> 00:31:42,340 da li sam ikada pokušao registrirati Dva korisnici s istim imenom, 660 00:31:42,340 --> 00:31:44,360 Baza stan ne će me pustiti. 661 00:31:44,360 --> 00:31:47,490 Možda ću imati neki dodatni kod u PHP koja sprečava koliko, 662 00:31:47,490 --> 00:31:50,640 ali baza podataka, također, može osigurati da to nikad neće dogoditi. 663 00:31:50,640 --> 00:31:53,370 >> Sada, kao što je na stranu, pogotovo što mislite o završnim projektima, 664 00:31:53,370 --> 00:31:57,030 imajte na umu da indeks i puna Tekst su zapravo vrlo korisna. 665 00:31:57,030 --> 00:32:01,080 Ako imate veću bazu podataka, a ne s desetine, ali sa stotinama ili tisućama 666 00:32:01,080 --> 00:32:05,270 ili čak milijune polja, možete Također reći baze podataka unaprijed 667 00:32:05,270 --> 00:32:07,980 ovo polje idem da se u potrazi za puno. 668 00:32:07,980 --> 00:32:10,520 Možda svoje korisničko ime, možda je to bio, ako si 669 00:32:10,520 --> 00:32:13,750 izrade Facebook-poput web stranicu koja ima stavke koje korisnik je dopušteno 670 00:32:13,750 --> 00:32:16,799 spasiti, a ako želite reći baze podataka unaprijed 671 00:32:16,799 --> 00:32:20,090 Idem se traži na tom području puno, ali to nije nužno jedinstveno, 672 00:32:20,090 --> 00:32:22,800 možete odrediti stvoriti mi indeksa. 673 00:32:22,800 --> 00:32:27,990 Ili, možete izgovoriti dopustiti da učinim vrsta proizvoljnih pretraživanja kao što su zapovjedništva 674 00:32:27,990 --> 00:32:30,420 Kontrola ili F, poput tebe možda u Word Processor, 675 00:32:30,420 --> 00:32:34,184 tako da bi mogao izgledati proizvoljne žice ili podnizova u ovom području. 676 00:32:34,184 --> 00:32:36,600 Drugim riječima, mi smo dobivanje do točke u nastave 677 00:32:36,600 --> 00:32:40,720 gdje se ne morate brinuti o kako učinkovito provesti stvari. 678 00:32:40,720 --> 00:32:44,540 Vi samo trebate znati o tome što dizajn odluke kako bi, tako da ste 679 00:32:44,540 --> 00:32:48,470 pomoću pravih alata za trgovina kako biste iskoristili značajke 680 00:32:48,470 --> 00:32:50,380 da su drugi ljudi su izgradili za vas. 681 00:32:50,380 --> 00:32:54,240 Tako da rekapitulacija, primarni je samo trebalo imaju jednu, možete imati samo jedan, 682 00:32:54,240 --> 00:32:59,630 i to je stvar koju je počinio koristite za identifikaciju polja jedinstveno. 683 00:32:59,630 --> 00:33:02,710 Jedinstvena je samo sličan u duhu, ali možda samo povremeno ga koristiti, 684 00:33:02,710 --> 00:33:04,530 ali želite baze nametnuti. 685 00:33:04,530 --> 00:33:08,050 Indeks samo znači preventivno ubrzati stvari u budućnosti 686 00:33:08,050 --> 00:33:10,230 tako da mogu tražiti stvari u ovom području. 687 00:33:10,230 --> 00:33:13,700 A onda puni tekst je općenito za stavci, ili eseja, ili velika tijela 688 00:33:13,700 --> 00:33:16,270 teksta u kojem vas Možda također žele imati 689 00:33:16,270 --> 00:33:19,420 divlje kartice poput protuvrijednosti zvijezde. 690 00:33:19,420 --> 00:33:19,920 Pravo. 691 00:33:19,920 --> 00:33:22,580 >> Dakle, to je vrsta puno odjednom. 692 00:33:22,580 --> 00:33:25,220 Idemo vidjeti ako ne možemo destilirati Nekoliko tih značajki 693 00:33:25,220 --> 00:33:29,540 a zatim izgraditi nešto prilično jednostavan, ali moćan. 694 00:33:29,540 --> 00:33:31,380 Dakle, među drugima dizajn odluke da ste 695 00:33:31,380 --> 00:33:34,005 u konačnici će morati se zajedno linije za pohranu motora. 696 00:33:34,005 --> 00:33:37,370 I neka mi samo spomenuti ovo U očekivanju završnih projekata, 697 00:33:37,370 --> 00:33:42,020 i predviđanje neka je say-- ne učinimo to. 698 00:33:42,020 --> 00:33:43,820 Ajmo izgraditi taj mali Zahtjev prvi. 699 00:33:43,820 --> 00:33:48,070 Ja ću otići u moju terminal prozor, a ovdje nije 700 00:33:48,070 --> 00:33:52,500 Samo counter.php, koji sada ide riješiti što više nije povezan, 701 00:33:52,500 --> 00:33:54,570 ali imamo hrpu imenika i to 702 00:33:54,570 --> 00:33:58,080 će biti vrlo sličan u duhu onome što ćete vidjeti u problemu postaviti sedam. 703 00:33:58,080 --> 00:34:00,980 >> Dakle, imamo tri imenika uključuje javni i predloške, koji 704 00:34:00,980 --> 00:34:05,040 upravo tamo gdje smo stali na Ponedjeljak s našim cijeli MVC paradigma. 705 00:34:05,040 --> 00:34:09,290 I da recap, u javnosti će ići bilo koja datoteka koja želim korisnike da se zapravo 706 00:34:09,290 --> 00:34:12,969 v moći posjetiti u njihov browser preko URL. 707 00:34:12,969 --> 00:34:13,502 Predložak. 708 00:34:13,502 --> 00:34:14,710 Što smo stavili u predložaka? 709 00:34:14,710 --> 00:34:17,070 Kakve stvari? 710 00:34:17,070 --> 00:34:21,659 Nije bilo puno, ali par datoteka barem u ponedjeljak. 711 00:34:21,659 --> 00:34:22,619 Da. 712 00:34:22,619 --> 00:34:23,100 >> PUBLIKA: Zaglavlje i podnožje? 713 00:34:23,100 --> 00:34:24,516 >> DAVID J. Malan: Zaglavlje i podnožje. 714 00:34:24,516 --> 00:34:26,679 Dakle, imamo nešto slično i danas, previše. 715 00:34:26,679 --> 00:34:30,330 Imamo još nekoliko datoteka, ali Podnožje vidim, zaglavlja vidim, 716 00:34:30,330 --> 00:34:31,909 a onda hrpa drugih datoteka. 717 00:34:31,909 --> 00:34:35,482 Dakle, ovo je ekvivalent pogleda V MVC, koji, 718 00:34:35,482 --> 00:34:37,690 opet, bit će malo više jasno problema postaviti sedam, 719 00:34:37,690 --> 00:34:40,380 ali to je samo mapa sam stavljajući puno mojih estetike. 720 00:34:40,380 --> 00:34:42,840 Puno mojih HTML, puno mojih oblika. 721 00:34:42,840 --> 00:34:46,899 U međuvremenu, uključuje, još je jedan katalog koji ima ove tri datoteke 722 00:34:46,899 --> 00:34:48,440 i neka je uzme brzi pogled na njih. 723 00:34:48,440 --> 00:34:51,699 >> Ja ću ići naprijed i otvoriti config.php. 724 00:34:51,699 --> 00:34:54,610 Kao što se ispostavilo, mnogo kao što je ranije u roku, 725 00:34:54,610 --> 00:34:57,850 li oštar uključeno CS50 dot hs pset7. 726 00:34:57,850 --> 00:35:00,780 U današnjem primjer, idete učiniti ekvivalent da 727 00:35:00,780 --> 00:35:03,600 s izjavom zahtijevati koji učinkovito 728 00:35:03,600 --> 00:35:05,340 uključuje ove nekoliko redaka. 729 00:35:05,340 --> 00:35:08,225 Dakle, da bude jasno, ovo je file config.php. 730 00:35:08,225 --> 00:35:09,350 I primijetiti ono što radi. 731 00:35:09,350 --> 00:35:11,970 To očito radi nešto grobni, okreće se na poruke o pogreškama 732 00:35:11,970 --> 00:35:13,680 tako da ih se može vidjeti u pregledniku. 733 00:35:13,680 --> 00:35:15,860 To je, dakle, očito zahtijevaju dvije druge datoteke 734 00:35:15,860 --> 00:35:19,530 pa to je kao #include u C, i onda je to onaj koji smo vidjeli, 735 00:35:19,530 --> 00:35:22,720 a mi smo se oslonili na to uzbuđuje da košarica poput funkcionalnosti. 736 00:35:22,720 --> 00:35:25,610 >> To znači kolačić volju biti poslan natrag i naprijed. 737 00:35:25,610 --> 00:35:27,290 Pa zašto je to zanimljivo? 738 00:35:27,290 --> 00:35:32,460 Pa, ako se vratimo na to katalog i otvoriti, primjerice, 739 00:35:32,460 --> 00:35:33,741 constance.php. 740 00:35:33,741 --> 00:35:38,840 Uočite da PHP radi podrške konstante, to nije baš kao u C # define 741 00:35:38,840 --> 00:35:41,290 Umjesto toga, doslovno kažu definirana, a obavijest 742 00:35:41,290 --> 00:35:44,110 da sam pohranjeni u unaprijed četiri konstante u ovu datoteku. 743 00:35:44,110 --> 00:35:47,020 Jedan za današnje baze podataka, za moja lozinka, za moje korisničko ime, 744 00:35:47,020 --> 00:35:48,690 i ime poslužitelja. 745 00:35:48,690 --> 00:35:51,644 Dakle, to su zapravo će biti prilično slični u problemu postaviti sedam. 746 00:35:51,644 --> 00:35:54,560 I na kraju, a to je mjesto gdje sam će dobiti neke lijepe funkcionalnost 747 00:35:54,560 --> 00:35:59,000 od osoblja u functions.php je hrpa koda smo pismeni, 748 00:35:59,000 --> 00:36:01,040 i ja ukrao neke od ovoga od problema postaviti sedam 749 00:36:01,040 --> 00:36:05,920 za danas, da se hrpa stvari i neka je samo pogled na jedan od njih 750 00:36:05,920 --> 00:36:07,270 posebno. 751 00:36:07,270 --> 00:36:09,720 Ova funkcija ovdje, upita, će biti 752 00:36:09,720 --> 00:36:13,600 PHP funkciju zovemo kako bi se izvršiti SQL. 753 00:36:13,600 --> 00:36:16,070 Maloprije smo bili pomoću phpMyAdmin, ali to je samo 754 00:36:16,070 --> 00:36:18,720 za kakve svrhe učenja i dijagnostičke svrhe 755 00:36:18,720 --> 00:36:20,494 i zaboravljajući svoj set baze podataka. 756 00:36:20,494 --> 00:36:22,660 Kada zapravo koristiti svoje baze podataka, što, ljudski, 757 00:36:22,660 --> 00:36:24,100 se očito ne ide da se povlačenjem mrežu 758 00:36:24,100 --> 00:36:25,740 stranica svaki put kad netko registrira. 759 00:36:25,740 --> 00:36:29,870 Ideš napisati kod koji ulošci i briše na zahtjev korisnika, 760 00:36:29,870 --> 00:36:32,490 i mi ćemo to učiniti putem funkcije upita. 761 00:36:32,490 --> 00:36:35,360 Ako ja sada pomaknite prema dolje, postoji će biti još nekoliko mogućnosti. 762 00:36:35,360 --> 00:36:37,170 Preusmjeravanje će biti u funkciju što je napisao 763 00:36:37,170 --> 00:36:40,160 za vas koji vam omogućuje da slanje korisnika na drugi URL, 764 00:36:40,160 --> 00:36:43,780 i učiniti je funkcija, kao što je prilično što smo vidjeli u ponedjeljak, koji zapravo čini 765 00:36:43,780 --> 00:36:48,000 predložak, ali više na njih u oblik pset7 vlastite šetnju. 766 00:36:48,000 --> 00:36:50,500 Za sada, idemo naprijed i to učinili. 767 00:36:50,500 --> 00:36:54,860 >> Pustite me u moj stol i predavanja vidim da je trenutno ništa 768 00:36:54,860 --> 00:36:59,640 Ovdje samo još, i neka mi ići u moj javni imenik, gdje su 769 00:36:59,640 --> 00:37:02,780 postoji samo jedna datoteka, index.php. 770 00:37:02,780 --> 00:37:06,920 Ova datoteka se čini super jednostavno u ovom trenutku, to izgleda ovako. 771 00:37:06,920 --> 00:37:09,110 Vrlo slično kako smo stali u ponedjeljak. 772 00:37:09,110 --> 00:37:11,945 Ja zahtijevaju ovu sliku, config.php, koji je 773 00:37:11,945 --> 00:37:15,160 uključuje katalog, koji u dot dot, moji roditelji, 774 00:37:15,160 --> 00:37:17,650 i onda je samo renderiranje ovu datoteku. 775 00:37:17,650 --> 00:37:18,960 Dakle, ono što je ovu sliku? 776 00:37:18,960 --> 00:37:24,700 >> Idemo se otvoriti u mojim predložaka form.php, pa ćemo vidjeti. 777 00:37:24,700 --> 00:37:28,500 Super jednostavno, očito ovaj obrazac je će se predati do $ _GET ili $ _POST. 778 00:37:28,500 --> 00:37:29,320 Brzo duševne ček. 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 Doslovno vizualno traži datoteku. 781 00:37:35,690 --> 00:37:36,610 Metoda jednak posta. 782 00:37:36,610 --> 00:37:39,280 Dakle, to neće koristiti URL, kao što su Google ne, to će sortirati od kože 783 00:37:39,280 --> 00:37:41,030 Informacije iza scene i to 784 00:37:41,030 --> 00:37:43,580 će dostaviti Datoteka naziva register.php, 785 00:37:43,580 --> 00:37:45,660 i to je datoteka mi smo još uvijek nije zapisano 786 00:37:45,660 --> 00:37:47,610 ali što se to događa izgledati kao što je to. 787 00:37:47,610 --> 00:37:52,670 >> Ako idem na posebnoj stranici To je ono localhost / index.php izgleda. 788 00:37:52,670 --> 00:37:56,930 I opet, i poslužitelja Samo pod pretpostavkom index.php. 789 00:37:56,930 --> 00:37:57,910 Unesite. 790 00:37:57,910 --> 00:37:59,870 Dakle, to je gdje smo na, a ono što želim napraviti 791 00:37:59,870 --> 00:38:02,450 se moći upisati stvari kao David, a zatim 792 00:38:02,450 --> 00:38:08,050 moj broj telefona, što će reći 617-555-1212 za sada, registrirajte 793 00:38:08,050 --> 00:38:09,910 a sada register.php nije pronađen. 794 00:38:09,910 --> 00:38:11,440 Dakle, moram provesti ovo. 795 00:38:11,440 --> 00:38:13,320 Tako ćemo brzo bič nešto poput ovog gore. 796 00:38:13,320 --> 00:38:18,640 Pustite me u moj javni imenik i to gedit od register.php, 797 00:38:18,640 --> 00:38:22,300 a sada ću ići naprijed i pokrenuti PHP način, kao što smo učinili u ponedjeljak, 798 00:38:22,300 --> 00:38:25,430 i zatvorite PHP-tag, i neka je učiniti nekoliko stvari. 799 00:38:25,430 --> 00:38:28,336 >> Tako je jedan, znam, iz da je pisao taj oblik, 800 00:38:28,336 --> 00:38:29,960 da želim provjeriti u nastavku. 801 00:38:29,960 --> 00:38:35,670 Ako je prazna, bez obzira korisnik upisali na terenu ime, a zatim 802 00:38:35,670 --> 00:38:39,860 Ja ću reći nešto kao što se ispričavam nedostaje ime. 803 00:38:39,860 --> 00:38:42,380 Ispričavamo se, u međuvremenu, je nije izgrađen u PHP stvar, 804 00:38:42,380 --> 00:38:45,970 to je funkcija smo napisali U functions.php za pset7 805 00:38:45,970 --> 00:38:47,940 tako da ćete imati pristup do njega. 806 00:38:47,940 --> 00:38:53,830 Inače, ako drugom području prazan, broj, onda sam 807 00:38:53,830 --> 00:38:58,370 će se ispričati Korisnik i reći nedostaje broj. 808 00:38:58,370 --> 00:38:59,320 Spremite ovu datoteku. 809 00:38:59,320 --> 00:39:02,640 >> Sad idemo natrag u svom pregledniku, povratak na forumu pokušajte ponovno. 810 00:39:02,640 --> 00:39:04,070 Registrirajte se. 811 00:39:04,070 --> 00:39:05,090 U redu. 812 00:39:05,090 --> 00:39:06,730 Ništa se nije dogodilo, što je dobro. 813 00:39:06,730 --> 00:39:08,120 Nisam se poruka o pogrešci. 814 00:39:08,120 --> 00:39:11,651 Ali ako umjesto toga, neka je ponovno ova stranica, a ne daju ništa. 815 00:39:11,651 --> 00:39:12,150 Prokletstvo. 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 Učinite to. 818 00:39:17,140 --> 00:39:18,810 Registrirajte se. 819 00:39:18,810 --> 00:39:20,350 Što sam učinio krivo? 820 00:39:20,350 --> 00:39:24,860 Ako je prazna, $ _POST ime. 821 00:39:24,860 --> 00:39:26,350 Opet kažem? 822 00:39:26,350 --> 00:39:27,670 >> Oh, naravno. 823 00:39:27,670 --> 00:39:30,919 Zaboravio sam najvažniji dio, koji je potrebno ("../ uključuje / config.php."). 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 Moram imati pristup Ispričavamo funkciju, što 826 00:39:36,460 --> 00:39:37,770 Zato se ništa nije događalo. 827 00:39:37,770 --> 00:39:39,460 Funkcija zapravo ne postoji. 828 00:39:39,460 --> 00:39:40,640 Dakle, pokušajmo to opet. 829 00:39:40,640 --> 00:39:42,350 Idemo ponovno učitati stranicu, kliknite registar. 830 00:39:42,350 --> 00:39:43,060 U redu. 831 00:39:43,060 --> 00:39:43,770 Tamo je. 832 00:39:43,770 --> 00:39:45,700 Dakle, izlazni smo vidim ovdje je rezultat 833 00:39:45,700 --> 00:39:47,685 pozivanja ispričati funkcija, super jednostavan, 834 00:39:47,685 --> 00:39:50,060 i to samo ispisuje god Ja ga dati kao argument. 835 00:39:50,060 --> 00:39:51,370 >> U redu, tako da ćemo surađivati. 836 00:39:51,370 --> 00:39:54,240 Idemo dati moje ime poput Davida, registrirajte, 837 00:39:54,240 --> 00:39:56,890 Broj nestalih redu neka je propisano je da, previše. 838 00:39:56,890 --> 00:39:58,650 617-555-1212. 839 00:39:58,650 --> 00:39:59,250 Registrirajte se. 840 00:39:59,250 --> 00:39:59,750 U redu. 841 00:39:59,750 --> 00:40:02,760 Dakle, sve je dobro danas, baš ništa Zanimljivo se događa. 842 00:40:02,760 --> 00:40:06,000 Dakle, sada ćemo napraviti nešto više Zanimljivo dogoditi ovako. 843 00:40:06,000 --> 00:40:09,980 Pusti me u phpMyAdmin, i neka je zapravo stvoriti tablicu pod nazivom korisnik, 844 00:40:09,980 --> 00:40:12,330 Ja ću mu dati tri stupaca, a ja ću se brzo 845 00:40:12,330 --> 00:40:16,250 stvaraju ID, a zatim ime, a zatim broj, 846 00:40:16,250 --> 00:40:18,832 i ID polje sam će otići kao int. 847 00:40:18,832 --> 00:40:20,790 Ime polje idem ostaviti kao VARCHAR, 848 00:40:20,790 --> 00:40:23,257 a mi ćemo reći 64, nešto proizvoljno. 849 00:40:23,257 --> 00:40:25,090 Broj Idem da, znate što? 850 00:40:25,090 --> 00:40:27,350 Idemo u Podrži nas brojeve ovdje, 851 00:40:27,350 --> 00:40:31,510 pa ću napraviti nešto kao char a onda 10 znakova 852 00:40:31,510 --> 00:40:34,540 max za predbrojem a zatim sedam znamenaka. 853 00:40:34,540 --> 00:40:37,870 A onda ovdje, ja ću odrediti auto prirast ovom području, 854 00:40:37,870 --> 00:40:40,550 čine ovaj primarni ključ, a Ja ću ići naprijed, a ne 855 00:40:40,550 --> 00:40:42,240 provjeriti bilo koju od ovih drugih kutija. 856 00:40:42,240 --> 00:40:48,030 >> Dakle, kada sam sada konačno kliknite Spremi, i ja vratiti na moj stol korisnika, 857 00:40:48,030 --> 00:40:52,270 to je ono što izgleda kao da sam Sada kliknite na New Tab strukturu. 858 00:40:52,270 --> 00:40:54,550 Dakle, to, da bude jasno, je samo phpMyAdmin je način 859 00:40:54,550 --> 00:40:58,570 govoreći svoju tablicu baze podataka ima ID, ime i broj 860 00:40:58,570 --> 00:41:02,040 s tim određenim konfiguracijama a mi ćemo zanemariti ostatak polja 861 00:41:02,040 --> 00:41:03,140 tamo za sada. 862 00:41:03,140 --> 00:41:04,810 >> Pa sad ono što želim učiniti? 863 00:41:04,810 --> 00:41:09,060 Dakle, ako ja odem sada u mom izvorni kod, ako je sve u redu 864 00:41:09,060 --> 00:41:11,190 Želim izvršiti sljedeće upit. 865 00:41:11,190 --> 00:41:14,970 Umetnite u, a ja mogu samo kažu korisnik ne mislim strogo 866 00:41:14,970 --> 00:41:18,620 potrebna onima koji su krpelja, ako je to Nije opasna riječi poput korisnicima. 867 00:41:18,620 --> 00:41:22,810 Ja ću reći ime, broj, a onda ovdje sam 868 00:41:22,810 --> 00:41:24,960 Ne ide se tvrdi koda znamenka vrijednosti još. 869 00:41:24,960 --> 00:41:26,760 Ja ću staviti dva upitnika. 870 00:41:26,760 --> 00:41:29,320 A to je konvencija u mnogim jezicima 871 00:41:29,320 --> 00:41:31,730 pri čemu, ako želite imati rezervirano mjesto za niz 872 00:41:31,730 --> 00:41:34,105 idete koristiti pitanje maraka, iz razloga što ćete 873 00:41:34,105 --> 00:41:36,370 vratiti na razgovor o tome sigurnost, a ovdje 874 00:41:36,370 --> 00:41:39,420 Ja ću proći u onima dva polja objaviti ime, 875 00:41:39,420 --> 00:41:44,850 a onda postavljati broj, a sada spremite datoteku. 876 00:41:44,850 --> 00:41:47,090 >> A sada ću ići ovdje dolje je super 877 00:41:47,090 --> 00:41:55,690 jednostavno reći rendersuccess.php, koji će biti još predloška. 878 00:41:55,690 --> 00:41:57,380 Ja ću napraviti jako brzo. 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php a ja sam samo idući reći H1 uspjeh u toj datoteci. 880 00:42:06,270 --> 00:42:06,990 U redu. 881 00:42:06,990 --> 00:42:11,312 Tako sada, idemo natrag preglednik, gdje sam posjetio prije. 882 00:42:11,312 --> 00:42:14,270 Idemo naprijed i potvrdite sam napisao u Davidu, napisao sam u telefonskom broju, 883 00:42:14,270 --> 00:42:15,390 registrirajte. 884 00:42:15,390 --> 00:42:16,100 Prokletstvo. 885 00:42:16,100 --> 00:42:17,420 Što sam učinio krivo? 886 00:42:17,420 --> 00:42:20,850 Pa vidim pogrešku ovdje, Vas ima grešku u vašem SQL sintakse. 887 00:42:20,850 --> 00:42:24,900 Dopustite mi da skok natrag u gedit, neka ja vratiti u register.php, 888 00:42:24,900 --> 00:42:28,830 i što sam propustio da je važno zadnji put? 889 00:42:28,830 --> 00:42:29,722 Trebam to. 890 00:42:29,722 --> 00:42:32,930 Želite znati da osim iz ima primijetio prije, ali moram to. 891 00:42:32,930 --> 00:42:35,596 >> Tako sada idemo natrag, a to bilo korisno vidjeti u pregledniku 892 00:42:35,596 --> 00:42:37,680 i to je razlog zašto u config.php smo ispljunuti pogreške. 893 00:42:37,680 --> 00:42:41,770 Idemo naprijed i ponovno, kliknite Nastavi, uspjeh. 894 00:42:41,770 --> 00:42:47,060 Pa sad neka mi ići preko na moj Baza podataka ovdje i kliknite na korisnike, 895 00:42:47,060 --> 00:42:51,680 i pregledavati, i primjetiti ja sada imaju Davida u mojoj bazi podataka ovdje. 896 00:42:51,680 --> 00:42:55,810 Sada je tehnički ovaj website još nije na javnom internetu, 897 00:42:55,810 --> 00:42:57,890 pa ne mogu imati druge ljudi u stavljajući ovdje 898 00:42:57,890 --> 00:43:01,120 ali ako sam sad htjela, za instanca, pošalji si tekstualnu poruku. 899 00:43:01,120 --> 00:43:03,920 Idemo u raskoraku ovdje i vidjeti je li to zapravo radi. 900 00:43:03,920 --> 00:43:07,331 Ja ću ići naprijed i izbrisati ovaj redak 901 00:43:07,331 --> 00:43:09,080 a mi ćemo to zamagliti u videu kasnije 902 00:43:09,080 --> 00:43:11,900 tako da nemamo Cijeli internet me tkanina, 903 00:43:11,900 --> 00:43:17,270 a sada će ići i do preglednik i mi ćemo prijeći na predavanje 904 00:43:17,270 --> 00:43:22,040 a mi ćemo upisati različita broj ovdje, registrirajte se, uspjeh. 905 00:43:22,040 --> 00:43:25,550 >> Tako sada, moj broj je vjerojatno u baze podataka, a sada zabavni dio. 906 00:43:25,550 --> 00:43:28,774 Idemo zapravo koristiti PHP učiniti nešto programatski, 907 00:43:28,774 --> 00:43:30,940 bilo iz naredbe linije ili od negdje drugdje, 908 00:43:30,940 --> 00:43:32,773 i za sada sam samo će ga zadržati jednostavan 909 00:43:32,773 --> 00:43:36,230 a ja ću otići u moju katalog ovdje i napraviti sljedeće. 910 00:43:36,230 --> 00:43:44,920 Gedit skriptu recimo, mi ćemo zovu ga tekst, #! / Korisnik / bin / ENV PHP, 911 00:43:44,920 --> 00:43:46,700 kao što smo vidjeli posljednji put. 912 00:43:46,700 --> 00:43:47,950 PHP. 913 00:43:47,950 --> 00:43:55,055 >> Sada ću potrebna uključuje config.php, 914 00:43:55,055 --> 00:43:57,360 iako to izazivaju blagi pogrešku. 915 00:43:57,360 --> 00:44:03,960 A sada ću ići naprijed i reći redaka, upita, odaberite zvijezda od korisnika, 916 00:44:03,960 --> 00:44:08,149 a sada ovdje ću napraviti tehniku od prošlog puta za svaku redovima kao zaredom. 917 00:44:08,149 --> 00:44:09,690 A ja ću učiniti nešto jednostavno. 918 00:44:09,690 --> 00:44:19,090 Printf recimo ime je to, a broj je to, backslash n. 919 00:44:19,090 --> 00:44:23,320 A sada ću proći u redu citiram citat ime, 920 00:44:23,320 --> 00:44:28,140 i red citat citat broj, a sada idemo naprijed 921 00:44:28,140 --> 00:44:31,430 i moj prozor terminala chmod to + x napraviti 922 00:44:31,430 --> 00:44:33,970 Ova skripta zove tekst izvršna. 923 00:44:33,970 --> 00:44:36,080 A sada ćemo pokrenuti tekst. 924 00:44:36,080 --> 00:44:37,590 >> U redu, tako da napredujete. 925 00:44:37,590 --> 00:44:39,960 Tako sam sada sam napisao naredbenog retka skripta, 926 00:44:39,960 --> 00:44:43,300 u jeziku zove PHP, da, zbog toga zahtijevaju liniju, 927 00:44:43,300 --> 00:44:46,380 ima pristup svim tim konfiguraciji Konstante da navedene. 928 00:44:46,380 --> 00:44:48,177 Naziv baze podataka i tako dalje. 929 00:44:48,177 --> 00:44:50,260 U stvari, samo da bude jasno da to nije slučajnost, 930 00:44:50,260 --> 00:44:54,730 neka mi ići naprijed i registrirati, jako brzo, netko poput Rob 931 00:44:54,730 --> 00:44:58,890 i da će mu dati broj 555-1212. 932 00:44:58,890 --> 00:45:01,557 >> A sada, ako sam pokrenuti skriptu Ponovno, primijetiti moć 933 00:45:01,557 --> 00:45:03,140 onoga što radimo s bazom podataka. 934 00:45:03,140 --> 00:45:07,680 Sada sam odmah vidio što Druga dva reda su u mojoj bazi podataka. 935 00:45:07,680 --> 00:45:10,699 Dakle, sada ćemo pokušati učiniti nešto ni ljubitelj unutar, 936 00:45:10,699 --> 00:45:12,740 i to je dio mi smo nije testirano unaprijed 937 00:45:12,740 --> 00:45:15,910 pa zadnji put sam to učinio što je otišao užasno krivim putem, 938 00:45:15,910 --> 00:45:17,120 imamo video za tu svrhu. 939 00:45:17,120 --> 00:45:18,286 >> Zapravo, da, smiješno stranu. 940 00:45:18,286 --> 00:45:20,480 Tako je posljednji put, u predavanja kao i prije dvije godine, 941 00:45:20,480 --> 00:45:23,230 odlučili smo, odlučio sam, da se Sve to će biti velik ideja 942 00:45:23,230 --> 00:45:28,150 dinamički generirati e-pošte u klase, koristeći cijelu bazu podataka CS50 943 00:45:28,150 --> 00:45:33,390 studentima, koji su nam dali svoje brojeve i njihovi nositelji mobitel koji vam 944 00:45:33,390 --> 00:45:36,290 Podsjetimo od pset0, kako urazumiti, ispada 945 00:45:36,290 --> 00:45:40,650 Imao sam manju grešku u mom programu i učinio par pogrešaka u 2012, mislim. 946 00:45:40,650 --> 00:45:43,997 >> Čime, jedan sam imao petlje za to učinio upravo takve stvari, 947 00:45:43,997 --> 00:45:46,580 iterating preko baze podataka, uzimajući ime iz baze podataka, 948 00:45:46,580 --> 00:45:49,940 ime iz baze podataka, a zatim na svakoj iteracija te petlje sam poslao e-mail. 949 00:45:49,940 --> 00:45:54,130 No, umjesto slanja e-mail, ja poslao jedan e-mail prva iteracija, 950 00:45:54,130 --> 00:45:58,200 i dvije e-mail druga iteracija, poslao tri e-mail druga iteracija, koja 951 00:45:58,200 --> 00:46:01,230 kao što ste mogli sjetiti iz naše rasprava o asimptotsku zapis 952 00:46:01,230 --> 00:46:06,400 ovaj veliki O je loše, kao što je n kvadrat je koliko poruka sam poslao, 953 00:46:06,400 --> 00:46:08,560 ali to nije bilo ni e-mail to je bio tekstualne poruke. 954 00:46:08,560 --> 00:46:12,070 >> A kao što znate, posjećenost nije super visoka prema kraju semestra 955 00:46:12,070 --> 00:46:15,360 pa sam mislio da će to biti slatko na Vrijeme je da kažem: "Zašto nisi klase?" 956 00:46:15,360 --> 00:46:17,880 U SMS poruci I. poslan cijelom razredu, 957 00:46:17,880 --> 00:46:22,140 i to je smiješno da se sviđa 50% klase, ali drugih 50%, od kojih su neki 958 00:46:22,140 --> 00:46:26,102 izbezumio, ja poslao nevjerojatno obranaške slatke note 959 00:46:26,102 --> 00:46:28,560 za osoblje ispričava nakon što je propustio predavanje upravo 960 00:46:28,560 --> 00:46:29,530 ovaj put, zar ne? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> Tako da bi užasno krivim putem. 963 00:46:34,030 --> 00:46:37,030 Dakle, u tom duhu, pokušajmo ali opet samo s mojim brojem. 964 00:46:37,030 --> 00:46:41,940 U unaprijed, u functions.php, Ja sam napisao ovu funkciju ovdje. 965 00:46:41,940 --> 00:46:44,250 To se zove tekst, i to traje u tri argumenata. 966 00:46:44,250 --> 00:46:46,360 Broj, prijevoznik, i poruka. 967 00:46:46,360 --> 00:46:50,390 >> Ja sam koristeći izjavu prekidač koji predivno PHP uzeti konce, a ne samo 968 00:46:50,390 --> 00:46:53,350 cijeli brojevi, a nisam implementirati Sve podrška za to još, 969 00:46:53,350 --> 00:46:55,370 Upravo sam učinio AT & T i Verizon. 970 00:46:55,370 --> 00:46:57,610 Zbog ispada da je s tim prijevoznicima 971 00:46:57,610 --> 00:47:00,570 imaju e-mail na SMS gateway, gdje možete zapravo 972 00:47:00,570 --> 00:47:05,529 poslati e-mail na adresu kao i broj telefona na vtext.com 973 00:47:05,529 --> 00:47:08,070 a ako korisnik nije blokiran poruke, to će proći 974 00:47:08,070 --> 00:47:09,340 je SMS poruka. 975 00:47:09,340 --> 00:47:13,270 >> Sada to učiniti, ja ću morati dodati jedno polje jako brzo u moju bazu podataka. 976 00:47:13,270 --> 00:47:15,470 Ja ću ići u moja struktura, a ja sam 977 00:47:15,470 --> 00:47:21,880 ići naprijed i dodati polja na kraju stola. 978 00:47:21,880 --> 00:47:25,227 Idemo kliknite Idi, a ja sam nazvati ovaj nosač 979 00:47:25,227 --> 00:47:27,310 a za sada ću ostaviti to kao bar teksta, 980 00:47:27,310 --> 00:47:29,320 ali možemo biti ljubitelj u budućnosti. 981 00:47:29,320 --> 00:47:31,961 Ja ću brzo otići na mom stolu, a ja sam 982 00:47:31,961 --> 00:47:34,210 će se riješiti Rob, jer to je lažni broj, 983 00:47:34,210 --> 00:47:38,540 Ja ću ići u uređivanju ovdje, a ja sam ide ručno promijeniti svoju karijeru 984 00:47:38,540 --> 00:47:43,410 biti Verizon, što ga je, a sada ovdje. 985 00:47:43,410 --> 00:47:44,980 >> Idemo napraviti brzu provjeru razum. 986 00:47:44,980 --> 00:47:52,730 Otvorimo naš tekst skriptu koja izgleda ovako, nosač je% s. 987 00:47:52,730 --> 00:47:58,230 Radimo puno više pogrešku provjeru nego što sam učinio u 2012., nosač. 988 00:47:58,230 --> 00:48:01,160 A sada, ja ću otići naprijed i ponovno pokrenuti skriptu. 989 00:48:01,160 --> 00:48:01,660 U redu. 990 00:48:01,660 --> 00:48:06,100 Prijevoznik je Verizon, što znači Sada nadamo se ja mogu učiniti upravo to. 991 00:48:06,100 --> 00:48:08,360 Ispravno ove godine, nadam se, ovdje mi ići. 992 00:48:08,360 --> 00:48:12,200 >> Dakle, unutar toga za petlju, ja sam će ne samo ovaj printf, 993 00:48:12,200 --> 00:48:15,990 Ja sam također nazvati teksta i uporaba ove funkcije opoziv 994 00:48:15,990 --> 00:48:19,670 Bio je potrebno broj, Nosač i poruka. 995 00:48:19,670 --> 00:48:23,310 Tako ćemo vidjeti, broj će se biti red citat citat "broj" 996 00:48:23,310 --> 00:48:31,660 red citat citat "nosač" a zadnja je bila poruka. 997 00:48:31,660 --> 00:48:36,250 Nemojte zeznuti ove godine, zarez. 998 00:48:36,250 --> 00:48:36,780 >> U redu. 999 00:48:36,780 --> 00:48:38,280 Fige. 1000 00:48:38,280 --> 00:48:39,970 Idemo vidjeti ako to radi. 1001 00:48:39,970 --> 00:48:41,720 U redu, tako. 1002 00:48:41,720 --> 00:48:43,000 Ovdje ćemo ići. 1003 00:48:43,000 --> 00:48:47,380 Idemo otključavanje telefona, fige, k vragu. 1004 00:48:47,380 --> 00:48:50,300 Neodređeno promjenjiva may-- oh čekajte, čekajte, čekajte, jako brzo. 1005 00:48:50,300 --> 00:48:51,340 Jako brzo, jako brzo. 1006 00:48:51,340 --> 00:48:53,380 Ovo je totalno isplati. 1007 00:48:53,380 --> 00:48:57,710 Dopustite mi da zgrabite, dopustite mi da zgrabite, uh-oh. 1008 00:48:57,710 --> 00:48:59,965 Hvala vam, tekstovi imaju počeo od nekog drugog. 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 Dopustite mi ići naprijed i otvoriti stvarne brzo, dropbox.php / mail ovdje. 1011 00:49:11,650 --> 00:49:12,660 Standby. 1012 00:49:12,660 --> 00:49:14,455 Totalno isplati. 1013 00:49:14,455 --> 00:49:17,430 Preuzimanja. 1014 00:49:17,430 --> 00:49:18,560 U redu, izvor src8m. 1015 00:49:18,560 --> 00:49:19,700 U redu. 1016 00:49:19,700 --> 00:49:21,380 >> Trebate još jedan redak ovdje. 1017 00:49:21,380 --> 00:49:24,530 Ma tu je, to je u Frosh IM, to je u registar u tri. 1018 00:49:24,530 --> 00:49:28,820 Oh hello, Margo, puno ti hvala. 1019 00:49:28,820 --> 00:49:31,130 OK, i ja je nestalo ovu liniju ovdje. 1020 00:49:31,130 --> 00:49:33,010 Pa neka mi brzo zgrabite ova linija koda, 1021 00:49:33,010 --> 00:49:36,200 koja uključuje mail ili knjižnicu da sam zapravo želite koristiti, 1022 00:49:36,200 --> 00:49:38,300 Idem brzo vratiti u funkcijama, 1023 00:49:38,300 --> 00:49:42,337 Ja ću ići na vrh ove podnijeti i zahtijevaju ovu sliku kao dobro, 1024 00:49:42,337 --> 00:49:45,420 i sad ću stvarno prijeći mom prstima kad sam se vratiti na naredbu 1025 00:49:45,420 --> 00:49:49,530 Linija skriptu, što je unutar danas lokalni domaćin katalog. 1026 00:49:49,530 --> 00:49:50,610 Trčanje tekst. 1027 00:49:50,610 --> 00:49:52,720 Unesite. 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, u redu. 1034 00:50:02,290 --> 00:50:03,870 Ovdje ćemo ići. 1035 00:50:03,870 --> 00:50:06,880 >> Mail dobiva novu PHP cirkularnu. 1036 00:50:06,880 --> 00:50:09,970 Je li ja to pravo? 1037 00:50:09,970 --> 00:50:11,067 Prokletstvo. 1038 00:50:11,067 --> 00:50:12,150 To-- oh, čekaj, čekaj, čekaj. 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 Obećajem, ovo je će biti tako isplati. 1042 00:50:18,630 --> 00:50:20,340 Adresa. 1043 00:50:20,340 --> 00:50:24,390 To je razlog zašto ja ne bi primjeri pravu prije klasi. 1044 00:50:24,390 --> 00:50:26,350 Uh. 1045 00:50:26,350 --> 00:50:27,910 Sljedeće primatelji nije uspio. 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 Pokušajmo još jednu stvar. 1048 00:50:33,040 --> 00:50:40,660 SMTP postavljene, dodajte adresu, adresa je doista to. 1049 00:50:40,660 --> 00:50:43,980 Pokušajmo ovaj zadnji dio u adresi. 1050 00:50:43,980 --> 00:50:47,210 Ah, stvarno sam tužna sada. 1051 00:50:47,210 --> 00:50:47,854 Hvala Vam. 1052 00:50:47,854 --> 00:50:50,270 Ali ja stvarno poštovati sve tekstovi ste slanja. 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 Imaš ovu Davida. 1055 00:50:56,320 --> 00:50:59,310 Vi ste ga puše. 1056 00:50:59,310 --> 00:51:01,720 Ostavimo to tamo i mi ćemo popraviti u ponedjeljak. 1057 00:51:01,720 --> 00:51:04,290 Vidimo se onda. 1058 00:51:04,290 --> 00:51:08,090 >> DAVEN FARNHAM: A sada duboko Misli po Daven Farnham. 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 Ako binarno stablo padne u šumi i nitko se oko C it-- [smijeh]. 1061 00:51:17,590 --> 00:51:18,998