1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Week 8, Folytatás] 2 00:00:02,000 --> 00:00:04,000 [David J. Malan] [Harvard Egyetem] 3 00:00:04,000 --> 00:00:08,000 [Ez a CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> Ez CS50, így ez a vége a 8. héten itt. 5 00:00:13,000 --> 00:00:16,000 Meg persze volt egy kis hurrikán korábban ezen a héten, 6 00:00:16,000 --> 00:00:19,000 így most ez tényleg csak te és én ebben előadóterem, 7 00:00:19,000 --> 00:00:22,000 de ma folytatjuk a beszélgetést a PHP-ről 8 00:00:22,000 --> 00:00:25,000 és a webes programozás általában, és mi is bevezetni az ötletet 9 00:00:25,000 --> 00:00:29,000 adatbázisok, különösen egy úgynevezett MySQL, ami nagyon népszerű manapság, 10 00:00:29,000 --> 00:00:34,000 nagy részben, mert a skálázhatóság, valamint mert a szabad és nyílt forráskódú. 11 00:00:34,000 --> 00:00:37,000 >> De először egy pillantást, ahol abbahagytuk a múltkor. 12 00:00:37,000 --> 00:00:40,000 Emlékezzünk vissza, hogy kerestük a több Frosh PM példák, 13 00:00:40,000 --> 00:00:44,000 és ez volt az ocsmány formában, hogy én találtam ki néhány 15 + éve 14 00:00:44,000 --> 00:00:49,000 annak érdekében, hogy a diákok az egyetemen nyilvántartást gólya intramurális sport 15 00:00:49,000 --> 00:00:52,000 anélkül, hogy ténylegesen kelljen trek már az egész udvar, hogy Wigglesworth 16 00:00:52,000 --> 00:00:56,000 , hogy csúszik a fizikai darab papírt alá néhány Proctor ajtaján. 17 00:00:56,000 --> 00:00:59,000 Ehelyett költözött mindent online, de erre mi szükség van, hogy használják ki 18 00:00:59,000 --> 00:01:03,000 néhány technológiák, így az egyik, mi szükség HTML, Hypertext Markup Language, 19 00:01:03,000 --> 00:01:07,000 ami megint ez a leíró nyelv, amellyel csinál weboldalakat szerkezetileg. 20 00:01:07,000 --> 00:01:10,000 >> Egy kis CSS ezekben a napokban, stíluslapokat, 21 00:01:10,000 --> 00:01:16,000 ahol használjuk stylizations a weboldal segítségével egy kicsit más szintaxist, 22 00:01:16,000 --> 00:01:19,000 mivel a HTML volt, ami a szerkezet cikke. 23 00:01:19,000 --> 00:01:21,000 Azt is meg kell, hogy vezessenek be egy webes programozási nyelv. 24 00:01:21,000 --> 00:01:25,000 Ebben az esetben fogjuk használni a PHP és a PHP fog lehetővé teszi számunkra, 25 00:01:25,000 --> 00:01:28,000 dinamikusan kimeneti tartalom, valamint a nem programozott dolgokat, mint a 26 00:01:28,000 --> 00:01:33,000 e-mail küldése, mint volt a helyzet a jegyzet elindultunk a múlt héten. 27 00:01:33,000 --> 00:01:35,000 >> Emlékezzünk arra, hogy a kód a volt 2 részből áll. 28 00:01:35,000 --> 00:01:38,000 Az egyik, mi volt froshims3.php, 29 00:01:38,000 --> 00:01:42,000 és ez nagyrészt markup egy HTML form belsejébe, 30 00:01:42,000 --> 00:01:45,000 egy apró kis CSS ide a stílusban attribútumok 31 00:01:45,000 --> 00:01:48,000 annak érdekében, hogy az űrlap maga lenne az oldal közepére, de azon túl, hogy a 32 00:01:48,000 --> 00:01:51,000 volt néhány reprezentatív formában bemenet, egy szöveges mező, egy jelölőnégyzet, 33 00:01:51,000 --> 00:01:55,000 Néhány rádió gombok, egy választó menü, és egy submit gomb. 34 00:01:55,000 --> 00:02:01,000 És ebben a formában, akkor be egy fájlba, amit látszólag nevezett register3.php, 35 00:02:01,000 --> 00:02:04,000 amely maga is nézett egy kicsit valami ilyesmi. 36 00:02:04,000 --> 00:02:08,000 Nos, a legtöbb kód register3.php, visszahívás, szólt e-mailt. 37 00:02:08,000 --> 00:02:11,000 Ez volt egy kicsit érvényesítése a formában, hogy benyújtották, hogy győződjön meg arról, 38 00:02:11,000 --> 00:02:14,000 hogy a mezők ténylegesen, feltéve, hogy várható volt. 39 00:02:14,000 --> 00:02:18,000 Aztán hívott néhány PHP funkciókat kissé új szintaxist, 40 00:02:18,000 --> 00:02:20,000 annak ellenére, hogy kölcsönvett C. 41 00:02:20,000 --> 00:02:24,000 >> Ez a nyíl operátor lehetővé teszi számunkra, hogy használja valami úgynevezett objektum-orientált programozás. 42 00:02:24,000 --> 00:02:27,000 Mi nem megyünk bele, hogy minden részletesen itt, de tudom, most 43 00:02:27,000 --> 00:02:31,000 ez egy módja annak, funkciók kapcsolódó tárgyakkal, 44 00:02:31,000 --> 00:02:34,000 amelyek a speciális szerkezet, mint láttuk C. 45 00:02:34,000 --> 00:02:37,000 De most, csak hogy a hit, hogy ez a helyes szintaxisa 46 00:02:37,000 --> 00:02:41,000 használata a könyvtár, mint ez PHPMailer könyvtár. 47 00:02:41,000 --> 00:02:44,000 És akkor a végén a fájl voltunk dinamikusan generált e-mail 48 00:02:44,000 --> 00:02:47,000 hogy van küldött my jharvard@cs50.net számla 49 00:02:47,000 --> 00:02:50,000 az én jharvard@cs50.net számla, 50 00:02:50,000 --> 00:02:54,000 és mi ennek megfelelően tájékoztatja a felhasználót, hogy a már nyilvántartásba ezt a sportot. 51 00:02:54,000 --> 00:02:57,000 Ez elég sok, amit a Frosh PM helyén volt annyi évvel ezelőtt 52 00:02:57,000 --> 00:03:00,000 amikor végre azt, megadták, más nyelven, 53 00:03:00,000 --> 00:03:02,000 de ez azt mutatja, talán a hatalom, hogy van 54 00:03:02,000 --> 00:03:05,000 most, hogy ki tudja fejezni magát nem csak algoritmikusan 55 00:03:05,000 --> 00:03:08,000 alacsony szinten nyelven, mint a C, de sokkal magasabb szinten 56 00:03:08,000 --> 00:03:11,000 ezekkel a nagyon valós alkalmazások, mint például e-mail, hogy ténylegesen megoldani 57 00:03:11,000 --> 00:03:13,000 néhány valódi világ problémáira. 58 00:03:13,000 --> 00:03:16,000 >> Most, persze, bár én ezt a szkriptet generálni 59 00:03:16,000 --> 00:03:20,000 e dinamikusan jharvard@cs50.net, ami valóban egy felhasználói fiókot 60 00:03:20,000 --> 00:03:23,000 hogy férnek hozzá, ne legyen nagyon óvatos, hogy küldjön 61 00:03:23,000 --> 00:03:26,000 postázni csak a számlákat, hogy valóban a saját, 62 00:03:26,000 --> 00:03:30,000 nehogy dolgok neked egy kis forró víz az életben. 63 00:03:30,000 --> 00:03:35,000 Ezzel azt mondta, menjünk most átmenet megoldása egy másik probléma teljesen, 64 00:03:35,000 --> 00:03:37,000 hogy megtartsák államok. 65 00:03:37,000 --> 00:03:39,000 Nos, mit jelent ez valójában? 66 00:03:39,000 --> 00:03:42,000 HTTP, ez a Hypertext Transfer Protocol, 67 00:03:42,000 --> 00:03:45,000 valójában egy hontalan protokollt, és hogy ez mit jelent az, hogy a 68 00:03:45,000 --> 00:03:48,000 ha húzza fel ilyesmit Google.com, majd nyomd meg az Entert 69 00:03:48,000 --> 00:03:51,000 általában a böngésző valamilyen forgó ikont, majd 70 00:03:51,000 --> 00:03:54,000 eredmények néhány weboldal letöltés alatt, 71 00:03:54,000 --> 00:03:57,000 majd a kis ikon nem fonási, illetve, hogy valóban azt sugallja, 72 00:03:57,000 --> 00:04:02,000 hogy a HTTP befejezte valamilyen kapcsolat a szerver és ennyi. 73 00:04:02,000 --> 00:04:05,000 HTTP hontalan abban az értelemben, hogy nem tart fenn 74 00:04:05,000 --> 00:04:08,000 egy állandó kapcsolatot a szerver ugyanúgy Skype nem 75 00:04:08,000 --> 00:04:11,000 vagy Gchat nem azért, mert a HTTP 76 00:04:11,000 --> 00:04:15,000 A feltételezés az, hogy ha egyszer már letöltött egy weboldalt ennyi. 77 00:04:15,000 --> 00:04:18,000 >> Nos, a valóságban ezek a napok oldalak, mint a Facebook és a Google Maps 78 00:04:18,000 --> 00:04:21,000 és a Twitter és hasonló van egy sokkal több dinamizmust, amellyel 79 00:04:21,000 --> 00:04:25,000 még azután is, hogy az ikon nem forog akkor valójában még több frissítés 80 00:04:25,000 --> 00:04:29,000 a szerver, több tweet, több státusz frissítéseket a Facebook-on és hasonlók. 81 00:04:29,000 --> 00:04:33,000 De még, hogy használja a technikát, hogy fogunk beszélni, egy hét vagy két 82 00:04:33,000 --> 00:04:36,000 nevei Ajax egy nyelvet nevű JavaScript, 83 00:04:36,000 --> 00:04:38,000 de a végén a nap, HTTP még hontalan. 84 00:04:38,000 --> 00:04:42,000 És mégis, ha azt szeretné, hogy valahogy emlékezni dolgokat a felhasználó 85 00:04:42,000 --> 00:04:44,000 még azután is, hogy már le a szerver 86 00:04:44,000 --> 00:04:47,000 PHP nem engedheti meg magának egy eszköz ezt 87 00:04:47,000 --> 00:04:52,000 mert, mint láttuk utoljára, PHP számos szuperglobális, 88 00:04:52,000 --> 00:04:55,000 és egy szuperglobális van, ismét egy különleges globális változót 89 00:04:55,000 --> 00:04:59,000 ez adta neked a webszerver és a PHP is. 90 00:04:59,000 --> 00:05:02,000 >> Nem kell semmit tenni az értékeket is, 91 00:05:02,000 --> 00:05:05,000 és az egyik szuperglobális láttuk eddig is kap, és írjon, 92 00:05:05,000 --> 00:05:08,000 ott, ahol az űrlapmezőket kerülnek automatikusan az Ön számára, 93 00:05:08,000 --> 00:05:11,000 valamint egy pár mások, hogy nem láttuk még. 94 00:05:11,000 --> 00:05:17,000 Belül $ _SERVER néhány speciális változót kapcsolódó szerver is. 95 00:05:17,000 --> 00:05:22,000 Mi az IP-címet, milyen protokoll, HTTP vagy HTTPS nem használja, 96 00:05:22,000 --> 00:05:25,000 mit kérés módszer nem használja, és a hasonló, így van néhány érdekes, 97 00:05:25,000 --> 00:05:29,000 szaftos részleteket a szerver, és valójában a felhasználó ott is. 98 00:05:29,000 --> 00:05:33,000 Van $ _COOKIE, ott, ahol ezek a dolgok úgynevezett cookie-kat tárolja. 99 00:05:33,000 --> 00:05:36,000 Nem fogunk több időt a cookie-k maguk ma, 100 00:05:36,000 --> 00:05:40,000 de tudom, most, hogy a cookie-k csak egy kis darab információ 101 00:05:40,000 --> 00:05:43,000 hogy a web szerver növény a böngésző 102 00:05:43,000 --> 00:05:46,000 és ezáltal a RAM vagy a számítógép merevlemezére 103 00:05:46,000 --> 00:05:49,000 , hogy információt tároljon gyűjt a felhasználó, például, a felhasználói név 104 00:05:49,000 --> 00:05:52,000 úgy, hogy nem kell, hogy írja, hogy minden alkalommal, amikor jelentkezzen be, vagy valamilyen 105 00:05:52,000 --> 00:05:55,000 egyedi száma vagy azonosítója, hogy a felhasználói 106 00:05:55,000 --> 00:05:58,000 így nem kell zaklat őket az azonos típusú kérdések 107 00:05:58,000 --> 00:06:00,000 preferenciák a jövőben, de a legtöbb látványosság 108 00:06:00,000 --> 00:06:02,000 most az $ _SESSION. 109 00:06:02,000 --> 00:06:07,000 >> Ez szuperglobális, amely, mint a többiek, adják Önnek automatikusan PHP 110 00:06:07,000 --> 00:06:10,000 amikor írsz PHP-alapú weboldalak 111 00:06:10,000 --> 00:06:13,000 tárolhatja, amit akarsz, vonósok, egészek, 112 00:06:13,000 --> 00:06:16,000 lebegő pontok, értékek, tömbök, objektumok, 113 00:06:16,000 --> 00:06:20,000 tényleg bármit, amit akar, és ez lehetővé teszi, hogy tárolja olyan módon 114 00:06:20,000 --> 00:06:23,000 hogy még ha a felhasználó látogatja most majd 115 00:06:23,000 --> 00:06:26,000 jön vissza egy perc múlva vagy 5 perc múlva, mert 116 00:06:26,000 --> 00:06:28,000 veszik az időt, mielőtt rákattint néhány egyéb linkre 117 00:06:28,000 --> 00:06:32,000 PHP biztosítani fogja, hogy bármit is tesz az említett ülésen szuperglobális 118 00:06:32,000 --> 00:06:37,000 egy perc vagy 5 perc ott lesz, amikor a felhasználó visszatér. 119 00:06:37,000 --> 00:06:40,000 És a motorháztető alatt a szuperglobális hajtják végre útján 120 00:06:40,000 --> 00:06:44,000 ezek a dolgok úgynevezett cookie-kat, de most, ez csak egy absztrakció 121 00:06:44,000 --> 00:06:47,000 ahol ez a fajta a programszerű egyenértékű a bevásárló kosárba. 122 00:06:47,000 --> 00:06:50,000 Bármit, a programozó, tedd, hogy 123 00:06:50,000 --> 00:06:53,000 szuperglobális asszociatív tömb lesz ott bizonyos számú perccel később 124 00:06:53,000 --> 00:06:59,000 amíg nem törli, vagy addig, amíg a felhasználó be nem zárja a böngészőjét összesen. 125 00:06:59,000 --> 00:07:02,000 >> Vessünk egy pillantást egy példát, hogy ez a dolog valóban használják. 126 00:07:02,000 --> 00:07:07,000 A counter.php napjaink darab kód 127 00:07:07,000 --> 00:07:09,000 mi a következő sort. 128 00:07:09,000 --> 00:07:13,000 Elején a fájl van egy csomó kék észrevételek, amelyek érdektelen most. 129 00:07:13,000 --> 00:07:15,000 De a 13-as vonal van egy új vonal, 130 00:07:15,000 --> 00:07:18,000 session_start, és hogy valóban pontosan mit mond. 131 00:07:18,000 --> 00:07:20,000 Úgy kezdődik ülés. 132 00:07:20,000 --> 00:07:25,000 Ez lehetővé teszi, hogy a nagy szuperglobális $ _SESSION, és ez ennyire egyszerű. 133 00:07:25,000 --> 00:07:30,000 Na most, ha haladunk, hogy nézd meg a 16 vezetéken, próbáljuk meg kitalálni, mi ez a weblap fog tenni. 134 00:07:30,000 --> 00:07:35,000 If (isset ($ _SESSION ["counter"]), akkor megy előre 135 00:07:35,000 --> 00:07:39,000 és tárolja a számláló változó, kisbetűk számláló, 136 00:07:39,000 --> 00:07:42,000 $ _SESSION ["Számláló"]. 137 00:07:42,000 --> 00:07:45,000 Ez úgy tűnik, hogy nyilvánító helyi változó nevű számláló 138 00:07:45,000 --> 00:07:48,000 belsejében, amely ez üzembe másolatát bármilyen belsejében a szuperglobális 139 00:07:48,000 --> 00:07:52,000 nevezett ülés helyét "számlálót". 140 00:07:52,000 --> 00:07:56,000 Else, úgy tűnik, ez a kis helyi változó számláló inicializálása 0-ra. 141 00:07:56,000 --> 00:08:01,000 >> De aztán néhány sort később 26 észre, hogy az ülés példánya számláló, 142 00:08:01,000 --> 00:08:06,000 a legfontosabb, egy új érték célhoz kötött, amely az aktuális érték plusz 1. 143 00:08:06,000 --> 00:08:09,000 Röviden, ezt a fájlt úgy tűnik frissítjük 144 00:08:09,000 --> 00:08:13,000 egy számlálót, ami tárolt ülésszak szuperglobális 145 00:08:13,000 --> 00:08:16,000 növelésével azt 1, de először egy példányát megtartja a korábbi érték 146 00:08:16,000 --> 00:08:20,000 tárolja azt egy helyi változó neve $ számláló, 147 00:08:20,000 --> 00:08:22,000 majd itt lent lássuk, mi marad. 148 00:08:22,000 --> 00:08:24,000 Kiderült, hogy elég sok csak HTML. 149 00:08:24,000 --> 00:08:29,000 A lap alján látunk a 37. sor, hogy én felkereste ezt a webhelyet 150 00:08:29,000 --> 00:08:33,000 számláló hogy hányszor, így van egy pár érdekes funkciók itt. 151 00:08:33,000 --> 00:08:36,000 Egy, ez egyértelműen egy változó, de ez nem elegendő az imént 152 00:08:36,000 --> 00:08:39,000 $ Számláló a szervezetben a HTML-mert persze 153 00:08:39,000 --> 00:08:43,000 ha ez csak ott among HTML PHP fogja feltételezni, hogy ez csak HTML. 154 00:08:43,000 --> 00:08:48,000 Ha szó szerint szeretnénk $ számlálót kell nyomtatni a képernyőn. 155 00:08:48,000 --> 00:08:51,000 >> De ahelyett, hogy a csepegés a PHP módba 156 00:08:51,000 --> 00:08:55,000 e darab szintaxis tudunk dinamikusan be egy értéket ide 157 00:08:55,000 --> 00:08:58,000 nagyon hasonló szellemben, hogy mit csináltunk utoljára a 158 00:08:58,000 --> 00:09:00,000 behelyezése értékeket szálakat. 159 00:09:00,000 --> 00:09:04,000 Tény, hogy ez csak egy összevont írásmód mond valami ilyesmit szó, 160 00:09:04,000 --> 00:09:12,000 print ($ counter), vagy akár valami hasonló printf (% s, számláló), 161 00:09:12,000 --> 00:09:14,000 sőt, mint azt láttuk online, vagy a tankönyvekben, 162 00:09:14,000 --> 00:09:17,000 van egy függvény a PHP-ben az úgynevezett echo 163 00:09:17,000 --> 00:09:20,000 amely nem ugyanaz a dolog, és minden ezek csak hosszabb lélegzetű módon 164 00:09:20,000 --> 00:09:25,000 a mondás 00:09:28,000 Ebben az egy esetben nem kell tenni 166 00:09:28,000 --> 00:09:30,000 a szó PHP a kérdőjel után. 167 00:09:30,000 --> 00:09:34,000 Ez az összevont írásmód újra, amit csak látott egy perccel ezelőtt 168 00:09:34,000 --> 00:09:37,000 amely visszhangot némi értéket. 169 00:09:37,000 --> 00:09:39,000 >> Lássuk, mi a végeredmény ennek valójában. 170 00:09:39,000 --> 00:09:43,000 Hadd menjek át a mi counter.php fájl, 171 00:09:43,000 --> 00:09:47,000 és majd meglátjuk, hogy David csak hibát követett el azzal játszik a kód is. 172 00:09:47,000 --> 00:09:50,000 Menjünk fix bármit is elcseszte, 173 00:09:50,000 --> 00:09:54,000 és a hiba úgy tűnik, hogy ott, elment, a 37. sor. 174 00:09:54,000 --> 00:09:59,000 Az oldal elejére már felkereste ezt a webhelyet 0 alkalommal. 175 00:09:59,000 --> 00:10:02,000 Nos, menjünk előre, és most a tetején a böngésző, kattintson a 176 00:10:02,000 --> 00:10:05,000 reload ikonra, és én kattintson újratölteni, 177 00:10:05,000 --> 00:10:12,000 és most jártam a helyszínen 1 alkalommal, 2, 3, 4, 5, 6, 7, 8. 178 00:10:12,000 --> 00:10:16,000 És valóban, ha megnézzük a forrása ennek az oldalnak az aktuális forráskód változik, 179 00:10:16,000 --> 00:10:19,000 , és vegyük észre a teljes hiányában PHP, és ez azért van, mert 180 00:10:19,000 --> 00:10:23,000 PHP kód értékelik vagy értelmezik szerver oldalon, 181 00:10:23,000 --> 00:10:27,000 és így azt jelenti, hogy a kimenet a PHP szkript, mi végül küldeni a böngésző, 182 00:10:27,000 --> 00:10:31,000 amely ebben az esetben némi nyers HTML és néhány nyers szöveget. 183 00:10:31,000 --> 00:10:33,000 Mi folyik itt? 184 00:10:33,000 --> 00:10:37,000 >> Nos, viszonylag kevés sornyi kódot vagyok képes tárolni 185 00:10:37,000 --> 00:10:40,000 tartósan folyamán néhány másodpercig, vagy ha vártunk elég hosszú, 186 00:10:40,000 --> 00:10:44,000 perc, még óra, bizonyos értéket oly módon, ami a HTTP 187 00:10:44,000 --> 00:10:47,000 Úgy tűnik, mintha állapottartó általunk tartott 188 00:10:47,000 --> 00:10:51,000 Ebben az összefüggésben a szerverre, és ez csak emlékezni, mit mondtam a múlt idő, 189 00:10:51,000 --> 00:10:55,000 de a valóságban van egy csomó bonyolult folyik a motorháztető alatt 190 00:10:55,000 --> 00:10:59,000 érintő cookie ez lehetővé teszi a PHP, hogy adjon nekem ez az illúzió 191 00:10:59,000 --> 00:11:02,000 E Bevásárlókocsi-szerű funkciót. 192 00:11:02,000 --> 00:11:05,000 Most, egy triviális példát, ahol mi csak tárolja egész szám, 193 00:11:05,000 --> 00:11:08,000 de ez a funkció vissza fog térni, hogy nagy értékű 194 00:11:08,000 --> 00:11:10,000 amikor elkezdünk beszélni összetettebb projektek, 195 00:11:10,000 --> 00:11:12,000 köztük probléma készlet 7. 196 00:11:12,000 --> 00:11:16,000 Ez az utolsó problémája meghatározott CS50. 197 00:11:16,000 --> 00:11:19,000 Tudom, ez nagyon szomorú, de amit talál, hogy fogunk kötni 198 00:11:19,000 --> 00:11:22,000 ez a része a félév által ténylegesen átállás 199 00:11:22,000 --> 00:11:25,000 a jobb egérgomb a C meghatározásában a keretében PHP 200 00:11:25,000 --> 00:11:27,000 de a használata közben néhány ugyanazon alapvető 201 00:11:27,000 --> 00:11:29,000 beszéltünk egy ideig. 202 00:11:29,000 --> 00:11:33,000 >> A célkitűzés Pset a 7 végrehajtása CS50 Finance, 203 00:11:33,000 --> 00:11:37,000 amely a saját verzióját Yahoo Finance vagy Google Finance 204 00:11:37,000 --> 00:11:40,000 vagy akár Etrade.com ahol megvan a képessége, hogy 205 00:11:40,000 --> 00:11:43,000 felnéz tőzsdei árfolyamok az adott szimbólumokat, de még inkább, mint a 206 00:11:43,000 --> 00:11:48,000 megvan a képessége, hogy "vásárolni" és "eladni" készletek 207 00:11:48,000 --> 00:11:51,000 amelyek kereskednek a különböző tőzsdéken, mert ez kezdőlapom 208 00:11:51,000 --> 00:11:55,000 Itt arra utal, ami valóban az, hogy milyen mértékben általunk megkezdett 209 00:11:55,000 --> 00:11:59,000 A probléma meg az Ön számára, van egy bejelentkezési űrlapot, ami kér egy felhasználónevet és egy jelszót. 210 00:11:59,000 --> 00:12:03,000 Ez egy submit gombot, de ezt követően, mivel mi végül látni, 211 00:12:03,000 --> 00:12:06,000 semmi sem folyik valójában a motorháztető alatt még nem, mert 212 00:12:06,000 --> 00:12:09,000 marad, hogy hajtsák végre a képességét, hogy regisztráljon az új felhasználók számára, 213 00:12:09,000 --> 00:12:12,000 a képesség, hogy részvényeket vásároljanak, eladni készletek, 214 00:12:12,000 --> 00:12:14,000 hogy valóban felnéznek aktuális tőzsdei árakat. 215 00:12:14,000 --> 00:12:17,000 >> És valóban, ez lesz, mint a valódi világban, amennyire csak lehetséges, mert tettük 216 00:12:17,000 --> 00:12:20,000 közé tartozik a kis kód, amely lehetővé teszi, hogy egyetlen funkcióval 217 00:12:20,000 --> 00:12:25,000 lekérdezés Yahoo Finance, ami csodálatosan elérhetővé teszi ingyenes adatok 218 00:12:25,000 --> 00:12:31,000 keresi fel a részvényárfolyamok alapján tőzsdei szimbólum vagy ticker szimbólum, 219 00:12:31,000 --> 00:12:34,000 és akkor kap vissza az aktuális tőzsdei árat a nap. 220 00:12:34,000 --> 00:12:37,000 Az adatok, amit valójában lát ebben a konkrét Pset lesz 221 00:12:37,000 --> 00:12:40,000 körülbelül olyan valós, mint ez is kap úgy, hogy te tényleg interfész 222 00:12:40,000 --> 00:12:43,000 A valós készletek valós árak, 223 00:12:43,000 --> 00:12:47,000 és látni fogjuk, hogy mennyi pénzt lehet, hogy talán 224 00:12:47,000 --> 00:12:51,000 Az elkövetkező néhány nap játszani a saját problémája set. 225 00:12:51,000 --> 00:12:55,000 >> De nézzük először a színpadon, hogy hogyan tervezzen valamit, ami biztosan sokkal bonyolultabb 226 00:12:55,000 --> 00:12:59,000 mint counter.php, ez bonyolultabb, mint bármely Frosh PM példák eddig, 227 00:12:59,000 --> 00:13:02,000 és próbáljuk meg bemutatni néhány paradigmákat itt, hogy lehetővé teszik számunkra, 228 00:13:02,000 --> 00:13:06,000 mind Pset 7 és talán a végleges projekt, ha teszel valamit web alapú 229 00:13:06,000 --> 00:13:11,000 , hogy a kódot jól szervezett, hogy tartsa magát a józan, 230 00:13:11,000 --> 00:13:15,000 és tegyen egy lépést felé együttműködő, akár CS50 végleges projekt 231 00:13:15,000 --> 00:13:18,000 vagy azon túl, ha továbbra is programozni valamit a jövőben. 232 00:13:18,000 --> 00:13:21,000 Van ez általános tervezési paradigma 233 00:13:21,000 --> 00:13:24,000 A számítógép-tudomány és a szoftverfejlesztés általában 234 00:13:24,000 --> 00:13:27,000 nevei MVC, modell nézet vezérlő, 235 00:13:27,000 --> 00:13:30,000 és ez egy buta betűszó, amely leírja egy nagyon kedves ötlet, 236 00:13:30,000 --> 00:13:34,000 amely az elkülönítése különböző aspektusait a program, 237 00:13:34,000 --> 00:13:39,000 kifejezetten elkülönült a logikai vagy az üzleti logika egy honlap 238 00:13:39,000 --> 00:13:42,000 annak érdekében, hogy bármi, ami magában foglalja a dolgok, mint például 239 00:13:42,000 --> 00:13:45,000 hívásfunkciók és adatbázisok lekérdezése és hasonlók 240 00:13:45,000 --> 00:13:48,000 történik, nem tartoznak a HTML 241 00:13:48,000 --> 00:13:51,000 hanem külön fájlokban, és valóban, itt van ez egy fájl 242 00:13:51,000 --> 00:13:54,000 általában, hogy már az úgynevezett vezérlő 243 00:13:54,000 --> 00:13:56,000 ez tényleg az agy mögött a műveletet, és majd meglátjuk egy példát 244 00:13:56,000 --> 00:13:58,000 erről csak egy pillanatra. 245 00:13:58,000 --> 00:14:01,000 >> Van egy modellt, amely programozási kód 246 00:14:01,000 --> 00:14:05,000 amely nem a beszél az adatbázisokat, hogy beszél a Yahoo Finance és hasonlók, 247 00:14:05,000 --> 00:14:08,000 és akkor ott van a V MVC, a nézetek, 248 00:14:08,000 --> 00:14:11,000 az összes cucc, ami kapcsolatos az esztétika, a fájlokat, amelyeket ténylegesen tartalmazó 249 00:14:11,000 --> 00:14:14,000 a HTML, talán a CSS és hasonlók. 250 00:14:14,000 --> 00:14:17,000 Az ötlet itt, mivel ezt a képet mutatja, az, hogy a szabályozó 251 00:14:17,000 --> 00:14:21,000 a fájlt, ahogy hamarosan látni és akkor különösen látni Pset 7, 252 00:14:21,000 --> 00:14:24,000 hogy a világ beszél keresztül böngészők. 253 00:14:24,000 --> 00:14:27,000 Ez a fájl lesz látogatott a nyilvános interneten, 254 00:14:27,000 --> 00:14:30,000 de a vezérlőt beszél potenciálisan egy modell, 255 00:14:30,000 --> 00:14:34,000 amely egy vagy több egyéb fájlokat tartalmazó kódot összefüggő adatok, 256 00:14:34,000 --> 00:14:37,000 kód kapcsolatos adatbázisok és a hasonlók, és azután azt beszél 257 00:14:37,000 --> 00:14:40,000 A vezérlő egy vagy több más fájlokat ismert nézetek, 258 00:14:40,000 --> 00:14:43,000 amelyek az esztétika egy weboldal, sablonok a fajta, 259 00:14:43,000 --> 00:14:47,000 hogy eltart bizonyos adatokat bemenő, de a végén a nap 260 00:14:47,000 --> 00:14:50,000 az egyetlen logika belsejében tekintettel kell lennie a fajtája, hogy az adatok, 261 00:14:50,000 --> 00:14:53,000 iterációjával egy hurkot, és ténylegesen köpködés ki néhány 262 00:14:53,000 --> 00:14:56,000 HTML-alapú kiadatását ezek, vagy akár valami, mint egy PDF. 263 00:14:56,000 --> 00:14:59,000 >> Mi a jó erről MVC, hogy meg lehet különböző nézeteket 264 00:14:59,000 --> 00:15:02,000 típusa alapján a készülék típusa alapján a fájlformátum, hogy ténylegesen 265 00:15:02,000 --> 00:15:04,000 meg akarom mutatni a felhasználónak. 266 00:15:04,000 --> 00:15:10,000 Vessünk egy pillantást néhány egyre összetettebb és jól megtervezett példák 267 00:15:10,000 --> 00:15:13,000 kiindulva először 0-s verzió itt. 268 00:15:13,000 --> 00:15:16,000 Hadd menjek előre, és nyissa meg a mi MVC könyvtárban ma 269 00:15:16,000 --> 00:15:21,000 nevű fájlt index.php könyvtárban 0. 270 00:15:21,000 --> 00:15:26,000 Figyeljük meg ez egy szuper egyszerű és nagyon underwhelming website 271 00:15:26,000 --> 00:15:29,000 ez a fajta 0-s verzió a honlap CS50, 272 00:15:29,000 --> 00:15:32,000 , és vegyük észre, hogy van egy linket Előadások, van egy linket tematikája, 273 00:15:32,000 --> 00:15:35,000 és ha követi a linket Előadások figyelje meg, hogy az URL-címet 274 00:15:35,000 --> 00:15:39,000 up top meg fog változni a lectures.php. 275 00:15:39,000 --> 00:15:44,000 Ha majd kövesse a linket hét 1 figyelje meg, hogy az URL-címet változások week1.php. 276 00:15:44,000 --> 00:15:46,000 Úgy tűnik, hogy egy viszonylag egyszerű hierarchikus szerkezete van. 277 00:15:46,000 --> 00:15:49,000 >> Vessünk egy gyors pillantást a motorháztető alatt, hogy milyen ez a megállapított, 278 00:15:49,000 --> 00:15:53,000 és valóban, ha nézem index.php ez elég egyszerű. 279 00:15:53,000 --> 00:15:57,000 Sőt, bár én nevezte ezt a PHP fájl nincs tényleges programkód. 280 00:15:57,000 --> 00:16:01,000 Van egy megjegyzést, hogy én írtam itt a PHP-ben csak így a felhasználó nem a végén látják. 281 00:16:01,000 --> 00:16:05,000 Természetesen, mint korábban, bármi, ami a kettő között PHP címkék 282 00:16:05,000 --> 00:16:08,000 gets értelmezni, akkor is, ha ez egy megjegyzést, és értelmezni kommentezni 283 00:16:08,000 --> 00:16:11,000 pontosan azt jelenti, hogy dobja el a végén a nap, és valójában nem 284 00:16:11,000 --> 00:16:15,000 küldje el a böngésző, így minden itt csak esztétika. 285 00:16:15,000 --> 00:16:20,000 Ha megnyitni lectures.php hasonlóan ez is csak egy kemény kódolt fájlt. 286 00:16:20,000 --> 00:16:23,000 Ez történik lehet nevezni valamit. Php, 287 00:16:23,000 --> 00:16:27,000 de ez tényleg csak. html, és week1.php, week2.php 288 00:16:27,000 --> 00:16:31,000 hasonlóan csak jelölés, így van egy csomó hiányossága ez a design. 289 00:16:31,000 --> 00:16:33,000 Az egyik, hogy ez egy hatalmas copy / paste. 290 00:16:33,000 --> 00:16:37,000 Annak ellenére, hogy az egyetlen dolog, ami a változó közül ezeket a fájlokat a rendezetlen lista, 291 00:16:37,000 --> 00:16:41,000 A li tag, én ennek ellenére vannak doc típusú, HTML, fej, 292 00:16:41,000 --> 00:16:44,000 cím, szoros test, közeli HTML és több 293 00:16:44,000 --> 00:16:47,000 minden egyes fájl, ami azt jelenti, hogy ha valaha is szeretne szerkezetátalakításra 294 00:16:47,000 --> 00:16:50,000 ezt a web oldalt, vagy restylize azt kell mennem, és módosíthatja 295 00:16:50,000 --> 00:16:54,000 az összes ezeket a fájlokat kézzel vagy valamilyen masszív keresés és csere. 296 00:16:54,000 --> 00:17:01,000 >> Vessünk egy lépés egy intelligensebb, hosszabb gondolkodás design verzió 1 ide 297 00:17:01,000 --> 00:17:04,000 amely, mint egy a read me, hogy már foglalt, így játszhat együtt 298 00:17:04,000 --> 00:17:07,000 Ezen kényelmesebb otthon észre, hogy mi van itt 299 00:17:07,000 --> 00:17:10,000 egy összefoglaló a fájlokat 1-es verzióját ezen az oldalon, 300 00:17:10,000 --> 00:17:13,000 , és úgy tűnik, hogy vettem azt magamra, hogy ki faktor 301 00:17:13,000 --> 00:17:17,000 bizonyos közös kódot, header.php és footer.php. 302 00:17:17,000 --> 00:17:20,000 Nos, vessünk egy pillantást, mi van benne az első ilyen. 303 00:17:20,000 --> 00:17:23,000 Header.php ismerősnek tűnik, 304 00:17:23,000 --> 00:17:26,000 de észre, ha nem is kap vágva? 305 00:17:26,000 --> 00:17:30,000 Rögtön azután a 19, tehát ez minden, ami volt, a közös 306 00:17:30,000 --> 00:17:33,000 A fájlok index.php, lectures.php, 307 00:17:33,000 --> 00:17:36,000 week1 és week2.php alapján az előző példában. 308 00:17:36,000 --> 00:17:40,000 Amit tett, másolási és vágott mindent, ami közös az összes ezeket a fájlokat, 309 00:17:40,000 --> 00:17:44,000 tedd egy külön header fájlt, és hasonlóképpen footer.php 310 00:17:44,000 --> 00:17:48,000 tettem alkalmazza ugyanazt az elvet, amellyel az egyetlen érdekes sorokat 311 00:17:48,000 --> 00:17:52,000 A footer.php ez a két, szoros test és szoros HTML. 312 00:17:52,000 --> 00:17:55,000 >> De mit jelent ez most, hogy az új verzió 313 00:17:55,000 --> 00:17:59,000 Az index.php észre, hogy sokkal egyszerűbb is kaphat. 314 00:17:59,000 --> 00:18:02,000 Nyújtott, egy kicsit rejtélyes látszó, egy kicsit kevésbé intuitív 315 00:18:02,000 --> 00:18:06,000 követni fentről lefelé, hanem az én Istenem, az összes, hogy redundanciát most elment. 316 00:18:06,000 --> 00:18:10,000 Elvárjuk egy PHP függvény szó hívják igényel up top, 317 00:18:10,000 --> 00:18:15,000 ami nagyon emlékeztet, emlékszem, a C a # include mechanizmus. 318 00:18:15,000 --> 00:18:17,000 Elvárjuk header.php a tetején. 319 00:18:17,000 --> 00:18:20,000 Elvárjuk footer.php az alján, és az egyetlen dolog, ami a különböző 320 00:18:20,000 --> 00:18:25,000 vagy külön a fájl a tartalom, ami azt jelentette, hogy egyedi is. 321 00:18:25,000 --> 00:18:29,000 Ha akkor megy bele, mondjuk lectures.php, ugyanez az elv vonatkozik. 322 00:18:29,000 --> 00:18:32,000 Ismét néhány megjegyzést up top, de aztán szükség fejléc, lábléc igényelnek, 323 00:18:32,000 --> 00:18:35,000 és a kettő között, hogy csak a tartalom, ami ténylegesen megváltozott. 324 00:18:35,000 --> 00:18:38,000 És ha belenézett, és hét 1 hét 2 mi lenne látni 325 00:18:38,000 --> 00:18:42,000 hogy ugyanez az elv alkalmazták volna ott. 326 00:18:42,000 --> 00:18:44,000 Nos, mi nem igazán csinálni. 327 00:18:44,000 --> 00:18:48,000 >> Vessünk egy pillantást a 2-es verziója, amely egy hasonló szerkezetű, 328 00:18:48,000 --> 00:18:50,000 de észre most már be valami mást. 329 00:18:50,000 --> 00:18:53,000 A 10-es vonal, amit be helpers.php, 330 00:18:53,000 --> 00:18:55,000 amely nyilvánvalóan tartalmaz segítő funkciókat. 331 00:18:55,000 --> 00:18:58,000 A segítő funkció általában viszonylag rövid függvény 332 00:18:58,000 --> 00:19:01,000 hogy írsz, hogy segítsen ki különböző helyeken, 333 00:19:01,000 --> 00:19:04,000 és lássuk, mi van benne a helpers.php. 334 00:19:04,000 --> 00:19:07,000 Ebben az esetben, úgy néz ki, hogy már 2 funkciókat. 335 00:19:07,000 --> 00:19:10,000 Emlékezzünk vissza, a többi napot a kocka példa 336 00:19:10,000 --> 00:19:13,000 megadhatja saját függvények PHP-ben, és mit tettem most Nekem 337 00:19:13,000 --> 00:19:17,000 függvények úgynevezett teszik footer és megfosztaná élőfej, 338 00:19:17,000 --> 00:19:21,000 az első vevő egy nevezett paraméter adat, 339 00:19:21,000 --> 00:19:25,000 amelynek alapértelmezett érték egy üres tömb, ahogy azt ott, 340 00:19:25,000 --> 00:19:29,000 és mi is valójában írni ezt még tömören a legfrissebb PHP 341 00:19:29,000 --> 00:19:32,000 azzal nyitott szögletes zárójel, zárt szögletes zárójel. 342 00:19:32,000 --> 00:19:35,000 Ez azt jelenti, egy üres tömb mérete 0, de mégis egy tömb. 343 00:19:35,000 --> 00:19:38,000 >> Ez a kivonat a funkció egy kicsit különleges, mert 344 00:19:38,000 --> 00:19:41,000 mit csinál ez veszi az érvelését egy asszociatív tömbben 345 00:19:41,000 --> 00:19:45,000 amely 0 vagy több kulcs érték párokat, és ha van egy kulcsa foo 346 00:19:45,000 --> 00:19:48,000 és értéke bar a kivonat funkció 347 00:19:48,000 --> 00:19:51,000 olyan helyzetet teremt, amely most már, mint a line 11, 348 00:19:51,000 --> 00:19:57,000 van egy helyi változó neve $ foo melynek értéke bar. 349 00:19:57,000 --> 00:19:59,000 És ha több volt a kulcsokat és értékeket az adatok tömb, 350 00:19:59,000 --> 00:20:03,000 hasonlóképpen lennének extraháljuk a helyi körét 351 00:20:03,000 --> 00:20:06,000 vagy név hely, hogy footer.php és 352 00:20:06,000 --> 00:20:09,000 ugyanezt a gondolatot le ide, hogy header.php 353 00:20:09,000 --> 00:20:12,000 férhetnek hozzá azokat a változókat. 354 00:20:12,000 --> 00:20:15,000 Tény, hogy hadd nyit újra header.php 355 00:20:15,000 --> 00:20:18,000 és felhívni a figyelmet, hogy most hogyan néz ki ez a verzió. 356 00:20:18,000 --> 00:20:22,000 >> Ahelyett, hogy keményen kódolás CS50 a cím minden egyes oldal 357 00:20:22,000 --> 00:20:24,000 észre a dinamizmus, ami lehetséges, most. 358 00:20:24,000 --> 00:20:29,000 Az 5. sor Én visszhangzik a title változó, 359 00:20:29,000 --> 00:20:34,000 de először vagyok tompított ezt a címet változó egy függvény neve htmlspecialchars. 360 00:20:34,000 --> 00:20:38,000 A hülye név egy funkció, amíg ez, de ez tényleg azt teszi, amit mond. 361 00:20:38,000 --> 00:20:41,000 Ez biztosítja, hogy a speciális karaktereket 362 00:20:41,000 --> 00:20:46,000 a húr, hogy a már átadott megfelelő megszökött HTML. 363 00:20:46,000 --> 00:20:49,000 Ez valójában egy módja, hogy elkerüljék egy úgynevezett cross site scripting támadás 364 00:20:49,000 --> 00:20:52,000 ahol valaki rosszindulatúan vagy véletlenül 365 00:20:52,000 --> 00:20:55,000 injekciót saját HTML be weboldalára 366 00:20:55,000 --> 00:20:59,000 által beillesztés valamilyen formában, például, 367 00:20:59,000 --> 00:21:02,000 valamit, amit nem is számítasz rá, különösen a JavaScript kód, 368 00:21:02,000 --> 00:21:05,000 mivel fogunk beszélni, egy-két hét múlva. 369 00:21:05,000 --> 00:21:08,000 >> Ez most header.php, ez a nézet 370 00:21:08,000 --> 00:21:12,000 abban az értelemben, hogy lehetővé teszi, hogy esztétikailag tartalmának egyes adathalmaz. 371 00:21:12,000 --> 00:21:14,000 De konkrétan, ez egy sablont. 372 00:21:14,000 --> 00:21:19,000 Ez egyfajta terv most az, amit mi szeretnénk, a fejléc minden oldalon, hogy néz ki, 373 00:21:19,000 --> 00:21:23,000 de van némi dinamizmus, hogy szeretnénk a címet, hogy dinamikusan ki 374 00:21:23,000 --> 00:21:26,000 alapján a cím szerinti változó 375 00:21:26,000 --> 00:21:30,000 hogy extraháljuk, amikor hívtuk újra, 376 00:21:30,000 --> 00:21:33,000 A render header funkciót. 377 00:21:33,000 --> 00:21:36,000 Most, ha nézte render lábléc, ott valójában nem sok haszna van e most 378 00:21:36,000 --> 00:21:40,000 mert footer.php nincs dinamizmus nélkül. 379 00:21:40,000 --> 00:21:43,000 Lehetne, de abban a pillanatban, hogy ez egy nehéz kódolt listát 2-címkék, 380 00:21:43,000 --> 00:21:46,000 de ugyanez a gondolat vonatkozik, annak érdekében, hogy valóban azt sugallja, hogy miért 381 00:21:46,000 --> 00:21:49,000 tettünk vesztegeti az idejét, amelynek render fejléc és a lábléc render függvény? 382 00:21:49,000 --> 00:21:52,000 Hadd menjek, hanem most már a 3-as verziójú, 383 00:21:52,000 --> 00:21:56,000 valamint a 3-as verzió a segítők úgy döntött, hogy egyszerűsíti, hogy még. 384 00:21:56,000 --> 00:21:58,000 >> Hadd egy render funkcióval. 385 00:21:58,000 --> 00:22:02,000 Hadd van ez újabb érv, ezúttal az úgynevezett sablon, 386 00:22:02,000 --> 00:22:05,000 ami azt jelentette, hogy a neve a sablon, 387 00:22:05,000 --> 00:22:11,000 és akkor én összefűzni elbizakodottságában. php e változó értékét, 388 00:22:11,000 --> 00:22:17,000 majd ha létezik foo.php, bar.php vagy header.php és footer.php, 389 00:22:17,000 --> 00:22:20,000 akkor én megyek előre, és csomagolja ki a változó adatok 390 00:22:20,000 --> 00:22:23,000 majd megköveteli, hogy utat. 391 00:22:23,000 --> 00:22:29,000 Más szóval, hogy ezt most, ha én nyit index.php 392 00:22:29,000 --> 00:22:32,000 észre, hogy nem szükséges render fejléc többé. 393 00:22:32,000 --> 00:22:36,000 Én csak hívni tehetik, de én át a jegyzett érték fejléc 394 00:22:36,000 --> 00:22:39,000 világossá tenni, hogy melyik sablon Igazából szeretnék tölteni. 395 00:22:39,000 --> 00:22:41,000 >> Aztán ide észre, hogy mit csinálok. 396 00:22:41,000 --> 00:22:44,000 Én halad a dinamikusan kulcsfontosságú cím, 397 00:22:44,000 --> 00:22:47,000 értéke CS50, és ez is, mint láttuk korábban, 398 00:22:47,000 --> 00:22:51,000 lehetne tömörebb a legfrissebb PHP 399 00:22:51,000 --> 00:22:54,000 ahol tudok cserélni a tömb funkció szögletes zárójelben 400 00:22:54,000 --> 00:22:57,000 általam javasolt még olvasható, és minden bizonnyal 401 00:22:57,000 --> 00:22:59,000 egy kicsit könnyebb gépelni. 402 00:22:59,000 --> 00:23:02,000 És persze, a render footer hívást az alján, 403 00:23:02,000 --> 00:23:05,000 nem zavarja halad a második érv egyáltalán nem asszociatív tömb, 404 00:23:05,000 --> 00:23:07,000 mert semmi dinamikus belső e lábléc. 405 00:23:07,000 --> 00:23:10,000 Ez csak néhány közeli címke HTML. 406 00:23:10,000 --> 00:23:14,000 Jó, mi felé történő lépések valóban takarítás dolgokat itt, 407 00:23:14,000 --> 00:23:17,000 de hadd megnyitására 2 döntő példákat. 408 00:23:17,000 --> 00:23:21,000 Ez az egy, 4-es szám, azt tapasztaljuk, hogy Csináltam egy tudatos döntés most 409 00:23:21,000 --> 00:23:26,000 hogy javít az előző például véglegesen segítségével néhány hierarchia a fájlokat. 410 00:23:26,000 --> 00:23:29,000 >> Figyeljük meg, hogy ebben az összefoglaló, ebben olvasott nekem, már bevezetett 411 00:23:29,000 --> 00:23:32,000 egy részét könyvtár és a sablonok könyvtár 412 00:23:32,000 --> 00:23:35,000 amelynek tartalma lesznek a dolgokat akarok fel 413 00:23:35,000 --> 00:23:38,000 és a sablonokat, hogy szeretnék tenni, ill. 414 00:23:38,000 --> 00:23:42,000 Ez tényleg engem, hogy anális és próbálják tartani a dolgokat rendezett, 415 00:23:42,000 --> 00:23:45,000 tartani kapcsolódó fájlok együtt, de a végeredmény 416 00:23:45,000 --> 00:23:48,000 az, hogy most már van egy kissé tidier a telepítést, de meg kell emlékezni most 417 00:23:48,000 --> 00:23:51,000 be, például, index.php 418 00:23:51,000 --> 00:23:55,000 amikor szükséges a fájl helpers.php 419 00:23:55,000 --> 00:24:01,000 van, hogy most már követeli meg via includes / helpers.php 420 00:24:01,000 --> 00:24:06,000 ahelyett, hogy csak azt mondja helpers.php, mert most ez valójában egy al könyvtárban. 421 00:24:06,000 --> 00:24:09,000 Most, mint egy félre, akkor látni ezeket a példákat és mások 422 00:24:09,000 --> 00:24:11,000 funkciókat, mint például előírják, megkövetelik egyszer. 423 00:24:11,000 --> 00:24:15,000 Van valójában egy függvény maga szólította magában, és mindegyik egy kicsit különböző viselkedést. 424 00:24:15,000 --> 00:24:18,000 Itt mondom előírják egyszer, hogy győződjön meg szuper világos, hogy csak azt akarom, azok 425 00:24:18,000 --> 00:24:20,000 segítők szerepel a projektben egyszer. 426 00:24:20,000 --> 00:24:24,000 De ha én vagyok óvatos, és ha én valóban gondolok az én logikai megfelelően 427 00:24:24,000 --> 00:24:27,000 Elég is csak azt követelik meg top 428 00:24:27,000 --> 00:24:31,000 amíg én magam nem véletlenül követeli meg, hogy ugyanazt a fájlt máshol. 429 00:24:31,000 --> 00:24:34,000 Tény, hogy ez egy kicsit hatékonyabb módja a dolgok, akkor a 430 00:24:34,000 --> 00:24:38,000 igényelnek egyszer, úgyhogy vágja le, hogy csak szükség. 431 00:24:38,000 --> 00:24:40,000 >> Vessünk egy lépéssel tovább. 432 00:24:40,000 --> 00:24:46,000 Ez utóbbi példa most, 5-ös verzió, van egy még tisztább mappa hierarchia. 433 00:24:46,000 --> 00:24:50,000 Figyeljük meg, mit tettem ide a per a read me ebben a végső változat 434 00:24:50,000 --> 00:24:54,000 most ott van a HTML könyvtárba, amely már volt egész idő alatt, 435 00:24:54,000 --> 00:24:58,000 de belül ott most csak index.php, lectures.php, 436 00:24:58,000 --> 00:25:01,000 week1.php és week2.php. 437 00:25:01,000 --> 00:25:05,000 Az tartalmazza a könyvtár most él együtt a HTML könyvtárba, 438 00:25:05,000 --> 00:25:08,000 így ugyanazon a szinten, mint a testvére, hogy úgy mondjam. 439 00:25:08,000 --> 00:25:10,000 Így működik a Sablonok mappába. 440 00:25:10,000 --> 00:25:14,000 A legfontosabb elvihető itt voltam bevezetni egy kicsit szerkezet, 441 00:25:14,000 --> 00:25:17,000 de a legfontosabb jellemzője az, hogy most már csak azokat a fájlokat 442 00:25:17,000 --> 00:25:21,000 hogy kell interneten hozzáférhető, nyilvánosan címezhető 443 00:25:21,000 --> 00:25:25,000 egy URL-t a nyilvános interneten az én HTML könyvtárban. 444 00:25:25,000 --> 00:25:28,000 >> Eközben más fájlokat, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 header.php, amelyek vitathatatlanul talán érzékenyebbek, 446 00:25:32,000 --> 00:25:35,000 talán segítők valóban van néhány felhasználói neveket és jelszavakat, vagy valamilyen szellemi 447 00:25:35,000 --> 00:25:39,000 tulajdonát enyém, működő én tényleg nem akarja, hogy a világ lássa, még ha véletlenül. 448 00:25:39,000 --> 00:25:45,000 Ez jó gyakorlat, hogy ki a nyilvánosság HTML könyvtár 449 00:25:45,000 --> 00:25:48,000 a fájlokat, hogy nem kell magukat nyilvános. 450 00:25:48,000 --> 00:25:51,000 Mindössze annyit kell tennie, ebben az esetben, ha ránézünk, például 451 00:25:51,000 --> 00:25:55,000 A HTML könyvtár index.php fájlt, 452 00:25:55,000 --> 00:25:58,000 észre, már csak egy kicsit óvatos igénylő 453 00:25:58,000 --> 00:26:00,000 vagy előírhatják egyszer ezt a fájlt. 454 00:26:00,000 --> 00:26:03,000 Azt kell, hogy először csinálni .. hogy megy a szülő könyvtárba, 455 00:26:03,000 --> 00:26:06,000 akkor ne / includes / helpers.php 456 00:26:06,000 --> 00:26:12,000 merülni vissza le, hogy a fájl törődöm. 457 00:26:12,000 --> 00:26:16,000 >> Van még kérdése majd MVC 458 00:26:16,000 --> 00:26:20,000 vagy ez a viszonylag egyszerű megtestesülés cikkére? 459 00:26:20,000 --> 00:26:23,000 És hadd tegyem világossá, hogy mi elsősorban egy kicsit a 460 00:26:23,000 --> 00:26:27,000 V itt, a nézetek és a faktoring ki ezeket a sablonokat. 461 00:26:27,000 --> 00:26:30,000 Már nem igazán különböztethető M C csak még. 462 00:26:30,000 --> 00:26:33,000 Tény, hogy valóban nincs M itt van, és még a C, 463 00:26:33,000 --> 00:26:36,000 vezérlő, nem igazán mindent megtesz, hogy sok, de akkor kap sokkal több 464 00:26:36,000 --> 00:26:39,000 ismeri e két 2 leveleket MVC, 465 00:26:39,000 --> 00:26:43,000 vagy inkább, kapsz sokkal jobban ismerik a C 466 00:26:43,000 --> 00:26:49,000 az MVC a probléma szett 7, úgyhogy van még ezen a horizonton. 467 00:26:49,000 --> 00:26:51,000 Kérdései vannak? 468 00:26:51,000 --> 00:26:53,000 Itt valójában itt senki. 469 00:26:53,000 --> 00:26:57,000 >> Oké, most már lépni a második és egyben utolsó téma ma. 470 00:26:57,000 --> 00:27:00,000 Hogy a bevezetése az adatbázis. 471 00:27:00,000 --> 00:27:03,000 Egészen ezen a ponton már volt egy pár módon adattárolásra. 472 00:27:03,000 --> 00:27:05,000 Már használt változókat. 473 00:27:05,000 --> 00:27:08,000 Vissza a C fájl, I / O vitát kezdtünk a szöveges fájlok 474 00:27:08,000 --> 00:27:11,000 és használata fájlokat, mint fprintf, és aztán sem kezdődött 475 00:27:11,000 --> 00:27:14,000 beszél CSV fájlokat egy kicsit, vesszővel elválasztott értékek, 476 00:27:14,000 --> 00:27:17,000 ezért az összes ilyen lehetővé tette számunkra, hogy a tárolt adatok 477 00:27:17,000 --> 00:27:19,000 vagy nem tartósan, vagy tartósan. 478 00:27:19,000 --> 00:27:23,000 De még CSVs nem igazán kedvez a keresést 479 00:27:23,000 --> 00:27:25,000 és beillesztése és törlése. 480 00:27:25,000 --> 00:27:28,000 Ez tényleg csak egy hülye szövegfájl vesszővel elválasztva 481 00:27:28,000 --> 00:27:30,000 sorral szerint soronként, ezért ha azt szeretnénk, hogy 482 00:27:30,000 --> 00:27:32,000 keresés a fájlban a legjobb, amit tehetünk, valóban lineáris keresés. 483 00:27:32,000 --> 00:27:34,000 Meg kell kezdeni a tetején a fájl, olvassa el az egészet, 484 00:27:34,000 --> 00:27:36,000 és keresse meg néhány érték érdekében. 485 00:27:36,000 --> 00:27:39,000 Ha szeretné illeszteni ez már nem ugyanaz a dolog, 486 00:27:39,000 --> 00:27:41,000 iterációjával rajta és beillesztése egy adott helyen, 487 00:27:41,000 --> 00:27:45,000 és valóban, meg kell tennie az összes keresési logika magad. 488 00:27:45,000 --> 00:27:49,000 >> Ezt nem teheted okos mintaillesztés egy CSV-fájlt, ha te magad is írni a kódot. 489 00:27:49,000 --> 00:27:51,000 Ezt nem teheted kiszűrjük a CSV-fájl 490 00:27:51,000 --> 00:27:53,000 hacsak nem te magad írni a kódot. 491 00:27:53,000 --> 00:27:56,000 Nem lenne jó, ha valaki betesz minden erőfeszítés 492 00:27:56,000 --> 00:27:59,000 hogy ténylegesen, hogy keres egyszerű és beillesztés egyszerű 493 00:27:59,000 --> 00:28:01,000 és törlésére, és frissítése, és így tovább? 494 00:28:01,000 --> 00:28:04,000 Pontosan ez az, amit egy adatbázis. 495 00:28:04,000 --> 00:28:07,000 SQL strukturált lekérdező nyelv, még egy másik nyelvet 496 00:28:07,000 --> 00:28:10,000 hogy mi bevezetése ma itt, de ez is elég hozzáférhető, 497 00:28:10,000 --> 00:28:13,000 és amit mi valójában csinálunk éppen vájd ki belőle néhány legáltalánosabb 498 00:28:13,000 --> 00:28:16,000 jellemzői ezt hogy Pset 7, és ha csinálsz valamit web alapú, 499 00:28:16,000 --> 00:28:19,000 a végleges projekt, megvan a képessége, hogy kifejezze magát 500 00:28:19,000 --> 00:28:22,000 tekintve az adatok lekérdezések. 501 00:28:22,000 --> 00:28:25,000 Megvan a képessége, hogy tárolja a kevés vagy sok adatot 502 00:28:25,000 --> 00:28:28,000 egy sokkal strukturáltabb módon, amely a végén a nap 503 00:28:28,000 --> 00:28:32,000 hogy az élet könnyebb, mert az SQL tudod kifejezni magad 504 00:28:32,000 --> 00:28:35,000 sokkal pontosabban, sokkal inkább azért, hogy módszeresen 505 00:28:35,000 --> 00:28:40,000 menj vissza néhány részhalmazát adatok egy nagyobb corpus adat. 506 00:28:40,000 --> 00:28:45,000 >> Azt hiszem egy adatbázis, ebben az esetben egy SQL adatbázisba, igazán szeret Excel 507 00:28:45,000 --> 00:28:48,000 vagy számok ha ez egy táblázatkezelő, 508 00:28:48,000 --> 00:28:50,000 vagy talán több táblázatok, és egy táblázatkezelő, persze, 509 00:28:50,000 --> 00:28:53,000 van sorok és oszlopok, és ez azért van, mert 510 00:28:53,000 --> 00:28:56,000 SQL relációs adatbázisok, relációs abban az értelemben, 511 00:28:56,000 --> 00:28:59,000 hogy azok az adatok tárolására tekintetében ezek a táblák, 512 00:28:59,000 --> 00:29:01,000 sorok és oszlopok. 513 00:29:01,000 --> 00:29:03,000 Ezek a nagyobb teljesítményű, mint olyasmi, mint egy táblázatkezelő, 514 00:29:03,000 --> 00:29:05,000 , és egy táblázatot azt jelentette, hogy kell használni egy emberi. 515 00:29:05,000 --> 00:29:08,000 Az adatbázis célja, hogy használja a programozó 516 00:29:08,000 --> 00:29:12,000 kód írása ellen, így a megtestesülése egy adatbázis 517 00:29:12,000 --> 00:29:14,000 lesz sem parancssorban. 518 00:29:14,000 --> 00:29:18,000 >> Az egyik legnépszerűbb relációs adatbázisok odakint van, megint, MySQL, 519 00:29:18,000 --> 00:29:22,000 amely csodálatosan mentes, nagyon magas teljesítményű, és ez az, ami 520 00:29:22,000 --> 00:29:24,000 Facebook használt nagyon korán, és bizonyos mértékben még ma is 521 00:29:24,000 --> 00:29:27,000 tárolni egy csomó az adatokat, és majd meglátjuk, egy pillanat alatt 522 00:29:27,000 --> 00:29:30,000 hogy segítségével viszonylag egyszerű parancsokkal 523 00:29:30,000 --> 00:29:33,000 akkor válasszuk az adatokat, betét adatok, frissítési adatok, 524 00:29:33,000 --> 00:29:37,000 adatok törléséhez és hasonlók, de szerencsére van egy még inkább felhasználóbarát felület 525 00:29:37,000 --> 00:29:39,000 mint gépelés egy fekete-fehér gyors itt. 526 00:29:39,000 --> 00:29:43,000 Fogjuk használni Pset 7 és azon túl egy ingyenes eszköz nevű phpMyAdmin. 527 00:29:43,000 --> 00:29:45,000 A név a véletlen. 528 00:29:45,000 --> 00:29:47,000 A szerszám történik végrehajtandó PHP, 529 00:29:47,000 --> 00:29:49,000 de ez alapvetően lényegtelen. 530 00:29:49,000 --> 00:29:53,000 Mi hasznos erről phpMyAdmin, hogy ez a web-alapú segédprogram. 531 00:29:53,000 --> 00:29:55,000 Már előre telepített, hogy a készülék az Ön számára, 532 00:29:55,000 --> 00:29:58,000 és vele együtt hozhat létre táblákat az adatbázisban, 533 00:29:58,000 --> 00:30:01,000 szúrhat be adatokat, az adatok törlésére, és általában lásd 534 00:30:01,000 --> 00:30:04,000 adatait egy meglehetősen felhasználóbarát környezetben. 535 00:30:04,000 --> 00:30:07,000 A felhasználók nem fognak használni phpMyAdmin. 536 00:30:07,000 --> 00:30:09,000 >> Ez tényleg csak egy közigazgatási vagy fejlesztő eszköze 537 00:30:09,000 --> 00:30:12,000 amellyel látni, és piszkálni körül adatait és kitalálni, hogyan szervezheti meg, 538 00:30:12,000 --> 00:30:15,000 ugyanúgy, mint te magad is az Excel vagy a számok, 539 00:30:15,000 --> 00:30:19,000 de ez lesz egy nagyszerű módja annak megjelenítését, mi folyik a motorháztető alatt 540 00:30:19,000 --> 00:30:22,000 így összpontosítani érdekes problémamegoldó és nem annyira 541 00:30:22,000 --> 00:30:25,000 A misztikus parancsokat. 542 00:30:25,000 --> 00:30:28,000 Vessünk egy pillantást egy példát az adatok tárolhatók tabularly 543 00:30:28,000 --> 00:30:30,000 egy relációs adatbázis. 544 00:30:30,000 --> 00:30:32,000 Itt van egy ilyen példa. 545 00:30:32,000 --> 00:30:35,000 Nos, sajnos, phpMyAdmin tévesen oldalán dobás túl sok szót 546 00:30:35,000 --> 00:30:38,000 és Grafikák rád, de ha élesíteni csupán a 547 00:30:38,000 --> 00:30:42,000 ID oszlop, a felhasználó nevét oszlopot, és a hash oszlop, 548 00:30:42,000 --> 00:30:45,000 ez gyakorlatilag egy táblázatot, de előfordul, hogy egy részlet 549 00:30:45,000 --> 00:30:49,000 A táblázat a készülék belsejét 550 00:30:49,000 --> 00:30:53,000 használatával egy fájlt, hogy mi az Ön számára a problémás set 7. 551 00:30:53,000 --> 00:30:57,000 >> Különösen, kapsz egy fájlt jelent 552 00:30:57,000 --> 00:31:01,000 a felhasználó tábla, így a táblázatot, amely a felhasználók számára 3 oszlopot, 553 00:31:01,000 --> 00:31:05,000 amelyek közül az egyik egy egyedi azonosító, 1-től kezdve és akit eggyel növekszik azt követően. 554 00:31:05,000 --> 00:31:08,000 A második oszlop egy felhasználói nevet, és azoknak, akik nem Hacker, 555 00:31:08,000 --> 00:31:12,000 A Hacker Edition Pset 2, esetleg ismeri ezek közül néhány felhasználó neve legalább. 556 00:31:12,000 --> 00:31:16,000 A jobb oldalon a jelszavak, de nem szó jelszavakat. 557 00:31:16,000 --> 00:31:19,000 Ők hash bekezdésére, így kiderül, 558 00:31:19,000 --> 00:31:22,000 hogy tárolja a jelszavakat egy adatbázis egy nagyon rossz ötlet. 559 00:31:22,000 --> 00:31:25,000 Már minden bizonnyal olvasni egy bizonyos ponton néhány weboldal 560 00:31:25,000 --> 00:31:28,000 vagy néhány cég adatbázisában sérül, és akkor kell 561 00:31:28,000 --> 00:31:31,000 változtassa meg a jelszavát, meg kell, hogy visszatérítés dolgokat 562 00:31:31,000 --> 00:31:34,000 mert néhány rosszfiú valóban betörtek fiókjába emiatt. 563 00:31:34,000 --> 00:31:38,000 >> Tárolása jelszavak egyszerű szöveg, kódolatlan az adatbázisban 564 00:31:38,000 --> 00:31:41,000 teljesen ostoba, és mégis ez nagyon mulatságos 565 00:31:41,000 --> 00:31:44,000 majd olvasni néhány nagyon jól ismert cégek 566 00:31:44,000 --> 00:31:47,000 néha a sajtó, amelynek adatbázisok sérül, 567 00:31:47,000 --> 00:31:50,000 azt a részét, nem vicces, de az tény, hogy az adatbázisok tartalmazzák titkosítatlan 568 00:31:50,000 --> 00:31:53,000 jelszavak nevetséges, mert a szó szoros értelmében egy sor kódot 569 00:31:53,000 --> 00:31:57,000 akkor véd, hogy különös fenyegetést jelent, és ez az, amit tettünk itt. 570 00:31:57,000 --> 00:32:00,000 Még a mi kis fake CS50 Finance változat 571 00:32:00,000 --> 00:32:03,000 mi titkosítja a jelszavakat, csak a jó intézkedés, valamint az a tény, hogy a 572 00:32:03,000 --> 00:32:07,000 Mindezen jelszavak kezdeni $ 1 $ csak egy ilyen egyezmény. 573 00:32:07,000 --> 00:32:10,000 Ez csak azt jelenti, ők titkosított vagy nagyon kivonatos, 574 00:32:10,000 --> 00:32:13,000 amely olyan, mint egy egyirányú titkosítási függvény 575 00:32:13,000 --> 00:32:17,000 amely nem lehet visszafordítani hatásai valami úgynevezett MD5. 576 00:32:17,000 --> 00:32:21,000 >> Az a tény, hogy az 50 későbbi, azt jelenti, hogy egy só érték 577 00:32:21,000 --> 00:32:24,000 50 használták kivonatoló mindezen jelszavak kivéve egyet. 578 00:32:24,000 --> 00:32:27,000 Az enyém, persze, mint látod ott, HA, 579 00:32:27,000 --> 00:32:30,000 volt egy másik só, így azok, akit kicsit megbotlott up 580 00:32:30,000 --> 00:32:33,000 talán Hacker 2, azaz lehetett volna az eredménye a használó 581 00:32:33,000 --> 00:32:36,000 egy másik hash, mint a többiek, mert a jelszót tulajdonképpen ugyanaz 582 00:32:36,000 --> 00:32:38,000 mint néhány másik felhasználó odafent. 583 00:32:38,000 --> 00:32:41,000 Valójában, ha vártál ezeket hetekben, hogy megtudja, 584 00:32:41,000 --> 00:32:44,000 amit ezek a jelszavak is itt volt a jelszó, hogy megtámadták 585 00:32:44,000 --> 00:32:48,000 feltörni a Hacker kiadásában probléma set 2, így nem túl bonyolult. 586 00:32:48,000 --> 00:32:50,000 Valójában, a Malan ugyanaz volt mint jharvard, 587 00:32:50,000 --> 00:32:54,000 de ha visszamegyünk néztek más. 588 00:32:54,000 --> 00:32:58,000 >> Fókuszban a jharvard a vörös, mivel azokat sózzák másképp. 589 00:32:58,000 --> 00:33:01,000 Az algoritmust perturbált-ban oly módon, hogy az 590 00:33:01,000 --> 00:33:05,000 hash érték, a titkosított érték néz ki egy kicsit más 591 00:33:05,000 --> 00:33:08,000 mert a bemenetek kissé eltérő, de a jelszó a motorháztető alatt 592 00:33:08,000 --> 00:33:10,000 még végül bíbor. 593 00:33:10,000 --> 00:33:12,000 Nos, ki törődik ezzel? 594 00:33:12,000 --> 00:33:15,000 Nos, mi az Ön számára a mintát a felhasználók, a minta felhasználói nevek 595 00:33:15,000 --> 00:33:18,000 és kivonatainak a jelszavak, így valóban van némi 596 00:33:18,000 --> 00:33:23,000 ügyfelek CS50 pénzügyminiszter, amikor először szálljon le a földre a kódot. 597 00:33:23,000 --> 00:33:27,000 Itt van, hogy végre több tábla belsejében MySQL, belsejében az adatbázisban. 598 00:33:27,000 --> 00:33:30,000 Itt van, hogy több táblázatokat, hatékonyan, de úgy döntöttünk, hogy neked ez egy 599 00:33:30,000 --> 00:33:33,000 a kezdéshez, és látni fogod, hogy a probléma halmaz specifikáció 600 00:33:33,000 --> 00:33:37,000 végigvezeti a folyamat importáló e táblázat 601 00:33:37,000 --> 00:33:39,000 és azt is elmagyarázza, mit egyes tulajdonságok, 602 00:33:39,000 --> 00:33:41,000 és akkor is látni, hogy mi az Ön számára a kódot 603 00:33:41,000 --> 00:33:44,000 kezelni a kivonatoló vagy a titkosítás e jelszavak, 604 00:33:44,000 --> 00:33:49,000 így nem kell aggódni túl sokat arról, hogy mi MD5 vagy hasonló valójában szól. 605 00:33:49,000 --> 00:33:53,000 >> Szóval, SQL, strukturált lekérdező nyelv. 606 00:33:53,000 --> 00:33:56,000 Ez egészen egyszerűen, a nyelvi vagyunk az indulásra használ Pset 7 607 00:33:56,000 --> 00:34:01,000 és talán túl kérjenek adatokat az adatbázis. 608 00:34:01,000 --> 00:34:06,000 Az adatok ismét tárolt tabularly e relációs táblák, oszlopok és sorok 609 00:34:06,000 --> 00:34:09,000 de a néhány viszonylag egyszerű szintaktikai, mint a törlés, 610 00:34:09,000 --> 00:34:12,000 beszúrását, aktualizálását és válasszuk tehetünk, hogy pontosan. 611 00:34:12,000 --> 00:34:15,000 Mi lehet törölni az adatbázisból, helyezze, 612 00:34:15,000 --> 00:34:19,000 az adatok frissítésére, valamint a választás, vagyis az adatok lekérése az adatbázisból. 613 00:34:19,000 --> 00:34:21,000 Hogyan megy körülbelül ezt? 614 00:34:21,000 --> 00:34:23,000 Hadd menjek előre a készülékbe. 615 00:34:23,000 --> 00:34:28,000 Hadd húzza fel http://localhost, 616 00:34:28,000 --> 00:34:30,000 amely ismét csak a helyi készülék is. 617 00:34:30,000 --> 00:34:32,000 Ez az alapértelmezett felhasználónév. 618 00:34:32,000 --> 00:34:35,000 És hadd menjen a / phpmyadmin. 619 00:34:35,000 --> 00:34:39,000 Ez történik, hogy egy speciális URL-t, hogy a készülék úgy van beállítva, hogy megértsük 620 00:34:39,000 --> 00:34:42,000 hogy azonnal kéri meg egy felhasználói nevet és a jelszót. 621 00:34:42,000 --> 00:34:46,000 >> Mint mindig, megyek írja jharvard és bíbor, 622 00:34:46,000 --> 00:34:48,000 de rájönnek, hogy ez a rendszergazdai fiókot a számítógépen. 623 00:34:48,000 --> 00:34:53,000 Ez csak egy véletlen egybeesés, hogy van még egy jharvard regisztrált CS50 pénzügyminiszter. 624 00:34:53,000 --> 00:34:56,000 Jharvard, bíbor, enter ad nekem a felhasználói felület, hogy láttuk 625 00:34:56,000 --> 00:34:59,000 egy pillanatra egy pillanattal ezelőtt, és ez egy kicsit nyomasztó az első, 626 00:34:59,000 --> 00:35:02,000 de biztos lehetsz benne, te soha nem kell majd kattintsunk a legtöbb kapcsolatok ezt az eszközt. 627 00:35:02,000 --> 00:35:05,000 Majd a végén egy kis részét, hogy a szuper hasznosnak 628 00:35:05,000 --> 00:35:08,000 amelyek közül az első az adatbázisok itt. 629 00:35:08,000 --> 00:35:11,000 Ha felmegy az adatbázisokhoz, észre, hogy én vagyok kéri, hogy hozzon létre egy adatbázist. 630 00:35:11,000 --> 00:35:14,000 Ez olyan, mint egy új Excel-fájlt, hatékonyan. 631 00:35:14,000 --> 00:35:18,000 Én megyek előre, és hívja ez az előadás, és én csak megy, hogy figyelmen kívül hagyja a területen van, egyeztetése. 632 00:35:18,000 --> 00:35:20,000 Meg kell csinálni a képviselete az adatok abban 633 00:35:20,000 --> 00:35:24,000 és megyek kattintva létrehozhat, és most észre, ahogy elengedte létre 634 00:35:24,000 --> 00:35:27,000 a bal oldali, ha azt mondja, nem adatbázisok 635 00:35:27,000 --> 00:35:30,000 Én hamarosan látni az előadás adatbázisban. 636 00:35:30,000 --> 00:35:32,000 >> Ha most kattints a bal oldali, az előadás adatbázis, 637 00:35:32,000 --> 00:35:34,000 észre a kották változik egy kicsit. 638 00:35:34,000 --> 00:35:38,000 Megvan szerkezet, SQL, export, import és néhány más dolog. 639 00:35:38,000 --> 00:35:40,000 Szerkezete nagyjából üres. 640 00:35:40,000 --> 00:35:43,000 Nem táblák találhatók adatbázisban, ahogy azt itt, 641 00:35:43,000 --> 00:35:47,000 így hozzunk létre egy táblázatot, és menjünk előre, és hozzon létre egy táblázatot 642 00:35:47,000 --> 00:35:53,000 mint a diákok, és hány oszlopot akarunk? 643 00:35:53,000 --> 00:35:55,000 Tartsuk ezt az egyszerű, és menjünk eredménye minden hallgató 644 00:35:55,000 --> 00:35:58,000 azonosító számot, egy nevet és egy e-mail címet. 645 00:35:58,000 --> 00:36:02,000 >> Majd tartsa egyszerű, mint, hogy így 3 oszlopos, menj. 646 00:36:02,000 --> 00:36:05,000 A forma, amit látsz itt most egy kicsit zavaros és nyomasztó, 647 00:36:05,000 --> 00:36:08,000 de már csak, hogy menjen át rajta soronként, így nagyon gyorsan adjunk 648 00:36:08,000 --> 00:36:14,000 az első oszlop az adatbázisban egy neve azonosítóját az egyedi azonosító. 649 00:36:14,000 --> 00:36:17,000 Lesz egy egész szám. Én tulajdonképpen figyelmen kívül hossza és értékeket. 650 00:36:17,000 --> 00:36:21,000 Egy int lesz 32 bit nem számít, mit írjon oda, így hagyjuk üresen. 651 00:36:21,000 --> 00:36:24,000 Alapértelmezett érték tudtam tenni null meghatározott. 652 00:36:24,000 --> 00:36:27,000 Fogom hagyni, hogy egyedül. Ne aggódj alapértelmezett értékeket. 653 00:36:27,000 --> 00:36:29,000 Nézzük lapozzunk ide jobbra, attribútumokat. 654 00:36:29,000 --> 00:36:31,000 Ez érdekes. 655 00:36:31,000 --> 00:36:33,000 Menjünk előre, és némileg önkényesen azt mondják, hogy azonosítókat kell aláírva. 656 00:36:33,000 --> 00:36:35,000 Ne pazarolja negatív számok. 657 00:36:35,000 --> 00:36:37,000 >> Menjünk 0-4000000000, adjon vagy vegyen, 658 00:36:37,000 --> 00:36:40,000 aztán ne érintse meg ezeken a területeken csak még ott, 659 00:36:40,000 --> 00:36:43,000 de aztán hadd írja be a nevét itt lenn, 660 00:36:43,000 --> 00:36:46,000 majd a másik e-mailt, így a fogás email 661 00:36:46,000 --> 00:36:50,000 és név, nyilvánvalóan nem egészek, úgyhogy módosítsa ezeket egy másik területen. 662 00:36:50,000 --> 00:36:53,000 Kiderült varchar, változó hosszúságú char, 663 00:36:53,000 --> 00:36:56,000 olyan, mint egy karakterlánc egy SQL adatbázis 664 00:36:56,000 --> 00:36:59,000 de a változó hosszúságú, és valóban el kell mondani, hogy előre 665 00:36:59,000 --> 00:37:02,000 maximális hossza a húr, így fogok némileg önkényesen 666 00:37:02,000 --> 00:37:05,000 megegyezés típus 255 karakter. 667 00:37:05,000 --> 00:37:08,000 Tudnám mondani, teljesen 32. Mondhatnám, 1000. 668 00:37:08,000 --> 00:37:11,000 Azt a fajta igény dönteni magának alapuló demográfiai mi 669 00:37:11,000 --> 00:37:14,000 a leghosszabb hallgató nevét, és megy ez a szám, vagy egy kicsit nagyobb, 670 00:37:14,000 --> 00:37:17,000 de mi a szép egy varchar ez nem fog hulladék 671 00:37:17,000 --> 00:37:19,000 255 bájt minden diák nevét. 672 00:37:19,000 --> 00:37:23,000 Ha ez DAVID ez nem fog használni a teljes 255 bájt, 673 00:37:23,000 --> 00:37:26,000 de ez a felső határértéknek, úgyhogy megyek 255 csak a konvenció, 674 00:37:26,000 --> 00:37:30,000 de azt is megvitatni, hogy kell néhány kisebb érték, és e-mail cím 675 00:37:30,000 --> 00:37:34,000 Csak hogy konzisztens legyen 255, de a lényeg, tudtuk van egyforma vitát. 676 00:37:34,000 --> 00:37:36,000 De fogok csinálni egy másik dolog ide a jobb oldali. 677 00:37:36,000 --> 00:37:40,000 >> Mi erős egy adatbázist, hogy sokat tehetnek a nehéz emelés 678 00:37:40,000 --> 00:37:42,000 vagy komplex munka az Ön számára. 679 00:37:42,000 --> 00:37:46,000 Különösen, én tényleg nem érdekel, mi a hallgatói azonosító száma. 680 00:37:46,000 --> 00:37:49,000 Ez csak azt jelentette, hogy egy egyedi azonosítót az adatbázisban 681 00:37:49,000 --> 00:37:52,000 így van egy 32-bites tömör ábrázolása, hogy a diákok 682 00:37:52,000 --> 00:37:55,000 úgy, hogy van valamilyen módon egyedileg azonosítja őket 683 00:37:55,000 --> 00:37:58,000 nehogy van-e 2 Davids, például, egy osztályban. 684 00:37:58,000 --> 00:38:01,000 Sőt, megyek, hogy ellenőrizze e AI doboz, auto növekmény, 685 00:38:01,000 --> 00:38:04,000 annak érdekében, hogy az adatbázis, MySQL, kitalálja, 686 00:38:04,000 --> 00:38:08,000 amit minden újonnan felvett hallgató azonosítója lesz. 687 00:38:08,000 --> 00:38:11,000 Azt nem is kell törődni, hogy az én-kódot, 688 00:38:11,000 --> 00:38:13,000 és én is lesz választani valamit az index menüben. 689 00:38:13,000 --> 00:38:17,000 Az index legördülő itt is elsődleges, egyedi, 690 00:38:17,000 --> 00:38:19,000 index és a teljes szöveg. 691 00:38:19,000 --> 00:38:21,000 Akkor talán kitalálni, mi egy pár ezek a dolgok, 692 00:38:21,000 --> 00:38:24,000 de kiderül, a relációs adatbázisok 693 00:38:24,000 --> 00:38:28,000 Ön a programozó vagy az adatbázis-kezelő kap megelőző jellegű 694 00:38:28,000 --> 00:38:32,000 give tippeket, hogy az adatbázis, hogy milyen területeken 695 00:38:32,000 --> 00:38:34,000 táblázatban egy kicsit különleges. 696 00:38:34,000 --> 00:38:37,000 >> Például ebben az esetben fogom mondani, hogy azonosító 697 00:38:37,000 --> 00:38:42,000 lesz elsődleges index, más néven elsődleges kulcs. 698 00:38:42,000 --> 00:38:44,000 Mi ez azt jelenti, hogy a definíció azonosítója ezentúl 699 00:38:44,000 --> 00:38:48,000 will egyedi módon azonosítják a diákok ebben a táblázatban. 700 00:38:48,000 --> 00:38:53,000 Nincs hallgató van egyforma ID, mert én ezt a korlátozást kiszabó vagy ezt index. 701 00:38:53,000 --> 00:38:55,000 Sőt, mi ez fog tenni nekem ez fog mondani 702 00:38:55,000 --> 00:38:58,000 MySQL az ID különleges. 703 00:38:58,000 --> 00:39:03,000 Érdekel előnyösebben körülbelül ID, így megy előre, és nem a képzelet adatszerkezet a mágia, 704 00:39:03,000 --> 00:39:05,000 kiépítése valamilyen fa. 705 00:39:05,000 --> 00:39:08,000 Jellemzően ez valami az úgynevezett B-fa, amit nem nézett héttel ezelőtt, 706 00:39:08,000 --> 00:39:11,000 de ez egy másik ilyen adatok szerkezete hasonló szellemében a bináris fák 707 00:39:11,000 --> 00:39:15,000 és megpróbálja azt néztük meg, de ez fog mondani 708 00:39:15,000 --> 00:39:18,000 az adatbázis ezen a területen olyan fontos, hogy én valószínűleg 709 00:39:18,000 --> 00:39:22,000 szeretnénk, hogy képes legyen megtalálni rá, megy előre, és felépíteni valami puccos 710 00:39:22,000 --> 00:39:25,000 adatstruktúra a memóriában, hogy felgyorsítsa kereséseket, így ideális 711 00:39:25,000 --> 00:39:28,000 ők konstans idő vagy legalábbis olyan közel, hogy a lehetséges 712 00:39:28,000 --> 00:39:32,000 úgy, hogy ne áthárít bele lineáris keresés, amely nem lesz 713 00:39:32,000 --> 00:39:34,000 a legtöbb nagy teljesítményű megközelítés. 714 00:39:34,000 --> 00:39:37,000 Ezzel szemben, e-mail címe lehetett volna elsődleges kulcs. 715 00:39:37,000 --> 00:39:41,000 >> Elméletben mindenki e-mail címe egyedülálló, hacsak nem valamilyen megosztás venni, 716 00:39:41,000 --> 00:39:45,000 de ez általában nem jó használni, olyasmi, mint egy húr 717 00:39:45,000 --> 00:39:49,000 elsődleges kulcs, mert ha annak célja az életben, hogy egyértelmű azonosítására 718 00:39:49,000 --> 00:39:55,000 sorok a tábla nincs ok arra, hogy használja a 255 bájtot maximálisan 719 00:39:55,000 --> 00:39:58,000 amely egyedileg azonosítja valakit, ha lehet megúszni mindössze 4 byte 720 00:39:58,000 --> 00:40:00,000 vagy egy 32-bites int. 721 00:40:00,000 --> 00:40:03,000 Általában egy elsődleges kulcs legyen rövid és tömör 722 00:40:03,000 --> 00:40:07,000 és ideális esetben valami, mint egy egész, vagy egy nagy int, amely történetesen a 64 bit. 723 00:40:07,000 --> 00:40:11,000 De egy e-mail címet egyedinek kell lennie, és az egyik jellemzője az adatbázis is 724 00:40:11,000 --> 00:40:14,000 , hogy megerősítse egyediségét nekem. 725 00:40:14,000 --> 00:40:18,000 Kiválasztásával egyedi itt a következő e-mail, bár feladni magát 726 00:40:18,000 --> 00:40:21,000 görgetése ki a képernyőn, azt mondom, hogy az adatbázis 727 00:40:21,000 --> 00:40:23,000 nem bízol bennem. 728 00:40:23,000 --> 00:40:26,000 Ne hagyd, hogy helyezze be az adatbázisba 729 00:40:26,000 --> 00:40:29,000 ugyanazon e-mail címet kétszer, akkor is, ha egy idióta vagyok, és nem vagyok 730 00:40:29,000 --> 00:40:32,000 nagyon jó az én IFS és IFS mást és aktuális PHP kód 731 00:40:32,000 --> 00:40:37,000 és én véletlenül hagyja, hogy a felhasználó regisztrációja egy meglévő e-mail címet 732 00:40:37,000 --> 00:40:40,000 Az adatbázis újabb szintje védelmi helyességét 733 00:40:40,000 --> 00:40:44,000 annak biztosítása érdekében, hogy ez a duplikált e-mail cím nem ér véget fel a táblázatban. 734 00:40:44,000 --> 00:40:49,000 >> Nos, ezzel szemben, a neve valószínűleg nem szeretne, hogy az egyedi 735 00:40:49,000 --> 00:40:51,000 mert akkor soha nem lehet 2 Davids vagy 2 Mike Smiths, például, 736 00:40:51,000 --> 00:40:55,000 az adatbázisban, így egy akkor csak hagyjuk békén. 737 00:40:55,000 --> 00:40:58,000 Én megyek előre, és kattintson a Mentés gombra a jobb alsó sarokban, 738 00:40:58,000 --> 00:41:02,000 és minden, ami jól néz ki, de észre ide 739 00:41:02,000 --> 00:41:04,000 ez egy olyan rész, ami most nem fogunk túl sok időt töltenek a 740 00:41:04,000 --> 00:41:07,000 mert a szintaxis egy kicsit bonyolult, és nem kell, hogy hozzon létre táblákat 741 00:41:07,000 --> 00:41:10,000 minden, ami gyakran, de SQL maga a nyelv, 742 00:41:10,000 --> 00:41:13,000 a szintaxis, amely itt, hogy én már kiemelve. 743 00:41:13,000 --> 00:41:18,000 Mit phpMyAdmin tényleg ez létrehoz egy web-alapú GUI Önnek 744 00:41:18,000 --> 00:41:23,000 mellyel időt takaríthat meg, és nem kell kézzel írja ki 745 00:41:23,000 --> 00:41:26,000 Egy meglehetősen hosszú SQL query ilyesmi. 746 00:41:26,000 --> 00:41:29,000 >> Más szóval, ha akarod manuálisan létrehozni ezt a táblázatot, 747 00:41:29,000 --> 00:41:32,000 akár, hogy a fekete-fehér, azonnali vagy akár phpMyAdmin 748 00:41:32,000 --> 00:41:35,000 segítségével ez a másik lapon, ezt az SQL fület, ahol beírhatja bármilyen SQL lekérdezések 749 00:41:35,000 --> 00:41:38,000 akar, őszintén szólva, ez volna nekem egy percet 750 00:41:38,000 --> 00:41:41,000 hogy valóban emlékszik a teljes szintaxist, és még akkor talán volna 751 00:41:41,000 --> 00:41:45,000 néhány helyesírási, így ez az eszköz hasznos dolgok, mint, hogy, és ez is tanulságos. 752 00:41:45,000 --> 00:41:49,000 Akkor kezdődik következtetni mi a szintaxis 753 00:41:49,000 --> 00:41:52,000 Csak a szép színkódolás amelyre a phpMyAdmin hozzáadása 754 00:41:52,000 --> 00:41:54,000 a mi vizuális kényelem. 755 00:41:54,000 --> 00:41:56,000 De most nézzük ezt helyette. 756 00:41:56,000 --> 00:42:00,000 Hadd menjen a Beszúrás lap tetején, és hadd menjen előre, és helyezze például 757 00:42:00,000 --> 00:42:04,000 Az azonosító mondjuk, valójában nem érdekel. 758 00:42:04,000 --> 00:42:07,000 Ez lesz az automatikus növekmény. Én hagyom, hogy az adatbázis foglalkozik ezzel. 759 00:42:07,000 --> 00:42:11,000 De kell lennie David, és az én e-mail kell malan@harvard.edu. 760 00:42:11,000 --> 00:42:16,000 >> Menjünk előre, itt és bevezetni Mike Smith, mint egy másik. 761 00:42:16,000 --> 00:42:18,000 Adok magamnak egy utolsó nevet is, 762 00:42:18,000 --> 00:42:22,000 és mi is vele lesz smith@example.com, 763 00:42:22,000 --> 00:42:24,000 aztán hol a következő? 764 00:42:24,000 --> 00:42:27,000 Nos, úgy néz ki, tovább a gombra kattintva, és íme. 765 00:42:27,000 --> 00:42:30,000 Figyeljük meg a felső 2 sor egészül ki. 766 00:42:30,000 --> 00:42:32,000 Ez a tényleges SQL lekérdezést. 767 00:42:32,000 --> 00:42:36,000 Ez a phpMyAdmin eszköz működése nekem, 768 00:42:36,000 --> 00:42:40,000 de a végeredmény, értesítés, ha most megy a böngészés fülre, 769 00:42:40,000 --> 00:42:43,000 jelentése, hogy 2 sor ebben a táblázatban, nagyon emlékeztet esztétikailag 770 00:42:43,000 --> 00:42:46,000 Az asztal korábban láttuk a mi felhasználók Pset 7, 771 00:42:46,000 --> 00:42:51,000 akik közül az egyik David Malan, akik közül az egyik most Mike Smith. 772 00:42:51,000 --> 00:42:54,000 De csak hogy világos legyen, nem kell használni a phpMyAdmin, 773 00:42:54,000 --> 00:42:56,000 és valóban, fogsz hamarosan kódot írni Pset 7 774 00:42:56,000 --> 00:43:01,000 hogy automatizálja a felhelyezési menetét sorok, törlés sorok, frissítése sorok és a hasonló, 775 00:43:01,000 --> 00:43:04,000 hadd inkább menjen a SQL fülre ide 776 00:43:04,000 --> 00:43:14,000 és írja be a select * from diákok, ahol 777 00:43:14,000 --> 00:43:18,000 email = "malan@harvard.edu". 778 00:43:18,000 --> 00:43:21,000 >> Más szóval tegyük fel, most van 779 00:43:21,000 --> 00:43:26,000 egyes HTML formában, és a felhasználó beírja a saját e-mail címét, többek között más területeken, 780 00:43:26,000 --> 00:43:29,000 és a cél most a PHP-ben a háttérben kód 781 00:43:29,000 --> 00:43:31,000 hogy ténylegesen nézni, hogy a felhasználó más adatait. 782 00:43:31,000 --> 00:43:34,000 Mi a teljes neve? Mi az azonosító? 783 00:43:34,000 --> 00:43:37,000 Lehet írni egy SQL lekérdezést, mint ez, select * from diákok 784 00:43:37,000 --> 00:43:40,000 ahol email = "malan@harvard.edu". 785 00:43:40,000 --> 00:43:46,000 És ha majd kattintsunk menni, észre, hogy kéne, sőt tudom, hogy újra csak egy sorban. 786 00:43:46,000 --> 00:43:50,000 Mike kihagyták ezt az eredményt meg, az adatgyűjtés a sorok 787 00:43:50,000 --> 00:43:53,000 általában nevezik, mert nem azonos e-mail címet, mint én. 788 00:43:53,000 --> 00:43:57,000 >> Most ismét itt a Pset 7 fogja használni phpMyAdmin mint egy felügyeleti eszköz 789 00:43:57,000 --> 00:44:00,000 és egy pedagógiai eszköz tanulni az utat 790 00:44:00,000 --> 00:44:03,000 Világszerte SQL, de a végén a nap 791 00:44:03,000 --> 00:44:08,000 fogsz írni ezeket a lekérdezéseket belül a tényleges PHP kódot, 792 00:44:08,000 --> 00:44:11,000 és így Maradjanak velünk Zamyla a walkthrough különösen 793 00:44:11,000 --> 00:44:14,000 ahol kapsz egy túra a forgalmazási kód probléma set 794 00:44:14,000 --> 00:44:18,000 ahol kaptál nem csak az esztétikum a bejelentkezési oldal 795 00:44:18,000 --> 00:44:21,000 és a szép szexi embléma, amely azt mondja CS50 Finance, de már azt is adtam nektek 796 00:44:21,000 --> 00:44:24,000 egy csomó funkciók teszik életed egy kicsit könnyebb. 797 00:44:24,000 --> 00:44:27,000 Már is írt része a Pset az Ön számára, 798 00:44:27,000 --> 00:44:32,000 bejelentkezési részét is, különösen, hogy az Ön egyfajta reprezentatív tervezés 799 00:44:32,000 --> 00:44:36,000 hogy valójában használ egy vezérlő, például, index.php, 800 00:44:36,000 --> 00:44:40,000 login.php és hasonlók, és akkor meglátja a Pset is van sablonok könyvtár 801 00:44:40,000 --> 00:44:43,000 , amely az összes nézetek, az összes esztétika. 802 00:44:43,000 --> 00:44:46,000 És így a teljes munkafolyamat Pset 7 lesz, hogy a 803 00:44:46,000 --> 00:44:49,000 a felhasználók meglátogatnak egy vezérlő segítségével egy URL-t a böngészőben. 804 00:44:49,000 --> 00:44:53,000 Ez a vezérlő tartalmaz PHP kódot, amit írt, és ezen belül a PHP kód 805 00:44:53,000 --> 00:44:57,000 Lehet, hogy néhány sornyi SQL beágyazott dupla idézőjelek közé 806 00:44:57,000 --> 00:45:00,000 és átadta a függvény írtunk nevű lekérdezés 807 00:45:00,000 --> 00:45:03,000 amely segít beszélni az adatbázis használata nélkül valami ilyesmit 808 00:45:03,000 --> 00:45:05,000 adminisztratív eszközzel, mint a phpMyAdmin. 809 00:45:05,000 --> 00:45:08,000 >> Ön képes lesz arra, hogy írjon SQL utasítások PHP kód 810 00:45:08,000 --> 00:45:11,000 , és menj vissza a PHP tömb az eredményhalmaz, 811 00:45:11,000 --> 00:45:14,000 a sorok, amelyek ténylegesen egyezik lekérdezést. 812 00:45:14,000 --> 00:45:18,000 És hasonlóképpen leszel képes megtenni lapkák vagy törlése 813 00:45:18,000 --> 00:45:22,000 vagy frissítések vagy a hasonló, a szintaxis amelyek meglehetősen hasonló, 814 00:45:22,000 --> 00:45:25,000 és meglátja, néhány internetes hivatkozásokat, az elosztó-kód 815 00:45:25,000 --> 00:45:29,000 és a Pset csomagolja magát, hogy pontosan hogyan kezdjen csinálja. 816 00:45:29,000 --> 00:45:33,000 Ismerd végül mi tényleg csak vakarja a felületet, SQL 817 00:45:33,000 --> 00:45:36,000 és a MySQL, de a hatalom valóban az, hogy megszabadít 818 00:45:36,000 --> 00:45:40,000 hogy összpontosítson a problémákat szeretnénk megoldani, a használati esetek szeretne végrehajtani 819 00:45:40,000 --> 00:45:43,000 anélkül, hogy aggódnia annyira sok, legalábbis korán, 820 00:45:43,000 --> 00:45:47,000 arról, hol és hogyan kell tárolni, és keressen az adatbázist, 821 00:45:47,000 --> 00:45:50,000 és ez a szó szoros értelmében, ahol a Facebook maga kapta a kezdő 822 00:45:50,000 --> 00:45:53,000 MySQL, és ezután több MySQL szerver majd több MySQL szerver 823 00:45:53,000 --> 00:45:57,000 nemsokára amíg aztán tényleg kezdeni gondolkodni nehéz arról, hogy hogyan 824 00:45:57,000 --> 00:46:00,000 adatok tárolására, hogyan kell tárolni a dolgokat még hatékonyabban, 825 00:46:00,000 --> 00:46:04,000 így bár mi magától értetődőnek, hogy az indexek és az egyedi korlátok 826 00:46:04,000 --> 00:46:08,000 és így tovább, csak munka van egy nagyon érdekes beszélgetés 827 00:46:08,000 --> 00:46:12,000 hogy ez minden vezethetnek, úgyhogy észre, hogy mi csak vakarja a felületet 828 00:46:12,000 --> 00:46:17,000 A mi végül az Ön vagy projekt válik egy kicsit a nagy adatok. 829 00:46:17,000 --> 00:46:22,000 >> Ezzel azt mondta, menjünk ér itt véget, és találkozunk jövő héten. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]