[Мусиц плаиинг] 

ДАВИД Малан: Ово је ЦС 50, и Ово је почетак седмице девет. А оно што смо мислили да радимо данас није само затварање поглавља о прошле седмице Материјал где смо фокусирани на серверу страни веб програмирање са ПХП и СКЛ, неке ствари база. Причаћемо о мало безбедност данас и онда Прелазак на страни клијента програмирање језика познат као ЈаваСцрипт. Али прво, мало искупљење. 

Можда се сећате да је Среда, сет сам да напише сајт који је у улаз корисника од ХТМЛ формулара који тада чува да имена корисничког уноса, телефон бројеви, и мобилни телефон носачи у бази података. И онда сам имао малу команду линија сценарију у ПХП који је требало да поновити преко редова у бази и шаљу текстуалне поруке. Упркос неколико покушаја, неколико, ми нису добили тај радом до краја. 

Тако да цела ове недеље провела радећи на том коду да нас отарасити тачке где смо стали, при чему су сва Имам до краја среду је овај текст порука од Марго док сам се борио, следи текстуалне поруке са неког другог другарица Имате ову Давид. Затим овај, дивно охрабрујући. Наставио даље, веома охрабрује. Скоро га до онда-- и То је белешка смо завршили у среду. А онда заправо можда моја омиљена, Тренутак касније, ово је у. Проклетство Ливе Стреам. 

Тако да данас, ми поправити са брзо погледај шта сам урадио тада. Дакле, све ове код је доступан Онлине од прошлонедељног, недеље осам, изворни код. И видећете да сам прошао кроз, и ја заправо очистио ствари мало. Представио сам пар друга карактеристике СКЛ базе података. На пример, уместо само се носилац вар цхар као што мислим да сам у ходу прошле недеље. Ја већ га је дефинисао као оно што се зове енум. 

А неки од вас можда видели као што смо истражили Ц Енум је заправо карактеристика Ц, где можете набрајају гомилу константи и доделити их аутоматски вредности, као један, два, три, четири без тешких кода бројева. Тако СКЛ подржава исто, при чему ако имате поље у бази података које сте само Желим да се на једном од коначних вредности, можете буквално да га навести као што сам тамо урадио за четири Популарни САД целлпхоне превозници. 

Па сам то урадио. И сам направио неколико измена, као , од којих најважнији је да се е-маил ради због опозива, да овај програм ослања на коме обично назива е-маил на СМС гатеваи, који је само Фанци начин да се каже да је Веризон, и АТ & Т, и други људи подржавају сервер, чиме ако добије Емаил, она га претвара у СМС и шаље текст Порука нечији телефон. Дакле, ако сам ово добро урадио, овде нове и побољшане форма који ће разговарати са Нова и побољшана код, који можете играти са онлине. И то ће, надамо се, бити мој телефон звона у само тренутак. 

Дакле, прво, ја ћу да куцате у моје име. Друго, ја не идем да се то уради овај пут. Ја ћу да урадим Инспекција Елемент. А ово је само мала ствар тако да не створити сати постпродукцију раде као и прошли пут. Тамо је мој број телефона. 

Ја ћу одабрати Веризон. И овде, хајде да укључите овај микрофон Овде, а циљ на овај мој телефон овде. Идем да кликнете Регистрација која би, надамо се, ставите га у базу података. Сада ћу да одем у командне линије програма, који Подсетимо се звао дот сласх текст, и крст прсте. Идемо. 

[ПХОНЕ дингс] 

[АППЛАУСЕ] ДАВИД Малан: Па забавније од ово-- то је забавно, наравно, ако се у то. Али је још забавније, мислио сам, ако се створио један од тих филмских момената где као нешто стварно лоше се десило у свету, и као и сви НСА народне целлпхонес старт јавите се сигналом са текстуалним порукама их упозорава на ту чињеницу. Па сам мислио да ћемо покушати да поново исто овде, чиме не користи базу података, Ја уместо унапред написао програм који изгледа овако. 

Ово је индек.пхп-- и ја ставио овај код онлајн као -Па то очигледно Само пружа форм.пхп, користећи МВЦ стил парадигму да разговарају о детаљније у сету проблема седам. То је прилично једноставна форма. То ће да поднесу Филе позвао хере.пхп поштом. И то очигледно да питам за име, и број телефона, и затим преко такозваних Изаберите Мени, то је ће вам дати најмање четири Популарни САД целлпхоне носачи, и онда вам омогућити да ефикасно узети присуство кликом овде. 

И овде, у међувремену, ће позајми неке од кода од прошлог пута. И ако само ским ово, видећете да постоји гомила провере грешке. Али љепота на крају је то нисмо писање у базу података и данас. Ми смо га једноставно и чување Само слање надамо текстуална порука преко функција И написао у протеклих неколико дана разговора Текст, који је функција. ПХП, која је поново доступан онлине. 

Дакле, ако желите да учествују у томе. Нећемо бити складиштење ништа. Иди на овом УРЛ овде у реалном времену. Немојте га поднесе још само, али хајде да видимо да ли можемо да имамо једну од ових филм тренуци где су сви мобитела почиње јавите се сигналом, надам се само једном ове године за разлику од 2011, где је овај отишао ужасно криво. И кад идеш на ту адресу, требало би да видите супер једноставан образац да ако имате име, мобилни телефон број, а мобилни телефон превозник који одговара листу тамо, иди напред и попуните формулар. Али немој да удараш достави још. 

Форма ће изгледати овако. Само напред и унесите Ваше име, број телефона. ООП, неко иде испред криве. То је у реду. У реду, сви попуњени образац. Ово би требало да раде на телефон, такође, ако желите. У реду, на своја места, да се поставите, иди. Хит Ево. Шта? Не. Кунем се Богом, сам тестирао Овај више пута данас. Имаш га? 

[Изнео Воицес] 

ДАВИД Малан: Ок, кориснички грешка можда. То је два. Он је радио за два од неколико стотина, три, четири. У реду, то је добро. Четири од пет за исправност како о. 

