1 00:00:00,000 --> 00:00:01,940 >> [Музыка, якая іграе] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID Малання: Гэта CS 50, і гэта пачатак тыдня дзевяць. 4 00:00:14,620 --> 00:00:18,240 І тое, што мы думалі, што мы робім сёння, гэта не толькі зачыніць раздзел пра мінулага тыдня 5 00:00:18,240 --> 00:00:22,670 Матэрыял, дзе мы засяродзіліся на сэрвэры бок вэб-праграмаванне з PHP і SQL, 6 00:00:22,670 --> 00:00:23,549 некаторыя базы дадзеных матэрыял. 7 00:00:23,549 --> 00:00:25,590 Мы будзем казаць пра што-то накшталт сёння бяспека, а затым 8 00:00:25,590 --> 00:00:29,590 Пераход да праграмавання на баку кліента мова вядомы як JavaScript. 9 00:00:29,590 --> 00:00:31,330 Але па-першае, некаторыя выкуп. 10 00:00:31,330 --> 00:00:35,030 >> Вы можаце ўспомніць, што на Серада, я адправіўся 11 00:00:35,030 --> 00:00:37,550 напісаць сайт, які узяў на ўваходзе карыстальніка 12 00:00:37,550 --> 00:00:41,120 з дапамогай HTML-формаў, што затым захоўваюцца што імёны карыстацкага ўводу, тэлефон 13 00:00:41,120 --> 00:00:43,124 нумары, і тэлефон носьбітаў у базе дадзеных. 14 00:00:43,124 --> 00:00:45,540 А потым у мяне было трохі каманду радок сцэнара напісаў у PHP 15 00:00:45,540 --> 00:00:47,956 , Які павінен быў паўтараць больш радкоў у базе дадзеных 16 00:00:47,956 --> 00:00:49,400 і адправіць тэкставыя паведамленні. 17 00:00:49,400 --> 00:00:53,870 Нягледзячы на ​​некалькі, некалькі спробаў, мы не прымусілі гэта працаваць да канца. 18 00:00:53,870 --> 00:00:57,820 >> Так я правёў гэтым увесь тыдзень працуе на гэты код, каб атрымаць нас міма пункту 19 00:00:57,820 --> 00:01:01,220 дзе мы спыніліся, у выніку чаго ўсе Я атрымаў да канца асяроддзя 20 00:01:01,220 --> 00:01:05,500 было гэта тэкст паведамлення ад Марго, як я змагаўся, 21 00:01:05,500 --> 00:01:09,940 затым тэкставае паведамленне ад іншага аднакласнік, Вы павінны гэтую Давіда. 22 00:01:09,940 --> 00:01:14,030 Услед за гэтым, дзіўна абнадзейвае. 23 00:01:14,030 --> 00:01:15,840 Працягваў ісці, вельмі прыемна. 24 00:01:15,840 --> 00:01:20,960 Я амаль не атрымаў яго да then-- і гэта заўвага, мы скончылі ў сераду. 25 00:01:20,960 --> 00:01:25,850 І тады на самай справе, магчыма, мой каханы, Імгненне праз, гэта адбылося ў. 26 00:01:25,850 --> 00:01:27,000 Чорт прамая трансляцыя. 27 00:01:27,000 --> 00:01:31,080 >> Такім чынам, сёння мы гэта выправіць з хуткім паглядзець на тое, што я зрабіў з тых часоў. 28 00:01:31,080 --> 00:01:35,440 Так увесь гэты код даступны онлайн з мінулага тыдня, тыдні восем, 29 00:01:35,440 --> 00:01:36,300 Зыходны код. 30 00:01:36,300 --> 00:01:39,425 І вы ўбачыце, што я прайшоў праз, і я на самой справе ачысціць рэчы няшмат. 31 00:01:39,425 --> 00:01:42,080 Я прадставіў пару з адным асаблівасці базе дадзеных SQL. 32 00:01:42,080 --> 00:01:45,300 Напрыклад, замест таго, проста зрабіць носьбіт вар гольца 33 00:01:45,300 --> 00:01:47,310 як я думаю, што я зрабіў на лета на мінулым тыдні. 34 00:01:47,310 --> 00:01:49,820 Я замест вызначыў яго як тое, што называецца пералік. 35 00:01:49,820 --> 00:01:53,310 >> І некаторыя з вас, магчыма, бачылі гэта як мы даследавалі С. Enum на самай справе 36 00:01:53,310 --> 00:01:56,820 Асаблівасцю С, дзе вы можаце пералічыць цэлую кучу канстант 37 00:01:56,820 --> 00:01:59,640 і прызначыць іх аўтаматычнае значэння, як адзін, два, тры, чатыры 38 00:01:59,640 --> 00:02:01,330 без жорсткіх кодавымі нумарамі. 39 00:02:01,330 --> 00:02:04,780 Так SQL падтрымлівае тое ж самае, у якім, калі ў вас ёсць поле базы дадзеных, толькі вы 40 00:02:04,780 --> 00:02:09,389 хачу ўзяць на адной з канчатковых значэння, вы можаце літаральна паказаць яго 41 00:02:09,389 --> 00:02:13,120 як я зрабіў там на працягу чатырох папулярныя мабільнікаў амерыканскія аператары. 42 00:02:13,120 --> 00:02:13,819 >> Так што я зрабіў гэта. 43 00:02:13,819 --> 00:02:16,610 І я зрабіў шэраг змен, як добра, самае галоўнае з якіх 44 00:02:16,610 --> 00:02:20,090 быў Віртуальны працы, таму што адклiканнi, што гэтая праграма абапіралася на якіх 45 00:02:20,090 --> 00:02:23,470 як правіла, называюць электроннай пошце, каб SMS шлюз, які з'яўляецца проста 46 00:02:23,470 --> 00:02:27,670 мудрагелісты спосаб сказаць, што Verizon, і AT & T, і іншыя людзі падтрымліваюць сервер, 47 00:02:27,670 --> 00:02:30,740 у выніку чаго, калі ён атрымлівае па электроннай пошце, ён пераўтворыць яго ў SMS 48 00:02:30,740 --> 00:02:33,290 і пасылае тэкст Паведамленне на іншы тэлефон. 49 00:02:33,290 --> 00:02:37,010 Так што, калі я зрабіў гэта правільна, вось новы і палепшаны выгляд 50 00:02:37,010 --> 00:02:39,259 што збіраецца пагаварыць з Новы і палепшаны код, які 51 00:02:39,259 --> 00:02:40,300 Вы можаце гуляць з онлайн. 52 00:02:40,300 --> 00:02:44,140 І гэта будзе, спадзяюся, зрабіць мой тэлефон сігнал у хвіліну. 53 00:02:44,140 --> 00:02:47,240 >> Такім чынам, спачатку я збіраюся ўвесці ў маё імя. 54 00:02:47,240 --> 00:02:51,400 Па-другое, я не збіраюся зрабіць гэта ў гэты раз. 55 00:02:51,400 --> 00:02:53,920 Я збіраюся зрабіць Агледзіце элемент. 56 00:02:53,920 --> 00:02:56,710 І гэта ўсяго толькі дробязь, так што я не 57 00:02:56,710 --> 00:02:59,250 стварыць гадзін пасля вытворчасці працаваць, як я зрабіў у мінулы раз. 58 00:02:59,250 --> 00:03:02,300 Там зараз знаходзіцца мой нумар тэлефона. 59 00:03:02,300 --> 00:03:03,560 >> Я выбраць Verizon. 60 00:03:03,560 --> 00:03:10,260 І вось, давайце звернемся на гэтай мікрафонам тут, і мэта гэтая ў маім тэлефоне тут. 61 00:03:10,260 --> 00:03:13,130 Я збіраюся націсніце Рэгістрацыя, якія, будзем спадзявацца, 62 00:03:13,130 --> 00:03:14,530 пакласці яго ў базу дадзеных. 63 00:03:14,530 --> 00:03:16,780 Цяпер я збіраюся паехаць у Праграма каманднага радка, якія 64 00:03:16,780 --> 00:03:20,825 Нагадаем называўся кропка слэш Тэкст і перакрыжуеце пальцы. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 Тут мы ідзем. 67 00:03:26,527 --> 00:03:27,501 >> [PHONE ўвагнутасці] 68 00:03:27,501 --> 00:03:28,962 >> [Апладысменты] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID Малання: Так весялей, чым this-- гэта цікава, вядома, калі б я патрапіць у яго. 71 00:03:34,940 --> 00:03:38,004 Але гэта больш цікава, я думаў, калі мы створаны адзін з тых момантаў у кіно 72 00:03:38,004 --> 00:03:40,420 дзе як-то на самай справе дрэнна, што адбылося ў свеце, 73 00:03:40,420 --> 00:03:42,860 і, як і ўсе АНБ Народнай тэлефонаў пачаць пішчаць 74 00:03:42,860 --> 00:03:44,860 з дапамогай тэкставых паведамленняў гатоўнасць іх да гэтага факту. 75 00:03:44,860 --> 00:03:47,026 Так я думаў, што мы паспрабуем ўзнавіць тое ж самае тут, 76 00:03:47,026 --> 00:03:49,610 чаго не выкарыстоўваючы базу дадзеных, Я замест загадзя 77 00:03:49,610 --> 00:03:51,490 напісаў праграму, якая выглядае наступным чынам. 78 00:03:51,490 --> 00:03:53,660 >> Гэта index.php-- і я паклаў гэты код на сайце 79 00:03:53,660 --> 00:03:56,710 як well-- што, па-відаць проста аказвае form.php, 80 00:03:56,710 --> 00:04:00,990 выкарыстоўваючы стыль парадыгму MVC, што мы казаць пра больш падрабязна ў праблемнай набору 81 00:04:00,990 --> 00:04:01,650 сем. 82 00:04:01,650 --> 00:04:02,910 Гэта форма даволі простая. 83 00:04:02,910 --> 00:04:06,634 Гэта збіраецца прадставіць Файл называецца here.php па пошце. 84 00:04:06,634 --> 00:04:09,300 І гэта, відаць збіраецца прасіць для імя, і нумар тэлефона, 85 00:04:09,300 --> 00:04:11,400 а затым з дапамогай так званых Выберыце меню, гэта 86 00:04:11,400 --> 00:04:14,250 збіраюся даць вам па меншай меры чатыры папулярныя мабільнікаў амерыканскія аператары, 87 00:04:14,250 --> 00:04:17,470 а затым дазваляюць эфектыўна прыняць удзел, націснуўшы тут. 88 00:04:17,470 --> 00:04:20,471 >> І тут, між тым, збіраецца пазычаць частка кода з мінулага разу. 89 00:04:20,471 --> 00:04:22,553 І калі вы проста бегла гэта, Вы ўбачыце, што ёсць 90 00:04:22,553 --> 00:04:23,900 цэлая куча праверкі памылак. 91 00:04:23,900 --> 00:04:26,640 Але прыгажосць у канцы, што мы не пішам у базу дадзеных сёння. 92 00:04:26,640 --> 00:04:29,130 Мы трымаем яго простым і проста адпраўкі, мы спадзяемся, 93 00:04:29,130 --> 00:04:32,190 Тэкст паведамлення праз функцыі I напісаў на працягу апошніх некалькіх дзён выкліку 94 00:04:32,190 --> 00:04:36,270 Тэкст, які знаходзіцца ў функцыі. PHP, што зноў-такі даступныя ў Інтэрнэце. 95 00:04:36,270 --> 00:04:38,210 >> Так што, калі вы хочаце прыняць удзел у гэтым. 96 00:04:38,210 --> 00:04:40,190 Мы не збіраемся быць захоўвання нічога. 97 00:04:40,190 --> 00:04:43,809 Перайсці да наступнага адрасе тут у рэжыме рэальнага часу. 98 00:04:43,809 --> 00:04:46,850 І не давайце іх толькі пакуль, але давайце ці зможам мы мець адзін з гэтых фільмаў 99 00:04:46,850 --> 00:04:49,830 моманты, калі тэлефон кожнага пачынае пішчаць, спадзяюся, проста 100 00:04:49,830 --> 00:04:53,580 адзін раз у гэтым годзе, у адрозненне ад 2011 дзе гэта пайшло жудасна крыва. 101 00:04:53,580 --> 00:04:58,910 І як толькі вы ідзяце па гэтым адрасе, Вы павінны ўбачыць супер простую форму 102 00:04:58,910 --> 00:05:03,884 што калі ў вас ёсць імя, сотавы тэлефон лік, і перавозчык тэлефон, што 103 00:05:03,884 --> 00:05:06,175 супадае са спісам там, ідзеце наперад і запоўніць форму. 104 00:05:06,175 --> 00:05:07,880 Але не ўдарыў прадставіць толькі пакуль. 105 00:05:07,880 --> 00:05:10,850 >> Форма будзе выглядаць вось так. 106 00:05:10,850 --> 00:05:13,660 Ідзем далей і ўвесці ў Ваша імя, нумар тэлефона. 107 00:05:13,660 --> 00:05:17,670 Oop, хто-то збіраецца на апярэджанне. 108 00:05:17,670 --> 00:05:18,170 Гэта нармальна. 109 00:05:18,170 --> 00:05:19,340 ОК, усё гэта запоўніў форму. 110 00:05:19,340 --> 00:05:21,400 Гэта павінна працаваць на тэлефон таксама, калі хочаце. 111 00:05:21,400 --> 00:05:23,695 Добра, на старт, увага, марш. 112 00:05:23,695 --> 00:05:24,195 Хіт Тут. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Што? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Няма. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Клянуся Богам, я тэставаў гэта некалькі раз сёння. 119 00:05:40,250 --> 00:05:41,720 Вы атрымалі гэта? 120 00:05:41,720 --> 00:05:43,145 >> [Устаўляючы ГАЛАСЫ] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID Малання: ОК, памылка карыстальніка, магчыма. 123 00:05:49,560 --> 00:05:50,550 Гэта два. 124 00:05:50,550 --> 00:05:53,300 Ён працаваў для двух з некалькі сотняў, тры, чатыры. 125 00:05:53,300 --> 00:05:55,940 Добра, што гэта добра. 126 00:05:55,940 --> 00:05:58,520 Чатыры з пяці для Правільнасць, як а. 127 00:05:58,520 --> 00:05:59,810 >> Дык што ж адбылося? 128 00:05:59,810 --> 00:06:02,727 Так, як мяркуецца, не бачачы ваш экраны, таму, магчыма, гэта ўжо з памылкай? 129 00:06:02,727 --> 00:06:05,518 Гэта, напэўна, што мы былі проста спрабуе зрабіць занадта шмат падлучэнняў 130 00:06:05,518 --> 00:06:08,110 на паштовы сервер Гарвардскага усё ў адзін раз з таго ж IP-адрасы. 131 00:06:08,110 --> 00:06:10,740 Я проста мяркую, што, так як я не зрабіў ёсць раскоша тэставання 132 00:06:10,740 --> 00:06:13,220 гэты код з некаторымі 300 чалавек загадзя 133 00:06:13,220 --> 00:06:16,040 але цяпер разумею, што што па крайняй меры павінна 134 00:06:16,040 --> 00:06:18,250 атрымалі працу на гэты раз. 135 00:06:18,250 --> 00:06:22,880 >> Добра, дык чаму ж усё гэта больш дарэчныя ў тым, што адбываецца? 136 00:06:22,880 --> 00:06:24,900 Ну па-першае, хутка Пару аб'яваў. 137 00:06:24,900 --> 00:06:29,350 Так што, калі вы хочаце далучыцца Чанг, і Нік, і іншыя на абед у пятніцу, 138 00:06:29,350 --> 00:06:32,400 зрабіць RSVP ў звычайнае URL там. 139 00:06:32,400 --> 00:06:35,650 Калі вы думаеце пра канцэнтруючыся ці рабіць другасны ў CS, 140 00:06:35,650 --> 00:06:38,941 будзь ты на другім курсе, або першакурснік, ці нават малодшага або старэйшага ў гэтай кропцы 141 00:06:38,941 --> 00:06:42,490 і яшчэ можна выціснуць ў курсах, разумеюць, што ў інжынернай школе 142 00:06:42,490 --> 00:06:45,620 збірае для вольнага Бэн і Марозіва і парады Джэры 143 00:06:45,620 --> 00:06:48,910 у сераду неўзабаве пасля класа ў 4:00 вечара ў будынку CS 144 00:06:48,910 --> 00:06:49,771 на Максвелла Дворкін. 145 00:06:49,771 --> 00:06:51,520 Калі гэта занадта хутка на экране, проста пайсці 146 00:06:51,520 --> 00:06:55,260 у cs50.harvard.edu для спасылка на мерапрыемстве Facebook 147 00:06:55,260 --> 00:06:57,140 дзе можна ўбачыць больш падрабязную інфармацыю. 148 00:06:57,140 --> 00:07:01,390 >> Між тым, я думаў, што выправіць яшчэ адна рэч, я трапіў у няёмкае становішча ў сераду. 149 00:07:01,390 --> 00:07:04,400 Аказваецца, што ID-Марка на Facebook, не было тры гады. 150 00:07:04,400 --> 00:07:05,230 Гэта было чатыры гады. 151 00:07:05,230 --> 00:07:08,330 Аказваецца, ён быў больш тэст рахункі, чым я памятаю. 152 00:07:08,330 --> 00:07:12,400 Але тое, што гэта было падобна на магчымасць зрабіць, гэта падцягнуць URL накшталт гэтага. 153 00:07:12,400 --> 00:07:16,680 >> Вось і атрымліваецца, што Facebook мае API, інтэрфейс прыкладнога праграмавання, 154 00:07:16,680 --> 00:07:20,070 якая ўяўляе сабой механізм, у якім вы можа запытваць дадзеныя праграмна 155 00:07:20,070 --> 00:07:24,480 на Facebook і атрымаць назад машыну чытэльнай, не веб-старонкі 156 00:07:24,480 --> 00:07:28,690 але толькі просты тэкст, што-то называецца JavaScript Object Notation. 157 00:07:28,690 --> 00:07:32,150 І на самай справе, калі я наведваю гэты URL, і павялічыць, па змаўчанні, 158 00:07:32,150 --> 00:07:34,960 гэта Марк публічна даступная інфармацыя. 159 00:07:34,960 --> 00:07:37,430 >> І цікавая дэталь вось толькі, што яго ID 160 00:07:37,430 --> 00:07:40,670 Сапраўды, нумар чатыры, які я зразумеў, як толькі я зрабіў гэта. 161 00:07:40,670 --> 00:07:44,260 Вы можаце зрабіць гэта самастойна, калі вы ведаеце, Ваша імя карыстальніка Facebook, калі ў вас ёсць. 162 00:07:44,260 --> 00:07:45,440 Проста увядзіце яго верхнюю ёсць. 163 00:07:45,440 --> 00:07:46,640 І ўсё гэта не з'яўляецца прыватным. 164 00:07:46,640 --> 00:07:48,670 Я проста раблю гэта нават ў рэжыме інкогніта. 165 00:07:48,670 --> 00:07:49,900 Так што я нават не ўвайшлі ў сістэму. 166 00:07:49,900 --> 00:07:54,440 І вы бачыце, што я па-відаць, быў нумар карыстальніка 6454 167 00:07:54,440 --> 00:07:56,480 на Facebook, якая не занадта дрэнна ў гэтыя дні. 168 00:07:56,480 --> 00:07:59,900 Так ці інакш, вы таксама ўбачыце Дадатковая інфармацыя ёсць. 169 00:07:59,900 --> 00:08:02,150 >> І карысны аспект таго, што гэта ты 170 00:08:02,150 --> 00:08:06,890 можа напісаць уласную праграму, што неяк аб'ядноўвае дадзеныя, як гэта 171 00:08:06,890 --> 00:08:08,170 Ваша прыкладанне. 172 00:08:08,170 --> 00:08:10,650 Вы можаце пашырыць магчымасці карыстальнікаў у увайсці ў свой вэб-сайт, 173 00:08:10,650 --> 00:08:14,190 не выкарыстоўваючы свае ўласныя прыстасаваныя лагін і пароль, але, можа быць, іх Facebook Увайсці 174 00:08:14,190 --> 00:08:16,170 і атрымаць інфармацыю нават пра сваіх сяброў, 175 00:08:16,170 --> 00:08:18,740 калі яны ўхваліць такія, ці аналагічны. 176 00:08:18,740 --> 00:08:21,430 Так, звярніце ўвагу, што CS50, занадта, ёсць некаторыя ўласныя API ,, 177 00:08:21,430 --> 00:08:24,620 адзін для дадзеных каталога Вядома, некаторыя для меню абдымкі ў сталовай 178 00:08:24,620 --> 00:08:26,730 залы, усё будынка і месцы 179 00:08:26,730 --> 00:08:30,930 на тэрыторыі кампуса нас ёсць API для а што вы можаце запытаць ж і атрымаць 180 00:08:30,930 --> 00:08:35,520 назад тэкставая інфармацыя, вы можаце інтэграваць у PHP, або JavaScript, або нават, 181 00:08:35,520 --> 00:08:38,320 хоць радзей, З заснаваная канчатковы праект. 182 00:08:38,320 --> 00:08:41,190 >> Сапраўды наперад у фінал Праект некалькі этапаў. 183 00:08:41,190 --> 00:08:42,980 Вы атрымалі ад нас ліст на днях. 184 00:08:42,980 --> 00:08:45,761 Зразумейце, што прапановы гэта з-за быць панядзелак. 185 00:08:45,761 --> 00:08:49,010 Гэта не абавязкова абавязковым, але вы сапраўды павінны атрымаць свае навучальныя хлопцы 186 00:08:49,010 --> 00:08:51,260 зацвярджэнне, перш чым зрабіць любыя змены пасля гэтага. 187 00:08:51,260 --> 00:08:54,280 І тады наперад з'яўляюцца Шэраг іншых этапаў. 188 00:08:54,280 --> 00:08:56,542 >> Такім чынам, каб дражніць цябе, з некаторымі магчымасцямі, 189 00:08:56,542 --> 00:08:58,250 у нас ёсць куча гэтыя адценне лямпачкі. 190 00:08:58,250 --> 00:09:01,190 І некаторыя з вас, хлопцы, зараз ёсць некаторыя з іх у вашай пакоі ў інтэрнаце, а таксама. 191 00:09:01,190 --> 00:09:02,920 І яны таксама маюць API. 192 00:09:02,920 --> 00:09:07,300 Так ўспамінаю тыя двайковыя цыбуліны тыдня таму, што Дэн Брэдлі і Ансело 193 00:09:07,300 --> 00:09:08,780 Даф стварыў для нас. 194 00:09:08,780 --> 00:09:12,560 Яны выкарыстоўвалі праграмны інтэрфейс для гэта лямпачка, якая на дадзены момант 195 00:09:12,560 --> 00:09:15,232 падлучаны да электрычнасці а затым з дапамогай бесправаднога 196 00:09:15,232 --> 00:09:17,690 падлучаны да невялікай рэчы называецца мост сюды, 197 00:09:17,690 --> 00:09:21,280 як маленькі маршрутызатар прапрыетарных у гэтым канкрэтным прыладзе. 198 00:09:21,280 --> 00:09:26,540 >> Але, аказваецца, калі я ведаю, як адправіць HTTP паведамленні, як мы ўсе цяпер рабіць, 199 00:09:26,540 --> 00:09:31,670 Я магу адправіць паведамленне, як гэта гэта лямпачка, каб уключыць яго або выключыць 200 00:09:31,670 --> 00:09:34,000 або зрабіць любую колькасць іншыя аперацыі па ім. 201 00:09:34,000 --> 00:09:36,110 Звярніце ўвагу, што гэта не атрымаць, гэта не пост. 202 00:09:36,110 --> 00:09:37,760 Там яшчэ адзін называецца путаў. 203 00:09:37,760 --> 00:09:39,630 Там на самай справе некалькі іншых такіх дзеясловаў. 204 00:09:39,630 --> 00:09:42,920 Але звярніце ўвагу, што ёсць шлях там, слэш API, слэш новага распрацоўніка, 205 00:09:42,920 --> 00:09:44,990 слэш святло, слэш адзін, слэш стан. 206 00:09:44,990 --> 00:09:49,060 >> Гэта, па-відаць проста Шлях, што кампанія, Philips, 207 00:09:49,060 --> 00:09:51,640 вырашыў вы павінны ўдарыць з просьбай HTTP 208 00:09:51,640 --> 00:09:55,010 калі вы хочаце, каб змяніць стан колбы з выкарыстаннем HTTP 1.1. 209 00:09:55,010 --> 00:09:56,380 Тады звярніце ўвагу на пусты радок. 210 00:09:56,380 --> 00:10:00,170 А потым, нарэшце, тое, што выглядае як від на масіў нейкі, 211 00:10:00,170 --> 00:10:04,730 Гэта зноў-такі будзе называцца JavaScript Object Notation, або Джэйсан. 212 00:10:04,730 --> 00:10:08,000 І тое, што вы бачыце тут з'яўляецца тое, што Ёсць тры пары ключ-значэнне. 213 00:10:08,000 --> 00:10:09,115 >> Адзін ключ называецца на. 214 00:10:09,115 --> 00:10:10,990 І яго значэнне па-відаць, будзе дакладна. 215 00:10:10,990 --> 00:10:13,612 Яркасць складае 128, які гэта свайго роду міжнар. 216 00:10:13,612 --> 00:10:15,820 А потым час пераходу нуля, што, па-відаць 217 00:10:15,820 --> 00:10:17,970 як доўга ён збіраецца прыняць, каб ператварыць гэтую рэч на. 218 00:10:17,970 --> 00:10:19,890 >> Так што цяпер гэта лямпачка не гарыць. 219 00:10:19,890 --> 00:10:22,880 Але калі б я рабіць тое, this-- хай мне пайсці ў невялікі шпаргалку 220 00:10:22,880 --> 00:10:25,200 што Дэн створана ў advance-- і я збіраюся 221 00:10:25,200 --> 00:10:27,920 ісці наперад і скапіяваць наступная каманда. 222 00:10:27,920 --> 00:10:30,200 Curl, як некаторыя з вас магчыма, запазычаныя на CS50 223 00:10:30,200 --> 00:10:35,080 Абмеркаваць гэта ўтыліта, як Telnet такой што вы можаце мадэляваць HTTP запыты, 224 00:10:35,080 --> 00:10:36,360 спецыяльна ставіць. 225 00:10:36,360 --> 00:10:39,710 Я магу адправіць гэтыя дадзеныя, што канкрэтна мы проста 226 00:10:39,710 --> 00:10:43,430 ўбачыў хвіліну назад спецыяльна па наступным адрасе тут. 227 00:10:43,430 --> 00:10:46,310 А потым Curl збіраецца звяртацца усе неабходныя загалоўкі 228 00:10:46,310 --> 00:10:47,600 і разбор там з. 229 00:10:47,600 --> 00:10:54,700 >> Так што ўсё што мне трэба зрабіць, гэта скапіяваць гэта ў акно тэрміналу, а затым націсніце Увод. 230 00:10:54,700 --> 00:10:56,000 І лямпачка працягваецца. 231 00:10:56,000 --> 00:10:59,060 І гэта ўсё адбываецца праз мой кампутар па бесправадной сеткі 232 00:10:59,060 --> 00:11:01,960 як-то ўніз да моста, які Затым размова на гэтую лямпачку. 233 00:11:01,960 --> 00:11:02,960 Я магу зрабіць што-то яшчэ. 234 00:11:02,960 --> 00:11:07,050 Я магу зрабіць гэтую рэч перайсці чырвоны напрыклад. 235 00:11:07,050 --> 00:11:11,040 Я магу, напрыклад, зрабіць гэтая рэч пайсці зялёны. 236 00:11:11,040 --> 00:11:12,220 Я магу зрабіць яго сінім. 237 00:11:12,220 --> 00:11:14,760 >> І заўважце, у кожным з іх выпадкі, усё, што я мяняю 238 00:11:14,760 --> 00:11:18,540 з'яўляецца так званая значэнне адцення для на самай справе даць яму трохі колеру. 239 00:11:18,540 --> 00:11:20,320 Такім чынам, дазвольце мне ўставіць гэты, як добра. 240 00:11:20,320 --> 00:11:21,000 Цяпер ён блакітны. 241 00:11:21,000 --> 00:11:24,672 >> І вы можаце зрабіць нават аматар рэчы where-- пойдзем на зялёны. 242 00:11:24,672 --> 00:11:26,630 І я мог бы зрабіць гэта з Вядома, з майго кода. 243 00:11:26,630 --> 00:11:30,670 Але нават сам API падтрымлівае розныя аперацыі 244 00:11:30,670 --> 00:11:35,510 як гэта, якія будуць цяпер турбаваць нам на працягу наступных 30 секунд. 245 00:11:35,510 --> 00:11:39,170 >> Дык вось адзін густ таго, што вы маглі б зрабіць з API, гэта адзін удзелам 246 00:11:39,170 --> 00:11:40,010 лямпачкі. 247 00:11:40,010 --> 00:11:42,510 Звярніце ўвагу, што CS50 мае некалькі пары Google Glass, калі б ты 248 00:11:42,510 --> 00:11:45,380 хацелі закрануць што-то разам гэтыя радкі, Arduino Unos, якія 249 00:11:45,380 --> 00:11:48,670 з'яўляюцца малюсенькія кампутары, па сутнасці, на невялікай друкаванай плаце 250 00:11:48,670 --> 00:11:50,470 што вы можаце падключыць драты і іншыя рэчы 251 00:11:50,470 --> 00:11:52,732 каб і на самай справе кантроль Ваш рэальны свет серада. 252 00:11:52,732 --> 00:11:54,940 А яшчэ ёсць пара з новых цацак, якія ў нас ёсць. 253 00:11:54,940 --> 00:11:59,294 Гэта адзін літаральна толькі што прыбыў На днях па пошце, Міо павязкі. 254 00:11:59,294 --> 00:12:01,710 І я падумаў, што гэта спосаб вам рады аб праектах 255 00:12:01,710 --> 00:12:03,720 што вы маглі б выкарыстоўваць з гэта абсталяванне будзе 256 00:12:03,720 --> 00:12:08,900 быць гуляць у гэтую кароткі кліп што яны выкарыстоўваюць, каб дражніць людзей 257 00:12:08,900 --> 00:12:10,500 што мы зараз жывем у будучыні. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [Музыка, якая іграе] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID Малання: Так на працягу некалькіх тыдняў, вы таксама можа быць, што выдатна ў CS50 кірмашы. 262 00:13:37,109 --> 00:13:39,150 Яшчэ адна прылада, што мы ёсць куча, што мы 263 00:13:39,150 --> 00:13:42,090 рады ў пазыку для праектаў называецца кантролер руху. 264 00:13:42,090 --> 00:13:45,030 Гэта невялікае прылада USB падключэнні да кампутара, 265 00:13:45,030 --> 00:13:47,520 дазваляе вам ўзаемадзейнічаць з Ваш ноўтбук, Mac ці PC, 266 00:13:47,520 --> 00:13:51,570 як быццам вы былі, як Xbox Kinect і на самай справе зрабіць фізічныя руху значна 267 00:13:51,570 --> 00:13:54,509 як мы бачым, у гэтым бачанне будучыні. 268 00:13:54,509 --> 00:13:56,505 >> [Музыка, якая іграе] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID Малання: Так што нават калі ў вас ёсць не ведаю, як нешта падобнае 271 00:15:06,260 --> 00:15:10,050 магло быць вынайдзена ці праца на апаратным узроўні, незалежна ад таго ,. 272 00:15:10,050 --> 00:15:13,520 Нават пасля таго, як некалькі месяцаў CS50, і разуменне праграмавання 273 00:15:13,520 --> 00:15:19,460 ў больш агульным, і вэб-праграмаванне больш Нядаўна, а затым і API-інтэрфейсы, і HTTP, 274 00:15:19,460 --> 00:15:21,830 Вы будзеце мець доступ праз праграмныя інтэрфейсы API, калі вас 275 00:15:21,830 --> 00:15:24,680 хачу ўзяць адзін з іх Прылады на самай справе пагаварыць з ім 276 00:15:24,680 --> 00:15:27,180 і не прыйдзецца турбавацца аб Якая ляжыць у аснове рэалізацыя 277 00:15:27,180 --> 00:15:30,220 Дэталі, якія цалкам у адпаведнасці з гэтай паняцці слаёў 278 00:15:30,220 --> 00:15:33,610 абстракцыя, што мы бачыў на працягу семестра. 279 00:15:33,610 --> 00:15:37,990 >> Гэтак жа ў мінулыя выходныя, бачыў пару кавалачкаў навін. 280 00:15:37,990 --> 00:15:40,640 Перайсці спачатку перайдзіце на семінарах, калі вас хацелася б даведацца што-то 281 00:15:40,640 --> 00:15:42,160 больш на любую колькасць пытанняў. 282 00:15:42,160 --> 00:15:43,340 Глядзіце URL там. 283 00:15:43,340 --> 00:15:45,890 І гэты быў адпраўлены мне Чангам, які вы ведаеце, 284 00:15:45,890 --> 00:15:47,850 хто друку нашу армію сланоў. 285 00:15:47,850 --> 00:15:49,910 І гэта быў загаловак наступным чынам. 286 00:15:49,910 --> 00:15:51,280 Я ў жаху ад майго новага тэлевізара. 287 00:15:51,280 --> 00:15:54,301 Чаму я баюся, каб ператварыць гэта рэч, і вы б таксама. 288 00:15:54,301 --> 00:15:56,050 Так што мы цяпер у пазначыць у семестр, 289 00:15:56,050 --> 00:15:58,860 таксама, дзе, нават калі ў вас ёсць найменшага разумення 290 00:15:58,860 --> 00:16:02,620 пра тое, як працуе вэб, і HTTP, і бяспекі, такія рэчы, як гэта 291 00:16:02,620 --> 00:16:03,980 павінны пачаць, кідаюцца ў вочы. 292 00:16:03,980 --> 00:16:07,450 Але таксама, вы зразумееце, ці з'яўляюцца гэтыя рэчы або няма 293 00:16:07,450 --> 00:16:08,430 рэальныя пагрозы. 294 00:16:08,430 --> 00:16:10,940 >> Так што я ўзяў некалькі вынятак з гэтага артыкула тут. 295 00:16:10,940 --> 00:16:12,540 А гісторыя такая. 296 00:16:12,540 --> 00:16:14,300 Я зараз ўладальнік Новы Smart TV, якая 297 00:16:14,300 --> 00:16:18,470 абяцае даставіць струменевае мультымедыйны кантэнт, гульні, прыкладання, 298 00:16:18,470 --> 00:16:21,450 сацыяльныя медыя, і Інтэрнэт прагляд, ой, і тэлебачанне таксама. 299 00:16:21,450 --> 00:16:24,410 Адзіная праблема заключаецца ў тым, што я зараз баюся яго выкарыстоўваць, лічыць аўтар. 300 00:16:24,410 --> 00:16:29,592 Вы б таксама, калі вы прачыталі 46 старонка палітыка прыватнасці для тэлевізара. 301 00:16:29,592 --> 00:16:31,800 Колькасць дадзеных гэтай рэч збірае ашаламляе. 302 00:16:31,800 --> 00:16:35,710 Ён рэгіструе, дзе, калі, як, і як доўга вы плануеце выкарыстоўваць тэлевізар. 303 00:16:35,710 --> 00:16:38,190 Ён ўсталёўвае адсочванне печыва, як мы ўжо абмяркоўвалі, 304 00:16:38,190 --> 00:16:40,560 і маякі распрацаваны каб вызначыць, калі ў вас ёсць 305 00:16:40,560 --> 00:16:43,185 разглядаецца прыватнасці ўтрыманне або канкрэтнае паведамленне па электроннай пошце 306 00:16:43,185 --> 00:16:45,230 калі вы хочаце, каб праверыць электронную пошту на экране тэлевізара. 307 00:16:45,230 --> 00:16:48,430 Ён запісвае прыкладання, вы выкарыстоўваць, вэб-сайты, якія вы наведваеце, 308 00:16:48,430 --> 00:16:52,280 і як вы ўзаемадзейнічаеце з утрыманнем, рабіць усё, што праз ваш смарт-ТБ. 309 00:16:52,280 --> 00:16:55,470 Ён таксама, жудасным yet-- гэта мая addition-- 310 00:16:55,470 --> 00:16:58,140 мае убудаваную камеру з распазнання асоб. 311 00:16:58,140 --> 00:17:01,010 >> Мэта складаецца ў тым, каб забяспечыць кантроль жэст для тэлевізара 312 00:17:01,010 --> 00:17:05,490 і дазволіць вам увайсці ў персаналізаваныя рахункі, выкарыстоўваючы ваш твар. 313 00:17:05,490 --> 00:17:08,940 На версе, вобразы захоўваецца на экране тэлевізара, а не загружана 314 00:17:08,940 --> 00:17:09,940 да карпаратыўным серверу. 315 00:17:09,940 --> 00:17:12,520 З іншага боку, інтэрнэт- Падключэнне робіць ўвесь тэлевізар 316 00:17:12,520 --> 00:17:14,811 ўразлівыя для хакераў, якія прадэманстравалі здольнасць 317 00:17:14,811 --> 00:17:16,700 каб атрымаць поўны кантроль над машынай. 318 00:17:16,700 --> 00:17:20,880 >> Больш турботы, як быццам гэта не было дастаткова разумныя, гэта мікрафон. 319 00:17:20,880 --> 00:17:23,599 Тэлевізар адрозніваецца голас Функцыя распазнання 320 00:17:23,599 --> 00:17:26,859 што дазваляе гледачам кіраваць экран з дапамогай галасавых каманд. 321 00:17:26,859 --> 00:17:30,290 Але абслугоўванне пастаўляецца з а злавеснае папярэджанне. 322 00:17:30,290 --> 00:17:33,030 Памятаеце, што калі Вашы вымаўленыя словы ставяцца 323 00:17:33,030 --> 00:17:36,210 асабістыя або іншай канфідэнцыйнай Інфармацыя, што інфармацыя 324 00:17:36,210 --> 00:17:40,310 будзе сярод дадзеных, захопленых і перадаецца трэцяй асобе. 325 00:17:40,310 --> 00:17:40,870 Ёсць што? 326 00:17:40,870 --> 00:17:45,860 Не сказаць, асабісты або адчувальнай матэрыял перад вашым тэлевізарам. 327 00:17:45,860 --> 00:17:47,280 >> Так што гэта на самай справе па-сапраўднаму. 328 00:17:47,280 --> 00:17:50,530 І цяжка не ўбачыць, калі вас перайсці да Best Buy і да т.п. для тэлевізараў 329 00:17:50,530 --> 00:17:51,030 у гэтыя дні. 330 00:17:51,030 --> 00:17:52,540 Яны ўсе разумныя ў некаторым родзе. 331 00:17:52,540 --> 00:17:54,740 І яны атрымліваюць разумнейшыя і жудасным. 332 00:17:54,740 --> 00:17:57,490 І яны проста збор дадзеных такім чынам, што мы гаварылі пра 333 00:17:57,490 --> 00:18:01,840 а затым загрузіць яго праз HTTP ці некаторыя іншыя пратакол у нейкі сервер. 334 00:18:01,840 --> 00:18:05,720 >> Так што гэта было пацешнай артыкуле у гэтай онлайн-сайт 335 00:18:05,720 --> 00:18:08,940 тут, якія казалі пра прыватнасці памылка або памыляюся код 336 00:18:08,940 --> 00:18:11,340 што мы можам на самай справе звязаць у дыскусіі на мінулым тыдні. 337 00:18:11,340 --> 00:18:15,730 Так гэты загаловак быў, як вынікае, гісторыя ідзе тут, 338 00:18:15,730 --> 00:18:18,720 Джош Breckman працаваў Кампанія, якая прызямлілася кантракт 339 00:18:18,720 --> 00:18:22,390 распрацаваць кіраванне кантэнтам Сістэма, або CMS, як яны называюцца, 340 00:18:22,390 --> 00:18:24,380 для дастаткова вялікага сайце ўрада. 341 00:18:24,380 --> 00:18:27,300 Большая частка праекта ўдзельнічае распрацоўка сістэмы кіравання кантэнтам 342 00:18:27,300 --> 00:18:29,840 так што супрацоўнікі будуць магчымасць ствараць і падтрымліваць 343 00:18:29,840 --> 00:18:31,877 пастаянна мяняецца Змест для свайго сайта. 344 00:18:31,877 --> 00:18:34,210 Справы пайшлі вельмі добра для праз некалькі дзён пасля будзе жыць. 345 00:18:34,210 --> 00:18:37,020 Але на шосты дзень, справы пайшлі не так добра. 346 00:18:37,020 --> 00:18:39,500 Усе ўтрыманне па Сайт цалкам знік. 347 00:18:39,500 --> 00:18:42,950 І усе старонкі прывёў да дэфолту, увядзіце кантэнту вэб-старонкі. 348 00:18:42,950 --> 00:18:43,810 Упс. 349 00:18:43,810 --> 00:18:46,080 Джош быў прызваны, каб даследаваць і заўважыў 350 00:18:46,080 --> 00:18:49,390 што адзін асабліва клапотна Знешні IP адрас быў 351 00:18:49,390 --> 00:18:53,380 увайшоў і выдаляюцца ўсе Утрыманне ў сістэме. 352 00:18:53,380 --> 00:18:56,290 >> IP-адрас не належыць у нейкай замежнай хакерскай сагнутай 353 00:18:56,290 --> 00:18:58,340 на знішчэнне карыснымі Урад інфармацыя. 354 00:18:58,340 --> 00:19:05,190 Гэта рашэнне аб googlebot.com, Уласны вэб-паўзе павук Google ,. 355 00:19:05,190 --> 00:19:06,010 Упс. 356 00:19:06,010 --> 00:19:09,150 Пасля невялікага даследавання і караскацца вакол, каб знайсці noncorrupt рэзервовага капіявання, 357 00:19:09,150 --> 00:19:10,180 Джош знайшоў праблему. 358 00:19:10,180 --> 00:19:12,700 >> Карыстальнік скапіяваў і уставіў некаторы кантэнт з аднаго 359 00:19:12,700 --> 00:19:15,670 старонкі на іншую, у тым ліку Змяніць гіперспасылку 360 00:19:15,670 --> 00:19:17,577 рэдагаваць змесціва старонкі. 361 00:19:17,577 --> 00:19:20,160 Як правіла, гэта не будзе Пытанне так знешняга карыстальніка будзе 362 00:19:20,160 --> 00:19:24,320 неабходна ўвесці імя і пароль, але сістэма аўтэнтыфікацыі CMS, 363 00:19:24,320 --> 00:19:27,520 Увайсці сістэма, не ўлічваць 364 00:19:27,520 --> 00:19:30,980 складаны ўзлом метады Google Павук. 365 00:19:30,980 --> 00:19:31,700 Упс. 366 00:19:31,700 --> 00:19:33,610 >> Як высвятляецца, Google Павук не выкарыстоўваць 367 00:19:33,610 --> 00:19:36,950 печыва, а гэта значыць, што ён можа лёгка абыйсці праверку на 368 00:19:36,950 --> 00:19:39,840 рэгіструецца на печыва набор ілжывымі. 369 00:19:39,840 --> 00:19:42,620 Ён таксама не звярнуць увагу на JavaScript, які будзе нармальна 370 00:19:42,620 --> 00:19:45,170 падкажыце і перанакіроўваць карыстальнікаў якія не ўвайшлі ў сістэму. 371 00:19:45,170 --> 00:19:48,610 Яна тым не менш прытрымлівацца кожны гіперспасылка на кожнай старонцы ён знаходзіць, 372 00:19:48,610 --> 00:19:51,700 у тым ліку з Выдаліць старонку ў назве. 373 00:19:51,700 --> 00:19:52,650 Упс. 374 00:19:52,650 --> 00:19:56,070 >> Дык што ж гэта азначае ў больш тэхнічныя, але даволі даступныя ўмовы? 375 00:19:56,070 --> 00:19:58,340 Гэта проста азначае, што на працягу ўсёй іх вэб-сайце, 376 00:19:58,340 --> 00:20:02,287 яны мелі URL, не ў адрозненне ад гэтага, што Вы маглі б бачыць у праблему ўсталяваць сем. 377 00:20:02,287 --> 00:20:04,620 Нагадаем, у задачы ўсталяваць сем ці ведаць праблемы ўсталюйце сем 378 00:20:04,620 --> 00:20:06,411 што вы кінулі выклік, сярод іншага, 379 00:20:06,411 --> 00:20:08,570 прадаваць акцыі ад імя карыстальнікаў. 380 00:20:08,570 --> 00:20:14,010 Але рэалізацыі гэтага функцыю па шляху з атрымліваеце праз гіперспасылкі ў вашым карыстальнік 381 00:20:14,010 --> 00:20:16,880 Інтэрфейс, верагодна, не самы разумны ідэя 382 00:20:16,880 --> 00:20:20,300 таму што калі ваш сайт нейкім чынам даступныя альбо чалавекам 383 00:20:20,300 --> 00:20:23,577 хто націснуўшы вакол або купіць бот, як Google, або павук 384 00:20:23,577 --> 00:20:26,160 як яны называюцца, што гэта проста сканавання Інтэрнэту, спрабуючы індэкса 385 00:20:26,160 --> 00:20:29,060 Вэб у якасці пошукавай сістэмы, яны маглі вельмі лёгка 386 00:20:29,060 --> 00:20:31,340 ўдарыў праз атрымаць гэты від URL. 387 00:20:31,340 --> 00:20:33,770 І гэта функцыянальна эквівалентна, у дадзеным выпадку, 388 00:20:33,770 --> 00:20:37,000 продаж усіх акцый Google. 389 00:20:37,000 --> 00:20:40,030 >> Цяпер, шчыра кажучы, гэта цалкам асліны, што CMS 390 00:20:40,030 --> 00:20:43,240 б JavaScript і печыва рэалізаваць сваю сістэму ўваходу 391 00:20:43,240 --> 00:20:47,100 і не робіць, што на боку сервера, а Вы, хлопцы, і будзе ў Pset 7-- 392 00:20:47,100 --> 00:20:49,940 ёсць login.php file-- заўсёды, заўсёды, 393 00:20:49,940 --> 00:20:52,789 заўсёды бяспека павінна быць зроблена на боку сервера, 394 00:20:52,789 --> 00:20:56,080 не на боку кліента, таму што, як гэта Артыкул прадугледжвае і вы маглі б сябе 395 00:20:56,080 --> 00:20:59,600 см у нейкі момант, гэта трывіяльна для карыстальніка, добра гэта ці дрэнна, 396 00:20:59,600 --> 00:21:02,860 каб проста выключыць JavaScript не кажучы ўжо пра печыва. 397 00:21:02,860 --> 00:21:06,020 Так што гэта ваша штодзённая WTF. 398 00:21:06,020 --> 00:21:07,970 >> Там яшчэ адзін, які гэта проста нейкая страшная, 399 00:21:07,970 --> 00:21:11,360 так што я буду казаць пра гэта, калі толькі як урок жыцця. 400 00:21:11,360 --> 00:21:14,850 Кожны раз, калі вы выкарыстоўваеце прыкладанне называецца як Snapchat і да т.п. 401 00:21:14,850 --> 00:21:19,380 што кажа гэтыя фатаграфіі толькі на працягу пяць секунд, дзесяць секунд, ці яшчэ шмат чаго. 402 00:21:19,380 --> 00:21:21,680 Яны эфемерныя Гэта значыць абсалютна не так. 403 00:21:21,680 --> 00:21:25,670 Як няма ніякага спосабу, лічбавы, для рэалізацыі той ці іншай форме відэа, 404 00:21:25,670 --> 00:21:30,150 ці малюнак, або тэкставая абмену, такіх што атрымальнік на іншым канцы 405 00:21:30,150 --> 00:21:31,660 не можа нейкім чынам захаваць дадзеныя. 406 00:21:31,660 --> 00:21:34,300 >> У найбольш наіўным чынам, хто- можа прыняць на свой тэлефон. 407 00:21:34,300 --> 00:21:36,850 І яны маюць другое акно 10 у той час як, гледзячы на ​​некаторыя аснастцы 408 00:21:36,850 --> 00:21:39,410 проста ўзяць нейкі іншы тэлефон і сфатаграфаваць яго, відавочна. 409 00:21:39,410 --> 00:21:41,660 Такім чынам, вы можаце захаваць што-то ў лічбавым такім чынам. 410 00:21:41,660 --> 00:21:44,620 Некаторыя з вас ведаюць, як узяць скрыншоты на вашым тэлефоне. 411 00:21:44,620 --> 00:21:49,290 На самай справе, калі вы не ведаеце, гэта, зразумець, што, па меншай меры Snapchat, 412 00:21:49,290 --> 00:21:51,040 і я думаю, што іншыя прыкладання ў гэтыя дні, 413 00:21:51,040 --> 00:21:53,720 па меншай меры, сказаць вам, калі атрымальнік мае на самай справе 414 00:21:53,720 --> 00:21:55,310 прынятыя скрыншот вашага ладу. 415 00:21:55,310 --> 00:22:00,870 >> Але што яшчэ горш, гэта было snappening, як хтосьці прыдумаў яго нядаўна, 416 00:22:00,870 --> 00:22:04,680 дзе некаторыя 100000 здымкі былі вызваленыя 417 00:22:04,680 --> 00:22:09,310 у тое, што называецца торэнт-файл на розных вэб-сайтах, у канчатковым рахунку. 418 00:22:09,310 --> 00:22:12,000 І гэтыя ўтрымлівалі цэлы букет асабістых паведамленняў і пастоў. 419 00:22:12,000 --> 00:22:15,210 Аказваецца большасць з іх дабраякасныя, так не тое, што вы маглі б чакаць. 420 00:22:15,210 --> 00:22:17,580 Але таму, што людзі былі выкарыстоўваць вэб-сайт трэцяга боку, 421 00:22:17,580 --> 00:22:20,270 уваход з іх Snapchat імя карыстальніка і пароль, а затым 422 00:22:20,270 --> 00:22:23,470 захавання ўсіх сваіх здымкаў на гэтым сайце трэцяй боку. 423 00:22:23,470 --> 00:22:26,130 І гэта было тое, што трэці бок сайт, які быў узламаны, 424 00:22:26,130 --> 00:22:30,710 які проста меў на ўвазе каго-то зразумеў, як каб атрымаць усе 100 000 плюс гэтых малюнкаў 425 00:22:30,710 --> 00:22:33,822 у іх уласнай цвёрдым дыску для наступнага размеркавання. 426 00:22:33,822 --> 00:22:36,030 Шчыра кажучы, тут таксама, гэта свайго роду з асліны, што Snapchat 427 00:22:36,030 --> 00:22:39,360 рэалізаваная такім чынам, што трэцяя бок можа сартаваць перахопу 428 00:22:39,360 --> 00:22:43,310 дадзеныя і што ён не прывязаны да вашага ўласнае прыкладанне працуе на тэлефоне. 429 00:22:43,310 --> 00:22:46,947 Але і тут, разумеюць, што яны рэчы не павінны злавіць вас знянацку, 430 00:22:46,947 --> 00:22:49,030 ці, па меншай меры, павінна быць урокам жыцця тут. 431 00:22:49,030 --> 00:22:52,220 Калі вы хацелі б тэхнічным Дэталі, пайсці ў той URL ёсць 432 00:22:52,220 --> 00:22:53,570 гэта ў сённяшніх слайдаў. 433 00:22:53,570 --> 00:23:00,960 Добра, якія-небудзь пытанні па сённяшнія ўрокі жыцця ў CS? 434 00:23:00,960 --> 00:23:02,710 Павярніце, што ад. 435 00:23:02,710 --> 00:23:04,970 Усё, што заўгодна? 436 00:23:04,970 --> 00:23:06,301 Усё, што заўгодна? 437 00:23:06,301 --> 00:23:09,050 У мяне ёсць шмат людзей, якія зарэгістраваліся іх Snapchat або што-то цяпер. 438 00:23:09,050 --> 00:23:11,690 >> Добра, так SQL, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Давайце абгарнуць гэта. 440 00:23:12,509 --> 00:23:14,300 А таксама, нават пры тым, мы толькі драпіны 441 00:23:14,300 --> 00:23:16,310 Паверхня гэтага мову, мы дамо вам 442 00:23:16,310 --> 00:23:18,930 дастаткова мовы ў выглядзе Pset 7 443 00:23:18,930 --> 00:23:22,140 так што вы можаце вырашыць некаторыя даволі часта функцыянальнасць. 444 00:23:22,140 --> 00:23:24,912 Але разумею, што ёсць пара рэчы, якія мы не патрабуюць ад вас, 445 00:23:24,912 --> 00:23:27,120 але яны збіраюцца быць важна прыйсці канчатковыя праекты 446 00:23:27,120 --> 00:23:30,760 і, вядома, прыходзяць рабіць фактычная сайты з рэальных карыстальнікаў 447 00:23:30,760 --> 00:23:32,040 гэта дызайнерскае рашэнне. 448 00:23:32,040 --> 00:23:34,460 >> Атрымліваецца, што ў база дадзеных MySQL, вы 449 00:23:34,460 --> 00:23:37,460 ёсць гроздья выбару, як тыпы дадзеных для вашых калонак 450 00:23:37,460 --> 00:23:41,670 і іншыя рэчы, але вы таксама павінны Выбар так званага захоўвання 451 00:23:41,670 --> 00:23:44,570 Рухавік для ўсіх вашых дадзеных, роду файлавай сістэме, 452 00:23:44,570 --> 00:23:46,700 калі вы знаёмыя, для ўсіх вашых дадзеных. 453 00:23:46,700 --> 00:23:48,830 Які фармат будзе ў канчатковым выніку гэта захоўваецца ў? 454 00:23:48,830 --> 00:23:53,300 І самым распаўсюджаным, мабыць, быў MyISAM і InnoDB, тэхнічныя тэрміны 455 00:23:53,300 --> 00:23:56,060 што мы будзем клапаціцца аб толькі да такой ступені, што адзін мае 456 00:23:56,060 --> 00:23:58,500 і не трэба наступная асаблівасць. 457 00:23:58,500 --> 00:24:00,390 >> Выкажам здагадку, што ў вас ёсць трохі інтэрната халадзільнік. 458 00:24:00,390 --> 00:24:03,030 І выкажам здагадку, што вы і вашыя сусед па пакоі, хто падзяляе гэтую халадзільнік, 459 00:24:03,030 --> 00:24:04,682 сапраўды любіў скажам малака. 460 00:24:04,682 --> 00:24:07,140 І гэта, па сутнасці, як гісторыя была расказана мне шлях назад 461 00:24:07,140 --> 00:24:10,890 у той дзень, калі я ўзяў курс называецца CS 161 Аперацыйныя сістэмы, якія 462 00:24:10,890 --> 00:24:12,580 Аналагічна разглядаецца тэмай. 463 00:24:12,580 --> 00:24:13,760 Такім чынам, вы атрымалі гэты халадзільнік. 464 00:24:13,760 --> 00:24:14,630 Ты з малака. 465 00:24:14,630 --> 00:24:17,000 І вы прыходзіце дадому, ваша суседка-х яшчэ ў класе або што-то, 466 00:24:17,000 --> 00:24:19,208 і вы вырашылі, што я збіраюся выйсці і атрымаць трохі малака. 467 00:24:19,208 --> 00:24:22,630 Такім чынам, вы зачыніць халадзільнік, блакаванне пакоя ў інтэрнаце, пайсці праз вуліцу 468 00:24:22,630 --> 00:24:25,330 у CVS ці там, дзе і атрымаць у чарзе, каб купіць трохі малака. 469 00:24:25,330 --> 00:24:28,960 >> Між тым, ваш сусед па пакоі вернецца дадому ад класа, трапляе ў пакоі інтэрната, 470 00:24:28,960 --> 00:24:31,802 адкрывае халадзільнік, таксама разумее, ooph, мы з малака. 471 00:24:31,802 --> 00:24:33,760 Такім чынам, ён ці яна зачыняецца халадзільнік, а затым адбываецца 472 00:24:33,760 --> 00:24:35,610 каб перайсці на іншы CVS, якія, здараецца, 473 00:24:35,610 --> 00:24:38,470 у адным квартале ад іншых CVS на плошчы, і атрымлівае ў адпаведнасці 474 00:24:38,470 --> 00:24:40,230 туды, каб атрымаць крыху малака. 475 00:24:40,230 --> 00:24:42,524 Цяпер, вядома, некалькі хвілін пазней, вы абодва атрымаеце назад, 476 00:24:42,524 --> 00:24:44,690 і горшы з усіх магчымых Вынікі здарылася. 477 00:24:44,690 --> 00:24:45,792 У вас абодвух малако. 478 00:24:45,792 --> 00:24:47,500 І вы сапраўды не як малако, што шмат. 479 00:24:47,500 --> 00:24:49,625 Так адзін з іх з'яўляецца проста збіраецца псавацца ў нейкі момант. 480 00:24:49,625 --> 00:24:55,941 Так што цяпер у вас ёсць празмернае колькасць малака ў халадзільніку ўсё таму, што, чаму? 481 00:24:55,941 --> 00:24:57,072 >> [Неразборліва] 482 00:24:57,072 --> 00:24:59,780 DAVID Малання: Так, вы не зрабілі неяк размаўляць адзін з адным 483 00:24:59,780 --> 00:25:00,904 што вы атрымлівалі малако. 484 00:25:00,904 --> 00:25:04,320 Такім чынам, у найпростых спосабы ў чалавечым свеце, 485 00:25:04,320 --> 00:25:08,390 як Вы маглі б пазбегнуць гэтага па-дурному Сцэнар не адбывалася такіх 486 00:25:08,390 --> 00:25:09,750 што вы толькі ў канчатковым выніку з адной. 487 00:25:09,750 --> 00:25:10,840 Тэкст іх, ды добра. 488 00:25:10,840 --> 00:25:12,877 Але як інакш? 489 00:25:12,877 --> 00:25:13,460 Пасля ён адзначае. 490 00:25:13,460 --> 00:25:14,626 DAVID Малання: пост гэта да ведама. 491 00:25:14,626 --> 00:25:17,150 Любая форма зносін што кажа ваш сусед па пакоі 492 00:25:17,150 --> 00:25:18,670 не ідуць у халадзільнік для малака. 493 00:25:18,670 --> 00:25:20,440 Я збіраюся пайсці папоўніць самастойна. 494 00:25:20,440 --> 00:25:22,770 Такім чынам, вы як-то трэба для блакавання гэтага рэсурсу. 495 00:25:22,770 --> 00:25:27,180 Такім чынам, мы можам зрабіць this-- мы можам выгляд разбурыць гісторыю і ператварыцца ў гісторыі CS 496 00:25:27,180 --> 00:25:30,360 у выніку чаго думаць пра гэта як раз як Зменная, якая захоўвае нейкую каштоўнасць. 497 00:25:30,360 --> 00:25:32,570 І прама цяпер, каштоўнасць малака роўная нуля, 498 00:25:32,570 --> 00:25:35,410 якія вы не хочаце, каб вашы сусед па пакоі, каб агледзець гэтую зменную 499 00:25:35,410 --> 00:25:38,730 а затым прыняць рашэнне яго ці сябе у залежнасці ад стану гэтай зменнай 500 00:25:38,730 --> 00:25:42,430 калі вы знаходзіцеся ў працэсе змены стану гэтай зменнай. 501 00:25:42,430 --> 00:25:46,140 >> Так адным з кірункаў SQL, што мы даць вам у Pset 7 спецыфікацыі 502 00:25:46,140 --> 00:25:47,310 гэта адзін тут. 503 00:25:47,310 --> 00:25:49,740 І мы не трацім велізарнае Колькасць часу казаць пра гэта. 504 00:25:49,740 --> 00:25:55,100 Але, аказваецца, калі вы спрабуеце купіць некаторы запас у CS50 фінансаў 505 00:25:55,100 --> 00:25:58,000 што ў вас ужо ёсць некаторыя акцыі, вам 506 00:25:58,000 --> 00:26:01,750 хачу быць у стане зрабіць шэраг рэчаў імгненна разам. 507 00:26:01,750 --> 00:26:04,360 Вы хочаце, каб мець магчымасць эфектыўна, на высокім узроўні, 508 00:26:04,360 --> 00:26:06,700 праверыць усё ў парадку, калі я хачу каб купіць больш акцый Free, 509 00:26:06,700 --> 00:26:08,780 дробныя акцыі, мы гаварыць у спецыфікацыі, 510 00:26:08,780 --> 00:26:10,660 Я хачу, каб першай праверкі колькі акцый у мяне ёсць. 511 00:26:10,660 --> 00:26:11,810 І мяркую, што гэта пяць. 512 00:26:11,810 --> 00:26:14,600 І выкажам здагадку, што я хачу, каб купіць больш за 10, я ў канчатковым выніку 513 00:26:14,600 --> 00:26:17,069 хачу мець 15 акцыямі. 514 00:26:17,069 --> 00:26:18,360 Так што ў мяне два пытанні. 515 00:26:18,360 --> 00:26:20,230 Што дзяржава зменнай? 516 00:26:20,230 --> 00:26:21,470 Што стан запар? 517 00:26:21,470 --> 00:26:22,970 Колькі акцый я магу сабе мець? 518 00:26:22,970 --> 00:26:24,636 Тады вы хочаце, каб ісці наперад і абнаўляць яго. 519 00:26:24,636 --> 00:26:27,720 Дык вось аналаг малако ў тым, што вы праверыць радок, 520 00:26:27,720 --> 00:26:30,730 а затым вы хочаце абнавіць яго таму што, калі вы хочаце купіць 10 акцый, 521 00:26:30,730 --> 00:26:32,521 Вы не хочаце, каб змяніць радок 10, вы 522 00:26:32,521 --> 00:26:35,300 хочаце змяніць яго на 5 плюс 10 ці, вядома, 15. 523 00:26:35,300 --> 00:26:40,030 >> Гэты радок кода гарантуе, што гэтыя два канцэптуальныя ідэі 524 00:26:40,030 --> 00:26:42,810 адбудзецца разам або няма наогул. 525 00:26:42,810 --> 00:26:46,920 Ніхто, у тым ліку нейкі іншы карыстальнік хто ўвайшоў у тую жа вэб-сайце, 526 00:26:46,920 --> 00:26:49,900 можа як-то перапыніць праверка радкі 527 00:26:49,900 --> 00:26:52,960 і абнаўленне радкі, выбраць і абнаўленне, калі хочаце. 528 00:26:52,960 --> 00:26:57,360 І сінтаксіс ня супер відавочна, але гэта адзін радок, доўга гэта, 529 00:26:57,360 --> 00:27:01,150 гарантуе, што гэтыя дзве аперацыі праверыць зменную або праверыць радок 530 00:27:01,150 --> 00:27:04,660 і абнавіць шэраг здарыцца атамна. 531 00:27:04,660 --> 00:27:06,849 >> О, тут мы ідзем зноў. 532 00:27:06,849 --> 00:27:07,890 Тэкставае паведамленне на маім тэлефоне. 533 00:27:07,890 --> 00:27:09,954 Так давайце зробім гэта трохі больш канкрэтнымі. 534 00:27:09,954 --> 00:27:12,120 Выкажам здагадку, што вы не рэалізацыі халадзільнік, 535 00:27:12,120 --> 00:27:16,400 і вы не рэалізацыі Pset 7, але фактычная банк, 536 00:27:16,400 --> 00:27:20,000 або ATM, Automated Teller Машына, у якім вы нейкім чынам 537 00:27:20,000 --> 00:27:22,960 хачу, каб мець магчымасць для пашырэння магчымасцяў карыстальнікам перадаваць грошы 538 00:27:22,960 --> 00:27:24,500 з аднаго рахункі на іншы. 539 00:27:24,500 --> 00:27:25,100 ОК, трымайся. 540 00:27:25,100 --> 00:27:26,683 Я збіраюся адключыць гэта цяпер, дзякуй. 541 00:27:26,683 --> 00:27:30,450 Таму мы хочам, каб перавесці грошы з аднаго нумара рахунку 542 00:27:30,450 --> 00:27:33,600 у іншай ўліковага запісу лік, у прыватнасці, $ 100. 543 00:27:33,600 --> 00:27:37,690 Так што гэта свайго роду адвольнае прыклад, у якім вы, банкамат, 544 00:27:37,690 --> 00:27:41,060 магчыма, захочаце выканаць два SQL запыты, адняць з адной ўліковага запісу, 545 00:27:41,060 --> 00:27:42,430 і дадаць у іншы ўліковага запісу. 546 00:27:42,430 --> 00:27:46,766 Але вы хочаце, каб пераканацца, што гэтыя дзве лініі і адбудзецца ці не на ўсіх. 547 00:27:46,766 --> 00:27:48,640 Вы што-то не хачу атрыманне перарываецца. 548 00:27:48,640 --> 00:27:51,440 Вы не адны разумныя дрэнны хлопец як-то стаяў у Банку Амерыкі 549 00:27:51,440 --> 00:27:53,270 з двума банкаматаў у пярэдняй з яго і як-то 550 00:27:53,270 --> 00:27:55,270 роду набраўшы ў каманды, у той жа час, 551 00:27:55,270 --> 00:28:01,230 спадзяюся, спрабуючы ўтрымаць $ 200 замест $ 100 і толькі маючы $ 100 крэдытуецца. 552 00:28:01,230 --> 00:28:04,450 Карацей кажучы, вы хочаце, каб гэта паводзяць сябе менавіта так, як вы чакаеце. 553 00:28:04,450 --> 00:28:06,540 >> І тое, як вы робіце гэта ў SQL база дадзеных 554 00:28:06,540 --> 00:28:09,350 Вы абгарніце яго ў тое, што называецца здзелка. 555 00:28:09,350 --> 00:28:14,290 Літаральна ў SQL, вы можаце патэлефанаваць CS50-х Функцыя запыту з цытатай канец цытаты пачатку 556 00:28:14,290 --> 00:28:15,370 Здзелка. 557 00:28:15,370 --> 00:28:18,640 Тады вы можаце выканаць любую колькасць з наступных запытаў SQL, 558 00:28:18,640 --> 00:28:20,870 але ні адзін з іх не прымаць ўплывае на базе 559 00:28:20,870 --> 00:28:25,880 да выкліку запыту цытата канец цытаты здзейсніць, калі яшчэ раз, выкарыстоўваючы PHP. 560 00:28:25,880 --> 00:28:29,810 І такім чынам, вы можаце быць упэўнены, што нават калі ў вас ёсць 1000 карыстальнікаў ўсе 561 00:28:29,810 --> 00:28:32,080 патрапіўшы базы дадзеных у той жа час, SQL- 562 00:28:32,080 --> 00:28:34,540 абяцаю, што гэта два запыту будзе 563 00:28:34,540 --> 00:28:36,740 рэалізаваны адзін за адным. 564 00:28:36,740 --> 00:28:40,330 Такім чынам, вы не ў канчатковым выніку з лішкам малако або няправільны памер, у выніку, 565 00:28:40,330 --> 00:28:40,830 грошай. 566 00:28:40,830 --> 00:28:43,110 >> Так што майце гэта на ўвазе, ня столькі для Pset 7 567 00:28:43,110 --> 00:28:45,250 але для канчатковых праектаў калі вы на самой справе 568 00:28:45,250 --> 00:28:49,690 спрабуюць перамяшчаць дадзеныя па табліцах, як вы маглі б тут. 569 00:28:49,690 --> 00:28:53,980 Але, мабыць, яшчэ больш просты і больш Відавочна, каб зразумець, з прыкладу 570 00:28:53,980 --> 00:28:54,860 гэта адзін тут. 571 00:28:54,860 --> 00:28:57,760 А хто-то па электроннай пошце нам пра гэта толькі на днях 572 00:28:57,760 --> 00:28:59,600 калі ён убачыў нешта падобнае ў Інтэрнэце. 573 00:28:59,600 --> 00:29:03,480 >> Так, наколькі мне вядома, у кантактным сістэмы не схільныя гэтай атацы. 574 00:29:03,480 --> 00:29:06,637 І я паняцця не маю, калі ён нават выкарыстоўвае база дадзеных SQL пад капотам. 575 00:29:06,637 --> 00:29:08,470 Але давайце выкарыстоўваць яго для дзеля абмеркавання. 576 00:29:08,470 --> 00:29:10,178 Вось экран, што Гарвардскі людзі, як правіла, 577 00:29:10,178 --> 00:29:13,620 каб убачыць пры ўваходзе ў сістэму з Гарвардскі ідэнтыфікацыйны нумар і іх кантактны. 578 00:29:13,620 --> 00:29:19,020 І мяркую, што штыфт сістэма былі рэалізаваны ў PHP і з MySQL 579 00:29:19,020 --> 00:29:22,000 базы дадзеных, код, які хто- магчыма, напісаныя гадоў таму 580 00:29:22,000 --> 00:29:23,270 можа выглядаць наступным чынам. 581 00:29:23,270 --> 00:29:25,230 Па-першае, абвясціць Пераменная называецца імя карыстальніка. 582 00:29:25,230 --> 00:29:27,560 І проста атрымаць, што з POST суперглобальная. 583 00:29:27,560 --> 00:29:30,140 Тады атрымаеце яшчэ адну зменную называецца пароль і зрабіць тое ж самае. 584 00:29:30,140 --> 00:29:33,080 А потым проста выканаць гэта доўга запыт тут, 585 00:29:33,080 --> 00:29:36,690 выберыце зорка з карыстальнікаў, дзе Імя карыстальніка роўны такой- 586 00:29:36,690 --> 00:29:38,510 і пароль роўная такой-то. 587 00:29:38,510 --> 00:29:40,660 >> Звярніце ўвагу, што кучаравыя брекеты я выкарыстаў тут 588 00:29:40,660 --> 00:29:42,880 проста маю на ўвазе, каб PHP, ідуць наперад і замяніць 589 00:29:42,880 --> 00:29:45,400 значэнне гэтых двух Зменныя прама там. 590 00:29:45,400 --> 00:29:50,090 Яны не абавязкова, але яны, як правіла, каб пазбегнуць тонкія сінтаксічныя памылкі. 591 00:29:50,090 --> 00:29:53,650 Так гэта выглядае цалкам правільна на першы погляд. 592 00:29:53,650 --> 00:29:54,240 І гэта. 593 00:29:54,240 --> 00:29:56,680 Вы маглі б рэалізаваць Сістэма кантактны такім чынам. 594 00:29:56,680 --> 00:30:00,460 >> Але выкажам здагадку, што супер разумны і злы студэнт 595 00:30:00,460 --> 00:30:03,020 ўваход гэта як свайго пальца. 596 00:30:03,020 --> 00:30:05,550 Так я выдаліў кулю знакі тут, у макеце, 597 00:30:05,550 --> 00:30:08,760 і я на самой справе паказаў, тое, што ён ці яна можа быць набраўшы. 598 00:30:08,760 --> 00:30:10,350 І гэта крыху дзіўна. 599 00:30:10,350 --> 00:30:13,850 Але тое, што выскоквае ў Вас на патэнцыйна непакой аб ўваходзе карыстальніка, 600 00:30:13,850 --> 00:30:16,450 нават калі вы паняцця не маеце, што Напад ін'екцыі SQL азначае. 601 00:30:16,450 --> 00:30:20,300 Чаму гэта выглядае трохі падазрона? 602 00:30:20,300 --> 00:30:21,050 Што гэта? 603 00:30:21,050 --> 00:30:21,550 [Неразборліва] 604 00:30:21,550 --> 00:30:24,260 DAVID Малання: або трохі падазроным. 605 00:30:24,260 --> 00:30:26,310 На самай справе, гэта ключавое слова з SQL. 606 00:30:26,310 --> 00:30:28,105 Так што не абяцае нічога добрага. 607 00:30:28,105 --> 00:30:29,980 Справа ў тым, што ёсць усе гэтыя адзінкавыя двукоссі 608 00:30:29,980 --> 00:30:32,646 there-- на самай справе, адзін з самых простых спосабы зламаць некаторыя базы дадзеных 609 00:30:32,646 --> 00:30:35,880 гэта, набраўшы ў імя, як O'Reilly што мае апостраф у яго 610 00:30:35,880 --> 00:30:38,600 таму што, калі чалавек, які напісаў код за кулісамі 611 00:30:38,600 --> 00:30:41,570 не прымаць пад увагу, што можа быць адзінарныя двукоссі ў карыстальніка 612 00:30:41,570 --> 00:30:45,060 ўваход, і ён або яна выкарыстоўвае адзінарныя двукоссі ў сваім кодзе, 613 00:30:45,060 --> 00:30:46,040 дрэнныя рэчы могуць здарыцца. 614 00:30:46,040 --> 00:30:47,870 >> На самай справе, што яшчэ горш, разгледзець гэтае пытанне. 615 00:30:47,870 --> 00:30:50,600 Калі б гэта было зноў код што нехта ў Гарвардзе гадоў 616 00:30:50,600 --> 00:30:53,100 таму напісаў для штыфта Сістэма, звярніце ўвагу, што гэта 617 00:30:53,100 --> 00:30:56,220 збіраецца атрымаць замешчаных імя карыстальніка і пароль 618 00:30:56,220 --> 00:30:59,780 Калі карыстальнік зноў skroob як іх імя карыстальніка 619 00:30:59,780 --> 00:31:03,960 а затым адзін, два, тры, чатыры, пяць, цытата або цытата канец цытаты аднаго роўных 620 00:31:03,960 --> 00:31:04,660 працытаваць адзін. 621 00:31:04,660 --> 00:31:07,220 І звярніце ўвагу, што ключ Тут карыстальнік не 622 00:31:07,220 --> 00:31:09,900 пачаў свой пароль ці іх кантактны з цытатай. 623 00:31:09,900 --> 00:31:12,610 І яны не скончыліся яго з цытаты, таму што ён ці яна 624 00:31:12,610 --> 00:31:16,315 пры ўмове, што, калі праграміст не быў такім вострым, 625 00:31:16,315 --> 00:31:18,690 яны будуць мець тыя, адзінарныя двукоссі ў сваім кодзе. 626 00:31:18,690 --> 00:31:19,860 >> Дык вось код. 627 00:31:19,860 --> 00:31:23,820 І замена, што можа зараз адбыцца гэта. 628 00:31:23,820 --> 00:31:26,350 І я падкрэсліў, што карыстач увёў ст. 629 00:31:26,350 --> 00:31:28,480 Таму, перш чым, пасля. 630 00:31:28,480 --> 00:31:33,330 І звярніце ўвагу, што мякка неспакой зараз аб правай палове гэтага SQL кода? 631 00:31:33,330 --> 00:31:36,300 Гэта трохі больш складаным, па агульным прызнанні, чым запытаў мы бачылі. 632 00:31:36,300 --> 00:31:38,550 Але гэта не можа быць добра, калі вы 633 00:31:38,550 --> 00:31:42,240 кажучы абярыце зорку, якая абярыце усе са стала карыстальніка 634 00:31:42,240 --> 00:31:46,630 дзе імя карыстальніка роўны skroob і пароль роўны адзін, два, тры, чатыры, 635 00:31:46,630 --> 00:31:49,610 пяць ці адзін складае адзін. 636 00:31:49,610 --> 00:31:53,860 Што лагічнае следства гэтага апошняга пункта меркавана? 637 00:31:53,860 --> 00:31:55,650 Гэта проста заўсёды дакладна. 638 00:31:55,650 --> 00:31:59,930 >> І таму, што мы-то здагадаўся або высветлілі метадам спроб і памылак 639 00:31:59,930 --> 00:32:02,760 што праграміст, які напісаў гэты код не зрабiў 640 00:32:02,760 --> 00:32:07,250 прадбачыць чалавечую або дрэнны чалавек набраўшы ў адзінарныя двукоссі, а, 641 00:32:07,250 --> 00:32:10,350 мы можам сінтаксічна завяршыць SQL-запыт 642 00:32:10,350 --> 00:32:12,260 з чым-то бессэнсоўны але што-то, што 643 00:32:12,260 --> 00:32:15,930 сінтаксічна няслушна што заўсёды праўдзівы. 644 00:32:15,930 --> 00:32:19,130 Так што, калі гэты код выкарыстоўваецца для адказу пытанне праўдзівымі або ілжывымі павінны 645 00:32:19,130 --> 00:32:22,930 гэты карыстальнік будзе дазволена прайсці, Адказ заўсёды, мабыць, збіраецца 646 00:32:22,930 --> 00:32:26,930 каб быць праўдай, таму што гэта заўсёды будзе выбраць нешта з базы дадзеных 647 00:32:26,930 --> 00:32:29,280 таму што адзін, вядома, заўсёды роўная адзінцы. 648 00:32:29,280 --> 00:32:30,360 >> Так у чым жа рашэнне? 649 00:32:30,360 --> 00:32:33,290 Ну ў Pset 7, мы на самай справе Каб пазбегнуць гэтага ўсе разам. 650 00:32:33,290 --> 00:32:37,360 Мы даем вам функцыю запыту, і мы рэкамендуем вам выкарыстоўваць пытальнікі 651 00:32:37,360 --> 00:32:40,430 ў якасці запаўняльнікаў, аналагічныя па духу PRINTF у% х, 652 00:32:40,430 --> 00:32:43,710 але тое, што ключ аб пытальных знакаў вось калі вы на самой справе прачытаць 653 00:32:43,710 --> 00:32:46,950 functions.php, дзе наш Функцыя запыту будзе рэалізаваны, 654 00:32:46,950 --> 00:32:52,780 гэтыя знакі пытання выратаваліся, чаго-небудзь патэнцыйна небяспечным 655 00:32:52,780 --> 00:32:58,210 як апостраф уключаны у які ўцёк адной цытатай. 656 00:32:58,210 --> 00:33:00,590 >> Так што гэта тое, што на самай справе адбываецца, калі вас 657 00:33:00,590 --> 00:33:04,850 выкарыстоўваць функцыю запыту CS50 або любую колькасць з іншых бясплатных бібліятэк, якія 658 00:33:04,850 --> 00:33:06,000 зрабіць тое ж самае. 659 00:33:06,000 --> 00:33:09,850 Не мае значэння, у дадзеным выпадку, у зялёны, калі карыстальнік увёў у адной цытатай 660 00:33:09,850 --> 00:33:12,070 таму што ў запыце функцыя, якую мы напісалі, 661 00:33:12,070 --> 00:33:15,120 збіраемся дадаць зваротны слэш перад любая такая небяспечная цытата. 662 00:33:15,120 --> 00:33:17,360 Так што гэта не так, у Справа ў тым, будзе законным. 663 00:33:17,360 --> 00:33:20,910 Гэта як набраўшы ў вар'ят глядзіць пароль гэта, вядома, не збіраюся 664 00:33:20,910 --> 00:33:23,490 быць актуальнай пароль skroob гульнявая. 665 00:33:23,490 --> 00:33:28,260 >> Так вынас для CS50 з'яўляецца адным, абсалютна заўсёды выкарыстоўваць што-то 666 00:33:28,260 --> 00:33:30,860 як функцыі запыту CS50 ў або асноўная бібліятэка, 667 00:33:30,860 --> 00:33:32,560 якія, здараецца, называюць PDO. 668 00:33:32,560 --> 00:33:35,880 Але ніколі, ніколі, ніколі не такі код 669 00:33:35,880 --> 00:33:39,472 без ўцёкаў або ачысткі як гаворыцца вашы ўваходы. 670 00:33:39,472 --> 00:33:42,430 І вы ў нейкі момант, верагодна, трапляюцца нейкім сайце, як гэта. 671 00:33:42,430 --> 00:33:46,060 На самай справе, гэта, здаецца, справа як у аэрапортах і гатэлях месцаў 672 00:33:46,060 --> 00:33:48,880 дзе ў іх ёсць бясплатны Wi-Fi Доступ што ў вас ёсць, каб увайсці ў, 673 00:33:48,880 --> 00:33:51,010 гэтыя вэб-сайты заўсёды жахліва рэалізаваны. 674 00:33:51,010 --> 00:33:55,680 І так-то весела дома практыкаванні, не ў зламысных мэтах або больш 675 00:33:55,680 --> 00:33:59,170 з задавальнення на дарозе практыкаванні, гэта проста набярыце 676 00:33:59,170 --> 00:34:02,850 апостраф, апостраф, у форме на нейкім сайце 677 00:34:02,850 --> 00:34:03,810 і паглядзець, што адбываецца. 678 00:34:03,810 --> 00:34:06,660 І калі сервер выходзіць з ладу або дае Вы нейкі паведамленне пра памылку, 679 00:34:06,660 --> 00:34:09,690 вельмі можа быць, што хто-то не чакаў гэтага. 680 00:34:09,690 --> 00:34:15,239 І тады вы павінны папярэдзіць належнае Улады і не перайсці далей. 681 00:34:15,239 --> 00:34:20,843 >> Так што цяпер вы, хлопцы, павінны, мы спадзяемся, зразумець крыху больш вылюдка гумар тут. 682 00:34:20,843 --> 00:34:24,120 >> [Смех] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID Малання: Вы ведаеце, вы вырадак. 685 00:34:29,070 --> 00:34:30,944 На працягу наступных некалькіх гадоў, вы будзеце памятаць 686 00:34:30,944 --> 00:34:33,520 хто мала Бобі Сталы з'яўляецца з-за гэтага мультфільма тут. 687 00:34:33,520 --> 00:34:36,760 Так што майце гэта на ўвазе, як мы пераключэнне кантэксту ў апошні раз 688 00:34:36,760 --> 00:34:38,770 сёння ў JavaScript. 689 00:34:38,770 --> 00:34:41,600 Мы правялі даволі мала Час ад сінтаксісу PHP 690 00:34:41,600 --> 00:34:43,440 таму што гэта на самай справе супер падобны на C. 691 00:34:43,440 --> 00:34:47,300 І дастаткова добра, JavaScript занадта супер падобны на сінтаксіс мовы C 692 00:34:47,300 --> 00:34:49,639 а таксама мы ўбачым у толькі на імгненне, і як мы будзем 693 00:34:49,639 --> 00:34:51,205 см у канцы гэтага тыдня, у прыватнасці. 694 00:34:51,205 --> 00:34:54,080 Што вы можаце зрабіць з гэтай мовай, хоць, тым больш магутным, 695 00:34:54,080 --> 00:34:55,790 асабліва з API. 696 00:34:55,790 --> 00:34:56,960 >> Але спачатку кароткі тур. 697 00:34:56,960 --> 00:35:00,450 Так што, у JavaScript, ёсць няма Асноўная функцыя, якая добрая. 698 00:35:00,450 --> 00:35:02,650 Як з PHP, вы можаце проста напісаць код. 699 00:35:02,650 --> 00:35:04,310 Умовы выглядаць наступным чынам. 700 00:35:04,310 --> 00:35:07,100 І лагічныя выразы можа выглядаць так ці так. 701 00:35:07,100 --> 00:35:09,530 Існуюць перамыкачы, і яны можа выглядаць наступным чынам. 702 00:35:09,530 --> 00:35:10,970 Чатыры завесы выглядаць наступным чынам. 703 00:35:10,970 --> 00:35:12,390 У той час як завесы выглядаць наступным чынам. 704 00:35:12,390 --> 00:35:14,160 У whiles выглядаць наступным чынам. 705 00:35:14,160 --> 00:35:16,850 А потым масівы падобныя гэта, вельмі падобная на РНР. 706 00:35:16,850 --> 00:35:20,740 Але заўважым, што ў JavaScript цябе абвясціць зменную ня з доларам 707 00:35:20,740 --> 00:35:25,190 падпісаць, ня з тыпам дадзеных, але літаральна кажучы вар для зменнай перад ёй. 708 00:35:25,190 --> 00:35:27,900 Гэта занадта свабодна набралі у тым, што ён мае віды, 709 00:35:27,900 --> 00:35:29,729 але вы відавочна не аб'яўляць іх. 710 00:35:29,729 --> 00:35:31,520 І тады радок, для Асобнік, можа выглядаць 711 00:35:31,520 --> 00:35:34,350 як гэта, што радок называюць ы ў гэтым выпадку. 712 00:35:34,350 --> 00:35:35,410 І затым аб'ект. 713 00:35:35,410 --> 00:35:37,010 І гэта мы ўбачым больш у бліжэйшы час. 714 00:35:37,010 --> 00:35:41,470 І аб'ект, мабыць, адзін з Найбольш часта сустракаюцца структуры дадзеных 715 00:35:41,470 --> 00:35:44,050 у JavaScript на аснове Праграма так як ён дазваляе 716 00:35:44,050 --> 00:35:46,680 звязаць адвольнае пар ключ-значэнне толькі 717 00:35:46,680 --> 00:35:51,240 як асацыятыўныя масівы ў PHP і гэтак жа, як свой уласны хэш-табліцы 718 00:35:51,240 --> 00:35:54,042 або паспрабаваць як мы ўкаранілі некалькі тыдняў таму. 719 00:35:54,042 --> 00:35:56,250 Так што давайце на самай справе ўбачыць, што мы можам зрабіць з дапамогай JavaScript. 720 00:35:56,250 --> 00:35:59,410 І, у прыватнасці, гэта доўгі спіс функцый 721 00:35:59,410 --> 00:36:02,300 што браўзэры маюць, што дазваляюць падключыць JavaScript 722 00:36:02,300 --> 00:36:05,470 ў вэб-сайт наступным чынам. 723 00:36:05,470 --> 00:36:09,340 JavaScript часта выкарыстоўваецца ў якасці на баку кліента скрыптовы мову. 724 00:36:09,340 --> 00:36:10,130 Гэта не складзены. 725 00:36:10,130 --> 00:36:11,370 Гэта таксама інтэрпрэтуецца. 726 00:36:11,370 --> 00:36:15,740 Але ў адрозненне ад PHP, які працуе ўжо на сэрвэры, на вэб-сэрвэры, 727 00:36:15,740 --> 00:36:18,220 або глыбока ўнутры Кліенты, JavaScript 728 00:36:18,220 --> 00:36:22,190 адрозніваецца тым, што яна як правіла, праходзіць у браўзэры. 729 00:36:22,190 --> 00:36:26,060 >> Такім чынам, любы код JavaScript вы пачаць пісаць для Pset 8 ці вашага канчатковага праекта, 730 00:36:26,060 --> 00:36:29,890 або ў рэальным свеце, як правіла, адбываецца быць захаваны на сэрвэры, абсалютна 731 00:36:29,890 --> 00:36:33,110 у дот HTML або кропкай JS для файла JavaScript. 732 00:36:33,110 --> 00:36:35,770 Але браўзэр збіраецца спампаваць што JavaScript 733 00:36:35,770 --> 00:36:39,530 Код для вашага ўласнага асобніка Chrome, або IE, або Firefox, або што-то. 734 00:36:39,530 --> 00:36:43,870 І код на самай справе адбываецца, каб атрымаць выконваецца ўнутры вашага ўласнага браўзэра. 735 00:36:43,870 --> 00:36:46,560 Проста, каб зрабіць гэта больш рэальна, давайце паглядзім гэта ў канкрэтнай форме. 736 00:36:46,560 --> 00:36:50,120 >> Мы паняцця не маем, што робіць гэты код на самай справе не чытаў праз яго. 737 00:36:50,120 --> 00:36:52,670 Але дазвольце мне перайсці да Facebook.com без рэгістрацыі. 738 00:36:52,670 --> 00:37:00,440 Дазвольце мне пайсці ў Агледзіце элемент і ісці, скажам, сеткі і перазагрузіце старонку. 739 00:37:00,440 --> 00:37:04,150 І мы будзем see-- дазвольце мне перайсці Абнавіць Старонка, каб атрымаць усе запыты на новы. 740 00:37:04,150 --> 00:37:08,850 І самы першы Файл я бачу, CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 Вось першы JavaScript-файл, і ў мяне ёсць 742 00:37:10,880 --> 00:37:14,600 ніякая ідэя, што гэта робіць, але тут некаторыя з кода JavaScript 743 00:37:14,600 --> 00:37:16,180 што прыводзіць Facebook. 744 00:37:16,180 --> 00:37:18,400 Гэта нават не сапраўды, што выяўленне, каб павялічыць. 745 00:37:18,400 --> 00:37:20,260 Гэта па-ранейшаму так жа, як бессэнсоўна. 746 00:37:20,260 --> 00:37:24,341 >> Але вы ўбачыце, нават ўнізе, ёсць яшчэ больш з гэтых файлаў JavaScript. 747 00:37:24,341 --> 00:37:24,840 Упс. 748 00:37:24,840 --> 00:37:25,440 Вось пінг. 749 00:37:25,440 --> 00:37:28,550 Пойдзем трохі Акрамя таго, дадаткова, у далейшым. 750 00:37:28,550 --> 00:37:29,894 Там адзін. 751 00:37:29,894 --> 00:37:31,238 Там адзін. 752 00:37:31,238 --> 00:37:31,880 Там адзін. 753 00:37:31,880 --> 00:37:35,820 >> Такім чынам, нават пры тым, што Facebook, за сцэны, напісана ў частцы ў PHP 754 00:37:35,820 --> 00:37:39,100 і Facebook, уласную версію яго, ёсць велізарная колькасць JavaScript. 755 00:37:39,100 --> 00:37:41,330 На самай справе, любы з у чаце вы робіце на Facebook, 756 00:37:41,330 --> 00:37:45,520 любое з абнаўленняў убудаванага даты жыцця што адбываецца ў рэальным часе, усё, што 757 00:37:45,520 --> 00:37:47,944 прыводзіцца ў рух JavaScript. 758 00:37:47,944 --> 00:37:48,444 Так? 759 00:37:48,444 --> 00:37:50,235 >> АЎДЫТОРЫЯ: Я не ўпэўнены, калі гэта Facebook, 760 00:37:50,235 --> 00:37:53,624 але я думаў, што Facebook распрацаваў іх уласны ўнутраны код мовы? 761 00:37:53,624 --> 00:37:54,540 DAVID Малання: Яны зрабілі. 762 00:37:54,540 --> 00:37:58,110 Дык вось чаму я кажу, дысперсію PHP называецца хіп-хоп, што яны на самой справе 763 00:37:58,110 --> 00:38:03,440 дадатковыя функцыі для такіх, што пры Марк ўпершыню рэалізавана Facebook, 764 00:38:03,440 --> 00:38:04,710 яна была напісана ў PHP. 765 00:38:04,710 --> 00:38:07,370 І нешта засталося роду пярэдняга канца мове 766 00:38:07,370 --> 00:38:09,030 што яны выкарыстоўваюць для значна іх кадавання, але гэта 767 00:38:09,030 --> 00:38:11,870 ня быў мова гэта шалі асабліва добра для мільярдаў 768 00:38:11,870 --> 00:38:12,630 людзей. 769 00:38:12,630 --> 00:38:15,300 І такім чынам, яны дадалі свае ўласныя Паляпшэння за кулісамі. 770 00:38:15,300 --> 00:38:17,049 І яны выкарыстоўваць любую колькасць іншых мовах 771 00:38:17,049 --> 00:38:19,170 для розных кавалкаў іх інфраструктуры. 772 00:38:19,170 --> 00:38:24,080 Так што, так, гэта дысперсія тое, што мы цяпер ведаем, як PHP. 773 00:38:24,080 --> 00:38:26,610 >> Такім чынам, давайце зірнем на пару прыкладаў 774 00:38:26,610 --> 00:38:28,890 пра тое, як мы маглі б выкарыстоўваць JavaScript тут. 775 00:38:28,890 --> 00:38:32,530 У сучасным зыходнага кода, у нас ёсць куча файлаў, першы з якіх, 776 00:38:32,530 --> 00:38:34,090 давайце называецца DOM нуля. 777 00:38:34,090 --> 00:38:36,770 Так DOM нуль выглядае наступным чынам. 778 00:38:36,770 --> 00:38:40,730 Адпусьці мяне ў гэты каталог і адкрыць domzero.html, 779 00:38:40,730 --> 00:38:44,970 верхняя з якіх мае тып DOC Дэкларацыя, кажучы тут прыходзіць HTML 5. 780 00:38:44,970 --> 00:38:46,440 А цяпер вось HTML тэгаў. 781 00:38:46,440 --> 00:38:47,540 Вось кіраўнік тэг. 782 00:38:47,540 --> 00:38:49,210 А вось што новага сёння. 783 00:38:49,210 --> 00:38:52,620 >> Цяпер у нас ёсць тэг сцэнара ўнутры кіраўніка старонцы. 784 00:38:52,620 --> 00:38:55,290 І гэта, па-відаць робіць вельмі мала, але апавяшчэнне 785 00:38:55,290 --> 00:38:58,410 што я вызначыў Сцэнар, JavaScript. 786 00:38:58,410 --> 00:39:01,050 І, як у бок, так як гэта Шырока распаўсюджана памылка ,, 787 00:39:01,050 --> 00:39:05,220 JavaScript не мае абсалютна нічога рабіць з Java, мове 788 00:39:05,220 --> 00:39:08,010 што некаторыя з вас, магчыма, даведаліся ў АСК ТП. 789 00:39:08,010 --> 00:39:10,480 Гэта было больш маркетынгу рэч, чым што-небудзь, 790 00:39:10,480 --> 00:39:12,980 язда на фалды Java гадоў таму. 791 00:39:12,980 --> 00:39:17,300 Але наяўнасць нічога не рабіць з Java, проста так жа, і прыкра, 792 00:39:17,300 --> 00:39:18,480 змешвання імя. 793 00:39:18,480 --> 00:39:21,890 >> Дык вось як вы аб'яўляеце функцыю у JavaScript, літаральна сказаць, функцыю, 794 00:39:21,890 --> 00:39:24,556 то імя функцыі, то любы аргументы ён можа зрабіць, 795 00:39:24,556 --> 00:39:25,530 сапраўды гэтак жа як у PHP. 796 00:39:25,530 --> 00:39:28,990 Аказваецца ў JavaScript, адным з самых раздражняльныя функцыі, якія існуюць у абвесткі. 797 00:39:28,990 --> 00:39:31,392 Гэта невялікае акно, што ўсплыве і папярэдзіць вас 798 00:39:31,392 --> 00:39:32,600 у нейкай частцы інфармацыі. 799 00:39:32,600 --> 00:39:33,766 Гэта правіла, з неадабрэннем. 800 00:39:33,766 --> 00:39:35,980 Але мы будзем выкарыстоўваць яго ў якасці нашага Першае практыкаванне тут. 801 00:39:35,980 --> 00:39:37,900 >> Звярніце ўвагу на некаторыя асаблівасці JavaScript. 802 00:39:37,900 --> 00:39:41,524 Адзінкавыя і двайныя двукоссі на самай справе не мае ніякага значэння. 803 00:39:41,524 --> 00:39:43,690 Адзінкавыя двукоссі і двайныя Каціроўкі могуць быць ўзаемазаменнымі, 804 00:39:43,690 --> 00:39:46,220 у той час як у C, вы павінны выкарыстоўваць падвойныя двукоссі для радкоў, 805 00:39:46,220 --> 00:39:48,150 і ў вас ёсць два адзін каціроўкі для знакаў. 806 00:39:48,150 --> 00:39:51,150 У свеце JavaScript, многія людзі, большасць людзей 807 00:39:51,150 --> 00:39:54,970 выкарыстоўваць адзінарныя двукоссі радкоў проста таму, што гэта стылістычнае рэч. 808 00:39:54,970 --> 00:39:58,330 Але тое, што аператар плюс тут, якія мы раней не бачылі? 809 00:39:58,330 --> 00:39:59,836 >> АЎДЫТОРЫЯ: Счапленне. 810 00:39:59,836 --> 00:40:00,960 DAVID Малання: Счапленне. 811 00:40:00,960 --> 00:40:02,450 Так C нават не ў гэтым. 812 00:40:02,450 --> 00:40:04,820 PHP мае аператара кропкі, які робіць гэта. 813 00:40:04,820 --> 00:40:09,710 JavaScript мае аператар плюс, які змешвання з'яўляецца гэтак жа, як Java. 814 00:40:09,710 --> 00:40:11,440 Цяпер тое, што тут адбываецца? 815 00:40:11,440 --> 00:40:14,260 >> Дык вось, дзе базавы разуменне гэтай карціны 816 00:40:14,260 --> 00:40:17,010 мы падкінуў пару дзён таму уступае ў гульню. 817 00:40:17,010 --> 00:40:19,620 Памятаеце, калі ў нас быў просты версія HTML page-- 818 00:40:19,620 --> 00:40:20,830 ён проста сказаў, прывітанне свет. 819 00:40:20,830 --> 00:40:22,770 А потым мы малявалі дрэва справа, які 820 00:40:22,770 --> 00:40:27,320 была куча прастакутнікаў і ліній злучаючы іх, як радаводу. 821 00:40:27,320 --> 00:40:30,820 Дык вось так званае DOM або аб'ектнай мадэлі дакументаў. 822 00:40:30,820 --> 00:40:36,759 І атрымліваецца, што вы можаце атрымаць доступ да прастакутнікі ў гэтым дрэве з сінтаксісам 823 00:40:36,759 --> 00:40:37,550 як у наступным. 824 00:40:37,550 --> 00:40:41,370 Вы ў літаральным сэнсе кажуць дакумент, які з'яўляецца спецыяльная глабальная пераменная у JavaScript 825 00:40:41,370 --> 00:40:45,890 праграма, якая мае функцыю звязана з тым, што вы можаце атрымаць доступ да 826 00:40:45,890 --> 00:40:50,280 падобна на структуру, але вы проста кажуць кропку, а затым імя функцыі, 827 00:40:50,280 --> 00:40:52,390 атрымаць элемент па ID. 828 00:40:52,390 --> 00:40:55,460 >> Элемент я хачу атрымаць гэта па-відаць, цытую канец цытаты імя. 829 00:40:55,460 --> 00:40:57,150 А потым я хачу, каб атрымаць яго значэнне. 830 00:40:57,150 --> 00:40:58,330 Цяпер мы забягаем наперад. 831 00:40:58,330 --> 00:41:00,038 Я нават не ўпэўнены, што Усё гэта а. 832 00:41:00,038 --> 00:41:03,000 Давайце перанясемся ў HTML на старонка, якая з'яўляецца супер проста. 833 00:41:03,000 --> 00:41:05,370 >> Звярніце ўвагу, што я вызначыў ўтвараюць тут. 834 00:41:05,370 --> 00:41:07,940 Звярніце ўвагу, што я даў яму унікальны ID, нават калі мы не выкарыстоўвалі 835 00:41:07,940 --> 00:41:08,870 гэты атрыбут перш. 836 00:41:08,870 --> 00:41:11,300 Але гэта існуе ў HTML. 837 00:41:11,300 --> 00:41:15,570 Вы можаце адназначна ідэнтыфікаваць некаторы кавалак з HTML з ідэнтыфікатарам, як гэта. 838 00:41:15,570 --> 00:41:19,880 >> Зараз звернеце ўвагу this-- аказваецца HTML падтрымлівае, у гэтым спісе бялізны 839 00:41:19,880 --> 00:41:22,490 Хвіліну назад, у цэлым куча апрацоўшчыкаў падзей. 840 00:41:22,490 --> 00:41:25,060 І гэта апрацоўшчык падзей кажа аб ўявіць. 841 00:41:25,060 --> 00:41:28,730 На паданні карыстальніка гэтага форма, называюць наступны код. 842 00:41:28,730 --> 00:41:31,360 І код, які збіраецца назваць або выкананы 843 00:41:31,360 --> 00:41:35,260 менавіта гэта, грэцкі Функцыя вынікаюць вярнуцца ілжывым. 844 00:41:35,260 --> 00:41:37,360 Усё астатняе павінна быць даволі знаёмыя. 845 00:41:37,360 --> 00:41:42,050 >> Тут ўвод тэксту тыпу, чые ID, у гэтым выпадку, будзе імя. 846 00:41:42,050 --> 00:41:45,430 У нас няма фактычнага імя атрыбуту гэта time-- і кнопку націснуць кнопку. 847 00:41:45,430 --> 00:41:48,330 Так у выніку старонка выглядае наступным чынам. 848 00:41:48,330 --> 00:41:52,890 І ў выніку паводзінаў, Вы ўбачыце, выглядае наступным чынам. 849 00:41:52,890 --> 00:41:56,940 На старонцы Мясцовы гаспадары кажа, прывітанне Дэвід, наўрад ці эстэтычна 850 00:41:56,940 --> 00:41:58,340 спосаб вітаць карыстальніка. 851 00:41:58,340 --> 00:41:59,950 Але што адбываецца на самай справе? 852 00:41:59,950 --> 00:42:01,360 >> Ну, падумайце, што гэта. 853 00:42:01,360 --> 00:42:02,310 Гэта тэкставае поле. 854 00:42:02,310 --> 00:42:04,635 І ў адпаведнасці з HTML тут, я даў яго 855 00:42:04,635 --> 00:42:07,350 Унікальны ідэнтыфікатар называецца цытата канец цытаты імя. 856 00:42:07,350 --> 00:42:09,770 Між тым, я ўжо казаў, калі карыстальнік адпраўляе гэтую форму 857 00:42:09,770 --> 00:42:13,820 націснуўшы Enter або націснуўшы Адаслаць Кнопка, выклікаць функцыю пад назвай Вітайце 858 00:42:13,820 --> 00:42:15,410 а затым вярнуцца False. 859 00:42:15,410 --> 00:42:16,870 Давайце разгледзім тыя ў зваротным кірунку. 860 00:42:16,870 --> 00:42:20,590 Звярніце ўвагу, калі я націсніце Адправіць, Адрас гэтай старонкі не змяняецца. 861 00:42:20,590 --> 00:42:22,420 Значок браўзэра ня пачынаюць круціцца. 862 00:42:22,420 --> 00:42:27,050 Я нікуды не хадзіў, і гэта літаральна, таму што я сказаў, вярнуцца False. 863 00:42:27,050 --> 00:42:31,534 Вярнуцца ілжывым кароткіх замыканняў або прыпынку паводзіны па змаўчанні ў форме. 864 00:42:31,534 --> 00:42:33,700 Так што тады ў нас застаецца гэта адзін апошні пытанне. 865 00:42:33,700 --> 00:42:34,764 Што Вітайце рабіць? 866 00:42:34,764 --> 00:42:36,680 Ну, Вітайце мабыць, выклікае функцыю пад назвай 867 00:42:36,680 --> 00:42:39,250 Абвестка, праходзіць у адным доўга аргумент, што гэта 868 00:42:39,250 --> 00:42:43,950 вынікам злучэння разам куча падрадкоў, прывітанне коска прастору, 869 00:42:43,950 --> 00:42:45,810 затым усё гэта вяртаецца. 870 00:42:45,810 --> 00:42:51,490 Так дакумент як глабальная Пераменная для гэтага кораня гэтага дрэва, 871 00:42:51,490 --> 00:42:55,560 выкліку спецыяльнай функцыі, у адваротным выпадку цяпер вядома як метад. 872 00:42:55,560 --> 00:42:57,650 Функцыя гэта ўнутры пераменная 873 00:42:57,650 --> 00:42:59,640 называецца функцыяй метад замест. 874 00:42:59,640 --> 00:43:01,570 >> Так што элемент па ID. 875 00:43:01,570 --> 00:43:03,940 Што элементам зрабіць вас хочаце атрымаць яго ID? 876 00:43:03,940 --> 00:43:06,970 Цытаваць канец цытаты імя і Затым спецыяльна цэнім. 877 00:43:06,970 --> 00:43:12,000 Такім чынам, іншымі словамі, што код проста знаходзіць тэкставае поле, ID з'яўляецца імя 878 00:43:12,000 --> 00:43:13,380 а затым атрымлівае сваё значэнне. 879 00:43:13,380 --> 00:43:16,460 Так што, калі б я гэта змяніць і сказаць Дэвин замест Давіда, 880 00:43:16,460 --> 00:43:20,670 і націсніце Дадаць, зараз мы ёсць прывітанне для Дэвин. 881 00:43:20,670 --> 00:43:22,890 >> Добра, так што ўсё цудоўна і выдатна. 882 00:43:22,890 --> 00:43:25,480 Але давайце паглядзім, калі мы можам зрабіць гэта трохі чысцей, так як толькі 883 00:43:25,480 --> 00:43:28,190 напісання кода, як гэта як правіла, будзе з неадабрэннем. 884 00:43:28,190 --> 00:43:30,060 Гэта будзе выглядаць страшней. 885 00:43:30,060 --> 00:43:32,330 Але тое, што першы Розніца, што вы звярніце ўвагу, тут 886 00:43:32,330 --> 00:43:35,970 У гэтым варыянце, акрамя назваць змены ў DOM адзін? 887 00:43:35,970 --> 00:43:41,110 Што структурна выглядае па-іншаму Пра гэта ў параўнанні з другога? 888 00:43:41,110 --> 00:43:41,932 Так? 889 00:43:41,932 --> 00:43:43,890 АЎДЫТОРЫЯ: Ці з'яўляецца форма на Верхняя частка сцэнара зараз? 890 00:43:43,890 --> 00:43:46,570 DAVID Малання: Так, форма знаходзіцца на вяршыні сцэнарыя для нейкай дзіўнай прычыне. 891 00:43:46,570 --> 00:43:48,736 Так што першае, што што выскоквае на мяне, таксама. 892 00:43:48,736 --> 00:43:50,990 І, на шчасце, па меншай меры, Гэтая частка ідэнтычная. 893 00:43:50,990 --> 00:43:53,470 Так што адзінае, што здаецца будзе адрознівацца гэта. 894 00:43:53,470 --> 00:43:55,296 >> Дык вось тое, што ахайна аб JavaScript 2. 895 00:43:55,296 --> 00:43:57,420 І гэта робіць яго цяжка зразумець на першы погляд, 896 00:43:57,420 --> 00:44:00,670 асабліва для канчатковых праектаў, калі Вы глядзіце на ўзор кода на сайце, 897 00:44:00,670 --> 00:44:04,200 але гэта зводзіцца да некаторых Асноўныя сінтаксічныя асаблівасці. 898 00:44:04,200 --> 00:44:06,230 Тут зноў-такі, што Глабальная пераменная дакумент. 899 00:44:06,230 --> 00:44:09,540 Тут зноў-такі, што метад або функцыя што кажа атрымаць элемент па ID. 900 00:44:09,540 --> 00:44:11,570 На гэты раз я хачу атрымаць ідэнтыфікатар, званы дэма. 901 00:44:11,570 --> 00:44:12,490 Дзе гэта? 902 00:44:12,490 --> 00:44:15,400 Гэта, па-відаць права тут, сама форма. 903 00:44:15,400 --> 00:44:20,010 >> А цяпер звярніце ўвагу, што, па-відаць, калі б я вярнуцца да гэтага вузла ў дрэве, што 904 00:44:20,010 --> 00:44:22,940 ўяўляе сабой форму Сам, ня тэкставае поле, 905 00:44:22,940 --> 00:44:26,970 Аказваецца, што форма, што вузел або прастакутнік з дрэва, 906 00:44:26,970 --> 00:44:30,450 ёсць тое, што мы называем ўласцівасць, вельмі, вельмі, вельмі падобныя 907 00:44:30,450 --> 00:44:35,390 па духу структуры ў С. Гэта проста член дадзеныя ўнутры гэтага прамавугольніка. 908 00:44:35,390 --> 00:44:38,300 >> Так што я атрымаў форму тут, і я ёсць, 909 00:44:38,300 --> 00:44:44,650 ці я задаю, каб яго на Адправіць апрацоўшчык дакладней На Размясціць нерухомасць 910 00:44:44,650 --> 00:44:45,740 Наступная функцыя. 911 00:44:45,740 --> 00:44:49,000 І гэта, безумоўна, самая вар'ятка рэч да гэтага часу сінтаксічна. 912 00:44:49,000 --> 00:44:53,610 Аказваецца ў JavaScript і ў PHP, і, шчыра кажучы ўжо на тое пайшло ў C, 913 00:44:53,610 --> 00:44:58,990 нават калі мы гэтага не робяць, вы можаце дадаць безназоўны, ананімны або AKA лямбда 914 00:44:58,990 --> 00:45:03,000 Функцыі, якія не маюць імя але можа быць выкліканы тым не менш. 915 00:45:03,000 --> 00:45:07,050 >> Так, што я раблю тут я задаю гэта на Прапанаваць аб'ект нерухомасці, які 916 00:45:07,050 --> 00:45:14,330 знаходзіцца ўнутры гэтага вузла майго DOM дрэва, Функцыя, паказальнік на функцыю, калі хочаце. 917 00:45:14,330 --> 00:45:16,310 ня што функцыя не мае назваць, але гэта не 918 00:45:16,310 --> 00:45:19,110 значэння, таму што мы будзем бачыць у хвіліну, як гэта назваць. 919 00:45:19,110 --> 00:45:21,780 Калі гэтая функцыя выклікаецца, гэты код запускаецца на выкананне, то 920 00:45:21,780 --> 00:45:24,210 вяртаецца хлусня, як і раней. 921 00:45:24,210 --> 00:45:25,800 >> Але звярніце ўвагу, што я зрабіў. 922 00:45:25,800 --> 00:45:27,830 На дадзены момант у Гісторыя, у мяне ёсць форма. 923 00:45:27,830 --> 00:45:30,190 У гэтага ёсць унікальны ідэнтыфікатар, званы дэма. 924 00:45:30,190 --> 00:45:33,740 Тут, унізе, у мяне ёсць тэг сцэнара які выконвае наступны код. 925 00:45:33,740 --> 00:45:37,720 Ён прымацоўваецца да гэтага вузла ў дрэва, каб ён знаходзіцца на Адправіць 926 00:45:37,720 --> 00:45:40,260 нерухомасць гэтая функцыя тут. 927 00:45:40,260 --> 00:45:44,310 І толькі па характары, як браўзэры працуюць, калі я цяпер націсніце кнопку Адправіць або націсніце Enter, 928 00:45:44,310 --> 00:45:45,889 што функцыя будзе датэлефанаваліся. 929 00:45:45,889 --> 00:45:48,680 Гэта не трэба імя, таму што хто чорта клапоціцца, як гэта называецца. 930 00:45:48,680 --> 00:45:52,540 Адзіны раз, калі ён калі-небудзь, каб атрымаць называецца тое, калі я адправіць форму. 931 00:45:52,540 --> 00:45:55,130 Там няма неабходнасці для мяне, чалавек-распрацоўшчык, 932 00:45:55,130 --> 00:45:57,330 на самай справе назваць гэта дзе-небудзь яшчэ. 933 00:45:57,330 --> 00:46:00,720 >> Цяпер жа, як задзіра, як быццам што не былі супраць, выгіб дастаткова, 934 00:46:00,720 --> 00:46:03,330 мы можам нават зрабіць гэта выглядаюць больш загадкавым дапамогай 935 00:46:03,330 --> 00:46:05,850 супер папулярнай бібліятэкі называецца JQuery. 936 00:46:05,850 --> 00:46:08,760 На самай справе JQuery і JavaScript нярэдка аб'ядноўваюцца. 937 00:46:08,760 --> 00:46:12,790 І што мы будзем рабіць у сераду з'яўляецца пачатак з дапамогай гэтай мовы і гэтыя бібліятэкі 938 00:46:12,790 --> 00:46:16,030 пабудаваць больш асінхронны і дынамічныя прыкладання 939 00:46:16,030 --> 00:46:18,950 як карта становіцца прыкладання, прыкладання 940 00:46:18,950 --> 00:46:22,360 што абнаўляць вэб-старонку ў рэжыме рэальнага Час, як і Facebook або Gchat 941 00:46:22,360 --> 00:46:27,130 зрабіць, і больш не абмяжоўваемся патрапіўшы Адправіць па GET або проста пост 942 00:46:27,130 --> 00:46:27,630 у адзіночку. 943 00:46:27,630 --> 00:46:29,055 Так што я буду бачыць вас у сераду. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [Музыка, якая іграе] 946 00:46:35,550 --> 00:48:09,728