1 00:00:00,000 --> 00:00:10,393 >> [Predvajanje glasbe] 2 00:00:10,393 --> 00:00:11,037 3 00:00:11,037 --> 00:00:12,120 DAVID J. Malan: Dobro. 4 00:00:12,120 --> 00:00:12,830 Dobrodošel nazaj. 5 00:00:12,830 --> 00:00:13,890 To je CS50. 6 00:00:13,890 --> 00:00:15,570 To je konec 8 tedna. 7 00:00:15,570 --> 00:00:18,360 In kot veste, imamo precej redni delovni čas v nekaj 8 00:00:18,360 --> 00:00:21,090 V jedilnici, vključno Annenberg. 9 00:00:21,090 --> 00:00:23,860 In nekateri ekipe prijazno vzel nekaj fotografij v zadnjem času. 10 00:00:23,860 --> 00:00:26,230 In v čast Halloween, smo menili, da bi 11 00:00:26,230 --> 00:00:30,160 imamo enega, ki nas ne ulovi presenečenje tukaj v dvorani Annenberg samo 12 00:00:30,160 --> 00:00:31,490 drugi večer. 13 00:00:31,490 --> 00:00:36,300 Vaš sošolec Jacob pozirala Ta fotografija je bila, ampak bolj zabavno 14 00:00:36,300 --> 00:00:39,760 je bil na Facebooku, je sledila pogovor, ki se je zgodilo pozneje. 15 00:00:39,760 --> 00:00:43,020 >> Njegov prvi post v odgovor njegovi fotografiji je bilo to. 16 00:00:43,020 --> 00:00:46,740 Nekaj ​​minut kasneje se je odločil, enega do sebe s tem. 17 00:00:46,740 --> 00:00:53,800 V nadaljevanju je nato iti v to, in nato, še bolj amusingly 18 00:00:53,800 --> 00:00:55,320 je, ko je njegova mama chimed. 19 00:00:55,320 --> 00:00:59,240 20 00:00:59,240 --> 00:01:01,800 In potem na koncu, zdi se, da je to le 21 00:01:01,800 --> 00:01:04,860 čudovito zvijačo za igrati, da se dogaja. 22 00:01:04,860 --> 00:01:07,080 >> Torej, če bi želeli da vidim, Jakoba in drugi, 23 00:01:07,080 --> 00:01:10,880 med njimi Cynthia Meng, kdo je zakulisju CS50 cone osebja, 24 00:01:10,880 --> 00:01:13,970 glavo na tem URL-ju in s tem vlogo. 25 00:01:13,970 --> 00:01:18,810 Torej, brez odlašanja, danes smo nadaljuje ta pogled na spletnem programiranju, 26 00:01:18,810 --> 00:01:21,810 in dejansko oblikovanje programov ki ne vodijo na vaši ukazni vrstici, 27 00:01:21,810 --> 00:01:24,080 ampak teče znotraj brskalnika. 28 00:01:24,080 --> 00:01:26,320 >> Verjetno zdaj, ali pa zelo kmalu, boš 29 00:01:26,320 --> 00:01:30,200 da je sredi izvajanja svoj spletni strežnik, ki 30 00:01:30,200 --> 00:01:31,700 je drugačen od spletnega programiranja. 31 00:01:31,700 --> 00:01:36,210 Spletni strežnik v pset6 je vse okoli pisanje programske opreme, ki ve, kako se bo 32 00:01:36,210 --> 00:01:39,300 Zahteve HTTP iz brskalnika, ali celo od tebe, človek, 33 00:01:39,300 --> 00:01:42,340 s programom, imenovanim Telnet, in Nato se odzove na te zahteve, bodisi 34 00:01:42,340 --> 00:01:48,600 ga izpljunil datoteko HTML, ali jpeg ali gif ali celo .php datoteke. 35 00:01:48,600 --> 00:01:52,490 >> Ampak s spletnega strežnika, to ni naj bi samo odpreti datoteko PHP, 36 00:01:52,490 --> 00:01:55,260 nekaj, kar se konča z Php in nato izpljunite vsebino. 37 00:01:55,260 --> 00:01:58,440 To naj bi storili kaj te datoteke prvi? 38 00:01:58,440 --> 00:01:59,390 Tako rekoč. 39 00:01:59,390 --> 00:02:04,060 Ne zbere, smo rekli v ponedeljek, vendar rather-- Torej, interpretirati. 40 00:02:04,060 --> 00:02:08,070 >> PHP je razlaga jezik, in tako ena od ključnih funkcij v vašo spletno 41 00:02:08,070 --> 00:02:11,550 server, čeprav pri nas izvaja, je to sposobnost za vaš spletni strežnik 42 00:02:11,550 --> 00:02:12,490 opazili, oh. 43 00:02:12,490 --> 00:02:14,580 To je datoteka, ki se konča z Php. 44 00:02:14,580 --> 00:02:17,970 Dovolite mi, ne samo ga pošljite na Uporabnik je všeč to statično vsebino, 45 00:02:17,970 --> 00:02:20,970 ampak povej mi to linijo prebrati linija, od leve proti desni, in jo razlagajo. 46 00:02:20,970 --> 00:02:23,030 >> In storiti, da vas Fantje bodo bistveno 47 00:02:23,030 --> 00:02:26,520 punt s programom na aparatu, in na veliko računalniških sistemov, 48 00:02:26,520 --> 00:02:27,500 Pravkar se imenuje PHP. 49 00:02:27,500 --> 00:02:30,579 To je ime za PHP Jezik lastno tolmač. 50 00:02:30,579 --> 00:02:33,120 Tako, da smo kos izvajati za vi, in kaj je ostalo za vas, 51 00:02:33,120 --> 00:02:35,240 v končni fazi, je število kosov, med katerimi 52 00:02:35,240 --> 00:02:37,960 je izvajanje podpore za statično vsebino. 53 00:02:37,960 --> 00:02:40,180 >> Toda zdaj, in s problem nastaviti sedem, ste 54 00:02:40,180 --> 00:02:43,660 bo za začetek prehoda na dejansko pisanje PHP kodo 55 00:02:43,660 --> 00:02:45,970 da se interpretira v pogovoru z zadnjega konca 56 00:02:45,970 --> 00:02:47,960 Baza podatkov, ki shranjuje podatke. 57 00:02:47,960 --> 00:02:51,020 Torej Dovolite bolje razumeti najprej Nekaj ​​teh superglobals 58 00:02:51,020 --> 00:02:53,720 in samo koliko moči vas ven iz škatle brezplačno 59 00:02:53,720 --> 00:02:55,250 z jezika, kot je PHP. 60 00:02:55,250 --> 00:02:57,350 Stvari, ki jih nimajo izvajati sami. 61 00:02:57,350 --> 00:03:01,700 >> Torej, smo videli v ponedeljek $ _GET, ki je superglobal, 62 00:03:01,700 --> 00:03:05,496 ki je šele PHP govorijo globalno spremenljivka lahko dostopate kjerkoli. 63 00:03:05,496 --> 00:03:06,620 In kaj je notri od $ _GET? 64 00:03:06,620 --> 00:03:09,930 65 00:03:09,930 --> 00:03:12,110 Kaj je notri tega superglobal da vidimo? 66 00:03:12,110 --> 00:03:15,900 67 00:03:15,900 --> 00:03:19,020 Zagotovo statistično na vsaj ena oseba ve. 68 00:03:19,020 --> 00:03:21,590 Kaj je notri od $ _GET? 69 00:03:21,590 --> 00:03:22,426 Ja? 70 00:03:22,426 --> 00:03:24,130 >> OBČINSTVO: To so spremenljivke daš v poizvedbi. 71 00:03:24,130 --> 00:03:24,530 >> DAVID J. Malan: Popolna. 72 00:03:24,530 --> 00:03:26,488 To je za vas spremenljivke dal v poizvedbi. 73 00:03:26,488 --> 00:03:29,910 Torej, v naši starejši primer reimplementing Googlu, ko smo imeli 74 00:03:29,910 --> 00:03:34,130 URL, nato pa vprašaj, ki razmejuje začetek HTTP 75 00:03:34,130 --> 00:03:37,950 parametre, nato pa smo imeli q enako kaj podobnega, kot je q enak mačke, 76 00:03:37,950 --> 00:03:41,500 kaj bi avtomatično noter od tega $ _GET super globalna vas, 77 00:03:41,500 --> 00:03:47,430 ker PHP, je ključ Q, in vrednosti njenega mačk. 78 00:03:47,430 --> 00:03:51,250 >> Z drugimi besedami, $ _GET in vse te stvari so asociativne nize, 79 00:03:51,250 --> 00:03:54,530 hash tabele vrst, da trgovina ključi in vrednote. 80 00:03:54,530 --> 00:03:57,980 Zdaj pa nazaj v pset5, hash miza ste morda izvajajo, 81 00:03:57,980 --> 00:04:00,220 ali vam lahko poskusite izvajajo, res 82 00:04:00,220 --> 00:04:04,010 je dejansko asociativna matrika, struktura podatkov 83 00:04:04,010 --> 00:04:07,220 s katerim lahko povežemo Tipke z vrednostmi. 84 00:04:07,220 --> 00:04:09,690 >> Toda v pset5, so bile vrednosti nepomembno. 85 00:04:09,690 --> 00:04:12,430 Vrednost je bila v bistvu resnična ali neresnična. 86 00:04:12,430 --> 00:04:13,900 Je beseda v slovarju? 87 00:04:13,900 --> 00:04:18,279 Torej, ko zgoščene besedo, kot jabolko da vidim, če je jabolko v slovarju, 88 00:04:18,279 --> 00:04:21,820 ček funkcijo predvidoma vrnil true ali false. 89 00:04:21,820 --> 00:04:24,120 Tako, da je učinkovito vrednost smo dobili nazaj. 90 00:04:24,120 --> 00:04:26,456 >> Vendar smo videli v ponedeljek na kratko, lahko zagotovo 91 00:04:26,456 --> 00:04:28,830 povezujejo bolj zanimivo Vrednosti kot samo true ali false 92 00:04:28,830 --> 00:04:30,790 s tipkami, kot so jabolka. 93 00:04:30,790 --> 00:04:33,909 Lahko bi se dejansko vrnili poljuben niz, in res, 94 00:04:33,909 --> 00:04:36,200 to je tisto, $ _GET in ti druge spremenljivke kaj počnete. 95 00:04:36,200 --> 00:04:40,595 >> Torej $ _POST Podobno je tudi v duhu, če pa predloži obrazec po pošti, 96 00:04:40,595 --> 00:04:44,490 drugačen način HTTP, ki je ki se uporablja za stvari, kot so kreditne kartice, 97 00:04:44,490 --> 00:04:48,410 in osebne podatke, in celo Binarni podatki, kot so fotografije, 98 00:04:48,410 --> 00:04:51,840 te stvari končajo znotraj $ _POST. 99 00:04:51,840 --> 00:04:53,770 In dejansko datotek kot JPEG in drugih malenkosti, 100 00:04:53,770 --> 00:04:58,290 tam je še en, ki ni tu imenujemo $ _FILES kot dobro. 101 00:04:58,290 --> 00:05:01,280 >> Torej, strežnik ne bomo živijo na preveč veliko, vendar pa vam daje dostop 102 00:05:01,280 --> 00:05:04,860 razvrstiti nižjih ravni podrobnosti o strežnik sam, da ga uporabljate. 103 00:05:04,860 --> 00:05:07,430 Cookie in zasedanje, čeprav, bomo dejansko videli zdaj. 104 00:05:07,430 --> 00:05:10,940 Slednje je tisto, kar bomo uporabili za izvajanje Pojem košarici. 105 00:05:10,940 --> 00:05:14,480 Super enostavna, vendar odpoklic da smo imeli ta primer tukaj, 106 00:05:14,480 --> 00:05:17,640 štetje, koliko jih krat je obiskal to stran prej. 107 00:05:17,640 --> 00:05:20,850 >> Ampak danes, ne samo pogled na Učinek tega, kaj je odprla 108 00:05:20,850 --> 00:05:22,640 Inšpektor Chrome, ki lahko običajno 109 00:05:22,640 --> 00:05:25,740 storiti z desnim klikom ali nadzor klikom kjerkoli na spletni strani, 110 00:05:25,740 --> 00:05:27,250 in nato preglejte element. 111 00:05:27,250 --> 00:05:31,600 Ali lahko greš skozi menije da bomo opisali v spec pset6 je. 112 00:05:31,600 --> 00:05:35,020 In bom jeziček Network tu, in kaj je gledal za trenutek 113 00:05:35,020 --> 00:05:37,590 HTTP promet, ki je gredo naprej in nazaj. 114 00:05:37,590 --> 00:05:40,929 >> Naj najprej iti naprej in cache clear Chrome. 115 00:05:40,929 --> 00:05:43,470 Torej, nekateri od vas morda pozna s to tehniko že, 116 00:05:43,470 --> 00:05:45,790 in bomo, da ga uporabljate za namene debugging tukaj. 117 00:05:45,790 --> 00:05:48,890 118 00:05:48,890 --> 00:05:50,890 Zdaj smo kot računalnik Znanstveniki se bodo začeli 119 00:05:50,890 --> 00:05:53,920 ta način za razhroščevanje namene, pri čemer 120 00:05:53,920 --> 00:05:55,910 bomo počistiti predpomnilnik, Značilno je, da bomo 121 00:05:55,910 --> 00:05:57,670 lahko znebite stvari, imenovane piškotki. 122 00:05:57,670 --> 00:06:01,700 Torej, ste verjetno splošno znano s tem, kaj so piškotki, ali vsaj 123 00:06:01,700 --> 00:06:04,370 da obstajajo, ampak kaj je Vaše razumevanje njih, 124 00:06:04,370 --> 00:06:06,920 le kot uporabnika računalniki, kaj je piškotek? 125 00:06:06,920 --> 00:06:09,490 126 00:06:09,490 --> 00:06:09,990 Ja. 127 00:06:09,990 --> 00:06:14,391 >> OBČINSTVO: To je malo of-- dobro, ne bit v dobo računalništva. 128 00:06:14,391 --> 00:06:18,303 To je podatek, da Spletna stran pošilja k vam, da bi 129 00:06:18,303 --> 00:06:20,209 da bi lahko zapisali statistični podatki o vas. 130 00:06:20,209 --> 00:06:21,250 DAVID J. Malan: OK, dobro. 131 00:06:21,250 --> 00:06:24,980 Torej, to je podatek, da strežnik, postavlja na vaš računalnik, 132 00:06:24,980 --> 00:06:28,840 in kaj je to posplošiti tudi še več, to je ključ value-- dobro, 133 00:06:28,840 --> 00:06:30,064 ki je vse bolj natančna. 134 00:06:30,064 --> 00:06:31,980 To je kos informacija, podatek, 135 00:06:31,980 --> 00:06:34,430 da je strežnik sposoben da dajo na vašem računalniku 136 00:06:34,430 --> 00:06:38,592 in zelo pogosto, strežnik ne to tako, da se spomnite, kdo ste. 137 00:06:38,592 --> 00:06:40,300 Torej, na primer, kvota so si verjetno 138 00:06:40,300 --> 00:06:42,982 prijavljeni v mestih, kot so Facebook, ali Gmail, ali druge prej, 139 00:06:42,982 --> 00:06:44,940 in se prijavite z vašim uporabniško ime in geslo, 140 00:06:44,940 --> 00:06:49,000 in nato po tem, iz nekega števila minut ali ur ali celo dni, 141 00:06:49,000 --> 00:06:52,970 Strežnik spomni, da ste v resnici, prijavljeni. 142 00:06:52,970 --> 00:06:54,600 Zdaj, kako je to dejansko dogaja? 143 00:06:54,600 --> 00:06:58,630 Ker si zagotovo ne tipkanja vaše uporabniško ime in geslo, vsakič 144 00:06:58,630 --> 00:07:00,760 krmarite do drugačna stran na Facebooku. 145 00:07:00,760 --> 00:07:02,570 Tako se izkaže, piškotki so odgovor. 146 00:07:02,570 --> 00:07:05,360 >> Piškotek si lahko zamislite, kot je, nekako všeč, digitalni roko 147 00:07:05,360 --> 00:07:09,200 Žig, ki jih lahko dobite na zabavo park ali klub, ki v bistvu 148 00:07:09,200 --> 00:07:11,740 označuje, da ste bili tukaj prej, in ste že 149 00:07:11,740 --> 00:07:16,070 pokazala svoj ID za Izbacivač za instance, in da klub ali park 150 00:07:16,070 --> 00:07:19,050 mora zdaj prevzeti, da vas bili preverjeni že. 151 00:07:19,050 --> 00:07:21,270 Ste jih že opredelila njim. 152 00:07:21,270 --> 00:07:24,740 >> Torej, s tem v mislih, dajmo odpreti števec tukaj. 153 00:07:24,740 --> 00:07:27,220 Dovolite mi, da gredo naprej, tako sem storil, in počistiti vse moje piškotke. 154 00:07:27,220 --> 00:07:29,970 In zdaj, kaj bom storiti, je držite Shift, samo za dober ukrep, 155 00:07:29,970 --> 00:07:31,740 in prisilno osvežite stran. 156 00:07:31,740 --> 00:07:34,170 Shift le poskrbite, da nič ne dobi v predpomnilniku. 157 00:07:34,170 --> 00:07:36,850 In tukaj je prošnja da je šel naprej in nazaj. 158 00:07:36,850 --> 00:07:41,560 Torej, tukaj imamo zahtevo, in pustite, me povečavo tukaj, in veliko od tega 159 00:07:41,560 --> 00:07:44,710 je neke vrste nezanimive podrobnosti za zdaj, da ima brskalnik samodejno 160 00:07:44,710 --> 00:07:47,800 poslano, vendar pa kliknite Pogled Vir za prikaz surove glave. 161 00:07:47,800 --> 00:07:51,700 >> In če ste se vrgli v pset6 že, boste zagotovo prepoznali stvari 162 00:07:51,700 --> 00:07:54,990 kot je ta, in morda nekaj teh drugih črt, 163 00:07:54,990 --> 00:07:59,040 ampak kaj je bolj zanimivo za danes če sem se pomaknite navzdol in ne na zahtevo 164 00:07:59,040 --> 00:08:02,870 ampak ti odgovor, ta vrstica verjetno izgleda znano. 165 00:08:02,870 --> 00:08:04,977 To je dobra stvar ko vidiš OK 200. 166 00:08:04,977 --> 00:08:07,060 Očitno je to Datum in čas na strežniku 167 00:08:07,060 --> 00:08:08,268 in tam je kup stvari. 168 00:08:08,268 --> 00:08:09,290 Oh, to je zanimivo. 169 00:08:09,290 --> 00:08:13,430 >> Izkazalo se je, ko boste uporabili PHP, vsaj v tem strežniku, 170 00:08:13,430 --> 00:08:16,360 Strežnik izpljune kaj Različica PHP, ki jo uporabljate. 171 00:08:16,360 --> 00:08:18,962 Ki, pravzaprav, za varnost namene, ni dobra stvar. 172 00:08:18,962 --> 00:08:21,170 Ampak, bomo prišli nazaj na to kdaj drugič morda. 173 00:08:21,170 --> 00:08:25,740 Toda zdaj je to sočno linija danes in smo na kratko videla nekatere izmed njih, 174 00:08:25,740 --> 00:08:29,240 Mislim, da na Facebooku, ko smo podrezal okoli inšpektorja v tistem času, 175 00:08:29,240 --> 00:08:33,380 set Piškotek je tisto, kar je sajenje da košček informacij 176 00:08:33,380 --> 00:08:34,890 na vaš računalnik. 177 00:08:34,890 --> 00:08:37,490 >> To je glava HTTP da je učinkovito 178 00:08:37,490 --> 00:08:39,970 povedal brskalnik Chrome, IE, ne glede, 179 00:08:39,970 --> 00:08:44,480 hey brskalnik trgovina na uporabnikov trdi disk, ali v uporabnikovi RAM, 180 00:08:44,480 --> 00:08:49,680 Ključ imenovano PHPSESSID, ki je okrajšava za zapis seje ID, 181 00:08:49,680 --> 00:08:53,670 in ji dati vrednost 0vlk8t, dot, dot, dot. 182 00:08:53,670 --> 00:08:56,480 Res dolgo pseudo random alfanumerični niz. 183 00:08:56,480 --> 00:08:59,480 To je samo res velika številka, vendar to je kodiran s črkami in številkami 184 00:08:59,480 --> 00:09:03,550 tako da je lahko velikost njo celo večje od samih številk. 185 00:09:03,550 --> 00:09:06,947 In potem, mimogrede, Path = /, da pomeni le, da mora biti ta piškotek 186 00:09:06,947 --> 00:09:08,780 povezana z celota na spletni strani, 187 00:09:08,780 --> 00:09:11,150 Ne samo specifična Stran stvar. 188 00:09:11,150 --> 00:09:12,930 Torej, to je, da virtualni roko žig. 189 00:09:12,930 --> 00:09:16,330 To je, kot da je strežnik, Facebook, ali v našem primeru aparatov, 190 00:09:16,330 --> 00:09:21,140 ima dobesedno pisno 0vlk8t in tako naprej, na roko. 191 00:09:21,140 --> 00:09:24,360 Opažati strežnika, ne delaš, je, da je ni 192 00:09:24,360 --> 00:09:27,730 shranjevanje svoje uporabniško ime, zagotovo Ne shranjevanje svoje geslo. 193 00:09:27,730 --> 00:09:31,710 >> Namesto tega se zdi, da je shranjevanje psevdo naključno informacije 194 00:09:31,710 --> 00:09:35,010 tako da nihče ne more uganiti kar moja roka žig. 195 00:09:35,010 --> 00:09:37,590 Na strani strežnika, medtem, strežnik 196 00:09:37,590 --> 00:09:40,370 se dogaja, da se spomnimo, verjetno v bazi podatkov ali kaj podobnega, 197 00:09:40,370 --> 00:09:46,490 da uporabnik, ki v prihodnosti predstavlja ročno žig 0vlk8t, dot, 198 00:09:46,490 --> 00:09:51,440 dot, dot, je treba v tem okviru zlasti nakupovalni voziček, tako rekoč. 199 00:09:51,440 --> 00:09:55,060 Z drugimi besedami, če bi zdaj šel nazaj in osvežite stran, 200 00:09:55,060 --> 00:09:58,020 kako strežnik vedeti da sem obiskal enkrat? 201 00:09:58,020 --> 00:10:01,730 >> Ali pa, če mi še enkrat, kako se strežnik vem, da sem ga obiskala dva krat? 202 00:10:01,730 --> 00:10:04,680 No, če grem na to Zadnja zahteva, ki 203 00:10:04,680 --> 00:10:09,150 je zdaj tretji, ki sem jih poslal skupaj, opazili mojo prošnjo zdaj. 204 00:10:09,150 --> 00:10:11,300 Še vedno je to zaprosi tukaj, enako 205 00:10:11,300 --> 00:10:15,040 kot prej, še vedno cel kup stvari, ki smo jih prezreti kot prej, 206 00:10:15,040 --> 00:10:19,350 vendar zelo zadnji glavo, to čas, ker sem že bil tukaj, 207 00:10:19,350 --> 00:10:21,980 je predstavitev ta virtualni žig roko. 208 00:10:21,980 --> 00:10:28,957 >> Pri čemer je ta linija tu ni nastavljen piškotek vendar piškotek colon PHPSESSI = 0vlk8t, 209 00:10:28,957 --> 00:10:32,040 to je samo moje brskalnika avtomatski predstavitev te strani žiga, tako da 210 00:10:32,040 --> 00:10:37,910 Sedaj strežnik, takoj, ko se zave, ooh, to je uporabnik 0vlk8t dot, dot, dot, 211 00:10:37,910 --> 00:10:42,010 Zdaj lahko spomnite, kdo je on ali ona reassociate in s tem uporabnika karkoli 212 00:10:42,010 --> 00:10:46,450 Informacije hočem, in vsi te informacije se lahko shranijo z vami, 213 00:10:46,450 --> 00:10:50,130 programer, v $ _SESSION. 214 00:10:50,130 --> 00:10:57,170 >> Torej, da bo jasno, če sem odprla resnično hitro v gedit, da dejanska datoteka, counter.php, 215 00:10:57,170 --> 00:11:02,340 v moji lokalni gostiteljici javni imenik kot prej, opazili, da, res, 216 00:11:02,340 --> 00:11:06,860 Jaz sem na koncu shranite v $ _SESSION Quote citata "števec" 217 00:11:06,860 --> 00:11:10,110 vrednost prejšnjega števca, ki Sem dobil iz teh vrstic tukaj, da smo 218 00:11:10,110 --> 00:11:13,010 Pogledal zadnji čas plus ena. 219 00:11:13,010 --> 00:11:14,980 Torej, pod pokrovom, to je vse piškotki. 220 00:11:14,980 --> 00:11:17,563 To je samo neke vrste digitalnih ročni žig gredo naprej in nazaj, 221 00:11:17,563 --> 00:11:20,450 in odkrito, če odprete Chrome je Inšpektor na kateri koli spletni strani 222 00:11:20,450 --> 00:11:22,580 obiščete danes, z super velika verjetnost, 223 00:11:22,580 --> 00:11:25,450 boste videli morda enega, morda pol ducata piškotki 224 00:11:25,450 --> 00:11:26,650 se spomnil s tabo. 225 00:11:26,650 --> 00:11:29,500 >> In še huje, če je tisti, Spletna stran, ki jo obiščete 226 00:11:29,500 --> 00:11:32,640 vsi oglasi, ki je prav gotovo precej pogosta danes 227 00:11:32,640 --> 00:11:36,100 in če se ti oglasi, ki prihajajo iz neke osrednje stranke, nekdo 228 00:11:36,100 --> 00:11:39,000 kot so Google ali AdWords, kot so pokličite eno od svojih izdelkov 229 00:11:39,000 --> 00:11:42,880 ali drugih takih prodajalci, ki prodajajo oglase, kar je zanimivo, 230 00:11:42,880 --> 00:11:46,510 in odkrito, kaj je malo zaskrbljujoče, kako HTTP deluje, 231 00:11:46,510 --> 00:11:50,855 je, da če imate oglas vgrajeni v Facebook.com in Google.com, 232 00:11:50,855 --> 00:11:54,240 in Harvard.edu poljubno število spletnih strani, tako da je na primer 233 00:11:54,240 --> 00:11:58,130 da obstaja srednji človek, ki služi up oglasi za vse tri od teh spletnih strani, 234 00:11:58,130 --> 00:12:02,110 se izkaže, da piškotki na domeno. 235 00:12:02,110 --> 00:12:05,910 >> Torej, če imate oglas, ki prihajajo iz Ista družba na različnih spletnih straneh, 236 00:12:05,910 --> 00:12:11,140 da podjetje lahko učinkovito spremljali kdo ste po vseh teh spletnih strani. 237 00:12:11,140 --> 00:12:13,140 Harvard morda ne vedo, ste na obisku Facebook. 238 00:12:13,140 --> 00:12:15,306 Facebook morda ne poznajo in ste na obisku Harvard. 239 00:12:15,306 --> 00:12:18,160 Ampak karkoli ad servis oni uporabljajo, če je to domena 240 00:12:18,160 --> 00:12:21,710 prisotna tako v Harvard.edu spletu strani in Facebook.com spletne strani, 241 00:12:21,710 --> 00:12:26,850 ta srednji človek, zagotovo ve, kdo ste ker se ti piškotki deljena 242 00:12:26,850 --> 00:12:30,910 čez, ali ne bi, da ti posrednik. 243 00:12:30,910 --> 00:12:33,820 >> Torej se bomo vrnili na to varnostne posledice le-teh, 244 00:12:33,820 --> 00:12:37,170 vendar pa je veliko informacij ki jih hranimo o vas kadarkoli 245 00:12:37,170 --> 00:12:40,120 obiščite najbolj katerokoli spletno stran na internet in res 246 00:12:40,120 --> 00:12:42,877 zmanjšuje s tem zelo preprostim mehanizmom. 247 00:12:42,877 --> 00:12:44,710 Kaj se zgodi, nato pa, če ste super paranoičen 248 00:12:44,710 --> 00:12:48,190 in ste se odločili, da gredo v Chrome ali IE ali karkoli in izklopite piškotke? 249 00:12:48,190 --> 00:12:49,365 Kaj se zgodi? 250 00:12:49,365 --> 00:12:50,790 Ja? 251 00:12:50,790 --> 00:12:53,170 You really-- ste storili to pravico? 252 00:12:53,170 --> 00:12:54,350 OK. 253 00:12:54,350 --> 00:12:55,994 Ne, pojdi naprej. 254 00:12:55,994 --> 00:12:59,645 >> OBČINSTVO: Nekatere spletne strani nimajo Funkcija brez nje, kot so Facebook. 255 00:12:59,645 --> 00:13:00,520 DAVID J. Malan: Ja! 256 00:13:00,520 --> 00:13:02,311 Torej, nekatere spletne strani bo samo preneha delovati. 257 00:13:02,311 --> 00:13:05,520 In v večini spletnih strani v teh dneh ki bistveno zanašajo na piškotkih, 258 00:13:05,520 --> 00:13:08,360 še posebej, če ste se prijavite v, oni so le, da bo prekinil. 259 00:13:08,360 --> 00:13:10,360 Ker menijo, alternativa, če je spletna stran 260 00:13:10,360 --> 00:13:14,480 nima možnosti spominjanja, kdo ste, in zato vaš spletni brskalnik ni 261 00:13:14,480 --> 00:13:16,949 predstavlja z vsakim HTTP Zahteva te strani žiga, 262 00:13:16,949 --> 00:13:18,740 učinkovito spletno stran kot so Facebook dogaja 263 00:13:18,740 --> 00:13:22,050 da so za vas pozove, da prijavite vsak darn čas 264 00:13:22,050 --> 00:13:26,200 zamenjate strani, ali pa kliknite na povezavo, ki zagotovo ni posebej dobra uporabnik 265 00:13:26,200 --> 00:13:26,920 izkušnja. 266 00:13:26,920 --> 00:13:30,020 >> Torej, da tudi tam, je Med kompromisih. 267 00:13:30,020 --> 00:13:34,140 Torej, brez odlašanja, vzemimo samoumevno, da s spletnim programiranjem, 268 00:13:34,140 --> 00:13:37,630 v jezikih, kot so PHP, se lahko spomnite informacije, kot da je v problem nastaviti 269 00:13:37,630 --> 00:13:41,550 sedem, ko izvajajo svoje E * Trade podobno spletno stran, s katero kupiti 270 00:13:41,550 --> 00:13:45,710 in prodaja zalog, boste spomnim točno kaj je uporabnik kupi in proda 271 00:13:45,710 --> 00:13:49,110 in kdo je on ali ona s pomočjo te seje. 272 00:13:49,110 --> 00:13:51,110 Vendar pa bomo morali Ljubitelj način kot e-pošto 273 00:13:51,110 --> 00:13:52,640 za začetek hranjenja podatkov okrog. 274 00:13:52,640 --> 00:13:53,140 Kajne? 275 00:13:53,140 --> 00:13:56,780 >> V ponedeljek, smo se pogovarjali o Frosh UI in kako v različici ena te spletne strani, 276 00:13:56,780 --> 00:14:00,250 pred leti, vse, kar smo naredili je bilo pošlji Proctor, ki je 277 00:14:00,250 --> 00:14:04,250 zadolžen za Notranji šport Program, ime in spol, 278 00:14:04,250 --> 00:14:07,330 in ali oni kapitan, in domu nekoga, ki je 279 00:14:07,330 --> 00:14:10,136 registracije za occasional športa. 280 00:14:10,136 --> 00:14:13,010 Tako da to ni slabo, ampak on ali ona potem moral troll preko elektronske pošte, 281 00:14:13,010 --> 00:14:16,010 narediti preglednico ali nekaj podobnega da, da je vse organizirano. 282 00:14:16,010 --> 00:14:19,750 Torej, zagotovo bomo kot programerje to lahko storite za to Proctor. 283 00:14:19,750 --> 00:14:22,970 In tako se začne v SQL, Structured Query Language, 284 00:14:22,970 --> 00:14:26,050 ki bo lepa razlikuje tako C in PHP, 285 00:14:26,050 --> 00:14:30,990 in boste potopite v veliko več roke PHP in problem določiti sedem, ampak tudi SQL, 286 00:14:30,990 --> 00:14:35,310 ali SQL, to je jezik, ki uporabljate za pogovor z bazo podatkov. 287 00:14:35,310 --> 00:14:36,480 >> Toda kaj je baza podatkov? 288 00:14:36,480 --> 00:14:38,440 Pa misliš, baza podatkov, vsaj za zdaj, 289 00:14:38,440 --> 00:14:41,750 kot biti le kot datoteko Excel, ali Če ste uporabnik Mac a številke datotek, 290 00:14:41,750 --> 00:14:44,400 ali če ste Google Apps Uporabnik Google preglednico, 291 00:14:44,400 --> 00:14:49,120 to je dejansko bazo podatkov, ali res posebej relacijske baze podatkov. 292 00:14:49,120 --> 00:14:53,070 Relacijske baze podatkov, je le nekaj, kar ima stolpce in vrstice, 293 00:14:53,070 --> 00:14:56,440 in lahko shranite vse vrste Informacije v teh vrstic ali stolpcev. 294 00:14:56,440 --> 00:15:00,480 >> Toda kaj je lepo o SQL in o dejanskih podatkovnih baz, ne samo 295 00:15:00,480 --> 00:15:04,910 preglednic ali Google preglednic je, da lahko uporabite jezik 296 00:15:04,910 --> 00:15:09,000 dejansko izvedbo poizvedbe vstaviti podatke, odstraniti podatke, 297 00:15:09,000 --> 00:15:11,620 za iskanje podatkov, tudi kar je najpomembneje, in vam 298 00:15:11,620 --> 00:15:16,110 ne bi bilo treba uporabiti precej ročno Kot ste lahko običajno Google 299 00:15:16,110 --> 00:15:17,690 preglednice, kot je ta. 300 00:15:17,690 --> 00:15:22,217 >> Torej v SQL, tam je kup temeljne izjave ali kosov 301 00:15:22,217 --> 00:15:23,300 funkcionalnosti zgrajena leta. 302 00:15:23,300 --> 00:15:26,450 Tam je veliko več kot to, vendar pa lahko greš ogromno razdaljo 303 00:15:26,450 --> 00:15:28,620 samo po vedoč, da ta jezik se imenuje 304 00:15:28,620 --> 00:15:30,840 SQL ima najmanj štiri Izjavi lahko vzvoda. 305 00:15:30,840 --> 00:15:34,420 >> Brisanje, za odstranjevanje podatkov, Vstavi, za dodajanje vrstic, 306 00:15:34,420 --> 00:15:37,340 Posodobitev, za spreminjanje Vrstice in Izbiranje, 307 00:15:37,340 --> 00:15:39,860 za pridobivanje nazaj vrstic in da je to res tisto, kar SQL počne. 308 00:15:39,860 --> 00:15:43,810 Deluje povsem na vrsticah tako da, ko vstavite ali odstranite, 309 00:15:43,810 --> 00:15:47,470 ali posodobitev, ali pa izberite kaj ste dobili nazaj kot ti nizu, 310 00:15:47,470 --> 00:15:49,690 kot niz vrstic. 311 00:15:49,690 --> 00:15:51,700 Kup vrstic iz tabele. 312 00:15:51,700 --> 00:15:54,050 >> Torej, nazaj v dan, in tudi na ta dan, 313 00:15:54,050 --> 00:15:56,560 lahko interakcijo z Baza podatkov v ukazni vrstici, 314 00:15:56,560 --> 00:15:59,691 vendar pa to ni posebej zabavna za uporabo to črno-belo okno stil 315 00:15:59,691 --> 00:16:02,190 in dejansko izvajanje ukazov in suniti okrog vaše baze podatkov. 316 00:16:02,190 --> 00:16:06,054 Grafični uporabniški vmesnik ali GUI, je veliko bolj zaželeno, verjetno, 317 00:16:06,054 --> 00:16:08,970 in tako orodje priporočamo in prednameščen za vas na aparatu 318 00:16:08,970 --> 00:16:10,580 se imenuje phpMyAdmin. 319 00:16:10,580 --> 00:16:14,060 To je skupno naključje, da Ime te stvari ima PHP v njej, 320 00:16:14,060 --> 00:16:17,430 to samo pomeni, da so ljudje ki se je pisal ta program 321 00:16:17,430 --> 00:16:18,670 ga je napisal v PHP. 322 00:16:18,670 --> 00:16:23,740 >> Vendar je na koncu o upravljanju podatkovni strežnik, kot strežnik MySQL 323 00:16:23,740 --> 00:16:26,589 da ste morda, kot ti storiti, v CS50 aparata. 324 00:16:26,589 --> 00:16:29,130 Torej je več kot detail tukaj moramo skrbeti za danes, 325 00:16:29,130 --> 00:16:33,280 toda kaj je ključnega pomena je, da je na levi strani hand side je seznam podatkovnih zbirk 326 00:16:33,280 --> 00:16:36,040 da imate na vašem računalniku, na CS50 aparata, 327 00:16:36,040 --> 00:16:40,090 ali pa da se končne projekte, ki jih morda imajo na tretjo osebo, podjetje je 328 00:16:40,090 --> 00:16:43,415 spletno stran ali spletni strežnik, ki vas bo morda plačal za prostor. 329 00:16:43,415 --> 00:16:45,290 Torej na levi je podatkovne baze, od katerih je eden 330 00:16:45,290 --> 00:16:48,750 je pset7 ki sem si sposodil iz Naslednja tednov pset, in nato na vrhu 331 00:16:48,750 --> 00:16:51,570 tam opazili, da je kup zavihki, od katerih 332 00:16:51,570 --> 00:16:55,150 se podatkovne baze, SQL, status, Uporabniki, izvoz in tako naprej. 333 00:16:55,150 --> 00:16:56,900 Tako da lahko greš dolgo način samo z vnovčitvijo 334 00:16:56,900 --> 00:16:59,770 da večina uporabniškega vmesnika je v zgornjem levem stolpcu 335 00:16:59,770 --> 00:17:02,650 in na vrhu, prav tam. 336 00:17:02,650 --> 00:17:04,980 Torej, kaj lahko dejansko s tem? 337 00:17:04,980 --> 00:17:08,609 No, začnimo ustvarjanje malo informacij, kot sledi. 338 00:17:08,609 --> 00:17:11,760 >> Recimo, da tole ni tako, saj bo v nekaj dneh, 339 00:17:11,760 --> 00:17:14,440 želite izvajati Spletna stran, ki se imenuje CS50 Finance, 340 00:17:14,440 --> 00:17:17,328 in ta spletna stran vam omogoča, da kupujejo citiram konec citata in prodaja zalog. 341 00:17:17,328 --> 00:17:19,619 In to se dogaja, da ugotovimo, cena teh zalog, 342 00:17:19,619 --> 00:17:22,380 v končni fazi, kot boste videli, s pogovori z Yahoo Finance. 343 00:17:22,380 --> 00:17:26,250 Ki je čudovito, ima brezplačno storitev s katerim lahko prenese na zalogi Ticker 344 00:17:26,250 --> 00:17:29,830 kot GOOG za Google in bo daš nazaj Googlov trenutni vozni park 345 00:17:29,830 --> 00:17:32,250 cena v preteklosti Nekaj ​​minut vsaj. 346 00:17:32,250 --> 00:17:35,080 >> Tako da boste uporabili, da v končni fazi, da se pretvarjamo za uporabnika 347 00:17:35,080 --> 00:17:37,750 za nakup in prodajo dejansko zaloge uporabo navideznega denarja, 348 00:17:37,750 --> 00:17:39,750 vendar zelo prva stvar Uporabnik se dogaja, da vidite 349 00:17:39,750 --> 00:17:43,850 je to login screen, ki jih poziva, za njihovo ime in geslo. 350 00:17:43,850 --> 00:17:46,540 In zato, ena prva izzivi za vas v pset7 351 00:17:46,540 --> 00:17:50,460 se bo za izvajanje zadnji konec baze podatkov, preglednice, če hočete, 352 00:17:50,460 --> 00:17:53,369 da se dogaja, da shranite uporabniki imena in gesla 353 00:17:53,369 --> 00:17:56,660 in nenazadnje, kaj zaloge v njihovi lasti, in koliko in koliko gotovine imajo, 354 00:17:56,660 --> 00:18:00,110 tako kup drugih stvari v druge tabele ali preglednice. 355 00:18:00,110 --> 00:18:05,020 >> Tako pa si oglejte, kako je to se morda zdi na prvi pogled. 356 00:18:05,020 --> 00:18:06,980 Grem, da se vrnete aparat in sem 357 00:18:06,980 --> 00:18:14,102 šli na ta URL tukaj phpMyAdmin localhost / phpmyadmin 358 00:18:14,102 --> 00:18:16,060 in boste videli, da je me popelje do vmesnika 359 00:18:16,060 --> 00:18:18,520 točno tako, kot smo videli na screen shot, in tukaj sem 360 00:18:18,520 --> 00:18:21,560 imajo dodatno bazo podatkov pozval predavanje za danes 361 00:18:21,560 --> 00:18:24,280 in mi gremo naprej Prvi in ​​kliknite na pset7. 362 00:18:24,280 --> 00:18:27,940 >> Zdi se mi, da imajo nekaj možnosti, ena za novo, za ustvarjanje nove tabele, 363 00:18:27,940 --> 00:18:30,770 in povezava na uporabnike, ki je tabela sem že ustvaril. 364 00:18:30,770 --> 00:18:31,790 Torej, kaj je miza? 365 00:18:31,790 --> 00:18:33,740 Torej, če ste uporabili Excel prej, in če ste 366 00:18:33,740 --> 00:18:37,110 Rabljeni številke ali Google Preglednic, odpreš okno 367 00:18:37,110 --> 00:18:39,350 in dobiš cel kup vrstic in stolpcev, 368 00:18:39,350 --> 00:18:43,120 potem pa ponavadi liste na dnu ali na ločenih zavihkih. 369 00:18:43,120 --> 00:18:46,140 Si lahko zamislite vsak delovni list kot tabelo 370 00:18:46,140 --> 00:18:51,150 tako, da je baza podatkov, v končni fazi, je kombinacija ene ali več tabel, ena 371 00:18:51,150 --> 00:18:54,064 ali več delovnih listov, v svet normalno preglednici. 372 00:18:54,064 --> 00:18:55,980 Torej, naj grem naprej in kliknite na ta delovni list 373 00:18:55,980 --> 00:18:59,420 da sem že narejenega, imenovanih uporabnikov, alias 374 00:18:59,420 --> 00:19:00,700 Tabela zbirke podatkov. 375 00:19:00,700 --> 00:19:04,130 In če sem se pomaknite dol, Naj pomanjšati bit, 376 00:19:04,130 --> 00:19:08,479 To je tisto, kar je povedal, phpMyAdmin nam je znotraj te tabele zdaj. 377 00:19:08,479 --> 00:19:11,020 To je malo zmedeno na prvi pogled, ker UI ni 378 00:19:11,020 --> 00:19:15,140 najlepša stvar na svetu, vendar tisto, kar je zanimivo, je to del tukaj. 379 00:19:15,140 --> 00:19:17,970 ID, uporabniško ime in hašiš. 380 00:19:17,970 --> 00:19:20,510 >> Vnaprej, in boste handed to problem nastaviti sedem, 381 00:19:20,510 --> 00:19:25,050 smo vam datoteko, ki vsebuje super majhna tabela baze podatkov, sposodil dejansko 382 00:19:25,050 --> 00:19:27,070 od izdaje hacker za problem določiti dva, 383 00:19:27,070 --> 00:19:29,480 znotraj katerega obstaja šest vrstic. 384 00:19:29,480 --> 00:19:32,720 Eden za vse, je Belinda tja do enega za Zamyla, 385 00:19:32,720 --> 00:19:35,980 in opazili na levi strani tistih uporabniška imena so edinstveni ID kot eno, 386 00:19:35,980 --> 00:19:39,410 dva, tri, štiri, pet, šest, celi števili, in nato na desni so hashes. 387 00:19:39,410 --> 00:19:42,780 >> In če so kvote, nisi naredil problem heker izdaja nastavljena dva, 388 00:19:42,780 --> 00:19:46,560 ampak hash je tako kot šifrirano geslo z nekaj pridržki. 389 00:19:46,560 --> 00:19:49,470 In tako, kar vidite tukaj šifriranega različice vseh šest 390 00:19:49,470 --> 00:19:52,950 naših gesel iz problema določi dva je hacker izdaja. 391 00:19:52,950 --> 00:19:56,500 Zdaj na levo je le nekaj GUI stvari, urejanje te vrstice, kopiranje to vrstico, 392 00:19:56,500 --> 00:19:57,630 črtanjem te vrstice. 393 00:19:57,630 --> 00:19:59,840 >> Ampak kaj je zanimivo Zdaj je naslednja. 394 00:19:59,840 --> 00:20:03,810 Lahko dejansko začeti eksperimentirati s to tabelo. 395 00:20:03,810 --> 00:20:07,330 Torej, če grem in kliknite SQL tab, sem dobil to veliko polje z besedilom. 396 00:20:07,330 --> 00:20:10,190 In to ni, kako bomo to storiti, ko dejansko pisanje kode. 397 00:20:10,190 --> 00:20:12,700 Da bo jasno, phpMyAdmin je samo orodje, ki je 398 00:20:12,700 --> 00:20:16,450 dogaja, da nam suniti okrog baze podatkov in nam eksperimentirate s poizvedbami. 399 00:20:16,450 --> 00:20:19,430 >> Tako na primer, domnevam Izvršim točno to. 400 00:20:19,430 --> 00:20:22,820 Izbira, ki je ena izmed tistih ključne besede, ki sem jo omenil prej, zvezda, 401 00:20:22,820 --> 00:20:25,900 ki predstavlja vse stolpci v tabeli. 402 00:20:25,900 --> 00:20:26,820 Od kar miza? 403 00:20:26,820 --> 00:20:27,990 No, uporabniki. 404 00:20:27,990 --> 00:20:29,950 In obvestilo pa je to čudno konvencija v SQL 405 00:20:29,950 --> 00:20:32,140 kjer ste dejansko uporabo nazaj klopi, tipično, 406 00:20:32,140 --> 00:20:35,940 ne posamezni citati in ne dvojni narekovaji ko govorite o imenih tabel, 407 00:20:35,940 --> 00:20:38,990 tako nazaj citat je stvar na zgoraj levo roko tipkovnice najbolj 408 00:20:38,990 --> 00:20:39,720 verjetno. 409 00:20:39,720 --> 00:20:41,850 >> Torej mi daj zdaj in pustite, da sam 410 00:20:41,850 --> 00:20:46,020 in se pomaknite navzdol in kliknite Pojdi, in smo dejansko videli isto stvar. 411 00:20:46,020 --> 00:20:52,410 Pravkar smo izvedli SQL poizvedbo rekoč izbrati vse zvezde 412 00:20:52,410 --> 00:20:55,610 iz miza pozval uporabnike, in kaj dobiš nazaj je to. 413 00:20:55,610 --> 00:20:58,400 Konec koncev bomo mogli storite to isto stvar v zakoniku, 414 00:20:58,400 --> 00:21:02,109 vendar za zdaj vse, kar sem želel pa je bilo videti v mojem brskalniku. 415 00:21:02,109 --> 00:21:03,900 No, dajmo narediti nekaj malo drugačna. 416 00:21:03,900 --> 00:21:08,330 Naj grem nazaj na zavihku SQL, in naj samo povem, da je kaj? 417 00:21:08,330 --> 00:21:11,520 Zamyla je izgubil vse od nje denarja, zato je 418 00:21:11,520 --> 00:21:13,190 čas za nas, da jo izbrišete kot uporabnika. 419 00:21:13,190 --> 00:21:14,630 Ona ni več prijaviti. 420 00:21:14,630 --> 00:21:18,870 >> Tako bom rekel, brišete from-- dobro, vzdrževati kapitalizacijo 421 00:21:18,870 --> 00:21:23,080 zaradi doslednosti, brisanje od uporabnikov kje. 422 00:21:23,080 --> 00:21:25,430 In tako bomo lahko imeli ti predikati, ali ti 423 00:21:25,430 --> 00:21:31,180 kvalifikanti, na koncu moje izjave kje in kako bi lahko jaz izbrisati Zamyla? 424 00:21:31,180 --> 00:21:34,190 S svojo blagovno Zamyla, tako stolpec, eden izmed stolpcev 425 00:21:34,190 --> 00:21:37,950 je bil imenovan, tako da če name = "Zamyla". 426 00:21:37,950 --> 00:21:40,000 In tukaj uporabljam double kotacije ali samske quotes, 427 00:21:40,000 --> 00:21:42,958 uporabljate samo nazaj klopi, ko govorim o imenih, na primer, 428 00:21:42,958 --> 00:21:45,130 tabel in polj. 429 00:21:45,130 --> 00:21:47,440 In mi kliknite Pojdi tukaj. 430 00:21:47,440 --> 00:21:50,400 In zdaj, spletna stran pri čemer je malo zategnjen. 431 00:21:50,400 --> 00:21:53,620 >> Ali si res želite izvesti brisanje uporabnikov, kjer ime je enako Zamyla? 432 00:21:53,620 --> 00:21:54,680 Da. 433 00:21:54,680 --> 00:22:01,900 Torej, zdaj, če gremo nazaj na mojo mizo s klikom uporabniki opazili, da Hm. 434 00:22:01,900 --> 00:22:02,530 I goofed. 435 00:22:02,530 --> 00:22:04,070 In v resnici, sem nekako kliknil stran tako hitro 436 00:22:04,070 --> 00:22:06,195 nisi niti videti rdeča sporočilo o napaki, morda. 437 00:22:06,195 --> 00:22:07,649 Kaj sem naredil narobe? 438 00:22:07,649 --> 00:22:09,690 OBČINSTVO: Niste potrebujete unovčiti njeno ime. 439 00:22:09,690 --> 00:22:11,260 DAVID J. Malan: Ja kapitalizirajo svoje ime, 440 00:22:11,260 --> 00:22:13,770 vendar ji username-- Pravzaprav sem naredili nekaj napak, kajne? 441 00:22:13,770 --> 00:22:16,720 Ena, njena uporabniško ime zamyla, male črke Z, 442 00:22:16,720 --> 00:22:20,140 in ime stolpca je ime, ni imenovan, tako da je to še enkrat. 443 00:22:20,140 --> 00:22:25,750 Dovolite mi, da gredo naprej in izbrisati iz uporabnikov, medtem ko 444 00:22:25,750 --> 00:22:28,990 uporabniško ime je enako quote citata "Zamyla". 445 00:22:28,990 --> 00:22:29,490 Vse v redu? 446 00:22:29,490 --> 00:22:32,600 Torej, to izgleda malo bolje, kaj grem se pomaknite navzdol in kliknite Pojdi. 447 00:22:32,600 --> 00:22:34,730 Še vedno se dogaja, da kričati name, da se prepričate. 448 00:22:34,730 --> 00:22:37,500 I kliknite Yes, in zdaj smo videli, odkrito povedano je to zgodilo, res 449 00:22:37,500 --> 00:22:39,870 hitro, manj kot ena Drugi vsekakor pa je to 450 00:22:39,870 --> 00:22:41,720 je točno to vprašanje, da imam usmrčen. 451 00:22:41,720 --> 00:22:45,617 Za potrditev, mi kliknite uporabnike in tudi zdaj Zamyla je izginil. 452 00:22:45,617 --> 00:22:46,700 Sedaj pa naredi ravno nasprotno. 453 00:22:46,700 --> 00:22:49,320 Denimo, da Gabe želi Registracija za spletno stran. 454 00:22:49,320 --> 00:22:52,825 Kaj je SQL poizvedb, kaj je Ukaz lahko sem tip dodati Gabe? 455 00:22:52,825 --> 00:22:54,200 No to je precej preprosta. 456 00:22:54,200 --> 00:22:58,260 Vstavite v uporabnike, in zdaj postane malo skrivnosten. 457 00:22:58,260 --> 00:23:03,190 Moram navesti, na strežnik, Na katerih področjih želim dodeliti. 458 00:23:03,190 --> 00:23:06,630 Res ne skrbi, kaj Gabe ID številka, tako da bom preskočiti to. 459 00:23:06,630 --> 00:23:11,360 Jaz sem namesto tega reči uporabniško ime, hash, nato pa 460 00:23:11,360 --> 00:23:14,960 Vrednosti želim dati tam se bo Gabe. 461 00:23:14,960 --> 00:23:16,800 In potem je njegov hash, ne vem. 462 00:23:16,800 --> 00:23:19,900 Torej za zdaj, bom pustite, da tako velika, da storiti. 463 00:23:19,900 --> 00:23:21,650 Vrnili se bomo na da v določeno težava 464 00:23:21,650 --> 00:23:23,390 spec, kako si dejansko naredil. 465 00:23:23,390 --> 00:23:24,630 >> Tako obvestilo, še enkrat, sintaksa. 466 00:23:24,630 --> 00:23:28,430 Vstavite ime tabele, nato oklepaju seznam polj, 467 00:23:28,430 --> 00:23:30,980 stolpce, ki jih želite dodati vrednote, in potem samo 468 00:23:30,980 --> 00:23:34,495 Enako natančno naročanje levi Pravica do vrednot, ki jih želite dodati, 469 00:23:34,495 --> 00:23:36,870 in to je samo zato, ker zavijanje Besedilo je malo dolgo. 470 00:23:36,870 --> 00:23:38,520 Torej, zdaj pa me kliknite Pojdi. 471 00:23:38,520 --> 00:23:39,830 Ena vrsta vstavi. 472 00:23:39,830 --> 00:23:43,020 In zdaj, če grem nazaj Uporabniki, kaj je zanimivo 473 00:23:43,020 --> 00:23:48,960 je, da le ni Gabe sedaj v baze podatkov, kar je očitno njegov ID? 474 00:23:48,960 --> 00:23:49,820 >> No, to je sedem. 475 00:23:49,820 --> 00:23:51,479 Zakaj je sedem, ko nisem uspel dodati? 476 00:23:51,479 --> 00:23:54,020 Torej tudi to je eden izmed Funkcije, ki jih dobite v bazi podatkov. 477 00:23:54,020 --> 00:23:55,750 Veliko zgrajena v funkcionalnosti. 478 00:23:55,750 --> 00:23:57,950 Izkazalo se je, da ko ustvaril to tabelo, 479 00:23:57,950 --> 00:24:01,390 Prednastavljena sem, da je avtomatično določil ID tako, 480 00:24:01,390 --> 00:24:02,480 da korakih. 481 00:24:02,480 --> 00:24:05,470 Torej, če ste kdaj podrezal okoli, in pogledal, kaj je tvoj Facebook ID 482 00:24:05,470 --> 00:24:09,292 Številka je v teh dneh, da to ni res stvar, ampak Facebook kot API, 483 00:24:09,292 --> 00:24:11,750 Application Programming Interface, s katerim lahko dobite nazaj 484 00:24:11,750 --> 00:24:14,430 cel kup podatkov o sebi, o svojih prijateljih, 485 00:24:14,430 --> 00:24:15,347 in vaše povezave. 486 00:24:15,347 --> 00:24:17,430 In kaj je bilo nekako kul, nazaj v dan, 487 00:24:17,430 --> 00:24:19,510 je pogledati, kaj je tvoj Facebook ID številka je. 488 00:24:19,510 --> 00:24:22,390 Mark Zuckerberg je, na primer, je tri 489 00:24:22,390 --> 00:24:23,890 saj je bil avtor razstave. 490 00:24:23,890 --> 00:24:27,610 In kot zgodba, je ustvaril dve preskusni računi, uporabniki ena in dve, 491 00:24:27,610 --> 00:24:28,690 ki je bil nato izbrisan. 492 00:24:28,690 --> 00:24:32,780 In tako, Zuck, saj je njegovo ime na Facebooku, je ID številka tri, 493 00:24:32,780 --> 00:24:36,110 in vsi imajo veliko število večja kot tri te dni. 494 00:24:36,110 --> 00:24:37,980 Dejansko, na neki točki Facebook odselil 495 00:24:37,980 --> 00:24:42,410 od celo z uporabo int, ki je 32-bitna vrednost, s pomočjo 496 00:24:42,410 --> 00:24:44,480 Naslednji korak, bistvu dolgo dolgo tako 497 00:24:44,480 --> 00:24:47,150 da lahko sprejme še več uporabnikom, ki se registrirajo. 498 00:24:47,150 --> 00:24:49,420 Tako zabavno malo zgodovinsko dejstvo. 499 00:24:49,420 --> 00:24:51,660 >> Tako, da je samo osnovno sintakso, s katero 500 00:24:51,660 --> 00:24:54,470 bomo morda izvršiti nekaj poizvedbe, vendar smo lahko dejansko 501 00:24:54,470 --> 00:24:56,744 storite z SQL kup več stvari. 502 00:24:56,744 --> 00:24:58,910 In videli boste, končno, v problemu nastavljena sedem 503 00:24:58,910 --> 00:25:01,034 da moraš narediti število konstrukcijskih odločitev, 504 00:25:01,034 --> 00:25:03,290 Med njimi se bo kaj podatkovni tipi za uporabo. 505 00:25:03,290 --> 00:25:08,240 Torej, tako kot v C, obstajajo podatki vrste v zbirki podatkov, kot so MySQL, 506 00:25:08,240 --> 00:25:12,640 in vrste podatkov morate izbrati od vključevati teh področjih tukaj. 507 00:25:12,640 --> 00:25:17,287 Char, varchar, Int, big int, decimalno Datum in čas, in mnogi drugi. 508 00:25:17,287 --> 00:25:18,370 Torej, kaj je zdaj to narediti. 509 00:25:18,370 --> 00:25:21,060 Oglejmo se pretvarjamo, da nismo roko si ta uporabnikov miza 510 00:25:21,060 --> 00:25:25,080 in dovolite mi, da gredo naprej in ustvariti za Sam, na predavanjih database-- 511 00:25:25,080 --> 00:25:31,000 dejansko Naj gredo naprej in brisanje miza imam tu že 512 00:25:31,000 --> 00:25:32,940 tako da bomo lahko dejansko ustvarijo to. 513 00:25:32,940 --> 00:25:33,550 Ops. 514 00:25:33,550 --> 00:25:35,970 Grem, da spusti to miza in zdaj sem 515 00:25:35,970 --> 00:25:38,337 bo spet šel na predavanje bazo podatkov tukaj, 516 00:25:38,337 --> 00:25:40,420 Grem, da ustvarite tabelo imenovanih uporabnikov in dajmo 517 00:25:40,420 --> 00:25:43,010 pač tri stolpce na začetku in kliknite Pojdi. 518 00:25:43,010 --> 00:25:44,990 >> Zdaj, za večino del, Ponovno je to le 519 00:25:44,990 --> 00:25:48,570 uporabljate to grafično orodje, imenovano phpMyAdmin, in kaj počnemo sedaj 520 00:25:48,570 --> 00:25:49,600 ustvarja mizo. 521 00:25:49,600 --> 00:25:53,170 Torej, to je kot tekoč Datoteka, Novo, in ustvarja novo Excel datoteko. 522 00:25:53,170 --> 00:25:55,440 Torej, to je asking me nekaj vprašanja, od leve proti desni, 523 00:25:55,440 --> 00:25:58,620 kaj je ime prvega stolpca, in nato ime drugega stolpca, 524 00:25:58,620 --> 00:25:59,560 in ime tretjino. 525 00:25:59,560 --> 00:26:00,518 Torej, kaj je to ponovno. 526 00:26:00,518 --> 00:26:05,460 ID, in nato ime je on, nato pa je bil še en hash. 527 00:26:05,460 --> 00:26:08,970 Torej, kaj naj bi podatkovni tip zdaj za področja, kot so ID? 528 00:26:08,970 --> 00:26:14,470 >> Tukaj je celoten seznam podatkovnih tipov vam na voljo v podatkovni bazi, 529 00:26:14,470 --> 00:26:16,070 in za zdaj pa le pojdi z notr. 530 00:26:16,070 --> 00:26:18,160 32-bitna vrednost, jaz ne mislim realno sem 531 00:26:18,160 --> 00:26:21,484 dogaja, da imajo več kot 4 milijarde Uporabniki v mojem računu, v moji službi, 532 00:26:21,484 --> 00:26:23,650 tako da bom obdržati premikanje na naslednje vprašanje. 533 00:26:23,650 --> 00:26:25,490 Ne grem, da določite Dolžina ali vrednosti, 534 00:26:25,490 --> 00:26:28,540 je ne uporablja tu notr per. 535 00:26:28,540 --> 00:26:30,740 In zdaj sem lahko določite, očitno, privzeta 536 00:26:30,740 --> 00:26:33,970 vrednost, ki je ne bom opredeliti. 537 00:26:33,970 --> 00:26:36,050 Primerjanje, ne vem, kaj to je. 538 00:26:36,050 --> 00:26:37,290 Atribut. 539 00:26:37,290 --> 00:26:39,455 Zdaj smo pravzaprav storili imajo odločbo design. 540 00:26:39,455 --> 00:26:42,580 Torej je nekaj polja tukaj, ne vsi za katere se uporabljajo, vendar nepodpisano 541 00:26:42,580 --> 00:26:43,380 pomeni le, kaj? 542 00:26:43,380 --> 00:26:45,400 Da int mora biti? 543 00:26:45,400 --> 00:26:46,210 Samo nenegativno. 544 00:26:46,210 --> 00:26:48,090 Torej mora biti 0 na up. 545 00:26:48,090 --> 00:26:51,120 Ne, ne grem preveriti, saj Želim vsak uporabnik imeti ID 546 00:26:51,120 --> 00:26:52,470 da ne more biti nič. 547 00:26:52,470 --> 00:26:55,949 In potem smo dobili nekaj več zanimive odločitve oblikovanja je to všeč. 548 00:26:55,949 --> 00:26:58,990 Vrnili se bomo, da to v tem trenutku, kaj pa še ena značilnost baze podatkov 549 00:26:58,990 --> 00:27:04,200 je, je, da vam lahko povem podatkovni strežnik gredo naprej 550 00:27:04,200 --> 00:27:07,100 in optimizacijo sebe, svojo RAM in vaš prostor na trdem disku, 551 00:27:07,100 --> 00:27:11,770 tako, da izbere, in vložki, in izbriše, in posodobitve so zelo hitro. 552 00:27:11,770 --> 00:27:13,250 Primerjajte to z pset5. 553 00:27:13,250 --> 00:27:16,259 >> Če bi želeli poiskati nekaj V vašem hash tabele, ki 554 00:27:16,259 --> 00:27:18,300 misliš, da gre za bazo podatkov, ki je moral storiti vse, 555 00:27:18,300 --> 00:27:21,500 delo za izdelavo vaše hash tabela hitro. 556 00:27:21,500 --> 00:27:22,840 To je kot, seveda, ti. 557 00:27:22,840 --> 00:27:23,060 Kajne? 558 00:27:23,060 --> 00:27:26,080 Si moral postaviti v vseh časovnih globe v tuning stvari, dobili funkcijo razpršitve 559 00:27:26,080 --> 00:27:27,820 V redu, poskušal ugotoviti, kako veliko vedra imeti. 560 00:27:27,820 --> 00:27:29,611 >> Toda kaj je lepo, še enkrat, o podatkovna baza 561 00:27:29,611 --> 00:27:31,762 si punt vse To z drugimi ljudmi 562 00:27:31,762 --> 00:27:33,720 ki so to mislil skozi vas, in kaj 563 00:27:33,720 --> 00:27:37,170 Jaz bom rekel, tukaj pod kazalo je, da je moj ID polje 564 00:27:37,170 --> 00:27:41,149 se bo primarni način identifikacijo uporabnikov v tej bazi podatkov. 565 00:27:41,149 --> 00:27:42,940 Ne bom misliti od Zamyla kot Zamyla, 566 00:27:42,940 --> 00:27:45,800 Bom misliti ji kot število 6. 567 00:27:45,800 --> 00:27:49,814 >> Zakaj je tako, morda, bolje Intuitivno misliti in model 568 00:27:49,814 --> 00:27:52,480 vsako od vaših posameznih vrstic z uporabo Število namesto nečesa 569 00:27:52,480 --> 00:27:56,480 kot niz, kot je Zamyla ali Gabe ali daljši niz še? 570 00:27:56,480 --> 00:27:57,444 Ja? 571 00:27:57,444 --> 00:28:00,117 >> OBČINSTVO: ID je edinstvena? 572 00:28:00,117 --> 00:28:01,200 DAVID J. Malan: Ponovi? 573 00:28:01,200 --> 00:28:02,283 OBČINSTVO: ID je edinstvena? 574 00:28:02,283 --> 00:28:04,400 DAVID J. Malan: ID je edinstven, vendar suppose-- 575 00:28:04,400 --> 00:28:06,320 kot na primer na splošno z uporabniškimi imeni, domnevam 576 00:28:06,320 --> 00:28:10,110 Prav tako sem rekel, da je lahko samo eden Zamyla na svetu, in samo en Gabe. 577 00:28:10,110 --> 00:28:13,730 Sem lahko naložijo edinstvenost pritiskati na strune, tudi če bi hotel. 578 00:28:13,730 --> 00:28:15,550 Torej ni slaba misel. 579 00:28:15,550 --> 00:28:16,500 >> OBČINSTVO: Bolj varen. 580 00:28:16,500 --> 00:28:17,874 >> DAVID J. Malan: Bolj varen, zakaj? 581 00:28:17,874 --> 00:28:20,705 OBČINSTVO: Ne, ne morem povedati, ki je, ki, kot je v uporabnika. 582 00:28:20,705 --> 00:28:22,580 DAVID J. Malan: OK, si ne morem povedati, kateri uporabnik 583 00:28:22,580 --> 00:28:24,380 je, ki tako obstaja vidik zasebnosti, da bi to, 584 00:28:24,380 --> 00:28:27,810 še posebej, če so ID-ji morda pojavljajo v URL-jih. 585 00:28:27,810 --> 00:28:29,960 Tako prepričan, da bi tak način dela, preveč. 586 00:28:29,960 --> 00:28:30,640 Druge misli? 587 00:28:30,640 --> 00:28:31,383 Ja? 588 00:28:31,383 --> 00:28:34,316 >> OBČINSTVO: To je lažje izvajanje operacij na notr. 589 00:28:34,316 --> 00:28:35,940 DAVID J. Malan: To je pravi kicker. 590 00:28:35,940 --> 00:28:38,850 To je samo bolj učinkovita, ali lažje za računalnik, 591 00:28:38,850 --> 00:28:40,431 za izvajanje operacij na celo število. 592 00:28:40,431 --> 00:28:40,930 Kajne? 593 00:28:40,930 --> 00:28:43,905 Int je zagotovljeno, da je 32-bitni, medtem Zamyla 594 00:28:43,905 --> 00:28:47,660 je dolga nekaj znakov, Gabriel je dolga nekaj več znakov, 595 00:28:47,660 --> 00:28:51,930 Davenport je res dolgo, in zato je ni posebej učinkovita za uporabo 596 00:28:51,930 --> 00:28:55,860 strune za primerjavo vrednote in pogled polj in polj posodabljanja 597 00:28:55,860 --> 00:28:57,790 če lahko pobegniti s samo eno število. 598 00:28:57,790 --> 00:28:59,090 Le 32 bitov. 599 00:28:59,090 --> 00:29:02,570 Torej imen, tudi na ta način, ne bi bilo treba biti edinstvena, 600 00:29:02,570 --> 00:29:05,040 čeprav bi verjetno biti, in tudi na ta način tudi 601 00:29:05,040 --> 00:29:07,520 Uporabnik se lahko dovoli spremenite svoje uporabniško ime. 602 00:29:07,520 --> 00:29:10,810 >> Torej, kaj je sedaj zapustil, da je to primarni način identifikacije uporabnika. 603 00:29:10,810 --> 00:29:13,510 To govori baze podatkov iti naprej in optimizacijo sami 604 00:29:13,510 --> 00:29:17,065 tako, da je videti ups na ID so super hitro. 605 00:29:17,065 --> 00:29:19,620 AI, strašno poimenovan, tik pomeni Auto Prirastek, 606 00:29:19,620 --> 00:29:21,500 in to je prijava polje moramo preveriti 607 00:29:21,500 --> 00:29:24,614 navesti, da na področju, ID za samodejno posodobi za mene, 608 00:29:24,614 --> 00:29:26,530 in potem bom pomaknite na desno tukaj 609 00:29:26,530 --> 00:29:29,279 in odkrito povedano me ne zanima kateremkoli več od teh področij. 610 00:29:29,279 --> 00:29:30,630 Zagotovo ne danes. 611 00:29:30,630 --> 00:29:33,770 >> Tako da sem šel nazaj, na prvi steber, kjer 612 00:29:33,770 --> 00:29:35,830 Moram navesti ime in hašiš in dovolimo, 613 00:29:35,830 --> 00:29:38,080 vsaj s poudarkom na druga pa za zdaj. 614 00:29:38,080 --> 00:29:41,498 Int verjetno ni pravi klic, Torej, kaj je bolj smiselno morda? 615 00:29:41,498 --> 00:29:42,741 >> OBČINSTVO: Besedilo. 616 00:29:42,741 --> 00:29:43,824 DAVID J. Malan: Ponovi? 617 00:29:43,824 --> 00:29:44,710 OBČINSTVO: Besedilo. 618 00:29:44,710 --> 00:29:44,980 DAVID J. Malan: Besedilo? 619 00:29:44,980 --> 00:29:45,590 OK, sem slišal besedilo. 620 00:29:45,590 --> 00:29:46,090 Kaj še? 621 00:29:46,090 --> 00:29:50,520 622 00:29:50,520 --> 00:29:53,860 Mi nekako imajo kup izbire da so tekstovne narave. 623 00:29:53,860 --> 00:29:55,990 Torej, kdaj in zakaj, ali uporabite nekatere od teh? 624 00:29:55,990 --> 00:29:59,560 No char, v nasprotju s tem, kar boste morda mislim, ni sam znak. 625 00:29:59,560 --> 00:30:01,550 To je določeno število znakov. 626 00:30:01,550 --> 00:30:04,600 Torej, če vemo, da vsa uporabniška imena mora biti kot osem znakov, 627 00:30:04,600 --> 00:30:08,490 saj je bilo kar pogosto pri starejših računalniški sistemi, lahko rečem char 628 00:30:08,490 --> 00:30:09,830 in potem bi lahko rekel, 8 tu. 629 00:30:09,830 --> 00:30:12,930 To je, ko postane tretji stolpec ki se uporablja pri ustvarjanju tabele. 630 00:30:12,930 --> 00:30:15,450 >> Ampak to je nekako siten ker nekateri ljudje morda 631 00:30:15,450 --> 00:30:17,660 želeli imeti daljše ime od osmih znakov, 632 00:30:17,660 --> 00:30:19,743 nekateri ljudje morda želeli imajo krajšo uporabniško ime, 633 00:30:19,743 --> 00:30:22,210 zakaj se zavezujem na določeno številko? 634 00:30:22,210 --> 00:30:24,710 Zakaj ne bi spremenljivko število znakov in samo 635 00:30:24,710 --> 00:30:28,580 pravijo, da je največja dolžina imena je, ne vem, tako kot 64 znakov. 636 00:30:28,580 --> 00:30:31,780 Ne morem razmišljati o vseh prijateljev, ki imajo imena daljše od 64 znakov, 637 00:30:31,780 --> 00:30:34,810 in tudi če je to premalo si lahko Zagotovo Naleteli samovoljno. 638 00:30:34,810 --> 00:30:37,330 >> Torej varchar je spremenljivka število znakov. 639 00:30:37,330 --> 00:30:41,010 Besedilo ni slab nagon, in odkrito, da nekako ne, kaj piše, 640 00:30:41,010 --> 00:30:45,460 ampak besedilno polje lahko kot 65000 bytes vsaj. 641 00:30:45,460 --> 00:30:50,790 To je verjetno pretiravanje za polje, in v resnici, Ja, 65.535. 642 00:30:50,790 --> 00:30:53,740 To je verjetno pretiravanje za ime, tako da bomo držijo, običajno, 643 00:30:53,740 --> 00:30:56,910 z varchars za gramatikalne polje in hašiš, preveč. 644 00:30:56,910 --> 00:30:59,990 Hash, se je izkazalo, bi lahko storili varchar kot dobro ali nekaj takega, 645 00:30:59,990 --> 00:31:03,080 vendar pa danes ne bo osredotočila na kriptografija tam in številke 646 00:31:03,080 --> 00:31:05,210 da bomo lahko dejansko želeli uporabiti za svoje dolžine. 647 00:31:05,210 --> 00:31:07,430 >> Vendar naj se pomaknite v desno. 648 00:31:07,430 --> 00:31:11,280 Lahko imate samo eno primarna indeks za tabelo, 649 00:31:11,280 --> 00:31:16,380 vendar ne želim, da katera od teh, zdaj, da uporabniško ime, bi rekli? 650 00:31:16,380 --> 00:31:21,980 Kaj naj username temeljiti na nejasen razumevanje teh štirih možnosti? 651 00:31:21,980 --> 00:31:23,340 Samo z njihovimi imeni? 652 00:31:23,340 --> 00:31:24,140 >> OBČINSTVO: Unique. 653 00:31:24,140 --> 00:31:25,100 >> DAVID J. Malan: Torej edinstvena, kajne? 654 00:31:25,100 --> 00:31:28,190 Tako se izkaže, da ne samo lahko poveste bazo podatkov, vnaprej, 655 00:31:28,190 --> 00:31:30,380 To je primarna pot identificiranja področij. 656 00:31:30,380 --> 00:31:32,990 Prav tako lahko rekli, da je to bo edinstven polje. 657 00:31:32,990 --> 00:31:34,700 Da je ne bo stvar, ki sem se zanašajo na, 658 00:31:34,700 --> 00:31:38,490 vendar bi rad zbirko podatkov za imajo v bistvu, da če pogoj, da 659 00:31:38,490 --> 00:31:42,340 da če sem že kdaj poskusili registrirati dva uporabnika z enakim imenom, 660 00:31:42,340 --> 00:31:44,360 Baza podatkov flat out se ne boš pustil. 661 00:31:44,360 --> 00:31:47,490 Mogoče bom imela kakšno dodatno kodo v PHP, ki preprečuje toliko, 662 00:31:47,490 --> 00:31:50,640 vendar baza podatkov, preveč, lahko zagotovi da se to ne bo zgodilo. 663 00:31:50,640 --> 00:31:53,370 >> Zdaj, kot prahi, zlasti menite o končnih projektov, 664 00:31:53,370 --> 00:31:57,030 imejte v mislih, da indeks in polna besedilo je pravzaprav zelo koristno. 665 00:31:57,030 --> 00:32:01,080 Če imate večjo podatkovno bazo, ne z desetine, vendar z več sto ali tisoč 666 00:32:01,080 --> 00:32:05,270 ali celo milijone področjih, lahko povedati tudi bazo podatkov v vnaprej 667 00:32:05,270 --> 00:32:07,980 To je področje, bom ki jih je treba iskati na veliko. 668 00:32:07,980 --> 00:32:10,520 Mogoče je ime, Mogoče je bio, če ste 669 00:32:10,520 --> 00:32:13,750 izdelavo Facebook-podobno spletno stran, ki ima odstavke, ki si je domače 670 00:32:13,750 --> 00:32:16,799 shraniti, in če želite, da povej bazo podatkov v vnaprej 671 00:32:16,799 --> 00:32:20,090 Bom se iščejo na tem področju veliko, vendar pa to ni nujno enkratna, 672 00:32:20,090 --> 00:32:22,800 lahko določite ustvari mi indeks. 673 00:32:22,800 --> 00:32:27,990 Ali lahko rečete tudi mi dovolite, da storijo nekako samovoljnih iskanja, kot so vodenje 674 00:32:27,990 --> 00:32:30,420 ali Control F, kot si ti Morda v urejevalnik besedil, 675 00:32:30,420 --> 00:32:34,184 tako lahko pogledate poljubne nize ali podnizov na tem področju. 676 00:32:34,184 --> 00:32:36,600 Z drugimi besedami, smo dobili do točke, v semestru 677 00:32:36,600 --> 00:32:40,720 kjer vam ni treba skrbeti za kako učinkovito izvajati stvari. 678 00:32:40,720 --> 00:32:44,540 Samo morate vedeti o tem, kaj Odločitve projektiranja za to, da si bo 679 00:32:44,540 --> 00:32:48,470 uporabo pravih orodij za trgovino, da bi spodbudil funkcije 680 00:32:48,470 --> 00:32:50,380 da so drugi ljudje, ki so zgradili za vas. 681 00:32:50,380 --> 00:32:54,240 Torej, da povzamem, če bi le primarni imajo eno, lahko imajo samo eno, 682 00:32:54,240 --> 00:32:59,630 in to je stvar, ki ste se zaveže, da bo uporabljajo za ugotavljanje polja enolično. 683 00:32:59,630 --> 00:33:02,710 Edinstvena je le pisane v duhu, ampak morda le občasno ga uporabljajo, 684 00:33:02,710 --> 00:33:04,530 vendar želite baze podatkov, da ga naložijo. 685 00:33:04,530 --> 00:33:08,050 Indeks pomeni le preemptively pospešitev stvari v prihodnosti 686 00:33:08,050 --> 00:33:10,230 tako da sem lahko poiščete stvari na tem področju. 687 00:33:10,230 --> 00:33:13,700 In potem Celotno besedilo je na splošno za odstavki, ali eseji, ali velika telesa 688 00:33:13,700 --> 00:33:16,270 besedila, kjer vas Morda bi želeli imeti 689 00:33:16,270 --> 00:33:19,420 wild card kot ekvivalent zvezde. 690 00:33:19,420 --> 00:33:19,920 Prav. 691 00:33:19,920 --> 00:33:22,580 >> Tako da je bila vrsta veliko naenkrat. 692 00:33:22,580 --> 00:33:25,220 Poglejmo, če ne moremo destilirati Nekaj ​​teh funkcij 693 00:33:25,220 --> 00:33:29,540 in nato zgraditi nekaj dokaj preprosta, vendar močna. 694 00:33:29,540 --> 00:33:31,380 Torej, med drugimi Odločitve oblikovanja, s katerimi boste 695 00:33:31,380 --> 00:33:34,005 na koncu bodo morali se skupaj črte za shranjevanje motorje. 696 00:33:34,005 --> 00:33:37,370 In povej mi samo, da omenja v pričakovanju končnih projektov, 697 00:33:37,370 --> 00:33:42,020 in predvidevanje Oglejmo say-- ne naredimo to. 698 00:33:42,020 --> 00:33:43,820 Zgradimo ta mali Prvi zahtevek. 699 00:33:43,820 --> 00:33:48,070 Jaz bom šel v mojo terminal okno, in tukaj ni 700 00:33:48,070 --> 00:33:52,500 samo counter.php, ki smo zdaj dogaja znebiti se ne bi več germane, 701 00:33:52,500 --> 00:33:54,570 vendar imamo cel kup imenikov in to 702 00:33:54,570 --> 00:33:58,080 se bo zelo podobna, v duhu s tem, kar boste videli na problem nastaviti sedem. 703 00:33:58,080 --> 00:34:00,980 >> Torej imamo tri imenike vključuje javne in predloge, ki 704 00:34:00,980 --> 00:34:05,040 je točno tam, kjer smo končali na Ponedeljek z našo celotno MVC paradigme. 705 00:34:05,040 --> 00:34:09,290 In da povzamem, v javnosti se dogaja, da gredo vsaka datoteka, ki sem jo uporabniki dejansko 706 00:34:09,290 --> 00:34:12,969 proti mogli obiskati v njihov brskalnik prek URL-ja. 707 00:34:12,969 --> 00:34:13,502 Predloga. 708 00:34:13,502 --> 00:34:14,710 Kaj smo se v predloge? 709 00:34:14,710 --> 00:34:17,070 Kakšne stvari? 710 00:34:17,070 --> 00:34:21,659 Ni bilo veliko, ampak nekaj Datoteke vsaj v ponedeljek. 711 00:34:21,659 --> 00:34:22,619 Ja. 712 00:34:22,619 --> 00:34:23,100 >> OBČINSTVO: Glava in noga? 713 00:34:23,100 --> 00:34:24,516 >> DAVID J. Malan: Glava in noga. 714 00:34:24,516 --> 00:34:26,679 Tako da imamo nekaj podobnega tudi danes. 715 00:34:26,679 --> 00:34:30,330 Imava nekaj več datotek, vendar Noga vidim, Glava vidim, 716 00:34:30,330 --> 00:34:31,909 nato pa kup drugih datotek. 717 00:34:31,909 --> 00:34:35,482 Torej je to enakovredno meni V MVC, ki, 718 00:34:35,482 --> 00:34:37,690 spet bo malo bolj jasno, problem določiti sedem, 719 00:34:37,690 --> 00:34:40,380 ampak to je samo mapa sem vlaga veliko mojih estetike. 720 00:34:40,380 --> 00:34:42,840 Veliko mojih HTML, veliko mojih oblik. 721 00:34:42,840 --> 00:34:46,899 Medtem, vključuje pa še ena imenik, ki ima te tri datoteke 722 00:34:46,899 --> 00:34:48,440 in vzemimo hiter pogled na to. 723 00:34:48,440 --> 00:34:51,699 >> Bom, da gredo naprej in odprli config.php. 724 00:34:51,699 --> 00:34:54,610 Kot se je izkazalo, veliko kot prej v obdobju, 725 00:34:54,610 --> 00:34:57,850 si oster vključena CS50 dot h z pset7. 726 00:34:57,850 --> 00:35:00,780 V današnji primer, boste storiti ekvivalent, ki 727 00:35:00,780 --> 00:35:03,600 s zahtevajo izjavo da učinkovito 728 00:35:03,600 --> 00:35:05,340 vključuje te več vrstic. 729 00:35:05,340 --> 00:35:08,225 Torej, da bo jasno, da je to datoteko z imenom config.php. 730 00:35:08,225 --> 00:35:09,350 In opazili, kaj počne. 731 00:35:09,350 --> 00:35:11,970 To je očitno nekaj, kar počne skrivnostnih, vklop sporočila o napakah 732 00:35:11,970 --> 00:35:13,680 tako da si jih lahko ogledate v brskalniku. 733 00:35:13,680 --> 00:35:15,860 To je torej očitno zahteva dve druge datoteke 734 00:35:15,860 --> 00:35:19,530 tako da to je kot #include v C, in potem je to ena nismo videli, 735 00:35:19,530 --> 00:35:22,720 in smo na katere se sklicuje ta vklopi da košarica podobno funkcionalnost. 736 00:35:22,720 --> 00:35:25,610 >> To pomeni Piškotek pošlje naprej in nazaj. 737 00:35:25,610 --> 00:35:27,290 Zakaj je to zanimivo? 738 00:35:27,290 --> 00:35:32,460 No, če se vrnemo k temu imenik in odpirajo, na primer, 739 00:35:32,460 --> 00:35:33,741 constance.php. 740 00:35:33,741 --> 00:35:38,840 Obvestilo, da PHP ne podpira konstante, to ni čisto tako #define v C. 741 00:35:38,840 --> 00:35:41,290 Namesto tega si dobesedno pravijo opredeljene, in obvestilo 742 00:35:41,290 --> 00:35:44,110 ki sem jih shranjujejo v vnaprej štiri konstante v tej datoteki. 743 00:35:44,110 --> 00:35:47,020 Ena za današnjo bazo podatkov za moje geslo, za moje ime, 744 00:35:47,020 --> 00:35:48,690 in za ime strežnika. 745 00:35:48,690 --> 00:35:51,644 Torej so te dejansko bo precej podobna problemu določiti sedem. 746 00:35:51,644 --> 00:35:54,560 In nazadnje, in to je, kjer sem dogaja, da bi dobili nekaj lepo funkcionalnost 747 00:35:54,560 --> 00:35:59,000 od osebja, functions.php je kup kode, ki smo jih napisal, 748 00:35:59,000 --> 00:36:01,040 in jaz ukradel nekaj tega od problem nastaviti sedem 749 00:36:01,040 --> 00:36:05,920 za danes, da ne kup stvari in kaj je samo pogled na enega izmed njih 750 00:36:05,920 --> 00:36:07,270 zlasti. 751 00:36:07,270 --> 00:36:09,720 Ta funkcija tu, poizvedba, se bo 752 00:36:09,720 --> 00:36:13,600 funkcija PHP pravimo za izvršitev SQL. 753 00:36:13,600 --> 00:36:16,070 Malo prej smo s pomočjo phpMyAdmin, ampak to je samo 754 00:36:16,070 --> 00:36:18,720 za neke vrste namene učenja in diagnostične namene 755 00:36:18,720 --> 00:36:20,494 in pozablja baze podatkov niz. 756 00:36:20,494 --> 00:36:22,660 Ko ste dejansko uporabljate vaš baza podatkov, ti, človek, 757 00:36:22,660 --> 00:36:24,100 očitno ne bo ki se vleče gor spletu 758 00:36:24,100 --> 00:36:25,740 stran vsakič, ko nekdo registrira. 759 00:36:25,740 --> 00:36:29,870 Boš napisal kodo, ki vložki in izbriše uporabnikom na zahtevo, 760 00:36:29,870 --> 00:36:32,490 in bomo to storili s pomočjo funkcije poizvedbe. 761 00:36:32,490 --> 00:36:35,360 Če bom zdaj se pomaknite navzdol, tam je bo nekaj več funkcij. 762 00:36:35,360 --> 00:36:37,170 Preusmeritev se dogaja, da bo funkcijo smo pisali 763 00:36:37,170 --> 00:36:40,160 za vas, ki vam omogoča, da pošlje uporabniku, da drug URL, 764 00:36:40,160 --> 00:36:43,780 in postal je funkcija, zelo všeč smo videli v ponedeljek, da dejansko postane 765 00:36:43,780 --> 00:36:48,000 predlogo, ampak bolj na to, v oblika pset7 lastne sprehod skozi. 766 00:36:48,000 --> 00:36:50,500 Za zdaj, gremo naprej in to. 767 00:36:50,500 --> 00:36:54,860 >> Naj grem v mojo mizo in predavanja videli, da je trenutno nič 768 00:36:54,860 --> 00:36:59,640 tukaj samo še, in mi tudi gredo v mojem javnem imeniku, kjer 769 00:36:59,640 --> 00:37:02,780 tam je samo ena datoteka index.php. 770 00:37:02,780 --> 00:37:06,920 Zdi se, da je super enostavna Ta datoteka v tem trenutku, to izgleda tako, kot je ta. 771 00:37:06,920 --> 00:37:09,110 Zelo všeč, kako smo končal v ponedeljek. 772 00:37:09,110 --> 00:37:11,945 Jaz sem, ki zahteva te datoteke, config.php, ki je v 773 00:37:11,945 --> 00:37:15,160 Vključuje imenik, ki V dot dot, moji starši, 774 00:37:15,160 --> 00:37:17,650 in potem je samo upodabljanje te datoteke. 775 00:37:17,650 --> 00:37:18,960 Torej, kaj je ta datoteka? 776 00:37:18,960 --> 00:37:24,700 >> Odprimo v mojih predlogah form.php, in bomo videli. 777 00:37:24,700 --> 00:37:28,500 Super preprost, očitno ta oblika dogaja, da do _GET $ ali _POST $. 778 00:37:28,500 --> 00:37:29,320 Preverjanje hitro sanity. 779 00:37:29,320 --> 00:37:33,760 780 00:37:33,760 --> 00:37:35,690 Dobesedno vizualno iskanje datotek. 781 00:37:35,690 --> 00:37:36,610 Postopek je enak post. 782 00:37:36,610 --> 00:37:39,280 Tako da je ne boste uporabljali URL, kot je Google ne, da se bo nekako skriti 783 00:37:39,280 --> 00:37:41,030 Podatki zadaj Prizori in je 784 00:37:41,030 --> 00:37:43,580 dogaja, da predloži datoteka z imenom register.php, 785 00:37:43,580 --> 00:37:45,660 in to je datoteka Vam še ni napisal 786 00:37:45,660 --> 00:37:47,610 ampak kaj to se dogaja izgledal je to. 787 00:37:47,610 --> 00:37:52,670 >> Če grem na ločeni strani To je kaj localhost / index.php izgleda. 788 00:37:52,670 --> 00:37:56,930 In spet, strežnika samo ob predpostavki index.php. 789 00:37:56,930 --> 00:37:57,910 Enter. 790 00:37:57,910 --> 00:37:59,870 Torej, to je, če smo na, in kaj želim narediti 791 00:37:59,870 --> 00:38:02,450 se lahko napišete stvari kakor David, in nato 792 00:38:02,450 --> 00:38:08,050 moja telefonska številka, ki bo rekel, 617-555-1212 za zdaj, register 793 00:38:08,050 --> 00:38:09,910 in zdaj register.php ni bilo mogoče najti. 794 00:38:09,910 --> 00:38:11,440 Tako da moram izvajati to. 795 00:38:11,440 --> 00:38:13,320 Torej, kaj je hitro bič kaj takega gor. 796 00:38:13,320 --> 00:38:18,640 Naj grem v mojo javni imenik in ne gedit za register.php, 797 00:38:18,640 --> 00:38:22,300 in zdaj bom, da gredo naprej in vklop načina za PHP, tako kot smo to storili v ponedeljek, 798 00:38:22,300 --> 00:38:25,430 in blizu PHP tag, in naredimo nekaj stvari. 799 00:38:25,430 --> 00:38:28,336 >> Torej ena, vem, od ki je napisal, da je oblika, 800 00:38:28,336 --> 00:38:29,960 da želim preveriti naslednje. 801 00:38:29,960 --> 00:38:35,670 Če je prazen, kar uporabniku vnesli v polje Ime, nato 802 00:38:35,670 --> 00:38:39,860 Bom nekaj reči kot opravičujem manjka ime. 803 00:38:39,860 --> 00:38:42,380 Opravičujem se, medtem, je ni zgrajen v PHP stvar, 804 00:38:42,380 --> 00:38:45,970 to je funkcija smo pisali v functions.php za pset7 805 00:38:45,970 --> 00:38:47,940 tako da imate dostop do nje. 806 00:38:47,940 --> 00:38:53,830 Else if drugo polje je prazna, število, potem sem 807 00:38:53,830 --> 00:38:58,370 bo opravičil uporabniku in pravijo manjkajočo številko. 808 00:38:58,370 --> 00:38:59,320 Shranite to datoteko. 809 00:38:59,320 --> 00:39:02,640 >> Zdaj pa se vrnimo k mojem brskalniku, vrnite na forumu poskusite znova. 810 00:39:02,640 --> 00:39:04,070 Registrirati. 811 00:39:04,070 --> 00:39:05,090 OK. 812 00:39:05,090 --> 00:39:06,730 Nič se ni zgodilo, kar je dobro. 813 00:39:06,730 --> 00:39:08,120 Nisem dobil sporočilo o napaki. 814 00:39:08,120 --> 00:39:11,651 Ampak, če namesto tega kaj je osvežite to stran, in ne zagotavlja ničesar. 815 00:39:11,651 --> 00:39:12,150 Prekleto. 816 00:39:12,150 --> 00:39:15,350 817 00:39:15,350 --> 00:39:17,140 Storiti. 818 00:39:17,140 --> 00:39:18,810 Registrirati. 819 00:39:18,810 --> 00:39:20,350 Kaj sem naredil narobe? 820 00:39:20,350 --> 00:39:24,860 Če se prazna, ime $ _POST. 821 00:39:24,860 --> 00:39:26,350 Ponovi? 822 00:39:26,350 --> 00:39:27,670 >> Oh, seveda. 823 00:39:27,670 --> 00:39:30,919 Pozabil sem najpomembnejši del, ki je zahteva ("../ includes / config.php."). 824 00:39:30,919 --> 00:39:34,210 825 00:39:34,210 --> 00:39:36,460 Moram imeti dostop do Opravičujemo funkcijo, ki 826 00:39:36,460 --> 00:39:37,770 Zato ni nič dogajalo. 827 00:39:37,770 --> 00:39:39,460 Funkcija dejansko ne obstaja. 828 00:39:39,460 --> 00:39:40,640 Torej poskusimo to še enkrat. 829 00:39:40,640 --> 00:39:42,350 Oglejmo osvežite stran, kliknite Registracija. 830 00:39:42,350 --> 00:39:43,060 OK. 831 00:39:43,060 --> 00:39:43,770 Tukaj je. 832 00:39:43,770 --> 00:39:45,700 Torej, izhod smo vidim tukaj je rezultat 833 00:39:45,700 --> 00:39:47,685 kliče opravičujemo Funkcija, zelo preprosta, 834 00:39:47,685 --> 00:39:50,060 in to samo natisne karkoli Sem ga dal kot argument. 835 00:39:50,060 --> 00:39:51,370 >> Vse je v redu, tako da je sodelovanje. 836 00:39:51,370 --> 00:39:54,240 Oglejmo zagotoviti moje ime kakor David, register, 837 00:39:54,240 --> 00:39:56,890 manjkajoče število OK dajmo zagotavljajo, da je preveč. 838 00:39:56,890 --> 00:39:58,650 617-555-1212. 839 00:39:58,650 --> 00:39:59,250 Registrirati. 840 00:39:59,250 --> 00:39:59,750 OK. 841 00:39:59,750 --> 00:40:02,760 Torej, vse je dobro zdaj, prav nič Zanimivo se dogaja. 842 00:40:02,760 --> 00:40:06,000 Tako da zdaj naredimo nekaj več Zanimivo zgodilo takole. 843 00:40:06,000 --> 00:40:09,980 Dovolite mi, da gredo v phpMyAdmin in Dovolite pravzaprav ustvarili tabelo imenovano uporabniki, 844 00:40:09,980 --> 00:40:12,330 Jaz grem, da ga tri stebri, in bom hitro 845 00:40:12,330 --> 00:40:16,250 ustvariti ID, in nato ime, in nato številka, 846 00:40:16,250 --> 00:40:18,832 in polje ID sem bo odšel kot notr. 847 00:40:18,832 --> 00:40:20,790 Polje Ime bom zapustil kot varchar, 848 00:40:20,790 --> 00:40:23,257 in bomo rekli, 64, nekoliko arbitrarno. 849 00:40:23,257 --> 00:40:25,090 Število bom da bi, veš kaj? 850 00:40:25,090 --> 00:40:27,350 Gremo v podpirati številke nami, 851 00:40:27,350 --> 00:40:31,510 tako da bom nekaj storiti kot char in nato 10 znakov 852 00:40:31,510 --> 00:40:34,540 max za področno kodo in nato sedem mest. 853 00:40:34,540 --> 00:40:37,870 In potem je tukaj, jaz grem na določite auto prirastek tem področju, 854 00:40:37,870 --> 00:40:40,550 bo ta primarni ključ, in Bom, da gredo naprej in ne 855 00:40:40,550 --> 00:40:42,240 preveri, kateri od teh drugih poljih. 856 00:40:42,240 --> 00:40:48,030 >> Torej, ko sem zdaj končno kliknite Shrani, in sem šel nazaj v mojo uporabnikov mizi, 857 00:40:48,030 --> 00:40:52,270 To je tisto, kar izgleda, če sem Sedaj kliknite strukturo New Tab. 858 00:40:52,270 --> 00:40:54,550 Torej to, da bo jasno, je samo phpMyAdmin je način 859 00:40:54,550 --> 00:40:58,570 rekel baze podatkov tabele ima ID, ime in številko 860 00:40:58,570 --> 00:41:02,040 s temi posebnimi konfiguracijami in bomo prezreti ostalo področjih 861 00:41:02,040 --> 00:41:03,140 tam za zdaj. 862 00:41:03,140 --> 00:41:04,810 >> Tako da zdaj kaj hočem narediti? 863 00:41:04,810 --> 00:41:09,060 Torej, če grem zdaj v moji izvorno kodo, če je vse v redu 864 00:41:09,060 --> 00:41:11,190 Želim izvesti naslednje vprašanje. 865 00:41:11,190 --> 00:41:14,970 Vstaviti, in sem lahko samo pravijo uporabniki ne bom strogo 866 00:41:14,970 --> 00:41:18,620 Potrebujemo tiste, nazaj klopi, če je to ni nevarno beseda kot uporabnikov. 867 00:41:18,620 --> 00:41:22,810 Jaz bom povedal imena, številko, in potem tukaj sem 868 00:41:22,810 --> 00:41:24,960 ne bom trdo kodo enic vrednot še. 869 00:41:24,960 --> 00:41:26,760 Bom dal dve vprałaje. 870 00:41:26,760 --> 00:41:29,320 In to je konvencija v številnih jezikih 871 00:41:29,320 --> 00:41:31,730 pri čemer, če želite imeti Ograda za vrvico 872 00:41:31,730 --> 00:41:34,105 boš, da vprašanja Oznake razlogov, bomo 873 00:41:34,105 --> 00:41:36,370 pridejo nazaj na klepet o varnost, in tu 874 00:41:36,370 --> 00:41:39,420 Grem, da prenese na tiste, dve polji objavili imena, 875 00:41:39,420 --> 00:41:44,850 in nato objavili številko, in zdaj shranite datoteko. 876 00:41:44,850 --> 00:41:47,090 >> In zdaj bom dol, tukaj je super 877 00:41:47,090 --> 00:41:55,690 enostavno reči rendersuccess.php, ki se bo drugo predlogo. 878 00:41:55,690 --> 00:41:57,380 Grem, da ustvarite zelo hitro. 879 00:41:57,380 --> 00:42:06,270 Geditsuccess.php in sem le, da bo reči H1 uspeh v tej datoteki. 880 00:42:06,270 --> 00:42:06,990 Vse je v redu. 881 00:42:06,990 --> 00:42:11,312 Torej, zdaj, gremo nazaj brskalnik, kjer sem obiskal pred. 882 00:42:11,312 --> 00:42:14,270 Pojdimo naprej in potrdite sem napisal pri Davidu, sem napisal v telefonsko številko, 883 00:42:14,270 --> 00:42:15,390 registrirajte. 884 00:42:15,390 --> 00:42:16,100 Prekleto. 885 00:42:16,100 --> 00:42:17,420 Kaj sem naredil narobe? 886 00:42:17,420 --> 00:42:20,850 Torej, vidim napako tukaj, vas imajo napake v vašem SQL sintakso. 887 00:42:20,850 --> 00:42:24,900 Dovolite mi, da skoči nazaj v gedit, naj grem nazaj na register.php, 888 00:42:24,900 --> 00:42:28,830 in kaj sem izpustiti, da je pomembno, zadnji čas? 889 00:42:28,830 --> 00:42:29,722 Rabim to. 890 00:42:29,722 --> 00:42:32,930 Hočeš vedeti, da razen iz ob prej opazil, ampak rabim to. 891 00:42:32,930 --> 00:42:35,596 >> Torej, zdaj gremo nazaj, in to bilo koristno, da vidim v brskalniku 892 00:42:35,596 --> 00:42:37,680 in zato v config.php smo izpljunite napake. 893 00:42:37,680 --> 00:42:41,770 Pojdimo naprej in osvežite, kliknite Nadaljuj, uspeh. 894 00:42:41,770 --> 00:42:47,060 Torej, zdaj pa grem v mojo Podatkovna baza tukaj in kliknite na uporabnike, 895 00:42:47,060 --> 00:42:51,680 in brskate med njimi ter obvestilo I zdaj ima David v moji zbirki podatkov tukaj. 896 00:42:51,680 --> 00:42:55,810 Zdaj je tehnično ta spletna stran še ni na javnem internetu, 897 00:42:55,810 --> 00:42:57,890 tako da ne more imeti drugega ljudje v dajanje tukaj, 898 00:42:57,890 --> 00:43:01,120 ampak če bi zdaj želel, za instance, sam pošljete besedilno sporočilo. 899 00:43:01,120 --> 00:43:03,920 Pojdimo ven na ud tukaj in videli, če je to dejansko deluje. 900 00:43:03,920 --> 00:43:07,331 Bom, da gredo naprej in izbrišite to vrstico 901 00:43:07,331 --> 00:43:09,080 in bomo to zamegliti v videu pozneje 902 00:43:09,080 --> 00:43:11,900 zato nimamo Celoten internet mi pošiljanje kratkih sporočil, 903 00:43:11,900 --> 00:43:17,270 in mi bo zdaj do Brskalnik in bomo šli čez predavanje 904 00:43:17,270 --> 00:43:22,040 in bomo vnesite v različnih število tukaj, register, uspeh. 905 00:43:22,040 --> 00:43:25,550 >> Torej, zdaj, moja številka je verjetno v baze podatkov, in zdaj zabaven del. 906 00:43:25,550 --> 00:43:28,774 Kaj je dejansko uporabljati PHP storiti nekaj načrtno, 907 00:43:28,774 --> 00:43:30,940 bodisi iz ukaza linija ali od nekje drugje, 908 00:43:30,940 --> 00:43:32,773 in za zdaj sem samo dogaja, da ga bo enostavno 909 00:43:32,773 --> 00:43:36,230 in bom šel v moj Imenik tukaj in naredite naslednje. 910 00:43:36,230 --> 00:43:44,920 Gedit script recimo, da bomo ga imenujemo besedilo, #! / user / bin / env PHP, 911 00:43:44,920 --> 00:43:46,700 kot smo videli zadnjič. 912 00:43:46,700 --> 00:43:47,950 PHP. 913 00:43:47,950 --> 00:43:55,055 >> Zdaj bom pa zahtevajo vključuje config.php, 914 00:43:55,055 --> 00:43:57,360 čeprav bi to lahko povzroči rahlo napako. 915 00:43:57,360 --> 00:44:03,960 In zdaj bom, da gredo naprej in reči vrstic, poizvedbe, izberite zvezda od uporabnikov, 916 00:44:03,960 --> 00:44:08,149 in tukaj bom naredil tehniko iz zadnjega časa za vsako vrstic kot zapored. 917 00:44:08,149 --> 00:44:09,690 In bom naredil nekaj preprostega. 918 00:44:09,690 --> 00:44:19,090 Printf recimo ime je to, in številka je to, poševnica nazaj n. 919 00:44:19,090 --> 00:44:23,320 In zdaj grem mimo v vrstici citiram konec citata ime 920 00:44:23,320 --> 00:44:28,140 in številko vrstice quote citata, in zdaj gremo naprej 921 00:44:28,140 --> 00:44:31,430 in moj terminal okno chmod to + x, da bi 922 00:44:31,430 --> 00:44:33,970 Ta scenarij se imenuje besedilo izvršljiva. 923 00:44:33,970 --> 00:44:36,080 In zdaj pa teče besedilo. 924 00:44:36,080 --> 00:44:37,590 >> OK, tako napredujejo. 925 00:44:37,590 --> 00:44:39,960 Tako da sem zdaj napisal ukazni vrstici script, 926 00:44:39,960 --> 00:44:43,300 v jeziku, ki se imenuje PHP, da, zaradi tega zahteva linijo, 927 00:44:43,300 --> 00:44:46,380 ima dostop do vseh tistih konfiguracijo konstante, da sem navedeno. 928 00:44:46,380 --> 00:44:48,177 Ime baze in tako naprej. 929 00:44:48,177 --> 00:44:50,260 Dejstvo je, samo da bo jasno da to ni krompir, 930 00:44:50,260 --> 00:44:54,730 Naj gredo naprej in se prijavite, zelo hitro, nekdo drug kot Rob 931 00:44:54,730 --> 00:44:58,890 in mu bo dal številko 555-1212. 932 00:44:58,890 --> 00:45:01,557 >> In zdaj, če sem prost skript spet opazil moč 933 00:45:01,557 --> 00:45:03,140 kaj počnemo z bazo podatkov. 934 00:45:03,140 --> 00:45:07,680 Zdaj sem takoj videl, kaj drugi dve vrstici sta v moji zbirki podatkov. 935 00:45:07,680 --> 00:45:10,699 Sedaj poskusimo narediti nekaj celo ljubitelj notranjost, 936 00:45:10,699 --> 00:45:12,740 in to je del smo jih ni preskušeno vnaprej, 937 00:45:12,740 --> 00:45:15,910 tako da nazadnje, ko sem to naredil šlo hudo narobe, 938 00:45:15,910 --> 00:45:17,120 imamo video v ta namen. 939 00:45:17,120 --> 00:45:18,286 >> Pravzaprav, ja, smešno stran. 940 00:45:18,286 --> 00:45:20,480 Torej zadnjem času, v predavanje tako kot pred dvema letoma, 941 00:45:20,480 --> 00:45:23,230 smo se odločili, sem se odločil, da bo Vse to bi bilo super ideja 942 00:45:23,230 --> 00:45:28,150 da dinamično ustvari e-pošto v razred, z uporabo celotne baze podatkov CS50 943 00:45:28,150 --> 00:45:33,390 študentov, ki so nam jih dali svoje številke in njihovi mobilni telefon prevozniki, ki vas 944 00:45:33,390 --> 00:45:36,290 morda spomnite iz pset0, kako razmišljati, se izkaže, 945 00:45:36,290 --> 00:45:40,650 Imel sem manjšo napako v mojem programu in naredil par napak v letu 2012, se mi zdi. 946 00:45:40,650 --> 00:45:43,997 >> Pri čemer je ena sem imel za zanke, ki storil natanko takšne stvari, 947 00:45:43,997 --> 00:45:46,580 ponavljanjem nad bazo podatkov, dobili ime iz baze podatkov, 948 00:45:46,580 --> 00:45:49,940 ime iz baze, in nato na vsaki ponovitev te zanke sem poslal email. 949 00:45:49,940 --> 00:45:54,130 Toda namesto pošiljanja eno e-pošto, I pošlje en email prva ponovitev, 950 00:45:54,130 --> 00:45:58,200 in dve emails drugo ponovitev, poslana tri emails drugo ponovitev, ki 951 00:45:58,200 --> 00:46:01,230 kot si morda spomnite iz naše Razprava o asimptotskega zapisa 952 00:46:01,230 --> 00:46:06,400 ta big O slabega, kot n kvadrat je, koliko sporočil sem jih poslal, 953 00:46:06,400 --> 00:46:08,560 vendar ni bilo niti emails da je besedilna sporočila. 954 00:46:08,560 --> 00:46:12,070 >> In kot veste, je udeležba ni super high proti koncu semestra 955 00:46:12,070 --> 00:46:15,360 in tako sem mislil, da bo luštna na čas, da se, "zakaj nisi razred?" 956 00:46:15,360 --> 00:46:17,880 V sporočilu SMS I poslano ves razred, 957 00:46:17,880 --> 00:46:22,140 in je bilo smešno, da želi 50% razred, vendar drugi 50%, med katerimi je nekatere 958 00:46:22,140 --> 00:46:26,102 prestrašila, sem poslal neverjetno opravičeval sladek opombe 959 00:46:26,102 --> 00:46:28,560 za osebje opravičil za ki je zamudil predavanje samo 960 00:46:28,560 --> 00:46:29,530 enkrat, kajne? 961 00:46:29,530 --> 00:46:32,790 962 00:46:32,790 --> 00:46:34,030 >> Tako da bi grozno narobe. 963 00:46:34,030 --> 00:46:37,030 Torej, v tem duhu, poskusimo to Ponovno ampak z mojo številko. 964 00:46:37,030 --> 00:46:41,940 Vnaprej, functions.php, Sem napisal to funkcijo tukaj. 965 00:46:41,940 --> 00:46:44,250 To imenujemo besedilo, in to traja tri argumente. 966 00:46:44,250 --> 00:46:46,360 Številka, prevoznik, in sporočilo. 967 00:46:46,360 --> 00:46:50,390 >> Jaz sem z uporabo switch stavka, ki čudovito PHP vzeti strune, ne samo 968 00:46:50,390 --> 00:46:53,350 cela števila, in nisem izvajala vse podpore za to še ni, 969 00:46:53,350 --> 00:46:55,370 Pravkar sem naredil AT & T in Verizon. 970 00:46:55,370 --> 00:46:57,610 Ker se je izkazalo, da s temi prevozniki 971 00:46:57,610 --> 00:47:00,570 imajo e-pošto SMS prehodi, s katerim lahko dejansko 972 00:47:00,570 --> 00:47:05,529 pošljite e-pošto na naslov kot telefonsko številko, na vtext.com 973 00:47:05,529 --> 00:47:08,070 in če je uporabnik blokiran sporočila, bo šel skozi 974 00:47:08,070 --> 00:47:09,340 je besedilo sporočila. 975 00:47:09,340 --> 00:47:13,270 >> Zdaj za to, da bom moral dodati eno polje zelo hitro na mojo zbirko podatkov. 976 00:47:13,270 --> 00:47:15,470 Jaz bom šel v moj strukturo, in sem 977 00:47:15,470 --> 00:47:21,880 dogaja, da gredo naprej in dodati Polje na koncu tabele. 978 00:47:21,880 --> 00:47:25,227 Oglejmo kliknite Go, in sem bo to imenujemo nosilec 979 00:47:25,227 --> 00:47:27,310 in zdaj bom pustite to kot bar besedila, 980 00:47:27,310 --> 00:47:29,320 vendar smo lahko Ljubitelj v prihodnosti. 981 00:47:29,320 --> 00:47:31,961 Grem hitro iti v mojo mizo, in sem 982 00:47:31,961 --> 00:47:34,210 dogaja, da se znebite Rob, ker je to ponaredek številka, 983 00:47:34,210 --> 00:47:38,540 Jaz bom šel v urejanje tukaj in sem dogaja, da ročno spremenite svoj prevoznika 984 00:47:38,540 --> 00:47:43,410 da je Verizon, ki jo je, in zdaj tukaj. 985 00:47:43,410 --> 00:47:44,980 >> Naredimo pregled hiter prištevnosti. 986 00:47:44,980 --> 00:47:52,730 Odprimo naše besedilno skript, ki izgleda takole, nosilec je% s. 987 00:47:52,730 --> 00:47:58,230 Delamo veliko več napak preverjanje, kot sem leta 2012, nosilec. 988 00:47:58,230 --> 00:48:01,160 In zdaj, sem šel naprej in ponovno zaženite skript. 989 00:48:01,160 --> 00:48:01,660 OK. 990 00:48:01,660 --> 00:48:06,100 Prevoznik Verizon, kar pomeni, Zdaj upam, da sem lahko naredil samo to. 991 00:48:06,100 --> 00:48:08,360 Pravilno letos, upam, da gremo. 992 00:48:08,360 --> 00:48:12,200 >> Torej znotraj tega za zanke, sem dogaja, da imajo ne samo to printf, 993 00:48:12,200 --> 00:48:15,990 Jaz sem tudi dogaja, da pokličete besedilo in Uporaba te funkcije odpoklic 994 00:48:15,990 --> 00:48:19,670 je bilo potrebno več, nosilec, in sporočilo. 995 00:48:19,670 --> 00:48:23,310 Torej, da vidimo, število se bo biti vrstice quote citata "število" 996 00:48:23,310 --> 00:48:31,660 vrstica quote citata "prevoznik" in zadnja je bilo sporočilo. 997 00:48:31,660 --> 00:48:36,250 Ne zamoči letos, podpičje. 998 00:48:36,250 --> 00:48:36,780 >> OK. 999 00:48:36,780 --> 00:48:38,280 Pesti. 1000 00:48:38,280 --> 00:48:39,970 Poglejmo, če to deluje. 1001 00:48:39,970 --> 00:48:41,720 Vse je v redu, tako da. 1002 00:48:41,720 --> 00:48:43,000 Gremo. 1003 00:48:43,000 --> 00:48:47,380 Oglejmo odklepanje telefona Držite pesti, prekleto. 1004 00:48:47,380 --> 00:48:50,300 Undefined variable may-- oh čakaj, čakaj, čakaj, resnično hitro. 1005 00:48:50,300 --> 00:48:51,340 Real hitro, zelo hitro. 1006 00:48:51,340 --> 00:48:53,380 To je popolnoma vredno. 1007 00:48:53,380 --> 00:48:57,710 Naj me zgrabi, naj zgrabi, uh-oh. 1008 00:48:57,710 --> 00:48:59,965 Hvala, besedila imajo začel od nekoga drugega. 1009 00:48:59,965 --> 00:49:04,770 1010 00:49:04,770 --> 00:49:11,650 Dovolite mi, da gredo naprej in odprla real hitro, dropbox.php / mail tukaj. 1011 00:49:11,650 --> 00:49:12,660 Pripravljenosti. 1012 00:49:12,660 --> 00:49:14,455 Popolnoma vredno. 1013 00:49:14,455 --> 00:49:17,430 Prenosi. 1014 00:49:17,430 --> 00:49:18,560 OK, vir src8m. 1015 00:49:18,560 --> 00:49:19,700 OK. 1016 00:49:19,700 --> 00:49:21,380 >> Potrebujemo še eno linijo tukaj. 1017 00:49:21,380 --> 00:49:24,530 Oh to je to, to je v Frosh UI, je v registru ob treh. 1018 00:49:24,530 --> 00:49:28,820 Oh zdravo, Margo, najlepša hvala. 1019 00:49:28,820 --> 00:49:31,130 OK, in sem bil odsoten te vrstice tukaj. 1020 00:49:31,130 --> 00:49:33,010 Zato mi dovolite, hitro zgrabite ta vrstica kode, 1021 00:49:33,010 --> 00:49:36,200 ki vključuje pošto ali knjižnico da sem dejansko želijo uporabiti, 1022 00:49:36,200 --> 00:49:38,300 Jaz sem hitro bo pojdi nazaj v funkcijah, 1023 00:49:38,300 --> 00:49:42,337 Jaz bom šel na vrhu tega datoteko in zahtevajo te datoteke, kot tudi, 1024 00:49:42,337 --> 00:49:45,420 in zdaj bom res prečkati my prsti, ko sem šel nazaj na ukaz 1025 00:49:45,420 --> 00:49:49,530 linija scenarij, ki je znotraj Današnji lokalni imenik gostitelja. 1026 00:49:49,530 --> 00:49:50,610 Teči besedilo. 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 Pripravljenosti. 1030 00:49:53,719 --> 00:49:58,850 1031 00:49:58,850 --> 00:49:59,600 Pripravljenosti. 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 Gremo. 1035 00:50:03,870 --> 00:50:06,880 >> Mail dobi nove PHP mailer. 1036 00:50:06,880 --> 00:50:09,970 Sem naredil to pravico? 1037 00:50:09,970 --> 00:50:11,067 Prekleto. 1038 00:50:11,067 --> 00:50:12,150 To-- oh, čakaj, čakaj, čakaj. 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 Obljubim, da je to bo tako vredno. 1042 00:50:18,630 --> 00:50:20,340 Naslov. 1043 00:50:20,340 --> 00:50:24,390 To je razlog, zakaj jaz ne bi Primeri tik pred razredom. 1044 00:50:24,390 --> 00:50:26,350 Ugh. 1045 00:50:26,350 --> 00:50:27,910 Naslednji prejemniki ni uspel. 1046 00:50:27,910 --> 00:50:31,500 1047 00:50:31,500 --> 00:50:33,040 Poskusimo še zadnjo stvar. 1048 00:50:33,040 --> 00:50:40,660 SMTP nastavite od dodajte naslov Naslov je res, da je. 1049 00:50:40,660 --> 00:50:43,980 Poskusimo to zadnjo vlogo v naslovu. 1050 00:50:43,980 --> 00:50:47,210 Oh, jaz sem res žalostno zdaj. 1051 00:50:47,210 --> 00:50:47,854 Hvala. 1052 00:50:47,854 --> 00:50:50,270 Ampak res cenim vse besedila, ki ste jih pošiljate. 1053 00:50:50,270 --> 00:50:53,130 1054 00:50:53,130 --> 00:50:56,320 Imaš to Davida. 1055 00:50:56,320 --> 00:50:59,310 Ste ga piha. 1056 00:50:59,310 --> 00:51:01,720 Dajmo ga pustite tam in bomo popraviti v ponedeljek. 1057 00:51:01,720 --> 00:51:04,290 Se vidiva potem. 1058 00:51:04,290 --> 00:51:08,090 >> DAVEN Farnham: In zdaj Deep Misli, ki jih Daven Farnham. 1059 00:51:08,090 --> 00:51:11,340 1060 00:51:11,340 --> 00:51:17,590 Če binarno drevo pade v gozdu in nihče je okoli C it-- [smehlja]. 1061 00:51:17,590 --> 00:51:18,998