Дакле, шта се десило? Тако је наводно, не видим твоје екрани, зашто би то могло да ерроред? Вероватно је да смо управо били покушава да превише везе на маил сервер Харварду све у Једном од исте ИП адресе. Само нагађам, јер нисам имају луксуз тестирања Овај код са неким 300 људи у унапред али за сада схватају да да најмање треба имају стечен посао овај пут. 

У реду, па зашто је све ово више Германе шта се дешава? Па прво, брзо Пар обавештења. Дакле, један, ако желите да се придружите Цханг, и Ницк, и други на ручку у петак, урадите РСВП на уобичајеном УРЛ тамо. Ако размишљате о концентришемо или ради секундарна у ЦС, да ли сте студент друге године, или на првој, или чак млађи или старији у овом тренутку и још увек могу стиснути у курсевима, схватају да је електротехнички факултет окупља бесплатно Бена и Јерри сладоледа и савети у среду непосредно после класа у 4:00 часова у згради ЦС в Маквелл Дворкин. Ако је ово пребрзо на екрану, само иди да цс50.харвард.еду за Линк на Фацебоок догађаја где можете видети више детаља. 

У међувремену, мислио сам да исправим једна ствар је омануо у среду. Испало је да је Марко ИД на Фацебоок-у није било три. То је било четири. Испоставило се да је имао више тест рачуни него ја сећам. Али шта то осетио као прилика да урадите је да се подигне УРЛ овако. 

Тако испада да Фацебоок има АПИ, Апплицатион Программинг Интерфаце, који је механизам којим вас може тражити податке програмски на Фацебоок-у и да се вратим машина читљив информације, а не веб странице али само сирови текст, нешто позвао ЈаваСцрипт Објецт нотација. И у ствари, ако посетите ово УРЛ адреса, и зумирате, стандардно, Ово је Марк јавно доступне информације. 

А занимљив детаљ Овде је само да је његов ИД је заиста, број четири, која ја реализована чим сам ово. То можете да урадите сами, ако знате ваш Фацебоок корисничко име ако га имате. Само укуцајте одозго тамо. И ништа од тога није приватна. Ја само радим ово још у режиму без архивирања. Дакле, ја не ни пријављени. И ви видите да ја очигледно је корисник број 6.454 на Фацебоок-у, што није Штета ових дана. Значи у сваком случају, такође ћете видети Додатне информације тамо. 

А корисна аспект на то је да да напише своје софтвера који некако интегрише податке овако у својој апликацији. Можете оснажити кориснике на пријавите се на сајту, Не користи свој прилагођени корисничко име и Пассворд али можда њихова Фацебоок логин и добити информације и о њиховим пријатељима, ако одобри такав, или слично. Дакле, обратите пажњу да је ЦС50, такође, има неке од својих АПИ, једна за податке курса каталога, неки за загрљаја меније у трпезарији хале, сви зграде и локације на кампусу имамо АПИ за и које можете да на сличан упит и добити назад текстуални подаци који можете интегрисати у ПХП, или ЈаваСцрипт, или чак, мада ређе, Ц базирана коначни пројекат. 

Заиста напред за финале Пројекат су неколико прекретнице. Имаш емаил од нас неки дан. Схватају да је предлог Ово је последица долази у понедељак. Није нужно обавезујућа, али ти морате да примате наставне момци одобрење пре него што Било које промене након тога. А онда су напред број других прекретница. 

Тако да вас задиркује, такође, са неким могућностима, имамо гомилу ови Хуе сијалице. А неки од вас сада мало од њих у својој студентској соби као добро. И они имају АПИ. Дакле, сећате тих бинарних сијалице недеље Пре који дан Брадлеи и Ансел Дуфф створена за нас. Они су користили софтверски интерфејс за Ова сијалица, које у овом тренутку прикључен на струју а затим преко вирелесс је повезан малу ствар зове мост овде, као мало рутер власништву овом конкретном уређају. 

Али испоставило се да знам како да сенд ХТТП поруке, као што сви сада, Ја могу послати поруку да се овако Ова сијалица да га укључите или искључите или да било који број остале операције на њему. Обратите пажњу да се то не да, није пост. Постоји још једна зове пут. Заправо Постоји неколико других таквих глаголи. Али приметити тамо нема стаза, сласх АПИ, сласх Нев Девелопер, сласх светло, сласх један, сласх државу. 

То је очигледно само пут да је компанија, Пхилипс, Одлучили сте да удари са ХТТП захтев Ако желите да промените државу сијалице помоћу ХТТП 1.1. Затим приметио празну линију. И онда на крају како изгледа врста низ неке врсте, ово опет ће да се зове ЈаваСцрипт Објецт Нотатион, или Џејсон. И оно што видите овде је то постоје три кључна вредност паровима. 

Један од кључних је позвао. И његова вредност очигледно ће бити истина. Осветљење је 128, који је нека врста инт. И онда време транзиција нула, што је очигледно Колико дуго ће то потребно да укључите ову ствар. 

Дакле, сада ово сијалица је искључен. Али, ако сам тачно урадим ово-- лет ја идем у мало Цхеат Схеет Дан који је постављена у адванце-- и идем да иде напред и копирање следећу команду. Цурл, као што неки од вас можда скупљене на ЦС50 Дискутовати је алатка као Телнет таквог да можете симулирати ХТТП захтеве, конкретно ставља. Ја могу послати ове податке, конкретно што смо управо Видео сам малопре специфично на овај УРЛ овде. А онда Цурл ће за руковање сви неопходни заглавља и тамо на парсинг. 

Дакле, све што треба да урадите је да копирате ово у прозор терминала, а затим притисните Ентер. И сијалица наставља. И то је све пролази кроз Ми Цомпутер бежично некако до моста, који се затим говори на ову сијалицу. Могу да урадим нешто друго. Ја могу да ову ствар иди црвено, на пример. Могу, на пример направити ово зелено. Могу да га ићи плаво. 

