[За възпроизвеждане на музика] DAVID J. Malan: Добре. Добре дошли отново. Това е CS50. Това е края на 8-та седмица. И както знаете, ние имаме доста нормално работно време в рамките на няколко на залите за хранене, включително Annenberg. А някои от екипа любезно направих няколко снимки напоследък. И в чест на Halloween, ние решихме, че ние бихме споделят едно, че вместо да ни хванат от изненада тук в Annenberg Hall само онази вечер. Вашият съученик Яков позира за тази снимка, но е по-забавно беше на Facebook, произтичащите разговор, което се случи след това. 

Първата му публикация в отговор да му снимка е това. Няколко минути по-късно, той решава до един до себе си с това. Тя продължи след това да отидете на този, и след това, още по-забавно е, когато майка му звънна вътре. И след това в крайна сметка, Изглежда, че това е просто прекрасен Русе за играят, което се случва. 

Така че, ако искате да види Яков и други, сред тях Синтия Менг, който е зад кулисите на персонала CS50 зона, се отправят към този URL и тази игра тук. Така че, без повече приказки, днес продължи този поглед в уеб програмиране, и действителната създаването на програми че не работи на вашия команден ред, но вместо да тече вътре в браузъра. 

Предполага се, че сега, или много скоро, започваш да бъде в средата на изпълнителните свой собствен уеб сървър, който е различен от уеб програмиране. Уеб сървър в pset6 е за всички писането на софтуер, който знае как да се HTTP заявки от браузъра, или дори от вас, човек, с програма, наречена Telnet и след това отговори на тези искания или от изплю един HTML файл, или JPEG или GIF, или дори един .php файл. 

Но с уеб сървър, това не е трябваше просто да отворите файл PHP, нещо приключва в .php, и след това плюе на съдържанието. Той е трябвало да се направи това, което на този файл, на първо място? Така да се каже. Не го компилирате, ние заяви в понеделник, но rather-- Така тълкува това. 

PHP е интерпретиран език, и така една от основните функции на вашия уеб сървър, макар и изпълнени от нас, е тази способност за вашия уеб сървър да забележите, о. Това е файл, завършващ в .php. Нека не просто да го изпратите на потребител, като това е статично съдържание, а по-скоро да ми го прочете ред по линия, от ляво на дясно, и да го тълкува. 

И да се направи, че сте момчета ще същество шута на програма в уреда, и на много компютърни системи, току що се обади PHP. Това е името на PHP на собствен преводач език е. Така че, това парче ние прилагаме за вие, и какво е останало за вас, В крайна сметка е номер на парчета, между които е прилагането на подкрепата за статично съдържание. 

Но сега, както и с проблем определя седем, вие сте ще започне да се преход към пишейки код на PHP че получава тълкува в разговор с задния край база данни, която съхранява информация. Така че нека да разберем по-добре първо Няколко от тези свръхглобални и колко много ви власт да излезе от кутията безплатно с език като PHP. Неща, които не разполагат с за прилагане на себе си. 

Така че, ние видяхме в понеделник $ _GET, което е свръхглобална, което е просто PHP говорим за глобална променлива можете да получите достъп навсякъде. И това, което е вътре в $ _GET? Какво е вътре в този свръхглобалните че виждаме? Със сигурност статистически при най-малко един човек знае. Какво има вътре на $ _GET? Така ли? 

АУДИТОРИЯ: Това е променливите ще ви постави в низ заявка. 

DAVID J. Malan: Perfect. Тя е под формата на Можете променливи поставя в низ заявка. Така че, в нашия по-стар пример за reimplementing Google, когато имахме на URL, и после въпросителен знак, която очертава началото на HTTP параметри, а след това имахме р равен нещо, като Q е равно на котки, това, което автоматично ще влезе вътре на тази $ _GET супер глобалната за вас, защото на PHP, е ключов за Q, и на стойност от него на котки. 

С други думи, $ _GET и всички тези неща са асоциативни масиви, хеш таблици на всевъзможни, че магазин ключове и стойности. Сега, отново в pset5, хашиш маса може да са приложени, или да се опитате може са изпълнени, наистина е ефективно асоциативен масив, структурата на данните с което можете да свържете ключове със стойности. 

Но в pset5, стойностите са тривиални. Стойността е по същество вярно или невярно. Дали думата в речника? Така че, когато се сегментира дума като ябълка да видим дали Apple е в речника, чека функция вероятно връща истина или лъжа. Така че, това е ефективно стойност ние получаваме обратно. 

Но видяхме в понеделник накратко, вие със сигурност може да асоциира по-интересно ценности, отколкото просто вярно или невярно с ключове, като ябълка. Вие действително може да се върне на произволен низ, и наистина, това е, което $ _GET и те други променливи ви позволяват да се направи. 

Така че, $ _POST е подобен по дух, но ако подам формуляр по пощата, различен метод HTTP, че е използван за неща като кредитни карти, и лична информация, и дори двоична информация, като снимки, тези неща, в крайна сметка вътре от $ _POST. И всъщност за файлове като JPEG снимки и какво ли още не, има дори и друг, който не е тук се нарича $ _FILES, както добре. 

Така че, сървър, ние няма да се спирам на твърде много, но той ви дава достъп да се справи с подробности по-ниско ниво за на самия сървър, че използвате. Cookie и сесия, въпреки че, ние действително ще видим сега. Последното е това, което ние използваме за изпълнение идеята за пазарска количка. А супер проста, но отзоваване че имахме този пример тук, брои колко пъти ви е посетил тази страница преди. 

Но днес, а не просто да погледнете ефектът от това, нека да отворим Инспектор на Chrome, която обикновено може да направя с десния бутон или Control кликнете върху всяка точка на уеб страница, и след това изберете инспектира елемент. Или можете да отидете през менютата че ние описваме в спец pset6 е. И аз отивам в раздела Network тук, и нека да наблюдавате за момента на HTTP трафика, който е върви напред и назад. 

Позволете ми първо да отида напред и кеш ясно на Chrome. Така че някои от вас може да е запознат с тази техника вече, и отиваме да го използвате за целите на отстраняване на грешки тук. Сега ние като компютър учените ще започнат този начин за отстраняване на грешки цели, при което ние ще изчистите кеш паметта, обикновено, така че ние да се отървете от неща, наречени бисквитки. Така че, най-вероятно сте запознати общо с това, бисквитките са или поне че те съществуват, но това, което е Вашето разбиране от тях, просто като потребител на компютри, какво е бисквитка? Да. 

