SPEAKER 1: Всички, нали Добре дошъл. Това е CS50. И това е началото на седмица девет. И това е началото на останалата част от времето си в CS50, в която ние преход сега, най-накрая, в интернет аспект на курса, където ще откриете, че много от основите, че ние сме били износител в продължение на седмици дойдем отново, за да посетите, или преследва, нас. Но сега, ще откриете, че това е порядък по-лесно да се изпълни определени задачи и решаване на някои проблеми - толкова много, така че дори и да си мислите, определени групи проблемни бяха забавно в тяхната собствен начин, мисля, че ще намерите че р определила 7, стр. 8 зададете, и след това, в крайна сметка, крайният проект ще бъде още по-приятна, защото ще Смятат, че ние започваме да приемаме за даденост Сега нещата като управление на паметта, и указатели, и какво се случва на под предния капак. И отново, тематични, през целия семестър е това наслояване и наслояване. И сега сме някак нагоре тук, стои на раменете на седмица миналото. Сега, припомнят от последния път, че ние говорихме за това как интернет работи. И това е може би опростяване, но не забравяйте, че всеки компютър в света е с IP отговори, въпреки че е малко на опростяване все още. И тези адреси се използват за еднозначно идентифицират машини, така че Когато изпращате информация или пакети, така да се каже, те могат да имат произход адрес и адреса на дестинацията. И същите тези адреси могат да бъдат използвани както за добро, така и за зло, да ви проследят, например. В действителност, всеки един от вас с лаптоп отвори сега, или телефона си джоба, има IP адрес на мрежа на Харвард. И това не е всичко, което трудно да се корелират, че за това кой и къде са тези дни. Но повече за това може би в бъдеще. Сега реших да върна някои спомени от [? подобри?] и ще ви даде още един клип от вас шоу може да откриете запознати. Ако можехме да намаляване на осветлението само за няколко секунди. Шоуто Numb3rs. SPEAKER 2: Това е 32-битова IPP4 адрес. SPEAKER 3: IPP, както и в интернет? SPEAKER 2: частна мрежа. За частна мрежа Амита. Тя е толкова невероятно. SPEAKER 3: Хайде, Чарли. SPEAKER 2: Това е. A адрес огледало IP. Тя ни позволи да гледате това, което тя прави в реално време. SPEAKER 1: Добре, така, че няколко неща наред с тази картина. Така една страна, и това е приемливо, това е действително не е валиден адрес IP. A валиден имейл адрес IP трябва да е номера на формата w.x.y.z, където всеки един от тези писма е от 0 до 255. Но това е добре, защото точно като филми, когато те се фалшиви телефонни номера, те фалшив IP адреси. Вие всъщност не удари реални сървъри. Но имате ли нещо против, това е браузър. И браузъри не започне извеждане компютърен код, подобен на този. И ако погледнем малко по-дълбоко, забележите че езикът, че те виждаме на екрана е наречен език Цел С, който е на езика, iPhone приложения, които са дадени, особено тези, включващи пастели, както можете да видите от изходния код тук. Добре, че това е смешно. Така че този фрагмент от кода няма абсолютно няма нищо общо с каквото и да конкретен епизод става дума. Така че шегата е вид на хора като за тази даденост. Но това не е всичко, което беше трудно да се тези технически подробности правилните. И аз ще ви насърчи. И действително, 50 може много добре развалят много телевизионни предавания и филми, или можете защото вие ще откриете, че това е просто не е възможно това, което те са правене на екрана. Но наистина, това е кода, който може да я видите в iPhone приложение или Mac OS приложение. Той има нищо общо със сигурността. Така че да държи под око за повече такива забавни неща като това. Но днес ние започваме да се потопите в наистина дълбоко към цял набор от езици. Един наистина, един от общите храна за вкъщи тази част на Разбира се не е да се научите как да програмирате в PHP не, за да научите SQL сам по себе си не , за да научите JavaScript сами по себе си, а по-скоро да се научи как да преподават себе си нови езици, защото, наистина, ние започваме да се вземат сега помощни колела на разстояние, така че след края Разбира се, вие не очакват 20 Спецификация страница, за да ви кажа как да се приложат някои програма. Имате достатъчно съставки във вашата ум и достатъчно средства във вашата инструмент комплект, с които да започне изграждането на решения на проблемите, които представляват интерес за по някаква група студенти, за някои изследователски проект, или наистина нещо от интерес за вас. Така че към тази цел, припомни, че това е на снимката го обърна за последен път. И това е два компютъра, клиента и Север, говорим един с друг. И Протокола, на езика, така че да се каже, че тези два компютъра се случи да се говори, се нарича HTTP. И това е само протокол, използван от компютри за предаване на информация по на World Wide Web. В Мрежата, разбира се, е само една услуга , който работи на върха на така наречените интернет. Какво е друга услуга, предоставена на горната част на интернет тези дни? Някой друг протокол или - какво е това? Публика: FTP. SPEAKER 1: FTP. Така протокол за трансфер на файлове е друг. Повечето от вас вероятно не са го използвали. Но повечето от вас вероятно са използвали неща като Gchat, или незабавно съобщения по-общо, сигурност имейл. И тези, които също са услуги, които се движат по горната част на интернет, тъй като в края на деня, самата интернет наистина само получават данни от точка А до точка точка Б. И той използва редица частици себе си, един от тях, или две от тях най-общо наречен TCP / IP, което означава, че един компютър интернет може действително да се прави различни неща, електронна поща, и Мрежата, и така нататък. Google прави много от това. И така, как са тези услуги уникално идентифицирани, казахме, на компютър че всъщност може да се прави няколко неща? Номерът на порта. И това са само произволни човека конвенции, като 80 е интернет, 443 е криптирана уеб, 25 е-мейл. А има и букети от другите. И тези числа са просто включени в тези пакети от информация, тези виртуален пакет, че всъщност съдържа искане или отговор. Така че, когато се върнеш отговор от страна на Мрежата, обикновено, не виждам никаква номера каквато и от гледна точка на Код на статута на отговора. Вие всъщност не виждат вътрешната изработки на пакети, които да се върне. Но 200 наистина означава OK. И това означава, че всичко е добре. Може би сте виждали един куп от тях. Което е може би най-честата което сте виждали в интернет? 404. Това просто означава, файла не е намерен. Това означава, че някой прецаках. Справи се с mistyping на URL, или някой друго е като ви е невалиден URL, или те заличи файл и на URL е все още се използва от хора. Така редица причини могат да обяснят защо даден файл не е намерен. И ще видите, в идните седмици, тези други кодове за грешки, и ще да се възползват от някои от тях. Най-лошото е 500. Ако получите 500 грешка в кода, който съм писмено, мисля за това като вид на аналог на SEG грешки в Светът на уеб програмирането. Това не е чак толкова страшен. Но това просто означава, че някъде, ви прецака. Така че очаквам с нетърпение тези. Но нека да видим дали можем да виж това в контекст. Нека да отидем на браузъра тук и направете следното. Така че това е Chrome, която се случва да да бъдат инсталирани в уреда. Но почти всеки браузър тези дни има някои еквивалентни функции. Аз ще отида на менюто на Chrome, и отидете на Tools, и аз ще отида да Developer Tools. И ще видите, че този малък панел отваря в долната част на прозореца. Друг пряк път, за да бъдем честни, че обикновено използвам себе си е да Кликнете с десния бутон или Control щракнете някъде в интернет страница и просто отидете да инспектира Element. И това не само ще отвори Това има за вас. Тя също така ще се отвори, по-специално, Елементи на част от от лявата страна. Така че ние сме разбира се види Google. Те промениха своята логото си днес. Но ако аз превъртете надолу до тук, забележете че при Elements, ще видите което се нарича HTML, HyperText Markup Език, а това е езикът че това и всички уеб страници, наистина, са дадени инча Но всъщност е форматиран за ни много по-четливо отколкото обикновено е. В действителност, ако намалите, и аз вместо Просто десен клик или контрол клик кликнете върху страницата, а след това отидете на Преглед Page Source, това е буквално това, което Google изпраща до браузъра си. Така че някои лице или лица, пише Google.com използването на този код. Повечето от това не е HTML. Това всъщност е наречен език JavaScript, които ще дойдем до сряда. Но това, Chrome, и това, което всеки браузър може да направи за нас, е един вид виж миналото всички отвличане на вниманието на луд синтаксис, и отново празно пространство за нас, а дори и синтаксис подчертае, или използват цветове за нас неща. Така ще откриете, че тези така наречени инструменти за разработчици, вградени в браузърите ще направят живота ви, така, така че много по-лесно защото можете да се запознаете, чрез това меню интерфейс, точно това, което основната изходния код е за всяка страница в интернет. И наистина, това е една от най- ефективни начини да се научи как да се направи нещо ново, най-малко, ако страницата не е толкова сложна, че да смаже, е да започне дълго обикаляне това е HTML, изглеждат в така наречената CSS, които ще дойдем за малко, както и, за да получите разбиране за това как, че програмист изпълнява някои конкретни функция на страницата. Но по-интересно е технически правото сега тя ще е тази. Ако отида в мрежата на раздела Нека сега да изчистите това. Отивам да кликнете на малката пресичат символ тук, а след това отидете на друг сайт. И аз съм просто ще въведете в Facebook.com. Не HTTP, HTTPS не, не WWW. Нека видим какво се случва в действителност тук. Enter. Сега забележите един куп неща просто се появява в тази долния панел, в допълнение към уеб страница се появява в началото. Отивам да превъртите обратно в Network раздела тук, и аз отивам да кликнете върху първия ред. Какво този инструмент ще ни разкрие е всеки един от искания HTTP че бързо просто се върнах и изминава между браузъра си и Facebook на сървъра. И така всеки един от тези редове представлява едно такова искане или реакция, една или повече от тези, виртуален пакет. Или по-небрежно, това е като човек като човек, клиент в ресторант, пита за нещо отново и отново, и отново. И келнерът запазва привеждане тя отново едно по едно време. Така че сега, ако се увеличи по този, забележете и това ще бъде едно от нещата, че сте добре дошли да се насърчават и да играят с по своему, защото ние няма да мине през всичко в големи подробности. Но забележете, че има няколко под разделите тук - Headers, преглед, реакция, Cookies, и времето. Аз съм просто ще погледнете заглавията за сега, защото те са малко продуктите във вътрешността на плика, че помогне да получите данни към и от местата. Така че, първо, нека да щракнете върху тази, Разгледай Източник до заглавките. Има искане, че навигаторът ми, Chrome, в този случай, изпратени във вътрешността на този виртуален пакет. Вие си спомняте миналата седмица I ръчно написали него, докато който се представя за сваляне. След това припомни на сървър, който е търси нарича хост Facebook.com. И тогава там е малко по-мистериозен информация, която ще помаха нашите ръце за сега. Но ако започна да превъртите надолу, сега в този прозорец, нека да стигнем до отговор заглавията. Това е това, което е във виртуалното плик, който се върна от Facebook.com. И ако щракнете върху Преглед Source просто За да разгледате суров текст от него, забележите няколко неща. One, Facebook също говори същото протокол, версия 1.1 него. Така че това е хубаво. Но статус код 301, преместена за постоянно. Е, къде, по дяволите, е Facebook отидете? Какво е това опитват да предадат на нас? Е, забележите тук има и друг глава призова Location. Така че, защо се Facebook да ми кажеш, че те преместена за постоянно, че URL до местоположение? Забравих WWW. Така че това е моят избор. Всъщност, повечето от нас рядко, може би, въведете www.whatever.com тези дни. Но се оказва, системен администратор, като Facebook, могат да конфигурират сървъри по такъв начин, че или Facebook.com работи, или www.Facebook.com работи, или, наистина, такъв префикс пред тяхната име на домейн. Така че те го направил за нас. И те ни пренасочване, вероятно за техническа, някои маркетингови причини. Те просто искат да канонизира на www.Facebook.com. Но това не е съвсем това. Ако превъртете надолу, тук, да видим какво ще стане. Това ми се казва преместена за постоянно http://www.Facebook.com. Така че нека да погледнем на второто искане че навигаторът ми изпраща. За съжаление, тя изглежда като Facebook е преместен отново, защото второто искане, като изберете, че URL вместо казва, че също премества постоянно. И нека да превъртите надолу тук писмения отговор заглавията. Къде е Facebook вече го няма? Така HTTPS. Така че сега Facebook е започнал, особено в светлината на текущата събития в последните месеци, по-специално и Също така в последните няколко години да задължи всички свои потребители, по-добър начин, да използват HTTPS, който е по- осигуряване, въпреки че не е съвсем сигурно. И сега моята страница, навигаторът ми е ще поискат този трети URL. И сега, най-накрая, ще получите иначе невидима 200 OK. Така че това, което в света или всички тези други редове тук. Аз буквално написали едно нещо, и ми Браузърът изглежда са поискали като 20 някои странни неща. Какво е това? Публика: Scripts? SPEAKER 1: скриптове, така че и другите файлове написан на езика и наречено JavaScript, които, отново, ще виж малко в сряда. Какво друго? Стил листове. Така че нещо в нарича език CSS, които ще видим след малко. Gifs и JPEG файлове и PNGs и изображения, и филмови файлове - независимо уеб страница е най-вероятно в формата на файла. И така това, което виждаме в ляво страна има всички файлове че Chrome е трябвало да изтеглите, рекурсивно, ако щете, за да се композирате цялост на страницата. Така че това, което видяхме преди малко с Google, ако щракнете върху елементите раздела, това, разбира се, е HTML, на език, който композира тази страница. Но има и букети от други неща. Има едно лого. Има тези, синкава икони там. А има и други елементи, все още На страницата, която се може да бъде отделни файлове. Така че това, което е хубаво за един браузър е, че той гледа на езика отиваме да започнете да пишете, или вече сте Започнах да пиша в P набор 7, фигури къде живеят тези файлове, и отива и ги хваща, както добре. И не мога да подчертая достатъчно, дори въпреки че някои от това може да изглежда малко Arcane или преобладаващото на пръв поглед, научите как да програмирате приложения за уеб, това е безценно да се разбере как тези малки инструменти за работа. Това са нещо като GDB като инструменти, но много по-просто, в крайна сметка, да се използва - и наистина дава очи в това, което ние сме били като за даденост, за от доста време. И така, какво можем да направим сега с тази информация? Е, нека наистина да разгледаме концепциите, базиращи HTML. И ние ще отложи, тъй като вече имаме, за да секции тази седмица за проблем определила 7 спецификация, на някои от по- данни за тези езици. Но нека да видим дали не можем да нарисува картина на това, което трябва да разберат, цялостната тук. Така че HTML, Hypertext Markup Language, не е език за програмиране. Какво всъщност означава това? Така HTML изглежда така. И някои от вас вече знаят това. Някои от вас са били прави това за известно време. Но нека да видим дали не можем да попълните в някои заготовки, както добре. Така че забележите няколко неща тук. One, това е просто текст. Така че това е точно като изходния код в C, или някакъв друг език. Забележете, че изглежда има ще бъде модел тук. Има отстъп, но технически вдлъбнатината е просто човешкото конвенция. А браузъри не се интересува дали има нова линии и разделите като виждаме там. Но забележете, че има симетрии тук. Има какво ще се обадя, в горната част на този файл, отворения етикет, или началото маркер, наречен HTML. И след това, по-долу, напълно облицована нагоре, подобно правим с фигурни скоби, виждаме отворена скоба, напред наклонена черта, HTML, близо скоба. Така че това е съответното близо етикет или краен маркер, за това нещо. Заедно, всичко вътрешността на така наречените отворени тагове и затварящия етикет композира това, което ние ще се обадя на един елемент. И ние ще видим, в един момент, това е наистина харесвам една нишка в дърветата. Защото, ако мислите, че за сега вдлъбнатина, която е подразбиращи се тук, вид има, като, баба или дядо, възела, наречен HTML. Колко деца могат да ви кажа, на базата на тази снимка, на HTML елемент има? Така че, може би две. Един от тях е ръководителят елемент, очевидно. И едно е тялото елемент. И защо две деца? Е, аз съм просто вид извод, че ако Имам отворен етикет главата и след това близо главата етикет, това е един елемент. И тогава, ако има и друг отворен тялото етикет и близък етикет тялото, това е все едно друг елемент. Така че, в смисъл, че ако аз вид завъртане на снимката на едната си страна, това е нещо като HTML тагове, а след това главата етикет, а след това етикет тялото, и След това някакъв текст, здравей свят, висящи разстояние от самия орган етикет. Така че може да се направи снимка, която може да изглежда така. Формите са произволни. Но забележете, че аз съм използвал нещо като елипсата на върха да представлява самия документ. Оказва се, може да има и други неща вътрешността на дадена уеб страница, че аз не съм съставен тук. Така че ние ще дори виси на HTML възел на разстояние от така наречения документ възел. И тогава ние имаме глава и тялото и заглавието, надпис, който е вложен повече. Аз не се притеснява пускането допълнителен ред паузи вътре в заглавието маркер. Тя просто се чувствах като ставаше малко прекалено многословен. Така че съм го оставила в един ред там, с отворен заглавие, здравей свят, в близост заглавието. И тогава имаме някакъв текст висящи на разстояние от тук. Така че тази картина ще се върна на нас, когато се потопите в JavaScript. И разбирането, че когато напиши HTML така, какво е браузър правиш? Е, ние не трябва да се притесняваш как се прави това, или с това, което алгоритъм, но в края на деня, когато един браузър получава HTML като че от Facebook или Google, той прави разбор тя, така да се каже, че се чете, с нещо като fread, отгоре отдолу, отляво надясно, и тъй като осъзнава, о, отворен етикет, и след това затворете етикет, тя започва да изчистване, така да се каже, възел в дърво. И когато го срещне, както сме подразбиращи тук с отстъп, а дете възел, то mallocs възел за тази и приложен, че на дървото. Така че дървесни структури, двоични дървета, трикомпонентни дървета, и по-големи дървета, които ние погледна към една или две седмици преди бележка че същият принцип е да се върне при нас. И който се прилага, независимо Chrome Екипът направи това, вероятно има да се приложат някои вид дървовидна структура под предния капак. А това от своя страна е вероятно в език като C или C + +, или по-ниска ниво на езика, че ще предприятието използва на върха на уеб. Така че сега, може би, това ще направи повече смисъл. Край на татуировка от някакъв човек, който може Съжалявам, че в крайна сметка, вид. ОК, добре, така че много уеб хумор. Това не е наистина се случва над, така и днес. Така че ние ще продължим. Добре. Така че нека да разгледаме сега няколко примера. Най-простият възможен нещо, което може да е това. Отивам да се продължи напред и да се отворят в Gedit файл, наречен hello.php. А вътре от тук, аз отивам за бързо просто правя това, ФОРМАТ, цитирам във файловите, "Hello World". Така бележка, и аз ще направя всичко обратно наклонена черта N, Не сте си направили труда да декларират главната. Оказва се, че в PHP, и много езици, не е нужно основен функция по себе си. Можете просто да започнете да пишете вашата програма. Сега, когато запиша този файл, забележите, че съм ще трябва да направите следното. Аз няма да се използва се направи, и аз не съм ще използвате звън, защото PHP, за разлика от C, не е компилиран език. Това е, което се нарича интерпретиран език, което означава, че можете да го стартирате като вход за друга програма нарича преводач. И тази програма се чете, отгоре отдолу, отляво надясно, и не каквото и да му кажете да прави. Така че в този случай тук имам една линия, която казва ФОРМАТ. Така че, когато аз тичам този изходен код, hello.php, че една програма, която се случи, удобно, да се нарича PHP, тази програма PHP ще прочетете този файл, горе до долу, от ляво на дясно, и това ще направя това, което казвате да прави - изпълняващата код, и ако че не признава нещо, просто плюе го. Така че аз ще отида напред и PHP работи на hello.php. Enter. И това не е съвсем това, което възнамерявах. Е, защо е така? Е, PHP е език, който всъщност проектиран да бъде достатъчно преплетени с уеб. Когато се прави уеб страници с този език PHP, както скоро ще видим, ще Искам да направя нещо като печат от подобни на тези редове. Така че аз ще го направя. Open скоба, въпросителен знак, PHP, и сега аз съм просто ще тире само за да поддържат неща Ница. И сега аз ще направя един въпрос марка близо скоба. Така че там е малко на асиметрия тук. Не прави това. И не правиш наклонена черта, така че PHP е малко по-различна. Но сега, ако аз разясняване на тази програма, PHP hello.php, сега всъщност става дума Hello World. И ще видим защо това е ценно. Едно, че ми позволява да се уточни, супер изрично, че това е код, изпълнение на това. И това е наистина това, което те специални тагове предполагат тук. Но това също така означава, че ако аз просто правя нещо подобно се стремя тук, че означава, че, буквално, че просто ще да бъдат отпечатани без да е необходимо да всъщност наричаме ФОРМАТ или печат, или подобна функция. Така че ние ще се върна на това Само след минута. Първо, нека да го направим. Вътрешността на уреда, ние имаме директория, наречена Vhosts, за виртуалния Силите, наклонена черта локалния хост, наклонена черта обществеността. Така че това е малко многословен, но дълга история Накратко, уредът не е предназначена само за подкрепа на C. Това е също проектиран да поддържа PHP. Но тя също е проектиран да бъде в Мрежата сървър и сървър за база данни. И тя е проектирана, и наистина е конфигурирано, да напомня на всеки търговски уеб хостинг компания, която може да плати $ 5 на месец за, $ 100 на месец за. Каквато и да е услуга, дали е конфигуриран да бъде много подобен на недвижими сървъра световното производство. И какво означава това е, че работи на уреда е софтуер, уеб сървър. Това се случва, да се нарича Apache. Това е просто свободен и с отворен код, и много популярни. И ние конфигуриран Apache да знаете че ако посетите определен URL, с Chrome или сваляне вътрешността на уреда, да погледна в тази директория за файловете, че потребителя се иска. С други думи, нека отидете напред и да го направя. Вътре в моя публичен указател, ще да вървим напред и да създадете файл нарича index.html. Това ми дава раздела тук. И аз ще отида много бързо и давай напред и взрив тази програма тук. DOCTYPE HTML, което за сега, просто Предполагам, че трябва да въведете. Това е просто една тайнствена етикет, който не е наистина един етикет HTML, в който се посочва, че тук идва някои HTML. Аз ще отида напред и да пресъздаде това, което видяхме преди малко. Ето главата на страницата. Вътре в главата беше - така заглавието. Затова ще кажа здрасти, света. И след това тук е тялото маркер. Позволете ми да затворите тага тялото. И след това в тук аз ще кажа също, само за яснота, здравей свят. Така че това е, може би, най-простият Възможно уеб страницата, която може да направи това е валидно. Това е синтактично валидна. Всичко, което отвори е затворен. Всичко е добре в оформена и разчленена. Така че нека да видим сега как да получите достъп до този файл. Е, нека да отидете на Chrome тук. И ме пусна да http://localhost/index.html. Така че това, което е локалния хост? Е, най-всеки компютър в света, Linux, Mac OS, Windows, има псевдоним нарича локалния хост. Така че, ако някога искате да говорите към вашия собствен компютър - макар, странно инстинктивно - се наричаш локалния хост. Без значение какво си застроена компютърът е нарича, независимо дали е на Дейвид MacBook Air, или нещо повече многословен така. Така че този URL е очевидно ще използвате на HTTP да говоря с локалния хост, един и същ компютър, уредът, и че ще поиска, просто да се Предполагам, това, което файл? Index.html. Така че уреда е конфигуриран в предварително да се знае, че ако те питам за нещо като index.html, потърсете в папка, наречена Vhosts, в папка, наречена Localhost, в папка в него призова обществеността. Това е, когато всички си публично файлове ще бъдат. Така че аз съм сега ще удари Enter. И по дяволите, там е, че забраненото съобщение, иначе известни като 403, на цифров код за него. И така, какво не е наред тук? Е, това не е достатъчно, за да съм сложил файла вътре в папката ми. Трябва действително да направите следното. Нека отида в моя Vhosts директория, в Localhost, в обществения, и нека ми направиш ли пробив л. И има няколко други неща тук за целите на днешния ден. Но забележете на лявата страна, до към index.html, виждаме само едно RW. И в миналото, което е RW застана за? Просто да четат или пишат. Фактът, че той казва RW в ляво означава, че собственикът на този файл, може чете и пише тя. Но аз трябва да позволи на всички хора в свят прочетете това, макар и не го напиша. Така че аз отивам да промените режима на файл, коригирате, всички плюс R за да се получи всички права за четене на файл с име index.html. И ако сега Повтори ли пробив л, бележка че тук, още R е се промъкват. И за сега, спец. отива по-подробно. За P набор 7, това означава само всеки вече могат да четат този файл. Ако се върна към моя браузър сега и презареди, готово. Здравей свят. И дори мога да си отворя Chrome инструменти и да видим, точно като с Google и Facebook, че там ми е HTML, форматирани малко по различен начин и оцветите. Ако отида до мрежата раздела и се презарежда на страницата, забележите, че там е да поиска Chrome изпраща на уреда. Там е 200 за това определен файл. Така че, накратко, това е начина, всичко това различни части се доставят заедно. Просто така се случи, че на уеб сървъра ние използваме точно сега не е дистанционно, като Facebook. Това е буквално на същия компютър, което е напълно OK. И така, какво повече можем да направим в страницата? Ами, просто, да бриз през Няколко от тези неща. Но нека да вървим напред и отново Gedit с index.html. И нека да вървим напред и да кажа здравей CS50, запишете файла, да се върнете в сваляне, наистина underwhelming промяна. Но какво, ако искаме действително да линк към нещо сега? Така се оказва, че ние можем да имаме връзки в HTML, които са просто етикети себе си. Това се случва, да се нарича котва маркер. един HREF равен https://www.cs50.net, www.cs50.net близо цитат, в близост скоба. А сега нека да видим какво останало идва след това. Отворил съм етикет. Аз сега трябва да му се даде фраза като CS50. Позволете ми да затворите тага. И забележи някои неща. Въпреки че има едно нещо загадъчно тук, аз не съм го многократно, когато затворите тага. Просто затворете тагове с името си сами. И това е, което е известно като атрибут със стойност. Атрибути само промените поведението на някои етикет вътрешността на страницата. Така че това се уточнява, че хипер препращане, луксозен начин на казвайки на URL за тази котва, за тази връзка, трябва да бъде CS50.net. И текста, който искаме да покажем на Потребителят все още не е, че суровото URL, а по-скоро думата CS50. Така че, ако сега се презареди, нека да увеличи за яснота, нека да презаредите страницата, забележите, че имаме тази старото училище синьо подчерта връзката. И ако мишката върху него, и то се случва да бъде трудно да се види, в долния ляв ъгъл ъгъл на екрана, забележете че той казва, че URL към която Аз ще отида. И ако щракнете там, готово, сега аз съм на уеб страници. И ние се доведе към началната страница. Забележете какво потенциал Това ни предлага. Сигурността е много на мода тези дни. Ами ако вместо да каже нещо като това, а аз вместо да отида, да речем, да виж, fakeCS50.net. Зареди тази страница. OK, за да забележите, че все още изглежда сякаш съм ще CS50, освен ако проницателен око Ще забележите, че ще фалшив CS50. Аз съм се познае този домейн не е взето. ОК, така че не е на разположение. Така че, това е добре. Всъщност никой не е този домейн. Но нека да бъдем малко по-злонамерен защото това е много глупаво. Ами ако го смените с Paypal. И какво, ако ние наричаме това, като, www.paypal.badguy.com, каквото и да е домейн. Това вероятно съществува. Така, да се презарежда страницата. И тук имаме нещо като фишинг атака, Р-Н-I-S-H-I-N-G, който е глупава дума дадени за атака, че се опитва да риба информация, или, по-добре Все още, пари, от хора от хитруваш ги в предоставяне на информация, които те иначе може да не правя. Това изглежда напълно легитимни, нали? Трябва да има линк тук, за да Paypal.com. В интерес на истината, ако я сексапилен с някои графики, можем да го правят да изглежда по-скоро като PayPal. Така ли е? Защото можех, като отмени, Мога да отида да Paypal.com. И ние току-що видяхме как може да се виж цялата си HTML. Мога просто да го копирате и пресъздаде естетиката на Paypal, а не отиват старото училище тук. Но забележете, разбира се, и това е малко малка още, само в долната левия ъгъл, като в точка 10 шрифта, виждаш ли какво URL сте всъщност ще се доведе до. И така, ако някога сте придобили спам казвайки давай напред, а ти си акаунт е нарушена. Моля, кликнете на тази връзка и да споделите с нас парола за да можем да се гарантира, че сте ви, никога не прави това. Тези неща трябва да се разбира. Но това е чудесно забавен, и трагична, как всяка година това изглежда се случи с някои не-нула Броят на хората. И това е красотата от фишинг атаки. Можете да изпрати един милион имейли. А дори и 0,01% от хората, които всъщност кликнете върху Paypal и ти дам парола, това е все още различна от нула номер на хора, които току-що, даващи ти парите си. И изпращане на имейли, разбира се, е доста лесно и по същество безплатно тези дни. Така че, дълга история кратко, чудесно красива идея, нали? Преди години, това е най-ранната интернет, което позволява на мрежа от хипервръзки, като ресурс. Но толкова бързо би могло да бъде използвани за болни цели. И електронна поща, достатъчно е да се каже, те дни, са вградени в HTML. Е, нека само още едно нещо. И ние ще отложи до голяма степен на раздел в Проблемът определени седем за да ви позволи да проучи данните. Но нека да вървим напред и направите няколко неща тук. Аз ще ида и обяви , което се нарича дивизия, или деление на страницата. Позволете ми да завърша, че таг DIV. И аз ще кажа на тук горе на страницата. И тогава по-долу това, аз ще направя нещо като друга дивизия, затворете етикет, и направи дъното на страницата. И нека си го спести. Така че сега нека се върнем към моя файл. Много underwhelming. Но това, което се използва за разделяне, под предния капак, е всъщност приятно структурен елемент. Тя не разполага с естетика, доколкото можем да видим, освен, както изглежда, удар неща на нови линии. Но забележете, Като настрана, просто се разхождаш Въведете не го нарежете на HTML като го е в C. Може би си мислите, че това е ще сложи хубава голяма разлика между горната и долната част на страницата. Но това е игнориран. White пространство е по същество пренебрегва уеб страници, различни от самото начало характер бар пространство, или връщане, че ви удари на клавиатурата. Ако искате повече редове, вие Трябва да си сам да определи. Така че аз ще направя няколко неща, тук, за да покаже какво става. Отивам да добавите атрибут, че съществува и отново, начина, по който учат какво атрибути, какво тагове съществуват, наистина, е онлайн справки. HTML е вид език - това е не е език за програмиране. Това е език за маркиране - че след добър половин час, може би, един час с това, със сигурност ще разбере, най- вероятно, основната идея. И тогава за търсене Google далеч е всичко възможните тагове, които може да прегледали И на спецификацията, която е доста Приветствам и насърчавани тук. Така че сега нека да вървим напред и направил нещо подобно. Фон-цвят. И сега, аз ще направя нещо като червено, точка и запетая. И вие можете да направите това в по няколко различни начина. Аз съм просто един вид го пишете като супер изрично е възможно. Но се оказва, че тази стойност е тук което се нарича CSS, Cascading Style Листове, което е още един език като цяло. CSS няма нищо общо с отворите тагове и близки тагове. Той е свързан с имоти. И свойства са просто ключова стойност двойки, които просто означава няколко думи, дебелото черво, и след това някои други думи. И ако имате няколко такива, или само един тук, можете да го завърши с точка и запетая, само за яснота. Но това също ще работи тук. Сега какво е това смяташ да правиш? Можете да се досещате. Нека да вървим напред и заредете страницата отново. И сега тя наистина идва заедно. Така горната част на страницата ми е червен. Но това, което е ключът тук е, че споменах по-рано, че Div дава подразделение на страницата. И това е наистина това, което прави. По същество той разделя на страницата в правоъгълник, който след това може да манипулира. И тази идея на правоъгълника е вид убедителни в това, ако мислите, че на Най-всеки сайт, вероятно има някаква структура към него. Повечето от вас вероятно са рядко срещани Начална страница на Facebook, ако сте влезли в цялото време. Но на началната страница на Facebook, има някаква Div в горната. И това може да не е толкова просто като една дивизия, но има правоъгълна област има. В останалата част от страницата е като огромен Div, като много голяма правоъгълна област. Така че, дълга история кратко, просто като тези малки блокове сградата, способността за модела неща като правоъгълници, дали широки или тесни, можете също да да колони потенциално, ви позволява да изложи страници, наистина, но можете би искал. В действителност ние просто чесане повърхността тук. Всъщност, ако го направя още един милион, позволете ми да отида напред и да направим стил, фон-цвят, ще направим нещо като синьо, близки кавички. Нека да презаредите тази. Така че сега, че става още по-грозна. Но сега мога да вид покаже ми P зададете пет умения, нали? Red. Това ми напомня за RGB, Red Зелен Син утроява. Е, оказва се, в уеб програмиране, или уеб дизайн, който е това, ние имаме все още не е програмиран нищо сам по себе си, всъщност можете да имат шестнадесетичен код. Така че нещо, нещо, нещо нещо, нещо нещо. Така че можете да имате шест шестнадесетичен символи, или три, в някои случаи, и всяка от тези въпросителни знаци Трябва да има шестнадесетични цифри, нула чрез F. Ако искам да имам много червени, и не зелено, а не синьо, какво е обратното на нула, когато се използва шестнадесетичен? Това е. Така че мога да направя FF, нула нула нула нула, запишете това, а сега идвам тук. И аз всъщност не виждам промяна. Така че, цитирам цитата "червените" е очевидно синоним за всички червено, не зелени, не синьо. В същото време, нека съзнателно променя това да бъде нещо случаен принцип, като ABCDF. Нека да видим какво е това. Това е много хубаво синьо, всъщност, бебешко синьо. Добре, така че това са само сега донякъде произволни комбинации от героите. Така че ние няма да получите затънал в тук. Но отново, това говори за точност че можете да започнете да прилага - дори ако сте много претоварени от естетиката. Всъщност, ако наистина искате да бъде впечатлен, позволете ми да отида напред и да се промени размера на шрифта, например. И забележи точка и запетая, които Необходимо е там. Размер на шрифта, можем да бъдем просто нелепо тук, 96 точка. Запази това. Уау, това е голям размер на шрифта. Добре, така че е много лесно. И всъщност, вие сте по същество виждат първата уеб страница, направих преди години, когато за първи път научих тези неща. Това е много лесно да се направи много отвратителни неща бързо. И ако сте запознати с Wayback Машина за archive.org, можете да намеря всички мой отвратителен студент уеб страници. Човек трябваше Жабока Кърмит на предната част. Минах през фаза, когато си мислех че е готино да се вземат на фона на червена завеса, когато научих как могат плочки снимки отново, и отново, и отново, за да запълни една страница с голяма лепкава червена завеса. И тогава, на върха на тази, е икона че трябва да кликнете за да влиза моя дом страница, защото това е много на мода. И тогава първата ми програма, която някога съм писал не е в PHP, но на език наречен Pearl, написал книга за гости, които е нещо чудесно, че Много хора очаквате да има на началната страница. Когато стигнете до страницата, те искате За да влезете, и да кажа, кой си ти, и защо сте там. Това е много 1990-те години стил в дизайна на уеб. Но в наши дни, разбира се, ние сме дойде много по-далеч. И ще видите, в точка, а дори и в проблема определени седем, от деблокирането библиотеки тези дни, това е много по-лесно да се направи хубави неща бързо. Наистина тук, ние просто чесане повърхността на това, което можете да направите, стилистично. И всъщност, вече, позволете ми да подчертая, че това вече е все грозни, не само естетически, но и от гледна точка на стила на моя код, или дизайн на моя код. Аз в момента comingled HTML, които е най-зеленикави отворени тагове там, с CSS свойства, които е напълно легален. Това е наистина, когато езикът имаше своя произход. Но в интерес на изчистен дизайн, много прилича започнахме факторинг неща вън от файлове в C. файлове ч, нека ми всъщност практикуват този вид принцип и започнете да правите вместо това. Нека сложи етикет стил тук, които съществува и в HTML, и ме пусна зададени следното. Позволете ми да изтриете това. Цвят на фона ще бъде червено. Отивам да изтриете това изцяло. Отивам да се отървете от стила приписват, и аз отивам да може еднозначно да идентифицира тази дивизия с една дума - произволно, но разумно, цитат край на цитата "отгоре". И ID е специален атрибут, който еднозначно определя определен HTML елемент като имащи че ID. Ако аз сега искам да го стилизирана, тук, в главата на моята страница, вътрешността на тагове стил, забележите, че Мога да го направя хеш върха. И след това мога да сложа няколко къдрава скоби, напомнящ на C и след това оставете ме поставите в тази стилизация. И нека да вървим напред тук и да предвидят къде отивам с това. Позволете ми също така да създадете един за долната дивизия. Нека вземат този отвратителен кода от определени тук, слага се в тук, и аз ще се малко повече анален сега и стилизирана го само с пускането нещата сами линия, завършваща с точка и запетая. Позволете ми да се отървете от стил тагове. Но аз не съм свършил още. Трябва да направя още нещо. Да, ID равнява цитат кавички, "дъното" или каквото ID Искам да даде този елемент. А сега нека да се върнем тук. И това е брутално. Не мога да се справят с 96 точка. Да го направим 24 точка. Или пък може да бъдем по-точни. Всъщност можете да използвате пиксела, пиксела, така че че наистина се даде жито фина контрол върху вашия сайт. Като настрана, това не е задължително най-доброто нещо, ако потребителите, за достъпност причини, искам да да бъде в състояние да увеличи размера. Така че осъзнават, че има начини за правене на неща, които не е задължително да твърд код всичко. Добре, така че е по-голям, 24 точка, от каквото и да е по подразбиране. Но сега това е малко по-чиста. И нека да се възползвам от една стъпка напред. Точно като идеята за заглавието файлове, забележите, че сме една крачка по-близо до това. Имам фактор, но все още са останали, вътрешността на страницата ми, тези CSS правила. Защо да искам да се възползвам от една стъпка Освен това, премахнете този напълно, и Сложете го в отделен файл? Така че мога да го повторно, нали? Това е просто вид на интуицията точно сега. Преди се твърдеше, че това е просто Първи грозна като стил характеристики вътрешността на ДСИ себе си. Но просто вид мисля, че сам. Както вашата страница получава по-дълго и по-дълго, ако сте пускането тук, и тук, и тук, и тук, всички тези различни цветове и размери на шрифта, и други подобни атрибути, вашата страница е много бързо ще станат неуправляеми за вас. Ако някой дойде при вас и казва: О, знаеш ли какво? Наистина искам да се промени размера на шрифта от две допълнителни точки, можете Може би трябва да отида и търсене и заместване огромен брой редове код. Това е много по-убедителен за централизиране всички тези естетика тук. Но ако искате да се използва повече тези, естетика в множество уеб страници, всички толкова по-убедителна да, за Например, да създадете файл нарича с това съдържание. И нека да направим това. Запишете този файл. Казвам styles.css, произволно, но конвенционален. Ще го сложа в дома Джон Харвард директория сега за простота. И това, което мога да направя в моята уеб страница, е да отърве от стил тагове напълно, и донякъде unintuitively, използвайте връзката етикет, който не ви дава линк в хипервръзката, кликва смисъл, но когато казвам връзка, HREF равен styles.css. А връзката, че този елемент е с уеб страница е да служи като си стил лист. И така, как да разбера това? One, можете просто да прочетете ръководството, или Google наоколо, и вие Посетете различните ресурси. Искам да кажа, че наистина е как те взема техники като този, и в съответствие с тази идея за преподаване себе си ново езици, отново, ще откриете, че има само краен брой неща на всеки език, който, след като се тях, вие ще откриете, че става по-бързо и по-бързо да пиша. Всъщност изучаването на нов програмен език е много по-бързо от нов говоримия език, защото тези неща са много по-малък и много по- точно определени. Но аз съм подчертано малко на аномалия тук. Защо аз изложи този наклонена черта тук? Защото трябва да затворите тага. Аз трябва да се затвори етикет. И вие ще откриете безброй ресурси онлайн, че не задължително в близост тагове. И реално, това не е строго необходима по технически и има причини, свързани с реалността, браузъри са само доста толерантни към грешки в уеб страници, за добро или за лошо, но най-вече по-лошо. Така че това тук е просто една по-чиста начин на казвайки нещо глупаво като това, където, ако искате да отворите маркер връзка но я затвори, че наистина няма понятие на съдържание за връзка етикет. Това просто означава, зареди това файл и да го сложи тук. Това е като остър включи в C. Можете да отваряне и затваряне на етикет наведнъж в рамките на същия етикет. А има и други примери за това. Това не е начин да се направи това, но на ДВУСТАЕН етикет, за редове, ако мога Наистина исках да се постигне това, което беше се опитва да преди, като натиснете Enter, ако Аз категорично да заявява нов ред, нов ред, нов ред, нов ред, и след това заредете отново тази страница, сега ще забележите че долната част на страницата е, наистина, много по-надолу в долната част на страницата. Но дори и това може да се направи много повече чисто с CSS, и с маржове, и други подобни естетически техники. Така че за сега, на храна за вкъщи са това. В HTML, ние имаме тези неща наречени тагове. В CSS, ние имаме тези неща наречена свойства. Ние можем да comingle тези два езика, или чрез използване на стил атрибут, или етикет стил, или най-добре още, факторинг тя съвсем да спре, както правим в проблем определила 7. Въпроси, тогава, за концептуалните основи тук? Публика: Аз имам един въпрос. SPEAKER 1: О, съжалявам. Публика: Защо не беше оцветен - SPEAKER 1: О, в другия раздел? Това тук? Публика: Не, това е като - SPEAKER 1: О, това е така, защото I беше помия. Сложих файла на грешното място. Така че, ако аз всъщност го сложи тук, и аз коригирате това, всички + R за styles.css, и сега се презарежда страницата, сега ние получите стилизация обратно. И тъй като шрифтовете са различни, ние не виждаме толкова много празно пространство. Ние вместо да види какво е подразбиране е вместо това. Добър въпрос. Да? Публика: Защо е връзката етикет вътре в заглавието? SPEAKER 1: Защо връзките етикет от вътрешната страна на заглавието - Краткият отговор, просто защото. Това е, което беше решено. Това е, когато връзката тагове отида, когато Имате ли какво е наречена външен стилов лист. Други въпроси? Добре, добре да го направим. Ние имаме толкова много забавно пред нас днес. Това е просто чесане повърхността на CSS. Да го направим. Нека погледнем по пет минути почивка тук защото, на моя имейл, да се мотае в там до 02:30-Иш днес. Но ако го направите, трябва да напусне, това е добре. Но ние ще продължим напред след на пет минути почивка. И ние ще научите нещо малко за PHP, MySQL и др. Добре, нека се опитаме, сега, да вържеш Някои от тези идеи заедно и да направите, да речем, нашата собствена търсачка. Забелязах, скоро любопитство, следното. Когато сте в Google.com, ти си обикновено на URL като този тук с нищо след дот ком. Но ако търсите нещо глупаво като котки и да се натисне Enter, ние ще стигнем - не глупаво, но нали знаете. OK, за да забележите, в горната част на страницата, Сега, URL е, разбира се, се промени. И това не е всичко, нова на всеки от нас. Можете кликнете връзки и неща се случва в интернет. Но това, което е интересно тук е следното. Има един куп елементарно, но нека ме изхвърлите неща, които аз не разбирам или не наистина изглеждат уместни. Позволете ми да се отърва от това. Позволете ми да се отърва от това. И нека просто да се отървем от всичко това. И сега забелязвам, че котките е в URL, последвана от Q, след равен подпише пред нея. Така се оказва, че това е начина, по който начина му на работа, когато става въпрос за вход и изход. Ние дълго говорихме за черни кутии, нали? Така че, ако това е изпълнява функцията тук като черна кутия, тя отнема вход и произвежда продукция, както и средствата, , чрез които можете да допринася за една Сайтът е с другото, често, на неговото URL адреси. Можете просто да сложи въпросителен знак и след това се равнява на ключовата стойност. И тогава може би амперсанд, а след това Друг ключов равнява стойност, тогава може би друга амперсанд, ключова равнява стойност. Ето как се преминава в клавишите и ценности, чифта входове. Така че, ако аз хит Въведете сега, това, което е интересно за Google е, че всички че елементарно Изтрих не се появи да е непременно необходимо. Всичко, което трябва да се изпрати на Google е въпрос марка Q равнява котки, за да получите резервно някои котки. Е, влиянието на това, тогава, е, ако аз спра Gedit, аз започнах направи си собствена търсачка тук във файл, наречен seach0.html. И нека да вървим напред и да изтриете още една линия, която бяха не трябваше да се види. А сега, нека да отидат в собствения си браузър, така че да не се Google, и отидете на http://localhost. И това ще стане по пътя. Така че ние ще трябва да се сбогува с че за сега, преместете този тук, О, сега ще трябва да кажете сбогом на този файл. Винаги, когато имате файл, наречен index.html или index.php в директория, ако уеб сървър е конфигуриран по този начин, това, което ще виж, по подразбиране, е съдържанието на тази файл, а не списък на директория, колкото ми се искаше тук. Повече за това в спекулация. Не видя ли, че. Така че това е, което всъщност исках. Но преди малко, е имало файл в тази папка, наречена index.html и index.php. И така, на уеб сървъра е ми показва тези файлове. Вместо това, аз искам тази директория листинг тук. Така че аз ще отида в CSS и да преминете към search0. И аз твърдя, че това е тя ще бъде началото на собствения си конкурентен търсачката. И за да направите това, аз ще отида в тук, в CSS, и да се отворят с Gedit, търсене 0. Но за съжаление, има не много става тук. Всичко, което направих, беше използването на позиция тагове, които се случва да се нарича h1, които по същество означава голям и смели, и това е всичко. Но средствата, чрез които може да предоставяне на съдействие са посредством тези неща наречени форми. Така че нека да вървим напред и се отваря и затваря, изпреварващо, форма маркер там. И нека да вървим напред и да направим нещо като това. Input, тип равнява текст. И тогава нека да затворите тага в самите скоби. Не ми трябва да започне текстово поле и да се спре текстово поле. Той просто ще бъде там или не. И тогава под това, да го направим Вид на входа се равнява изпратете. Запази това. А сега нека да направим Бързо здрав разум проверите. Нека да се презареди. ОК, така че не е зле. Това не е стил на Google, но това е доста близо. Има текстовото поле. Мога да въведете някои неща в, натиснете Enter, но нищо не се случва, все още. И това е, защото не сте посочили иск за тази форма, така да се каже. Така че, ако се върнем към формата елемент, Оказва се, че и аз знам това, само от като прочетете документацията, която формата етикет отнема атрибут нарича действие, което е URL на сайта, към който искате да изпратите формуляра. Аз наистина не мисля, че имаме време да изпълнение на целия заден край за търсите днес двигателя. Така че ние просто ще кажа, нали, отидете на google.com / търсене. А сега нека да затворя кавичките. И нека да се уточни, че по-нататък метода да се използва ще да се нарича точка. Накратко, има два начина, по малко, че можете да подадете информация от браузъра, за да сървър. Един от тях е да, и, за целите на днешните, това означава само в URL. Вие виждате точно въпросителни знаци, на знака за равенство и амперсанди че видяхме по-рано. Или има алтернатива нарича пост. За сега знаем, че след често се използва когато искате да качвате файлове, като снимки и т.н., или когато искате да представя информация за кредитната карта, или пароли, нищо, че това не е така наистина има смисъл, концептуално, или сигурността мъдър, за да свърши в URL на браузъра, когато е подслушване родителите, или съквартиранти, или всеки, който има достъп на вашия компютър може да види. Така че нека да спаси това тук. И аз трябва да направя нещо друго. Не е достатъчно само да казват ми даде текстовото поле. Аз трябва да дам, че областта на ценим име. Така че нека да заеме място на Google на имена, Q, и уточнява, че втората приписват Не ми пука за името на бутона Submit. Всичко, което се грижи за подаване това, което потребителят видове инча И сега това е нещо грозно. Тя просто казва, изпратете. Оказва се, че и аз знам това от документация, всъщност мога да кажа, стойност е равна цитат край на цитата "CS50 търсене, за "тясно цитат. Тогава да се презареди отново. Така че аз държа удря Command-R, или Control-R на моя клавиатурата, за да презареди. Сега имаме по-интересно търсачката. Тя не изглежда като доста На Google все още, все пак. Така че нека да вървим напред в тук и Не малко нов ред. ОК, така че сега имаме Google. Ние всъщност почти е нужно Google. И сега какво ще се случи? Отивам да напишете нещо като котки. И на браузъра ще се прави разбор тази форма на моето определение. И това става, за да изпратите ръководство на този URL. Така че този път, за някои любопитни причина, Имам повече информация за запасите от около действителните котки. Но това е добре, защото ние забележите още стигна до тук, е равно котки. Така че, дълга история накратко, изглежда доста тривиално, за да получите информация от страна на потребителя. И за да бъдем честни, има букети на други видове полетата на формуляра. Има квадратчетата, и малко по взаимно специалните бутони радио и падащи менюта, и др. Но всички тези са сравнително лесно изпълнени като този текст е полето. И в крайна сметка, ние просто трябва да се направи сигурен, че някой не слуша, от друга края на линията, за да се получи, че информация, обработвана, по някакъв начин, и ни дават обратно нашите котки. Нека да разгледаме малко по-голямо участие пример. Пусни ме в указателя ми Vhost е, в локалния хост, обществени, и където съм сложи изходния код на днешния ден. Всичко това ще бъде на курса сайт за вас да калайджия с. И като отида в froshims, позволете ми да се отвори до този файл сега, froshim0.php. Това е малко по-многословен, така ние няма да напиша това от нулата. Но точно сега забележите няколко донякъде познати характеристики. One, формата етикет, различно действие. Това не е пълен URL. Сега, това е очевидно за файл с име register0.php, тъй като в момента, Отивам да се науча малко нещо за PHP, програмиране език, защото PHP може да се използва прилагат това, което Google прилага като задния край на техните търсачките. Google, в действителност, вероятно използва някои Python, някои C + +, и букети от други езици. Но ние със сигурност може да прилага търсене резултати при използване на PHP, ако искахме. Но за сега, ние ще продължаваме да го прости. И това е действително напомня на една на други първите сайтове I направени преди години. Обратно в моя ден, регистрирани за интрамурални спортове като първокурсник по попълване на лист хартия, разходки през двора, и го пуснете в пощенската кутия на Proctor в Уигълзуърт, и това е начина, по който регистриран. И така моя проект малко след CS50, е да се сложи това, което го прави перфектен смисъл върху Мрежата, която не е била като на мода тогава, както е сега. Но всичко, което трябваше да направя, беше да се създаде, по същество, с HTML форма. И тази форма погледна приблизително така. Имах един вход за първокурсник име. Имах друга отметка в квадратчето за това дали или или не са искали да бъде капитан, какво пола им е бил, и какво им общежитието беше. И тогава трудно кодирани в нещата като Apley съд, и Канадей, Сивите, и така нататък. Така че, отново нови етикети. Не съм виждал тези преди, нова характеристики, но доста достъпни. След като видим един пример, можете да вид на заемат тази идея и да направи една капка меню за почти всичко. Но това, което е важното е, че всеки от тези неща си имат имена. И в края на тази форма, има на бутона Подаване, чиито етикет, или стойност, е да се регистрирате. Така че нека да отидете на тази страница. Нека се върнем в директории. Нека да отидат в froshims, и отидете на froshim0.php. Така че това е отвратително, за да бъдем честни. Така че определено мога да стилизирам това с някои CSS, бих могъл да направя някои графика, може би добавите някои цветове, и ще я направи по-красива. Но функционално, ще твърдят, че това всъщност е доста пълна. За съжаление, когато за попълването на формуляра, David, капитан, мъж, ще изберете, да речем Matthews, регистър, всичко, което се случва, е това. Но забележете няколко храна за вкъщи. One, това, което файл върнат тези, резултати, очевидно? Така е, наистина, register0.php. Така че това, че видяхме, че действията стойност преди малко за register0, това потвърждава, че ние наистина приключи На този конкретен файл. Сега това е само грозен текст. Но забележете, че този текст е идващ от локалния хост, което е от уреда. Помислете за уреда сега като просто уеб сървър, който може да бъде в Science Center. Тя може да бъде на действителната мрежата. Така че това е обществено достъпна. Затова е ясно, има някакъв начин да се премине образуват полеви входове към сървър така че да може да се направи нещо с тях. За съжаление, register0 е доста глупаво. Всичко, което прави е разпечатате масив , който изглежда така. И това не е за масив в смисъл, че ние го знаем. Оказва се, че PHP, и много езици, имат не само числено индексирани масиви, чиито първи индекс е нула, един, след това две, след точка, точка, точка, п минус 1. Това е това, което се нарича асоциативен масив. An асоциативен масив е такъв, в който можете да съхранявате двойки ключови стойности, където ключът не е непременно номер. Тя може в действителност да е низ, и дума. И така, това може да се прилага, под предния капак, се оказва, използване на данни структура, известна като? Мислех, че нещо драматично щеше да се случи - хеш-таблица. Така че една хеш-таблица, изземване, тези от вас, кой го е направил за набор P 6 или дори припомни, това, най-малко, дори и да направи опит, а хеш таблица, в нашата употреба, се използва за само съхранява думи. Но наистина, вие сте били съхранение ключове и стойности. Ако реализира хеш таблица за P настроите 6 речник, клавишите са самите думи, и стойностите на практика бяха истина или лъжа. Да, тук, или косвено, Не, не е тук. Е, можем да обобщим, че идеята. И можем да използваме много подобни данни структура, която да се съхранява не на низ се сам в хеш таблицата, но Предполагам, че във всеки един от вашите хеш маса на възли. И вие дори може да направи това в опит а не просто да има булев. Вие може да има нещо друго. Ами ако ключът не е Максуел, за Например, но цитирам цитата "име", или цитирам цитата "капитан". А вътре на си C структурата на данните, сложите стойност, а не само булеви, но на стойност като цитат край на цитата "Давид", или "М" или "Matthews," и така нататък. Така че същите тези структури от данни, които използвахме очевидно съществуват и в други езици. И бих твърдят, те са всъщност много, много по-лесно за достъп до тук. Нека всъщност да разгледаме сега в някои такива синтаксис. Аз ще отида в директорията PHP. И аз ще се отвори по-добра версия на здравей-0 от преди. Забележете, че всичко, което направих, беше добави някои коментари. Така че можем да се отървем от това отвличане на вниманието. И тази програма наистина отпечатва Здравейте, защото съм уточни между тагове, които искам да се изпълни този код. Сега, ние ще видим след малко защо това е полезно. Но да отворим още един пример тук. Нека да вървим напред и да се отворят кажа, Gedit условия един. Това е начин назад във времето сега. Но преди седмици, мисля, че в една седмица или седмица две, имахме нарича например conditions1.c. И реших да го reimplement в PHP, просто някак да се подчертае, че PHP, синтактично, е почти идентичен да C. Това не е огромен скок от миналата седмица за това. Забележете, в горната част на тази програма, която започва, както и преди, с някои Коментарите, които ще се отървете на като отвличане на вниманието. Забележете, че аз съм в PHP режим в този файл. Така че този код, ще видим, ще се изпълни. Забележете, че има Readline, които е вероятно аналогов в PHP на getstring. Забележете, това е малко по-различна. Вие всъщност посочите ред на функция, наречена прочетете ред, и това е това, което потребителят вижда. Така че не е нужно да ФОРМАТ ръчно. Но това не е голяма работа. Отивам да съхранявате, вътрешността на $ М, на върне стойността на това, така че независимо от потребителят е в тяхната вътр. Ето и още един любопитство. Оказва се, че в PHP, всяка променлива просто трябва да се предшества със знака за долар. Това е малко досадно. Забележете какво не съм направил в PHP. Какво липсва на лявата ръка страна на знак за равенство? Не се споменава от тип. Това е различно от C. За по-добро или за лошо, PHP е свободно типов език. Тя има номера. Тя има струни. Тя има Булев. И тя има няколко други типове данни. Но вие, програмист, обикновено не трябва да се грижи за тях. В главата за това е, че го прави малко по-лесно да програма. Можете да мислите малко по-малко. Недостатъкът е, но и ви се отваря до потенциални бъгове ако случайно лечение на редица като низ, низ като число, потенциално, но дори След това, PHP, и много езици, са доста толерантни. Те ще използват това, което се нарича имплицитно леене. И ако се опитате да използвате п в контекста на числов ситуация, то ще конвертирате което тук ще бъде низ, защото, ако потребителят нещо, и ще получите резултат, като с Readline, или да получите низ, че ще се върне низ. Но забележете, няколко реда по-късно, проверете дали п е по-голямо от нула. Така че PHP ще имплицитно хвърля "Низ" 123, или каквото и ръководство видове в, във Int. Така че, накратко, нещата просто работи много по-интуитивно. Така че ние сега започват да се отпуснете няколко от неща, които сме правили в миналото. Много от тези неща е същото, все пак. Все още имат равен равни. Като настрана PHP също е равен равен равен, но повече за това, може би, в бъдеще. Това беше. Типо но два знака за равенство означава същото нещо, както и преди, за сравнение. ФОРМАТ означава едно и също нещо, както преди. Обратно наклонена черта п означава същото нещо, както преди. Е, как да стартирате тази програма? Е, както и преди, ако го направя, PHP, conditions1.php, и въведете редица като 123. Това е положително число. Ако въведете 0, I вземете 0. И ако напишете в отрицателна 123, получавам резервно отрицателно число, което е само да се каже, синтактично, PHP е супер, супер сходни. Така че, защо е това сега полезно в уеб контекст? Е, нека се върнем към този froshims Например, който изглеждаше, отново, като този тук. И нека действително издърпайте уеб страница отново, което изглеждаше така. Какво можем да направим с данни, които представени? Е, нека се отворят по-нова версия на тази. И ще видите, че проблемът комплекти спецификация ви води чрез няколко от тях. Вместо да започнем с нула, нека да разгледаме froshims3, което прави малко повече. Забележете, първо, действително, да отворим това, което е 0, така че виждате какво е регистър 0. Забележете какво регистър 0 направих. Едно, имам коментари на върха. Изтриване на тези и се съсредоточи само върху това. Повечето от съдържанието на register0.php са, очевидно, на какъв език? Просто сурово PHP. Така предизвестие, този файл не започне с, в момента, отворена скоба, въпросителен знак, PHP. PHP ви позволява да общувам PHP код с HTML тагове. Но аз съм направил, че тук вътре на страницата тук. Сега, отново, ще знаят само това от като погледна към ръководството. print_r, Оказва се, че е print_recursive. _recursive И това е само удобен функцията на полезността, че просто отпечатва, рекурсивно, каквото и да го предаде. Ако го предаде масив, това ще отпечатате масив. Ако го предаде на номер, това ще отпечатате номер. Страна, низ, ще отпечатване на низ. Ако го предаде на хеш таблицата, тя ще отпечатате хеш таблица. Не е нужно да напишете всички на себе си, че код. Сега забелязвам, че Влизам PHP режим тук. Аз излизане PHP режим тук. Така че, когато уеб сървър чете този файл горе до долу, от ляво на дясно, защото тя завършва с име на т.нар. PHP, всичко, което не е вътре в тагове PHP е Просто ще се плюе навън, като суров HTML. Не е голяма работа. Но веднага след като уеб сървъра забелязва това, той ще каже, че не трябва изплюе, буквално, print_r на мнение. Трябваше изпълнете следната ред код. Така че на последния въпрос, а след това, на този файл е, добре, какво по дяволите е това? Вземете предположение. Какво е $ _POST, може би? Публиката: [недоловим] SPEAKER 1: Да, публикуваните данни. Спомнете си, нека да превъртите обратно в време само за миг. froshim0, отново, изглеждаше така. А супер-голямата част от това е само HTML. Отново, някои тагове не сте виждал още, или с които вече сте запознати. Но интересното беше това. Тази линия е това, което наистина свързва то в нашия register0.php файл. Аз съм подаване чрез метод мнение. Това означава, че параметрите потребителят пише в не са ще свърши къде. Те няма да показва в URL. Те все още ще бъде изпратено от клиента, от сваляне, за сървър, но чрез някои други механизъм, който ще се откаже нашите ръце в за днес, но не е в URL. Но забележете връзката сега с мнение, което, по силата на споразумение, е малки букви тук. Но ако се отвори register0.php, Аз очевидно отпечатване това. Така че това е нещо странно именуване. Но това, което е хубаво в PHP е, че когато използване на PHP в Мрежата контекст, не по- командния ред, както направих аз преди малко, когато сте в действителност тя се използва на уеб страница, в Vhost директория като нас, автоматично ще запълни тази PHP нещо, което е асоциативен масив, така да се каже, хеш таблица, с всичко на потребителя написали инча С една дума, $ _POST във всички капачки е глобална променлива PHP, че само магически създава за вас, когато използване на PHP в Мрежата контекст. И това поставя вътре в него всички Имената на параметри под формата, че бе подадено до този файл и всички стойностите, че потребителят въвели инча Така че я подава ли това, което потребителят въвели в този вид. Така че, преди, имаме наистина глупаво изход на просто виждам това, защото всичко, което направих е рекурсивно отпечатате този масив. Ключът е името, стойността е Дейвид. Ключът е капитан. Стойността е включен. И двойна стрелка и ъгъла скоба има, това е само произволно. Това не е код. Това е просто начин на PHP на ви показва каква е стойността на някои основни е. Но сега нека да предложи в froshIMs3, това е почти идентичен с изключение го представя този файл. И отново, ние ще вид само погледне това, само за да видя някои синтаксис, но забележете какво този файл прави. Да предположите само въз основа на линиите на код, който може би ми приличаш Гръцки, до известна степен, е очевидно прави. Този файл е по някакъв начин свързана на поща, електронна поща. И така, какво е тази програма правиш? В тази версия, ако аз действително попълнете този формуляр - за да си отида до froshIMs3 не froshIMs0 - формата изглежда по същия начин. David, капитан, мъж, общежитието, Matthews. Но ако подам това, този файл е ще отида да register3.php. И аз твърдя, като погледнете в това е изходния код, това ще някак си да включва имейл. Позволете ми да отида напред и да отворите този в по-голяма прозорец, така че ние можете да го видите по-чисто. Ние сме в Vhosts, локалния хост, обществеността, froshims. Ще се отвори друг програма, за да сме може да видите повече наведнъж. Така че сега, тук, обърнете внимание на няколко неща. В горната част на файла е отворен скоба, въпросителен знак, PHP. След това има един куп коментари, които ние можем да пренебрегнем, е безинтересно за сега. Сега има това. Оказва се, PHP има много на код, наречен изискват. Много подобни по дух на C е включват, хеш включват, които същество грабва съдържанието на някои друг файл и просто да ги Plops тук, така че можете да ги използвате. В този случай, уредът има, предварително инсталиран, библиотека, свободен и библиотека отворен код наречен PHP писмото, че всеки може да изтеглите от интернет. Ние просто го е направил за вас. А това означава, че сега имам имейл функционалност на мое разположение. Сега забележите няколко неща. Отивам да валидира форма на представяне. Оказа се, PHP, едно, има удивителен точки от не оператор, точно като C. Но PHP също така има функция нарича празна. Empty се връща истина, ако стойността на нещо, което го предайте в скоби е празна, като потребител не объркате нещо инча Така че това се казва, и забележи, че синтаксис, много напомня на C, ако Име ключ, така името на полето във формата, която е подадена по пощата, чрез указание, не е за да се изпразни, и тяхното полът не е празна във формата, в добре, и си общежитието, не е празна - Забелязах, че не ми пука за капитан, тогава какво ще правим? Отивам да се изпълни този ред код. И вие можете да мислите за този вид като изчистване, но това е малко любител от това. Но за сега това ми дава специална структура от тип PHP писмото. Но игнорира ключовата дума нова за днес. Сега ще се обадя на функция, наречена IsSMTP, в която се казва, използвайте SMTP. Това е порт 25, точно като на видео миналата седмица, когато нещо се хвърлят имейли в защитната стена. Port 25 е SMTP. SMTP означава използване на сървър за електронна поща. Кой от тях, можем да използваме Харвард SMTP.fas.harvard.edu. Можем да зададете от адрес да бъде Джон Харвард. Ако превъртете надолу, по-нататък, аз да настроите адреса на получателя, само произволно, за да бъде John Харвард е, както добре. Така той ще бъде себе си електронната поща. Сега мога да зададете този въпрос за регистрация. И мога да настроите тялото на електронна поща, както следва. Тази линия изглежда малко по-загадъчен, но това е само, защото има много на информация в него. One, има една точка оператор. Някой трябва да знае вече какво операторът точка прави. Това е конкатенация. Така че, ако искате да вземете низ в PHP, и да ги добавите, или да го добавя нищо, за да друг низ в PHP, благодаря ти Бог не трябва да се използва strcopy и изчистване, и всичко това вече. Ако искате да се слеят две струни, който се грижи за паметта. Нека PHP цифра, която за вас. Какво PHP ще направи с оператора точка Тук е само да направи голяма присъда от на тази линия, тази линия, тази линия, тази линия. И сега известие, че ще да се включите в ценности. Така на имейл, че Джон Харвард става да получават буквално ще каже име, дебелото черво, нещо, по-скоро, тогава ние затворете низ и свързвам на независимо от потребителя написали в, а след това на нов ред. След това, на следващия ред на Джон Харвард електронна поща, тя ще каже Капитане, On или нищо. Той ще каже пол, мъж или жена. Dorm ще бъде Matthews в моя случай. И тогава забележите запознати запетая в самия край. И след това, тук долу, надпис, донякъде загадъчен все още, но отново, след модел, който ще стане по-запознати след P определила 7, ако изпращане на поща връща фалшиви, след което продължете напред и да умре. Така че PHP има функция, наречена матрица, което, буквално, просто убива сайт и просто отпечатва независимо ти го кажа - си умира думи, така да се каже. И това, в случая, той ще отпечата какво грешката информация е за каквото и да стане да се объркат. Така че, дълга история накратко тук, това, което имаме е пример, където, когато потребителят предава форма, froshim0, froshims3.php, той отива при register3.php. Но register3.php след това продължава да изпълни всички тези линии. Така че има няколко отсечки доведе тук. Едно, че е очевидно доста лесно, програмно, да изпращате имейли, , което е добро. Когато потребителите се регистрират за сайта си, в този случай, когато се регистрират за спорт, можете да пишете на първокурсник Proctor, или John Харвард, в този случай. Но той също така означава, че може да направи какво? Изпращане на имейли от никого на никого. И това е много вярно. Това не е толкова лесно да се направи, ако сте свикнали да използвате Gmail. Но ако някога сте се използва Eudora или Outlook, можете да хубав много разкажа една сървър за електронна поща, които сте всеки, който желаете. И това е мястото, където трябва да се постави на тази шапка и да кажа, не го прави. Но това е свидетелство за това колко лесно е да изпълнява фишинг атаки, и Изпрати Анонимен имейли, както и спам, по-общо. И това наистина се свежда до Фактът, че всичко, което трябва е някакъв програмен достъп. Като настрана, най-близките ми среща с обявата борда, моя първокурсник година, беше, когато открих този страхотен трик, който, уау, можете да изпращане на имейли от никого. И така, ние бяхме като някаква глупава аргумент, буквално, в Matthews, Сред моите Proctor група. Аз дори не си спомням какъв е проблемът беше. Но аз исках да се опита да сложи край на този глупав дебат. Затова реших, че просто ще изпрати съобщение да ми Proctor група, който се представя за другият, с чието становище I не са съгласни, и да го съгласят да каквото и моето мнение е в този дебат. И така, аз ковани този имейл, като се използва Техниката подобни по дух на това. Но това е действително по-лесно по това време. Хит изпратите. Той не е доволен, нито пък са били на борда на рекламата. И аз бях много бързо, уловен в рамките секунди, защото, както знаете, се регистрирам моите писма по определен начин. И ако го направите ръчно, в голям част, 15 години по-късно, защото бях травматизирани от това. Аз нямам подпис на моя имейл сега. Но през 1995 г., току-що имаше SIG, на подпис в моя имейл. Така имаше тази бележка казва: Уважаеми Proctor група, I съгласявам мое мнение и съм съгласен с Дейвид, подписано така и така, нов ред, нов ред, DJM. Така че не го прави, или общо казано, да вземе Предимството на тази техника. Но когато се прави сайта, като за окончателния си проект, при вземане на сайт за нещо, предприемаческа, това е начина, прагматично, можете да мобилизиране на други услуги в интернет като поща и след това действително изпрати неща използващи код. Така че как можем да се подобри това? Ами, първо нека да бърза обиколка на някои от нещата, които ще видите, и след това да разгледаме няколко примера. Така един, да успокои, защото летим през PHP. И аз знам, в някакъв момент, ще трябва действително да започнете да пишете това, ако вече не сте. Осъзнайте, че, едно, основната е вид на през прозореца с PHP. Ако искате да пишете код, който получава изпълнена, можете просто да започнете да я пиша в файл с име. PHP толкова дълго, колкото имате отворена скоба въпросителен знак PHP тагове. Но забележете това са условия в PHP. Забележете, това е точно същия слайд имахме една седмица, когато трябваше условия В. Условия в PHP са структурно и синтактично същото. Единствената разлика е, ако имаш променливи участват, трябва тези, доларови знаци. В същото време, булеви изрази изглежда точно като този за или-или и-ING ING заедно. Ключове изглеждат напълно еднакво. Какво е хубаво в PHP, докато в C, ключове трябва да са случаи на примитиви като цели числа или овъгли, в PHP Вашият случай отчети може действително да бъде на цяло струни, което е всъщност е доста приятно. Спестява време. Не може да се направи, че в C. Ето за линия в PHP. Това е идентична. Може да има някои доларови знаци за променливите. Не е нужно да се спомене, че нещо, което е едно цяло число. Можете просто да го декларира със знака за долар и името на променливата. Но за линия е една и съща. А линия, докато е една и съща. A направи линия, докато е същото. Това е малко по-различна. Така че с PHP, с масив, можете да статично декларира масив, като в C, но вие използвате квадратни скоби. В C, трябва да използвате фигурни скоби, ако дори знаеше това. Но това всъщност е много често в PHP да декларира масив, в този случай, на номера, и се обадете на променливи номера. Променливи само изглежда така. Тук е низ, цитирам във файловите "здравей свят. "Може да има наклонена черта п. Аз просто не се направи в този случай. Сега това е интересна конструкция. C не разполага с тази. Но това е супер полезно. И ще видите това в комплект P 7 спец. - един за всяка конструкция. Ако искате да повторя, по цялата елементи масив, не е нужно да се справят с $ I и $ М, и + +, и всичко това. Буквално може да се каже, в PHP, това - за всеки числа като брой, така че Аз съм се предположи, че $ номера е масив от числа. И когато казвам за всеки брой като брой, това ще автоматично, като си линия изпълнява, актуализира на всяка итерация, стойността вътрешността на брой знака за долар - отново и отново, и отново ходене за мен през този масив. Така че просто ни спасява код. Не запетаи, не + + е, не, е, NO Не, това е просто хубаво. Но PHP има това. И това е супер мощен. И че ще използвате този, ръцете на, в P определила 7. И асоциативен масив също е обявена за с квадратни скоби. Но забележете синтаксиса сега. Това напомня на това, което видяхме с print_r преди малко. Колко ключове, като малко проверка здрав разум, е този масив изглежда да има. Така че има две. И аз наричам този масив. Но ако това помага, можеш да се сетиш за това като хеш таблица, или като асоциативен масив. Но това е просто различен тип масив. И отново, на различни езици имат тези. Ще видите нещо подобно в JavaScript, както добре. Има два ключа. Един от тях е цитат кавички, "символ", един е цитирам цитата "цена". И тези ключове всеки да има стойност. В този случай стойността символ е FB, за Стойността Facebook, и цената е 49, 26, което е в наличност на Facebook цена от тази сутрин. Така че това, което е полезно за асоциативен масив. I биха могли да имат числено индексиран масив с просто прости квадратни скоби. И аз можеше да има знак за долар цитат равнява точно това. Нека наистина го направи. Да предположим, че вместо просто декларирани този масив подобно. Това е напълно валидни, синтактично. Той не губи никаква информация, сам по себе си. Аз все още виждам, че символът е еб, и че цената е 49, 26. Така че, защо са асоциативен масиви непреодолими? Публика: Не е нужно да се помни, къде сте скрили нещо. SPEAKER 1: Точно така, не е нужно да помните къде сте скрили нещо. Вие не трябва произволно да запомни този запас символ е в скобата нула, и цените на акциите е в една скоба, , което е особено опасно, ако промени нещата, в крайна сметка. Това е много по-хубаво да се сдружават това, което ние ще се обадя на метаданни с реални данни. Бих твърдят, че това, което ме интересува тук, е еб и 49, 26. Символът и цената е метаданни , който описва данните, които всъщност е грижа. Но това е само толкова по-лесен достъп. Сега, като отмени това, което е цената, която плащаме? Ние се занимаваме с това CS50 в продължение на седмици. Тази функция трябва да дойде в някакъв разход. Memory. Значи не само съхраняване на 32-битова цяло число, например. Ти съхраняване символ / 0, вероятно. Така че, който използвате повече памет. И това, което е изпълнение на търсите нещо в асоциативен масив, може би? Това е може би по-бавно. Произволен достъп е хубаво, особено когато можете да направите двоично търсене. Но ако вие всъщност сега не търси за брой, но за струнни, това наистина се осъществява под качулка, вероятно в хеш таблица, където вие използвате или хеш-таблица с отделен верижното. Или използвате Опитайте се да действително съхраняване на ценности. Така че може би можеш да направиш константно време, но все пак трябва да разгледаме S-Y-M-B-O-L, потенциално, а не само 32 бита, за да търсите нещо. Така че отново, същите тези идеи идва назад, за да се възпроизведе и в този контекст. Но отново, PHP вече има някои супер глобални, които, оказва се, са асоциативни масиви. Видяхме едно преди малко, $ _POST. И това супер глобалната има ключове и стойности. По-конкретно, ключове подреждат с какво? Къде ключове в $ _POST идват от? Само да обобщим? Публика: Name. SPEAKER 1: Име, къде? Публиката: [недоловим] SPEAKER 1: Име е атрибут. Ами къде, където те направиха първоначално идват от? Формата. Така че, ако една HTML страница има форма етикет, в които някои суровини, като отметки, текстови полета, падащото менюта, всяка от които си има име, тези имена свърши като ключове в $ _POST, и, честно казано, за този въпрос, $ _GET. Ако методът е GET, същата идея. Това е просто по различен супер глобален. И стойностите, разбира се, идват от независимо от потребителя напечатани в на негово или си браузър. Но има и няколко други. Има бисквитка, които ние ще се върна в крайна сметка. Но това са нещата, които знаете, че в интернет използва за някои добро или зло. Но ще се върна към това. Сървъра и сесията, и тези две има някаква особена полза. Но нека да разгледаме това. Нека да вървим напред и да се отворят един пример нарича mvc0.php Така MVC означава следното. И ще се въведе по-рано, отколкото е типично, наистина, за да сте проектиране Проблем набор 7, а също и окончателните проекти, в нещо като индустрия стандартен начин, и чист начин. Това е добър дизайн. Така че вие ​​сте на път да се види, и ще опит, в P набор 7, парадигма, сортиране на програмиране мислене, което изглежда малко нещо като това. М за модел, в продължение на контролер, V за View. Накратко, MVC е просто вид на методика, начин на вземане уебсайтове, по-специално, при което те постави всичките си, глупаво фраза - бизнес логика - всички от вашата интелектуална собственост в , което се нарича контролер, файл като index.php, или ще видим, quote.php или buy.php. В контекста на проблема набор 7, вашият модели обикновено съдържат данните, всичко, свързано с база данни, както ще в крайна сметка виждам, и вашите мнения съдържат естетиката на вашия обекта, HTML, на CSS. Така че ние вече видях това в C малко малко чрез използване. ч файлове. Ние наистина го видях преди малко с CSS, от факторинг стилизация CSS неща от нашия HTML. Така MVC е наистина само за рисуване линии в пясъка и да казвате: интересна програмен код за вашия уебстраница принадлежат в това, което ще се обадя на контролер. Неща, свързани с база данни, обикновено се озовава в един модел. Но ще видите, в Проблем набор 7, ние сливат C и M да го прости. Но мнение е, където всички ваши HTML и естетика обикновено отидете. И така, какво означава това в реално изражение? Е, нека да отидат в нашата MVC директория, както следва. И ще видите повече от тях турне през спец.. Така че в mvc0, аз твърдя, че това е, като, Вариант 0 на уебсайтове CS50 си. Всичко, което имаме е някои HTML, като голяма h1 етикет, очевидно. И тогава списък с водещи символи. Никога не съм виждал списък с водещи символи и преди, но не е голяма работа. Нека най-бързо погледнете изходния код. Оказа се, неподреден списък с куршуми е отворена скоба ул. с един или повече елементи от списъка, Li. Така бележка тук е една котва маркер. Видяхме, че преди малко. Така че това е начинът по който изпълнява тази страница. Имам две връзки, две елементи от списък, една ул. за неподреден списък, и в края резултат, естетически, е този доста уебсайт, версия 0 тук. Но това, което е интересно сега е как тази се осъществява под предния капак. Нека да отидат в Gedit и да се отворят тази първия пример, за да нарисувам картина. И ние ще разгледаме това, което е погрешна, потенциално тук. Сега, ако отида в Localhost, обществени, MVC, забележите няколко файла. Аз ще се обадя на тези, на момент, всички контролери. Но това е малко на злоупотреба, защото ще видите всичко се смесват вътре в тях. И нека да влезем вътре на index.php. И ние виждаме, буквално същия HTML. И въпреки, че този файл завършва в . PHP, това не означава, че трябва да имате PHP код. Тя може да бъде само суров HTML, въпреки че това е нещо глупаво. Но забележете, че няма отворена скоба PHP маркират, с изключение на това, което, честно казано, е точно там, за да служи като коментар. Но това не е функционално дори, че интересно. Но забележи това. Интересното сега е какво промените на тази страница. Нека кликнете Лекции. И забележи, че URL е на път да се промени. Сега съм в lectures.php. Нека кликнете нула. Сега съм в week0.php А сега нека ми отваря тези файлове в Gedit. Не само индекс, но нека ми отвори лекции. И нека да се отървете от коментарите да се съсредоточи върху тази част само. А сега нека да се отворят само още един, week0.php, изхвърлете коментари, само за да изчистя. И сега забелязвам следното. Мисля си наистина нещо като внимателно дизайн и нека го направим по линия до същото, което може да се направи по-добре тук, мислиш ли? Как се правят една седмица? Какво ще кажете за това. Така че това е как аз направих една седмица. Отидох до File, New, Paste, Save, week1.php, а след това отидох в тук. И смених едно - какво е това, един до петък. Промених нули към едно. Промених това към едно. ОК, така че сега погледнете моите файлове. Какво може да се направи по различен начин? Къде е възможност, може би? Така че има възможност да започне факторинг тези неща. Нека да се отворят, като спойлер, за това, което ще видите в комплект P 7. Ако се отвори, сега, index.php във версия пет от това, тя изглежда така по-загадъчен, разбира се. Но това, сега, е това, което ще се обадя на контролер, който се контролира логиката на моята страница. И вие можете да вид реконструира, интуитивно, може би, това, което става. На първия ред, това е малко загадъчен. Но забележете аз изисква, като с остър включват, файл с име helpers.php. И след това се обаждам, както изглежда, е функция, наречена рендер, минаваща през два аргумента. Един от тях е цитат край на цитата, с глава. А другата е, какъв вид тип данни е този, базиран на синтаксиса на нашия по-рано? Това е свързано масив. По-конкретно, е преминаване в заглавието с някои метаданни, което напомня ми какво е и стойността му. Тогава виждам кодирани трудно ул., така че някои суров HTML. Но след това отново съм в режим на PHP Извикването на функциите рендер. Така че, дори ако никога не сте използвали HTML или PHP и преди, и въпреки че това изглежда по-страшно, защо е това вероятно по-добър дизайн? Какво е по-добре за него, въз основа на заключение? Публиката: [недоловим] SPEAKER 1: По-малко съкратени в тази че няма по-HTML тагове, не повече главите етикет, не повече тялото тагове във всеки проклет файл. Вместо това, аз съм фактор навън на приликите и вероятно ги е пуснал във файл, по някакъв начин свързани към заглавието. И едно и също нещо за тясно тяло етикет, на близо HTML тагове. Това е може би тук вътре на долен някъде. И ще видите, в Проблем набор 7, малко турне през това. Така че това, което предстои? Единственото нещо, което не са в състояние Все още е действително съхранение на данни. И това, което ние ще започнем да виждаме Сряда, например, е, че вашият стар приятел, Excel, или номера, ви позволява да съхранявате много данни в редове и колони. Оказва се, че мога да го направя в това, което е нарича база данни, програмно. маниакална И се оказва, след това, ние ще бъдем в състояние да съхраняват такива неща това, което ще видите отново в комплект P 7, цял куп от потребителски имена и пароли, последните от които са всъщност криптирана, много те харесват са били в хакер издание P набор 2 на. И в крайна сметка, ще се приложи тази, собствен ETrade-подобен сайт, който изпълнява колективно CS50 финанси. На последно място, тъй ли остана тук толкова късно днес, ако се върнем към тази част на колежа, в 4:00 ч. днес, ние ще ще ви даде не само съвети, на ЕКД Консултиране Fair, в 16:00 в Maxwell-Дворкин, ние ще ви дадем някои Americone мечта, Cherry Garcia, Шоколад Фъдж Брауни, Chocolate Chip Cookie Dough, и, когато Google Chunky Monkey, можете да получите това. Така че всичко това очаква в 04:00 PM в Maxwell-Дворкин. Ще се видим в сряда, както добре. SPEAKER 2: На следващото CS50, RJ спи инча RJ: My секция! Ха! О,