И приметити у сваки од њих инстанцама, све да мењам је тзв Хуе вриједност заправо му дати мало боје. Дакле, дозволите ми да налепите у ову, као и. Сада је плаво. 

И можете да урадите чак и одгајивача ствари где-- идемо у зелено. И ја могу да урадим за Наравно са мојим кодом. Али, чак и сама АПИ подржава фанки операције овако, који ће сада сметати САД за наредних 30 секунди. 

Дакле, то је један укус онога што би могао урадите са АПИ, ово укључује сијалице. Имајте на уму да ЦС50 има пар парови Гоогле Гласс ако желиш воле да се позабаве нешто заједно те линије, Ардуино Унос, који су ситним рачунари, у суштини, на малом плочи које можете да се повежете жице и друге ствари да и заправо контрола Ваш стварни свет окружење. А онда постоји пар о новим играчкама које имамо. Ово буквално стигао Други дан поштом, Мио браслет. А ја сам мислио да је то начин да се да те узбуђен због пројектима да би сте користили са Овај хардвер би да се игра овај кратак снимак да користе да задиркује народе да ми сада живимо у будућности. 

[Мусиц плаиинг] 

ДАВИД Малан: Дакле, у само неколико недеља, ти такође може бити да кул на сајму ЦС50. Други уређај који смо имају гомилу да смо драго да позајми за пројекте се зове Мотион Цонтроллер. Ово је мало УСБ уређај се повежете са рачунаром који омогућава интеракцију са лаптоп, Мац или ПЦ, као да си имао као Ксбок Кинецт и заправо чине физичке покрете много Као што видимо у овоме визија будућности. 

[Мусиц плаиинг] 

ДАВИД Малан: Дакле, чак и ако имате нема појма колико тако нешто евентуално се измисли или дело на хардверском нивоу, без обзира. Чак и након само неколико месеци ЦС50, и разумевање програмирања генерално, и веб програмирање више Недавно, а затим и АПИ, и ХТТП, имаћете приступ преко софтвер АПИ ако вас Не желим да позајмим једну од ових уређаји да стварно разговарам са њим и да не морају да брину о основни имплементација детаљи, који је потпуно у складу са овим појмом слојевима апстракција које смо види током семестра. 

Тако и током викенда, видио пар вијести. Иди прво, идите на семинарима, ако вам би желели да сазнају нешто више о било ком броју тема. Види УРЛ тамо. А овај је послата ми од Цханг, који знате, ко је штампање нашу војску слонова. И то је наслов гласи. Ја сам престрављен моје нове ТВ. Зашто сам уплашен од овога ствар на А ти би бити. Дакле, сада смо у указују у семестру, такође, где чак и ако имате најмања разумевања како интернет функционише, и ХТТП, и безбедности, овакве ствари би требало да почне да ухвати своју пажњу. Али такође, да ћете разумети да ли су те ствари или не стварним претњама. 

Па сам узео пар одломке из овог чланка. А прича је следећа. Сада сам власник нови Смарт ТВ, који обећава стреаминг мултимедијални садржај, игрице, Апп, друштвени медији, и интернет прегледање, ох и ТВ сувише. Једини проблем је што сам сада плаше да га користе, каже аутор. Ти би, такође, ако се прочитате 46 страна Приваци Полици за ваш телевизор. Количина података ових Ствар прикупља је запањујућа. Она резање где, када, како, и колико дуго користите телевизор. Поставља трацкинг цоокиес, Као што смо разговарали, и ознаке дизајнирани да детектује када имате виевед посебно садржај или посебно е-порука ако желите да проверите е-поште на свом телевизору. Снима апликације које користе, веб сајтова које посећујете, и како сте у интеракцији са садржајем, чинећи све то путем вашег Смарт ТВ. Такође, језивије иет-- то је мој аддитион-- има уграђену камеру са препознавањем лица. 

Циљ је да обезбеди гест контрола за ТВ и омогућавају вам да се пријавите на персонализована налог помоћу своје лице. С позитивне стране, слике су сачуване на телевизору, уместо уплоадед на корпоративном серверу. Са друге стране, Интернет прикључак чини цео ТВ рањиви на хакере који су показали способност да преузме потпуну контролу над машином. 

Више забрињава, као да то није било довољно паметан, је микрофон. ТВ похвалити глас функцију препознавања који омогућава гледаоцима да контролишу екран са гласовним командама. Али служба долази са прилично злокобна упозорење. Имајте на уму да, ако ваше изговорене речи инцлуде личне или друге осетљиве информације, те информације ће бити међу подацима заробљених и преноси на треће лице. Гот то? Немојте рећи лично или осетљива ствари испред телевизора. 

Дакле, ово је заправо стварно. И то је тешко да се не види да ли идите на Бест Буи или слично за телевизоре ових дана. Они су сви паметни на неки начин. И они добити паметнији и језивије. И они једноставно прикупљање података на начине који смо говорили а затим га уплоад путем ХТТП или неки други протокол за неки сервер. 

Дакле, ово је на забаван чланка у овој онлајн сајту Овде, која је говорила о Посебно буг или погрешно кода да ми заправо можемо везати у прошлонедељном разговору. Дакле, то је као наслов прати, прича иде овде, Јосх Брецкман радио за Компанија која слетео уговор развити управљање садржајем Систем, или ЦМС јер они звали, за прилично велике владе сајту. Већи део пројекта укључени развој система за управљање садржајем како би запослени био способни да изграде и одржавају икада мења Садржај за њиховом сајту. Ствари је прилично добро неколико дана после одласка уживо. Али шестог дана, ствари нису тако добро је. Сав садржај на Вебсите је потпуно нестао. А све странице довела до подразумевано, унесите садржаја веб странице. Упс. Јосх је позван да истраже и приметио да је један посебно проблематично Ектернал ИП адреса је имао отишао у и избрисане све садржаја на систему. 