АУДИТОРИЯ: Това е малко of-- добре, не малко в срок от компютърните науки. Това е част от данните, че уебсайт изпраща до вас, за да бъде в състояние да записва статистика за вас. DAVID J. Malan: Добре, добре. Така че това е парче от данни, които сървър, поставя на вашия компютър, и нека да го обобщим, дори повече, това е ключов value-- добре, че все по-точни. Тя е част от информация, част от данните, че сървъра е в състояние да поставите на вашия компютър и много често, сървърът прави това, така че да си спомня кой сте. Така например, коефициенти са вероятно сте влезли в сайтове като Facebook, или Gmail, или други преди, и да влезете с вашия потребителско име и парола, и тогава, след това, за някои номер минути или часове, или дори дни, сървъра си спомня, че вие сте в действителност се идентифицирали. Сега, как е, че всъщност се случва? Защото със сигурност не си преписва Вашето потребителско име и парола всеки път, да се ориентирате към друга страница на Facebook. Така се оказва, че на бисквитките са отговорът. 

Бисквитката може да се мисли като Нещо като, цифров ръка печат, че можете да получите най-увеселителен парк или клуб, който по същество показва, че вие ​​сте били тук и преди, и вече сте показано си ID на бияч, за Например, и че клубът или парка Сега трябва да приемем, че са заверени вече. Вие вече сте били идентифицирани от нея. 

Така че с това се има предвид, да отворим брояч тук. Нека вървим напред, аз просто направих, и изчистване на всички мои бисквитки. И сега това, което аз ще направя, е задръжте Shift, само за добра мярка, и насилствено се презарежда страницата. Shift просто се уверете, че нищо няма да се кешира. И тук е искането че се върна назад. Така че тук имаме искане, и нека ми увеличите тук, както и много от това е нещо безинтересно детайли за сега, че браузърът има автоматично изпраща, но нека кликнете View Източник, за да видите суровите заглавията. 

И ако сте се гмурна в pset6 вече, вие със сигурност ще признае неща по този начин, а може би и някои на тези други линии тук, но това, което е по-интересно за днес ако превъртете надолу, а не на искане но и за така наречената реакция, тази линия вероятно изглежда познато. Това е нещо добро когато видите 200 OK. Очевидно това е дата и час на сървъра и има един куп неща. О, това е интересно. 

Оказва се, че всеки път, когато използвате PHP, поне в този сървър, сървъра изплюва какво версия на PHP, който използвате. Което, всъщност, за сигурност цели, не е нещо добро. Но ние ще се върнем към този някой друг път може би. Но сега това е сочен линия днес, и видяхме накратко някои от тях, Мисля, че с Facebook, когато мушкам около инспектор по това време, бисквитка е това, което е засаждане тази малка част от информацията, на вашия компютър. 

Това е HTTP глава това е ефективно разказва за сваляне, Chrome, IE, независимо, хей браузър магазин на потребителя твърдия диск, или в RAM на потребителя, ключов нарича PHPSESSID, което е съкратена нотация за ID на сесията, и му се даде стойност на 0vlk8t, точка, точка, точка. А наистина дълго псевдобазилика случайна буквено-цифров низ. Това е просто един наистина голям брой, но това е кодиран с букви и цифри така че размерът на това може да бъде още по-голяма, отколкото само номера. И тогава, между другото, Path = /, че просто означава, че тази бисквитка трябва да бъде свързани с цялост на уебсайта, не само специфичен страница на цялото нещо. Така че това е, че виртуалната печат ръка. Това е все едно, че сървърът, Facebook, или в нашия случай на уреда, има буквално писмено 0vlk8t и така нататък, на ръката си. Забележете какво сървъра, Не прави това, той е не съхраняване на името ми, със сигурност не съхранява паролата си. 

Вместо това, тя изглежда да е съхраняване на псевдо случаен информация така че никой не може да се досетите това, което ръката ми печат е. От страна на сървъра, Междувременно сървъра ще се помни, вероятно в база данни или нещо такова, че потребителят, който в бъдеще представя ръка печат на 0vlk8t, DOT, точка, DOT, трябва да бъде свързано с това специално количката, така да се каже. С други думи, ако сега отидем тук и презаредете тази страница, как сървъра знам че аз посетих едно време? 

Или ако го направя отново, как сървъра Знам, че съм го посетил два пъти? Ами ако отида до този най-новите искане, което сега е трети, че съм пратил общо забележите молбата ми сега. Все още този заявка тук, същата както и преди, има още цял куп неща, които сме пренебрегнати, както и преди, но последния заглавието, това време, тъй като аз съм бил тук и преди, е представяне на този виртуален печат ръка. 

Чрез която тази линия тук не, това бисквитка но бисквитка дебелото черво PHPSESSI = 0vlk8t, това е само мое браузъра автоматично представяне на тази ръка печат, така че Сега сървъра, веднага след като осъзнава, Ооо, това е потребителското 0vlk8t точка, DOT, точка, Сега мога да си спомня кой е той или тя е и reassociate с този потребител независимо информация Искам да, и всички тази информация може да се съхранява от вас, програмист, в $ _SESSION. 

Така че, за да е ясно, ако се отвори много бързо в Gedit че действително файл, counter.php, в моя местен домакин публичен указател както и преди, да забележите, че, наистина, Аз в крайна сметка съхраняване в $ _SESSION Цитат цитата "брояч" стойността на предходната брояч, който Получавам от тези линии до тук, че ние Погледна за последен път плюс един. Така че под предния капак, това е всичко, бисквитките са. Това е просто нещо като цифров ръка печат върви напред и назад, и честно казано, ако отворите на Chrome Инспектор във всеки сайт можете да посетите днес, с супер висока степен на вероятност, ти започваш да се види може би един, може би половин дузина бисквитки се запомни с вас. 

И още по-лошо, ако тези уеб сайт, който посещавате всички те имат реклами, които е със сигурност доста често днес, и ако тези реклами са следващите от някаква централна страна, някой като Google или AdWords, тъй като те позвъните на един от техните продукти или други подобни фирми, които продава реклами, което е интересно, и честно казано, това, което е малко по- тревожен, за това как работи HTTP, е, че ако имате реклама вграден в Facebook.com, и Google.com, и Harvard.edu произволен брой на уеб сайтове, така че това е като че има един среден човек, който излежава реклами за всички три от тези сайтове, Оказва се, че бисквитките са на домейн. 

Така че, ако имате реклама, идващи от една и съща фирма на различни сайтове, това дружество може ефективно да следят за това кой Вие сте във всички от тези сайтове. Harvard може би не знаете вие посещавате Facebook. Facebook може да не знаят и сте на посещение в Харвард. Но каквото и рекламна услуга те използват, ако този домейн е присъства и в двете Harvard.edu уеб страници и Facebook.com уеб страници, този среден човек със сигурност знае кой сте вие поради тези бисквитки се споделя целия, или по-скоро да, че така наречените посредник. 

Така че ние ще се върнем към това в последствия за сигурността от тях, но има много информация се съхраняват за вас по всяко време посетете най-всяка уеб страница Интернет и тя наистина свежда до това много прост механизъм. Какво се случва, след това, ако вие сте супер параноик и вие решите да отидете в Chrome или IE или каквото и да изключите бисквитките? Какво се случва? Така ли? Можете really-- сте направили това право? OK. Не, давай напред. 

