1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Тыдзень 8, працяг] 2 00:00:02,000 --> 00:00:04,000 [David J. малая] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Гэта CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> Гэта CS50, так гэта да канца тыдня 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 Але сёння мы працягваем наш размова аб PHP 8 00:00:22,000 --> 00:00:25,000 і аб вэб-праграмаванні ў цэлым, і мы таксама ўвесці паняцце 9 00:00:25,000 --> 00:00:29,000 базы дадзеных, у прыватнасці, адна называецца MySQL, якая з'яўляецца даволі папулярным у гэтыя дні, 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 Нагадаем, што мы шукалі ў некалькіх Frosh прыклады імгненныя паведамленні, 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 , Фактычна не маючы да паходу больш праз двор да Wigglesworth 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 некалькі тэхналогій, так што, нам трэба HTML, мова гіпертэкставай разметкі, 19 00:01:03,000 --> 00:01:07,000 што зноў жа гэта мова разметкі, з якой вы робіце вэб-старонак структурна. 20 00:01:07,000 --> 00:01:10,000 >> Выкарыстоўваючы трохі CSS у гэтыя дні, каскадныя табліцы стыляў, 21 00:01:10,000 --> 00:01:16,000 якім мы карыстаемся стылізацыі вэб-старонкі, выкарыстоўваючы некалькі іншы сінтаксіс, 22 00:01:16,000 --> 00:01:19,000 у той час як HTML было ўсё, пра структуру іх. 23 00:01:19,000 --> 00:01:21,000 Нам таксама неабходна ўвесці мовы вэб-праграмавання. 24 00:01:21,000 --> 00:01:25,000 У гэтым выпадку, мы будзем выкарыстоўваць PHP, і PHP будзе дазволіць нам 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 Адзін з іх, мы павінны былі froshims3.php, 29 00:01:38,000 --> 00:01:42,000 і гэта было ў значнай ступені разметкі HTML з формай ўнутры яго, 30 00:01:42,000 --> 00:01:45,000 ледзь-ледзь CSS тут, у атрыбуты стылю 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 І праз гэтую форму, мы прадставілі ў файл, які быў па-відаць называлі register3.php, 35 00:02:01,000 --> 00:02:04,000 што само па сабе выглядала крыху нешта накшталт гэтага. 36 00:02:04,000 --> 00:02:08,000 Цяпер, вялікая частка кода ў register3.php, нагадаем, было ўсё аб электроннай пошце. 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 Тады мы называлі некаторыя функцыі з выкарыстаннем PHP трохі новага сінтаксісу, 40 00:02:18,000 --> 00:02:20,000 нават калі ён запазычаны з C. 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 якія ўяўляюць сабой асаблівы тып будынка, як мы бачылі ў C. 45 00:02:34,000 --> 00:02:37,000 Але цяпер, проста прыняць на веру, што гэта правільны сінтаксіс для выкарыстання 46 00:02:37,000 --> 00:02:41,000 Пры выкарыстанні бібліятэкі як гэтая бібліятэка PHPMailer. 47 00:02:41,000 --> 00:02:44,000 І тады да канца гэтага файла мы дынамічна генераваных электроннай пошце 48 00:02:44,000 --> 00:02:47,000 , Што паслалі на мой кошт jharvard@cs50.net 49 00:02:47,000 --> 00:02:50,000 ад майго jharvard@cs50.net рахунку, 50 00:02:50,000 --> 00:02:54,000 і мы праінфармавалі карыстальнікаў адпаведна, што яны былі зарэгістраваныя для гэтага віду спорту. 51 00:02:54,000 --> 00:02:57,000 Гэта ў значнай ступені тое, што сайт Frosh чаты зрабіў шмат гадоў назад 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 на нізкім узроўні ў мове, як C, але на значна больш высокім узроўні 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 паведамленні электроннай пошты дынамічна з jharvard@cs50.net, якая сапраўды рахунку 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 HTTP, гэты пратакол перадачы гіпертэксту, 67 00:03:42,000 --> 00:03:45,000 на самай справе без пратаколу, і што гэта азначае, што 68 00:03:45,000 --> 00:03:48,000 калі вы цягнеце нешта накшталт Google.com а затым націсніце ўвод 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 , Што HTTP завяршыў нейкі злучэнне з серверам, вось і ўсё. 73 00:04:02,000 --> 00:04:05,000 HTTP з'яўляецца асобай без грамадзянства, у тым сэнсе, што яно не падтрымліваюць 74 00:04:05,000 --> 00:04:08,000 пастаяннае падлучэнне да сервера ў тым жа Skype разе не 75 00:04:08,000 --> 00:04:11,000 або Gchat робіць, таму што з HTTP 76 00:04:11,000 --> 00:04:15,000 Мяркуецца, што, як толькі вы ўзялі вэб-старонку, вось і ўсё. 77 00:04:15,000 --> 00:04:18,000 >> Зараз, на самай справе ў гэтыя дні на такіх сайтах, як Facebook і Google Maps 78 00:04:18,000 --> 00:04:21,000 і Twitter, і як там шмат большы дынамізм якой 79 00:04:21,000 --> 00:04:25,000 нават пасля гэтага значка спыняе кручэнне, можа на самай справе атрымаць больш абнаўленняў 80 00:04:25,000 --> 00:04:29,000 ад сервера, больш твітаў, больш абнаўленняў статусаў на Facebook і да таго падобнае. 81 00:04:29,000 --> 00:04:33,000 Але нават гэта, выкарыстоўваючы тэхніку, што мы будзем гаварыць у тыдзень ці два 82 00:04:33,000 --> 00:04:36,000 вядомы як Ajax з выкарыстаннем мовы JavaScript называецца, 83 00:04:36,000 --> 00:04:38,000 але ў канцы дня, HTTP-ранейшаму без грамадзянства. 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 PHP робіць дазволіць вам сродак гэтым 87 00:04:47,000 --> 00:04:52,000 паколькі, як мы бачылі ў апошні раз, PHP мае шэраг суперглобальных, 88 00:04:52,000 --> 00:04:55,000 і суперглобальная, зноў жа, спецыяльныя глабальныя зменныя 89 00:04:55,000 --> 00:04:59,000 які перадаў вам вэб-серверам і PHP сябе. 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 Усярэдзіне $ _SERVER некаторыя спецыяльныя зменныя, звязаныя з самім серверам. 95 00:05:17,000 --> 00:05:22,000 Што такое IP-адрас, што пратакол, HTTP ці HTTPS вы выкарыстоўваеце, 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 Там у $ _COOKIE, які з'яўляецца, дзе гэтыя рэчы называюцца куки захоўваюцца. 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 Прама цяпер складае $ _SESSION. 109 00:06:02,000 --> 00:06:07,000 >> Гэта суперглобальная, які, як і іншыя, перадаюць вам аўтаматычна PHP 110 00:06:07,000 --> 00:06:10,000 калі вы пішаце PHP-сайтаў на аснове 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 PHP будзе гарантаваць, што ўсё, што вы пакладзеце ў гэтай сесіі суперглобальная 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 У counter.php сярод часткі сённяшняга код 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 session_start, і што на самой справе робіць менавіта тое, што ён кажа. 131 00:07:18,000 --> 00:07:20,000 Яна пачынаецца сесій. 132 00:07:20,000 --> 00:07:25,000 Гэта дазваляе выкарыстоўваць гэта вялікая суперглобальная $ _SESSION, і гэта так проста. 133 00:07:25,000 --> 00:07:30,000 Цяпер, калі мы зыходзім, каб паглядзець на лінію 16, давайце паспрабуем высветліць, што гэтая вэб-старонка будзе рабіць. 134 00:07:30,000 --> 00:07:35,000 Калі (Исеть ($ _SESSION ["лічыльнік"]), а затым пайсці далей 135 00:07:35,000 --> 00:07:39,000 і захоўваць ў зменнай лічыльніка, малыя лічыльніка, 136 00:07:39,000 --> 00:07:42,000 $ _SESSION ["Лічыльнік"]. 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 Аказваецца, гэта ў значнай ступені толькі HTML. 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 $ Лічыльнікі ў целе вашага HTML, таму што, вядома, 153 00:08:39,000 --> 00:08:43,000 калі гэта толькі там, сярод вашых PHP HTML будзе лічыць, што гэта проста HTML. 154 00:08:43,000 --> 00:08:48,000 Вы літаральна хочуць $ лічыльнікаў, якія будуць надрукаваны на экране. 155 00:08:48,000 --> 00:08:51,000 >> Але замест гэтага падзення ў рэжыме PHP 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 Друк ($ лічыльніка) або нават нешта накшталт Е (% S, лічыльнік), 161 00:09:12,000 --> 00:09:14,000 або нават, як вы, магчыма, бачылі ў Інтэрнэце або ў падручніках, 162 00:09:14,000 --> 00:09:17,000 ёсць функцыя ў PHP называецца рэха 163 00:09:17,000 --> 00:09:20,000 якая робіць тое ж самае, і ўсё гэта толькі больш намотваецца спосабамі 164 00:09:20,000 --> 00:09:25,000 сказаць 00:09:28,000 У гэтым выпадку вам не трэба ставіць 166 00:09:28,000 --> 00:09:30,000 Слова PHP пасля знака пытання. 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 Дазвольце мне перайсці ў наш файл counter.php, 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 і звярніце ўвагу на поўнае адсутнасць якіх-небудзь PHP, і гэта таму, што 180 00:10:19,000 --> 00:10:23,000 PHP код ацэньваюцца або інтэрпрэтаваць боку сервера, 181 00:10:23,000 --> 00:10:27,000 і так, што азначае, што выхад з сцэнарыяў PHP з'яўляецца тое, што ў канчатковым выніку накіроўваецца ў браўзэр, 182 00:10:27,000 --> 00:10:31,000 які ў дадзеным выпадку з'яўляецца некаторых сыравіны HTML і некаторых сырой тэкст. 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 хвілін, нават гадзін, некаторыя значэння такім чынам, што робіць HTTP 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 з удзелам печыва якая дазваляе PHP, каб даць мне гэтую ілюзію 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 Гэта ваш самы апошні пытанне, пастаўлены ў CS50. 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 З кантэксту C, вядома, у кантэксце PHP 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 >> Мэта з PSET 7 з'яўляецца ажыццяўленне CS50 фінансаў, 203 00:11:33,000 --> 00:11:37,000 які з'яўляецца вашай ўласнай версіі Yahoo Finance і Google Finance 204 00:11:37,000 --> 00:11:40,000 ці нават Etrade.com, у якім вы маеце магчымасць 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 для запытаў Yahoo Finance, якая цудоўна робіць даступным бясплатнае дадзеных 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 Дадзеныя на самай справе вы бачыце ў дадзеным PSET будзе 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 чым counter.php, гэта складаней, чым любы з Frosh прыклады чаты да гэтага часу, 227 00:12:59,000 --> 00:13:02,000 і давайце паспрабуем ўвесці некалькі парадыгмаў тут, якія дазваляюць нам 228 00:13:02,000 --> 00:13:06,000 як для PSET 7 і, можа быць, для вашага праекта, калі вы робіце нешта вэб-аснове 229 00:13:06,000 --> 00:13:11,000 каб захаваць ваш код добра арганізаваныя, каб трымаць сябе ў разумным розуме, 230 00:13:11,000 --> 00:13:15,000 і зрабіць крок у бок супрацоўніцтва, будзь то ў канчатковым праекце CS50 ў 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 вядомы як MVC, Model View Controller, 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 адбываецца не сярод вашых HTML 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 , Што робіць размаўляў з базамі дадзеных, які размаўляе з Yahoo Finance і да т.п., 247 00:14:05,000 --> 00:14:08,000 а там V у MVC, віды, 248 00:14:08,000 --> 00:14:11,000 Усе рэчы, якія звязаны з эстэтыкай, файлы, якія на самай справе ўтрымліваюць 249 00:14:11,000 --> 00:14:14,000 вашы HTML, CSS, можа быць, ваша і да таго падобнае. 250 00:14:14,000 --> 00:14:17,000 Ідэя тут у тым, як гэтая карціна мяркуе, што кантролер 251 00:14:17,000 --> 00:14:21,000 гэта файл, як мы хутка ўбачым, і як вы будзеце асабліва бачыць у PSET 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 HTML на аснове іх выкананнем або нават нешта накшталт PDF. 263 00:14:56,000 --> 00:14:59,000 >> Што прыемна аб MVC з'яўляецца тое, што вы можаце мець розныя погляды 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 Дазвольце мне ісці наперад і адкрываць у нашым каталогу MVC сёння 269 00:15:16,000 --> 00:15:21,000 файл з імем index.php ў каталогу: 0. 270 00:15:21,000 --> 00:15:26,000 Звярніце ўвагу, гэта супер просты і вельмі захапленне сайта 271 00:15:26,000 --> 00:15:29,000 гэта свайго роду версія 0 з хатняй старонкі для CS50, 272 00:15:29,000 --> 00:15:32,000 і заўважыў, як у нас ёсць спасылка на лекцыі, у нас ёсць спасылка на навучальны план, 273 00:15:32,000 --> 00:15:35,000 і калі я перайдзіце па спасылцы на сайце не лекцыі аб тым, што URL 274 00:15:35,000 --> 00:15:39,000 наверсе будзе мяняцца ў lectures.php. 275 00:15:39,000 --> 00:15:44,000 Калі б я тады прытрымлівайцеся па спасылцы тыдзень 1 Звярніце ўвагу, што URL змяненняў у week1.php. 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 І сапраўды, калі паглядзець на index.php гэта даволі проста. 279 00:15:53,000 --> 00:15:57,000 На самай справе, хоць я і назваў гэтую файле PHP няма ніякіх фактычных праграмны код. 280 00:15:57,000 --> 00:16:01,000 Там у каментары, што я напісаў тут, у PHP проста, так што карыстачу не да канца бачачы яго. 281 00:16:01,000 --> 00:16:05,000 Вядома, як і раней, нічога, што паміж PHP тэгі 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 Калі я адкрываю аналагічным lectures.php гэта таксама проста жорстка кадаваных файлаў. 286 00:16:20,000 --> 00:16:23,000 Гэта адбываецца называць нешта. PHP, 287 00:16:23,000 --> 00:16:27,000 але гэта сапраўды проста. HTML, і week1.php, week2.php 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 Ці тэгі, я, тым не менш ёсць док тыпу, HTML, галавы, 292 00:16:41,000 --> 00:16:44,000 назвы, блізкія цела, блізкія HTML і многае іншае 293 00:16:44,000 --> 00:16:47,000 У кожны файл, які азначае, што калі я калі-небудзь хочаце рэструктурызацыю 294 00:16:47,000 --> 00:16:50,000 гэтая вэб-старонка або restylize гэта я павінен пайсці і змяніць 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 агульны код, header.php і footer.php. 302 00:17:17,000 --> 00:17:20,000 Ну, давайце зірнем на тое, што ўнутры першай з іх. 303 00:17:20,000 --> 00:17:23,000 Header.php выглядае знаёма, 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 з файла index.php, lectures.php, 307 00:17:33,000 --> 00:17:36,000 Неделя1 і week2.php з папярэдняга прыкладу. 308 00:17:36,000 --> 00:17:40,000 Што я зрабіў копію і выразаць усё, што было агульным для ўсіх гэтых файлаў, 309 00:17:40,000 --> 00:17:44,000 пакласці яго ў асобны файл загалоўка, а гэтак жа ў footer.php 310 00:17:44,000 --> 00:17:48,000 я ўжыць той жа прынцып, паводле якога толькі цікавыя лініі 311 00:17:48,000 --> 00:17:52,000 У footer.php гэтыя два, недалёка цела і блізкіх HTML. 312 00:17:52,000 --> 00:17:55,000 >> Але што гэта азначае зараз, што ў новай версіі 313 00:17:55,000 --> 00:17:59,000 з index.php звернеце ўвагу, як шмат прасцей ён можа атрымаць. 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 Мы патрабуем выкарыстаннем PHP функцыя называецца літаральна патрабуюць наверсе, 317 00:18:10,000 --> 00:18:15,000 якая вельмі нагадвае, нагадаем, З # ўключыць у механізм. 318 00:18:15,000 --> 00:18:17,000 Мы патрабуем header.php на самым версе. 319 00:18:17,000 --> 00:18:20,000 Мы патрабуем footer.php на дне, і адзінае, што розныя 320 00:18:20,000 --> 00:18:25,000 або асаблівага ў гэтым файле змест, якое павінна быць унікальным для гэтага. 321 00:18:25,000 --> 00:18:29,000 Калі б я тады ідуць, скажам, lectures.php, той жа прынцып прымяняецца. 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 я прадставіў helpers.php, 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 і давайце паглядзім, што ўнутры helpers.php. 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 Вы можаце вызначыць свае ўласныя функцыі ў PHP, і тое, што я зрабіў, цяпер у мяне 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 і мы сапраўды можам напісаць гэта яшчэ больш коратка ў апошняй версіі PHP 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 або больш пар ключ-значэнне, і калі ў вас ёсць ключ Foo 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 ў вас ёсць лакальная зменная $ FOO, значэннем якога з'яўляецца бар. 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 або прасторы імёнаў, так што і footer.php 352 00:20:06,000 --> 00:20:09,000 тая ж ідэя тут, каб header.php 353 00:20:09,000 --> 00:20:12,000 маюць доступ да гэтых пераменным. 354 00:20:12,000 --> 00:20:15,000 На самай справе, дазвольце мне адкрыць зноў header.php 355 00:20:15,000 --> 00:20:18,000 і звярнуць увагу на тое, што цяпер ён выглядае ў гэтай версіі. 356 00:20:18,000 --> 00:20:22,000 >> Замест жорсткага кадавання CS50 у якасці назвы для кожнай старонкі 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 але спачатку я перадаю, што назва зменнай функцыю пад назвай HTMLSpecialChars. 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 у радку, які быў прыняты ў правільна бег HTML. 363 00:20:46,000 --> 00:20:49,000 На самай справе гэта спосаб пазбегнуць так званых Cross Site Scripting атакі 364 00:20:49,000 --> 00:20:52,000 якой хтосьці можа зламысна ці выпадкова 365 00:20:52,000 --> 00:20:55,000 ўводзіць свае ўласныя HTML на свой сайт 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 >> Гэта цяпер header.php, гэта выгляд 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 таму што ў footer.php няма дынамізму бы там ні было. 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 і тады я буду аб'яднання дзёрзка. PHP, каб значэнне гэтай зменнай, 388 00:22:11,000 --> 00:22:17,000 , А затым, калі ён існуе foo.php, bar.php або header.php і footer.php, 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 Іншымі словамі, выкарыстанне гэтага цяпер, калі я адкрываю index.php 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 Значэнне CS50, і гэта таксама, як мы бачылі раней, 398 00:22:47,000 --> 00:22:51,000 мог бы быць больш кароткімі ў апошняй версіі PHP 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 Гэта ўсяго толькі некаторыя блізкія тэгаў для HTML. 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 у, напрыклад, index.php 418 00:23:51,000 --> 00:23:55,000 калі мы патрабуем файл helpers.php 419 00:23:55,000 --> 00:24:01,000 мы павінны зараз патрабуюць яго праз уключае / helpers.php 420 00:24:01,000 --> 00:24:06,000 , А не проста гаварыць helpers.php, таму што цяпер гэта на самай справе ў падкаталог. 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 Цяпер у мяне ёсць HTML каталог, які ў мяне быў увесь гэты час, 435 00:24:54,000 --> 00:24:58,000 але ўнутры там цяпер толькі index.php, lectures.php, 436 00:24:58,000 --> 00:25:01,000 week1.php і week2.php. 437 00:25:01,000 --> 00:25:05,000 Каталог уключае ў сябе ў цяперашні час жыве побач з HTML каталога, 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 па URL на інтэрнэт-грамадскасці ў маім HTML каталога. 444 00:25:25,000 --> 00:25:28,000 >> Між тым, іншыя файлы, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 header.php, якія, магчыма, з'яўляюцца, магчыма, больш адчувальныя, 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 Гэта добрая практыка, каб трымацца далей ад грамадскіх каталога HTML 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 index.php каталога ў HTML файл, 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 той жа / уваходзіць / helpers.php 456 00:26:06,000 --> 00:26:12,000 ныраць уніз, каб атрымаць файл, які мяне хвалюе. 457 00:26:12,000 --> 00:26:16,000 >> Любыя пытанні, то на MVC 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 V тут, думкі і факторынгавыя з гэтых шаблонаў. 461 00:26:27,000 --> 00:26:30,000 Мы на самай справе не адрозніваецца ад M C толькі пакуль. 462 00:26:30,000 --> 00:26:33,000 На самай справе, там сапраўды няма M тут, і нават наш C, 463 00:26:33,000 --> 00:26:36,000 кантролера, на самай справе не робяць усё, што шмат, але вы атрымаеце нашмат больш 464 00:26:36,000 --> 00:26:39,000 знаёмы з абодвума гэтымі 2 лісты ад MVC, 465 00:26:39,000 --> 00:26:43,000 ці, дакладней, вы атрымаеце значна больш знаёмыя з C 466 00:26:43,000 --> 00:26:49,000 У MVC для задачы набору 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 Вярнуцца ў нашым файле C, I / O абмеркавання мы пачалі выкарыстоўваць тэкставыя файлы 474 00:27:08,000 --> 00:27:11,000 і выкарыстанне файлаў, такіх як Fprintf, і тады мы нават пачалі 475 00:27:11,000 --> 00:27:14,000 казаць пра CSV-файлаў трохі, значэнні, падзеленыя коскамі, 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 Але нават CSVs на самай справе не спрыяе пошуку 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 >> Вы не можаце зрабіць разумнае шаблоне на файл CSV, калі вы самі напісаць код. 489 00:27:49,000 --> 00:27:51,000 Вы не можаце зрабіць фільтраванне файлаў CSV 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 SQL, мова структураваных запытаў, з'яўляецца яшчэ адным мовай 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 характарыстык, так што для PSET 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 зрабіць вашу жыццё прасцей, таму што з SQL вы можаце выказаць сябе 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 >> Вы можаце думаць аб базе дадзеных, у гэтым выпадку база дадзеных SQL, сапраўды, як Excel 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 SQL базы дадзеных рэляцыйную, рэляцыйную у тым сэнсе, 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 >> Адзін з самых папулярных рэляцыйных баз дадзеных там, зноў жа, MySQL, 519 00:29:18,000 --> 00:29:22,000 якая цудоўна бясплатна, вельмі высокапрадукцыйныя, і гэта тое, што 520 00:29:22,000 --> 00:29:24,000 Facebook выкарыстоўваць вельмі рана і да некаторай ступені яшчэ і сёння 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 Мы будзем выкарыстоўваць для PSET 7 і за бясплатны інструмент пад назвай PHPMyAdmin. 527 00:29:43,000 --> 00:29:45,000 Назва з'яўляецца выпадковым. 528 00:29:45,000 --> 00:29:47,000 Інструмент здараецца быць рэалізаваны ў PHP, 529 00:29:47,000 --> 00:29:49,000 але гэта прынцыпова не мае значэння. 530 00:29:49,000 --> 00:29:53,000 Што карыснага аб PHPMyAdmin тым, што гэта вэб-утыліты. 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 Вашы карыстальнікі не збіраецца выкарыстоўваць PHPMyAdmin. 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 гэтак жа, як вы самі можаце выкарыстоўваць Excel або Numbers, 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 Зараз, на жаль, PHPMyAdmin памылку на баку кідаць занадта шмат слоў 546 00:30:35,000 --> 00:30:38,000 і графікі на вас, але калі вы адточваюць толькі на 547 00:30:38,000 --> 00:30:42,000 ID калонкі, калонкі імя карыстальніка і хэш-слупка 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 Хакер выданне для PSET 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 Нават для нашых падробленых трохі CS50 фінансаў версіі 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 якіх вы не можаце ліквідаваць яе наступствы з так званай MD5. 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 Шахта, вядома, як вы бачыце, ёсць, HA, 579 00:32:27,000 --> 00:32:30,000 было выкарыстанне розных соляў, так што тыя з вас, хто атрымаў злёгку спатыкнуўся 580 00:32:30,000 --> 00:32:33,000 Можа быць, у Hacker 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 ўзламаць ў Hacker выданне праблемай набору 2, так што не занадта складана. 586 00:32:48,000 --> 00:32:50,000 На самай справе, малая быў такім жа, як jharvard, 587 00:32:50,000 --> 00:32:54,000 Але калі мы вернемся яны глядзелі розныя. 588 00:32:54,000 --> 00:32:58,000 >> Засяродзьцеся на jharvard ў малінавы, таму што яны былі салёныя па-рознаму. 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 кліенты для CS50 фінансаў, калі вы ўпершыню адарвацца ад зямлі з вашым кодам. 597 00:33:23,000 --> 00:33:27,000 Вам прыйдзецца выконваць некалькі табліц ўнутры MySQL, усярэдзіне базы дадзеных. 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 так што вам не трэба занадта турбавацца аб тым, што MD5 або як на самой справе ўсё. 605 00:33:49,000 --> 00:33:53,000 >> Такім чынам, SQL, мова структураваных запытаў. 606 00:33:53,000 --> 00:33:56,000 Гэта, папросту кажучы, мова, які мы збіраемся пачаць выкарыстоўваць у PSET 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 Дазвольце мне падцягнуць http://localhost, 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 І дазвольце мне перайсці да / PHPMyAdmin. 619 00:34:35,000 --> 00:34:39,000 Гэта здараецца, спецыяльны URL, што прыбор папярэдне зразумець, 620 00:34:39,000 --> 00:34:42,000 , Што адразу падказвае мне імя карыстальніка і пароль. 621 00:34:42,000 --> 00:34:46,000 >> Як звычайна, я збіраюся ўвесці jharvard і малінавы, 622 00:34:46,000 --> 00:34:48,000 але разумею, што гэта уліковы запіс адміністратара на кампутары. 623 00:34:48,000 --> 00:34:53,000 Гэта проста супадзенне, што ёсць таксама jharvard зарэгістраваныя для CS50 фінансаў. 624 00:34:53,000 --> 00:34:56,000 Jharvard, малінавы, увядзіце дае мне карыстацкі інтэрфейс, які мы бачылі 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 Гэта як стварэнне новага файла Excel, эфектыўна. 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 У мяне ёсць структуры, SQL, экспарт, імпарт і некаторыя іншыя рэчы. 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 ID нумар, імя і адрас электроннай пошты. 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 Першы слупок у гэтай базе даных імя ID для унікальнага ідэнтыфікатара. 649 00:36:14,000 --> 00:36:17,000 Гэта будзе цэлы лік. Я магу фактычна ігнаруюць даўжыні і значэння. 650 00:36:17,000 --> 00:36:21,000 Int будзе 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 Аказваецца, VARCHAR, зменнай даўжыні знакаў, 663 00:36:53,000 --> 00:36:56,000 , Як радок у базе дадзеных SQL 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 але тое, што добра пра VARCHAR ён не збіраецца марнаваць 671 00:37:17,000 --> 00:37:19,000 255 байт на імя кожнага студэнта. 672 00:37:19,000 --> 00:37:23,000 Калі гэта DAVID ён не збіраецца выкарыстоўваць усе 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 У прыватнасці, я сапраўды не хвалюе, што ID майго студэнта ліку. 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 так што база дадзеных, MySQL, высвятляе, 686 00:38:04,000 --> 00:38:08,000 што ID кожнага зноў устаўленай студэнта будзе. 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 >> Напрыклад, у дадзеным выпадку я хачу сказаць, што ID 697 00:38:37,000 --> 00:38:42,000 будзе першасны індэкс, інакш вядомы як першасны ключ. 698 00:38:42,000 --> 00:38:44,000 Што гэта азначае, па вызначэнні, з'яўляецца тое, што з гэтага часу ID 699 00:38:44,000 --> 00:38:48,000 адназначна ідэнтыфікаваць студэнтаў у гэтай табліцы. 700 00:38:48,000 --> 00:38:53,000 Ні адзін студэнт не будзе мець той жа ID, таму што я ўвядзення гэтага абмежавання ці гэты індэкс. 701 00:38:53,000 --> 00:38:55,000 Акрамя таго, што гэта збіраецца зрабіць для мяне гэта раскажа 702 00:38:55,000 --> 00:38:58,000 MySQL, што ID з'яўляецца спецыяльным. 703 00:38:58,000 --> 00:39:03,000 Я клапачуся асабліва пра ID, так што ісці наперад і рабіць магію вашай фантазіі структура дадзеных, у 704 00:39:03,000 --> 00:39:05,000 стварыць свайго роду дрэва. 705 00:39:05,000 --> 00:39:08,000 Звычайна гэта тое, што называецца B-дрэва, якія мы не глядзім на тыдні таму, 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-разрадны Int. 721 00:40:00,000 --> 00:40:03,000 Увогуле, першасны ключ павінен быць кароткім і кароткія 722 00:40:03,000 --> 00:40:07,000 а ў ідэале нешта накшталт цэлае ці вялікі INT, які бывае 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 вельмі добра з маёй IFS і IFS яшчэ і фактычны код PHP 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 Davids Майк Сміт, напрыклад, 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 Усё, што часта, але SQL сам па сабе з'яўляецца мовай, 742 00:41:10,000 --> 00:41:13,000 сінтаксісу, для якіх гэта прама тут, што я вылучыў. 743 00:41:13,000 --> 00:41:18,000 Што PHPMyAdmin сапраўды гэта стварае вэб-інтэрфейс для вас 744 00:41:18,000 --> 00:41:23,000 , З якой вы можаце зэканоміць час і не давядзецца ўручную ўводзіць з 745 00:41:23,000 --> 00:41:26,000 даволі доўгі SQL запытаў накшталт гэтага. 746 00:41:26,000 --> 00:41:29,000 >> Іншымі словамі, калі вы хочаце, каб ўручную стварыць гэтую табліцу, 747 00:41:29,000 --> 00:41:32,000 альбо на гэтай чорна-белай радкі або нават у PHPMyAdmin 748 00:41:32,000 --> 00:41:35,000 З дапамогай гэтай ўкладкі іншы, на гэтай ўкладцы SQL, дзе вы можаце набраць у любым запытаў SQL 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 проста добрае каляровае кадаваньне, што PHPMyAdmin дадае 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 Але я буду Давід, і мая электронная пошта павінна быць malan@harvard.edu. 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 і мы павінны быць яму smith@example.com, 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 Гэта рэальны запыт SQL. 767 00:42:32,000 --> 00:42:36,000 Гэта PhpMyAdmin інструмент выкананы для мяне, 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 у табліцы мы бачылі раней для нашых карыстальнікаў ад PSET 7, 771 00:42:46,000 --> 00:42:51,000 адзін з якіх з'яўляецца Дэвід малая, адзін з якіх у цяперашні час з'яўляецца Майк Сміт. 772 00:42:51,000 --> 00:42:54,000 Але толькі, каб быць яснай, мне не трэба выкарыстоўваць PHPMyAdmin, 773 00:42:54,000 --> 00:42:56,000 І сапраўды, вы збіраецеся ў бліжэйшы час пісаць код для PSET 7 774 00:42:56,000 --> 00:43:01,000 , Якая аўтаматызуе працэс дадання радкоў, выдаленне радкоў, абнаўленне радкоў і да т.п., 775 00:43:01,000 --> 00:43:04,000 так што дазвольце мне замест гэтага перайсці да ўкладцы SQL тут 776 00:43:04,000 --> 00:43:14,000 і тыпу SELECT * FROM студэнтаў, дзе 777 00:43:14,000 --> 00:43:18,000 электронную пошту = "malan@harvard.edu". 778 00:43:18,000 --> 00:43:21,000 >> Іншымі словамі, выкажам здагадку, зараз у вас ёсць 779 00:43:21,000 --> 00:43:26,000 некаторыя HTML форме, і карыстач уводзіць свой адрас электроннай пошты, сярод іншых галінах, 780 00:43:26,000 --> 00:43:29,000 і мэта зараз знаходзіцца ў PHP на заднім канцы кода 781 00:43:29,000 --> 00:43:31,000 на самай справе шукаць іншыя дэталі гэтага карыстальніка. 782 00:43:31,000 --> 00:43:34,000 Якое ваша поўнае імя? Які ваш ID нумар? 783 00:43:34,000 --> 00:43:37,000 Вы маглі б напісаць SQL запыт, як гэта, абярыце * ад студэнтаў 784 00:43:37,000 --> 00:43:40,000 дзе ліст = "malan@harvard.edu". 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 >> Цяпер, зноў жа, тут PSET 7 вы зможаце выкарыстоўваць PHPMyAdmin як адміністрацыйны інструмент 789 00:43:57,000 --> 00:44:00,000 і педагагічнай інструмент, каб даведацца пра свой шлях 790 00:44:00,000 --> 00:44:03,000 па ўсім свеце SQL, але ў канцы дня 791 00:44:03,000 --> 00:44:08,000 Вы збіраецеся пісаць гэтыя запыты ўнутры фактычны код PHP, 792 00:44:08,000 --> 00:44:11,000 і таму сочыце за абнаўленнямі ў кіраўніцтве Zamyla у прыватнасці 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 і добры сэксуальны лагатып, які кажа CS50 фінансаў, але мы таксама далі вам 796 00:44:21,000 --> 00:44:24,000 кучай функцый, якія зробяць вашу жыццё крыху лягчэй. 797 00:44:24,000 --> 00:44:27,000 Мы таксама напісаў частка PSET для вас, 798 00:44:27,000 --> 00:44:32,000 Уваход частка яго, у прыватнасці, каб даць вам адчуванне прадстаўнік дызайн 799 00:44:32,000 --> 00:44:36,000 што на самай справе выкарыстоўвае кантролер, напрыклад, index.php, 800 00:44:36,000 --> 00:44:40,000 login.php і да таго падобнае, і тады вы ўбачыце PSET таксама маецца каталог шаблонаў 801 00:44:40,000 --> 00:44:43,000 , Якая мае ўсе свае погляды, усё эстэтыкі. 802 00:44:43,000 --> 00:44:46,000 І таму агульны працоўны працэс у PSET 7 будзе ў тым, што 803 00:44:46,000 --> 00:44:49,000 Вашы карыстальнікі наведаць кантролер праз URL у браўзэры. 804 00:44:49,000 --> 00:44:53,000 Гэта Кантролер змяшчае PHP код, які вы напісалі, так і ўнутры вашага кода PHP 805 00:44:53,000 --> 00:44:57,000 можа быць некалькі радкоў SQL укладзеныя ў падвойныя двукоссі 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 адміністрацыйных інструментаў, як PHPMyAdmin. 809 00:45:05,000 --> 00:45:08,000 >> Вы зможаце пісаць SQL заявы ў PHP кода 810 00:45:08,000 --> 00:45:11,000 і вярнуцца PHP масіў выніковага набору, 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 і ад PSET спакаваць сябе ў дакладнасці, як ісці аб гэтым. 816 00:45:29,000 --> 00:45:33,000 Зразумейце, у канчатковым рахунку, мы сапраўды проста драпаць паверхню SQL 817 00:45:33,000 --> 00:45:36,000 і MySQL, але ўлада гэта сапраўды тое, што ён вызваляе вас 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 і гэта цалкам літаральна, дзе Facebook сама атрымала свой пачатак 822 00:45:50,000 --> 00:45:53,000 Выкарыстанне MySQL, а затым з дапамогай больш MySQL сервер, а затым больш сервераў MySQL 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 [CS50.TV]