ИП адреса не припада у некој иностранству хацкер бент да униште помоћи Владине информације. Он је одлучио да гооглебот.цом, Гоогле-ов сопствени веб пузећи паук. Упс. После мало истраживања и кодирање около да пронађе нонцоррупт бацкуп, Јосх се проблем. 

Корисник је копиран и налепљен неки садржај из једног стране на другу, укључујући Измени Хиперлинк да измените садржај на страници. Обично то не би било Питање од спољашњег корисника би треба да унесете име и лозинку, али систем Аутхентицатион ЦМС, Пријава систем, нису узети у обзир софистицирани хацкинг технике Гоогле Спидер. Упс. 

Како се испоставило, Гоогле Спидер не користи колачиће, што значи да се може лако заобићи чек за пријављен на цоокие сету да је лажна. Он такође не обраћају пажњу на ЈаваСцрипт, који би нормално навести и преусмерава кориснике који нису пријављени. Ипак не прати сваки хипервеза на свакој страни пронађе, укључујући и оне са Делете Паге у наслову. Упс. 

Дакле, шта то значи за више Технички али прилично приступачни услове? То само значи да кроз њиховом сајту, они нису имали УРЛ разлику овога да можда ћете видети у проблем сет седам. Подсетимо у проблему сет седам или знају у проблему сет седам да сте оспорили, између осталог, да продају акције у име корисника. Али спровођење тог функцију начин од добити путем хипервезе у вашем корисника интерфејс, вероватно Није најпаметнија идеја јер ако ваш сајт је некако доступни било од човека ко клика око или купити Бот попут Гоогле-а или Паук јер они звали, то је само пузање веб покушава да индексу веб као претраживач, су могли врло лако хит преко овакву врсту УРЛ. И то је функционално еквивалентно, у овом случају, продају све акције Гоогле. 

Сада искрено, потпуно је да глупост ЦМС Половни ЈаваСцрипт и колачићи да спроведе свој систем пријављивања а не ради тај страни сервера, као ви радите и да ће у ПСет 7-- постоји логин.пхп филе-- увек, увек, Увек безбедност би требало да буде ради на страни сервера, не на страни клијента, јер, јер Члан предлаже и можете се види у неком тренутку, то је тривијална за корисника, добро или лоше, само да искључите ЈаваСцрипт да не помињемо колачиће. Дакле, то је ваш дневни ВТФ. 

Постоји још један, који је некако страшно, па ћу га споменути, ако само као живот лекција. Кад год користите неку апликацију зове као Снапцхат или слично која каже ове фотографије трају само пет секунди, десет секунди, или шта све не. Они су ефемерна То је апсолутно није случај. Као да не постоји начин, дигитално, да примените неку врсту видео, или слика, или текстуални дељење тако да прималац на другом крају Не могу некако спасити податке. 

На већини наивном начин, неко могао да свој телефон. И они имају другу прозор 10 док гледа у неком снап само да узме неки други телефон и фотографисали га, очигледно. Тако да можете да сачувате нешто дигитално тај начин. Неки од вас знају како да Сцреенсхотс на вашем телефону. У ствари, ако не знате, схвате да бар Снапцхат, и мислим да друге апликације ових дана, бар ти, ако кажем прималац има ствари узети сцреенсхот ваше слике. 

Али још горе, ово је снаппенинг, како је неко смислио недавно, где су неки 100,000 снимци су пуштени у оно што се зове торрент филе на разним сајтовима на крају. А ово је садржао гомилу приватних порука и порука. Испоставило се да већина њих бенигни, па не оно што би се могло очекивати. Али зато што су људи имали користи треће сајт парти, улогујете са својим Снапцхат корисничко име и лозинку, а затим уштеда све њихове снапс на овом сајту треће странке. И то је то треће лице сајт који је хакован, које сам мислила неко схватио како да добију све 100.000 плус тих слика у сопствену хард диску за каснију дељење. Искрено, овде, некако је да на глупост Снапцхат је имплементиран у такав начин да Треће лице може разврстати на пресретнутог разговора подаци и да то није везано за ваш сопствена апликација на телефону. Али овде, такође, схватају да су ствари не би требало да вас ухвати изненадило, или барем не би требало да живот лекција овде. Ако желите техничка детаљи, идите на тај УРЛ тамо то је у данашњим слајдова. У реду, било каква питања о данас Лифе лессонс ин ЦС? Угаси то. Било шта? Било шта? Имам много људи проверу њихов Снапцхат или нешто сада. 

У реду, тако СКЛ, Струцтуред Куери Лангуаге. Идемо завршити ово. Такође, иако ми смо се само гребање површина овог језика, ми ћемо вам дати Довољно језика у облику ПСет 7 тако да можете прекршају мало прилично уобичајено функционалност. Али схватите постоје пар ствари које не захтевају од вас, али они ће бити важно цоме завршне пројекте и сигурно доћи израду стварне сајтови са стварних корисника је овај дизајн одлука. 

Испоставило се да је у МиСКЛ база података, можете имају гомилу избора, као што су врсте података за ваше колоне и друге ствари, али имате и избор такозваног складиштење мотор за све ваше податке, врста система датотека, да ли сте упознати, за све ваше податке. Шта је то на крају формату чува у? А најчешћи, можда, био је МиИСАМ и ИнноДБ, технички услови да ћемо стало само у мери у којој се има и један нема Следећа карактеристика. 

Претпоставимо да имате Мало спаваоница фрижидер. И претпоставимо да сте ви и ваш цимер, који деле овај фрижидер, заиста воле рецимо млека. И то је, у ствари, како прича ми је речено Ваи Бацк у дан кад сам узео курс зове ЦС 161 Оперативни системи, који Слично истражује ову тему. Дакле, имаш тај фрижидер. Ти си ван млека. А ти дођеш кући, твој цимер је још увек на часу или било шта, а ви одлучите ја ћу изаћи и мало млека. Тако да затворите фрижидер, затвор спаваоница, идите преко улице на ЦВС или где год, и добити у реду да купи млеко. 