АУДИТОРИЯ: Някои сайтове не са функция, без да го харесва Facebook. DAVID J. Malan: Да! Така определени уебсайтове просто ще спре да работи. И в повечето сайтове в наши дни че принципно разчита на бисквитки, особено ако те имат влезете в, те просто няма да се счупят. Тъй като разгледа алтернатива, ако сайта няма как да помня кой си, и следователно вашия уеб браузър не е представляващ с всяка HTTP искане на тази ръка печат, ефективно уебсайт като да отидеш на Facebook трябва да ви подкани да влезете във всеки дяволски време промените страници, или щракнете върху връзката, която със сигурност не е особено добра за употреба опит. 

Така че там също е сред компромиси. Така че, без повече приказки, нека да за даденост, че с уеб програмиране, в езици като PHP, можете да си спомните информация по този проблем в определен седем, когато решите да реализирате вашата собствена E * Trade-подобен сайт, с който да си купите и продават акции, вие ще си спомните точно това, което потребителят е закупил и продава и кой е той или тя е по пътя на тази сесия. Но ние ще се нуждаем любител начин от имейл да започне съхраняването на информация наоколо. Така ли е? 

В понеделник, ние говорихме за Фрош УИ и как в един вариант на този сайт, Преди години, всичко, което направихме беше приятел на Проктър, който е отговаря на интрамурални спортове програма, името и пола, и дали или не сте капитан, и общежитието на някой, който е регистриране за вътрестенен спорт. Така че това не е лошо, но той или тя тогава трябваше да трол чрез електронната си поща, направите електронна таблица или нещо подобно че за да се запази всичко организирани. Така че със сигурност ние като програмисти може да направи това за тази Проктър. И така влиза в SQL, Structured Query Language, който ще изглежда доста различен от двете С и PHP, и ще се потопите в много повече ръце PHP и проблем определя седем, но и SQL, или SQL, това е език, който използвате, за да говори с база данни. 

Но това, което е база данни? Ами мисля, че на база данни, поне за сега, като просто е като файл Excel, или Ако сте потребител на номера на файл с Mac, или ако сте на Google Apps потребител на електронна таблица в Google, това е действително една база данни, или наистина специално релационна база данни. A релационна база данни е просто нещо, което има редове и колони, и можете да съхранявате всякакъв вид информация в тези редове или колони. 

Но това, което е хубаво за SQL, и за действителните бази данни, не, просто таблици или Google електронни таблици, е, че можете да използвате език действително да изпълнява заявки за вмъкнете данни, за да премахнете данни, да се търсят данни, дори Най-важното е, че и ти не е нужно да го използвате доста ръчно когато имате възможност обикновено Google електронна таблица като тази. 

Така че в SQL, има един куп основните изявления или парчета на функционалност вградена вътре. Има много повече от тези, но можете да отидете огромно разстояние само като знаят, че този език, наречен SQL има най-малко четири отчети ви могат да се възползват. 

Delete, за премахване на данни, Поставете, за добавяне на редове, Актуализация, за промяна редове, и избор, за да се върне реда и това е наистина това, което прави SQL. Тя работи изцяло на реда, така че когато поставите или извадите, или актуализация, или да изберете това, което сте да се върна като т.нар резултатен набор, като набор от редове. А китка на редове от таблица. 

Така през деня, и дори до този ден, можете да си взаимодействат с база данни с помощта на командния ред, но това не е особено забавно да се използва тази черна и бяла прозорец стил и действително изпълнява команди и мушкам около вашата база данни. A графичен потребителски интерфейс, или GUI, е много по-за предпочитане, може би, и така на функцията ние препоръчваме и предварително инсталиран за вас на уреда се нарича бърз. Това е общо съвпадение, че име на това нещо има PHP в него, това просто означава, че хората, кой е написал тази програма се го е написал в PHP. 

Но това е в крайна сметка за администриране сървър на база данни, като на сървъра MYSQL че може да се наложи, тъй като направя в CS50 уреда. Така че там е по-подробно тук, отколкото ние трябва да се грижим за днес но това, което е ключ е, че в ляво дясната страна е списък на базите данни че имате на вашия компютър, на вашия CS50 уред, или идват окончателните проекти, които може да има върху трета страна, на една компания уеб сайт или уеб сървър, че може да се плаща за пространство. Така че в ляво е бази данни, един от които е pset7 който взех назаем от следващата pset седмици, а след това на върха има забележите, че има куп раздели, единият от които е база данни, SQL, статус, потребители, износ и така нататък. Така че може да се извърви дълъг начин само чрез реализиране че по-голямата част на потребителския интерфейс е в горния ляв колона и в горната част точно до там. И така, какво всъщност можем да направим с това? Е, нека да започнем създаването на малко информация, както следва. 

Да предположим, че следното е случаят, като ще бъде само за няколко дни, искате да се приложи уебсайт, наречен CS50 финансите, и този уеб сайт ви дава възможност да си купите цитирам цитата и продават акции. И това се случва, за да разбера цената на тези акции, в крайна сметка, както ще видите, като говорим за Yahoo Finance. Което, чудесно, има безплатна услуга чрез която може да премине в наличност махало като GOOG за Google, и това ще стане ти върна текущата наличност на Google цена в миналото няколко минути най-малко. 

Така ще използвате, че в крайна сметка, да се преструват, за потребителя да купуват и продават действителното запаси, използващи виртуални пари, но първото нещо, потребителят ще видите е този екран за влизане, които изисква от тях за потребителското си име и парола. И така, един от първите, предизвикателства за вас в pset7 ще бъде изпълнението на задния край база данни, таблица, ако щете, че това ще се съхранява Имената на потребители и пароли и в крайна сметка това, което те притежават акции, и колко и колко пари те имат, така че един куп други неща други таблици, или електронни таблици. 

Така че нека да разгледаме как това може да изглежда на пръв поглед. Отивам да се върнем към уреда и аз съм ще отидете на този адрес тук PhpMyAdmin Localhost / PhpMyAdmin и вие ще видите, че тя ме отведе до един интерфейс точно така, както ние видяхме в снимка на екрана, и ето ме има допълнителна база наречено лекция за днес и нека да вървим напред Първият и кликнете върху pset7. 

Изглежда не мога да имате няколко опции, един за нова, за създаване на нова таблица, и връзка с потребителите, които е таблица, вече е създадена. И така, какво е маса? Така че, ако сте използвали Excel и преди, и ако сте използваните номера или Google Spreadsheets, можете отворят прозорец и ще получите един куп редове и колони, но след това обикновено има работни листове по дъното, или отделни раздели. Можете да мислите за всеки лист като таблица база данни, така че в крайна сметка е комбинация от една или повече таблици, един или повече листове в свят на нормална таблица. Така че нека да вървим напред и да кликнете върху този лист че предварително направени, наречени потребители, а.к.а. Маса Database. И ако отидете тук, позволете ми да намалите малко, това е, което се казва, PhpMyAdmin ни е вътре в тази таблица в момента. Това е малко объркващо в началото поглед, защото UI не е най-красивото нещо на света, но това, което е интересно е, тази част тук. ID, име, и хашиш. 

