1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Недеља 8, наставак] 2 00:00:02,000 --> 00:00:04,000 [Давид Ј. Малан] [Универзитет Харвард] 3 00:00:04,000 --> 00:00:08,000 [Ово је ЦС50.] [ЦС50.ТВ] 4 00:00:08,000 --> 00:00:13,000 >> Ово је ЦС50, тако да је ово крај недеље 8 овде. 5 00:00:13,000 --> 00:00:16,000 Ми смо наравно имали мало ураган раније ове недеље, 6 00:00:16,000 --> 00:00:19,000 па сада је то заиста само ти и ја у овом амфитеатру, 7 00:00:19,000 --> 00:00:22,000 али данас настављамо наш разговор о ПХП 8 00:00:22,000 --> 00:00:25,000 и око веб програмирања уопште, и ми смо такође увести идеју 9 00:00:25,000 --> 00:00:29,000 база података, посебно оне називају МиСКЛ, што је прилично популаран ових дана, 10 00:00:29,000 --> 00:00:34,000 у великој мери због свог скалабилности, као и зато што је сада слободан и опен соурце. 11 00:00:34,000 --> 00:00:37,000 >> Али прво, поглед на којој смо стали прошли пут. 12 00:00:37,000 --> 00:00:40,000 Подсетимо се да смо гледали неколико Фросх Ћаскање примера, 13 00:00:40,000 --> 00:00:44,000 и то је било грозно облик који сам дошао до неких 15 + година 14 00:00:44,000 --> 00:00:49,000 како би се студентима на универзитету регистра за бруцоша интрамуралне спортове 15 00:00:49,000 --> 00:00:52,000 без потребе да заправо више сеоба преко дворишта до Вигглесвортх 16 00:00:52,000 --> 00:00:56,000 да клизи физичку парче папира испод врата неког Прокторов. 17 00:00:56,000 --> 00:00:59,000 Уместо тога преселили смо све онлине, али да то нам је потребно да искористите 18 00:00:59,000 --> 00:01:03,000 од неколико технологија, тако да један, морали смо ХТМЛ, ХиперТект Маркуп Лангуаге, 19 00:01:03,000 --> 00:01:07,000 што је опет тај језик за означавање са којим правите структурално веб странице. 20 00:01:07,000 --> 00:01:10,000 >> Користећи мало ЦСС ових дана, Цасцадинг Стиле Схеетс, 21 00:01:10,000 --> 00:01:16,000 чиме ми користимо стилизатионс на веб страници користи мало другачију синтаксу, 22 00:01:16,000 --> 00:01:19,000 док ХТМЛ је све о структури истог. 23 00:01:19,000 --> 00:01:21,000 Ми такође треба да уведе језик веб програмирање. 24 00:01:21,000 --> 00:01:25,000 У овом случају, ми ћемо користити ПХП и ПХП ће нам омогућити 25 00:01:25,000 --> 00:01:28,000 динамички садржај излазног као и раде програмске ствари као 26 00:01:28,000 --> 00:01:33,000 слање е-поште, као што је био случај на напомену смо отишли ​​прошле недеље. 27 00:01:33,000 --> 00:01:35,000 >> Подсетимо се да код за ово је у 2 дела. 28 00:01:35,000 --> 00:01:38,000 Један, имали смо фросхимс3.пхп, 29 00:01:38,000 --> 00:01:42,000 и то је у великој мери означавање са ХТМЛ форми унутар ње, 30 00:01:42,000 --> 00:01:45,000 малкице ЦСС овде у стилу атрибута 31 00:01:45,000 --> 00:01:48,000 тако да је сама форма ће бити усмерена на страници, али више од тога 32 00:01:48,000 --> 00:01:51,000 ми смо имали неке репрезентативне форме улаза, поље за текст, кућицу, 33 00:01:51,000 --> 00:01:55,000 Неке радио дугмад, изаберите Мени, па субмит дугме. 34 00:01:55,000 --> 00:02:01,000 И преко овог обрасца, можемо поднети фајл који је наводно зове регистер3.пхп, 35 00:02:01,000 --> 00:02:04,000 која је и сама изгледала мало овако нешто. 36 00:02:04,000 --> 00:02:08,000 Сада, већина кода у регистер3.пхп, сећам се, била је све о е-поште. 37 00:02:08,000 --> 00:02:11,000 Јесте мало провере у облику који је поднет да се уверите 38 00:02:11,000 --> 00:02:14,000 да поља су заправо под условом да се очекује. 39 00:02:14,000 --> 00:02:18,000 Онда смо звали неке ПХП функције помоћу помало нову синтаксу, 40 00:02:18,000 --> 00:02:20,000 иако је позајмљен из Ц. 41 00:02:20,000 --> 00:02:24,000 >> Ова стрелица оператер нам омогућава да искористе нешто што се зове објектно оријентисано програмирање. 42 00:02:24,000 --> 00:02:27,000 Нећемо ићи у то у детаље овде, али знам за сада 43 00:02:27,000 --> 00:02:31,000 то је начин да функције повезане са објектима, 44 00:02:31,000 --> 00:02:34,000 који су посебна врста структуре, као што смо видели у Ц. 45 00:02:34,000 --> 00:02:37,000 Али, за сада, само се на вери да је то исправна синтакса за коришћење 46 00:02:37,000 --> 00:02:41,000 када се користи библиотеку као овај ПХПМаилер библиотеку. 47 00:02:41,000 --> 00:02:44,000 И онда на крају овог фајла смо динамички генерисан је емаил 48 00:02:44,000 --> 00:02:47,000 који је добио послао на мој рачун јхарвард@цс50.нет 49 00:02:47,000 --> 00:02:50,000 из мог јхарвард@цс50.нет рачуна, 50 00:02:50,000 --> 00:02:54,000 и ми смо обавестили корисника томе да су регистрована за бављење овим спортом. 51 00:02:54,000 --> 00:02:57,000 То је управо оно што Фросх Ћаскање сајт урадио све те године пре 52 00:02:57,000 --> 00:03:00,000 када сам га спроводи, готово, у другом језику, 53 00:03:00,000 --> 00:03:02,000 али то вам показује можда моћ коју имате 54 00:03:02,000 --> 00:03:05,000 Сада да ли се изрази не само програмски 55 00:03:05,000 --> 00:03:08,000 на ниском нивоу, у језику Ц, као што је већ на много вишем нивоу 56 00:03:08,000 --> 00:03:11,000 са овим веома реалним апликацијама као што су е-маил да се заиста решити 57 00:03:11,000 --> 00:03:13,000 неки стварни свет проблеми. 58 00:03:13,000 --> 00:03:16,000 >> Сада, наравно, иако ја користим ову скрипту за генерисање неких 59 00:03:16,000 --> 00:03:20,000 емаил динамички из јхарвард@цс50.нет, што је заиста рачун 60 00:03:20,000 --> 00:03:23,000 да имам приступ, не сасвим опрезни да шаљете 61 00:03:23,000 --> 00:03:26,000 маил само налоге који су заправо сопствени, 62 00:03:26,000 --> 00:03:30,000 не би те ствари у мало топле воде у животу. 63 00:03:30,000 --> 00:03:35,000 Уз то је рекао, хајде да сада прелазак на решавању потпуно другачији проблем, 64 00:03:35,000 --> 00:03:37,000 да од потпорних држава. 65 00:03:37,000 --> 00:03:39,000 Сада, шта то заправо значи? 66 00:03:39,000 --> 00:03:42,000 ХТТП, ово Хипертект Трансфер Протоцол, 67 00:03:42,000 --> 00:03:45,000 је заправо без држављанства протокол, и шта то значи да 68 00:03:45,000 --> 00:03:48,000 када се попнете нешто попут Гоогле.цом, а затим притисните ентер 69 00:03:48,000 --> 00:03:51,000 Обично ваш прегледач има неку врсту окреће икону која тада 70 00:03:51,000 --> 00:03:54,000 резултати у некој веб страници се преузимају, 71 00:03:54,000 --> 00:03:57,000 и онда то мало икона престаје предење, и да заиста сугерише 72 00:03:57,000 --> 00:04:02,000 који ХТТП је завршио неку врсту везе са сервером и то је то. 73 00:04:02,000 --> 00:04:05,000 ХТТП је без држављанства у смислу да се не одржи 74 00:04:05,000 --> 00:04:08,000 упорни веза са сервером на исти начин Скипе ради 75 00:04:08,000 --> 00:04:11,000 или Гцхат ради јер са ХТТП 76 00:04:11,000 --> 00:04:15,000 претпоставка је да када сте учитани веб страницу то је то. 77 00:04:15,000 --> 00:04:18,000 >> Сада, у стварности ових дана на сајтовима као што су Фацебоок и Гоогле мапама 78 00:04:18,000 --> 00:04:21,000 и Твиттер и као да је много више динамизам којим 79 00:04:21,000 --> 00:04:25,000 чак и након тога икона зауставља окретање можете, у ствари, добити више исправке 80 00:04:25,000 --> 00:04:29,000 са сервера, више твеетс, више ажурирања статуса на Фејсбуку и слично. 81 00:04:29,000 --> 00:04:33,000 Али чак и да се користи технику коју ћемо говорити о томе у недељу или две 82 00:04:33,000 --> 00:04:36,000 познат као Ајакс користи језик зове ЈаваСцрипт, 83 00:04:36,000 --> 00:04:38,000 али на крају крајева, ХТТП је и даље без држављанства. 84 00:04:38,000 --> 00:04:42,000 А ипак, ако желите да се некако сете ствари о кориснику 85 00:04:42,000 --> 00:04:44,000 чак и након што сте повезани са сервером 86 00:04:44,000 --> 00:04:47,000 ПХП ради приуштити вам средства радиш 87 00:04:47,000 --> 00:04:52,000 јер, као што смо видели у последње време, ПХП има неколико суперглобалс, 88 00:04:52,000 --> 00:04:55,000 и суперглобал је, опет, посебна глобална променљива 89 00:04:55,000 --> 00:04:59,000 који је дао вама путем веб сервер и ПХП сама. 90 00:04:59,000 --> 00:05:02,000 >> Не морате ништа да радите да ставимо вредности у њему, 91 00:05:02,000 --> 00:05:05,000 а међу суперглобалс смо видели до сада су добили и постављати, 92 00:05:05,000 --> 00:05:08,000 што је место где поља обрасца се аутоматски ставља на тебе, 93 00:05:08,000 --> 00:05:11,000 као и пар других које још нисмо видели. 94 00:05:11,000 --> 00:05:17,000 Унутар $ _СЕРВЕР неке посебне променљиве односе на самом серверу. 95 00:05:17,000 --> 00:05:22,000 Која је ИП адреса, шта је протокол, ХТТП или ХТТПС сте користили, 96 00:05:22,000 --> 00:05:25,000 Шта захтев метод сте користили и слично, тако да је нека занимљива, 97 00:05:25,000 --> 00:05:29,000 сочно детаље о серверу и, у ствари, корисник у тамо. 98 00:05:29,000 --> 00:05:33,000 Ту је $ _ЦООКИЕ, где се ове ствари називају колачићи су ускладиштени. 99 00:05:33,000 --> 00:05:36,000 Нећемо трошити време на колачића се данас, 100 00:05:36,000 --> 00:05:40,000 али знам да је за сада колачић је само мали део информација 101 00:05:40,000 --> 00:05:43,000 да веб сервер може посадити на веб бровсер 102 00:05:43,000 --> 00:05:46,000 и окренути РАМ или хард диск свог рачунара 103 00:05:46,000 --> 00:05:49,000 за складиштење информација о кориснику, на пример, своје корисничко име 104 00:05:49,000 --> 00:05:52,000 тако да не морате да куцате сваки пут када се пријавите или неку 105 00:05:52,000 --> 00:05:55,000 јединствени број или идентификатор за тог корисника 106 00:05:55,000 --> 00:05:58,000 тако да не морате да их малтретира са истим врстама питања о 107 00:05:58,000 --> 00:06:00,000 преференције у будућности, али већина од интереса 108 00:06:00,000 --> 00:06:02,000 сада је $ _СЕССИОН. 109 00:06:02,000 --> 00:06:07,000 >> Ово суперглобал, који, као и остали, је предат вама аутоматски ПХП 110 00:06:07,000 --> 00:06:10,000 када пишете ПХП-базиране сајтове 111 00:06:10,000 --> 00:06:13,000 може да ускладишти све што желите, ниске, целих бројева, 112 00:06:13,000 --> 00:06:16,000 плутајуће тачке, вредности, низови, објекти, 113 00:06:16,000 --> 00:06:20,000 стварно све што желите, и омогућава вам да га сачувате на такав начин 114 00:06:20,000 --> 00:06:23,000 да чак и ако вам корисник посети сада и онда 115 00:06:23,000 --> 00:06:26,000 врати мало од сада, или 5 минута од сада, јер 116 00:06:26,000 --> 00:06:28,000 они узимају своје време пре него што кликнете неки други линк 117 00:06:28,000 --> 00:06:32,000 ПХП ће осигурати да све што сте ставили у том дужином суперглобал 118 00:06:32,000 --> 00:06:37,000 Пре минут или 5 минута и даље ће бити ту када се корисник врати. 119 00:06:37,000 --> 00:06:40,000 А испод хаубе овај суперглобал реализује путем 120 00:06:40,000 --> 00:06:44,000 те ствари се зове колачиће, али за сада, то је само апстракција 121 00:06:44,000 --> 00:06:47,000 чиме је врста програмског еквивалент корпи. 122 00:06:47,000 --> 00:06:50,000 Шта год да је програмер, стави у то 123 00:06:50,000 --> 00:06:53,000 суперглобал асоцијативни низ ће бити одређени број минута касније 124 00:06:53,000 --> 00:06:59,000 док га не избришете или док корисник напусти сасвим свој бровсер. 125 00:06:59,000 --> 00:07:02,000 >> Хајде да погледамо пример како ово заправо користи. 126 00:07:02,000 --> 00:07:07,000 У цоунтер.пхп међу комада данашњих кода 127 00:07:07,000 --> 00:07:09,000 имамо следећу линију. 128 00:07:09,000 --> 00:07:13,000 На почетку овог фајла имамо гомилу плавих коментарима, који су незанимљива за сада. 129 00:07:13,000 --> 00:07:15,000 Али, у линији 13 имамо нову линију, 130 00:07:15,000 --> 00:07:18,000 сессион_старт, а да заправо ради управо оно што пише. 131 00:07:18,000 --> 00:07:20,000 Почиње седница. 132 00:07:20,000 --> 00:07:25,000 То вам омогућава да користите тај велики суперглобал $ _СЕССИОН, и то је једноставно тако. 133 00:07:25,000 --> 00:07:30,000 Сада, ако наставимо да погледате на линији 16, хајде да покушамо да схватимо шта је то веб страница ће да уради. 134 00:07:30,000 --> 00:07:35,000 Иф (иссет ($ _СЕССИОН ["контра"]), онда само напред 135 00:07:35,000 --> 00:07:39,000 а радња у шалтер променљиву, мала контра, 136 00:07:39,000 --> 00:07:42,000 $ _СЕССИОН ["Контра"]. 137 00:07:42,000 --> 00:07:45,000 Чини се проглашава локалну променљиву зове контра 138 00:07:45,000 --> 00:07:48,000 унутар којих се ставља копију год је унутра од суперглобал 139 00:07:48,000 --> 00:07:52,000 позвао седница на локацији "контра". 140 00:07:52,000 --> 00:07:56,000 Иначе, очигледно, ова мала локална променљива бројач, је иницијализован на 0. 141 00:07:56,000 --> 00:08:01,000 >> Али касније онда неколико редова у 26 обавештења да је седница је копија шалтеру, 142 00:08:01,000 --> 00:08:06,000 њен кључ, има нову вредност Доделио која је њена тренутна вредност, плус 1. 143 00:08:06,000 --> 00:08:09,000 Укратко, овај фајл изгледа да се ажурира 144 00:08:09,000 --> 00:08:13,000 бројач који је у складиште на седници суперглобал 145 00:08:13,000 --> 00:08:16,000 тако да увецава за 1, али је прво задржава копију претходне вредности 146 00:08:16,000 --> 00:08:20,000 тако да је чување у локалној променљивој $ зове бројач, 147 00:08:20,000 --> 00:08:22,000 и онда овде доле да видимо ста даље. 148 00:08:22,000 --> 00:08:24,000 Испоставило се да је то прилично једноставно ХТМЛ. 149 00:08:24,000 --> 00:08:29,000 На дну ове странице видимо у складу 37 које сам посетио овај сајт 150 00:08:29,000 --> 00:08:33,000 Бројач број пута, па овде има неколико занимљивих могућности. 151 00:08:33,000 --> 00:08:36,000 Један, то је јасно променљива, али не довољно да само стави 152 00:08:36,000 --> 00:08:39,000 $ Контра у телу вашег ХТМЛ због курса 153 00:08:39,000 --> 00:08:43,000 ако је само тамо међу ХТМЛ ПХП ће претпоставити да је само ХТМЛ. 154 00:08:43,000 --> 00:08:48,000 Ви буквално желе $ контра да се штампају на екрану. 155 00:08:48,000 --> 00:08:51,000 >> Али уместо испуштањем у ПХП режим 156 00:08:51,000 --> 00:08:55,000 са овим комадом синтаксе можемо динамички овде убаците вредност 157 00:08:55,000 --> 00:08:58,000 веома слично у духу на оно што смо урадили последњи пут са 158 00:08:58,000 --> 00:09:00,000 убацивање вредности у жицама. 159 00:09:00,000 --> 00:09:04,000 У ствари, ово је само скраћеница за нотацију каже дословно овако нешто, 160 00:09:04,000 --> 00:09:12,000 принт ($ контра), или чак нешто попут принтф (% с пулта) 161 00:09:12,000 --> 00:09:14,000 или чак, као што сте можда видели на мрежи или у уџбеницима, 162 00:09:14,000 --> 00:09:17,000 постоји функција у ПХП зове ехо 163 00:09:17,000 --> 00:09:20,000 који ради исту ствар, и сви они су само више начина даха 164 00:09:20,000 --> 00:09:25,000 се каже <=. 165 00:09:25,000 --> 00:09:28,000 У том једном случају не треба да се стави 166 00:09:28,000 --> 00:09:30,000 Реч ПХП после знака питања. 167 00:09:30,000 --> 00:09:34,000 То је скраћеница за нотација, опет, оно што смо управо видели малочас 168 00:09:34,000 --> 00:09:37,000 који одзвања неку вредност. 169 00:09:37,000 --> 00:09:39,000 >> Хајде да видимо шта је крајњи резултат то заправо јесте. 170 00:09:39,000 --> 00:09:43,000 Пусти ме да идем преко у нашу датотеку цоунтер.пхп, 171 00:09:43,000 --> 00:09:47,000 па ћемо видети да Дејвид управо направио грешку играјући са шифром тамо. 172 00:09:47,000 --> 00:09:50,000 Идемо поправити шта год забрљали, 173 00:09:50,000 --> 00:09:54,000 и грешка изгледа да буде тамо, нема, на линији 37. 174 00:09:54,000 --> 00:09:59,000 Према врху ове странице сам посетио овај сајт 0 пута. 175 00:09:59,000 --> 00:10:02,000 Па, хајде да идемо напред сада, а на врху прегледача кликните на 176 00:10:02,000 --> 00:10:05,000 релоад икону, а ја кликните садрлајима 177 00:10:05,000 --> 00:10:12,000 и сада сам посетио сајт 1 пут, 2, 3, 4, 5, 6, 7, 8. 178 00:10:12,000 --> 00:10:16,000 И заиста, ако погледамо на извору ове странице стварни изворни код се мења, 179 00:10:16,000 --> 00:10:19,000 и приметимо потпуно одсуство било каквог ПХП, а то је зато што 180 00:10:19,000 --> 00:10:23,000 ПХП код се процењује или тумачи страни сервера, 181 00:10:23,000 --> 00:10:27,000 па то значи да је излаз из ПХП скрипта је оно што је на крају послат на претраживачу, 182 00:10:27,000 --> 00:10:31,000 која је у овом случају неки сиров ХТМЛ и неки сирови текст. 183 00:10:31,000 --> 00:10:33,000 Шта се овде дешава? 184 00:10:33,000 --> 00:10:37,000 >> Па, са релативно мало линија кода сам у стању да складишти 185 00:10:37,000 --> 00:10:40,000 упорно током неколико секунди, или ако смо чекали довољно дуго, 186 00:10:40,000 --> 00:10:44,000 минута, чак и сати, неки вредност на начин који чини ХТТП 187 00:10:44,000 --> 00:10:47,000 Изгледа као да Статефул смо задржали 188 00:10:47,000 --> 00:10:51,000 ова веза са сервером, а то је само сећање оно што сам рекао прошли пут, 189 00:10:51,000 --> 00:10:55,000 али у стварности постоји читава гомила сложености дешава испод хаубе 190 00:10:55,000 --> 00:10:59,000 укључујући колачиће који је омогућавају ПХП да ми дају ту илузију 191 00:10:59,000 --> 00:11:02,000 овог корпи карактеристика слична. 192 00:11:02,000 --> 00:11:05,000 За сада, тривијалан пример где смо се упише неки цео број, 193 00:11:05,000 --> 00:11:08,000 али да функција ће се вратити да буде од велике вредности 194 00:11:08,000 --> 00:11:10,000 када почнем да причам о сложенијим пројектима, 195 00:11:10,000 --> 00:11:12,000 међу њима проблем сет 7. 196 00:11:12,000 --> 00:11:16,000 Ово је твоја последња проблем постављен у ЦС50. 197 00:11:16,000 --> 00:11:19,000 Знам, то је тако тужно, али шта ћете наћи је да ћемо да закључимо 198 00:11:19,000 --> 00:11:22,000 овај део семестра самим транзицији 199 00:11:22,000 --> 00:11:25,000 из контекста Ц свакако у контексту ПХП 200 00:11:25,000 --> 00:11:27,000 али док се користе неке од истих основама 201 00:11:27,000 --> 00:11:29,000 Разговарали смо о томе већ неко време. 202 00:11:29,000 --> 00:11:33,000 >> Циљ са псет 7 је спровести ЦС50 Финанце, 203 00:11:33,000 --> 00:11:37,000 која је ваша верзија Иахоо Финанце или Гоогле финансије 204 00:11:37,000 --> 00:11:40,000 или чак Етраде.цом где имате могућност да 205 00:11:40,000 --> 00:11:43,000 погледати цене акција датих симбола, али још више од тога 206 00:11:43,000 --> 00:11:48,000 имате могућност да "купи" и "продају" залихе 207 00:11:48,000 --> 00:11:51,000 којима се тргује на различитим берзама, јер као овај почетну страну 208 00:11:51,000 --> 00:11:55,000 Овде сугерише, што је заиста у којој мери смо почели 209 00:11:55,000 --> 00:11:59,000 проблем сет за тебе, имате пријаву образац који се тражи за корисничко име и лозинку. 210 00:11:59,000 --> 00:12:03,000 Има Субмит дугме, али после тога, као што смо на крају ћемо видети, 211 00:12:03,000 --> 00:12:06,000 нема ништа стварно дешава испод хаубе ипак због тога 212 00:12:06,000 --> 00:12:09,000 Остаје да се спроведе могућност да региструју нове кориснике, 213 00:12:09,000 --> 00:12:12,000 способност да купи акције, да прода акције, 214 00:12:12,000 --> 00:12:14,000 да стварно изгледају до актуелне цене акција. 215 00:12:14,000 --> 00:12:17,000 >> И заиста, ово ће бити стварном свету могуће, јер смо урадили 216 00:12:17,000 --> 00:12:20,000 укључују мало кода који ће вам омогућити са једном функцијом 217 00:12:20,000 --> 00:12:25,000 да упита Иахоо Финанце, који чудесно чини доступним податке бесплатне 218 00:12:25,000 --> 00:12:31,000 за гледајући цене акција на основу акција симбола или тикер, 219 00:12:31,000 --> 00:12:34,000 а ти се врати тренутну цену акција дана. 220 00:12:34,000 --> 00:12:37,000 Подаци сте заправо видели у овом псет ће бити 221 00:12:37,000 --> 00:12:40,000 као о стварном свету, јер може тако да се да сте заправо интерфејс 222 00:12:40,000 --> 00:12:43,000 са реалним светским залихама, реалних светских цена, 223 00:12:43,000 --> 00:12:47,000 па ћемо видети колико новца можете да направите можда 224 00:12:47,000 --> 00:12:51,000 у наредних неколико дана играо са својим проблем сету. 225 00:12:51,000 --> 00:12:55,000 >> Али хајде да прво поставили сцену за како дизајнирати нешто што је свакако компликованији 226 00:12:55,000 --> 00:12:59,000 него цоунтер.пхп, то је компликованије од било које Фросх Ћаскање примерима до сада, 227 00:12:59,000 --> 00:13:02,000 и да покушамо да представимо неколико парадигми овде да нам дозволи 228 00:13:02,000 --> 00:13:06,000 како за псет 7, а можда и за коначни пројекат ако урадите нешто веб базиран 229 00:13:06,000 --> 00:13:11,000 да ваш код добро организован, да се нормалан, 230 00:13:11,000 --> 00:13:15,000 и да се корак ка сарађују, да ли у ЦС50 коначног пројекта 231 00:13:15,000 --> 00:13:18,000 или изван ако наставите да програмирате нешто у будућности. 232 00:13:18,000 --> 00:13:21,000 Ту је ово идејно парадигма 233 00:13:21,000 --> 00:13:24,000 за компјутерске науке и развоја софтвера генерално 234 00:13:24,000 --> 00:13:27,000 познат као МВЦ, модел поглед контролер, 235 00:13:27,000 --> 00:13:30,000 и ово је глупо акроним који описује веома леп идеју, 236 00:13:30,000 --> 00:13:34,000 што је раздвајање различитих аспеката програма, 237 00:13:34,000 --> 00:13:39,000 посебно имајући одвојити логику или пословну логику веб сајта 238 00:13:39,000 --> 00:13:42,000 тако да све што укључује ствари као што су 239 00:13:42,000 --> 00:13:45,000 позивање функције и упита базе података и слично 240 00:13:45,000 --> 00:13:48,000 дешава не међу ХТМЛ 241 00:13:48,000 --> 00:13:51,000 већ у одвојеним фајловима, и заиста, ту је тај један фајл 242 00:13:51,000 --> 00:13:54,000 типично да сте звали контролер 243 00:13:54,000 --> 00:13:56,000 То је стварно мозак иза операције, па ћемо видети пример 244 00:13:56,000 --> 00:13:58,000 ово у само једном тренутку. 245 00:13:58,000 --> 00:14:01,000 >> Ту је модел који је програмирање код 246 00:14:01,000 --> 00:14:05,000 да не говорим својим базама података, да разговара са Иахоо финансија и слично, 247 00:14:05,000 --> 00:14:08,000 а онда је В у МВЦ, ставови, 248 00:14:08,000 --> 00:14:11,000 све ствари које се односе на естетици, датотеке које заправо садрже 249 00:14:11,000 --> 00:14:14,000 Ваш ХТМЛ, можда ваш ЦСС и слично. 250 00:14:14,000 --> 00:14:17,000 Идеја овде, јер ова слика говори, јесте да је контролер 251 00:14:17,000 --> 00:14:21,000 је датотека, као што ускоро видети и као што ћете видети у посебно псет 7, 252 00:14:21,000 --> 00:14:24,000 да свет говори да преко својих веб читачима. 253 00:14:24,000 --> 00:14:27,000 То је фајл који добија посетили на јавном интернету, 254 00:14:27,000 --> 00:14:30,000 али контролор разговара потенцијално модела, 255 00:14:30,000 --> 00:14:34,000 што је један или више других датотека које садрже код у вези са подацима, 256 00:14:34,000 --> 00:14:37,000 Код вези са базама података и слично, а онда се говори да 257 00:14:37,000 --> 00:14:40,000 Контролер један или више других датотека познат као приказа, 258 00:14:40,000 --> 00:14:43,000 који су естетика веб странице, шаблоне врста, 259 00:14:43,000 --> 00:14:47,000 да би предузети неке податке као улаз, али на крају дана 260 00:14:47,000 --> 00:14:50,000 само логика унутар погледом треба да буде пружање тих података, 261 00:14:50,000 --> 00:14:53,000 итератинг преко петље и заправо пљување на неке 262 00:14:53,000 --> 00:14:56,000 ХТМЛ-басед излагање о томе, или чак нешто као ПДФ-у. 263 00:14:56,000 --> 00:14:59,000 >> Шта је лепо о МВЦ је да имате различите погледе 264 00:14:59,000 --> 00:15:02,000 на основу врсте уређаја, на основу врсте формата које заправо 265 00:15:02,000 --> 00:15:04,000 желимо да покажемо да се кориснику. 266 00:15:04,000 --> 00:15:10,000 Хајде да погледамо неколико прогресивно сложенијим и добро осмишљен примерима 267 00:15:10,000 --> 00:15:13,000 покретањем прво са верзијом 0 овде. 268 00:15:13,000 --> 00:15:16,000 Дозволите ми да иде напред и отвори у нашем каталогу МВЦ данас 269 00:15:16,000 --> 00:15:21,000 фајл који се зове индек.пхп у директоријуму 0. 270 00:15:21,000 --> 00:15:26,000 Обратите пажњу да је ово супер једноставан и врло ундервхелминг сајт 271 00:15:26,000 --> 00:15:29,000 То је врста верзији 0 на почетну за ЦС50, 272 00:15:29,000 --> 00:15:32,000 и приметили како имамо везу са предавања, имамо везу са наставни план и програм, 273 00:15:32,000 --> 00:15:35,000 и ако сам пратите линк да се најаве предавања које је УРЛ 274 00:15:35,000 --> 00:15:39,000 до врха ће се променити у лецтурес.пхп. 275 00:15:39,000 --> 00:15:44,000 Ако сам тада пратите везу до недеља 1 најаве да ће УРЛ промене веек1.пхп. 276 00:15:44,000 --> 00:15:46,000 Изгледа да овде буде прилично једноставна хијерархијска структура. 277 00:15:46,000 --> 00:15:49,000 >> Хајде да брзи поглед испод хаубе како је то изнео, 278 00:15:49,000 --> 00:15:53,000 и заиста, ако погледамо индекс.пхп је прилично једноставно. 279 00:15:53,000 --> 00:15:57,000 У ствари, иако сам назвао ово ПХП фајл не постоји стварна програмског кода. 280 00:15:57,000 --> 00:16:01,000 Постоји коментар који сам овде написао у ПХП само тако да корисник не заврши видим га. 281 00:16:01,000 --> 00:16:05,000 Наравно, као и до сада, све што је између ПХП тагова 282 00:16:05,000 --> 00:16:08,000 добија тумачити, чак и ако је коментар, као и да тумаче коментар 283 00:16:08,000 --> 00:16:11,000 значи само да га баци на крају дана и заправо не 284 00:16:11,000 --> 00:16:15,000 пошаљите га на претраживачу, тако да је све овде је само естетике. 285 00:16:15,000 --> 00:16:20,000 Ако сам отворити сличан лецтурес.пхп је и то само тешко кодирани фајл. 286 00:16:20,000 --> 00:16:23,000 То се дешава да се зове нешто пхп., 287 00:16:23,000 --> 00:16:27,000 али то је заиста само хтмл, и веек1.пхп, веек2.пхп. 288 00:16:27,000 --> 00:16:31,000 Слично су само ознаке, тако да је гомила недостатака овог дизајна. 289 00:16:31,000 --> 00:16:33,000 Један, то је огромна количина цопи / пасте. 290 00:16:33,000 --> 00:16:37,000 Иако је једина ствар која се мења међу овим фајловима је несређене листе 291 00:16:37,000 --> 00:16:41,000 Ли ознаке, ја ипак морати доц тип, ХТМЛ, глава, 292 00:16:41,000 --> 00:16:44,000 наслов, близу тела, близу ХТМЛ и више 293 00:16:44,000 --> 00:16:47,000 у сваком појединачном фајлу, што значи да ако сам икада желео да реструктурира 294 00:16:47,000 --> 00:16:50,000 Ова веб страница или рестилизе га морам да идем и променити 295 00:16:50,000 --> 00:16:54,000 сви ови фајлови ручно или са неким масивна наћи и заменити. 296 00:16:54,000 --> 00:17:01,000 >> Узмимо корак ка паметнији, дуже размишља дизајна у верзији 1 овде 297 00:17:01,000 --> 00:17:04,000 при чему је наведена у реад ме да смо толико укључен да играте заједно са 298 00:17:04,000 --> 00:17:07,000 ово више лежерно код куће обавештење да смо ми овде имамо 299 00:17:07,000 --> 00:17:10,000 резиме фајлова у верзији 1. овог сајта, 300 00:17:10,000 --> 00:17:13,000 и изгледа да сам узео на себе да факторишу 301 00:17:13,000 --> 00:17:17,000 неки заједнички код, хеадер.пхп и фоотер.пхп. 302 00:17:17,000 --> 00:17:20,000 Па, хајде да погледамо шта је унутра прва од њих. 303 00:17:20,000 --> 00:17:23,000 Хеадер.пхп изгледа познато, 304 00:17:23,000 --> 00:17:26,000 али приметио одакле се одсече? 305 00:17:26,000 --> 00:17:30,000 Одмах након линије 19, тако да је то све што је било уобичајено 306 00:17:30,000 --> 00:17:33,000 из датотеке индекс.пхп, лецтурес.пхп, 307 00:17:33,000 --> 00:17:36,000 ВЕЕК 1 и веек2.пхп из претходног примера. 308 00:17:36,000 --> 00:17:40,000 Оно што сам урадио било је копирање и рез све што је заједничко за све те фајлове, 309 00:17:40,000 --> 00:17:44,000 стави га у посебној датотеци заглавља, а на сличан начин фоотер.пхп 310 00:17:44,000 --> 00:17:48,000 сам применити исти принцип којим су једине занимљиве линије 311 00:17:48,000 --> 00:17:52,000 у фоотер.пхп су њих двојица, у близини тела и близу ХТМЛ. 312 00:17:52,000 --> 00:17:55,000 >> Али, шта то значи сада је да у новој верзији 313 00:17:55,000 --> 00:17:59,000 од индек.пхп обавештења колико једноставније може добити. 314 00:17:59,000 --> 00:18:02,000 Додуше, мало више криптично гледа, мало мање интуитивно 315 00:18:02,000 --> 00:18:06,000 да прате врха до дна, али Боже мој, све те редундантности је сада нестало. 316 00:18:06,000 --> 00:18:10,000 Ми захтевамо помоћу ПХП функцију буквално зове захтевају до врха, 317 00:18:10,000 --> 00:18:15,000 што је веома подсећа, подсјетимо, у Ц # је укључити механизам. 318 00:18:15,000 --> 00:18:17,000 Ми захтевамо хеадер.пхп на врху. 319 00:18:17,000 --> 00:18:20,000 Ми захтевамо фоотер.пхп на дну, а једина ствар која је другачија 320 00:18:20,000 --> 00:18:25,000 или специјалне о овом фајлу је садржај који је требало да буде јединствена за њега. 321 00:18:25,000 --> 00:18:29,000 Ако сам онда у, рецимо, лецтурес.пхп, исти принцип важи. 322 00:18:29,000 --> 00:18:32,000 Опет, неки коментари до врха, али онда сам захтевају заглавља, захтевају подножје, 323 00:18:32,000 --> 00:18:35,000 а између то је само садржај који је заправо променило. 324 00:18:35,000 --> 00:18:38,000 И ако смо гледали на Недељи 1 и 2 Недеље ћемо видети 325 00:18:38,000 --> 00:18:42,000 да је исти принцип је тамо примењују. 326 00:18:42,000 --> 00:18:44,000 Па, нисмо баш урађено тамо. 327 00:18:44,000 --> 00:18:48,000 >> Хајде да погледамо верзија 2, која има сличну структуру, 328 00:18:48,000 --> 00:18:50,000 али приметио сада сам увео нешто друго. 329 00:18:50,000 --> 00:18:53,000 У линији 10 сам увео хелперс.пхп, 330 00:18:53,000 --> 00:18:55,000 која очигледно садржи помоћне функције. 331 00:18:55,000 --> 00:18:58,000 Помагач функција је углавном релативно кратак функција 332 00:18:58,000 --> 00:19:01,000 да пишете да вам помогне у разним местима, 333 00:19:01,000 --> 00:19:04,000 па да видимо шта је унутар хелперс.пхп. 334 00:19:04,000 --> 00:19:07,000 У овом случају, изгледа да има 2 функције. 335 00:19:07,000 --> 00:19:10,000 Подсетимо од пре неки дан са нашим коцке примеру 336 00:19:10,000 --> 00:19:13,000 можете да дефинишете сопствене функције у ПХП-у, а шта сам сада урадио је да сам сам 337 00:19:13,000 --> 00:19:17,000 дефинисане функције зову донети подножје и пруже заглавље, 338 00:19:17,000 --> 00:19:21,000 од којих прва траје параметар назван податке, 339 00:19:21,000 --> 00:19:25,000 чија вредност је празан низ, како је предложио ту, 340 00:19:25,000 --> 00:19:29,000 и заправо може да пише још више језгровито у најновијој верзији ПХП 341 00:19:29,000 --> 00:19:32,000 рекавши отворену угласту заграду, затворена угласте заграде. 342 00:19:32,000 --> 00:19:35,000 То значи празан низ величине 0, али ипак низа. 343 00:19:35,000 --> 00:19:38,000 >> Ова функција је екстракт мало посебан по томе 344 00:19:38,000 --> 00:19:41,000 оно што ради је то узима као аргумент асоцијативну низ 345 00:19:41,000 --> 00:19:45,000 који има 0 или више кључних вредности парове, а ако имате кључ фоо 346 00:19:45,000 --> 00:19:48,000 и вредност бар екстракта ФУНКЦИЈА 347 00:19:48,000 --> 00:19:51,000 ствара ситуацију у којој се сада, као линије 11, 348 00:19:51,000 --> 00:19:57,000 имате локалну променљиву под називом $ фоо чија је вредност бар. 349 00:19:57,000 --> 00:19:59,000 А ако сте имали више кључева и вредности у низу података, 350 00:19:59,000 --> 00:20:03,000 Слично би се издвојити у локалном оквиру 351 00:20:03,000 --> 00:20:06,000 или име простор, тако да фоотер.пхп и 352 00:20:06,000 --> 00:20:09,000 иста идеја овде, тако да хеадер.пхп 353 00:20:09,000 --> 00:20:12,000 имају приступ тим варијаблама. 354 00:20:12,000 --> 00:20:15,000 У ствари, дозволите ми да отворим опет хеадер.пхп 355 00:20:15,000 --> 00:20:18,000 и скрене пажњу на шта сада изгледа у овој верзији. 356 00:20:18,000 --> 00:20:22,000 >> Уместо тешко кодирање ЦС50 као наслов за сваку једну страну 357 00:20:22,000 --> 00:20:24,000 Приметићете динамику која је сад могуће. 358 00:20:24,000 --> 00:20:29,000 У складу 5 сам одјек наслов променљиву, 359 00:20:29,000 --> 00:20:34,000 али прво сам пролазећи ту титулу променљиву у функцији зове хтмлспециалцхарс. 360 00:20:34,000 --> 00:20:38,000 Глупо име за функцију, док је, али то заиста оно што пише. 361 00:20:38,000 --> 00:20:41,000 То осигурава да било специјалних знакова 362 00:20:41,000 --> 00:20:46,000 у низу који је изгласан у правилно побегао ХТМЛ. 363 00:20:46,000 --> 00:20:49,000 То је заправо начин да се избегне нешто зове Цросс Сите Сцриптинг напад 364 00:20:49,000 --> 00:20:52,000 којим неко може злонамерно или случајно 365 00:20:52,000 --> 00:20:55,000 убризгавају своју ХТМЛ на свој сајт 366 00:20:55,000 --> 00:20:59,000 по лепљење у неком облику, на пример, 367 00:20:59,000 --> 00:21:02,000 нешто што нисте били прилично очекивали, нарочито ЈаваСцрипт код, 368 00:21:02,000 --> 00:21:05,000 као што ћемо говорити о томе у недељу или две је време. 369 00:21:05,000 --> 00:21:08,000 >> Ово је сада хеадер.пхп, то је поглед 370 00:21:08,000 --> 00:21:12,000 у смислу да вам омогућава да естетски преглед садржаја неких скупа података. 371 00:21:12,000 --> 00:21:14,000 Али конкретно, то је шаблон. 372 00:21:14,000 --> 00:21:19,000 То је нека врста матрице сада од онога што желимо да у заглављу сваке странице да изгледа, 373 00:21:19,000 --> 00:21:23,000 али постоји нека динамика у томе желимо наслов који се динамички убаци 374 00:21:23,000 --> 00:21:26,000 заснива на насловној променљиву 375 00:21:26,000 --> 00:21:30,000 који је издвојен, када смо позвали, опет, 376 00:21:30,000 --> 00:21:33,000 рендер заглавље функције. 377 00:21:33,000 --> 00:21:36,000 Сада, ако смо гледали на рендеринг подножје, заправо нема много коришћења тог права данас 378 00:21:36,000 --> 00:21:40,000 јер у фоотер.пхп нема динамизам уопште. 379 00:21:40,000 --> 00:21:43,000 Могло би да буде, али у овом тренутку то је тешко кодирана листа 2 ознаке, 380 00:21:43,000 --> 00:21:46,000 али иста идеја односи, тако да заправо сугерише зашто 381 00:21:46,000 --> 00:21:49,000 смо губили време има рендер заглавље и малтера подножја функцију? 382 00:21:49,000 --> 00:21:52,000 Дозволите ми да уместо иде сада у верзији 3, 383 00:21:52,000 --> 00:21:56,000 ау верзији 3 у помагача сам одлучио да га још више поједноставити. 384 00:21:56,000 --> 00:21:58,000 >> Дозволите ми да имају један рендер функцију. 385 00:21:58,000 --> 00:22:02,000 Дозволите ми да га узме још један аргумент, овај пут под називом шаблон, 386 00:22:02,000 --> 00:22:05,000 која је требало да буде име предлошка, 387 00:22:05,000 --> 00:22:11,000 и онда ћу дрско повезати у облику ланца ПХП да вредност тог варијабле., 388 00:22:11,000 --> 00:22:17,000 а затим, ако она постоји, фоо.пхп бар.пхп или хеадер.пхп и фоотер.пхп, 389 00:22:17,000 --> 00:22:20,000 онда ћу да наставим и издвојите променљивих података 390 00:22:20,000 --> 00:22:23,000 и онда захтевају да путању. 391 00:22:23,000 --> 00:22:29,000 Другим речима, да користе сад ово, ако отвори индек.пхп 392 00:22:29,000 --> 00:22:32,000 приметити да више не зову заглавља малтера. 393 00:22:32,000 --> 00:22:36,000 Ја само зовем донесе, али проћи у цитираном вредности заглавља 394 00:22:36,000 --> 00:22:39,000 да јасно који предложак ја заправо желим да се учита. 395 00:22:39,000 --> 00:22:41,000 >> Онда овде приметити шта радим. 396 00:22:41,000 --> 00:22:44,000 Ја пролазу у динамично кључ за титулу, 397 00:22:44,000 --> 00:22:47,000 вредност ЦС50, и ово, као што смо раније видели, 398 00:22:47,000 --> 00:22:51,000 могла да буде још језгровит у најновијој верзији ПХП 399 00:22:51,000 --> 00:22:54,000 где могу заменити функције низа са угластим заградама, 400 00:22:54,000 --> 00:22:57,000 што ја предлажем је још читљив и сигурно 401 00:22:57,000 --> 00:22:59,000 мало лакше да куцате. 402 00:22:59,000 --> 00:23:02,000 И наравно, са рендеринг подножја позива на дну, 403 00:23:02,000 --> 00:23:05,000 ми не смета пролази у други аргумент уопште не асоцијативну низ, 404 00:23:05,000 --> 00:23:07,000 јер не постоји ништа динамичан унутар тог подножје. 405 00:23:07,000 --> 00:23:10,000 То је само неки блиски ознаке за ХТМЛ. 406 00:23:10,000 --> 00:23:14,000 Добро, ми предузимамо кораке ка стварно чишћење ствари овде, 407 00:23:14,000 --> 00:23:17,000 али дозволите ми да отворим 2 Финал примере. 408 00:23:17,000 --> 00:23:21,000 Ово је један, број 4, обавештење да сам сада направио свесну одлуку 409 00:23:21,000 --> 00:23:26,000 да се побољша на претходни пример, коначно користи неку хијерархију мојим фајловима. 410 00:23:26,000 --> 00:23:29,000 >> Обратите пажњу да у овом резимеу, у то ме читате, ја сам увео 411 00:23:29,000 --> 00:23:32,000 укључује директоријум и директоријум шаблона 412 00:23:32,000 --> 00:23:35,000 чији садржај ће бити ствари које желим да укључе 413 00:23:35,000 --> 00:23:38,000 и предлошци који сам желе да пруже, респективно. 414 00:23:38,000 --> 00:23:42,000 Ово је стварно ми је што аналног и покушава да ствари уредно, 415 00:23:42,000 --> 00:23:45,000 држати заједно сродне фајлове, али крајњи резултат 416 00:23:45,000 --> 00:23:48,000 је да сада имамо нешто тидиер подешавање, али сада морамо да се сетим 417 00:23:48,000 --> 00:23:51,000 у, на пример, индек.пхп 418 00:23:51,000 --> 00:23:55,000 када смо захтевају датотеке хелперс.пхп 419 00:23:55,000 --> 00:24:01,000 сада морамо да то захтевају преко инцлудес / хелперс.пхп 420 00:24:01,000 --> 00:24:06,000 него само кажем хелперс.пхп јер сада је то заправо у под директоријуму. 421 00:24:06,000 --> 00:24:09,000 Сада, као и на страну, што ћете видети у овим примерима и неких других 422 00:24:09,000 --> 00:24:11,000 функције као што захтевају, захтевају једном. 423 00:24:11,000 --> 00:24:15,000 Постоји заправо је функција сама зове укључите, а сви они имају нешто другачије понашање. 424 00:24:15,000 --> 00:24:18,000 Ево ја кажем захтевају једном да супер јасно да желим само оне 425 00:24:18,000 --> 00:24:20,000 помагачи укључен у мом пројекту једном. 426 00:24:20,000 --> 00:24:24,000 Али ако сам опрезан и када сам заправо размишљам кроз мој логике правилно 427 00:24:24,000 --> 00:24:27,000 требало би довољно само да кажем превише захтевати до врха 428 00:24:27,000 --> 00:24:31,000 Докле год ја не случајно захтевају другде тај исти фајл. 429 00:24:31,000 --> 00:24:34,000 У ствари, ово је нешто ефикаснији начин обављања посла затим користећи 430 00:24:34,000 --> 00:24:38,000 захтевају једном, па ћу га исећи доле само да захтевају. 431 00:24:38,000 --> 00:24:40,000 >> Узмимо један корак даље. 432 00:24:40,000 --> 00:24:46,000 Сада Овај последњи пример, верзија 5, има још чистији фолдер хијерархију. 433 00:24:46,000 --> 00:24:50,000 Приметите шта сам овде урадио по мене прочитао у овој последњој верзији 434 00:24:50,000 --> 00:24:54,000 сада имам ХТМЛ директоријум, који сам имао све ово време, 435 00:24:54,000 --> 00:24:58,000 али унутра одатле сада је само индек.пхп, лецтурес.пхп, 436 00:24:58,000 --> 00:25:01,000 веек1.пхп и веек2.пхп. 437 00:25:01,000 --> 00:25:05,000 Обухвата каталог сада живи поред ХТМЛ директоријум, 438 00:25:05,000 --> 00:25:08,000 тако да је на истом нивоу као брата, да тако кажем. 439 00:25:08,000 --> 00:25:10,000 Дакле, да ли шаблони фасцикла. 440 00:25:10,000 --> 00:25:14,000 Кључ ПОНЕТИ овде је сам увео мало више структуру, 441 00:25:14,000 --> 00:25:17,000 али је кључна карактеристика јесте да су само фајлови 442 00:25:17,000 --> 00:25:21,000 који треба да буду доступни веб, јавно адресабилни 443 00:25:21,000 --> 00:25:25,000 са УРЛ на јавном интернету су у мом ХТМЛ директоријуму. 444 00:25:25,000 --> 00:25:28,000 >> У међувремену, други фајлови, хелперс.пхп, фоотер.пхп, 445 00:25:28,000 --> 00:25:32,000 хеадер.пхп, које су вероватно можда и више осетљиви, 446 00:25:32,000 --> 00:25:35,000 Можда помагачи заправо има нека корисничка имена и лозинке или неке интелектуалне 447 00:25:35,000 --> 00:25:39,000 имовина рудника, функционише ја стварно не желим да видим свет, чак и ако случајно. 448 00:25:39,000 --> 00:25:45,000 То је добра пракса да се јавне ХТМЛ директоријум 449 00:25:45,000 --> 00:25:48,000 све датотеке које себе не треба да буде јавно. 450 00:25:48,000 --> 00:25:51,000 Све што треба да урадите у овом случају када се гледа, на пример, 451 00:25:51,000 --> 00:25:55,000 индек.пхп фајл ХТМЛ директоријума 452 00:25:55,000 --> 00:25:58,000 приметити само морамо бити мало опрезнији када захтевају 453 00:25:58,000 --> 00:26:00,000 или захтевати једном овај фајл. 454 00:26:00,000 --> 00:26:03,000 Морам прво да урадите .. да иде у родитељски директоријум, 455 00:26:03,000 --> 00:26:06,000 онда немој / инцлудес / хелперс.пхп 456 00:26:06,000 --> 00:26:12,000 да зароните доле у ​​да се фајл који сам стало. 457 00:26:12,000 --> 00:26:16,000 >> Сва питања онда о МВЦ 458 00:26:16,000 --> 00:26:20,000 или ово релативно једноставно инкарнација истог? 459 00:26:20,000 --> 00:26:23,000 И дозволите ми да јасно смо фокусирани доста о 460 00:26:23,000 --> 00:26:27,000 В овде, ставови и факторинг ван ових шаблона. 461 00:26:27,000 --> 00:26:30,000 Није смо заиста разликује од М Ц још увек. 462 00:26:30,000 --> 00:26:33,000 У ствари, заиста нема М. овде, па чак и наш Ц 463 00:26:33,000 --> 00:26:36,000 контролер, није стварно раде све толико, али ћете добити много више 464 00:26:36,000 --> 00:26:39,000 упознат са оба та 2 слова из МВЦ, 465 00:26:39,000 --> 00:26:43,000 односно, ви ћете добити много више упознати са Ц 466 00:26:43,000 --> 00:26:49,000 у МВЦ за проблем сету 7, тако да нема више да се на хоризонту. 467 00:26:49,000 --> 00:26:51,000 Питања? 468 00:26:51,000 --> 00:26:53,000 Заправо нема никога. 469 00:26:53,000 --> 00:26:57,000 >> Ок, хајде да пређемо на другу тему, а коначна за данас. 470 00:26:57,000 --> 00:27:00,000 То је увођење базе података. 471 00:27:00,000 --> 00:27:03,000 До овог тренутка смо имали неколико начина чувања података. 472 00:27:03,000 --> 00:27:05,000 Употребили смо променљиве. 473 00:27:05,000 --> 00:27:08,000 Назад у нашем Ц фајлу, И / О дискусија смо почели помоћу текстуалних фајлова 474 00:27:08,000 --> 00:27:11,000 и коришћењем датотека као што су иф, а онда смо почели чак и 475 00:27:11,000 --> 00:27:14,000 говорим о ЦСВ поднесе мало, вредности раздвојене зарезима, 476 00:27:14,000 --> 00:27:17,000 па све то нам је омогућило да имамо податке ускладиштене 477 00:27:17,000 --> 00:27:19,000 или не упорно и истрајно. 478 00:27:19,000 --> 00:27:23,000 Али чак и ЦСВс нису баш погодна за тражење 479 00:27:23,000 --> 00:27:25,000 и уметање и брисање. 480 00:27:25,000 --> 00:27:28,000 То је заиста само глупи текст фајл одвојен зарезима 481 00:27:28,000 --> 00:27:30,000 ред по ред по ред по ред, па ако желите да 482 00:27:30,000 --> 00:27:32,000 тражи тај фајл најбоље што можете да урадите је заиста линеарна претрага. 483 00:27:32,000 --> 00:27:34,000 Морате почети на врху датотеке, прочитајте целу ствар, 484 00:27:34,000 --> 00:27:36,000 и тражити неку вредност интереса. 485 00:27:36,000 --> 00:27:39,000 Ако желите да убаците у њу морате да урадите исту ствар, 486 00:27:39,000 --> 00:27:41,000 итератинг преко њега и убацивањем у одређеном месту, 487 00:27:41,000 --> 00:27:45,000 и, у ствари, морате да урадите све сами потрази логике. 488 00:27:45,000 --> 00:27:49,000 >> Ви не можете паметан образац који одговара на ЦСВ датотеку уколико ви сами пишете код. 489 00:27:49,000 --> 00:27:51,000 Ви не можете филтрацију ЦСВ датотеке 490 00:27:51,000 --> 00:27:53,000 осим ако сами напишете код. 491 00:27:53,000 --> 00:27:56,000 Зар не би било лепо ако неко стави у све напоре 492 00:27:56,000 --> 00:27:59,000 да се заиста чини тражење лако и једноставно постављање 493 00:27:59,000 --> 00:28:01,000 и брисање и ажурирање и тако даље? 494 00:28:01,000 --> 00:28:04,000 То је управо оно што је база података. 495 00:28:04,000 --> 00:28:07,000 СКЛ Струцтуред Куери Лангуаге, је још један језик 496 00:28:07,000 --> 00:28:10,000 да ми овде уводи и данас, али ово је такође прилично приступачне, 497 00:28:10,000 --> 00:28:13,000 и шта смо стварно ћемо да урадимо је само ишчупати из ње неких од најупадљивије 498 00:28:13,000 --> 00:28:16,000 карактеристике, тако да се за псет 7, и ако ти нешто веб заснован, 499 00:28:16,000 --> 00:28:19,000 ваш коначни пројекат, имате могућност да се изразе 500 00:28:19,000 --> 00:28:22,000 у смислу података упита. 501 00:28:22,000 --> 00:28:25,000 Имате могућност да сачувате мало или много података 502 00:28:25,000 --> 00:28:28,000 на много структуриран тако да ће на крају дана 503 00:28:28,000 --> 00:28:32,000 би ваш живот лакшим јер са СКЛ можете сами изразе 504 00:28:32,000 --> 00:28:35,000 много прецизније, много више методично у циљу 505 00:28:35,000 --> 00:28:40,000 гет бацк неки подскуп података из већег корпуса података. 506 00:28:40,000 --> 00:28:45,000 >> Можете да мислите базе података, у овом случају, СКЛ базе података, стварно као Екцел 507 00:28:45,000 --> 00:28:48,000 Бројеви или где је табела, 508 00:28:48,000 --> 00:28:50,000 или можда више табеле и прорачуне, наравно, 509 00:28:50,000 --> 00:28:53,000 има редове и колоне, а то је зато што 510 00:28:53,000 --> 00:28:56,000 СКЛ базе података су релационе, релациона у смислу 511 00:28:56,000 --> 00:28:59,000 да складиште податке у смислу ове табеле, 512 00:28:59,000 --> 00:29:01,000 редови и колоне. 513 00:29:01,000 --> 00:29:03,000 Они су већи него извођачки нешто попут табеле, 514 00:29:03,000 --> 00:29:05,000 и табела је требало да се користи од стране човека. 515 00:29:05,000 --> 00:29:08,000 База података је требало да се користи од стране програмера 516 00:29:08,000 --> 00:29:12,000 писања кода против ње, тако инкарнација базе података 517 00:29:12,000 --> 00:29:14,000 ће бити или командна линија. 518 00:29:14,000 --> 00:29:18,000 >> Један од најпопуларнијих релационим базама података тамо је, опет, МиСКЛ, 519 00:29:18,000 --> 00:29:22,000 што је предивно бесплатан, врло високе ефикасни, и то је оно што 520 00:29:22,000 --> 00:29:24,000 Фацебоок користи веома рано и да донекле данас 521 00:29:24,000 --> 00:29:27,000 за складиштење доста својих података, па ћемо видети у једном тренутку 522 00:29:27,000 --> 00:29:30,000 да коришћење релативно једноставне команде 523 00:29:30,000 --> 00:29:33,000 можемо изабрати податке, унос података, ажурирање података, 524 00:29:33,000 --> 00:29:37,000 брисање података и слично, али срећом, постоји још разумљив интерфејс 525 00:29:37,000 --> 00:29:39,000 него само куцате на црно-белој линији овде. 526 00:29:39,000 --> 00:29:43,000 Ми ћемо користити за псет 7 и даље бесплатан алат зове пхпМиАдмин. 527 00:29:43,000 --> 00:29:45,000 Име је случајна. 528 00:29:45,000 --> 00:29:47,000 Алатка се дешава да се реализује у ПХП, 529 00:29:47,000 --> 00:29:49,000 али то је суштински небитно. 530 00:29:49,000 --> 00:29:53,000 Шта је корисно у вези пхпМиАдмин је да је веб-басед утилити. 531 00:29:53,000 --> 00:29:55,000 Смо га претходно инсталиран на апарату за вас, 532 00:29:55,000 --> 00:29:58,000 и са њим можете да креирате табеле у бази података, 533 00:29:58,000 --> 00:30:01,000 можете унети податке, избрише податке, и генерално види 534 00:30:01,000 --> 00:30:04,000 ваши подаци у прилично усер-фриендли окружењу. 535 00:30:04,000 --> 00:30:07,000 Ваши корисници неће користити пхпМиАдмин. 536 00:30:07,000 --> 00:30:09,000 >> То је заиста само административни или програмер је алат 537 00:30:09,000 --> 00:30:12,000 са којима се види и џаку око ваших података и смислити како да га структурирају, 538 00:30:12,000 --> 00:30:15,000 налик Вама лично могу да користе Екцел или бројева, 539 00:30:15,000 --> 00:30:19,000 али то ће бити одличан начин да визуелно шта се дешава испод хаубе 540 00:30:19,000 --> 00:30:22,000 тако да можете да се фокусирате на занимљив решавања проблема и није толико 541 00:30:22,000 --> 00:30:25,000 на тајанственим команди. 542 00:30:25,000 --> 00:30:28,000 Хајде да погледамо пример података који могу бити ускладиштени табуларли 543 00:30:28,000 --> 00:30:30,000 у релационој бази података. 544 00:30:30,000 --> 00:30:32,000 Ево једног примера. 545 00:30:32,000 --> 00:30:35,000 Сада, нажалост, погрешно пхпМиАдмин на страни бацајући начин превише речи 546 00:30:35,000 --> 00:30:38,000 и графика у тебе, али ако сте брусити само на 547 00:30:38,000 --> 00:30:42,000 Колона ИД, корисничко име колоне, а хеш колона, 548 00:30:42,000 --> 00:30:45,000 ово је ефикасно табеле, али се дешава да се фрагмент 549 00:30:45,000 --> 00:30:49,000 стола унутрашњости апарата 550 00:30:49,000 --> 00:30:53,000 помоћу фајл који Вам нудимо у проблем сету 7. 551 00:30:53,000 --> 00:30:57,000 >> Конкретно, ми вам дати фајл који представља 552 00:30:57,000 --> 00:31:01,000 кориснички табели, тако да табела садржи кориснике са 3 колоне, 553 00:31:01,000 --> 00:31:05,000 од којих је један јединствени ИД почевши од 1 и након тога се увећава. 554 00:31:05,000 --> 00:31:08,000 Друга колона је корисничко име, а они од вас који је хакер, 555 00:31:08,000 --> 00:31:12,000 Тхе Хацкер издање псет 2, можда препознати неке од ових корисничких имена најмање. 556 00:31:12,000 --> 00:31:16,000 На десној страни су лозинке, али нису буквални лозинке. 557 00:31:16,000 --> 00:31:19,000 Они су хасхес истог, па испада 558 00:31:19,000 --> 00:31:22,000 да чување лозинки у бази података је стварно лоша идеја. 559 00:31:22,000 --> 00:31:25,000 Смо сви Ви вероватно прочитали у неком тренутку неки сајт 560 00:31:25,000 --> 00:31:28,000 Или неки компаније база буде компромитован, и онда морате да 561 00:31:28,000 --> 00:31:31,000 промените лозинку, потребно је да се повраћај новца на ствари 562 00:31:31,000 --> 00:31:34,000 јер неки лош момак стварно провалио у обзир као резултат. 563 00:31:34,000 --> 00:31:38,000 >> Чување лозинки у јасном тексту некриптовану у бази података 564 00:31:38,000 --> 00:31:41,000 је потпуно глуп, а ипак то је у великој мери забавно 565 00:31:41,000 --> 00:31:44,000 онда да читам о неким веома познатих компанија 566 00:31:44,000 --> 00:31:47,000 понекад у штампи чији су базе података компромитована, 567 00:31:47,000 --> 00:31:50,000 и тај део није смешно, али је чињеница да су базе података садрже некодиране 568 00:31:50,000 --> 00:31:53,000 Лозинке је смешно, јер буквално са једном линијом кода 569 00:31:53,000 --> 00:31:57,000 можете да заштитите од тог претња, и то је оно што смо овде урадили. 570 00:31:57,000 --> 00:32:00,000 Чак и за нашу малу лажну ЦС50 финансија верзије 571 00:32:00,000 --> 00:32:03,000 смо криптовање лозинки само за добру меру, као и чињеница да 572 00:32:03,000 --> 00:32:07,000 свих ових лозинки почети са $ 1 $ је само конвенција. 573 00:32:07,000 --> 00:32:10,000 То само значи да су заштићени или стварно хеширају, 574 00:32:10,000 --> 00:32:13,000 који је као једносмерној шифровање функције 575 00:32:13,000 --> 00:32:17,000 при чему не може да преокрене своје ефекте са нечим што се зове МД5. 576 00:32:17,000 --> 00:32:21,000 >> Чињеница да 50 је након што значи да вредност соли 577 00:32:21,000 --> 00:32:24,000 од 50 је коришћен за уситњавања свих ових лозинки, осим једног. 578 00:32:24,000 --> 00:32:27,000 Рудник је, наравно, као што можете видети тамо, ХА, 579 00:32:27,000 --> 00:32:30,000 је користио другачији соли, тако да они од вас који је добио нешто саплео се 580 00:32:30,000 --> 00:32:33,000 можда у Хацкер 2, да би био резултат наше су користили 581 00:32:33,000 --> 00:32:36,000 другачији хасх од других, јер моја лозинка је заправо иста 582 00:32:36,000 --> 00:32:38,000 као неки други корисник уп тхере. 583 00:32:38,000 --> 00:32:41,000 У ствари, ако сте чекали све ове недеље да сазнам 584 00:32:41,000 --> 00:32:44,000 шта те шифре су овде биле лозинке које су оспоравани сте 585 00:32:44,000 --> 00:32:48,000 да пуца у Хацкер издању проблем сета 2, тако да нико превише лукав. 586 00:32:48,000 --> 00:32:50,000 У ствари, Малан је била иста као и јхарвард, 587 00:32:50,000 --> 00:32:54,000 али ако се вратимо изгледали су другачије. 588 00:32:54,000 --> 00:32:58,000 >> Усредсредите се на јхарвард у Цримсон јер су другачије осолити. 589 00:32:58,000 --> 00:33:01,000 Алгоритам је засметало на начин да су 590 00:33:01,000 --> 00:33:05,000 хасх вредност, шифрована вредност изгледа мало другачије 591 00:33:05,000 --> 00:33:08,000 јер су инпути су мало другачији, али лозинка испод хаубе 592 00:33:08,000 --> 00:33:10,000 је још увек на крају тамно црвен. 593 00:33:10,000 --> 00:33:12,000 Сада, кога је брига за то? 594 00:33:12,000 --> 00:33:15,000 Па, ми смо Вам пружимо узорка корисника, узорак корисничка имена 595 00:33:15,000 --> 00:33:18,000 и хешеве њихових лозинки, тако да заиста имате неке 596 00:33:18,000 --> 00:33:23,000 купци ЦС50 финансија, када сте први пут сићи ​​на земљу са вашим кодом. 597 00:33:23,000 --> 00:33:27,000 Мораћете да спроведе више табела у МиСКЛ, унутар базе података. 598 00:33:27,000 --> 00:33:30,000 Мораћете да створи више табеле, ефикасно, али смо одлучили да вам дам ово 599 00:33:30,000 --> 00:33:33,000 да сте почели, па ћете видети да је проблем скуп спецификација 600 00:33:33,000 --> 00:33:37,000 шетње вас кроз процес увоза ову табелу 601 00:33:37,000 --> 00:33:39,000 и објашњава шта је неке од карактеристика су, 602 00:33:39,000 --> 00:33:41,000 и видећете да вам пружимо шифром 603 00:33:41,000 --> 00:33:44,000 да рукује уситњавања или енкрипцију ових лозинки, 604 00:33:44,000 --> 00:33:49,000 тако да не морате да бринете превише о томе шта МД5 или слично је заправо све о томе. 605 00:33:49,000 --> 00:33:53,000 >> Дакле, СКЛ, Струцтуред Куери Лангуаге. 606 00:33:53,000 --> 00:33:56,000 То је, једноставно, језик ми смо о томе да почнете да користите у псет 7 607 00:33:56,000 --> 00:34:01,000 а можда и шире да тражи податке из неког базе података. 608 00:34:01,000 --> 00:34:06,000 Подаци се, опет, складиште табуларли у овим релационих табела, колона и редова, 609 00:34:06,000 --> 00:34:09,000 али користећи неке релативно једноставну синтаксу као брисање, 610 00:34:09,000 --> 00:34:12,000 убаците, ажурирање и изаберите можемо учинити управо то. 611 00:34:12,000 --> 00:34:15,000 Можемо избрисати из базе података, уметање 612 00:34:15,000 --> 00:34:19,000 ажурирају податке, као и изабрали, односно, преузимање података из базе података. 613 00:34:19,000 --> 00:34:21,000 Како ћемо ићи око радиш ово? 614 00:34:21,000 --> 00:34:23,000 Пусти ме напред у апарату. 615 00:34:23,000 --> 00:34:28,000 Дозволите ми да попните хттп://лоцалхост, 616 00:34:28,000 --> 00:34:30,000 која, опет, локална сама апарат. 617 00:34:30,000 --> 00:34:32,000 То је његова стандардна надимак. 618 00:34:32,000 --> 00:34:35,000 И дозволите ми да одем на / пхпМиАдмин. 619 00:34:35,000 --> 00:34:39,000 То се дешава да се посебна УРЛ који је уређај конфигурисан да разуме 620 00:34:39,000 --> 00:34:42,000 који ме је одмах затражити корисничко име и лозинку. 621 00:34:42,000 --> 00:34:46,000 >> Као и обично, ја ћу да откуцате јхарвард и црвац, 622 00:34:46,000 --> 00:34:48,000 али схвата да је администраторски налог на рачунару. 623 00:34:48,000 --> 00:34:53,000 То је само случајност која такође има јхарвард регистрована за ЦС50 финансија. 624 00:34:53,000 --> 00:34:56,000 Јхарвард, гримизна, унесите ми даје кориснички интерфејс који смо видели 625 00:34:56,000 --> 00:34:59,000 Пре осврт на тренутак, а то је мало неодољив на први поглед, 626 00:34:59,000 --> 00:35:02,000 али будите уверени, што никада нећете морати да кликнете већину линкова у овој алатки. 627 00:35:02,000 --> 00:35:05,000 Завршићеш користећи мали подскуп који су супер помоћи, 628 00:35:05,000 --> 00:35:08,000 први који је база овде. 629 00:35:08,000 --> 00:35:11,000 Ако ја одем до база података, приметићете да сам затражено да креирате базу података. 630 00:35:11,000 --> 00:35:14,000 То је као стварање новог Екцел фајл, ефикасно. 631 00:35:14,000 --> 00:35:18,000 Идем да иде напред и позвати ово предавање, а ја ћу само да игноришу поље тамо, сврставање. 632 00:35:18,000 --> 00:35:20,000 То има везе са заступљеност података у њима, 633 00:35:20,000 --> 00:35:24,000 и ја ћу да кликнете стварају, а сада приметио, као што сам пустио на креирање 634 00:35:24,000 --> 00:35:27,000 на левој страни, где се каже да није базе 635 00:35:27,000 --> 00:35:30,000 Ускоро би требало да видим базу података предавање. 636 00:35:30,000 --> 00:35:32,000 >> Ако сада кликнете на левој страни, предавање базе података, 637 00:35:32,000 --> 00:35:34,000 приметити моје картице промените мало. 638 00:35:34,000 --> 00:35:38,000 Имам структуру, СКЛ, извоз, увоз и неке друге ствари. 639 00:35:38,000 --> 00:35:40,000 Структура је прилично празно. 640 00:35:40,000 --> 00:35:43,000 Нема табеле налазе у бази података, као што овде пише, 641 00:35:43,000 --> 00:35:47,000 па хајде да креирамо табелу, па идемо напред и направите табелу 642 00:35:47,000 --> 00:35:53,000 као студенти, а колико колона желимо? 643 00:35:53,000 --> 00:35:55,000 Нека ово буде једноставна, и хајде да евиденција за сваког студента 644 00:35:55,000 --> 00:35:58,000 ИД број, име и адреса е-поште. 645 00:35:58,000 --> 00:36:02,000 >> Ми ћемо наставити да се једноставно тако, па 3 колоне, иди. 646 00:36:02,000 --> 00:36:05,000 Образац који видите овде је сада мало неуредна и неодољив, 647 00:36:05,000 --> 00:36:08,000 али ми само треба да прође кроз њега ред по ред, па веома брзо дајмо 648 00:36:08,000 --> 00:36:14,000 Прва колона у овој бази назив артикла за јединствени идентификатор. 649 00:36:14,000 --> 00:36:17,000 То ће бити цео број. Ја стварно могу да игноришем дужину и вредности. 650 00:36:17,000 --> 00:36:21,000 Инт ће бити 32 бита без обзира укуцате тамо, тако да оставимо празно. 651 00:36:21,000 --> 00:36:24,000 Иницијална вредност, ја сам могао да га нулл, како је то дефинисано. 652 00:36:24,000 --> 00:36:27,000 Ја ћу да оставим на миру. Хајде да се не брину о подразумеваним вредностима. 653 00:36:27,000 --> 00:36:29,000 Идемо помицати овде да правим, атрибута. 654 00:36:29,000 --> 00:36:31,000 Ово је занимљиво. 655 00:36:31,000 --> 00:36:33,000 Идемо напред и помало произвољно рећи да ИД мора бити неознацен. 656 00:36:33,000 --> 00:36:35,000 Не губимо никакве негативне бројеве. 657 00:36:35,000 --> 00:36:37,000 >> Идемо од 0 до 4 милијарде евра, дати или узети, 658 00:36:37,000 --> 00:36:40,000 па немојмо додиривати било који од ових области још увек тамо, 659 00:36:40,000 --> 00:36:43,000 али онда нека ми укуца име овде доле, 660 00:36:43,000 --> 00:36:46,000 и онда други је е-маил, тако да је цака је е-маил 661 00:36:46,000 --> 00:36:50,000 и име, очигледно не цели бројеви, па хајде да променимо ове на другу област. 662 00:36:50,000 --> 00:36:53,000 Испада ВАРЦХАР, променљива дужина цхар, 663 00:36:53,000 --> 00:36:56,000 је као стринг у СКЛ бази података 664 00:36:56,000 --> 00:36:59,000 али променљиве дужине, а ви заправо имате да кажете унапред 665 00:36:59,000 --> 00:37:02,000 Максимална дужина линије, тако да ћу нешто произвољно 666 00:37:02,000 --> 00:37:05,000 по конвенцији типа 255 карактера. 667 00:37:05,000 --> 00:37:08,000 Потпуно сам могао да кажем 32. Могу да кажем 1.000. 668 00:37:08,000 --> 00:37:11,000 Какав треба да одлучи за себе на вас на демографију шта је 669 00:37:11,000 --> 00:37:14,000 Тхе Лонгест ученика Име и иде са тим бројем, или мало веће, 670 00:37:14,000 --> 00:37:17,000 али оно што је лепо о варцхар је то неће губити 671 00:37:17,000 --> 00:37:19,000 255 бајтова на име сваког студента. 672 00:37:19,000 --> 00:37:23,000 Ако је Давид то неће да користите читав 255 бајтова, 673 00:37:23,000 --> 00:37:26,000 али то је горња граница, тако да ћу ићи са 255 само по обичају, 674 00:37:26,000 --> 00:37:30,000 али можемо расправљати да је то нека нижа вредност, као и за е-маил адресу 675 00:37:30,000 --> 00:37:34,000 само да буде доследна 255, али опет, могли бисмо да имамо исти дебату. 676 00:37:34,000 --> 00:37:36,000 Али ја ћу да урадим једну другу ствар овде на десној страни. 677 00:37:36,000 --> 00:37:40,000 >> Шта је моћна о бази података која може да уради много тешких тегова 678 00:37:40,000 --> 00:37:42,000 или комплексни посао за вас. 679 00:37:42,000 --> 00:37:46,000 Конкретно, ја стварно не занима шта мој студентски ИД бројеви. 680 00:37:46,000 --> 00:37:49,000 То је само требало да буде јединствен идентификатор у бази података 681 00:37:49,000 --> 00:37:52,000 па ја имам 32-битну сажето представљање тог студента 682 00:37:52,000 --> 00:37:55,000 тако да ја имам неки начин јединствено њихово идентификовање 683 00:37:55,000 --> 00:37:58,000 да не би било 2 Давидс, на пример, у класи. 684 00:37:58,000 --> 00:38:01,000 У ствари, ја ћу да проверим ту АИ пољу, ауто прираст, 685 00:38:01,000 --> 00:38:04,000 тако да база података, МиСКЛ, схвати 686 00:38:04,000 --> 00:38:08,000 Шта Сваки Новоубачена ученика ИД ће бити. 687 00:38:08,000 --> 00:38:11,000 Ја чак и не морају да брину о томе да се у мом коду, 688 00:38:11,000 --> 00:38:13,000 и ја ћу изабрати нешто испод индекса менију. 689 00:38:13,000 --> 00:38:17,000 Индекс спустите овде је основно, јединствен, 690 00:38:17,000 --> 00:38:19,000 индекс и цео текст. 691 00:38:19,000 --> 00:38:21,000 Ви можда можете погодити шта пар ових ствари су, 692 00:38:21,000 --> 00:38:24,000 али испоставило се у релационим базама података 693 00:38:24,000 --> 00:38:28,000 ти програмер или администратор база података доћи до превентивно 694 00:38:28,000 --> 00:38:32,000 дају савете на бази тога шта поља 695 00:38:32,000 --> 00:38:34,000 у табели су мало посебан. 696 00:38:34,000 --> 00:38:37,000 >> На пример, у овом случају ја ћу да кажем да је ИД 697 00:38:37,000 --> 00:38:42,000 ће бити примарни индекс, иначе познат као примарни кључ. 698 00:38:42,000 --> 00:38:44,000 Шта то значи по дефиницији је убудуће да ИД 699 00:38:44,000 --> 00:38:48,000 ће идентификује ученике у овој табели. 700 00:38:48,000 --> 00:38:53,000 Не студент ће имати исти ИД јер сам намеће ово ограничење или овај индекс. 701 00:38:53,000 --> 00:38:55,000 Штавише, оно ће то урадити за мене је то ће рећи 702 00:38:55,000 --> 00:38:58,000 МиСКЛ да ИД је посебан. 703 00:38:58,000 --> 00:39:03,000 Ја посебно стало ИД, тако да идемо напред и магију своје фенси структура података је, 704 00:39:03,000 --> 00:39:05,000 изградити неку врсту дрвета. 705 00:39:05,000 --> 00:39:08,000 Обично је то нешто зове Б-стабло, које нисмо гледају недеља пре, 706 00:39:08,000 --> 00:39:11,000 али то је још једна таква структура података слично у духу са бинарним стаблима 707 00:39:11,000 --> 00:39:15,000 и покушава да смо гледали, али то ће рећи 708 00:39:15,000 --> 00:39:18,000 бази података ово поље је толико важно да сам вероватно 709 00:39:18,000 --> 00:39:22,000 Желим да будем у стању да претражују на њега, иди напред и градити неку машту 710 00:39:22,000 --> 00:39:25,000 Структура података у меморији да убрза претраге, тако да идеално 711 00:39:25,000 --> 00:39:28,000 они су константно време, или барем што ближе да што је могуће 712 00:39:28,000 --> 00:39:32,000 тако да не пренесу у линеарно претраживање, која неће бити 713 00:39:32,000 --> 00:39:34,000 Свевишњи обављање приступ. 714 00:39:34,000 --> 00:39:37,000 Насупрот томе, е-маил адреса је могла бити примарни кључ. 715 00:39:37,000 --> 00:39:41,000 >> У теорији, емаил адреса свачији је јединствен, уколико сте поделили неке рачун, 716 00:39:41,000 --> 00:39:45,000 али генерално није добро користити нешто као стринг 717 00:39:45,000 --> 00:39:49,000 као примарни кључ јер ако је његов циљ у животу је да идентификује 718 00:39:49,000 --> 00:39:55,000 редова у табели не постоји разлог да се максимално користе 255 бајтова 719 00:39:55,000 --> 00:39:58,000 да идентификује некога ако можете извући са само 4 бајта 720 00:39:58,000 --> 00:40:00,000 или 32-битни инт. 721 00:40:00,000 --> 00:40:03,000 У принципу, примарни кључ треба да буде кратак и језгровит 722 00:40:03,000 --> 00:40:07,000 и идеално је нешто као цео број или великом инт, која се дешава да се 64 бита. 723 00:40:07,000 --> 00:40:11,000 Али е-маил адреса треба да буде јединствена, а једна од одлика базе података сувише 724 00:40:11,000 --> 00:40:14,000 је да се спроведе јединственост за мене. 725 00:40:14,000 --> 00:40:18,000 Избором јединствена овде, поред поште, иако се пошаљи 726 00:40:18,000 --> 00:40:21,000 помера са екрана, ја говорим са базом 727 00:40:21,000 --> 00:40:23,000 Не веруј ми. 728 00:40:23,000 --> 00:40:26,000 Не дозволите да убаците у базу података 729 00:40:26,000 --> 00:40:29,000 Исти емаил адреса двапут, чак и ако сам идиот и ја не 730 00:40:29,000 --> 00:40:32,000 веома добро са мојим оклијевања и другде ИФС и стварне ПХП кода 731 00:40:32,000 --> 00:40:37,000 и ја случајно да корисник региструје са постојећим емаил адресу 732 00:40:37,000 --> 00:40:40,000 база је још један ниво одбране за исправност 733 00:40:40,000 --> 00:40:44,000 како би се осигурало да је дупликат емаил адреса не завршавају у табели. 734 00:40:44,000 --> 00:40:49,000 >> Сада, са друге стране, за име вероватно не желите да се то јединствена 735 00:40:49,000 --> 00:40:51,000 јер онда никада не може бити 2 или 2 Давидс Мике Смитхс, на пример, 736 00:40:51,000 --> 00:40:55,000 у бази података, тако да је један само ћемо сами отићи. 737 00:40:55,000 --> 00:40:58,000 Идем да иде напред и кликните на саве у доњем десном углу, 738 00:40:58,000 --> 00:41:02,000 и све изгледа добро, али приметите овде 739 00:41:02,000 --> 00:41:04,000 ово је део који за сада нећемо трошити превише времена на 740 00:41:04,000 --> 00:41:07,000 јер је синтакса је мало комплексна, и не морамо креирати табеле 741 00:41:07,000 --> 00:41:10,000 све то често, али СКЛ сама језик, 742 00:41:10,000 --> 00:41:13,000 синтакса за које је овде да сам истакнута. 743 00:41:13,000 --> 00:41:18,000 Оно што заиста јесте пхпМиАдмин ствара на вебу ГУИ за вас 744 00:41:18,000 --> 00:41:23,000 са којима можете да уштедите време и не морају да се ручно откуцати 745 00:41:23,000 --> 00:41:26,000 прилично дуго СКЛ упит тако. 746 00:41:26,000 --> 00:41:29,000 >> Другим речима, ако сте желели да ручно креирате ову табелу, 747 00:41:29,000 --> 00:41:32,000 било на тој црној и белој линији, или чак у пхпМиАдмин 748 00:41:32,000 --> 00:41:35,000 користећи ову другу картицу, ова картица СКЛ где можете унети било СКЛ упитима 749 00:41:35,000 --> 00:41:38,000 хоћеш, искрено, то би ми узети минут 750 00:41:38,000 --> 00:41:41,000 да заиста запамтите целу синтаксу, па чак и тада вероватно не бих имао 751 00:41:41,000 --> 00:41:45,000 направио неке грешке у куцању, тако да је ово средство је корисно за ствари као што су то, и то је такође поучно. 752 00:41:45,000 --> 00:41:49,000 Можете да почнете да закључимо шта је синтакса 753 00:41:49,000 --> 00:41:52,000 само по лепом бојом кодирање које пхпМиАдмин је додао 754 00:41:52,000 --> 00:41:54,000 за наше визуелне удобности. 755 00:41:54,000 --> 00:41:56,000 Али сада хајде да урадимо то уместо ње. 756 00:41:56,000 --> 00:42:00,000 Пусти ме да идем на картици Уметање на врху, и дозволите ми да иде напред и ставите на пример 757 00:42:00,000 --> 00:42:04,000 ИД рецимо, заправо не занима. 758 00:42:04,000 --> 00:42:07,000 То ће ауто прираста. Ја ћу пустити договор базе са овим. 759 00:42:07,000 --> 00:42:11,000 Али ја ћу бити Дејвид, и мој е-маил треба да буде малан@харвард.еду. 760 00:42:11,000 --> 00:42:16,000 >> Идемо напред и овде ставити у Мајк Смит другу. 761 00:42:16,000 --> 00:42:18,000 Ја ћу себи дати презиме као и, 762 00:42:18,000 --> 00:42:22,000 и ми ћемо да га се смитх@екампле.цом, 763 00:42:22,000 --> 00:42:24,000 и онда, где да идем даље? 764 00:42:24,000 --> 00:42:27,000 Па, изгледа као да иду је дугме да кликнете, и воила. 765 00:42:27,000 --> 00:42:30,000 Обратите пажњу на врх 2 реда уметнуте. 766 00:42:30,000 --> 00:42:32,000 Ово је стварна СКЛ упита. 767 00:42:32,000 --> 00:42:36,000 То је алат пхпМиАдмин погубљен због мене, 768 00:42:36,000 --> 00:42:40,000 али је крајњи резултат, обавештење, ако сад идем у бровсе картици 769 00:42:40,000 --> 00:42:43,000 је да се види 2 редове у овој табели, веома подсећа естетски 770 00:42:43,000 --> 00:42:46,000 стола смо раније видели нашим корисницима из псет 7, 771 00:42:46,000 --> 00:42:51,000 од којих је Давид Малан, од којих је сада Мајк Смит. 772 00:42:51,000 --> 00:42:54,000 Али само да буде јасно, не треба да користите пхпМиАдмин, 773 00:42:54,000 --> 00:42:56,000 и заиста, ти ћеш ускоро бити писање кода за псет 7 774 00:42:56,000 --> 00:43:01,000 која аутоматизује процес додавања редова, брисање редова, ажурирање редове и слично, 775 00:43:01,000 --> 00:43:04,000 па пусти ме већ идите на СКЛ таб овде 776 00:43:04,000 --> 00:43:14,000 и укуцајте СЕЛЕЦТ * ФРОМ студенти којима 777 00:43:14,000 --> 00:43:18,000 емаил = "малан@харвард.еду". 778 00:43:18,000 --> 00:43:21,000 >> Другим речима, претпостављам да сада имате 779 00:43:21,000 --> 00:43:26,000 неки ХТМЛ образац, а корисник укуцава у њиховом е-маил адресу, између осталих области, 780 00:43:26,000 --> 00:43:29,000 а циљ је сада у ПХП на задњој крају кода 781 00:43:29,000 --> 00:43:31,000 да стварно изгледају до друге да корисничке податке. 782 00:43:31,000 --> 00:43:34,000 Које је ваше пуно име? Који је ваш број ИД? 783 00:43:34,000 --> 00:43:37,000 Могли написати СКЛ упит овако, изаберите * од студената 784 00:43:37,000 --> 00:43:40,000 где је е = "малан@харвард.еду". 785 00:43:40,000 --> 00:43:46,000 И ако сам затим кликните одем, приметићете да сам, и заиста радим, да се вратим само један ред. 786 00:43:46,000 --> 00:43:50,000 Мајк је изостављен из овог скупа резултата, као колекције редова 787 00:43:50,000 --> 00:43:53,000 се обично назива, јер он нема исту адресу као и ја. 788 00:43:53,000 --> 00:43:57,000 >> Сада, опет, овде псет 7 ћете користити пхпМиАдмин као административна алатка 789 00:43:57,000 --> 00:44:00,000 и педагошки алат за учење на свој начин 790 00:44:00,000 --> 00:44:03,000 око света СКЛ, али на крају дана 791 00:44:03,000 --> 00:44:08,000 ћеш писати ове упите унутар стварног ПХП кода, 792 00:44:08,000 --> 00:44:11,000 па Останите у објашњења Замила у посебно 793 00:44:11,000 --> 00:44:14,000 где ћете добити турнеју дистрибутивне кода за овај проблем сет 794 00:44:14,000 --> 00:44:18,000 где смо вам дали не само естетика за пријављивање 795 00:44:18,000 --> 00:44:21,000 а лепо секси лого који каже ЦС50 финансија, али смо вам такође дали 796 00:44:21,000 --> 00:44:24,000 гомила функција које ће учинити ваш живот мало лакше. 797 00:44:24,000 --> 00:44:27,000 Такође смо писмени део псет за тебе, 798 00:44:27,000 --> 00:44:32,000 за пријављивање део њега посебно, да вам дају осећај репрезентативном дизајна 799 00:44:32,000 --> 00:44:36,000 који заправо користи контролер, на пример, индек.пхп, 800 00:44:36,000 --> 00:44:40,000 логин.пхп и слично, а онда ћете видети псет има шаблона директоријум 801 00:44:40,000 --> 00:44:43,000 која има све своје погледа, све естетике. 802 00:44:43,000 --> 00:44:46,000 И тако је укупан ток у псет 7 ће бити да 803 00:44:46,000 --> 00:44:49,000 ваши корисници посете контролер преко УРЛ-а у прегледачу. 804 00:44:49,000 --> 00:44:53,000 Тај контролер садржи ПХП код који си написао, а унутар вашег ПХП кода 805 00:44:53,000 --> 00:44:57,000 Можда неки линије СКЛ угнездио између двоструких наводника 806 00:44:57,000 --> 00:45:00,000 и прослеђује функцији смо писали зове упит 807 00:45:00,000 --> 00:45:03,000 који ће вам помоћи да разговарате са базом података без коришћења нешто слично 808 00:45:03,000 --> 00:45:05,000 административна алатка као пхпМиАдмин. 809 00:45:05,000 --> 00:45:08,000 >> Моћи ћете да напишете СКЛ изјаве у ПХП коду 810 00:45:08,000 --> 00:45:11,000 и добити назад ПХП низ резултатом сету, 811 00:45:11,000 --> 00:45:14,000 редови који заправо одговарају тај упит. 812 00:45:14,000 --> 00:45:18,000 И слично ћете бити у стању да уради убацује или брише 813 00:45:18,000 --> 00:45:22,000 или исправке или слично, синтакса за који је прилично сличан, 814 00:45:22,000 --> 00:45:25,000 па ћете видети из неких онлајн референце, од дистрибуције кода 815 00:45:25,000 --> 00:45:29,000 и од псет се спакују тачно како да се о то да радим. 816 00:45:29,000 --> 00:45:33,000 Схватите крају смо стварно само загребали површину СКЛ 817 00:45:33,000 --> 00:45:36,000 и МиСКЛ, али снага га је стварно да вас ослобађа 818 00:45:36,000 --> 00:45:40,000 да се фокусира на проблеме које желите да решите, употреба случајеви желите да спроведе 819 00:45:40,000 --> 00:45:43,000 без потребе да бринете толико много, бар на почетку, 820 00:45:43,000 --> 00:45:47,000 о томе где и како да сачувате и претраживање базе података, 821 00:45:47,000 --> 00:45:50,000 и ово је буквално где Фејсбук сама добила почетак 822 00:45:50,000 --> 00:45:53,000 коришћењем МиСКЛ, а затим користи више МиСКЛ сервере а затим више МиСКЛ сервере 823 00:45:53,000 --> 00:45:57,000 пре него што дуго док су они тада имали заиста почнете да размишљате о томе како да је тешко 824 00:45:57,000 --> 00:46:00,000 складиште податке, како да сачувате ствари још ефикасније, 825 00:46:00,000 --> 00:46:04,000 па иако ћемо узети здраво за готово чињеницу да индексира и јединствене ограничења 826 00:46:04,000 --> 00:46:08,000 и тако даље само радим тамо веома занимљив разговор 827 00:46:08,000 --> 00:46:12,000 да могу на крају да доведе до тако схватити да смо само ми загребали површину 828 00:46:12,000 --> 00:46:17,000 од чега би евентуално могло да ви или ваши пројекти постану веома мало великих података. 829 00:46:17,000 --> 00:46:22,000 >> Уз то је рекао, хајде да завршимо овде, а ми ћемо вас видети следеће недеље. 830 00:46:28,000 --> 00:46:30,000 [ЦС50.ТВ]