У међувремену, ваш цимер врати из класе, улази у спаваоницу, отвара фрижидер, такође схвата Оопх, ми смо остали без млека. Тако да он или она затвара фрижидер и онда се деси да оду у другу ЦВС, који се дешава да буде један блок даље од осталих ЦВС на тргу, а добија у реду тамо да мало млека. Сада, наравно, неколико минута касније, обоје да се вратим, а најгоре од свега је могуће Исходи се десило. Обоје имају млека. А ти не баш као млеко толико. Дакле, један од њих је само ће се погоршају у неком тренутку. Сада имате Превелика млека у фрижидеру све јер зашто? 

[Неразумљиво] ДАВИД Малан: Да, ниси некако комуницирају једни са другима да си добити млеко. Тако да у најједноставније путеви у људском свету, Како би сте избегли ово глупо Сценарио догоди таква да само завршити са једним. Тект их, да добро. Али како друго? Пост-ит нотес. ДАВИД Малан: Пост-ит нота. Било какав облик комуникације који говори цимера не идите у фрижидер за млеко. Ја идем придржавају сама. Тако да је потребно некако закључати овај ресурс. Тако да можемо направити ово-- можемо некако упропастити причу и да се претвори у причу ЦС при чему мисли о овоме као као променљива, што је складиштење неку вредност. А сада, вредност млека је нула, коју не желите да ваше цимер на увид ту променљиву а затим донети одлуку саму себе на основу стању ту променљиву Ако сте у процесу промену стања те променљиве. 

Дакле, једна од линија које смо СКЛ даје се у ПСет 7 спецификацији је овај овде. А ми не троше огромна количина времена говори о томе. Али испоставило се да, ако покушавате да купимо акције у ЦС50 финансија да већ имате неке акције, тебе желе да буду у стању да уради број ствари одмах заједно. Желите да будете у стању да ефективно, на високом нивоу, цхецк реду, ако желим да купи још акција слободних, Пенни Стоцк смо говорити о томе у спец, Желим да прво проверите Колико акција имам. И претпостављам да је то пет. И желим да претпоставимо купити 10 више, ја на крају Желим да имају 15 деоница. Тако да морам да поставим два питања. Шта је стање променљиве? Шта је стање реда? Колико акција ја тренутно имам? Онда желим да идем напред и ажурирање. Дакле, то је аналогна млека у да проверите ред, а затим желите да га ажурирати јер ако желите да купите 10 акција, Ви не желите да промените ред до 10, ти Желим да га промените у 5 плус 10 или, наравно, 15. 

Ова линија кода омогућава да та два концептуалне идеје догодити заједно или уопште не. Нико, укључујући и неке друге корисника који је пријављен на истом сајту, некако прекинути провера реда и ажурирање реда, изаберите и ажурирање ако хоћете. А синтакса није супер очигледно, али ова једна линија, дуга је то је, осигурава да су те две операције проверите променљиву или проверите ред и ажурирање ред догоди атомски. 

Ох ево га опет. Текст поруке на телефону. Па хајде да ово мало конкретнији. Претпоставимо да ниси спровођење фрижидер, а ви не имплементацију ПСет 7 али стварни банка, или банкомат, Аутоматед Теллер Машина, те чиме некако желе да буду у стању да се оснаже корисницима пребацивање новца са једног рачуна на други. У реду, држи се. Ја ћу да искључите ово сада, хвала. Дакле, желимо да се креће новац из једног броја рачуна у други рачун број, посебно $ 100. Дакле, ово је врста произвољан пример, при чему ти, банкомат, можда желите да извршите два СКЛ упити, одузети од једног рачуна, и додати други налог. Али ти желиш да се осигура да су две линије и догодити или не уопште. Ти не желиш нешто геттинг прекинут. Ти не неки паметан негативац некако стоји на Банк оф Америца са два банкомата испред од њега и некако врста куцања у команди истовремено, надамо се покушавајући да одбије уместо $ 200 од $ 100 и $ 100 има само одобрава. Укратко, хоћеш ово понашају управо онако како сте очекивали. 

А како ти ово СКЛ база података га умотати у шта је назива трансакција. Буквално у СКЛ, можете позвати ЦС50 је упит функција са знацима навода старт трансакција. Онда можете извршити било који број накнадних СКЛ упита, али ниједан од њих узети Ефекат на бази података док зовете упита под знацима навода цоммит, ако опет користе ПХП. И на овај начин, можете обезбедити да чак и ако имате 1.000 корисника све удара своју базу података истовремено, СКЛ ће обећати да они два упити ће бити реализује један одмах после друге. Тако да се не завршавају са вишком млеко или погрешан износ, на крају, новца. 

Дакле, то на уму, не толико због ПСет 7 али за коначних пројекте Ако сте стварно си покушавају да се крећу около података преко стола као што можете да овдје. Али, можда још једноставније и очигледно да разумеју пример је овај овде. И неко нас поштом о ово само неки дан када је видео нешто слично на мрежи. 

Дакле, по мом сазнању, системског ПИН није рањива на овај напад. А ја немам појма да ли Он чак користи СКЛ база испод хаубе. Али хајде да га користите ради дискусије. Ево екран који Харвард људи склони виде када се пријавите са својим Харвард матични број и њихов ПИН. И претпоставимо да су системски ПИН имплементиран у ПХП и са МиСКЛ база података, код који је неко Пре можда написани година може изгледати овако. Прво, прогласи променљива зове име. И само се то од ПОСТ суперглобалних. Онда добити другу променљиву позвао лозинком и учинити исто. А онда само извршавају Овај дуго упит овде, Изаберите звезда ФРОМ усерс ВХЕРЕ корисничко име једнако такав и такав и лозинку једнако тако и тако. 

Обратите пажњу на то коврџава протеза Ја сам се овде користи Само значи ПХП, идемо напред и замена вредност тих двоје променљиве управо тамо. Они нису строго неопходно, али они имају тенденцију да се избегне суптилних синтаксу грешке. Дакле, ово изгледа потпуно тачно на први поглед. И то је. Могао би имплементирати пин систем у овај начин. 