В предварително, и вие ще бъдете в ръка този проблем в определени седем, ние ви дам един файл, съдържащ супер малка масичка база данни, взети назаем всъщност от хакерската издание на проблема определя две, вътре в който има шест реда. Един за Белинда всички начин до един за Zamyla, и забележете от ляво на тези потребителски имена са уникални идентификатори, като един, две, три, четири, пет, шест, числа, и след това в дясно са хешове. 

И ако, шансовете са, че не е направил Проблемът хакерската издание зададете две, но хеш е точно като криптирана парола с няколко уговорки. И така, това, което виждате тук, са шифрованите версии на всичките шест на нашите пароли от проблем определя два на хакер издание. Сега в ляво е просто някакъв GUI неща, редактирането на този ред, копирате този ред, изтриване на този ред. 

Но това, което е интересно сега е следното. Аз всъщност може да започне експериментират с тази таблица. Така че, ако аз отида и да кликнете на SQL в раздела, да получа тази голяма текстово поле. И това не е начина, по който започваш да се го направя, когато всъщност писането на код. За да е ясно, PhpMyAdmin е само един инструмент, който е няма да позволя да ни мушкам около базата данни и нека да експериментирате с запитвания. 

Така например, предполагам Аз изпълнявам точно това. Избор, който е един от тези, ключови думи, които споменах по-рано, звезда, която представлява всички колоните в таблица. От какво маса? Е, потребители. И известие има това странно конвенция в SQL където всъщност се използва обратно кърлежи, обикновено, не единични кавички, а не двойни кавички когато говорим за имена на таблици, така че отново цитат е нещо на горната лява ръка на клавиатурата си най- вероятно. 

Така че позволете ми давай сега и просто да оставим сам и превъртете надолу и натиснете Go, и ние сме всъщност ще видите едно и също нещо. Ние току-що изпълни заявка SQL казвайки изберете всичко звезда от таблица, наречена потребители, и това, което получавате обратно е това. В крайна сметка, ние ще бъдем в състояние да направи същото нещо в кода, но за сега всичко, което исках да да беше я видите в браузъра си. Ами нека да направим нещо малко по-различна. Нека се върнем към раздела SQL, и нека просто кажем, че това, което? Zamyla е загубил всичките си пари, и затова е време за нас, за да я изтриете като потребител. Тя вече няма да влезете. 

Така че аз отивам да се каже, изтриване from-- добре, поддържа капитализация за съгласуваност, изтрийте от потребителите къде. И така, ние можем да имаме тези предикати, или тези квалификации, в края на изказването си къде и как мога да изтрия Zamyla? От името й Zamyla, така че колона, една от колоните е кръстен, така че където името = "Zamyla". И тук аз използвам двойно кавички или единични кавички, използвате само гърба кърлежи, когато говорим за имена, например, таблици или полета. И нека кликнете Отидете тук. И сега, на интернет страницата е е малко напрегнат. 

Или, наистина ли искате да изпълните изтриете от потребители, където името се равнява Zamyla? Да. Така че сега, ако се върнем към моята маса Чрез кликване потребителите, забележите, че Hm. I goofed. И в действителност, аз вид кликнали далеч толкова бързо вие дори не видя червено съобщение за грешка, може би. Какво съм направил погрешно? АУДИТОРИЯ: Вие не се нуждаете да се възползва й име. DAVID J. Malan: Да, капитализира името й, но я username-- всъщност аз Направих няколко грешки, нали? Единият й име е zamyla, малки букви Z, и името на колоната е потребителско име, не име, така че нека да направим това отново. Нека да вървим напред и да изтриете от потребители, когато те потребителско име равнява цитат цитата "Zamyla". Добре? Така че това изглежда малко по-добре, нека отида превъртете надолу и натиснете Go. Тя все още продължава да крещи в мен, за да бъде сигурен. Аз щракнете върху Да, и сега ние виждаме, честно казано това се случи, наистина бързо, по-малко от един вторият със сигурност, това е точно заявка, че се е екзекутиран. За да потвърдите, позволете ми да кликнете потребители и наистина сега Zamyla е отишъл. Сега нека да направим обратното. Да предположим, че Гейб иска да да се регистрирате на сайта. Какво е заявка за SQL, това, което е най- команда мога да въведете, за да добавите Гейб? Ами това е доста ясен. Поставете в потребителите, а сега става малко загадъчен. Трябва да се уточни, към сървъра, кои области искам да присвоите. Аз наистина не се интересува какво Гейб ID брой е, така че аз отивам да пропуснете това. Аз, вместо да каже потребителско име, хашиш, а след това ценностите, които искам да поставя там ще бъде Габе. И тогава си хашиш, аз не знам. Така че за сега, аз отивам да оставим това като голям, за да се направи. Ще се върнем към че в определен проблема спекулация за това как всъщност направи това. 

Така забележите, отново, синтаксиса. Поставете в име на таблица, а след това скоби списък от полетата, колоните, които искате да добавите ценности, и след това просто точно същата подредбата отляво право на стойностите, които искате да добавите, и това е просто обвивка, защото текстът е малко дълго. Така че сега нека щракнете Go. Един ред е поставена. И сега, ако се върна в потребители, което е интересно е, че не само е Гейб сега в база данни, което е очевидно ID му? 

Ами това е седем. Защо е седем, когато аз не го добавите? Така че това също е един от най функции, които можете да получите на базата данни. Много построен във функционалността. Оказва се, че когато създаде тази маса, Аз предварително конфигурирано е автоматично зададете ID по такъв начин, че постепенно. Така че, ако някога сте се мушкам наоколо, и погледна какви са вашите Facebook ID номер е, че тези дни не е наистина нещо да се направи, но Facebook като API, Application Programming Interface, чрез която може да се върне цял куп данни за себе си, за приятелите си, и вашите връзки. И това, което се използва, за да бъде мил на хладно, през деня, е да гледам това, което си Facebook ID номер беше. Mark Zuckerberg е, например, е три тъй като той е автор на сайта. И тъй като историята отива, той създава две контролни сметки, потребителите една и две, която след това заличава. И така, Zuck, както е потребителското си име на Facebook, е номер три, и всички от нас имат много номера по-голям от три тези дни. В действителност, в някакъв момент Facebook се отдалечи дори от използване на INT, които е 32-битова стойност, с използването на следващата стъпка нагоре, по същество, дълго, дълго така че те биха могли да се настанят дори и повече потребители се регистрират. Така забавно малко исторически факт. 

