Сем LEVATICH: Добредојдовте дел за оваа недела. Јас не сум Анди. Анди падна болен овој ден, и јас се вид на повикани во последен момент да го преземе. Тоа е сезона на грип, па затоа бидете сигурни дека ќе се остануваат чисти, миење на рацете, и јадење здрава, така што вас, исто така, не се врзани за кревет. Но без понатамошно ado, ајде да започнете. Денес, ние се случува да се зборува за PHP малку bit-- како PHP се однесува на HTML, како тоа се однесува на CSS, и некои од веб работи што направи во последната задача. Ние се случува да се зборува малку за SQL и како може да се работи со бази на податоци, што е прилично клучна компонента на P постави 8-- П поставите 7. П поставите 7. И тогаш ние ќе треба да се зборува малку малку за тоа како поглед контролори работат и зошто тоа е филозофијата зад некои модерни веб страници и различен дизајн. Доста голем број на видови на апликации и апликации кои би можеле да брод со користење на овој модел, рамка погледнете контролорот, дека ќе биде со користење на во P постави 7, па јас ќе зборува малку за тоа зошто тој стана популарни, зошто е важно и убаво. А потоа ќе се движат за да на крај некои совети за справување со Ц постави 7. И ако имаме време останати на крајот, ние всушност може да направи некои работат на тоа заедно. Значи, PHP. Всушност, може да се забележи this-- што не се навистина треба да се нурне во it-- но Ц постави 6 имаше некои PHP законик, што се случува. И затоа што PHP е C-како јазик, PHP, за разлика од HTML и CSS, е програмски јазик, со оглед на HTML и CSS се статични. Тие се занимаваат Селектирај јазици со стил и визуелна распоред. PHP е вистински договор. PHP има јамки, што има conditions-- сите тие работи што е забавно за В. Таа има неколку работи кои се малку малку подобра од С, што ќе видиме, но мислам дека најлесниот начин да се зборува за PHP е само за уживање. Па јас ќе одам да си во право во ИРО во овој момент. Првото нешто што ние ќе да направите е всушност изгледаат малку во некои од PHP код, кој беше поставен во P 6. Па начинот на кој го правиме that-- пред, за начинот на кој ние трчавме серверот за апаратот беше дека ние ќе треба да type-- го користите вашиот имплементација или спроведување на персоналот на server.c со одење во директориумот и водење server.c со или без arguments-- па само го повикуваме локалниот компјутер, што е она што веројатно најголемиот дел од time-- и потоа да ја хранат на directory-- со кој ќе се користи како неговиот корен каде што на веб-сајт ќе да се работи, во основа. Оваа недела за P постави 7, како голем како нашиот код за server.c е, постојат луѓе кои веќе имаат напишани овие убави работи во текот на CS50 кои имаат малку повеќе функционалност, сервер програмата кој е способен на кои се занимаваат со малку повеќе на сложеноста дека ќе види во двете Ц постави 7 и P одреди 8. И начинот на кој ќе ја стартувате сервер е од само пишете "apache50." И пред да се направи нешто, вие сакате да бидете сигурни дека дека Apache 50 не е веќе работи како што е на мојата машина, што го направив за да го пробате. И ќе го направите тоа со повик apache50. Запре, и ќе видите дека тоа е запирање на веб серверот, ако може да се погледне тука на дното на прозорецот на терминалот. А потоа само да се започне, ние сме ќе се јавам "apache50 започне". И тогаш ние ќе да го хранат директориумот. Сега, бидејќи ние сакаме да се погледне во некои од P постави 6 код кои ги спровел, јас, всушност, копирани малку на P постави 6 код во свои папка, која може да се види на левата таму. Се вика "SECTION8" во сите големи букви бидејќи јас сум толку возбуден да биде во живо емитувана денес. Значи, ако ние се кандидира тоа, треба да сите работат прилично ефикасно. Таа вели дека, во ред, нашиот сајт е сега достапни на адресата на ИРО, во основа, што е она што сте ја користеле токму како што беше во собата 7-- П Р постави 6. Сите мои индекси се еден индекс денес. За да можеме да се оди на тоа адреса, ако ќе се сеќавам, со едноставно кликање на оваа мала копчето во горниот десен агол. И ќе се потсетиме на овој код, што што се случи кога ќе се влезе во hello.php. И она што го кодот е дизајниран да ги направите е кога ќе се внесе во име here-- ако ви кажам Сем бидејќи тоа е мојот name-- и јас кликнете каже здраво, кога отидовме на следната страница, тоа име требаше да бидат прикажани. Што би рекол, "Здраво, Сем" или "Здраво", што и да име се стави во неа, иако одевме на сосема нов веб-страница. И ова е една од оние работи дека PHP може да направи за вас. PHP е во можност да помине податоци помеѓу две веб страници. Ова е сосема поинаква страница. Ќе видите насловот е "здраво" овде. Всушност, тие имаат истиот наслов, но јас ветуваат тие се различни веб- страници ако гледаме на изворот. И може да помине на податоци што е влезе во оваа поле за текст, ќе го достави до следниот страница и тоа е се повикани, а потоа дека на податоци е во можност да се да постои во сегашната форма. Сега ние се уште не се спроведува ова самите себе, што е она што ние ќе треба да направите сега за да вид добие вкус за тоа како PHP, но клучот Идејата е дека PHP-- можеш вид мислам на тоа како функционира. Нешто што може да ви ги споделите со PHP не е тоа може да потрае параметри кој го внесуваш во една HTML страница преку употреба на PHP и форми, а тоа може да поминат тие како параметри на следната страница, која го товари до. Во овој случај, ние сме вчитување ова страница со копчето "Велат здраво". Но, за сега, јас, всушност, избришани некои од тој код во hello.php беше се кандидира што беше всушност прикажување на "Здраво, светот "или" hello, Сем "или "Здраво", што и беше само влез. Па за сега, ние сме ќе го направи тоа, во основа. Ние ќе треба да го создадете и исто така, да додадете некои повеќе функционалност, направи малку повеќе со него, видете PHP е она што навистина се способни. Значи прво, ајде да зборуваме за оваа датотека, hello.php. Значи, ако ние зумирање во малку bit-- и сега сум вид на се обидува да дојдете сите Патем around-- таму ќе одиме. Ќе видите се вика hello.php, но синтаксата од неа изгледа како HTML датотека. Тоа е затоа што вистинските PHP во оваа датотека сите се заглавени помеѓу овие прашалник-карет блокови. Сè што токму овде се смета за PHP код. И ќе забележите дека кога го направив коментар, ќе видите познатите две напред засеци. И дали ќе се потсетиме, во HTML, ако сум тип коментар, изгледа нешто поблиску до ова, кој е коментар на HTML. Значи, навистина сето она помеѓу овие два аглести загради сега е PHP код, што се огледува во фактот дека овој мал коментар симбол се претвори во коментар. Така што секој пат кога ќе се напише PHP код, дури и ако нема HTML кодот надвор од него, тоа е секогаш се случува да биде затворени во овие аглести загради со прашалници. Можете да вид на се размислува за тоа како сите it-- на кодот кој трчаше во вашиот C програми беше затворен во int главната, празнина, кадрава голема заграда, крајот кадрава изјава подготвуваат. И ќе видите големи загради во PHP, исто така, но ова е вид на како главен метод за PHP. Па сега, како ние да се направи нешто во PHP? Сега, PHP е програмирање јазик, кој е многу Ц-како, но таа работи на интернет. Значи, едно нешто што ќе immediately-- еден од првите работи што навистина го направи со C бил можете печатени работи надвор, нели? Па во C сме го правеле тоа со функција printf. Ние го даде низа, најверојатно со нова линија, а потоа ние прекинат тоа со точка-запирка. Па начинот на кој ние се случува да го направи тоа во PHP-- бидејќи тоа не е сосема printf. Тоа е малку различен синтакса. Начинот на кој ние се печати работи надвор во PHP е да се каже, "ехо здраво" или "ехо" ниту еден збор. И дека има ефект на водење printf со еден конец, "здраво". И се додава нова линија на него. Значи, да се направи токму сега sure-- Ќе одзумирате повторно малку bit-- ајде да бидете сигурни дека тој код е работа затоа што таму може многу добро се работи за грешка во овој код дека ние ќе мора да се справи со. Така што серверот е веќе работи. Значи, ако ние дојдете назад надолу кон дното, То, серверот е сеуште работи. Значи, ако ние само допрете на овој малку десно here-- welcome-- треба get-- одлично. Ние се уште ги имаат Познатата "Велат здраво" дијалог, но кога ќе напишете "Здраво", ќе видиме дека текстот "Здраво" беше навистина печатени надвор, што е точно како што е што се очекуваше, бидејќи ехо во PHP е исто како и изјава printf. Па назад во кодот, како во P постави 6 правеше правила за дистрибуција ќе се предвидени го направите така што би PHP излезот на нешто што ви е внеле во однос на претходната екран? И да се испита кој вид на зошто тоа се случи, ние сме 'ќе одат во index.html, кој е на оригиналната датотека, на датотеката што се појавува на овој екран со копчето "Велат здраво". Ќе забележите дека има сите класични работи ние си дојден да очекуваме од HTML, како како овие работи, овие тагови ограден во аглести загради, како PHP но без знаци на прашањето, што укажува на специјални нешто во HTML. Имаме насловот, што е "здраво". И ќе забележите дека како што видовме, насловот е "здраво" и во двата случаи. Ајде да го промени ова да "каже" само за да можеме може да се направи разлика каде сме. Но, ние мора тело. А потоа и интересна малку, малку кој се појавува во HTML, е форма елемент. И така имаме форма. И тоа е клучот. Ова е како ние работиме со PHP. Параметар дејството на форма, вели дека hello.php е она што ние ќе треба да се испрати вредностите во оваа форма за. Ова е местото каде што ние поминува параметри, така да се каже. Ќе забележите уште нешто тука е дека методот е "да". Постојат две основни методи со кои ќе да користите PHP за да се помине податоци помеѓу websites-- веб страни, rather-- во оваа задача. И тие методи се "добие" и "пост". Постојат некои суптилни разликите помеѓу стапите и пост дека ќе добиеме into-- ние ќе "добие" во, ако сакате. Но, за сите намерите и цели, и да добијат мислење и двајцата се само начин на кој ќе помине параметри со малку различни егзекуции. За сега, ние ќе треба да се користи, бидејќи се беше она што беше првично се користи во PHP фајл на P постави 6. А всушност, ако одиме во и да бараат пред да го уредува нешто друго, Јас ќе одам да се каже Здраво to-- што е вашето име? ПУБЛИКАТА: Елиот. Сем LEVATICH: О, боже. Не знам како да се пишува тоа. Би можеле да се пишува тоа за мене? ПУБЛИКАТА: Е-Л-Л-И-И-Т. Сем LEVATICH: Јас-О-Т? ПУБЛИКАТА: Да. Сем LEVATICH: Совршена. ВО РЕД. Претпоставувам дека јас не знам како да се пишува тоа. Извини за тоа. Но, ако ние се каже "се каже здраво," тоа не е тоа не се случува да се појави на екранот Сепак, бидејќи ние пат е изменета кодот малку. Но, ако се "Велат здраво" - ОК, значи "здраво" е тука. Но, ако ги земеме, внимателно се погледне на себе URL-то, ќе видиме дека тоа завршува со hello.php? име = Елиот. Значи, ова е начин на достават на следната веб-страница на параметрите кои ги поминавме. Ние рековме име = Елиот. И тоа е во крајна линија како P постави 6 пристапи променливата која поминавме во преку форма. И ова е нешто што е чудно на оваа барање за стапите. Барање А Земи го прави на параметри познат во URL-то на веб страната. И ќе се потсетиме, исто така, во P постави 6 кои ви мораше да се напише функција кои се занимаваа со фактот дека ова пребарување стринг може да постои по некоја датотека. Не може да има знак прашалник проследено од страна на основа на било кој број на карактери. А тоа е токму она што се случува тука. А причината што мораше да се интерпретира дека во вашиот имплементација на server.c во P 6 е во собата, така што ќе може да каже кодот PHP дека име = Елиот. Што ви е потребно за да може да анализирам дека од URL-то така што на датотеката PHP во прашање знаеше што е тоа кои се занимаваат со. Па се надевам дека ова му дава мотивација да server.c сега дека ние сме се движат на надвор од Ц во PHP. Значи, да се, всушност, се фокусира на пристапување на работите поминале низ барање добие сега во оваа точка. Одам да се спаси ова. Ние не се промени ништо. Тоа изгледа како ние го добивме на поле за внесување. Ние сме поставување на некои својства, како што може да се направи на HTML. Тоа се едноставно работи. Не ни се потребни овие. Но, ние мора AutoComplete надвор, што во основа says-- знаете, кога ќе напишете работите во веб, понекогаш што се обидува да ја пополни таа во за вас. Така, тоа е убава работа. Ние сакаме да го исклучите за оваа намена. Тоа беше одлука на CS50. За да можеме да ги избришете дека ако сакаме. Автофокус само се држи на курсорот во право вид на почетокот. Повторно, не е премногу важно. Но name = "име" - тоа е малку незгодно, бидејќи тоа е и името. Но би можеле да се промени ова на нешто друго. И всушност, тоа е она што ние ќе направиме во моментов. Ние ќе се каже "лице", која е вид на како име ако некое лице е дефиниран со нивното име. Значи, да се затвори ова, повторно отворање на нашата веб-страница со оглед на нашиот сервер се уште работат Apache-то на 50, а ние ќе се каже, здраво, еве Елиот повторно. Зошто да не? Здраво. И ако ние одиме до тука, ќе видиме тогаш наместо име = Елиот, таа вели лице = Елиот. А тоа е директен резултат на фактот дека ние само го промени своето име = "личност". Па во влезен елемент HTML форма, името поле е идентификатор за параметар кој се пренесува. Тоа е како ако сте во една функција "Додај" што се одржа во два цели броја а ти рече int a и int b. Тоа би било име, и ако сакавте уште една форма, што ние може да го направи само од страна на копирање и вметнување, тогаш ние ќе треба име б. Па сега ќе имаме два параметри кои се пренесуваат преку се дојде до следното website-- на следната веб страница, hello.php. И всушност може да се види тоа повторно, ако сакаме. Ова е најлесниот начин да се справи со веб-код во ИРО, во основа. Ќе ја стартувате серверот, да го добие трчање, а потоа на секои ви пат направи некои промени, само во близина таа датотека само за да бидат безбедни. Со притискање на копчето за враќање назад е малку незгодно бидејќи тоа би можело да се вчита поран верзија, а не најмногу групно еден. И можеш само да кликнете на вашиот копчето повторно, поп право up-- ох, и сега постојат две форми. И така, ако ние напишете нешто во секој one-- "Џејсон hirshhorn" за instance-- ние велат здраво. Ќе погледнеме во нашите параметри. Тоа изгледа како ние го добивме, како што се очекуваше, а = Џејсон и b = hirshhorn, кој го претставува два параметри кои ги помина на оваа функција. Па сега ајде да всушност се да спроведување на таа функционалност што ние имаше во P постави 6. Па сега ние сме само повторувајќи здраво. И тоа не е многу корисно. Ние сакаме да ги повторуваат некои променлива што беше донесен за нас. И знаеме името на оваа променлива. Имаме и ние сме б. Па ние може да избере да се повторуваат или еден. Но, како да го пристап? Па, постојат одредени глобална променлива во PHP. А јас ќе одам да се напише ги во коментари тука. Двете најзначајни се стапите и пост за нашите цели во моментов. Ова се низи или, технички, речници каде што нашите променливи, дека ние сме полагање на следната веб страница, во живо. И наскоро ќе видите како да ги користите. Друга кратка белешка за PHP код и некои специфики на it-- во C, да декларирате променлива или да се користи променливи, прво мораше да им се изјасни. И она што требаше да направи кога ќе се прогласена нив беше велат int a или да се усвити б. Сте имале да се прогласи за видовите на овие променливи, пред да ги создаде. PHP-- вие не треба да направите било што. PHP не бара од типот на променлива. И начинот на кој што создаде variable-- а од велејќи цел број, знак, string-- која е навистина знак *, како што ние know-- наместо да ги работи сите дека, бидејќи сè е од ист вид, typeless, ние само можеме да користи еден лик, кој е знакот за долар. И ќе видите дека тоа е веќе пукање нагоре, малку нешта AutoComplete. И тоа е велејќи дека _GET и _POST се двете работи што имам на располагање за мене. Некои од овие се другите нешта други глобални променливи во PHP дека ќе биде во употреба во текот текот на П поставите 7. Сега за сега ние ќе треба да се фокусира на стапите и пост. Но, ова е корисен Она што го прави ИРО каде што некогаш сте ја внеле во тој знак за долар, тоа ќе почне да пополнување на глобални променливи или променливи сте веќе дефинирани. Значи, ако си сакал да се дефинира променлива наречена "стринг" можете само да го поставите тоа еднаква на "Здраво". И тоа е во основа како што е едноставно како што. И потоа можеме да направиме нешто како "echo $ низа." ИРО треба да се фрли малку грешки, ако јас сум прави ништо лошо, па се надевам дека јас го правам се што е во право. Но грешки секогаш се јавуваат. Друга слабо нешто во врска со PHP е тоа што тој не го состави. Така е и со C програми, ќе направиш секојдневната рутина of-- во основа, ќе се направи за да се промени вашиот код, што би го спаси, а потоа ќе го прават тоа, каде што направи беше чекор кој повика на компајлерот, ѕвекот, да се направи вашиот код, овој текст поднесе, во извршна. PHP е Ц-како, но тоа е погубен во лет со вашиот веб прелистувач. Така што не постои начин да се знае. Направи ќе фрли оние корисни грешки, нели? Тоа би било како, вие не се изјасни оваа променлива пред да се обиде да го користи. А ти го направи сето ова лошо stuff-- segfault, segfault, сите тој вид на забава пати кои дојдоа со шминка. PHP е меч со две острици затоа што нема да добијат оние грешки, но тоа, исто така, значи дека ти не ќе знаеш навистина она што е во ред со вашата програма ако само ја стартувате и тоа не е работа. Но дебагерот треба да се истакне се надевам дека некои корисни мали нешта синтаксички што ќе може да се поправи. Па сега ако одиме во текот to-- велам, ајде да се затвори таа. Отворат. И ние сме назад тука. Значи имаме променлива и променлив b. И овие нема да на крајот е важно. Ние ќе ги повикам ч и г без посебна причина. И ние да се поздрави. Сега тоа изгледа како нашиот стринг "Здраво" е навистина печатење. Ние направивме променлива наречена "стринг," поставен тоа еднаква на "Здраво". Забележи дека ние не треба да се направи Примерок или направи карактер низа. Во PHP, бидејќи променливи се typeless, стринг е иста како и на знак за сите намерите и целите. Ова би можело да биде "Здраво". Ова може да биде само к карактер. Ова може да биде број 1. И тоа не се грижи. PHP не се грижи за типот на вашата променлива. Или, пак, се грижи. Таа се грижи кога ќе се обидат и не работи со неа, но тоа не се грижи во чекор во декларацијата. И исто како што можете да во Ц, може да декларираат жици на магацинот се допаѓа ова иако велејќи "магацинот" е малку малку на потенцијалните погрешна употреба на израз кога ние зборуваме за PHP. Но, ние не треба да се грижите за тоа. Па добивме нашиот стринг "Здраво", а ние се одгласува стринг. Па сега сме разговараа променливи. Па сега ние треба да се зборува за и стапите пост и изведување на конечниот нешто што е се потребни за да се добие навистина ова назад до до функционалноста на П постави 6. Па сега сме повторувајќи стринг, но ние немаат овие променливи се добие и пост. И бидејќи ние сме со користење методот добие, тоа изгледа природно дека нашата променлива која ние сме заинтересирани, и А и Б, ќе се наоѓа во низа или речникот, технички добиете. Значи, ако ние се постави се допаѓа ова со вашиот groups-- ги притиснав влезат и дека не му се допаѓа it-- но тука имаме се. И така се веќе постои. Па ние веќе може да почне да пристап некои од елементите на се. Ако ние се добие оваа синтакса за низи во PHP е многу Ц-како. Ние имаме два квадратни загради. Значи, ако ние се каже во една нормална низа, ние би можеле да пристапите индексот на 0., првиот индекс. PHP е индекс нула. Би можеле да кажеме нула, еден, two-- работи како оваа. И јас сум бил велејќи дека се е технички речник. Значи она што се PHP е тоа под хауба, која е малку поубав од С, тоа е веќе е ви даваат некои речникот функционалност, која е навистина хаш маси, или се обиде да, наводно. Или, технички тоа би можело да биде се обиде, како и. Но PHP е спроведување хаш табелата, што претставува ефективна речникот. И така ние се знае името на нашата променлива, нели? Таа е донесен во низа на барањето од страна на PHP. Имаме = ж и b = g каде и б Еве ги имињата на променливите. Па начинот на кој што можеме да пристапите на вредност што одговара на клучните во нашето речникот е само со зборовите _GET_GET ["а"]. Така, сега имаме _GET ["а"]. И ако ние само го замени внатре нашите ехо, ако ние се одгласува _GET_GET ["а"] - и ќе видиме дали дебагерот фрла евентуалните грешки во врска this-- ние ќе се спаси и да го затвори ова. Отворете го. Па ние сме само прави право сега, па б нема улога. "неа" и "него" - "потпевнувам". "неа" и "потпевнувам". Звучи добро. И го испечати "неа", кој е луд. Но, тоа е токму она се случуваше во P постави 6. Во основа, она П постави 6 беше doing-- ехо здраво, name-- каде што имаше променлива име и тоа само бара од Вас да напишете во кој дел од текстот. Имаше, исто така, некои дополнителен код каде тоа се вклучени ако извештаи, кои можеме да направиме во моментов. Може да се каже, ако постои, кој е функционалност во PHP, _GET Со подвлечено, "името" - која е во основа велејќи: "ако името е пополнето на" бидејќи ние би можеле да имаат само кликне на копчето да ги достават форма, без пишување нешто во таа област. И ние ја заврши тоа што во нашата пријателски големите загради. Можеме да имаме изјава на друго место. И тоа е сè во рамките на аголот на PHP заградата, прашалник, аглеста заграда, ако сакате. И сега ќе видиме дали тоа функционира. Продолжувам да чекаат таа да debug и глупости за мене, во основа, но тоа се уште не е. Можеби тоа ќе сега затоа што говорев. Да. Тоа го правеше, во факт. Значи, ништо не се појавува. Тоа е затоа што на нешто лошо дека сум го напишала во PHP код. И јас спомнав дебагирање е незгодно, бидејќи во PHP, ние не го компајлирате однапред и на компајлерот не беше така, тука е местото каде што вашите грешки. Но, она што можеме да го направиме is-- луѓето се сеќавам како да се погледне на различни мрежа барања кои PHP-- или дека веб-сајтови испрати? [? Малин?] Направив ова во предавање еднаш или двапати. Се сеќаваш ли каде одиме да се најде различните долгови и одобри 200, сите овие кодови, кои се испраќаат преку HTTP од веб страница на веб-страница? Дали некој се сеќавам каде одиме да го направите тоа? ПУБЛИКАТА: Page Source. Сем LEVATICH: извор Страна. Токму така. Ако одите во Страница Source-- совршена. Па Страница Извор граби инспекторот. И јас сум со користење Safari. Многу од вас веројатно ќе да биде со користење на Chrome или Firefox. Но, колку што сте во секој модерен browser-- и се чувствуваат слободни да го следат заедно ако сакате. Можете да напишете на овој код или само да се погледне во внатрешноста на П сет 6 Директориум за некои слични нешта. hello.php е она што ние сме моментално работи на emulating. Па така постојат различни табови. Ние можеме да се погледне во сите ресурси. Можеме да видиме на изворниот код. Па изгледа како да не се минато телото на крајот. Тој нашол грешка во PHP и тоа престана вчитување на целата веб-страница. Ние дури и не имаат крај ознака за HTML или ништо. И ако ја гледаме во мрежата, можеме да види дека сме се испрати барање. Овој домен. Ова е адресата. Тоа е документ. Ние сме со користење на методот на стапите. И тоа е црвено. Или, пак, беше црвено кога јас не е избирање на тоа. Како можам да го отстранете? Па, тоа е црвено. Дозволете ми да се освежи. Таму е. Сега е црвена. Така, тоа е црвено, што значи тоа не успеа, што е лошо. Значи, да се испита зошто тоа не успее. Така што сите тоа Изворот страница може да во основа ти кажам ти е нешто не работи, кој веќе може да се види. Значи идеално таму би да биде повеќе корисна алатка. И има некои прелистувач екстензии кои ќе ви овозможи да се debug PHP, но ние нема да се се пишува еден тон на PHP, па тоа е веројатно само најдобрите да се погледне преку вашиот код внимателно и само бидете сигурни дека тоа не го прави ништо друго. Значи, да се види дали на Форматот на оваа ако изјавата е каде е проблемот. Сакам да се вчита дека назад до тука. Здраво, Здраво. Па има проблем таму. Па поради правилна синтакса на PHP, PHP се случува да биде во Ц-како тоа ќе го видите петелки. Ќе се види дали извештаи. Ќе видите сите овие пријатели што сте се запознаат со текот на овој CS50 семестар. Но, најдобриот начин да дознаам како да се направи нешто во PHP е да го Google или да погледнеме некои примери на PHP код затоа што знам на функционалноста. Знаеш што може да се направи со програмата. Можеш јамка. Можеш јамка онолку пати колку што сакате. Можеш Врти во сите видови на различни начини. Можете да креирате функции. Можете да креирате функции кои се јават други функции, функции кои се нарекуваат себеси. И имаш имиња за овие концепти. Имаш рекурзија, петелки, ако, останатите текови контрола. И затоа Google е вашиот најдобар пријател. Дури и да каже, "ако PHP изјава "и таму Ќе биде тони постови со одговори и на други луѓе кои имале слични прашања за вас, кои се само на почетокот со PHP и се љубопитни за тоа нешто на синтаксата. Затоа што имаат луксузот да биде во состојба да се погледне на кодот во P сет 6, ние всушност ја повлече нагоре и да се види дека Добро, тука е нешто интересно. Значи ова е она што всушност изгледаше како во P постави 6. Значи, ако ние одат преку овој, можеме да видиме дека ние сме доби неколку од овие мали Битови прашалник PHP-како. И таму не се големите загради. Постојат две точки. А тука се и кадрава подготува во PHP, но ова е формат и начин на водење PHP, кој работи добро со HTML бидејќи, како што ќе видиме, ги затвораме исклучите овие PHP bits-- на elses и што IFS и сите that-- и потоа ние сме interspersing HTML во нив а уште по контрола на проток е утврдено од страна на PHP. Па јас сум само ќе брзо одење преку овој затоа што тоа е многу исти концепти кои што го правевте пред. Имаме ако не е празна, загради, _GET_GET ["name"]. Ова е сите се исти нешта. Ние сме со користење речникот _GET дека PHP испраќа барање на форми, бидејќи тоа е параметри на акција, а методот е да се добие. И тогаш што завршува тоа. Дебелото црево е означувачот само да го направите ова ако ако изјавата е точен. Тоа е како кадрава голема заграда. И всушност, тоа е кадрава голема заграда на други јазици како Пајтон, кои може да се судрите, ако само го прави тоа за твојот последен проект. А потоа и оваа линија, здраво. Тогаш ние го добивме ова чудно нешто. Имаме повеќе загради. Нема HTTP there-- или PHP, жалам. Но, има знак за еднаквост. И тогаш имаме некоја функција, htmlspecialchars (_GEThtmlspecialchars (_GET ["name"]). Ова е вид на како повеќе напредна верзија на ехо. Како да сме ехо како начин да се печати работи надвор во PHP. Ова е функција која е што е дефинирано во PHP дека ќе се занимаваат со некои непријатни бајт карактери и вредности што ќе може да го помине. Тоа секогаш е најбезбедно да го користите овој. Но ехото ќе ја заврши работата само парична казна ако ние не сме кои се занимаваат со нешто премногу непријатни. Па така ова го има истиот Ефектот на основа, овој материјал во меѓу прашањето ознаки се оценува од страна на PHP. htmlspecialchars враќа убав HTML печатени вредност _GET_GET ["name"], т.е. што и да се внесе во форма. А потоа тоа ќе се каже здраво, запирка простор, а потоа тоа. Дека целата работа помеѓу голема заграда агол ќе биде заменет со она што htmlspecialchars гаси. Значи, тоа е во основа е сличен на она што го правиме. А ние имаме изјава друго што е Здраво светот, што го прави смисла. Па сега ајде да се вратиме на нашата код и да видиме exactly-- ох. Реков постои, што не е една работа што сакав да го направам. Сакавме да се каже не празна. И така ова треба да работат малку малку подобро, не е празен _GET_GET ["name"]. И дека кадрава голема заграда се совпаѓа со таа кадрава голема заграда. Добивме наша големи загради тука. ехо здраво _GET ["name"]. Ајде да видиме дали ова работи малку подобро. Ние сме се уште работат на нашиот сервер. Здраво Џејсон. Здраво Џејсон. И работеше тоа време. И така тоа е доказ дека ти навистина може користат големите загради кои ви знаеме и љубов во PHP код во HTML. Кодот PHP обезбедени за сте во pset 6-- pset 6-- обезбедува друг начин на тоа го прават истото. Така, сега имаме моќ. Имаме функционалност да се имплементира PHP код што сме го виделе во pset 6 од наша страна, во основа. Пред да се пресели на, она што се некои од прашања кои имате во овој момент? Да [Беззвучен]. ПУБЛИКАТА: Значи во верзијата во pset6, кога ќе го стартувате, има простор. И можам да видам каде што просторот е по запирката. [Беззвучен] почеток на отворена заграда. Како ви се приклучи на просторот во начинот на кој напиша свој кодови? Говорник: Тоа е добро прашање. И па ајде да дознаам дека надвор. Така што е навистина добро прашање и што јас не сметаат. Но, ајде да го направиме заедно. Значи прво на сите, она што Јас го правам со ехо и кога ќе се само ехо здраво, тоа излези здраво. Ако ние ехо сега ова се на посебна линија, да ги разгледаме и она што се случува. Па ние кликнете на ова. Ние си велите, Hi Џејсон. Значи, повторно, ние немаме овој простор. А тоа е затоа што, во PHP, кога ние го ехо, без разлика колку spaces-- бе, не V-- без разлика колку многу места ќе стави во here-- ако ние сега се вчита дека повторно, Здраво Џејсон. Да, да се види, и сите оние простори го изедоа нагоре. И тоа е нешто што ехото функција го прави тоа. Па да се грижи за тој простор, а тоа е една од причините Зошто не ја користите ехо и да ги користите htmlspecialchars наместо. Баш ме интересира што ќе се се случи ако ние го направи ова каде што ние ограден простор во низа. Искрено, јас не сум сигурен што ќе се случи кога ќе го направите тоа. Значи тоа е еден начин. Тоа е еден начин да се грижи за него. Ако заврши на просторот во стринг, а потоа просторот Излезот ќе биде убаво со ехо. Најбезбедно нешто да направите е да се направи htmlspecialchars. Тоа е секогаш сигурен облог. Но, сега имаме еден начин да се направи тоа со ехо ако е потребно. И на сличен начин, можеме да ехо нови линии, сите вид на работи што сте запознаени прави во PHP. Некој друг, што се повеќе прашањата што другите луѓе имаат во овој момент за PHP? Ако луѓето се појави малку доцна, Среќен сум што можам да останат по малку и да разговараат за некои од самиот почеток. И тоа е, исто така, сите livestreamed, и архивирани, кој е луд. И онака, па сега ајде да се направи некои повеќе напредни работи со PHP. И еден од најраните работи што беа воведени во Ц беше за петелки. И PHP има повеќе моќни за јамка нарекува јамка foreach. И тоа изгледа како this-- за секое празно како празно, брановидни загради, го стори нешто. Така што ова е во основа на стенографија. Види, за телефонска линија, како синтаксичката конструкција беше осмислена во Ц и во собранието јазик и работи како што. Осмислена во C, поточно, како кратенка за многу видови на јамки дека луѓето ќе ја видат. Како кога ти напиша еден циклус, таму често беше чекор на иницијализација извршена на самиот почеток, односно состојба каде јамка ќе stop-- и тоа е на функција тоа е само време јамка, или дека има точно време токму тоа feature-- и потоа чекор на incrementation на крајот. И така ќе е често се наоѓате себеси пишување код како што следува. Одам да се избришат некои од ова. Но, ако ние сме процесирањето преку знаци во низа, на пример, како ние сме доби низа на карактери. Жал ми е да се врати В. знам, што би помислиле дека се направени. Но, тоа е само за намената на учењето PHP, ветувам. Значи, ако сте ја добиле ул знак со должина 8, и нека е велат дека тоа вели Hellooo со коса за ништовни. Голем, па тоа е нашата низа. И тогаш имавме за телефонска линија. Имаме int i изнесува 0. И ние сакаме да излезете кога ул на не е еднакво на еднакви на нула, бидејќи ние излезете кога таа е еднаква за ништовни. И тогаш го правиме јас ++ во секоја точка во за телефонска линија. Прави нешто со ул на i. Значи основната формула беше, имавме оваа низа што ние сакаше да се третираат како одделни елементи. Но, она што требаше да направиме е моравме да во основа се создаде посебна цел број променлива која броеше до секој време отидовме преку телефонска линија. А потоа ние ќе мора да потоа се јавите strstr [i], кога она што навистина сакав да направам е само оди карактер по знак, нели? Ние не сакаме за зголемување на цел број, а потоа ја користат таа цел број пристап до секој знак поединечно. Ние навистина сакаме карактер по карактер. И така за секоја интелигентно пресметува дека за нас. Ако имаме низа, која можеме да се изјасни во PHP како just-- ако имаме променлива вика, ајде да го наречеме низа. Чуда на пишување не, тоа е како и секој друг променлива. Тоа е само низа. И имаме малку [Беззвучен] како 1, 2, 3, само еден вид на иницијализира низа. Тоа е во ред, тоа не му се допаѓа мојата foreach. Но, ако се всушност foreach-- Јас ја внеле дека малку погрешно. Постојат два начина да се направи foreach јамка. Има синтакса во и како синтакса. И ние ќе треба да се направи во прв синтаксата не, како и. Тоа е моја грешка. Па foreach бр во низа, ехо бр. И PHP се вика мене поради некоја причина. Дали е изнаоѓање на неочекувани во нешто, што е малку пречи. Но, ние ќе дознаам зошто тоа е во еден миг. Па не сакал тоа. Ајде да се обидете со користење на што. Тоа претпочита како синтакса е изгледа. Значи, да се направи foreach низа како бр. Па малку објаснување на она што се случи е како синтакса е saying-- и првиот, ајде да погледнеме во она што овој отпечатоци. Значи ние се отвори нашата ИРО. Одиме тука. Велиме, Здраво Џејсон. И тоа го правеше 123, кои беа на содржината на низата што ние направивме до врвот. Па нуркање во овој foreach циклусот, имаме променлива наречена низа на која е низа од три броја. И тогаш го правиме foreach низа како бр, ехо бр. И тоа е повеќе интуитивен отколку за режа. Ние велиме, лекување на секоја од она што е во низа како бр, Сакам да ми ја дадеш бр. И тоа е точно она што таа го прави. PHP е пресметување дека кога ќе се каже foreach низа, и си имаш работа со низа, што ви се случува да сакаат да iterate во текот е дека ликовите во низа, е ints во таа низа, е на елементите во таа низа. И тоа се овозможува зачувување овие променливи како бр, а потоа само излез бр веднаш, наместо велејќи: Јас имам една променлива наречена I, и тогаш сакам да излез strstr [i]. И така што ни овозможува да се направи кул работи. Како во основа ние не треба да се создаде овие променливи како што е и не сите оваа incrementation работи на крајот. PHP се грижи за сето тоа за вас. Па сега ајде да зборуваме за foreach како што се однесува до нашите _GET речникот. Па ние ќе коментираше овој брзо. Значи ние треба нашите _GET низа. Имаме оваа променлива. И тоа е се здобија некои работи во него. Токму сега, имаме само една променлива се пренесува на тоа, што е името. Но, ако ние притиснете Enter, сега можеме да имаме две променливи. Ние може да има име и возраст, на пример, ако сакаме да се возраста и, исто така, името на некое лице, чудно е доволно. Па сега _GET се случува да се биде речникот со два елементи со две клучни вредност парови. И првата key-- Одам да напишам оваа една до на табла премногу. Имаме нашето речникот е _GET. За жал, тоа е малку тешко да се види. Но внатре нашето речникот имаме име, кој се случува да биде нешто дека ние се дадени. И ќе имаме возраст, кој е, исто така, ќе биде нешто што ние се дадени. И ова е целосно на нашето речникот. Па тоа е се здобија два елементи во неа. И така, бидејќи foreach јамки се паметни, ние може да се размислува, и правилно Можеби мислите дека foreach може да iterate преку овој речникот, печатење вредностите дадени по име и возраст. Значи, да се, всушност, го прават токму тоа. Ајде да се изгради foreach јамка. И ние ќе треба да направите за да _GET како. И ние ќе треба да го направите следново. Да видиме што ќе се случи ако го напишеш само збор, а потоа велат ехо збор. Ние сме, исто така, ќе се одгласува нова линија само за да се направи тоа малку појасно, што се случува. Ќе видиме. Тоа не е ми даде било какви грешки. И ние ќе го затвори ова. На нашата веб страница, ви се случува да се прави многу од тоа во текот на pset7. Така да се каже, моето име е Сем. Мојата возраст е 45. Не е. Но тоа отпечатоци од, како што се очекуваше, Сем 45. И така ќе забележите дека она foreach јамка did-- тука, ајде да се вратиме на тоа па тоа е до на board-- добиеме _GET како збор. И имаше четири работи во _GET. Но тоа печати само две работи. foreach, што е нејзина разузнавачка себе, претпоставува дека она што навистина го сакаше беше на вредности, а не на клучеви. Но, постои начин на кој можеме да се печати од клучевите, како и, ако сакаме да. Ако сакаме да се, исто така, знаат што овие променливи се нарекува, има начин што ние да пристапите на оваа, како и. И начинот на кој да се вид на направи тоа, па може да се каже, да се навистина го подели на клучните вредност парови. Да видиме што се случува сега. Па ние имаме клучот. Имаме вредност. Имаме уште една нова линија за читливост. И ајде да видиме што ќе се случи кога ќе го направите тоа сега. Не знам колку години е Џејсон. Џејсон 15. Значи ние треба име Џејсон, 15-годишна возраст. Па ние бевме во можност да пристапите до клуч и вредност парови на овој речник само со зборовите како клучни точки да се вредност. А тоа е foreach синтаксички шеќер малку што им овозможува на овозможува да пристапите на работите во речникот. Па се надевам дека овој вид на нагласува моќта на јамка foreach. Прилично многу може да фрли нешто што iterable чини, како нешто што има повеќе елементи како низа, како dictionary-- тоа се две Примарната работи што ќе се работат со и во животот и во pset 7. Па можете да го фрли тој звук во неа, и таа ќе дознаам што сакате да се направи со неа. Тоа ќе се каже, во ред, јас ќе одам да се добие овие работи и од податоците кои беше донесен за мене. А тоа е нешто што сте ќе се користат многу во pset 7. Одам да се брза за скролување надолу само за да видам каде сум на. Дали луѓето имаат прашања во овој момент? Прашања на сите? Да? ПУБЛИКАТА: Значи, со клучот и вредност, можете да го името нешто друго и се уште ќе работи? Говорник: Упс. Леле, јас целосно се брише целата линија. Голема работа. Па, односно. Клуч и вредноста е само конвенцијата. Тоа е корисно. Ќе добиете некои дизајн поени, можеби некои стил поени за тоа го прават затоа што навистина пренесува намера. Но, ние се каже и yarp. Публика: Вие не треба да се менува ништо во HTML датотеката со цел да го прикажат тоа? Говорник: Не, воопшто. ПУБЛИКАТА: И тоа само знае дека поради еднакво поголемо than-- Говорник: Да. ПУБЛИКАТА: -Тоа показател дека that's-- Говорник: Да. Тоа е синтакса foreach, но да. ПУБЛИКАТА: Не постојат типови. Па што ако си сакал возраст да биде само голем број? Дали постои начин да го направите тоа? Говорник: Постојат начини да се провери дали варијабли се во согласност со одредени видови. Па PHP бара малку повеќе од ви, бидејќи не постојат видови во. На некој начин тоа бара помалку. На некој начин тоа бара повеќе. Затоа што ако имаш само нешто во променлива, немате идеја каков вид е тоа. Но, ако сте паметни за варијаблите дека ќе му ја додели видови и бидете сигурни дека за да се која функционира само вие return-- сакаат функции на само враќање еден тип од вредност, така што ќе може во основа Очекуваме дека ќе се вратите во променлива од функција ќе биде од типот кој мислите дека тоа ќе биде, во основа. Но, постојат некои методи со кој може да се провери. Јас не се сеќавам нив од врвот на мојата глава. Јас сум на чекање за тоа да се претвори сина. isint? isstr? Постојат методи вградена во PHP кој може провери тип на варијабли за вас. Но, ако го доделите променливи умно, не треба треба да направите дека премногу во pset 7. Но овие методи не постојат. И тоа е нешто што е во самиот јазик. И јас не се сеќавам на точната синтакса. Ние дури и да го гледам нагоре. Но, времето е на суштината. Дали некој друг да има имате било какви повеќе прашања? Да. ПУБЛИКАТА: Имам само уште еден. Така што ги спомна GET методата, но што не се спомене метод на пост. Дали ние се враќаат во тоа? Говорник: Да, ние ќе се враќаат во тоа. Тоа е токму она што го барав во мојот телефон, кој сега заспа, но јас ќе го најдете. Само што си сигурен ние хит сите PHP белешки. Да, нема дебагирање верзија. Да, имаме уште неколку работи кои сакаме да го правиме сега во овој момент. Значи станува збор за пост, кои што ги спомна, единствената разлика помеѓу GET и POST е што се сеќавам кога ние погледна на оваа адреса и видовме, ох, име е еднакво на и возраст еднаква yarp се во право во URL-то таму за нас. Пост е малку повеќе таинствени со одминување на информации. Значи, ако не сакате на корисникот да се знае, на пример, може не сакаат корисничко име и лозинка на лицето моментално најавен за да бидат прикажани во URL-то, што е разумен нешто да не сакаат во URL-то, затоа што некој може да ја видат. Ако тие водат некого на некоја страница, можете не сакаат нивните URL малтерисани таму, затоа што тоа ќе им овозможи на луѓето да се најавите само со вметнување на URL наместо на всушност пополнување на форма. Пост е малку повеќе таинствени. И единствените нешта што ние ќе треба да се промени се на овој метод, промени од се да ја објавите. А потоа и во внатрешноста на HTTP, наместо за пристап до _GET низа, ние ќе треба да пристапите на _POST низа. И ние ќе се забележи дека, ако ќе ги отвориме ова се врати повторно, Џејсон полека опаѓа со возраста. именува Џејсон, 14 годишна возраст. Ист материјал се појавува. Но ние одиме на URL и овие променливи не се таму. И начинот на кој таа функција passes-- па се сеќавам како да се погледне на изворот на една страница. Одиме на мрежата. Ние се освежи. И ова е уште една работа што Пост ќе ви даде предупредување за. Може да се види кутија, текст кутија како оваа во вашиот прелистувач. Дали сте сигурни дека сакате да испратат формулар повторно? ПОСТ е она што се испраќање на овие форми. Бидејќи во основа ако се испратени на вашата информации за кредитна картичка на некого, тоа не се случува да се појавиш во URL-то. Кој ќе биде барање пост. Па кога ќе се освежи страница, тоа е препраќање дека пост барање. Па сега ние сакаме да се прати формираат повторно, бидејќи тоа не се случува да се создаде било дупликат купувања. И ние ќе забележите дека овде на земјата, методот што го користите е пост. И тоа навистина се префрлите бајти. Ја префрли 401 од нив. Програмата е прилично мал. Но, има никаде дека ние може да се види на вредности кои ги поминаа. Веб-страници сами можат да го видат, но ние како корисници кои не се во можност да се види, освен ако не сте хакер. Ако сте добар хакер, може да се погледне. Ако знаеш основните форматот на HTML, вредностите ќе се направи се познати на страниците. Вие ќе бидете во можност да се види. Вредностите ќе биде таму, тие се само малку помалку очигледни за вас за пристап, во основа. Дали имаме било повеќе прашања во врска со ГЕТ, пост before-- она ​​што се случува следно да направи, е, всушност, се погледне во некои од кодот дека сте давање во pset 7, се зборува за како ги користи некои од овие концепти, и да се зборува за работите што ви се случува мора да се направи малку во pset 7. Други прашања пред тоа? Повеќе прашања вие момци имаат? Одлично. Добро, ајде да погледнеме малку во pset 7, без сомнение она што се сите највозбудливо. Мислам, ова е нешто што Дејвид оди преку малку. Но, ние ќе имаме три директориуми на врвот, како и конфигурациската датотека. Тоа е за бази на податоци, кои ние ќе зборуваме за во околу пет минути. Вклучува, вие никогаш не треба да се погледне во овој директориум ако не сакате да, но убаво е да се Знаеме дека постојат сите видови на помагачи. Помагачи е како корисни функции. И тогаш имаме за конфигурација, кој ги поставува некои работи до. Постојат некои функции кои CS50 има напишано дека се во помошник и прил. А некои од PHP дека веќе излегува во датотеки ќе се направи многу повеќе од еден вид тап на нога работа за вас. Како и ако одиме во јавноста login.php, што е она што се појавува во право кога одите во pset 7. Ќе видиме дека има ова бара изјава. И тој вид на како остри вклучуваат, хаштагот вклучуваат, ако сте на поновата генерација. Но ова во основа вели дека е потребен пристап на сите функции во config.php. И може да имаат потреба од за сите видови на други работи. конфиг всушност бара помагачи. Па кога ви се потребни конфигурација, ти си исто така вклучувајќи или бараат помошници, како и. Така што ви дава пристап до сите кул функции кои ние ќе треба да се користи, Работите како да ја даде. Јас сум, всушност ќе ја ублажат ова долу малку. Значи функцијата тогаш ние сме ќе одиме преку само пред да продолжат понатаму да SQL малку малку е функцијата за login.php, само поради тоа што користи некои од темите дека ние само разговаравме за во PHP. Гледаш првата работа е ако $ _SERVER. Ова е уште една глобална променлива дека сте ќе треба да се занимаваат со. Тоа е како _GET и _POST, но она што сервер содржи се ова може да ви ги споделите со знам дали методот на барање беше GET или POST. Како претходно што правиме е само во нашата код кој што напиша, бевме само менување на тоа да биде да се добие и ПОСТ зависност од она што HTML има. Но има и страници кои може да бидат пристапи со двата типа на барања. И можеби ќе сакате да се направи различни работи во зависност од видот на барањето, исто како и најава прави. За да може да се провери дали барање метод преку пристапуваат клучеви, преку користење на клучни и добивање на вредност на нешто во речникот _SERVER. Па тоа е уште една глобална променлива како _GET и _POST. Ако тоа е да се добие, ние сакаме да го направат формуларот за најава. Рендерирање е функција што во основа само го става до соодветниот HTML таг и поминува некои параметри. Овој наслов е параметар кој е се користи за приказ, чудно е доволно, наслов на страницата прашање, нешто тука, каже или здраво и во претходниот пример. Сега имаме различна работа. На друго место, ако тоа е пост, ние прават некои други работи. Ние сме со користење на тој празен метод. Тоа не е да постои, таа е празна. И видовме претходно, PHP има фер износот на гради во методите што Давид will-- ако има се методи кои се корисни за вас, тие ќе бидат предупредени за вас во прошетка низ Давид дава на почетокот преглед, и исто така корисни битови Zamyla е. Таа е назад секого. Сите можеме да се радуваме. извини е наречена функција дека само во основа отпечатоци од некои пораки за грешки, бидејќи CS50 е многу љубезни. А сега ова, ова е Слабо малку бидејќи ова е местото каде што ние сме доведување во прашање на базата на податоци. Сега ние не сме разговарале за бази на податоци. И ние ќе треба да во следните пет минути или така, максимум. Но, ова е во функција кој има напишано CS50 да се добие маса во основа од базата на податоци дека ние работиме со нив, во pset 7. Јас сум навистина лошо со мојата нула индексирање денес. Но да, тоа е 7. Па се пребарува тоа се случува да се врати низа, во основа е клучот малку. И затоа што овие работи немаат пишување, па редови е низа од низи. Бидејќи кога мислиме маса, она што се случува да се направи е, како што го научиле во psets како на играта од 15, во секој случај каде што требаше да се користи двојна низа, ние во основа има низа на други низи прави табела. И имаш редови и колони. А потоа можете да им пристапите како [0] [1], ќе го добиете [0] [1]. Основни работи како што. Значи она што го правиме овде, во оваа функција, ние бараме за базата на податоци ако корисникот тоа е обидувајќи се да се најавите, кои ќе бидат испратени преку метод на пост. Ќе видиме ние сме добивање корисничкото име од _POST. Тие ќе ги испратиле, корисникот или ти, ќе испрати вредност преку форма преку пост, бидејќи тоа е корисничко име и лозинка работи. Ние сме проверка на корисничко име да се види, дали е ова на табелата? Бидејќи ако корисникот е најавување во, а потоа нивните корисничко име треба да се чуваат во табелата на корисници кои постојат за овој сајт. Значи, во основа, ако Корисникот не е во базата на податоци, Барањето ќе се врати тој ред, што е низа. Но слабо дел е дека ако дури и ако двојна низа е само од еден ред, дури и ако тоа е еден ред array-- како да славиш basically-- ако имаш големина една низа дека во рацете држи друга низа, сте навистина се занимаваат со една колона. Но, тоа се уште се третира како двојна низа. И ова е местото каде што понекогаш може да се добие незгодно, бидејќи ние го добивме редови тука. Нашите променлива е редови. А потоа ние сме создавање нова променлива наречена ред и поставување еднаква на првиот ред на редови. И ќе забележите дека коментар вели дека тоа е првиот и единствен ред. Значи ова е незгодно делот каде што сега функционира можат да се вратат низи многу лесно. Таму не е mallocs. Вие нема да видите mallocs. Така што не ќе се види секунда грешки. Но функции се уште ќе биде донесување околу низи и податоци во групи. А вие треба да бидат внимателни на она што точно вашиот функции ќе се вратат. И дури и ако тоа е една колона, како таков, се пребарува се уште се случува да се врати двојно низа. Така да пристапите до таа column-- или да мислам на сето тоа, како превртена бидејќи ние зборуваме за реда. Но, за да пристапите дека еден ред, не може само да се каже редови. Иако тоа е еден ред, мора да се се rowsrows [0] за да се елиминира овој вид на надворешниот малку на низата и има само вашиот еден ред. Дали некои други работи. Има една функција наречен password_verify пред кој се потврдува лозинката, која е објавена. А потоа ќе видиме уште една глобална променлива тука, _SESSION. Во основа Session ID е како да ги пратите на, ако некој е логиран или не. Па сега со login.php, ние сме влезете на корисникот во. Значи она што ние сакаме да го направи е што сакаме да велат Ид е еднаква на ред проект, која само што има смисла, бидејќи секој ред ќе има поинаков проект број како дел од табелата. Ние ќе дојдеме во SQL во секунда, па ако било кој од овој изгледа малку како бла, тогаш сите ќе бидат расчистени. Но, ние ќе треба да се постави на проект еднаква на соодветна работа, влезете на корисникот во. Извини ако нешто тргне наопаку. И тоа е цел во најава живот како професор Malan би рекол. Така што беше login.php. И многу кодот PHP ти пишувам во pset 7, тие ќе бидат малку. Не заборавајте да chmod да соодветна дозвола. Таму ќе биде малку за дека во почетокот на спец. Но PHP дека сте пишување ќе биде прават работи кои се слични на ова. Си оди за да биде пристап до некои работи кои се што ви е дадена во глобални променливи на PHP кои се занимаваат со тековната логиран на корисникот, без разлика дали има се барања испратени на овој страница, различни работи како што. И тоа, исто така, ќе биде потенцијално процесирањето преку редовите на оваа работа. Во различна функција, барање се врати оваа двојна низа. И ако има повеќе од една редови во тоа, ако има are-- да, ако има се повеќе од еден редови во тоа, тогаш тоа ќе биде на маса. И можеби ќе сакате да iterate меѓу редовите од оваа низа користите јамка foreach кои ги опиша. Значи, ако правиш foreach на двоен низа, што ќе word-- тука, Јас, всушност, ќе го напише. Јас ќе го напишам брз тука. Ако имаме foreach на редови како што е ред, што е од типот на ред? Дали некој знае? Ти ја доби? Па редови е двојна низа. Значи она што се случува да заклучиме foreach што го сакаме од ова двојно низа ако ние сме процесирањето над неа? Ние во основа може да се претпостави дека тоа се случува да биде или елементи, или редови или колони, во основа. И така на редови и колони ние може да се третираат како едно исто. Во основа она што се случува со јамка foreach да се направи е тоа се случува да се врати редови. ред ќе биде од типот ред, со оглед на редови е двојна низа. Значи, ако ви даде foreach двојна низа, тоа е нема да iterate длабоко повеќе од едно ниво. Кој во основа е да се каже, ако има осум клетки во оваа table-- 1,2, 3 4, 5, 6, 7, 8-- на foreach циклусот не е случува да поминат низ секоја од овие клетки. Она што ќе го направи јамка foreach беше дека ќе одат преку овој ред, ви даде целиот овој спор. И тогаш тоа ќе оди преку тој ред. Па тоа само iterates едно ниво длабоки. Ако додадете вгнезден foreach јамка, тогаш може да се третираат секој ред се врати од редови, нели foreach ред како елемент, да речеме. А потоа можете да ги повториме елемент. Значи тоа е краток малку бакшиш за тоа како Можете да користите foreach јамки во контекст на барањето. Дали постојат било какви прашања во врска со PHP? Ништо на сите, пред да се движат за да се зборува за SQL и на забавата на база на податоци? Се чувствувам добро? Се чувствувам добро. Во ред. Ајде да се движи назад во PowerPoint, која, најверојатно, ќе го пропушти. SQL, Yay. Луѓе кои се тука ми обично ќе знаете дека подброеви на акроними се секогаш само првите зборови Мислам дека на тој натпревар, кој algorithm-- тој акроним. Тоа не е алгоритам. Па SQL е база на податоци. Тоа е јазик кој работи со бази на податоци. И сите бази на податоци се е маси, барем во начинот на дека SQL ги претставува. Друг начин да се размислува за базите на податоци е бази на податоци се збир на клучеви и вредности основа. Можете да размислувате за базата на податоци што се речник и, исто така, како табела. Во суштина тоа е начин да се дружат различни податоци со други податоци, често преку редови и колони. И тоа е начинот на тоа е SQL работи најдобро. Така што ова е само еден пример на табела. Имам неколку примери за тоа луѓе во мојот дел, кој Немав време за промена. Но, ние мора нешта како проект, име, суперсила, а роден град. Не знам каде што секој е во дел од мојата, па јас сум само ќе ги преземе сите се од Њујорк Градот, бидејќи имам високо статистички Веројатноста за да биде точна. SQL автоматски ќе се грижа на колоната за проект за вас. Ако вметнете нов ред во SQL база на податоци, тоа ќе прираст дека ID број и само во основа се држи како пет имиња, суперсила, родниот град, кој и кон крајот на таа маса. Па проект е колона ќе никогаш не треба да се грижите. Но, како и во случај на login.php, кога ќе беа добивање проект седницата од табелата и само со користење на проект, Проект е начин да се идентификуваат уникатно елемент на база на податоци. Значи, ако имавме две Sams, двата кој предава CS50, и двете од кои беа од Милвоки, тие би уште имаат различни идентификациски броеви и со тоа да бидат различни во контекст на табелата. Значи ова е она што се занимаваат SQL со, во кои работат со нив, во задниот крај. Сега овие се четирите команди дека ќе треба да се работи со SQL. И јас ги сите фрли на еден слајд. Но, ние ќе треба да поминат низ сите нив поединечно. Првата команда е ажурирање, што го прави она што би очекувале. Велат дека имате некои податоци во масата која е надвор од датум. Како ако сте чување песна на имињата на луѓето и возрасти, ако некој е зголемување на возраста, а потоа ви се случува да сакаат да одат во и обновете возраст само на тоа лице. За пример, која работи со нашата прва table-- не се грижи за сите на пишување овие команди во исто време. Но, ако имаш ажурирање надолу, дека ќе биде добро за овој дел, затоа што ние ќе треба да да се вратиме на маса. Значи, ако ние се вратиме на маса, да речеме нешто што се случило беше имаше земјотрес или грешка линија која директно се подели низ градот Њујорк. И сакавме да се ажурираат секој кој живеел во Њујорк. Сите тие мораа да се преселат во Пенсилванија. Тоа не е роден град. Сите тие мораа да се преселат во Њу Хејвен. Таму ќе одиме. Па секој во Њујорк се движи кон Њу Хејвен. И така тоа е нешто што е уредување на три реда во оваа табела. Но, во SQL, можете да направите дека во само една изјава. Значи ние се вратиме на ажурирање. Дозволете ми да брзо се избрише овој форум повторно. Кога зборуваме за ажурирање, постојат неколку делови на синтаксата што се клучни. Па, сите на синтаксата е клучот. Но работи во зелено е задолжително. Потребни се бели, како предефинирани имиња. И светло сина, се работи кои варираат во зависност од масата. Значи тоа е она што се случува со шема на бои тука, таму горе. Значи, ако сакаме да се ажурира само оние редови на луѓето кои живеат во Њујорк, така што ќе правиме ако се рече ажурирање? Така маса е местото каде што ќе стави името на нашата маса. Да речеме името на нашата маса е масата еден. Значи, ние сакаме да се ажурира табела еден. И ние сакаме да set-- она што сакаме да го поставите? И ние сакаме да се каже, па column-- PHP третира редови како единствени идентификатори. А потоа и колони се различни области на оние елементи на базата на податоци. Па на првиот елемент на базата на податоци има име на Сем, суперсила на CS50, и родниот град на Милвоки. Па ако се рече постави, да ги погледнеме повторно ги параметрите што сет зема. Имаме колона еднаква вредност. Значи, ние сакаме да се каже некои column-- што се сеќавам е field-- сакаме да ја видите поле еднакво на нешто ново. Значи, ако ние само рече ажурирање Табела 1, во собата име еднаков Елиот. Добијат некои луѓе од нов оддел за ова. Но, ако ние само го направи ажурирање табела 1 наместите името еднаков Елиот, што би изгледот табела како после тоа? Луѓето имаат било каква идеја? Је. ПУБЛИКАТА: Сè што во тој ред ќе стане Елиот. Говорник: Се во кој ред? ПУБЛИКАТА: Во првиот ред. Говорник: Во првиот ред? Зошто првиот ред? Јас не значи да ги собереш на вас. ПУБЛИКАТА: Можеби се ' во целата маса? Говорник: Се што е во целата маса, да. И тоа е точно во право because-- јас беше само да ви помогнеме надвор малку there-- бидејќи ние испуштени опционални КАДЕ клаузула. Ако немате КАДЕ клаузула, што ќе направи оваа команда е дека ќе работат со секој еден ред во табелата. Името на секого ќе стане Елиот, во основа, кој Елиот е многу среќен за него. Или Yanni, една од двете. Но името на секого ќе се промени. Па начинот на кој ние ги користиме на КАДЕ clause-- и ова се однесува на сите случаи каде кои се во секоја од овие различни нешта. Така ќе забележите дека СЕТ има колона со еднаква вредност. И така и каде. Но, тоа се различни видови на извештаи. Па колоната еднаква вредност во уредот е задача. Како што ние велиме ние сакаме да го поставите името еднаква на Елиот. Но во клаузулите КАДЕ, овие се изјавите еднаквост. Па да речеме сакавме само да се промена на името на лицето за да Елиот ако нивното име е Рајан, да речеме. Значи, кога ќе се каже КАДЕ име е еднаква на Рајан, кој би успешно само промена само name-- што би сменете го името во редови каде името поле е еднакво на Рајан. Значи, ако ние имавме повеќе луѓе име Рајан, сите на нивните имиња ќе се промени до Елиот. Ова е слично на примерот ако на грешка линија дели Њујорк и секој мора да се пресели во Њу Хевн, начинот на кој што можеме направи тоа во еден изјавата е Ажурирање Табела 1 СЕТ роден град = Њу Хејвн каде што е еднакво на родниот град Њу Јорк. Ова е моќта на изјавата Ажурирање. Ние може да изберете било кој број на редови преку вистински извештаи во врска со областите во тие редови. Не можеме да кажеме Ажурирање Табела 1 сет име = Елиот КАДЕ ред = 1, освен што можеме, ако кажеме проект = 1. Па ние ќе треба да биде работа со еднаквост на области, еднаквост на колони. Но со користење на полето за проект е начин да се изберете специјално индивидуалните редови, бидејќи полето за проект е единствен идентификатор во SQL база на податоци. Па како и ажурирање на ред еден, проект е еднакво на 1. Ажурирање ред два, само промени тоа ID број. Но моќта на КАДЕ изјава е дека ние може да го ажурира работи врз основа на она што нивните моменталните вредности на одредени работи се. Да Елиот? ПУБЛИКАТА: А што ако сакате to-- повторно, ова е друго прашање. Но, моето прво прашање беше, каде што се случува ова? Каде сум јас ажурирање на оваа? Дали е ова во кодот PHP? Говорник: Каде ви ажурирање, да. Ние се случува да се зборува за тоа каде сето ова случува вид еднаш одиме низ сите команди. Но, она што треба да се знам за сега е во основа дека вашиот SQL база на податоци постои како нешто да се пристапи од страна на барањето функција, која CS50 дефинира. Значи, ако имате потреба при користење на функцијата за пребарување, можете да пристапите на оваа табела. Така ќе биде испраќање на овие команди за вашата маса во PHP датотеки преку функцијата за пребарување. Исто така можете да се позанимавам со вашата маса директно. И тоа е најдобар начин да се тестирање на овие видови на команди. И ние ќе одиме преку како точно да го сторат тоа во само малку. Значи тоа е Ажурирање команда. А остатокот на командите се ќе биде во вид на слични, кои работат на слични работи. На поставување во е веројатно најмногу се разликува од Ажурирање. Одам да го оставиме тоа до таму за само малку и да работат овде. Па вметнете во, ќе видите таа маса се уште е иста. Што сакате да го вметнете во. Капитализација, SQL е случај нечувствително. Значи, вие не мора да го профитираат овие работи. По договор, зборовите во бело се капитализираат. Но јас исто така ги боја кодирани. Единствената причина што ќе профитираат оние кога ќе си ги пишувате е само да се нагласи дека тие се константи. И така можете да ја погледнете капитализација или фактот што сум ги боја поинаку. Значи имаме поставување во, ајде да го направите Табела 1 повторно. Ова е за сите во една линија. Јас сум само се дели со различни искази. Па не се грижи за тоа дека Табела 1 стигна кон втората линија. Значи, ние сакаме да го вметнете Во Табела 1 некои вредности. И ќе забележите на опционален малку, што Јас ќе добиете за во една секунда. Значи имаме вредности. Па да речеме ние сакаме да додадете Andi на нашата маса, затоа што ние го пропушти Анди. Анди е болен. Па ајде да додадете Andi до нашата маса. Се сеќавам дека бројот проект автоматски се ажурира. Така што само ние полиња треба да се грижите се име, суперсила, а роден град. Така и на начинот на кој тоа го правиме, гледа во нашата синтакса, е ние сме само што влегов во загради, со запирка одделени вредности, од кои секоја е вредност. Значи, ако сакаме да се вметне во нашата Анди маса, сите ние треба да направите е во право Анди. Што е суперсила Анди е, луѓе во делот Анди е? Таа како лет или допаѓа брзина, или нешто слично. Што ние веќе имаат таму горе? Имаме CS50, лет, брзина и сила. ПУБЛИКАТА: патување низ времето. Говорник: патување низ времето, неверојатно. Значи имаме Анди, време патување, и нејзиниот роден град. Тоа е навистина добро прашање. Њујорк, освен ако некој не знае. Сите се од Њујорк е Лекцијата да го одземе од денес. Па оваа изјава би внесете, како петти по ред, со патување низ времето суперсила и родниот град на Њу Јорк. Но поле опционалните во основа е начин да се определи точно кои фотографите сакате да го вметнете во работите. На начинот на кој ние сме го прави сега, Анди, времето на патување, Њујорк, се случува во точната цел на нашите table-- име, суперсила, родниот град. И ако се сака да се направи нешто друго од тоа, како велат дека не сте знаеле нечија суперсила, како тоа, како јас не знаев Анди е суперсила на почетокот. Па сè што знаев беше нејзиниот именува и нејзиниот роден град. Она што може да направите е да можев do-- Јас ќе ги избрише тоа брзо. Сакам само да се ажурира на колони. И ова е местото каде што на опционален листа колона стапува на сцена. Јас само сакам да го ажурирате името и роден град. А потоа јас ќе кажам вредности. Ќе се направи Анди и Њу Јорк. Ако јас го испушташе листа на колони и само да се направи овие две работи, каде би Њујорк се качил? Која колона би Њујорк Градот се поставени? Луѓето имаат било каква идеја? Суперсила, точно. Па ова само ќе одат во ред. И кога ќе го достигне крајот на листа, едноставно ќе престане да работи во пополнување. И вредностите кои тој ќе се држи во сите колони само ќе бидат ништовни. Па затоа што е наведено име и роден град, ние ќе треба да имаат проект 5, именува Анди, суперсила NULL. Па суперсила е деиницијализира вредност. Вие нема да мора да се добие исто Valgrind грешки ако се обидете и пристап до неа. Сè ќе биде убаво zeroed надвор, бидејќи NULL е вредност во SQL. Која е константа. Родниот град, а потоа ќе биде во Њујорк. Значи тоа е поставување во команда. Пред да се движи, има уште две команди. Дали луѓето се имате било какви прашања во врска со Ажурирање, за поставување во, за SQL генерално, пред да продолжат кон нашата крајна битови? Луѓето да се чувствуваат добро, одлично. Го сакам. Па ајде да зборуваме за одбереш. Ќе ров Ажурирање овде. И изберете се случува да биде многу слична. Целта на SELECT, Избери цел во животот е да ви даде еден куп на колони кои ги исполнуваат одредени услови. И кога велам задоволи одредени услови, вашиот ум може веднаш се врати во тоа КАДЕ клаузула што се појавуваше на Ажурирање. И дека оваа клаузула е токму таму во одбереш. Ако ние не се стави на КАДЕ клаузула и велиме Изберете име, hometown-- напишано дека малку wrong-- име, роден град од Табела 1. Ако само да се каже дека, она SELECT ќе ни даде е дека тоа е ќе ни даде double-- маса, наместо. А двојно низа, ако ние сме размислување за во PHP сетила. Но, тоа е само ќе ни даде двојна низа на две columns-- име, и роден град. И тоа ќе ги игнорира проект. И тоа ќе ги игнорира суперсила. И тоа само ќе ни даде секој еден ред на табелата. Значи, ако ние само се вметнуваат Andi, ќе имаме Анди. И ќе имаме оригиналната четири. Ако тие биле ажурирани, што ќе да се гледа, и така натаму, и така натаму. Значи ова е затоа што ние не користете КАДЕ клаузула. Но можеме да го употребиме во точно ист начин како што го користи во Ажурирање. Ако само сакате табела на имињата и супер моќи на луѓето кои живеат во Њујорк, ние може да се изврши изјава како Изберете име, superpower-- Јас сум само ќе го напуштите that-- ОД Табела 1 КАДЕ роден град = Њујорк. Значи ова оди да се покаже дека може да се се сосема различни колони, и потоа го ставаат колумни дека не сте дури и добивање назад во КАДЕ клаузула. Ние дури и не сакаат родниот град на секого. Но, ние сакаме името и суперсила на луѓе чии роден град е градот Њујорк. Па тоа е нешто што може да се направи со КАДЕ клаузула е што може да се справи со колони дека ние не мора да сакаат назад. На ист начин во ажурирање, можеме да се справиме со колони дека ние не мора да сакате да ја ажурирате. Ние може да се ажурира на Град на секого кој е име е Сем, на пример. Ние може да се ажурира на градот сите чии ID број е 2. Па само да се ажурира Градот на вториот ред каде што ние не треба да се справи со потребно вообичаеното прашање. И да го избришете е, како што би Очекуваме, Избриши од Табела 1. И тогаш имаме друг КАДЕ клаузула. Значи можеме да кажеме КАДЕ ID = 1. Избришете првиот ред. И да го избришете секогаш ќе ги избрише по ред, или тоа ќе се избришат некои бројот на редови. Избриши од табелата, каде што роден град = Њујорк ќе ги избрише сите во Њујорк. Тоа е, ако имаше ненадеен трагичен чума и само сакав да го отстраните сите од табелата кој живееле во еден град која беше погодена од чума. Тие може да почива во мир. Овие се четирите SQL команди кои ќе треба да се користи. Вие дури и не би можеле да треба да ги користат сите. Но овие се четирите дека ќе очекува CS50 да се биде удобно со одење во двете квиз 1, а исто така и pset7 pset8. Има само таа маса повторно. Во овој, суперсила Рој има е надграден за ласерски зраци, кои е пример јас не го користам. Не знам кој Рој сака, но силата. Рој суперсила на сила. Кетрин не го направите денес. Тоа е жално. Но, таа има супер брзина. Па тоа беше PHP. Пред да зборуваме за MVC, дали некој има прашања во врска со PHP? Сега SQL, или PHP ако одеднаш имаат излезе со прашање за PHP? Одлично. Добро, ние сме сите во собата тогаш. Значи зборуваме малку за модел погледнете контролори, ајде да се вратиме на некои на работи во pset7. Значи она што модел погледнете контролор is-- не сум ќе се спаси промени мојот да се најавите бидејќи јас целосно го заклани. Но во основа имаме два одделни работи се случува. Имаме јавна директориумот кој ги содржи го кодот што се случува да биде погубен и на веб страници, кои ќе бидат посетени. И ние исто така ја имаат оваа ставови директориум. И ставовите содржи шаблони. Тоа е она што на функцијата render-- видовме малтерот функција во еден куп на кодот на PHP дека CS50 веќе го напишал за вас, кој ги зема во одредени параметри. Она што го прави број е што тоа се случува во погледи, кои се поставува на како prewritten HTML код, и тоа е внесување вредности во одредени места. Ова е како кога ќе се одат во CS50 финансии, истата Насловна е на секоја страница. Исто подножјето е на секоја страница. Тоа е затоа што на патот кои го прават работите е тоа ќе автоматски да се закрпи во таа глава и гледачот кој можете да ги најдете во пати. Ние всушност може да оди во глава, и Види, тоа е една HTML датотека со главата. Тоа е се здобија некои адаптери. Вие не треба да се погледне во CSS за pset7, ако не сакаат да. Но, можете да ги менувате нив, ако сакате, да направат вашите финансии се погледне малку различни. Тоа е се здобија некои PHP во насловот е малку за да ја видите ако има некој друг наслов тоа треба да се стави во оваа глава. Но само некои други писма, и врски, и други работи. Глава завршува, телото почнува, и Упс, имаме овој чуден малку крајот малку. И таму е div, исто како и на неопределен вид на елемент дека има идеја за средината. А потоа кога ќе видиме подножјето, ние имаат на крајот на една div. Имаме дното кое е каде што текстот е на подножјето. Крајот на div, крајот на телото, крајот на HTML. Значи она што го направи е прави се направи е вид на амандман до глава, односно различни PHP фајл кој ќе ги содржи вистинските работи кои ќе видите како вашиот маса на акции ако сте за купување или продавање акции. И тогаш тоа ќе го додадете во подножјето. И преглед на модел Идејата е дека ние контролер сакаат да се одделат како работите изгледаат од кодот. Тоа е ние сакаме да се разделиме интерфејс и заднинската, каде што на страниците е работи што корисникот го гледа, убаво visuals-- HTML, CSS, работи како што, слики, итн. И позадински е PHP. Ова е кодот што ќе пишувам. Ова е местото каде што тоа е во кодот прави вистински операции. Ова е кога ќе сме додавање залихи на вашата маса, кога сте за купување и продажба, тоа е задниот крај. И ние може да, како што видовме, вклучувајќи PHP директно во HTML. Така што би можеле да имаат направено за Оваа задача е само имаше HTML датотека за секоја страница, како најава. А потоа на таа страница, само имаше огромен блок на PHP код, вклучувајќи ги и сите на кодот кој таа страница конкретно ќе треба. И тогаш ние би можеле да имаат направиле тоа за портфолио. Ние би можеле да имаат направено сите на купување и продажба во рамките на одделни страници. Туку затоа што ние сме рендерирање одделно од каде пишуваме заднинската код, ние лесно може да промени начинот на кој работите изгледаат без менување на секоја датотека. Ние се прават работите, како само додадете нова div до дното of-- Здраво Јас модифицирани подножјето. Вие само може да се направи такви работи. Но, исто така, може да се промени целиот визуелен слој без да влијае на она што е случува во заднинскиот систем. И можете да го промените целата бекендот и уште мора да изгледа исто како што беше порано. Ова Е идејата на модел погледнете контролорот. А тоа е всушност наметнато парадигма во некои од програмските јазици можеби ќе сакате да го користите за конечниот проекти. Ако го направите развој iOS, тие ставови, што е она што го гледате на iPhone, и тогаш заднинската како што е како посебна работа. Можете да размислувате за малку. Има многу на бинарни датотеки во компјутерски науки, што е смешно, бидејќи се што е во бинарна. Јас не планираат тоа. Тоа беше игра на зборови ненамерни. Да, игра на зборови не се наменети. Но, како и .h .C фајлови и датотеки, има многу одвојување на нештата што ги може да не се потребни. Па ние само може да го уредувате ч датотеки, или некој што само може да се види .h датотека и знаат токму на функции кои се во .C фајлови без да мора да се знае нивното спроведување. Оваа идеја за одвојување на компонентите кои зависат едни од други но може да се вид на пристап до едни со други преку различни канали, минувајќи на променливи, само вклучуваат извештаи, работите како што, овој принцип помага да се создаде апликации кои можат да бидат полесно изменето од страна на повеќе лица, може полесно да се промени или модифицирани на големи размери, и полесно се debug во голем број на начини. Навистина брзо, имам неколку совети за pset7, кој јас ќе се направи на цел екран, па вие не само гледајќи во the-- врвот врвот tippee. Таму не се толку многу совети. Но, јас спомнав PHP е тешко да се debug. Двокреветни и трокреветни го проверам. Ако вашиот код едноставно не е прикажани на оваа страница, тоа е веројатно е грешка PHP, жалам. Вие никогаш не треба да се погледне CSS, ако не сакаат да. Но, штом еднаш ќе завршиш, тоа може да биде малку забавно нешто добро да се оди само во и хаос со параметри CSS. CSS и HTML се пример за модел Поглед стил контролер нешто премногу, нели? Вие би можеле да имаат стил тагови внатрешноста на HTML елементи. Но, ако сте еден вид на да ги изнесува до CSS, тие полесно да се уреди, и да игра околу со тоа, и да се забавуваат со. Третираат CS50 помошник функционира како црните кутии. Вие не треба да се знае точно што го направи го прави, но верувам да секогаш го правам во право работа во зависност од она што го давате, вакви работи. И Јас ќе им препорачаат гледање на Давид можи, минува низ сите работи, а не само todos, но навистина може да се третираат овие како црните кутии. Не одат во овие функции во потрага за бубачки. И добредојде на враќање од нашите доминирам Zamyla. Одлично. Дали постојат било какви прашања пред финалето ние вид на отскокнување за ден? Уште ме во живо? Одлично. Здраво livestream луѓе. Одлично. Постојат повеќе прашања? Не? А мислам дека и ние сме добро да се оди за денес. Јас ќе се држи околу малку потоа ако луѓето имале прашања тие се плашеле да прашате на потокот. Но во спротивно, имаат добар ден.