Али претпоставимо да је супер паметан и злонамерно ученик улаз ово као свог пин. Па сам уклонио метак знаци овде у репрезентативном, и ја сам у ствари открио шта он или она можда куцања. И то је мало чудно. Али оно искочи на тебе у потенцијално забрињавајуће о улаз корисника, чак и ако немате појма шта напад СКЛ ињецтион значи. Зашто ово изгледа мало сумњиво? Шта је то? [Неразумљиво] ДАВИД Малан: или је мало сумњиво. У ствари, то је кључна реч из СКЛ. Тако да не слути на добро. Чињеница да постоји Сви ови апострофе тамо-- заправо, један од најлакших начини сломимо неке базе података је укуцавањем имена попут О'Реилли да има апостроф у њој јер ако човек који је написао код иза кулиса не узима у обзир да постоји Можда сингле цитати корисник је улаз, а он или она користи апострофе у свом коду, лоше ствари могу десити. 

У ствари, још горе, сматрам. Ако је ово опет код да неко на Харварду година Пре писао за пин Систем, приметио шта је о да се замењен за корисничко име и лозинку ако је корисник поново скрооб као своје корисничко име а онда један, два, три, четири, пет, куоте или под знацима навода један једнако цитирам једну. А погледајте шта је кључ Овде је корисник није почео своју шифру или њихов ПИН са цитатом. А нису га завршили са цитатом зато што он или она претпоставља да, ако програмер није био тако оштар, они ће имати оне апострофе у свом коду. 

Дакле, ево код. И то супституција Можда сада десити је. И ја сам нагласио шта корисник унесе. Дакле пре, после. А погледајте шта је благо забрињава сада о десној половини ове СКЛ кода? То је мало сложенији, додуше, од упита смо видели. Али то не може да бити добра ствар ако си рекавши изаберите звезду, која је изаберите све од стола корисника где корисничко име једнако скрооб и Пассворд једнако један, два, три, четири, Пет или један једнако један. Шта је логично импликација тог последњег клаузуле вероватно? То је само увек истина. 

И зато што смо некако погодили или схватио методом покушаја и грешке да програмер који ово написао закон није предвиди људско или лошу особу куцате у појединачним наводницима и, можемо синтаксицки заврши СКЛ упит са нечим бесмисленом већ нешто што синтаксно нетачна који увек има вредност труе. Дакле, ако је то број се користи да одговори питање истинито или лажно треба Овај корисник бити дозвољено да прође, Одговор је увек очигледно иде да би било истинито, јер то је увек иде да изаберете нешто из базе података јер је један, наравно, увек једнако један. 

Дакле, шта је решење? Па у ПСет 7, заправо избегавајте све ово заједно. Ми вам дати функцију упита, а ми Саветујемо вам да употребите упитнике као носиоци, слично у духу принтф је% с, али оно што је кључно је са упитник Овде је, ако заиста прочитате фунцтионс.пхп, где наши Функција Куери се спроводи, ти упитник су побегли, при чему ништа потенцијално опасан као апостроф укључен у одбеглог апостроф. 

Дакле, то је оно што је стварно догађа ако вас користите функцију упита ЦС50 или било који број независних слободних библиотекама да урадите исто. Није битно у овом случају, у зеленој, ако корисник унесе апостроф јер упита Функција коју је написао ће додати бацксласх пре Свака таква опасна цитат. Дакле, то није, у Чињеница, ће бити легално. То је као да куцате у луди лоокинг Пассворд то је, наравно, не иде бити скрооб стварном лозинку. 

Дакле, за понети за ЦС50 је један, апсолутно увек користите нешто као функција упита ЦС50 је или основни библиотеке, који се дешава да се зове ЗОП. Али никада, никада, никада не код овако без бекства или рибање како кажу твоји улаза. И хоћеш у неком тренутку вероватно наићи неки сајту овако. У ствари, чини се да је случај као на аеродромима и хотелима у местима где имају фрее Ви-Фи Приступ да морате да се пријавите на, ови сајтови су увек ужасно имплементиран. Па нека врста забаве код куће вежбе, Не у злонамерне сврхе или више од забаве на путу вежба, да само укуцајте Апостропхе, апостроф, у форму на неком сајту и види шта се дешава. А ако је сервер сруши или даје ви нека врста поруке о грешци, може врло добро бити да неко није предвидео ово. А онда би требало да упозори Пропер власти и наставите даље. 

Па сад ви треба надам се схватити мало више геек хумор. 

[Лаугхтер] ДАВИД Малан: Знаш да си кретен. За наредних неколико година, ви ћете се сетити који Литтле Бобби табелама због ове карикатуре овде. Тако то на уму, као што контекст прекидач последњи пут данас ЈаваСцрипт. Провели смо релативно мало Време на синтакси ПХП јер то је заправо Супер слично Ц. И лепо довољно, такође ЈаваСцрипт је супер сличан синтакси Ц с као што ћемо видети у Само тренутак, а као што ћемо види касније ове недеље у посебно. Шта можете да урадите са овом језику, мада је све моћнији, посебно са АПИ. 

Али прво Куицк Тоур. Дакле један, у ЈаваСцрипт, ту је Но главна функција, што је лепо. Као и код ПХП, можете само писати код. Услови изгледају овако. Боолеан изрази мигхт изгледају овако или овако. Прекидачи постоје, а они може изгледати овако. Четири Лоопс изгледају овако. Док Лоопс изгледају овако. Дали Докле изгледају овако. И онда низови изгледати ово, врло слична ПХП. Али приметили, да у ЈаваСцрипт иоу прогласи променљиву не са долар потпише, не са типом података, али буквално рекавши вар за променљиву пред њим. Он је такође лабаво откуцан ин да има врста, али не изричито их прогласи. И онда низа, пример, може изгледати овако, то стринг зову а у овом случају. И онда објекат. А ово ћемо видети још пре дуго. А објекат је можда један од најчешће види структуре података у ЈаваСцрипт заснива програм, јер омогућава да повежете произвољно Кључни вредност паровима само Као ПХП асоцијативне низове и баш као твоје хасх табели или покушајте што смо реализовали Пре неколико недеља. Па хајде да видимо шта стварно можемо да урадимо са ЈаваСцрипт. Конкретно, ово је листе за функција да прегледачи имају тај омогућавају нам да кука ЈаваСцрипт у сајту на следећи начин. ЈаваСцрипт се често користи као Цлиент Сиде Сцриптинг Лангуаге. Није саставио. Он такође се тумачи. Али за разлику од ПХП, који је покренут на серверу, на веб сервер, или дубоко у Клијенти, ЈаваСцрипт се разликује по томе што обично ради у претраживачу. 