Така че това е просто Основният синтаксис, с които ние може да изпълнява няколко въпроси, но ние можем действително направи още куп неща с SQL. И вие ще видите, в крайна сметка, в проблема определя седем че трябва да се направи брой дизайнерски решения, Сред тях ще бъде какви видове данни за използване. Така че, точно както в C, има данни, видове в една база данни, като MySQL, и видовете данни, които трябва да се избере от включването на тези области тук. Чар, VARCHAR, Int, голям инт, десетични Дата и час, както и много други. Така че нека действително да направи това. Нека да се преструваме, че не сме ръката ти маса на този потребител и нека да вървим напред и да се създаде, за себе си, в лекциите database-- Всъщност нека да вървим напред и да изтриете таблицата имам вече тук така че ние всъщност може да създаде това. Опа. Отивам да се откажа от това маса, и сега съм ще отида отново до лекция на базата данни тук, Отивам да се създаде таблица наречени потребители и нека просто правя три колони първоначално и натиснете Go. 

Сега, по-голямата част, отново, това е просто използването на този графичен инструмент, наречен PhpMyAdmin, и това, което правим сега е създаване на таблица. Така че това е като да отидеш File, New, и създаване на нов файл Excel. Така че това ме пита няколко въпроси, от ляво на дясно, какво е името на първата колона, и след това името на втората колона, и името на третия. Така че нека да пресъздаде това. ID и след това име е една, и след това хеш е друг. И така, какво трябва типа данни е сега за една област като ID? 

Ето целия списък на типове данни на ваше разположение в база данни, и за сега нека просто отидете с инт. 32-битова стойност, аз не правя мисля, че реално съм няма да има повече от 4 милиарда Потребителите в профила ми, в моята служба, така че аз отивам да продължи да се движи към следващия въпрос. Аз няма да се уточни дължина или стойности, това не е приложимо тук за инт, сам по себе си. И сега мога да се уточни, Очевидно, по подразбиране стойност, която аз няма да се уточни. A съпоставка, аз не знам какво е това. Един атрибут. Сега ние всъщност правим има решение за дизайн. Така че има няколко полета тук, не всички на които се прилагат, но неподписан точно какво означава? Че INT трябва да бъде? Само неотрицателна. Така че тя трябва да бъде 0 нагоре. Не, аз не отивам да се провери, защото Искам всеки потребител да има ID, тя не може да бъде нула. И тогава, да стигнем до някакъв по- интересни дизайнерски решения, като това. Ще се върнем към това в един миг, но това, което друга особеност на база данни е, е, че можете да кажете сървъра на базата данни, давай напред и оптимизиране на себе си, RAM и дисково пространство, така че избира и вложки, и изтрива и актуализации са наистина бързи. Сравнете това с pset5. 

Ако искате да търсите нещо в хеш таблица, която мислите като база данни, които трябваше да направя всичко работи за вземане на вашия хеш таблица бързо. Това е като, очевидно, вие. Така ли е? Трябваше да се сложи във всички време глобата тунинг неща, получаване на хеш функция Добре, фигуриращ как много кофи, които да имат. 

Но това, което е хубаво, отново, за база данни е просто шута всички този на други хора които са, че това чрез за вас, и за какво Отивам да кажа тук, под индекс е, че моята област ID ще бъде основният начин за идентифициране на потребителите в тази база данни. Аз няма да мисля на Zamyla като Zamyla, Отивам да се мисли за си като номер 6. 

Защо това е, може би, по-добре интуитивно да мисля за и модел всеки един от вашите отделни редове, използвайки редица вместо нещо като низ, като Zamyla или Габе или по-дълъг низ все още? Така ли? 

АУДИТОРИЯ: An ID е уникален? DAVID J. Malan: отново кажа? АУДИТОРИЯ: An ID е уникален? DAVID J. Malan: An ID е уникален, но suppose-- в зависимост от случая в общ с потребителски имена, предполагам Аз също каза, може да има само един Zamyla в света, и само един Гейб. I може да наложи уникалността ограничение на низове, също, ако исках. Така че не е лоша мисъл. 

АУДИТОРИЯ: по-сигурно. 

DAVID J. Malan: По-сигурни, защо? АУДИТОРИЯ: Не можете да кажете кои което е, както в потребителя. DAVID J. Malan: Добре, Не мога да кажа кой потребител е който така има аспект на личния живот към него, особено ако идентификаторите може би се появява в URL адресите. Така че, разбира се, че може вид работа, също. Други мисли? Така ли? 

АУДИТОРИЯ: По-лесно е да се извършвате операции на инт. DAVID J. Malan: Това е истинският кикър. Това е просто по-ефективно, или по-лесно за компютъра, да изпълнява операции на цяло число. Така ли е? Един INT е гарантирано е 32-битов, докато Zamyla е дълъг няколко знака, Gabriel е дълъг още няколко знака, Дейвънпорт е наистина дълъг и затова е не е особено ефективно да се използва струни за сравнение ценности и изглеждат за полета, както и актуализиране на полета, ако можеш да се измъкнеш само с едно число. Само на 32 бита. Така че, потребителски имена, също, по този начин, не трябва да бъде уникален, въпреки че те вероятно ще трябва да да, и дори по този начин твърде потребител може да бъде оставена да се променят своето потребителско име. 

Така че нека сега остави това като основно средство за идентифициране на потребителя. Това се казва в базата данни давай напред и да се оптимизира си така че, които изглеждат прозорци по ID са супер бързи. AI, ужасно име, просто означава Auto Increment, и това е проверката кутия трябва да се провери да се уточни, че областта на ID, за да се актуализира автоматично за мен, и след това аз ще превъртете надясно тук и честно казано, аз не съм наистина се интересуват в повече от тези области. Разбира се, не днес. 

Така че аз отивам да се върне тук, на първата колона, където Трябва да посочите име и хашиш, и нека най-малко да се съсредоточи върху втори за сега. Int вероятно не е правилният повикването, така че това, което прави повече смисъл, може би? 

АУДИТОРИЯ: Text. DAVID J. Malan: отново кажа? АУДИТОРИЯ: Text. DAVID J. Malan: Текст? OK, чух текст. Какво друго? Ние вид има един куп възможности за избор които са текстова в природата. Така че, когато и защо, направете използвате някои от тях? Е Чар, противно на това, което може мисля, че не е един символ. Това е с определен брой знаци. Така че, ако ние знаем, че всички потребителски имена трябва да бъде като осем знака, като се използва, за да се среща често в по-стари компютърни системи, мога да кажа, Чар и след това мога да кажа 8 тук. Това е, когато третата колона става приложими при създаването на една маса. 

Но това е нещо досадно защото някои хора може да искат да имат по-дълъг потребителско име от осем символа, някои хора може да искат да имат по-кратка потребителско име, така че защо да се ангажирам до определен брой? Защо да няма променлива брой символи и просто се каже, че максималната дължина на името е, аз не знам, както и 64 знака. Не мога да мисля на всички приятели, които имат имена по-дълги от 64 символа, и дори ако това е твърде кратък, бихте могли да със сигурност го избута до произволно. 

