Сам ЛЕВАТИЦХ: Добродошли у секција за ову недељу. Ја нисам Анди. Анди го оболела овај дан, а ја су некако зове у последњем минуту да преузме. То је грип сезоне, тако проверите да ли сте Не дрогирају се, прањем руку, и здраве исхране, тако да ви, такође, нису непокретна. Али, без даљег АДО, хајде да почнемо. Данас, идемо да разговарамо о ПХП мало бит-- како ПХП односи на ХТМЛ, како је односи се на ЦСС, а неки од веб ствари сте радили последњег преноса. Ми ћемо причати мало о СКЛ и како можете да радите са базама података, што је прилично кључна компонента П сет 8-- н сет 7. Н сет 7. А онда ћемо мало да разговарамо мало о томе како виев контролери раде и зашто је то филозофија иза неких модерни веб странице и другачији дизајн. Прилично много типова апликација и апликације можете схип користе овај модел, Поглед контролер оквир, да ћете бити користећи у П сет 7, па ћу мало поразговарамо о томе зашто је постало популаран, зашто је то важно и лепо. А онда сам коначно ћу прећи на неки савјети решавању П сет 7. И ако имамо времена преостао на крају, ми заправо могу да направе раде на томе заједно. Дакле, ПХП. У ствари, можда сте приметили ово-- ниси стварно треба да зарони у тога-- али н сет 6 имао неку ПХП код које се дешава. И зато што ПХП је Ц-лике језика, ПХП, за разлику од ХТМЛ и ЦСС, је програмски језик, док ХТМЛ и ЦСС су статични. Они су језици означавања које се баве са стилом и визуелног изгледа. ПХП је права ствар. ПХП има петљи, има цондитионс-- све те ствари то је забавно о Ц Она има неколико ствари које су мало Мало боље од Ц, која ћемо видети, али мислим да је најлакши начин да се разговара о ПХП је само да у роне. Зато ћу ићи у реду у ИДЕ у овом тренутку. Прва ствар коју ћемо да урадите је да заправо изгледају мало неке од ПХП код који је био у П сет 6. Дакле, начин на који радимо то-- пре, на начин на који смо трчали сервер за апарат је да ћемо морати да тип-- или користите примену или имплементације особља од сервер.ц тако што ћете отићи у директоријум и ради сервер.ц са било без аргументс-- зато га зову на локални домаћин, а то је оно вероватно да ли већина времена-- готово а затим га храни дирецтори-- са којима се користи као корену где је сајт би управљати, у основи. Ове недеље за П сет 7, као велики као наш код за сервер.ц је, постоје људи који су већ писани ове фине ствари тамо код ЦС50 који имају мало више функционалности, сервер програм који је способан суочавања са мало више истанчаности које ћемо види иу П сет 7 и П сет 8. И начин на који сте покренути сервер је тако да откуцате "апацхе50." И пре него што било шта урадите, желите да се уверите да је Апацхе 50 није већ ради као што је на мојој машини, што сам и урадио да га тестирамо. И ви то позивом апацхе50. Стани, и видећете да је заустављање веб сервер, ако можеш ли погледати при дну прозор терминала. И онда само за почетак, ми смо ће звати "апацхе50 старт." И онда идемо да га нахрани директоријум. Сада, јер желимо да погледамо неке од П сет 6 код да смо спроводи, заправо копирати мало о П сет 6 код у свом фолдер, што можете видети на левој тамо. Зове се "Сецтион8" у свим великим словима јер сам тако узбуђена да се уживо емитују-данас. Дакле, ако останемо ово би требало сви раде прилично ефикасно. Каже, у реду, наш сајт је сада доступан на адреси ИДЕ, у основи, то је оно што сте користили баш као што је то било у н сет 7-- н сет 6. Сви моји индекси су један показатељ данас. Дакле, можемо да да адреса, ако се сећате, једноставним притиском ова мала дугме у горњем десном углу. А ви се сећате овог законика, који догодило када сте отишли ​​у хелло.пхп. А шта код је дизајниран да урадите је када сте укуцали у имену овдје-- ако кажеш Сам јер то је мој име-- и кликнем саи хелло, када смо отишли ​​на следећу страницу, то име је требало да буде приказан. То би рекао, "Здраво, Сем" или "Здраво," шта год вам име стави у њега, иако смо на потпуно нови веб страници. И то је једна од ствари да ПХП може да уради за вас. ПХП је могао да прође података између два веб страницама. Ово је потпуно другачије страна. Видећете наслов је "здраво" овде. Заправо, они имају исти наслов, али ја обећавају се разликују веб страница ако погледамо на извору. И ви можете проћи податке који је ушао у овој области текста, га достави следећи страница која се зову горе, и онда да су подаци у стању да бити тамо у свом садашњем облику. Сада још нисмо имплементиран ово сами, који је оно што ћемо да урадимо одмах да Сорт добили укус за то како ПХП функционише, али је кључна идеја је да ПХП-- можете некако мислим о томе као функцију. Нешто што пхп могу да те пустим не да ли је узети параметре може да унесете у ХТМЛ страницу кроз употребу ПХП и форме, а да протурис као параметре на следећој страници да се учитава горе. У овом случају, ми смо пунити ово страница са дугметом "Саи Хелло". Али за сада, ја стварно брише неке од тог кода у хелло.пхп да је се ради да је заправо приказује "Хелло, свет "или" Здраво, Сем ", или "здраво", све што је само улаз. Дакле, за сада, ми смо то да уради, у суштини. Ми ћемо поново да и Такође додати мало више функционалности, урадите мало више са њим, види оно ПХП је стварно способан. Дакле, прво, хајде да разговарамо о овај фајл, хелло.пхп. Дакле, ако смо зум у Мало бит-- и сада сам некако покушавају да померите све начин ароунд-- тамо идемо. Видећете да се зове хелло.пхп, али синтакса о томе Изгледа као ХТМЛ датотеку. То је зато што стварна ПХП-у овом фајлу је све заглави између њих Куестион Марк-Царет блокова. Све овде Сматра ПХП код. И ви ћете приметити да када сам коментар, видећете познати два напред косе црте. А ако се сећате, у ХТМЛ ако куцам коментар, то изгледа нешто ближе ово, што је коментар у ХТМЛ. Дакле, заиста све од ова два угла заграда сада је ПХП код, који огледа се у чињеници да овај мали симбол коментар је претворен у коментару. Дакле, сваки пут када пишете ПХП код, чак и Ако нема ХТМЛ код ван ње, то ће увек бити затворени у овим угластим заградама са упитницима. Можете некако мислим о томе како све тога-- кода који је водио у својим програмима Ц био ограђен у маин, празнине, коврџава Браце, крај коврџава заграда изјава. И видећете витичасте у ПХП такође, али ово је некако Као основни метод ПХП. Па сад, како радимо нешто у ПХП? Сада, ПХП је програмски језик који је врло Ц као, али ради на Интернету. Дакле, једна ствар која ћете иммедиатели-- један од првих ствари које заиста са Ц је ли штампана ствар, зар не? Тако смо у Ц урадили са принтф функцијом. Ми му дали низ, вероватно са новом линијом, и онда престаје то са зарезом. Дакле, начин на који ћемо то урадити у ПХП-- јер није баш иф. То је мало другачији синтаксе. Начин на који смо штампање ствари у ПХП је кажемо, "ехо здраво" или "ецхо" било коју реч. И то има ефекат ради иф низом "Здраво." И додаје нову линију на њега. Па хајде сада да суре-- Ја ћу зоом оут опет мало бит-- хајде да се уверите да да код ради јер веома можда добро да је буг у овом коду да ћемо морати да реши проблем. Дакле, сервер је већ покренут. Дакле, ако идите доле до дна, Да, сервер још увек ради. Дакле, ако смо додирните о томе мало десно овде- велцоме-- би требало да добијам-- сјајно. Још увек се која имају упознати "Поздрави" дијалог, али када куцам у "здраво", видећемо да је текст "здраво" је заиста одштампан, што је исто као смо очекивали јер одјекују у ПХП је баш као принтф. Вратимо се у коду, како у П сет 6 урадили код дистрибуције сте добили успети да би ПХП- излаз ствар која вас укуцани на претходни екран? И на неки начин испитати зашто се то деси, ми смо отићи у индек.хтмл, која је оригинални фајл, фајл који појави на овом екрану са тастером "Саи Хелло". Ви приметили да постоји све класичне ствари Дошли смо да очекујемо од таквог ХТМЛ као ових ствари, ове ознаке у прилогу у угластим заградама, као ПХП али без знакова питања, што указује на посебан ствар у ХТМЛ. Имамо титулу, што је "здраво". И ви ћете приметити да као што смо видели, наслов је "здраво" у оба случаја. Хајде да променимо ово "рећи" само да бисмо могу се разликовати где смо. Али, имамо тело. А онда је занимљиво мало је Мало да се појављује у ХТМЛ, је облик елемента. И тако имамо форму. И то је кључ. Овако радимо са ПХП. Акција параметар облик каже да хелло.пхп је оно што ћемо послати вредности у овој форми. Ово је место где смо пролазу параметри, да тако кажем. Приметићете овде једну ствар је да је метод "гет". Постоје два основна Методе којима ће бити користећи ПХП да прође податке између вебситес-- веб страницама, ратхер-- у овом задатку. И те методе су "гет" и "пост". Постоје неке суптилне разлике између добити и пост да ћемо добити инто-- смо ће "добити" у, ако хоћете. Али, за све намере и сврхе, гет и пост су оба само начини на које прођете параметре са мало различитим погубљења. За сада, идемо да користе добити, јер да је оно што је првобитно коришћен у ПХП досијеу П сет 6. И заиста, ако одемо у и погледај пре него што смо едитед ништа друго, Ја ћу поздравити да-- Како се зовеш? ПУБЛИКА: Елиот. Сам ЛЕВАТИЦХ: О, Боже. Ја не знам како се пише то. Да ли то пише за мене? ПУБЛИКА: е-Л-л-ја-о-Т. Сам ЛЕВАТИЦХ: Ја-о-Т? ПУБЛИКА: Да. Сам ЛЕВАТИЦХ: Савршено. ОК. Претпостављам да сам знао како се пише то. Жао ми је због тога. Али, ако кажемо "Поздравите", није то неће да се појави на екрану ипак јер смо модификовани код мало. Али ако ми не "Поздрави" - У реду, тако да је "здраво" овде. Али ако га мало боље погледај самом УРЛ, видећемо да се завршава са хелло.пхп? име = Елиот. Дакле, ово је начин комуницира на следећу веб страницу параметри које смо пролазили. Ми смо рекли име = Елиот. И то је на крају како н сет 6 приступити променљиву која смо прошли у кроз форму. И то је нешто што је својствена А Гет захтев. А Гет Захтев чини параметре познат у УРЛ веб сајта. А што се сећате, такође, у П сет 6 јеси ли то ти морао сам да напишем неку функцију који се бавио чињеницом да овај стринг упита могла да постоји након фајл. Може постојати знак питања следи од основи било који број карактера. А то је управо оно што се овде дешава. А разлог сте морали да анализирам да у својој реализацији сервер.ц у П сет 6 је тако да се могао рећи код ПХП да наме = Еллиот. Ви требало да буде у стању да парсе да је од УРЛ тако да ПХП фајл у питању знао шта је у питању. Дакле, надамо се ово даје мотивација да сервер.ц Сада да идемо на изван Ц у ПХП. Дакле, хајде да заиста фокусирати о приступању кроз гет захтев ствари прошло сада у овом тренутку. Идем да би сачували. Нисмо ништа променити. Изгледа да имамо поље за унос. Ми смо постављање неке особине, као што можемо да урадимо ХТМЛ. То су једноставне ствари. Не треба нам то. Али имамо аутоцомплете се, што у основи рекао-- знате, када куцате ствари у вебу, понекад покушава да попуни то за вас. Дакле, то је добра ствар. Желимо да га искључите за ту сврху. То је био ЦС50 одлука. Дакле, можемо избрисати ако смо хтели. Аутофокус само стицкс курсор у облику одмах на почетку. Опет, не превише важно. Али наме = "име" - то је мало незгодно јер је име и презиме. Али могли смо променили то нешто друго. И у ствари, то је шта ћемо урадити одмах. Ми ћемо рећи "лице", који је нешто као назив ако особа се дефинише њихово име. Дакле, хајде да затворим ово, поново наш сајт јер наш сервер и даље ради Апацхе 50, а ми ћемо рећи, здраво, овде је Елиот поново. Што да не? Zdravo. А ако идемо овде, видећемо онда уместо наме = Елиот, каже особи = Еллиот. А то је директна последица чињенице да смо променили наме = "особу". Дакле, у улазни елемент ХТМЛ образац, поље име је идентификатор за параметар који је се прошли. То је као да правите функцију "адд" који је у два цела броја Ви сте рекли инт а и инт б. То би било име а, а ако си хтео другом облику, који можемо да урадимо само копирањем и лепљење, онда бисмо имали име б. Дакле, сада ћемо имати два параметра који се пропуштени кроз дођете до следећег вебсите-- следећа веб страница, хелло.пхп. И ми у ствари видимо то опет ако желимо. Ово је најлакши начин да се бави веб код у ИДЕ, у суштини. Ви старт уп сервер, схватам трчање, а затим сваки пут вас направити неке промене, непосредно близу тај фајл да будемо сигурни. Притиском на дугме бацк је мало незгодно јер то може учитати ранији верзија, није најновија један. И онда само кликните свој дугме поново, поп-десно их-- Ох, и сада постоје два облика. И тако ако откуцате једну ствар у свакој једног-- "Јасон Хирсххорн," за инстанце-- кажемо здраво. Гледамо се на нашим параметрима. Изгледа да имамо, као очекивано, = Џејсон и б = Хирсххорн, што представља два параметра да смо прошли на ову функцију. Дакле, хајде да заиста доћи до имплементирање тог функционалност која смо имао у П сет 6. Дакле, сада смо само одјек хелло. И то није веома корисно. Желимо да поновимо неке променљиве који је усвојен на нас. А знамо име ове променљиве. Имамо и ми смо б. Тако смо могли да изаберемо да поновимо ни једно. Али како да јој приступе? Па, постоје одређене глобалне променљиве у ПХП. И ја ћу да пишем их у коментарима овде. Најзначајнији два су гет и пост за наше потребе сада. То су низови или, Технички, речници где су наши варијабле које ми смо пролази на следећу веб странице живи. И ми ћемо ускоро видети како да их користите. Још једна кратка напомена о ПХП цоде и неке специфичности тога-- у Ц, да прогласи променљиву или да користе варијабле, прво морали да их прогласи. А шта си морао да радиш када прогласио их је рећи инт а или цхар б. Морао си да прогласи врсте ових променљиве пре него што их створили. ПХП-- не треба да урадите било шта од тога. ПХП-не тражи тип променљиве. И начин на који вас створити вариабле-- прилично него реци инт знак, стринг-- што је заиста цхар, као што смо знате-- него ради све да, јер је све је истог типа, типелесс, можемо да користити један знак који је знак долара. И видећете да је већ искакање горе, мало АутоЦомплете ствари. И то говори да _ГЕТ и _ПОСТ су две опције које имам на располагању мени. Неке од ових других ствари су друге глобалне променљиве у ПХП да ћете користити преко ток П сет 7. За сада ћемо фокусирати на добити и пост. Али ово је корисно Оно што чини ИДЕ где су некада сте откуцали у том знаку долара, то ће почети пуњење у глобалним варијабли или променљиве сте већ дефинисана. Дакле, ако сте желели да дефинишете променљива под називом "стринг" бисте могли да подесите да се једнаки "здраво". И то је у основи тако једноставно. А онда би могли да урадимо нешто као "ецхо $ стринг". ИДЕ треба бацати неке Грешке ако радим нешто погрешно, па надам се да радим све у реду. Али бубе увек не појављују. Још једна ствар у вези Трицки ПХП је да није саставио. Тако је и са Ц програма, требало би да урадите дневна рутина од-- основи, ти би измене на ваш број, ти би га сачувате, и онда би буде, где је марке корак који се зове компајлер, Цланг, да би свој код, овај текст филе, у извршну. ПХП је Ц слично, али је погубљен на лету од стране вашег веб бровсер. Дакле, нема начина да се сазна. Нека би бацити оне корисне грешке, зар не? То би било као, ти није прогласила ову променљиву пре него што сте покушали да га користите. Ти си све ово лоше стуфф-- Сегфаулт, сегфаулт, све то на неки начин фун тимес који је дошао са шминком. ПХП је мач са две оштрице јер нећете добити ове грешке, али то такође значи да нећете знати стварно шта није у реду са вашим програмом ако само га покренете и то не ради. Али, дебагер треба истаћи неки надамо се корисних ситница синтаксички да можете поправити. Дакле, сада, ако пређемо да-- кажу, хајде да затворимо то. Реопен. И враћамо се овде. Дакле, имамо променљиву и променљивим б. И то неће на крају битно. Ми ћемо их звати Х и Г без неког посебног разлога. И ми кажемо здраво. Сада то изгледа као наш стринг "здраво" је заиста штампа. Направили смо променљиву названу "стринг" подесити тако да једнаки "здраво". Обратите пажњу да нисмо имали да урадите маллоц или да низ карактера. У ПХП, јер варијабли су типелесс, стринг је исто што и за цхар све намере и сврхе. Ово би могао бити "здраво". Ово би могао бити само К карактер. Ово може бити број 1. И то не занима. ПХП-не занима тип вашег променљиве. Или, то стало. То је брига када покушате и раде ствари са њим, али не брига у Декларација корак. И баш као што можете у Ц, можете изјављујем жице на стек овако мада каже "штос" је мало Мало потенцијалног погрешно употребљава када је говоримо о ПХП. Али ми не морамо да бринемо о томе. Тако смо добили низ "здраво", а ми ецхо низ. Дакле, сада смо разговарали променљиве. Дакле, сада морамо да разговарамо о добити и пост и обавља коначну ствар која је потребно да се заиста добити овај бацк уп на функционалности П сет 6. Дакле, сада смо понављајући жицу, али смо немам ове променљиве се и пост. И зато ми користимо метод гет то Изгледа природно да наша променљива која ми смо заинтересовани, и А и Б, ће се налазити у низу или рјечник, технички добити. Дакле, ако смо поставили овакав са гроупс-- сам притиснуо ентер и није то-- волео али овде имамо добити. И тако се већ постоји. Дакле, већ можемо почети да приступ неки од елемената добити. Ако не добијете, ово синтакса за низови у ПХП је врло Ц слично. Имамо два квадратна заграде. Дакле, ако кажемо да у нормалан Арраи, можемо приступити индекс нулте, први индекса. ПХП је нула индекса. Могли бисмо рећи нула, један, два-- ствари овако. И ја сам рекао да се је технички речник. Дакле, шта ПХП је ради испод хаубе, која је мало лепше него Ц, је то већ даје вам неке рјечник функционалност, која заиста хасх табеле, или покушава да, наводно. Или, технички је може бити пробати као добро. Али тект спроводи хасх табелу, који представља ефикасну речник. И тако знамо име наше променљиве, зар не? То усвајања у упит низ ПХП. Имамо = Х и б = г где и б су имена варијабли. Дакле, начин на који можемо приступити вредност која одговара кључу у нашем речнику је само рекавши _ГЕТ_ГЕТ ["А"]. Тако да сада имамо _ГЕТ ["а"]. И ако смо заменили унутра наш ехо, ако ецхо _ГЕТ_ГЕТ ["А"] - па ћемо видети да ли је за отклањање грешака баца неке грешке у вези ово-- ћемо спасити да и затворити ово. Отвори. Дакле, ми само радимо право Сада, да б није битно. "њу" и "њега" - "Хум". "њен" и "Хум". Добро звучи. И одштампан "њу", који је лудо. Али то је управо оно што што се дешавало у П сет 6. У суштини, оно што н сет 6 био доинг-- ехо здраво, име-- где је имао Име променљиве и то само од вас тражи да унесете у тој мало текста. Ту је неки додатни број где је укључена ако изјаве, што можемо да урадимо сада. Можемо рећи да постоји, што је функционалност у ПХП-у, _ ГЕТ са подвучем "име" - која је у основи говори, "Ако име је попуњена", јер могли смо само кликне на дугме поднесу пријаву без куцање ништа у тој области. И ми умотати да у нашем фриендли цурли протезе. Можемо имати друго изјаву. И то је све у ПХП угла носач, упитник, угаона заграда, ако хоћете. И сада ћемо да видимо да ли ради. Стално чекао да дебуг и срање од мене, у суштини, али није још. Можда ће сада јер сам говорио о томе. Аха. Јесте, у ствари. Дакле, ништа се појављује. То је због нешто није у реду што сам написао у ПХП коду. И сам поменуо отклањање грешака је лукав јер у ПХП-у, смо није га саставе унапред и преводилац није желео, Ево где су ваши грешке. Али, шта можемо да урадимо је-- раде људи памте како да погледате другу мрежу захтева да ПХП-- или да сајтова сенд? [? Малин?] Урадио у предавање једном или два пута. Сећаш ли се где идемо да нађемо различите дугови и 200 Окс, Сви ови кодови који се шаљу кроз ХТТП од веб страници на веб страници? Да ли неко сјетити где идемо да то урадите? ПУБЛИКА: Страница Извор. Сам ЛЕВАТИЦХ: Страница извор. Baš tako. Ако одете на страницу Соурце-- савршен. Тако Страница Извор стаје инспектора. И ја користим Сафари. Многи од вас ће вероватно бе користите Цхроме или Фирефок. Али докле год сте у сваком модерном бровсер-- и слободно фоллов заједно ако желиш. Можете откуцати овај код или само погледајте унутар П сет 6 директоријум за неки сличан ствари. хелло.пхп је оно што смо Тренутно ради на угледају. Дакле, постоје разне картице. Можемо погледати свим ресурсима. Можемо видети изворни код. Дакле, изгледа као да није да поред тела на крају. Она пронашли грешку у ПХП и њега престала лоадинг целу веб страницу. Ми чак немамо крај ознака за ХТМЛ или било шта. А ако погледамо мреже, можемо видим да смо се упутили захтев. Ово је домен. Ово је адреса. То је документ. Ми методом гет. И то је црвена. Или, било је црвено када сам није га изаберете. Како да га унселецт? Па, било је црвено. Дозволите ми да освежити. Ево га. Сада је црвена. Тако је црвено, што значи је пропао, што је лоше. Дакле, хајде да испитамо зашто није фаил. Дакле, све што је извор може Страница у суштини рећи да је твоја ствар нису радили, што већ можемо видети. Дакле, идеално би било бити више користан алат. А ту су и неке екстензије бровсер који вам омогућавају да дебуг ПХП, али ми не идемо у писати тону ПХП, тако да вероватно је најбоље погледате кроз кода пажљиво и само пазите да то не ради ништа друго. Дакле, хајде да видимо да ли ће формат овог ако изјава гдје је проблем. Желим да учита да врати овде. Здраво здраво. Дакле, ту постоји неки проблем. Дакле, за правилну синтаксу ПХП, ПХП је иде да буду Ц-као што ћете видети петље. Видећете да изјава. Видећете све ове пријатеље да сте упознати са преко курса овог ЦС50 семестра. Али најбољи начин да схватим како да уради нешто у ПХП је да је Гоогле- или да погледате неке примере ПХП кода јер знате функционалност. Знаш шта можеш везе са програмом. Можете петља. Можете петља онолико пута колико желите. Можете петља у све врсте различите начине. Можете направити функције. Можете да креирате функције које позовите друге функције, функције да себе називају. А ви имате имена за ових концепата. Имаш рекурзију, петље, ако, други контролни токови. И тако Гоогле је твој најбољи пријатељ. Чак кажу, "пхп иф Изјава "и тамо ћу бити тона порука са одговори на другим људима који су имали слична питања за вас, који тек почињу са ПХП и да су радознали о синтакси ствар. Зато што имамо тај луксуз да буде у стању да погледате код у П сет 6, ми заправо попети и видети да ОК, ево нешто занимљиво. Дакле, то је оно што је заправо Изгледало је као у П сет 6. Дакле, ако идемо кроз ово, видимо да имамо Има неколико њих мало ПХП попут вопрос бита. И не постоје цурли протезе. Постоје Црева. А ту су и коврџава брацес у ПХП, али ово је формат и начин ради ПХП скрипте која ради добро са ХТМЛ јер као што ћете видети, ми затварање са овим ПХП битс-- Елсес а ИФС и све да-- и онда ми интерсперсинг ХТМЛ унутар њих док је још пратећи Контрола протока утврђене ПХП. Дакле, само ћу брзо шетња кроз ово јер је много исти концепти који смо радили пре. Имамо ако није празна, заграде, _ГЕТ_ГЕТ ["име"]. То је све иста ствар. Ми користећи _ГЕТ речник који ПХП шаље на захтев облика, јер је параметри акција, а метод је добити. И онда је то завршава. Дебело црево је означитељ да само уради ово ако иф вредност труе. То је као коврџаве браце. И, у ствари, то је коврџава заграда на другим језицима као што су Питхон, који можете наићи ако само то за вашег коначног пројекта. И онда ова линија, здраво. Онда имамо ту чудну ствар. Имамо још заграде. Нема ХТТП тамо-- или ПХП, жао ми је. Али постоји знак једнакости. И онда имамо функцију, хтмлспециалцхарс (_ГЕТхтмлспециалцхарс (_ ГЕТ ["име"]). Ово је нешто као више напредни верзија ехо. Као што смо ецхо као начин за штампање ствари у ПХП. Ово је функција која је дефинисано у ПХП који ће се бавити још гадно ликови и бите вредности да можете да га прође. Увек је најсигурније користити. Али ехо ће обавити посао добро ако нисмо бављење било превише непријатан. И то је исто ефекат основи, ова ствар између питања ознаке се оцењује ПХП. хтмлспециалцхарс враћа леп ХТМЛ штампан вредност _ГЕТ_ГЕТ ["наме"], т.ј. шта год да откуца у облику. И онда ће поздравити, зарез простор, а онда то. Цела та ствар између угаоне заграде ће бити замењен год хтмлспециалцхарс гаси. Дакле, то је у основи слична да оно што радимо. И имамо изјаву другог који је Хелло Ворлд, што има смисла. Дакле, хајде да се вратимо на нашу број и види екацтли-- Ох. Рекао сам постоји, што није ствар коју смо хтели да урадимо. Желели смо да кажем не празна. И то би требало да раде мало мало боље, није празна _ГЕТ_ГЕТ ["име"]. И то коврџава заграда одговара да коврџаву браце. Имали смо витичасте овде. ехо здраво _ ГЕТ ["име"]. Да видимо да ли ово ради мало боље. Ми још увек ради нашег сервера. Здраво Џејсон. Здраво Џејсон. И успело је овај пут. И то је доказ да заиста могу користите витичасте да знате и љубав у ПХП кода у ХТМЛ. Код ПХП-пружена ви у псет 6-- псет 6-- представља још један начин ради ту исту ствар. Тако да сада имамо моћ. Имамо функционалност за имплементацију ПХП код који смо видели у псет 6 сами, у суштини. Пре него што кренемо даље, шта су неки од питања која имате у овом тренутку? Да [неразумљиво]. ПУБЛИКА: Дакле, у верзији на псет6, када га покренете, постоји простор. И могу да видим где је простор после зареза. [Неразумљиво] Старт отворено носач. Како уградити простор у начин на који сте написали своје кодове? ГОВОРИ: То је добро питање. И тако идемо да схватим. Дакле, то је стварно добро питање и онај који ја не сматрам. Али хајде да то урадимо заједно. Пре свега, оно Ја радим са еха када смо ецхо здраво, то излази здраво. Ако сада ецхо ово добити на посебан линија, хајде да испитамо шта се дешава. Тако да смо цлицк то. Ми стално говорим, здраво Џејсон. Дакле, опет, ми немамо тај простор. А то је зато што, у ПХП када смо ецхо, без обзира колико спацес-- Не, не В-- без обзира колико простори смо ставили у овдје-- ако сада учитати да поново, Здраво Џејсон. Да, видим, сви они простори добио појели. И то је нешто што ехо функција ради. Тако да се старају о тај простор, а то је један од разлога Зашто не користите ехо и уместо тога користите хтмлспециалцхарс. Ја сам радознао шта би догодити ако смо ово урадили где смо приложио простор у низу. Ја искрено нисам сигуран шта ће се десити када радим ово. Дакле, то је један од начина. То је један од начина да се брине о њему. Ако умотати простор у стринг, онда простор ће бити излаз лепо од ехо. Најсигурније ствар коју треба урадити је да уради хтмлспециалцхарс. То је увек сигурна опклада. Али сада имамо начин да то учините је са ехо ако је потребно. И на сличан начин, можемо ехо нових линија, све је врста ствари које сте упознати радите у ПХП. Свако друго, што су више питања која имају други људи у овом тренутку око ПХП? Ако људи појавило мало касно, Драго ми је да останем после мало и говорити о неким од почетка. И то је такође све ливестреамед, и архивирани, који је лудо. У сваком случају, тако да сада урадимо нешто Напреднији ствари са ПХП. А једна од најранијих ствари које су уведене у Ц је за петље. И ПХП има јачи за петље зове фореацх петље. Изгледа да ово-- за сваки празно као бланко, коврџава заграда, уради нешто. Дакле, ово је у основи стенографски. Видиш, за петљу као Синтактичка изградња је осмишљена у Ц и окупљања језик и ствари волим. Осмислио у Ц, прецизно, као стенографски за многе врсте петљи да су људи могли да видите. Као када сте писали петљу, тамо је често иницијализација корак погубљен одмах на почетку, стање у којем би се петља стоп-- и то је карактеристика то је само у вхиле петље, или да неко време има тачно само да феатуре-- а затим Инкрементација корак на крају. И тако често да се нађете писања кода као што следи. Ја ћу избрисати нешто од овога. Али, ако смо итератинг кроз ликови у низу, на пример, као да смо Има низ знакова. Жао ми је вратити Ц. знам, сте мислили да су урадили. Али то је само у сврху учења ПХП, обећавам. Дакле, ако имаш цхар стр дужине 8, и идемо кажу да каже Хеллооо са пратећи нулл. Сјајно, тако да је наш низ. И онда смо имали за петљу. Имамо инт и износи 0. И ми желимо да изађете када СТР од ја не износи једнак нулл, јер смо изашли када је једнако нула. А онда радимо и ++ једни тачка у фор петље. Доинг нешто са ул од и. Дакле, основна формула је, имали смо низ који смо желео да третирају као засебне елементе. Али оно што морамо да урадимо је да смо морали да у основи створити посебан цео број променљиву која је броји сваки Време смо кроз петљу. И онда би морали онда позвати стрстр [и] када оно што заиста желео да радим је само идите карактер по карактеру, зар не? Ми не желимо да повећате цео број и затим користите да цео приступити индивидуално сваки карактер. Ми заиста желимо сваки знак. И тако за сваку интелигентно је израчунао да за нас. Ако имамо низ који можемо прогласити у ПХП Само, као да имамо променљиву зове, назовимо то низ. У чуда без куцања, то је као и било која друга променљива. То је само низ. И имамо мало [неразумљиво] као 1, 2, 3, само нека врста инитиализед низа. То је у реду, не волим моју фореацх. Али ако не фореацх-- ствари Ја откуцао да мало погрешно. Постоје два начина да то урадите са фореацх петље. Ту је у синтакса и као синтакса. И ми ћемо да урадимо прво синтакси, а не као. То је моја грешка. Тако Еогеасп Број у низу, ехо Број. А ПХП је да виче на ми из неког разлога. То је проналажење неочекивани у у нечему, што је мало досадан. Али, ми ћемо схватити зашто је то тако у једном тренутку. Дакле, није тако. Хајде да пробамо користећи као. То преферира као синтакса је изгледа. Па хајде да урадимо фореацх низ као нум. Дакле, мало објашњење шта се десило јесте као синтакса је добро кажем-- прво, хајде да погледамо шта је ово исписује. Зато смо отворили нашу ИДЕ. Идемо овде. Ми кажемо, Здраво Џејсон. И јесте 123, које су биле садржај од низа који смо направили на врх. Дакле, роњење у овом фореацх петље, имамо променљиву названу низ а што је низ од три броја. А онда радимо фореацх Арраи као цилиндра, ехо Број. И то је више интуитиван него за Лоп. Говоримо, лечење сваки од ствари у низу као нум, Хоћу да ми даш нум. И то је управо оно што ради. ПХП је рачунајући да када кажете фореацх арраи, а ви се борите са низом, шта ћеш желети да поновити више је ликови у том низу, то су ИНТС у том низу, је елементи у том низу. И то вам омогућава да чувате те варијабле као нум, и онда само излаз Број Одмах него говорећи, Имам променљиву Звао сам, и онда желим да излазни стрстр [и]. И тако да нам омогућава да радимо цоол ствари. Као у основи не морамо да створимо ове променљиве као што сам је и учинити све ово Инкрементација ствар на крају. ПХП брине о свему томе за вас. Дакле, сада хајде да причамо о фореацх као то се односи на нашем _ГЕТ речнику. Тако ћемо коментарисати ово брзо. Дакле, имамо _ГЕТ низ. Имамо ову променљиву. И има неке ствари у њој. Сада, само имамо једну променљиву се прелази на њега, што је име. Али ако притисните Ентер, сада можемо имати две варијабле. Можемо имати име и старости, на пример, ако желимо да се старост и такође име особе, левкасто довољно. Дакле, сада је _ГЕТ ће бити речник са два елемента, са два кључна вредност паровима. А први кеи-- ћу напише ово на табли превише. Имамо наш рјечник је _ ГЕТ. Извини, то је мало тешко видети. Али у нашем речнику имамо име, који ће бити нешто да смо дали. И имаћемо године, што је такође ће бити нешто што ћемо дати. И то је целина нашег речника. Тако да има два елемента у себи. И зато што Еогеасп петље су паметни, ми помислити, и правилно Можда мислите да фореацх може поновити кроз ово рјечник, штампање Вредности дате по имену и старости. Па хајде да у ствари раде управо то. Хајде да изгради фореацх петље. И ми ћемо урадити за _ГЕТ као. И ми ћемо да урадимо следеће. Дакле, хајде да видимо шта ће се десити ако куцате само реч, а онда кажу ехо реч. Ми такође идемо да поновимо нову линију само да буде мало јасније, шта се дешава. Па да видимо. То ми не даје никакве грешке. А ми ћемо затворити ово. На нашем сајту, ти ћеш радити Много тога током псет7. Зато ми кажемо моје име је Сем. Моја старост је 45. Није. Али исписује, како се очекује, Сам 45. И тако ћете приметити да шта Еогеасп петља дид-- овде, хајде да се вратимо на то, тако да је на боард-- добијамо _ГЕТ као реч. А било је четири ствари у _ГЕТ. Али то је само одштампан две ствари. Еогеасп, као своју обавештајну себе, Претпоставља да је оно што ми стварно желимо је вредности, а не тастера. Али постоји начин да можемо штампати од тастера као и, ако желимо да. Ако бисмо хтели да се зна шта ове променљиве су позвани, постоји начин да се могу да приступе и ово. А начин да некако то, тако да можемо рећи, летс стварно поделите га на кључне вредности парове. Дакле, хајде да видимо шта се дешава сада. Дакле, имамо кључ. Имамо вредност. Имамо још један нови линија за читљивости. И да видимо шта ће се десити када то урадимо сада. Не знам колико је Џејсон. Јасон је 15. Дакле, имамо име Џејсон, 15 година. Тако да смо били у могућности да приступите кључ и вредност парова ове речника само рекавши како кључне тачке на вредност. И то је Еогеасп синтактичка шећера мало који омогућава можете да приступите ствари у речнику. Дакле, надамо се ова врста наглашава моћ фореацх петље. Можете прилично много пас све што итерабле изгледа, као и све што има више елементи попут низа, Лике А то су два дицтионари-- основне ствари ћете радити са иу животу иу псет 7. Дакле, можете бацити те ствари у њу, и она ће схватити шта желите да урадите са њом. То ће рећи, у реду, ја ћу добити ове ствари из података који донет је са мном. И то је нешто да сте ће користити пуно у псет 7. Идем да брзо сцролл доле само да видим где сам. Да ли људи имају питања у овом тренутку? Питања уопште? Да? ПУБЛИКА: Дакле, са кључем и вредности, Можете га именовати било шта друго а ипак би раде? ГОВОРИ: Упс. Вау, тотално брише целу линију. Сјајан посао. Дакле, а. Кључ и вредност само конвенција. То је корисно. Ти би мало дизајн поена, можда неки стил бодова за то јер њега заиста преноси намеру. Али ми кажу да је и иарп. ПУБЛИКА: Не морате да мења ништа у ХТМЛ датотеку како би се одражава то? ГОВОРИ: Нимало. ПУБЛИКА: И то само зна да јер од једнако веће тхан-- ГОВОРИ: Да. ПУБЛИКА: --тхат показатељ да је-- ГОВОРИ: Да. То је Еогеасп синтакса, али да. ПУБЛИКА: Нема нису врсте. Па шта ако желиш старост да само бити број? Да ли постоји начин да то урадите? ГОВОРИ: Постоје начини да проверите да ли варијабле у складу са одређеним врстама. Дакле, ПХП-пита нешто више од сте јер не постоје врсте у. Неки од начина да пита мање. На неки начин то пита више. Јер, ако само нешто у променљивој, немате појма шта је то тип. Али, ако сте паметни о варијабли да доделите типа да и уверите се да је само функција вам ретурн-- Желим функције само повратак једна врста вредности со да у основи могу Очекујем да променљива се вратиш из функције ће бити типа да мислим да ће бити, у суштини. Али постоје неке методе којим можете провјерити. Ја их се не сећам са врха моје главе. Чекам да да плави. исинт? исстр? Постоје методе уграђен у ПХП који могу проверите тип варијабли за вас. Али ако доделите променљиве паметно, не би требао мора да је превише ради у псет 7. Али те методе не постоје. И то је нешто што је у самом језику. И не сећам се прецизно синтаксу. Ми смо чак и да га погледам. Али, време је суштина. има ли кога другог имате још питања? Да. ПУБЛИКА: Имам само још један. Дакле, ви сте поменули начин добити, али нисте споменули метода ПОСТ. Да ли се вратити на то? ГОВОРИ: Да, хоћемо се вратити на то. То је управо оно што сам тражио у мом телефону, који сада заспао, али ћу га наћи. Само да се уверим да смо ударили све ПХП нота. Да, нема отклањање грешака верзија. Да, имамо још неколико ствари које желимо да сада у овом тренутку. Дакле, говоримо о ПОСТ, који сте поменули, једина разлика између ГЕТ и ПОСТ је да се кад смо гледали на овој адреси и видели смо, о, Име једнако и старост износи иарп У праву сте у УРЛ ту за нас. ПОСТ је мало тајанствен са доношењем информација. Дакле, ако нисте хтели корисника да знате, на пример, није желео корисничко име и лозинку лица Тренутно пријављени да буде приказан у УРЛ, што је разумна ствар да не желе у УРЛ, јер неко може да види. Ако повежете некога на страницу, ви не желе да њихова УРЛ адреса омалтерисана тамо, јер ће омогућити људима да се пријавите само са лепљења на УРЛ уместо реално попуњавањем формулара. ПОСТ је мало тајанствен. И једини ствари које ћемо морати да промени су овај метод, промена из добити то пост. А онда унутар ХТТП, уместо приступања низа _ГЕТ, ћемо приступити низа _ПОСТ. И ми ћемо приметити да, ако отварамо ову поново горе, Џејсон полако опада у старости. наме Јасон године 14. Иста ствар искочи. Али идемо на УРЛ и те варијабле нису ту. И начин на који ПОСТ пассес-- запамти како да погледате извор странице. Идемо на мрежу. Ми рефресх. И ово је још једна ствар која ПОСТ ће вам дати упозорења о. Можда сте видели кутију, текст бок овако у вашем претраживачу. Да ли сте сигурни да желите послати формулар поново? ПОСТ је шта се слање ове формуларе. Јер, у суштини, ако сте послали информације о кредитној картици са неким, то се неће појавити у УРЛ. То ће бити објави. Дакле, када освежите страницу, то је понављање слања ту поруку захтјев. Дакле, сада желимо да пошаљу формирају поново јер не иде да створи све дуплиране куповине. И ми ћемо приметити да овде, метод користимо је пост. И то је заиста пренесе бајтова. То је прешао 401 од њих. Програм за мали је прилично. Али нигде нема да видимо вредности које се доносе. Веб странице сами могу да виде, али ми као корисници не могу да виде, осим ако нисте хакер. Ако си добар хакер, можете погледати. Ако знате основни формат ХТМЛ, вредности ће сами познати на страницама. Моћи ћете да видите. Вредности ће бити тамо, они су само мало мање очигледан за вас приступа, у суштини. Да ли више има питања о ГЕТ, ПОСТ пре-- шта ћемо даље да радимо заправо погледамо неке од кода да дајете у псет 7, разговарати о како се користи неки од ових концепата, и разговарати о ствари које ћеш да треба да урадите мало у псет 7. Има ли још питања пре тога? Више питања ви имате? Велики. У реду, хајде да погледамо мало на псет 7, без сумње оно што јеси све највише узбуђен. Мислим, то је нешто што Дејвид пролази кроз мало. Али имаћемо три директоријума на Топ, као и конфигурациони фајл. То је за базе података, које ћемо говоримо о за око пет минута. Укључује, ви никада нећете морати погледати у овом директоријуму ако не желите да, али је лепо Знам да су све врсте помагача. Помагачи је као корисне функције. И онда имамо цонфиг, која поставља неке ствари. Постоје неке функције које има ЦС50 пише да су у помоћнице и цонфиг. А неки од ПХП да већ излази у датотекама ће учинити много за више врста од туп ногу посао за вас. Као да идемо у јавност логин.пхп, што је оно што појави у праву када одете у псет 7. Видећемо да постоји ово захтевају изјаву. И то нешто као оштар укључују, хасхтаг укључују ако сте од новије генерације. Али ово у суштини каже да ми треба приступ на све функције у цонфиг.пхп. А ти би могао имати потребан за све врсте других ствари. цонфиг заправо тражи помагаче. Дакле, кад год вам је потребна цонфиг, и ти си укључујући и захтевају помагаче као добро. Тако да вам даје приступ свим цоол функције које ћемо да користимо, Ствари као рендер. Ћу стварно да се олакша ово доле мало. Тако функцији онда смо ће проћи кроз пре него што пређемо на мало у СКЛ Мало је логин.пхп функција, само јер користи неке од тема да смо разговарали о ПХП-у. Видиш, прва ствар је да $ _СЕРВЕР. Ово је још један глобални варијабла која ти ћеш се бавити. То је као _ГЕТ и _Пост, али шта Сервер садржи је ово могу да те пустим знам да је метод захтев био је добити или пост. Као претходно шта смо радили је само у нашем коду који смо писали, ми смо само мењају да буде ГЕТ и ПОСЛЕ зависности од тога шта ХТМЛ има. Међутим, постоје странице које могу бити приступити са обе врсте захтева. И можда ћете желети да урадите различите ствари у зависности о врсти захтева, баш као пријављивање ради. Дакле, можете да проверите тај захтев Метод путем приступају тастера, кроз коришћење кључ и добијање вредност нечега у речнику _СЕРВЕР. Дакле, то је још један глобални променљива као _ГЕТ и _ПОСТ. Ако је ГЕТ, желимо да рендер форму за пријаву. Рендер је функција која у суштини само ставља до одговарајућег ХТМЛ и прослеђује га неке параметре. Ова титула је параметар који је користи у приказивање, зачудо, назив странице у Питање је ствар овде, кажу или здраво у нашем претходном примеру. Сада имамо другачију ствар. Јер ако је то ПОСТ, ми радим неке друге ствари. Ми користимо ту пражњења. То не постоји, то је празна. И видели смо раније, ПХП има фер износ изграђен у методама да је Давид вилл-- ако постоји су поступци који су корисни за вас, они ће бити упозорени да вас у шетњу кроз тај Давида даје на почетку преглед, као и Замила је корисне бита. Вратила се сви. Сви можемо да се радујемо. Извињавам се је пригодно назван функција да само у основи исписује Неке поруке о грешкама, јер ЦС50 је веома љубазан. А сад ово, ово је зезнуто мало јер је ово је место где смо упите у базу података. Сада нисмо разговарали о базама података. И ми ћемо у наредном пет минута или тако, максимум. Али ово је функција да ЦС50 је написао да се сто основи из базе података да радимо са у псет 7. Ја сам стварно лоше са мојим нула индексирање данас. Али да, то је 7. Тако упита да ће врати Арраи, у основи је кључ мало. И зато те ствари немају куцање, па редова је низ низова. Јер када мислимо о сто, шта ћемо да радимо је, као што сте научили у псетс као игра од 15, ионако где сте морали да користи двоструки низ смо у основи има низ други низови прави сто. И имаш редове и колоне. А онда можете да их приступате као [0] [1], добијате [0] [1]. Основни такве ствари. Дакле, шта радимо овде у овој функцији, тражимо базу података ако је корисник који је Покушавам да се пријавите, то ће бити послао методом ПОСТ. Видећемо ми се корисничко име из _ПОСТ. Они ће послали, корисника или да ће послати вредност кроз форму кроз пост, јер то је корисничко име и лозинка ствари. Сада проверавамо име да видимо, је ли то у табели? Јер ако је корисник логовања у, онда им корисничко име треба чувати у табели Корисници који постоје за овај сајт. Дакле, у основи, ако корисник у бази података, упит ће да се врати да ред, што је низ. Али тежак део је да ако чак и ако двострука низ је само једном реду, чак и ако је то један ред арраи-- као да имаш басицалли-- ако имате један у низу величине да држи још један низ, стварно бавимо једне колоне. Али то је и даље третирају као двоструки низ. И ово је место где се понекад може добити незгодно, јер имамо редове овде. Наш променљива је редове. И онда смо стварање нова променљива под називом ред и то постављањем једнако први ред редова. И ви ћете приметити тај коментар каже да је то први и једини ред. Дакле, ово је зезнуто Део где сада функционише могу врло лако вратити низове. Нема маллоцс. Нећете видети маллоцс. Тако нећете видети сег грешке. Али функције ће и даље бити доношење око низова и података у групама. И мораш да буду опрезни шта тачно ваши функције ће се вратити. А чак и ако је један колона овако, упит и даље ће вратити двоструки низ. Тако да приступа који цолумн-- или сте могу да се сетим свега овога, као обрнута јер говоримо о редова. Али да би приступили тој један ред, не можеш само рећи редове. Иако је један ред, морате да не ровсровс [0] на неки начин елиминишу ово Спољни мало низа и имају само један ред свој. До неке друге ствари. Постоји функција зове пассворд_верифи да верификује лозинка која је објављена. И онда видимо још један глобални променљива овде, _ СЕССИОН. У суштини ид сесије како да пратите од уколико неко пријављени или не. Дакле, сада са логин.пхп, ми се улогујете корисника у. Дакле, оно што ми желимо да урадимо је желимо да кажу да је седница ид је једнака ред ИД, што само има смисла јер Сваки ред ће имати другачији ИД Број као део табеле. Ми ћемо ући у СКЛ ин А друго, па ако ништа од овога Изгледа помало бла, онда ће се све разјаснити. Али ми ћемо поставити ид једнак одговарајући ствар, логовање корисника у. Извињавам се ако нешто крене наопако. И то је сврха логовања у живот као професор Малан би рекао. Дакле, то је логин.пхп. И много ПХП кода пишете у псет 7, они ће бити мало. Немојте заборавити да цхмод у правилних дозволе. Биће мало о да је у почетку спец. Али ПХП да си писање ће бити радим ствари које је слично овоме. Ти ћеш бити приступ неке ствари које дате су вам у глобалне променљиве ПХП да се баве садашњи Фотографија корисника, да ли Да ли су захтеве послате на ово страна, различите ствари попут тога. И то ће бити потенцијално итератинг кроз редове ове ствари. У другачију функцију, упит не врати тај двоструки низ. И ако има више од једног реда у њој, ако има су- јесте, ако постоји су више од једног реда у њој, онда ће бити сто. И можда ћете желети да поновити кроз редовима овог низа коришћењем Еогеасп петље које смо описали. Дакле, ако радите фореацх на двоструки Арраи, шта ће ворд-- овде, Ја сам заправо ћу писати. Ја ћу писати брзо овде. Ако имамо фореацх редова као заредом, што је врста реда? Да ли неко зна? Договорено? Тако редова је двоструки низ. Дакле, шта се може закључити да ће Еогеасп да желимо од ове двоструке низа ако смо итератинг због тога? Ми у основи можемо претпоставити да то ће бити или елементи, или редове или колоне, у суштини. И тако редове и колоне ми могу третирати као исту ствар. У суштини оно што Еогеасп петља иде да урадите јесте да ће да се врати редове. ред ће бити типа реда, док редова је двоструки низ. Дакле, ако дајете фореацх двоструки низ, то је неће поновити више од један ниво дубоко. Што је у суштини рећи да ли постоји осам ћелија у овој табле-- 1,2, 3 4, 5, 6, 7, 8-- фореацх петља није ићи кроз сваки од ових ћелија. Шта Еогеасп петља ће учинити је ће проћи кроз овај ред, да ти дам цео овај ред. И онда ћу ићи кроз тај ред. Тако да само Примењује један ниво дубоко. Ако додате угњеждени фореацх петља, онда могу третирати сваки ред вратио из редова, ти фореацх ред као елемент, рецимо. А онда би могли да ецхо елемент. Дакле, то је кратак мало освежење како можда користите фореацх лоопс у контексту упита. Да ли постоје питања о ПХП? Баш све пре него што прећи на говори о СКЛ и забава базе података? Осећати се добро? Осећати се добро. У реду. Идемо назад у ПоверПоинт које сте вероватно пропустити. СКЛ, ура. Људи који су у мом делу типично ће знати да пододељци скраћеница увек само прве речи Мислим да тог меча који алгоритхм-- ту скраћеницу. То није алгоритам. Тако СКЛ је база података. То је језик који ради са базама података. И све базе података су је столови, барем на путу је СКЛ их представља. Други начин да размишљамо о базама података је базе података су скуп кључева и вредности основи. Можете мислити о бази података, као речник и такође као сто. У основи то је начин да се удружују различити подаци са другим подацима, често кроз редове и колоне. И то је начин на који То је СКЛ најбоље ради. Дакле, ово је један пример табеле. Имам неколико примера људи у мојој секцији, што Нисам имао времена да се промени. Али имамо ствари као што су ИД, име, суперсила, и родни град. Ја не знам где је неко од у мом делу, тако да сам само ћу претпоставити сви из Њујорка Град јер имам висок статистички вероватноћа да буде тачна. СКЛ аутоматски ће Брига о ИД колони за вас. Ако убаците нови ред у СКЛ базу података, она ће повећавати да Матични број и само у основи држи као пет имена, суперсила, родни град, ко на крају тог стола. Дакле, ИД је колона ћеш никада нећете морати да бринете о томе. Али, као у случају од логин.пхп, када смо су добијање ИД сесије од стола и користећи само личну карту, ИД је начин да се јединствено идентификује елемент базе података. Дакле, ако смо имали два Самс, обоје који је научио ЦС50, и оба од којих били из Милвокија, који би и даље имају различите идентификационе бројеве и тако бити засебна у контекст стола. Дакле, то је оно што се бави СКЛ са, рад са на задњем крају. Ово су четири команде да ћете морати да раде са СКЛ. И сам их бацио се на једног слајда. Али ћемо проћи кроз их све појединачно. Прва наредба је Ажурирање, који ради оно што би се могло очекивати. Рецимо да имате неке податке у сто је то застарела. Као да сте вођење Трацк имена људи и старости, ако је неко старост расте, онда идете да желим да идем у и упдате године управо то особе. На пример да ради са нашим првим табле-- не брините о писању све Ове команде у исто време. Али, ако имаш упдате доле, то ће бити добро за овај део, јер ћемо да се вратимо на табели. Дакле, ако се вратимо на столу, хајде да кажем нешто што се догодило је је постојала земљотрес или грешка линија која поделити директно кроз Њујорку. И ми смо желели да ажурира све који је живео у Њујорку. Сви су имали да се пресели у Пенсилванији. То није родни град. Сви су имали да се пресели у Нев Хавен. Ево га. Дакле, сви у Њујорку сели у Нев Хавен. И то је нешто што је уређивање три реда у овој табели. Али у СКЛ, можете да урадите да је у само једној изјави. Дакле, да се вратимо на Упдате. Дозволите ми да брзо поново обрисати овај форум. Када говоримо о ажурирање, постоје неколико делови синтаксе који су кључни. Па, све синтакси је кључ. Али ствари у зеленом није обавезно. Бели су потребни, као предефинисане имена. И светло плава ствари који се разликују у зависности од столу. Дакле, то је оно што се дешава са шема овде, тамо боја. Дакле, ако желимо да ажурирате само те редова људи који живе у Њујорку, па шта ћемо урадити ако бисмо рекли Ажурирање? Па сто је где смо ставили име нашег стола. Рецимо име нашег стола је сто један. Дакле, желимо да ажурира сто један. И желимо да договорен-- шта желимо да подесите? Па што желимо да кажемо, тако цолумн-- ПХП третира као редове јединствених идентификатора. А онда су колоне различитим областима од тих елемената базе података. Дакле, први елемент базе података има назив Сам, суперсиле на ЦС50, а родни град Милваукее. Дакле, ако Рекли смо поставили, хајде да погледамо Поново су параметри који скуп треба. Имамо колона једнака вредности. Дакле, желимо да кажемо нешто цолумн-- која се сетим је фиелд-- желимо да видим поље једнака нешто ново. Дакле, ако смо управо рекли ажурирање табела 1, сет назив једнака Елиот. Гет неки људи из нови одељак у ово. Али, ако смо урадили упдате табелу 1 Сет Наме једнака Елиот, шта би табела изгледа као после тога? Људи имају неку идеју? Да. ПУБЛИКА: Све у томе ред би постао Еллиот. ГОВОРИ: Све у ком реду? ПУБЛИКА: У првом реду. ГОВОРИ: У првом реду? Зашто први ред? Ја не мислим да изаберем на тебе. ПУБЛИКА: Можда све у целој табели? ГОВОРИ: Све у цео сто, да. И то је потпуно тачно јер-- сам те је само помажем мало тамо-- јер смо изостављени опциони ВХЕРЕ. Ако немате где клаузула, шта ова команда ће урадити је да ће радити са сваким једноредни у табели. Име Еверионе ће постао Елиот, у суштини, који Елиот је веома срећан због. Или Ианни, један од два. Али свачије име ће се променити. Дакле, начин на који користимо ВХЕРЕ цлаусе-- и то се односи на све вхерес које су у свакој од ове различите ствари. Дакле, приметићете да СЕТ има колона једнаку вредност. И тако се где. Али то су различити врсте изјава. Дакле, колона је једнака вредности У комплету је у задатку. Као говоримо желимо да подесите име једнак Еллиот. Али у ВХЕРЕ клаузула, То су изјаве равноправности. Рецимо смо хтели само да промените име особе за Еллиот ако је њихов назив је Рајан, рецимо. Дакле, када кажемо ГДЕ име једнако Рајан, да би успешно једина промена име-- би само промените име у редовима поље где је поље име је једнака Риан. Дакле, ако смо имали више људи по имену Риан, све њихових имена би променити Еллиот. Ово је слично примеру од када грешка линија раздваја Њујорк Град и свако треба да пресели у Нев Хавен, на начин на који можемо то у једној изјави је Ажурирање табела1 сет родни = Нев Хавен где родни једнако Њујорк. То је снага исправку саопштењу. Можемо изабрати било који број редови кроз истинитих исказа о областима у тим редовима. Не можемо рећи Ажурирање табле1 сет наме = Елиот ГДЕ ред = 1, осим што можемо ако кажемо ид = 1. Тако ћемо бити рад са једнакост поља, једнакост колона. Али, користећи поље ИД је начин да се изаберите појединачне редове конкретно, јер је поље ИД је јединствен идентификатор у бази података СКЛ. Дакле, као ажурирање ред један, ИД једнака 1. Ажурирање ред два, само промениш тај идентификациони број. Али моћ ГДЕ изјава је да смо могу ажурирати ствари на основу какав је њихов тренутне вриједности појединих ствари су. Да Елиот? ПУБЛИКА: А шта ако желите да-- Опет, ово је друго питање. Али моје прво питање је било, где се ово дешава? Где сам ажурирање ово? Да ли је ово у ПХП кода? ГОВОРИ: Где си упдате, да. Идемо да разговарамо о томе где све ово деси нека врста некада идемо кроз све команде. Али оно што је потребно да знам за сада је у основи да својој бази података СКЛ постоји као нешто да се приступити упита функција, која дефинише ЦС50. Дакле, ако користите функцију упита, можете приступити ову табелу. Тако да це послати то команде до вашег стола у ПХП фајлова кроз функцију упита. Такође можете играти око са столом директно. И то је најбољи начин да се тест ове врсте команди. И ми ћемо проћи кроз тачно како да то уради у само мало. Дакле, то је Ажурирање команде. А остатак команди ће бити нека врста слична, раде на сличним стварима. Инсерта у је вероватно највише разликује од УПДАТЕ. Ја ћу оставити да до тамо само мало и раде овде. Тако инсерт инто, видећете тај сто је и даље иста. Ви желите да упишете у. Капитализација СКЛ је велика и мала слова. Дакле, не морате да искористи ове ствари. По конвенцији, ријечи у белом се капитализују. Али исто тако боје да их кодирана. Једини разлог због којег сте искористе они кад их куцате је само да нагласим да су константе. И тако можете да погледате капитализација или чињеница да их другачије сам обојен. Дакле, имамо инсерт инто, идемо поново табелу 1. То је све на једној линији. Само га одваја од различите изјаве. Дакле, не брините о томе да табела1 доспео на другој линији. Дакле, желимо да убаците У Табела1 неке вредности. И ви ћете приметити опциони битни, што ћу добити у секунди. Дакле, имамо вредности. Рецимо да желите да додате Анди за наш сто, јер ми недостаје Анди. Анди је болестан. Дакле, хајде да додамо Анди за наш сто. Не заборавите да је ИД број се аутоматски ажурирати. Дакле, једини смо пољима треба да бринете о су име, суперсила, и родни град. И тако је начин на који ми то радимо, гледајући наше синтаксе, је имамо Управо сам добио заграде, са зарезом одвојене вредности, од којих свака је вредност. Дакле, ако смо хтели да убаците Анди у наш сто, све што треба да урадимо је у праву Анди. Шта је Анди суперсила, људи у одељку Анди? Она волим лет, или бих брзина, или тако нешто. Шта ми већ имамо тамо? Имамо ЦС50, лет, брзина и снага. ПУБЛИКА: Путовање кроз време. ГОВОРИ: Путовање кроз време, невероватно. Дакле, имамо Анди, времена путовања, а њен родни град. То је стварно добро питање. Њујорк, осим ако неко зна. Свако је од Њујорк је лекција да одузме од данас. Дакле, ова изјава би инсерт, као петом реду, са путовањем у суперсила време а родни град из Њујорка. Али опционално поље је у суштини начин да се тачно навести која колона желите да унесете у ствари. Начин на који ми то радимо сада, Анди, путовање кроз време, Нев Иорк, иде онако како је нашег табле-- име, суперсила, родни град. А ако сте желели да урадите нешто осим тога, Као кажу да нисте знали нечији суперсила, Свиђа ми се како нисам знао Анди суперсила на почетку. Дакле, све што сам знао је била она име и њен родни град. Оно што сам могао да урадим је да могу Па-- ћу обрисати ово брзо. Желим да обнавља само колоне. И ово је место где опциони Листа колона улази у игру. Ја само желим да ажурира име и родни град. И онда ћу рећи вредности. Ја ћу Анди и Нев Иорку. Ако сам изоставио листу колона и управо урадили ове две ствари, где би Њујорк отишао? Који колона би Њујорк Град је смештен у? Људи имају неку идеју? Суперсила, тачно. Дакле, ово ће само иди у реду. А када достигне до краја листа, само ће зауставити пуњење ствари. А вредности које се држе у це све колоне ће само бити НУЛЛ. Зато што смо назначили име и родни град, да ћемо имати ИД 5, наме Анди, суперсиле НУЛЛ. Дакле, суперсила је неиницијализованој вредност. Ви не нужно добити Исти валгринд грешке ако покушаш и приступ је. Све ће бити лепо нулу напоље, јер НУЛЛ вредност у СКЛ. То је константа. А онда родни град ће бити Њујорк. Дакле, то је ИНСЕРТ ИНТО командом. Пре него што пређемо, нема још два команде. Да ли људи имају било каквих питања у вези Ажурирање, око убаците, о СКЛ углавном пре него што кренемо на нашим крајњим бита? Људи се осећају добро, одлично. Свиђа ми се. Дакле, хајде да причамо о изаберете. Гоинг Дитцх УПДАТЕ овде. И одаберите ће бити веома сличан. Циљ СЕЛЕЦТ, Изабери је сврха у животу је да вам дати гомилу колона да задовољи одређене услове. И када кажем да задовољи одређени услови, Ваш ум може одмах тамо да се вратим ВХЕРЕ који је дошао у УПДАТЕ. И то клаузула управо тамо изаберите. Ако не стави где клаузула и кажемо СЕЛЕЦТ име, хометовн-- написано да је мало вронг-- име, родни град ОД Табле1. Ако само кажем да, што СЕЛЕЦТ ће нам дати је да је ће нам дати доубле-- табелу, а. Двоструки низ ако смо размишљате о ПХП-у чула. Али то је само ће нам дати двоструки низ од два цолумнс-- име, и родни град. И то ће игнорисати ИД. И то ће игнорисати суперсила. И то ће нам дати сваки једноредни тог стола. Дакле, ако смо уметнута Анди, имаћемо Анди. И ми ћемо имати оригинални четири. Ако су је ажуриран, који ће се огледа, и тако даље, и тако даље. Дакле, ово је зато што смо нису користили ВХЕРЕ. Али можемо га користити у потпуно Исто тако смо га користили у УПДАТЕ. Ако хоћемо да табелу са именима и супер силе људи живе у Њујорку, можемо извршити изјаву као СЕЛЕЦТ име, суперповер-- Само ћу да одем то-- ОД табела1 ГДЕ родни = Њујорк. Дакле, ово показује да можете добити потпуно различите колоне, а затим ставити колона које ниси чак и да се вратим у ВХЕРЕ клаузули. Ми чак не желе да родни град за свакога. Али ми желимо име и суперсиле људи чији је родни град је Нев Иорк. Дакле, то је нешто што може да уради са ВХЕРЕ клаузула можемо носити са колонама да не морају назад. На исти начин на УПДАТЕ, можемо носити са стубовима да ми не нужно Желим да упдате. Можемо ажурирати град свакога ко је име је Сам, на пример. Можемо ажурирати град сви чији је ИД број је 2. Дакле, само ажурирати Град другом реду где ми не морамо да се бавимо потребно заједничко питање. И Делете је, као што бих Очекујем, ДЕЛЕТЕ ФРОМ Табела1. А онда имамо још један ВХЕРЕ. Дакле, можемо рећи ВХЕРЕ ид = 1. Избришите први ред. И ДЕЛЕТЕ ће увек избришете ред, или ће обрисати неке број редова. ДЕЛЕТЕ ФРОМ стола где родни град = Њујорк ће избрисати све у Њујорку. То је ако је дошло до изненадна трагична куга а ви само хтели да уклоните сви из табеле који живео у одређеном граду који је погођен куге. Нека почивају у миру. То су четири СКЛ команде да ћете морати да користите. Можда нећете ни морати користити их све. Али то су четири која вас очекује ЦС50 да буде удобан са одласком у и квиз 1 и такође псет7 и псет8. Опет само то сто. У том једном, Рои суперсила има је ажуриран на ласерским зрацима, који је пример Нисам користио. Ја не знам којих је један Рој воли, али снага. Рој има суперсила снаге. Катарина није успео данас. То је несрећна. Али она има супер брзину. Па то је тект. Пре него што говоримо о МВЦ, не неко има питања у вези ПХП? Сада СКЛ или ПХП ако изненада имате смисли питање о ПХП? Велики. Добро, сви смо поставили тада. Дакле, говоримо мало о моделу погледом контролора, хајде да се вратимо на неке у ствари у псет7. Дакле, који модел преглед контролер је-- Ја нисам ће спасити своје промене да се пријавите јер ја сам му искасапио. Али, у основи имамо два одвојене ствари дешава. Имамо јавност директоријум који садржи код које ће бити погубљени и веб странице које ће посетити. А имамо и ове директоријум. И погледа садржи шаблоне. То је оно функција рендер-- видели смо рендеру Функција у гомилу ПХП кода да ЦС50 је већ написан за вас, која се у одређеним параметрима. Оно што код ради се иде у ставовима, који су скупови попут превриттен ХТМЛ код, и то убацивањем вредности у неким местима. Овако кад вас иду у ЦС50 финансија, исто заглавље на свакој страници. Исто подножја је на свакој страници. То је зато што на путу да донесе радова је да ће аутоматски патцх у том заглављу и гледалац који можете наћи у ставовима. Ми заправо можемо ићи у заглављу, и види, то је ХТМЛ датотека са главом. Има неких стилова. Не морате да погледате ЦСС за псет7 ако не желиш. Али можете да измените их ако желите, да Ваш финансија изгледају мало другачије. Има неки ПХП-у заглавље мало да видим ако има другачији наслов треба ставити у овој заглављу. Али само неке друге скрипте, и линкови, и друге ствари. Шеф завршава, тело почиње, и Д, имамо овај чудан мало крај мало. А ту је и див, као и безоблично врста елемента да има идеју о средини. И онда када видимо фоотер, имамо крај див. Имамо дно, која је где је текст подножја је. Крај ДИВ, крај тела, крај ХТМЛ. Дакле, оно што је рендер ради се рендер је некако од крпљење до заглавље, А разликује ПХП фајл који ће садржати стварне ствари које ћете видели, као вашем столу акција ако купујете или продајете акције. И онда ћу додати у подножју. А Виев Модел контролер Идеја је да Желим да се одвоје како ствари изгледају из кода. То је желимо да одвоји сучеље и бацкенд, где је сучеље ствари које корисник види, лепо висуалс-- ХТМЛ, ЦСС, такве ствари, слике, и тако даље. И бацкенд је ПХП. Ово је код који сте написали. Ово је место где код је то ради стварне операције. То је кад се додаје акционарско до вашег стола, када купују и продаја, то је бацкенд. И можемо, као што сте видели, укључујући и ПХП директно у ХТМЛ. Дакле, оно што смо могли урадити за Овај задатак је само имао ХТМЛ фајл за сваку страницу, као и пријаве. А онда на тој страници, само имао је огроман блок ПХП кода, укључујући све код који да страна посебно би требало. И онда бисмо могли имати урадио за портфолио. Могли смо урадили све од куповине и продаје у оквиру појединих страница. Али пошто смо рендеринг одвојено одакле пишемо у бацкенд код, лако можемо мењају како ствари изгледају без мења сваки фајл. Ми радимо такве ствари само да додам нови див на дно од-- Добро сам модификовао подножје. Можете само да такве ствари. Али, такође, можете да промените цео визуелни изглед без утицаја шта је иде у бацкенд. И можете да промените Цео бацкенд и даље има ли изгледа исто као и раније. Ово Да ли је идеја модела Виев Цонтроллер. И то је заправо наметнуто парадигма у неким од програмских језика можда ћете желети да користите за коначних пројеката. Ако то урадите иОС развој, они имају поглед, што је оно што видите на иПхоне, и онда бацкенд као као посебна ствар. Можете мислити о мало. Постоји много бинарних у информатика, што је смешно, јер све је у бинарном. Нисам планирао то. То је игра речи ненамерно. Да, игра речи нису намењени. Али као .Х датотека и .Ц датотеке, ту је много одвајање од ствари које смо можда ћете морати. Дакле, можемо да измените х фајлове, или неко само да видим .х фајл и знам управо функције које су у .ц фајл без нужно знати њихова имплементација. Ова идеја раздвајања компоненти која зависе од једни на друге али може на неки начин приступити једни другима кроз различите канале, доношење варијабли, само укључују изјаве, ствари тако, овај принцип помаже да се створи апликација која може бити лакше едитед би више људи, може лакше промењен или модификован на великом нивоу, и лакше се дебуг на много начина. Стварно брзо, имам неколико савета за псет7, што ћу направити преко целог екрана, тако да не само гледајући у у-- Савет Савет Типпее. Нема да многи савети. Али сам споменуо ПХП је тешко дебуг. Двокреветне и трокреветне проверите. Ако је ваш код једноставно није појављује на страници, то је вероватно ПХП грешка, извињавам се. Никад треба да погледате ЦСС ако не желите да. Али када сте завршили, то може бити лепо мало забаве ствар само иди у и неред са ЦСС параметрима. ХТМЛ и ЦСС су пример модела Поглед контролер стил ствар, зар не? Можете да имате стила ознаке унутар ХТМЛ елемената. Али ако некако их оутсоурцинг у ЦСС, они су лакше да измените и игра около са, и забавите се са. Треат ЦС50 помагач функционише као црне кутије. Не треба да знате тачно шта рендер ради, али верујте да то увек радим право ствар зависности од тога шта је преда, такве ствари. И бих препоручио ватцхинг Давидов описом, пролази кроз све стуфф, не само тодос, али заиста може третирати ови као црне кутије. Не идите у ово Функције у потрази за бубе. И поздрављају повратак наше оверлорд Замила. Велики. Да ли постоје коначне питања пре некако смо боунце за данас? Да ли сам још увек живи? Велики. Хи Преноси Уживо људи. Велики. Да ли има више питања? Ne? А онда мислим да смо добро да иде за данас. Ја ћу остати мало после кад би људи имали питања они су се плашили да питате на потока. Иначе, имам добар дан.