Тако да било ЈаваСцрипт код почнете да пишете за ПСет 8, или ваш коначног пројекта, или у стварном свету генерално иде да се чувају на серверу, апсолутно у дот ХТМЛ или ДОТ ЈС за ЈаваСцрипт датотеку. Али прегледач иде за преузимање да ЈаваСцрипт код на своју инстанцу Цхроме, или ИЕ, или Фирефок, или било шта друго. А код заправо ће добити извршава унутар сопственог претраживача. Само да ово више Реал, хајде да видимо у конкретном облику. 

Немамо појма шта то код ради без читања заиста кроз њу. Али, дозволите ми да идем у Фацебоок.цом без логовања. Пусти ме да прегледа елемент и идите на, рецимо, мреже и перезагрузите страницу. И ми ћемо видео-- пусти ме померити поново учитате Страна да се све захтеве за нове. И први Филе Видим је ЦСС, ЦСС. Ево први ЈаваСцрипт фајл, и ја имам нема појма шта то ради, али овде је неки од ЈаваСцрипт кода који вози Фацебоок. Није ни то баш откривајући да бисте увећали. И даље је исто тако бесмислено. 

Али видећете и доле, ту је још више ових ЈаваСцрипт датотеке. Упс. То је пинг. Идемо доле мало даље, даље, даље. Има један. Има један. Има један. 

Дакле, иако је Фацебоок, иза сцене, пише у делу у ПХП и Фацебоок сопствене верзије истих, постоји огромна количина ЈаваСцрипт. У ствари, било који од ћаскање радите на Фацебоок, Било која од ажурирања редни хронолошким да се то догоди у реалном времену, све то покреће ЈаваСцрипт. Да? 

ПУБЛИКА: Нисам сигуран ако је ово Фацебоок, али сам мислио да је Фацебоок развио своје у кући код језика? ДАВИД Малан: Јесу. Зато кажем на варијацију ПХП назвао Хип Хоп да они заправо додатне функције на такав да када Марк прво спроводи Фацебоок, је написан у ПХП. И да је на неки начин остао врста предњег језика да користе много њиховог кодирања, али није језик који је ваге посебно добро у милијардама људи. И тако су додали своје побољшања иза сцене. И они користе било који број других језика за различите комаде своју инфраструктуру. Тако да, то је одступање од оно што сада знамо као ПХП. 

Дакле, хајде да погледамо на неколико примера како бисмо могли да користе ЈаваСцрипт овде. У данашњем изворног кода, имамо Гомила фајлова, прва од којих, хајде да се зове ДОМ нуле. Дакле, ДОМ нула изгледа као што следи. Пусти ме да идем у овај директоријум и отвори домзеро.хтмл, врх који има тип доц декларација, рекавши долази ХТМЛ 5. А сада је ХТМЛ тагове. Ево главе ознака. А ево шта је ново данас. 

Ми сада имамо сцрипт таг унутар главе странице. И ово очигледно не врло мало, али Нотице да сам дефинише скрипта, ЈаваСцрипт. И као по страни, јер то је честа заблуда, ЈаваСцрипт има апсолутно ништа у вези са Јава, језиком да су неки од вас можда научили у оклопним транспортерима. Било је више од маркетинга ствар од свега, јахање џеповима Јава година. Али ЈаваСцрипт, нема никакве везе са Јава, само слично, и досадно, збуњујуће зове. 

Дакле, овде је како прогласити функцију у ЈаваСцрипт, буквално кажу функцију, затим име функције, онда никакве аргументе Зхатјевају, баш као у ПХП. Испада у ЈаваСцрипт, један од највише досадне функције које постоје на опрезу. Ово је мали прозор који ће се појавити и упозорити вас на неку информацију. То је углавном пожељан. Али ми ћемо га користити као наш Прво вежба овде. 

Обратите пажњу на неколико карактеристика ЈаваСцрипт. Једнокреветне и двокреветне цитати цитати Не стварно није битно више. Апострофе и дупли цитати могу да замене, док је у Ц, морате да користите Двоструки наводници за стрингове, а имате два сингл наводи за карактера. У свету ЈаваСцрипт, многи људи, већина људи Користите једноструке наводнике око низова само зато што је стилска ствар. Али шта је ту оператер Плус, које нисмо видели раније? 

ПУБЛИКА: Спајање. ДАВИД Малан: Спајање. Дакле, Ц нема ни ово. ПХП има оператор дот, која то ради. ЈаваСцрипт има оператор плус, који збуњује је као Јава. Сада шта се овде дешава? 

Па, ево, где основни разумевање те слике смо бацили се пар пре дана долази у игру. Сећаш се кад смо имали једноставан верзија ХТМЛ паге-- то сам рекао, здраво свет. А онда нацртао дрво десно, који имао гомилу правоугаоника и линија повезујући их као породично стабло. Дакле, то је такозвани ДОМ или Доцумент Објецт Модел. И испоставило се да можете да приступите правоугаоника у дрвету са синтаксе као у наставку. Ви буквално кажете документ, који је Посебан глобална променљива у ЈаваСцрипт програм који има функцију повезан са њим да можете приступити слично на структуру, али ти једноставно кажу тачка и затим назив функцију је, гет елемент по ИД. 