Така VARCHAR е променлива брой символи. Текстът не е лош инстинкт, и откровено, че нещо прави това, което казва, но текстово поле може да бъде като 65,000 байта най-малко. Това е може би Overkill за поле, а в действителност, Мда, 65,535. Това е може би Overkill за име, така че ние ще се придържаме, обикновено, с varchars за текстово поле и хашиш, също. Hash, оказва се, бихме могли да направим по- VARCHAR като добре или нещо такова, но няма да се съсредоточаваме днес на криптография там и номерата че ние може в действителност искате да използвате за своята дължина. 

Но нека да превъртите надолу, надясно. Можете да имате само един първичен индекс за маса, но не искам да се използва всяка от тях, Сега, за да име, ще ви кажа? Какво трябва потребителско име да се основава на неясни разбиране на тези четири опции? Само с техните имена? 

АУДИТОРИЯ: Unique. 

DAVID J. Malan: Така уникален, нали? Така се оказва, че не само може ви разкажа една база данни, в аванс, това е основният начин идентифициране на области. Можете също така да кажа, че това е ще бъде уникална област. Тя няма да бъде на нещо, което се позовава на, но бих искал базата данни по същество са, че ако състоянието, така че че ако някога се опита да се регистрирате двама потребители със същото име, на база данни неуморно няма да ме пусне. Може би имам някакъв допълнителен код в PHP, който предотвратява много, но на базата данни, също може да се гарантира, че това никога няма да се случи. 

Сега, като се отмени, особено що се мислите за окончателните проекти, имайте предвид, индексиране и пълна текст всъщност са доста полезни. Ако имате по-голяма база данни, а не с десетки, а със стотици или хиляди или дори милиони на полета, можете да да каже на базата данни в аванс това е област, аз ще трябва да се търсят в много. Може би си потребителско име, може би това е био, ако сте вземане на Facebook-подобен сайт, който има точки, които потребителя е позволено да запаметите, и ако искате да кажете на базата данни в аванс Отивам да се търсят в тази област много, но това не е задължително да са уникални, можете да зададете създаде ме индекс. Или, може да се каже също така, позволете ми да направя вид на произволни обиски като Command или Control F, като теб мощ в Processor Word, така че можете да погледнете произволни низове или поднизове в тази област. С други думи, ние получаваме до точката, в семестъра където не е нужно да се притеснявате за как да се изпълнят нещата, ефективно. Ти просто трябва да се знае за какво дизайнерски решения да се направи така, че сте с помощта на подходящи инструменти за търговия с цел да се наберат функции че и други хора са построени за вас. Така че да обобщим, основното само трябва има един, може да има само един, и това е нещо, което се ангажира с използвате, за да идентифициране на области еднозначно. Уникален е просто сходни по дух, но може би само от време на време да го използвате, но искате базата данни, за да го наложи. Index просто означава изпреварващо ускори нещата в бъдеще така че мога да потърсите неща в тази област. И тогава пълен текст е общо за параграфи, или есета, или големи тела на текст, където можете Може също да искате да имате диви карти като еквивалент на звезда. Точно така. 

Така че това е вид много на всички наведнъж. Да видим дали не можем да дестилират Няколко от тези функции и след това изгради нещо сравнително прост, но мощен. Така между другото дизайнерски решения вие сте в крайна сметка ще трябва се заедно линиите на двигатели за съхранение. И нека просто да се споменава за това в очакване на окончателните проекти, и очакване за наем на say-- не нека да направим това. Да се ​​изгради тази малка прилагане на първо място. Аз ще отида в моя терминал прозорец, и тук не е само counter.php, което сме сега ще да се отървете от както вече не уместен, но ние имаме един куп на директории и това ще бъде много подобен по дух на това, което ще видите в проблем зададете седем. 

Така че ние имаме три директории включва публични и шаблони, които е точно там, където сме спрели на Понеделник с цялата ни парадигма MVC. И за да обобщим, в публично ще отиде всеки файл, който искате потребителите действително V да бъде в състояние да посетите в браузъра си чрез URL. Template. Какво ще се постави в шаблони? Какви неща? Там не е много, но няколко файлове, най-малко в понеделник. Да. 

АУДИТОРИЯ: Header и Footer? 

DAVID J. Malan: Header и Footer. Така че ние имаме нещо подобно днес, също. Имаме още няколко файлове, но Footer Виждам, Header виждам, а след това и куп други файлове. Така че това е еквивалентът на изгледа на V MVC, които, отново, ще бъде малко по- ясно определен проблем седем, но това е само една папка съм поставяне на много от моите естетика. Много ми HTML, много форми ми. Междувременно, включва, е друг директория, която има тези три файла и нека хвърлим един бърз поглед към тях. 

Отивам да вървим напред и да се отворят config.php. Както се оказва, много по- като по-рано в срока, можете остър включен CS50 точка з с pset7. В днешния пример, ти започваш да направи еквивалент на това с изисква декларация че ефективно включва тези няколко реда. Така че, за да е ясно, че това е файл, наречен config.php. И забележи какво прави. Това очевидно прави нещо загадъчни, включване на съобщения за грешки така че можете да ги видите в браузъра. Това е, тогава, очевидно изискващо две други файлове така че това е като #include в C, и след това ние го видите, и ние сме се позовава на това се превръща в че количката като функционалност. 

Това означава воля бисквитка да бъдат изпратени назад и напред. Така че, защо е интересно това? Е, ако се върнем към това директория и да се отворят, например, constance.php. Забележете, че PHP прави константи подкрепа, това не е съвсем като #define в C. Вместо това, вие буквално се каже определено, и известие че съм се съхранява в предварително четири константи в този файл. Един за днешния база данни, за паролата си, за моето име, както и за името на сървъра. Така че те са всъщност ще бъде доста подобен проблем в определени седем. И на последно място, и това е мястото, където съм Ще получите някои хубаво функционалност от персонала, в functions.php е един куп код сме написали, и откраднах някои от тези от проблем определя седем за днес, който прави един куп неща и нека да разгледаме един от тях в частност. Тази функция тук, заявка, ще бъде функцията PHP, което наричаме с цел да се изпълни SQL. Преди малко бяхме използване PhpMyAdmin, но това е просто за сортиране на цели за обучение и диагностични цели и забравяйки вашия набор данни. Когато всъщност използвате база данни, вие, човекът, очевидно не се случва да се дърпа нагоре уеб страница всеки път, когато някой се регистрира. Ти започваш да се напише код, който вложки и изтрива потребители на търсенето, и ние ще направим това с помощта на функцията за търсене. Ако аз сега превъртете надолу, има ще бъде още няколко функции. Пренасочване ще е функция, която написахме за вас, която ви позволява да изпрати на потребителя към друг URL, и ще направи, е функция, съвсем като видяхме в понеделник, че всъщност прави шаблон, но повече за това в форма на pset7 собствената разходка. За сега, нека да вървим напред и да направи това. 

Позволете ми да отида в моята маса и лекции се види, че има в момента нищо тук, просто все още, и нека също да отидете в моя публичен указател, където има само един файл, index.php. Този файл изглежда е супер проста в момента, тя изглежда точно като този. Много подобно на начина, по който спряло в понеделник. Аз съм изискваща този файл, config.php, който е в един включва указател, който е в точка точка, моите родители, и след това е просто налагане на този файл. И така, какво е този файл? 

Да се ​​отвори в моите шаблони form.php, и ние ще видим това. Супер проста, очевидно тази форма е ще представят от $ _GET или $ _POST. Бърза проверка на здрав разум. Буквално визуално търсене на файла. Метод равнява пост. Така че няма да използвате URL адрес, като Google прави, че ще се справи на скрий информацията зад кулисите и това е ще представи на файл, наречен register.php, и това е файла ние все още не са писали но това, което това се случва да изглежда това. 

Ако отида в отделна страница Това е какво Localhost / index.php изглежда. И отново, на сървъра само ако приемем, index.php. Enter. Така че това е мястото, където ние сме на, и това, което искам да направя е да бъде в състояние да въведете неща като Давид, а след това моя телефонен номер, което ще кажа, 617-555-1212 за сега, да се регистрирате и сега register.php не е намерен. Така че аз трябва да се приложи това. Така че нека бързо привличам нещо подобно на. Позволете ми да отида в моя публичен указател и да направим Gedit на register.php, и сега аз ще отида напред и да започнете режим PHP, както направихме в понеделник, и етикет близо PHP, а нека да направим няколко неща. 

Така един, знам, от написал тази форма, че искам да проверите за следното. Ако е празна, независимо от потребителя написа в полето за името, а след това Отивам да кажа нещо като се извини липсва име. Извинявам се, междувременно, е не вграден в PHP нещо, това е функция, която написахме в functions.php за pset7 така че да имате достъп до него. Иначе, ако другата областта е празен, номер, тогава аз съм няма да се извини на потребителя и да кажа липсващ номер. Запазете този файл. 

Сега нека се върнем към браузъра си, се върнете към форума, опитайте отново. Регистрирайте се. OK. Нищо не се случи, което е добре. Аз не се получи съобщение за грешка. Но ако вместо това, нека да презаредите тази страница, и не осигурява нищо. Дявол да го вземе. Направи това. Регистрирайте се. Какво съм направил погрешно? Ако празна, име на $ _POST. Отново кажа? 

О, разбира се. Забравих най-важната част, която е изискват ("../ включва / config.php."). Аз трябва да имат достъп до Извинявам се функция, която Ето защо нищо не се случва. Функцията всъщност не съществува. Така че нека да опитаме отново. Нека да презаредите страницата, кликнете Register. OK. Ето го. Така че, изходът сме виждаме тук, е резултат за свикване на извиня функция, супер проста, и то просто отпечатва независимо Аз я давам като аргумент. 

Добре, така че нека да си сътрудничат. Нека да предостави името ми като Давид, регистър, липсва номер OK нека да предвидят, че прекалено. 617-555-1212. Регистрирайте се. OK. Така че всичко е наред сега, просто нищо интересно се случва. Така че, нека сега направим нещо повече интересно се случи по този начин. Позволете ми да отида в PhpMyAdmin, и нека всъщност създаде таблица, наречена потребители, Отивам да го дам три колони, и аз бързо ще създаде ID, и след това име, и след това номер, и полето ID съм ще напусне като Int. Полето за име Отивам да напусне като VARCHAR, и ние ще кажем, 64, донякъде произволно. Броят Отивам да се направи, знаеш ли какво? Отиваме в подкрепа номера нас тук, така че аз отивам да правя нещо като знак, а след това 10 символа макс за регионален код и след седем цифри. И след това тук, аз отивам да зададени автоматично увеличение тази област, направи този първичен ключ, и Аз ще отида напред и да не проверите някой от тези други кутии. 

Така че, когато най-накрая натиснете Save, и аз да се върна към моята маса потребители, това е това, което изглежда като, ако аз Сега кликнете структура New Tab. Така че това, за да бъде ясно, е просто начин на PhpMyAdmin да се каже си таблица в база данни има ID, име и номер с тези специфични конфигурации и ще игнорира останалите области там за сега. 

Така че сега това, което искам да направя? Така че, ако сега отивам в моя изходния код, ако всичко е наред Искам да изпълни следната заявка. Поставете в и мога само твърди, че потребителите не правят строго нужда от тези обратно кърлежи, ако това е не е опасна дума като потребители. Отивам да кажа име, номер, и след това тук съм няма да твърди код на цифра от стойностите си. Отивам да се сложи две въпросителни знаци. И това е конвенция в много езици при което, ако искате да имате контейнер за низ ти започваш да се използва въпрос марки, поради причини, ние ще се върна да говорите за сигурност, и тук Отивам да премине в тези две полета публикувате име, и след това да публикувате номер, и сега запишете файла. 

И сега аз отивам да слизат тук е супер просто да кажем rendersuccess.php, които ще бъде друг шаблон. Отивам да се създаде много по-бързо. Geditsuccess.php и аз съм просто ще да кажа успех H1 в този файл. Добре. Така че сега, нека да се върнем към браузър, където посетих преди. Да вървим напред и да се потвърди написах Давид, аз написах в телефонен номер, регистрирай. Дявол да го вземе. Какво съм направил погрешно? Така че аз виждам грешка тук, има грешка в SQL синтаксиса. Позволете ми да скочи обратно към Gedit, нека ми да се върна към register.php, и какво съм пропуснат, че Беше важно за последен път? Имам нужда от това. Искаш ли да знаеш, че различни от като забелязал преди, но имам нужда от това. 

Така че сега нека се върнем, а това е полезно да се види в браузъра и това е, защо в config.php ние плюе грешки. Да вървим напред и да се презареди, кликнете върху Напред, успех. Така че сега нека преминем към моя база данни тук и кликнете върху потребителите, и преглеждате и забележите сега има David в моята база данни тук. Сега технически този сайт е все още не е в публичния интернет, така че не може да има друг хора в пускането тук, но ако аз сега исках да, за Например, аз да изпратите текстово съобщение. Нека да отидем в много неизгодно положение тук и да видим дали това наистина работи. Отивам да вървим напред и да изтриете този ред и ние ще се размие тази в клипа по-късно така че ние не разполагат с Целият интернет ме текстови, и сега ще отида до браузър и ние ще преминем към лекция и ние ще напишете в различни номер тук, регистър, успех. 

Така че сега, моят собствен номер е вероятно в базата данни, а сега най-забавната част. Нека всъщност използва PHP да се направи нещо програмно, или от командата линия или от някъде другаде, и за сега съм просто щеше да го прости и аз ще отида в моя указател тук и направете следното. Gedit скрипт да речем, ние ще го наричат ​​текст, #! / потребител / бин / Околна среда PHP, като видяхме за последен път. PHP. 