Елемент желим да је очигледно под знацима навода име. И онда желим да се његова вредност. Сада смо се занели. Нисам ни сигуран шта све ово је у вези. Идемо брзо напред у ХТМЛ о страница, која је супер једноставна. 

Обавештење да сам дефинише формирају овде. Нотице сам га дао јединствен ИД, иако ми нисмо користили Овај атрибут раније. Али то постоји у ХТМЛ. Ви јединствено можете идентификовати неки комад ХТМЛ са идентификатора овако. 

Обавештење сад ово-- испоставља ХТМЛ подржава, по том списку за малопре, цела гомила управљање догађајима. А овај догађај руковалац каже на субмит. На корисничком подношења овог форма, позовите следећи код. И код који иде да се зове или погубљен је управо то, грчки Функција затим врати ЛАЖ. Све остало треба бити веома познато. 

Ево улаз типа текста, чије ИД, у овом случају, ће бити име. Ми немамо право име атрибут Ово времена-- готово и дугме поднесе. Тако да резултира страна изгледа овако. И резултујући понашање, видећете, изгледа овако. Страни је локални домаћини, каже, здраво Дејвид, тешко естетски начин да се поздрави корисника. Али шта се заправо дешава? 

Па, размислите шта је ово. Ово је текст поље. А према ХТМЛ код, ја сам га дао јединствени идентификатор назива под знацима навода име. У међувремену, ја сам рекао, када корисник доставља овај образац ударајући Ентер или кликом Пошаљи дугме, позовите функцију под називом Греет а затим врати ЛАЖ. Размотримо оне у рикверц. Обратите пажњу када сам кликните на Пошаљи, УРЛ ове странице се не мења. Икона читача није почео врти. Ја нисам ишао нигде, и то је буквално, јер сам рекао да врати ЛАЖ. Ретурн фалсе кратке спојеве или заустављање Уобичајено понашање форме. Тако да нас је тада оставља ово последње питање. Шта Поздравите радим? Па, очигледно Греет позива функцију која се зове Алерт, пролази у једном дуго аргумент да је резултат спајају заједно гомила субстрингс, здраво зарез простор, онда шта год ово враћа. Дакле, документ је као глобални променљива на тај корен тог дрвета, позивање специјалну функцију, иначе сада познат као метод. Функција која је унутар променљива назива метода уместо функције. 

Зато се елемент по ИД. Који елемент и ти Желим да својом ИД? Под знацима навода име и затим посебно вреднују. Другим речима, то код једноставно проналази текстуално поље чије ИД је име а потом добија вредност. Дакле, ако бих да се то промени и кажу Давин уместо Давида, и кликните на Пошаљи, сада имају поздрав за Давин. 

У реду, тако да су сви добро и добро. Али хајде да видимо да ли можемо да направимо Ово мало чистач од само писање кода овако је генерално ће бити пожељан. То ће изгледати страшније. Али шта је прва Разлика коју напоменути у овој верзији поред име промени у Дом један? Шта структурно изгледа другачије о томе у односу на друге? Да? ПУБЛИКА: Да ли је форма у Топ оф сценарију сада? ДАВИД Малан: Да, образац је на врху сценарија за неког радозналог разлога. Дакле, то је прва ствар да искочи на мене. И срећом најмање, Овај део је идентичан. Дакле, једина ствар која изгледа бити другачији је ово. 

Дакле, овде је оно што је згодно о ЈаваСцрипт 2. И то отежава разумети на први поглед, посебно за коначних пројеката уколико гледате код узорка мрежи, али то се своди на неке Основне карактеристике синтаксни. Ево опет да Глобал променљива документ. Ево опет тај метод или функција која каже да елемент по ИД. Овај пут желим да добити ИД називом демо. Где је то? То је очигледно у праву Овде, сама форма. 

А сада приметите да очигледно да сам вратимо тај чвор из дрвета који представља облик сама, а не текст поље, Испоставило се да форму, да чвор или правоугаоник са дрвета, има шта ћемо назвати имовине, веома, веома, веома сличне у духу на структуру у Ц. То је само члан података унутар овог правоугаоника. 

Тако да имам форму овде, а ја причвршћивање, или сам доделе, на њен Он Пошаљи трговине односно на имовину Пошаљи следеће функције. А ово је, далеко, најлуђа ствар до сада синтаксицки. Испоставило се да у ЈаваСцрипт и у ПХП, а искрено се тога тиче у Ц, иако ми то не радимо, можете адд безимени, анонимно или АКА ламбда функције које немају име али може назвати свеједно. 

Дакле, оно што ја радим овде сам додељивање Овај он Субмит имовину, која унутар овог чвора мог ДОМ стабла, Функција, функција показивач ако хоћете. Та функција нема наме, али да не важно јер ћемо видети у једном тренутку како да га зовем. Када се зове ова функција, Овај код буде погубљен, а затим лаж се вратио као пре. 

Али погледајте шта сам урадио. У овом тренутку у прича, имам форму. Има јединствени ИД називом демо. Овде, имам сцрипт таг да извршава следећи код. Придаје том чвор у дрво за то је на Пошаљи Проперти ова функција овде. И само по природи како претраживачи раде, кад сам сад кликните на Пошаљи или притисните Ентер, да функција ће се звао. Није потребно име јер ко дођавола брига како се зове. Једини пут икада ће добити звала је кад сам поднесе образац. Нема потребе за мене, Хуман програмер, Да бисте га назвати било где другде. 

Сада само као тизер, као да нису довољно смета савијање, можемо чак да овај изгледају Цриптиц користећи Супер популарна библиотека зове јКуери. У ствари јКуери и ЈаваСцрипт се често измешан. А шта ћемо урадити у среду је почетак користећи овај језик и ове библиотеке да се изгради више асинхрони и динамичке апликације као МАП апликације, апликације да ажурирате страну у Реал време, слично као Фацебоок или Гцхат уради, а не да се ограничити Ударање Пошаљите од добити или само пост сама. Тако да ћу те видети у среду. 

[Мусиц плаиинг]