Сега аз ще се нуждаят от включва config.php, въпреки че това може да предизвика леко грешка. И сега аз ще отида напред и да кажа, редове, заявка, изберете звезда от потребители, и сега тук, аз отивам да правя техника от последния път, за всеки редове като ред. И аз отивам да се направи нещо по-просто. ФОРМАТ да кажем име е това, и номер е този, наклонена черта п. И сега аз отивам да мине в ред цитирам цитата име, и ред цитирам цитата номер, а сега да вървим напред и терминал моя прозорец коригират това е + х да този скрипт, наречен текст изпълним. А сега нека да тече текст. 

ОК, така да прогресира. Така че аз сега съм написал команден ред скрипт, на език, наречен PHP, че поради това изисква линия, има достъп до всички онези конфигурация константи, които съм посочил. Името на базата данни и така нататък. В действителност, само за да бъде ясно, че това не е случайност, позволете ми да отида напред и да се регистрира, много по-бързо, някой друг като Rob и ще му дам номера 555-1212. 

И сега, ако стартирате скрипта отново, забележете мощността на това, което правим с базата данни. Сега съм веднага се вижда какво Другите две редици са в моята база данни. Така че сега, нека се опитаме да направим нещо дори любител вътре, и това е частта, ние сме не е тестван предварително, така че последния път, когато е направил това нещата се ужасно проваля, имаме видео в този смисъл. 

Всъщност, да, смешно настрана. Така че за последен път, в лекция като преди две години, решихме, реших, да бъде всичко това би било добра идея за динамично генериране на имейли в клас, като се използва цялата база данни CS50 студенти, които ни бяха дадени техните номера и техните мобилни телефони превозвачи, които ви да си спомним от pset0, как да се разсъждава, се оказва, Имах малка бъг в моята програма и Направих няколко грешки през 2012 г., мисля. 

, При която един имах за линия, която Направих точно това нещо, итерации върху базата данни, при получаването на името на базата данни, име от базата данни, и след това на всеки повторение на този цикъл Изпратих имейл. Но вместо да изпрати един имейл, аз изпрати един имейл първата итерация, и две писма втора итерация, изпратени три имейли втора итерация, която както можете да си спомните от нашия обсъждане на асимптотичната нотация този голям O лошо, като п квадрат е колко съобщения, които изпратих, но това не беше дори и имейли това е текстови съобщения. 

И както знаете, присъствието не е супер висока към края на семестъра и затова си помислих, че би било най-сладко време, за да каже: "Защо не са ти клас?" В съобщение на текст I изпраща на целия клас, и че е смешно да се харесва на 50% от клас, а останалите 50%, някои от които откачи, аз изпрати невероятно апологетични сладки нотки на персонала се извини за след като пропусна лекцията просто този път, нали? 

Така че би ужасно проваля. Така че в този дух, нека се опитаме това отново, но само с моя номер. В предварително, в functions.php, Аз съм писал тази функция тук. Тя се нарича текст, и го взема в три аргумента. Редица, превозвач, и съобщение. 

Аз съм с изявление превключвател, който чудесно PHP вземе струни, а не само числа, и аз не се прилагат цялата подкрепа, за това все още, Току-що направи AT & T и Verizon. Защото се оказва, че с тези превозвачи те имат имейл на SMS портали, с което всъщност можете да изпратете имейл на адрес като телефонен номер vtext.com и ако потребителят не е блокиран съобщенията, че ще мине през е текстово съобщение. 

Сега, за да направите това, ще трябва да добавите една област много по-бързо да ми база данни. Отивам да отидат в моята структура, и аз съм ще отида напред и да добавите област в края на таблицата. Нека кликнете Go, и аз съм Ще се обадя на този превозвач и сега аз отивам да оставете това като текст бар, но можем да бъдем по-красиви в бъдеще. Отивам да бързо да отидете в масата ми, и аз съм Ще се отървете от Роб, защото това е фалшив номер, Отивам да отидат в редактиране тук и аз съм няма да се промени моят оператор ръчно да Verizon, които е, и сега тук. 

Нека да направим една бърза проверка здрав разум. Нека отворим нашия текст скрипт, който изглежда така, носител е% S. Ние правим много повече грешки проверка от мен през 2012 г., носител. И сега, аз ще отида напред и отново стартирате скрипта. OK. Carrier е Verizon, което означава, Сега се надявам, че може да направи точно това. Правилно тази година, Надяваме се, че тук и да отидем. 

Така че в това за цикъл, аз съм ще има не само това ФОРМАТ, Аз също ще се обадя и текст използването на тази функция изтегляне е тя да вземе номер, носител, и съобщение. Така че нека да видим, брой ще е ред цитат цитата "брой" ред цитирам цитата "превозвач" а последният е съобщение. Не се притеснявам за тази година, точка и запетая. 

OK. Стискаме палци. Да видим дали това работи. Добре, така. Ето ни. Нека да отключите телефона, стискайте палци, дявол да го вземе. Undefined променлива may-- о чакай, чакай, чакай, наистина бързо. Real бързо, много бързо. Това е напълно си заслужава. Нека вземем, нека ме вземете, ъ-ъ-о. Благодаря ви, текстовете имат започва от някой друг. Нека да вървим напред и да се отворят реална бързо, dropbox.php / поща тук. Standby. Напълно си заслужава. Downloads. OK, източник src8m. OK. 

Нуждаете се от още един ред тук. О, там е, че е в Фрош УИ, тя е в регистър на три. О, здравей, Марго, благодаря ви много. ОК, и аз бях липсва тази линия тук. Така че нека бързо вземете този ред на код, която включва поща или библиотека че действително искате да използвате, Отивам да се бързо се върна в функции, Отивам да отидете в началото на тази подава и изисква този файл, както и, и сега аз отивам наистина да пресече ми пръсти, когато се върна на командата Онлайн скрипт, който е вътре в днес локална директория домакин. Стартирай текст. Enter. Mail. Standby. Standby. Mail. О, OK. Ето ни. 

Mail получава нов PHP писмото. Дали да направя това право? Дявол да го вземе. To-- О, чакай, чакай, чакай. Готовност. Обещавам, че това е щеше да бъде, така че си струва. Адрес. Ето защо аз не правят примери непосредствено преди клас. Уф. Следните получателите провалили. Нека се опитаме едно последно нещо. SMTP зададете от добавете адрес, адресът е наистина това. Нека се опитаме тази последна част от адрес. О, аз съм наистина тъжно точно сега. Благодаря. Но аз наистина оценявам всички текстовете сте били изпращане. Имаш ли Давид. Вие сте го духа. Да го оставя там и ние ще предупредим в понеделник. Ще се видим тогава. 

DAVEN Фарнъм: И сега Deep Мисли от Daven Farnham. Ако двоично дърво падне в гората и никой не е наоколо, за да C it-- [разсмя].