[Powered by Google Translate] [Валктхроугх Проблем Сет 7] [Замила Чен] [Универзитет Харвард] [Ово је ЦС50] [ЦС50.ТВ] Поздрав свима, и добродошли у Валктхроугх 7, ЦС50 финансија. Сада смо званично завршили са свим псетс у ЦС50, а ми само преостаје још једна која ће бити забавно имплементација од сајта где корисници могу да се пријавим на ЦС50 финансија и купују и продају акције. Данас ћемо имати неколико алата на располагању. Ми ћемо да причамо о дозволама. Кад год имате веб фолдер, ћеш желети да омогући корисницима да изврше одређене датотеке али и само читати они други, па ћемо погледати у дозволама и како можете подесити то. Онда ћемо да погледамо у ПХП, ХТМЛ и СКЛ кода. Прво, дозволе. Када сте у терминалу у одређеном директоријуму, онда шта желите да урадите је да желите да покренете цхмод команде. То је било праћено слова или бројева одговара за оно што у суштини желе да свет види, ви сами да видите, итд На пример, кад год имате фолдер, онда желите да фасцикла буде извршна сви који га види, па шта би урадио је да би покренули команду цхмод + к а онда име фасцикли. Када имате слику као што су ЦСС датотека или датотека слика - као ЈПЕГ и битмапе, такве ствари, или било ЈаваСцрипт кода - желите да буде читљив од стране свих, па онда шта треба да урадите је да би користите џокер - који је звездицу - у основи указују на ЦСС фолдер - све у том фолдеру -  Ја ћу да кажем да ће то бити читљив од стране свих. Са дозволама, када користите слова, такође можете да користите бројеве уместо. Дакле, видите да на крају када желите нешто да буде извршна - који је представљен бројем 1 - нешто да буде читљив је број 4 и онда - уписив је број 2 - и тако у суштини када желите комбинацију тих, онда додајте их. Ако желите нешто да буде читљив, писати и извршна, онда би сабрали 4, 2 и 1, и да ће вам дати 7, онда кад имате фасциклу коју желите да буде извршна сви - као и читљив и писати - онда правите ту 7, 1, 1. То би било 7 за вас, онда 1 за друге људе. Када имате спецификације, она заправо ћете навести које фасцикле и који фајлови треба да буде цхмод-ед конкретно. На пример, када имате фасцикле - то су 7-1-1 - када имате слике, или ХТМЛ, ЦСС, ЈаваСцрипт, затим они ће бити 6, 0, 4 - или 6, 4, 4 - и онда ПХП фајлови ће бити 6, 0, 0. Идеја која стоји иза тога је да корисници не би заправо требало да виде вашу ПХП кода, али само моћи да виде излаз. Сјајно! Прелазак у ПХП. Једноставно, кад год хоћеш ПХП фајл, фајл суфикс је пхп.. Такође можете да помешајте са ПХП ХТМЛ кодом. Ако имате ХТМЛ датотеке, на пример, онда можете да га ставите на леви угао, упитник, пхп - ставити пхп кода - а затим затворите да са другим знаком питања и десног угла. Променљиве у ПХП су много лакше да се бави од променљивих у Ц Било променљива тек почиње са знаком долара испред њега, и они слабо откуца. То значи да не морате да бринете о постављању нешто једнак ниске или цео број. Можете само да једноставно кажу, ово је моје име променљиве а онда је његова вредност, тако да ће бити лакше да се баве тамо. Друга ствар је да ПХП омогућава коришћење асоцијативних низова. Можете само да једноставно дефинисати као низ сте урадили у Ц рекавши, знак за долар-име вашег низа-једнако, а затим у угластим заградама су у основи само листу вредности свих елемената у низу. Али, у ПХП шта можете да урадите је да одредите основи - то је нешто као хеш функције. Можете да одредите индекс - шта ћеш да га зову - а онда да одговара вредности. Ако сте заиста проћи у = 1, Б = 2, Ц = 3, онда ваш низ у индексу ће вам дати 1. Ово псет ће вас угрејати са неком ПХП у делу питања, а онда смо зароне у ЦС50 финансија. Имамо пар - ми имамо неку функционалност, у суштини, спровести на овом сајту. Желимо да омогући корисницима да се региструју на нашем сајту са корисничким именом и лозинком. Желимо да им дозволи да гледају горе цитат, и онда би одштампали име тог цитатом као и тренутну цену да је у. Желимо да им се омогући да види портфолио свих акција које су купили до сада. Такође желимо да им се омогући да купују акције, као и да их продају. И на крају, желимо да им се омогући да види историју од свих трансакција које су они направили. Онда, коначно, након што сте спроводи све то, онда сте слободни да спроведе једну додатну функцију. Ми ћемо ићи у њих. То може бити било који омогућавају корисницима да добију додатни новац депоновањем додатни новац, или сте могли дозволити им да промене своје лозинке, или нешто слично томе, пошаљи им признаницу када купују или продају акција. Постоји ограничен списак функција које сте могли да се имплементирају, тако да је то последњи тамо. Пошто је ово сајт, ви такође имају доста слободе да га прилагодите. Ми пруже ЦСС код, али ти дефинитивно ниси слободан да га подесите, да изгледа лепше, али у основи је то основна функција па увек се односи на спецификације о томе шта вам заиста треба да укључи тамо. Након спецификације, ми ћемо користити уређај као и сервера. То ће бити домаћин наш сајт за нас, на свом локалном серверу. Ако следите ова упутства и распакујте псет 7 дистрибуцију кода у свој виртуелни хост / локалном домаћину фолдер,  онда само можете посетити хттп://лоцалхост/ у Гоогле Цхроме у апарату, и онда би до кода у коме сте писмени псет 7. Псет 7 долази са гомилом дистрибутивне кода, и надам Морамо - кроз све псетс пре ово - навикао нас је на читање кроз дистрибутивну кода, разумевање које функције су већ обезбеђена, и како можемо бити у могућности да користите они и остале функције које ћемо да се примени. У овом случају, имамо 3 фасцикле. Имамо ХТМЛ фолдер, фолдер, укључује и шаблона фолдер. Шта ћемо да радимо са овим псет је врста раздваја на размишљање - програмирање размишљање - од ПХП кода са стварним визуелном аспекту. Имаћемо један ПХП фајл који чини све размишљања, наводи се у базу података, исписује ствари, има ли изјаве - ствари попут тога - и онда ћу донети податке у нашој датотеке шаблона - или темплате.пхп датотеке. Шта ће урадити је да чита податке и онда ће га одштампате. Можемо третирати шаблоне као "глупи" у смислу да ми заиста не желимо да их да раде пуно посла у израчунавању ствари. Желимо да се наши контролори да то уради. Мало о томе - хајде да погледамо неке од дистрибуције кода. Овде имамо индек.хтмл фајл, и то је прилично празна. У суштини оно што ради - каже, добро, ја ћу захтевати цонфигуратион.пхп фајл. Ми не видимо да тамо, али то је у основи зове се цонфигуратион.пхп фајл, и извршавање то. Након што се то ради, то ће да донесе портфељ. Рендеринг је функција, тако да кад год смо у контролер, зваћемо рендер, ми ћемо му дати фајл и онда су подаци које смо пролазили у, тако да ћу позвати у портфолио.пхп--врстом пролаза у те податке, тако да портфолио да се позабавимо. А сада, ево, имамо логин.пхп форму.  Ово је контролер који у суштини брине о улогују Овде се проверава да ли форма је предат овом фајлу и бави потврђујући поднесак. Ми ћемо погледати у овом Апологизе функцију. Када желимо да одштампате поруку о грешци, користимо се извини и да ће преусмерити корисника на одређену страну који ће штампати одређену поруку о грешци које указују. Настављајући даље, то ће упита базе података - ве'лл гет у више од тога касније. Онда видите да овде, ако форма није достављен, онда донесе форму. То значи да она иде на логин_форм.пхп, па хајде да погледамо то. Логин.пхп је заправо где видимо ХТМЛ суочавања са стварним визуелног аспекта. Овде имамо унос команду за корисничко име, улаз за лозинку, као и дугме Пошаљи. То је заправо где се визуелни аспект и ХТМЛ форма ће бити одржан. Ево, каже да ће то бити достављен до одређеног метода зове пост. Ми ћемо ући у разликама између метода - постављати насупрот добити, ту је нешто што се зове пут - ћемо ући у те методе касније, али у интересу ове псет, Ја високо би подстакло да користите пост. Ми знамо да у основи када се овај образац подноси - из логин_форм.пхп-- онда ће ићи на акцију - логин.пхп-- основи прође у свим тим параметрима из тих образаца у логин.пхп. Резултати из тог обрасца налазе се у овај пост асоцијативног низа. Индекси различитих елемената у низу пост су управо оно што сте овде навели. Ви кажете да је име овог инпута корисничко име. Име овог је лозинка. Слично томе, можете видети име као индекса асоцијативног низа тамо. Ако одемо у фолдер обухвата, имамо овај фајл функције које ће бити веома корисна. Све ове функције се реализују за вас. Не треба посебно да спроведе било који од ових себе, али они ће веома корисна. Ми смо се извињавам, што као што сам рекао раније, биће у основи одштампати поруку о грешци за тебе на одређеној страници - апологи.пхп. Онда имамо депонију, тако да ако само позовете депонију, а онда прође у променљивој, онда ће вас одвести на страницу која ће приказати ту променљиву за вас. Онда смо одјаве, што ће практично завршити седницу неког одређеног корисника. Лоокуп ће бити корисна. Пошто се бавимо цитате и залиха, ми ћемо бити у стању - и то у суштини је у реалном времену. Морамо да знамо шта су те залихе вредности, па имамо проналажење функција која се бави документацијом Иахоо акција. Када потражите одређени симбол акција, она ће се вратити вама акција симбола као и име и тренутне цене тог фонда. То је проналажење функција. Онда смо се баве МиСКЛ, па ћемо да жели да изврши одређене упите на нашем СКЛ бази података. Морамо упит да се баве - да врсти апстрактног нешто од тог аута. Ми ћемо бити доношење у целом низу наших СКЛ упита - и све променљиве које иду у њој - и шта то ради је заправо изврши то за нас. Уместо да пишем све ово се сваки пут кад желите да упита - добијањем све резултате из тог упита - онда можете само да позовете упита функцију, и то ће се вратити вама - у зависности од тога шта користите за ваш упит - Вероватно ред свих резултата који одговарају на упит или слично. Више о томе касније ипак. Коначно, имамо преусмери која је, као што име сугерише, те преусмерава на другу страну. И онда имамо рендер, који идемо да се зове неколико пута. Када си у контролеру, позовите донесе на страници шаблона и онда прође у вредностима које је предложак ће се бавити. Те вредности су вероватно ће се суочити са врстом производње који желите ће бити приказан на вашој страници шаблона. Ок. То су функције, а ту је много више за ову дистрибуцију кода. Охрабрујем вас да прође кроз ово и истражују сами. Такође, спецификације вероватно ће вас провести кроз неке друге елементе за дистрибуцију кода. Овде је резиме функција налазе у фунцтионс.пхп. Ок. Први задатак је да омогући корисницима да се региструјете на сајту. Управо сада, постоји логин форма на сајту, а ви добили неколико корисника са лозинкама. Можете да користите те корисничких имена и пријавите се, али желите да дозволите људима да направе своје корисничко име и додајте себе сајту. Распоред за регистрацију је прилично сличан логин форму, осим корисничко име није унапред постојеће, и корисник такође треба да обезбеди нову шифру и онда обично имамо лозинку потврду. Када корисник улази све те информације, желимо да их додате у нашу базу података корисника. Ми ћемо имати базу података - СКЛ базе података - да ћемо то референце. У тој бази података, ми ћемо имати табелу са свим корисницима садржи њихову корисничко име, лозинку и свој и колико новца имају. У регистру, желимо да им дозволи да уђу ту информацију. Желимо да прикажете ту форму. Желимо да се уверите да је њихова лозинка - да су они ушли један, а затим и да се лозинке подударају када га унесете два пута. После свега што је урађено - под претпоставком да се проверавају те грешке - онда желимо да додате те кориснике у нашу базу података. Коначно, када сте регистровали, то је прилично згодно ако вам није потребно да се поново пријавите када сте регистровали, па ћемо да их пријавите на сајту уколико сте регистрован у успешно. Први задатак је да се прикаже форму, а то је заправо ће бити - цео овај процес регистрације ће бити моделиран прилично тесно после логовања осим уместо логин.пхп можда имате регистер.пхп. Уместо логин_форм.пхп--што је шаблон - Имаћете региструјете форму. Ви ћете желети да додате још једну поље - лозинку потврда поља - уместо само једног корисничког имена и лозинке једног. Даље, желимо да проверите да ли су лозинке поклапају или су празне. Имамо контролер - регистер.пхп--који ће да се брине о радите ове провере. Када се доставља преко поште методом, онда све од тих варијабли налазе у пост низу. Ви желите да се уверите да је пост низ вредност на индексној лозинку одговара за потврду елемент. Ви желите да се уверите да нису празне, и желите да се уверите да су они исти. Једна згодна ствар у вези ПХП је да ми не треба да користимо стринг упоредите више. Можемо користити једнако-једнака оператору  да провери да ли жице су једнаки један другоме. За грешке руковања, ви ћете желети да се извиним. Да се ​​извини, једноставно позовите функцију  а затим одредите врсту поруке коју желите да излаз. Ви затим желите да додате корисника у базу података. До сада, све што смо радили је само бави локално са резултатима форме. Дакле, ми заправо желимо да их додате у нашу базу података. За ово прво желите да се уверите да корисничко име није празно. Схватите да на сајту, ви не можете имати више корисника са истим именом, па ћете желети да се уверите да када убаците нешто у бази података - убацити нови корисник - онда не добијете судар између већ постојећих именом и корисничко име које корисник покушава да поднесе. За ово, када изврши упит - убацивање одређеног корисника са њиховом лозинком и почетне количине новца - када позовете тај упит, онда миСКЛ ће заправо вратити фалсе ако не успе. Структура корисника је таква да је корисничко име јединствена вредност, тако да не можете имати више од једног. Када покушате да убаците нови ред са именом које већ постоји, који ће вратити лажно - као Булова вредност лажна. Лукав ствар овде је да ћете желети да проверите да ли је резултат резултат вашег упита. Ако то не успе, онда ћете желети да проверите са троструким једнака оператера. То је заправо ће да провери да ли је квар или не, док, у просто-једнако равноправни, то би било тачно ако би ред био празан. Резултат неуспех ако постоји колизија између корисничких имена је стварна вредност лажна. Ево како можете да убаците у базу података. Овде је питање да ли покренути строго у СКЛ. Једна ствар је да заиста могу отићи на сајт који управља вашим СКЛ базе података и играју около уносећи ручно ни вредности или редове. То ће резултовати оно СКЛ излаз. Такође можете да покренете СКЛ команде у бази података  и онда видимо шта је синтакса може бити, и онда преведе на упит функције коју имамо у псет 7, који ће бити веома сличан упита да ли заиста управљају. Ако сам хтео да убаците нови ред у мојим столом корисника, онда бих навести убаците корисника, које је име мог стола. Онда бих навести имена колона. Онда бих обезбедити вредности уз моју лозинку. Лозинке у нашој табели корисницима се не чувају само као ниске. Они се чувају као шифрованој верзији, па ћете желети да покренете функцију крипту на стварној лозинку, и да ће вам дати тачан тип складишта за низа корисника. Стаза ће уметнути нови ред у табелу корисника. Да се ​​баве упита функције, пре него у Ц користили смо знак за проценат као чувар места. Слично, исти концепт чувар места примењује овде. Са упит, наводите цео упит осим кад имате посла са варијаблама као улаз у упиту, онда уместо да их заправо стављања унутра - као када смо имали принтф изјаве у Ц Ми бисмо ставили ниску, а затим су ту чувар места, а затим, након сваког зарез, одредите које променљива смо имали. Овде ћемо користити знак упитника као наш чувар места и онда прође у свакој променљивој, односно у циљу, за чувара места - где су променљиве треба да иде. Па ево, први знак питања би бити замењен стварном именом онда други знак питања од стране лозинком. Онда на крају, када сте их региструје и додао их у базу података, онда желите да их пријавите на сајту. Имамо врста супер-глобалне променљиве зове седници. Сесија траје одређени ид, и да је ид одговара кориснику који је тренутно пријављен за Шта ћете желети да урадите је да пронађете оно што им ид корисник и онда подеси ту седницу ид као ИД који одређеног корисника. Функција коју ћете желети да овде користити је СКЛ наредба који ће преузети последњи уметнут ИД број из табеле. Онда редови ће позвати - ит'лл позовите ид - ит'лл доделите име на броју да се враћа. То ће позвати да ИД. Сада смо завршили региструјете, а можемо да пређемо на цитат. Цитат омогућава кориснику да унесете име одређеног фонда, а онда ћете се вратити квалитете тог фонда. Шта ћете желети да урадите је да овде имамо контролер и неке шаблоне. У овом случају, ми ћемо имати контролер који ће да уради све размишљања за нас. То ће да изгледа горе симбол и онда прође у вредности до шаблона који ће се штампати напоље. Ми ћемо овде имати 2 шаблоне. Ми ћемо имати 1 шаблон који обезбеђује форму у којој ће се корисници Улаз назив фонда - име учешћа. Онда смо, такође ћемо желети други шаблон који приказује те вредности. Можете погледати на пријављивање за пример како би сте образац који прихвата улаз, осим овде, ми само желимо 1 поље. Ми не желимо корисничко име и лозинку поље. Ми само желимо 1 текст поље које омогућава кориснику да унесете име одређеног фонда. Онда желите да пошаљете те податке - када сте погледао ту залиху - да куоте_форм.пхп. Лоокуп вратиће симбол акција, име, и цену. Они се налазе у оквиру асоцијативног низа. Потражите проналажење функцију унутар фунцтионс.пхп за више информација на повратку врстама њих. Сјајно! Па онда на крају, ви ћете желети да прикажете информације залиха. Ви ћете желети да прикажете вероватно - иоу'лл желе да приступе тим променљиве. Када имате цену у променљивој - као и име и симбол - онда ћете желети да прикажете онима из шаблона страници. Тај шаблон страница може назвати схов_куоте.пхп или тако нешто. Ваша страница куоте.пхп ће учинити цитат шоу, а онда прође у све те вредности. Затим у вашој ПХП страници, ви заправо одштампате оне вредности за ХТМЛ аспект странице. Ви само користите функцију штампања и проћи у цену. Постоје 2 начина - можете да га повезати у облику ланца са тачке оператора, или користите чувар места. Корисници на крају ће бити куповине и продаје акција. Желимо да им омогући неки начин гледања свих акција које они тренутно имају. Ми ћемо позвати да њихов портфолио. Портфолио би, вероватно за сваког корисника, садрже гомилу редова наводећи врсту акцији да имају и колико они имају. Наша постојећа табела - сада имамо корисници табелу у нашој бази података. Који садржи име једног корисника, као и њихове лозинке и колико новца имају. Нема прави начин чувања свих својих акција у оквиру тога. То није као да ми можемо убацити нове колоне за сваки лагеру. То би било веома, веома дуг ред јер имамо бесконачну количину типова акција које могу да имају. Дакле, уместо што ћемо урадити је у истој бази података, ћемо имати корисници табелу, али такође ћемо имати табелу портфолија. Портфолио табела ће бити дефинитивно повезано са стола корисника, већ портфолио сто структура ће имати информације залиха, колико акција тог фонда корисник има, као и посебно ид кориснички број. Имате корисника табелу које има ид, као и корисничко име, хеш - која је лозинка је шифрована лозинка - и онда износ новца који имају. ИД број ће бити повезан са ИД бројем из портфеља. Портфолио би само симбол акција, као и акције - број акција тог фонда које је корисник има. У том портфеља табели би у основи имају све акције које поседују све кориснике на вашем сајту. Касније, само одредите акције одређеног корисника је - само њихов портфолио - бисте преузели вредности из табеле свој портфолио је тај што ид број је специфичан за тог корисника. Када прикажете портфолио, желећете да пријавите сваки од акција у портфељу корисника. Ви ћете желети да пријаве број акција и тренутну вредност тих акција. Та тренутна вредност тих акција се не чува у табели портфолио зато што ће се ажурира - у најмању руку - сваки дан по Иахоо. Да бисте добили ту информацију, не можете референцирати да од вашег СКЛ упита. Шта функција предвиђа да за нас? Шта ће функција добити цену? То је проналажење, тако да користи лоокуп на одређени симбол ће вам дати много информација. То ће вам дати 3 комада информације - име, симбол, као и цену. Када је проналажење одређене симбол, онда можете добити цену, и онда можете користити цену која ће бити приказана у свој портфолио. Портфолио такође треба да прикаже тренутно стање готовине корисника. Та област се чува у табели корисника. Па онда сећајући како смо у основи имате на - имамо различите типове ПХП фајлова. Ми ћемо имати контролер који у суштини чини све размишљање за вас. И онда имамо шаблон у коме предложак бави оутпуттинг података. Ви морате да мислите о томе шта променљиве контролер ће морати да преузме унутра Ако имамо посла са портфолиом који Излази сваки назив, симбол и делите број, као и тренутна цена једне акције, онда ћете желите да пронађете неки начин у суштини пролази у - можете проћи у низу вредности које одговарају томе. Идемо у један пример како можете да преузмете све акције у власништву одређеног корисника. Ово се не бави - ипак - са ценом акција. Шта ово би урадио јесте да покренем упит. То би добили симбол, као и акције од - Зовем ову табелу, али у овом случају шта би то било? Шта је име табеле која се бавимо који има симбол и акције за одређеног корисника? То је било корисници или портфолио. Портфолио. Шта ово би урадио је упит портфолио за симболе и акција за одређеног корисника. Ево, ја кажем, (СЕЛЕЦТ симбол, акција из тбл - али уместо стола, идеш да замени то са портфеља. 'Где' углавном је мој услов. Кажем ја само желим да те асоцијативне низове који одговарају  на овај следећи услов - ид једнакима.  Онда ја постављам чувар места тамо и тада седница ид. Шта то треба да урадим је рећи за сваки ред у редовима. Ово је уредан начин, уместо да заправо да подесите за петљу да пролази кроз све индекса, онда у ПХП можете имати за сваки-петљу. Ако имате дати низ, онда могу да кажем да ћу да позовем све узастопног елемент - Идем да зовем сваки елемент то име. Дакле, за сваку од ових елемената, ја ћу да их назовем ово, онда могу да урадим ово. У ово за сваки, имате редове као свој стварни низу, и сваки ред идете да позовете ред. Сваки пут када се извршава тело, то ће ићи горе и он ће ажурирати ред на следећи елемент у редовима. Сада, у смислу куповине акција, оно што ми желимо да урадимо је да добије акције које корисник жели да купи и износ акција које корисник жели да купи, а онда - ако желе - додајте тај залихе њиховом портфолију. Очигледно, ако они купују нешто, онда ће се то смањи износ новца имају, тако да ће смањити свој новац. Ми ћемо се бавити ажурирањем портфолио, као и корисници сто, који садржи кеш. Али прво, морате да добијете стварну залихе и количину акција које корисник жели. За то ћете морати ХТМЛ форму која ће затражити симбол акција које желите да купите, као и број акција. Онда ћете желети да додате. Ви ћете желети да изаберете одређене вредности. Отишли ​​смо кроз овај мало сада, али када покушавате да добијете одређене редове - преузели одређене редове у СКЛ табели, ово је следећи синтакса. Ви сте изабрали, а затим, ако сте навели звезду, да ће у основи вратити у целини, цео ред за вас. Онда опет имате услов где, а онда сте навели - Ја само желим да корисничко име буде једнака маил-у, тако да ће само преузети ред у корисника који одговара маил-у. Када корисник жели да дода удео у портфолију, морате да проверите неколико грешака. Ви желите да се уверите да корисник може заиста да приуште залиха, па ћете желети да проверите свој новац. Пре смо користили звезду да преузме цео ред из СКЛ табеле. Али овде, ми заправо можемо само навести да сам само желим 1 вредност - Желим само готовину. Па ево, то ће вратити новац за корисника са ИД бројем 1. Ако корисник већ купио одређену залиху али онда купује више тог фонда, затим у свом портфолију - ви не желите одвојену линију, други ред који садржи ту нову трансакцију. Ви заиста желите да ажурирате износ. Све што се стварно мења је износ акција које тај корисник поседује. Ако користите уметак у упиту - па то је само убаците у свој портфолио све ове вредности - ИД број корисника, као и симбол деоница које они купују и акције, онда ћете такође желети да наведете, па ако налетим на дупликата кључем - у овом случају, дупликат кључ није само корисникова ид али и акција симбол - јер можете имати само - наша претпоставка је да можете имати само 1 ред  који одговара одређеном 1 симбола. Дакле, на дупликата кључем - ако наиђете на судара тамо - само ћеш да ажурирају своје акције нове вредности. Акције једнако год смо имали пре, плус броју акција које корисник куповине. Сада када смо ажурирали портфолио табелу, ћемо желети да ажурирате готовину корисника. То је у табели корисника, тако да ћемо бити одузимајући одређену количину од новца. Претпоставља се да ће то бити у готовом новцу износи готовине минус - и онда извесна количина. Да бисте ажурирали новац, ти би - ако сам желео да узме новац од поште, онда бих покренути овај упит - 'Упдате корисници ", а затим подесите колону готовинску новцу - Ја бих уклонити 9,999 долара само ако је корисничко име једнак маил-у. Али, у овом случају, не желимо да одузмемо 9,999 конкретно. Желимо да одредите, па желимо да одузмемо тренутну цену акција множи са бројем акција које они купују. Сада смо им дозволили да видим све акције које имају, као и купи још акција. Такође смо раније дозволио им да траже тренутну цену акција. Овде желимо да им се дозволи да их прода. Прво желимо да у основи приказује - желимо да им дозволи да виде све акције које имају, тако да овде желимо да прикажете све редове из портфеља. Ако они одлуче да продају одређену залиху, онда ћемо да претпоставимо да они желе да продају све. Они не само иде да прода 50% својих акција, они ће продавати 100% од тога. Ми само можемо избрисати цео ред из портфеља. Можемо избрисати акције дати корисник је на одређени симбол. Ево синтаксе за то. Затим желимо да ажурирате новац. Ми ћемо бити у готовини додајући једнак износу акција које се продају помножена тренутној цени акција - не цена по којој су је купили, већ се цена по којој су - Тренутна цена када су га продаје. За референцу тренутну цену залиха, ћете желети да користите Лоокуп, који ће вам дати цену залиха у овом тренутку. Сада смо отишли ​​са историјом, коју желите да дозволите кориснику да прати све њихове трансакције - жели да види кад су продали нешто, кад год је купио акције. Желимо да одредите време у којем су то урадили, као и колико их је купио и шта је било акција. Да ли имамо било какву тренутну, постојећу структуру која одређује то? Па, имамо портфолио који приказује број акција које корисник има за дату акцији. Али ми структурисања портфолија на начин да ажурира када купимо више, а историја би - ако купите Аппле, 10 акције, а онда касније прода 5, онда би желели да виде оне одвојено као одвојене акције, раздвојили редове. Док се та акција да замислите да у нашем портфолио табели би само бити упдате тог реда,  па вероватно хтети још сто. У нашој бази података имамо наши корисници табелу, имамо портфолио табеле, а сада ћемо вероватно желети табелу историје. То сто историја може пратити тренутни датум, као и посебно акционарско симбол, као и колико акција, и шта онда акција је - да ли су куповали те акције или да ли су их продају. Како бисте се изборили са датумом, постоји неколико начина на које можете да урадите ово. ПХП има начин вођења евиденције о датуму, који можете погледати себе. У СКЛ такође можете да користите одмах или струја тиместамп. То је на вама. Само будите сигурни да сваки пут корисник купи или прода, ви ћете се ажурира свој новац у табели корисника, бићете ажурирање редове у табели ппортфолио, онда ћете такође се ажурира историју, тако да ће бити 3 одвојена СКЛ упити који ћете се тамо зову. Сада имамо гомилу функционалности. Само пар опомена да у вашем индексној датотеци ћете желите да се повежете са најмање вашем - али ћете желети да дозволите кориснику да повеже до буи.пхп страну. То ће омогућити корисник - буи.пхп је контролер, тако да ће се било вам послати на - то ће вас послати на обрасцу који вам омогућава да погледате ствари. Ми имамо историју. Ми смо изађеш, добијање цитат и онда продају. То су у најмању руку оно што желите да прикажете. У погледу портфолио, портфолио заправо приказује у индексној страници. Ако одемо у индексу, овде видимо да је то чини портфолио.пхп и пролази у асоцијативном низу - у основи је наслов једнако портфолио. Дакле, ово је контролер. Ако одемо на шаблон за портфолио.пхп, онда све што има је - приказује слику која у суштини каже, ох, овај сајт је у изградњи. Касније, када прође - иоу'лл проћи у основи прецизнијим информацијама. Уместо само наслова, вероватно ћете проћи у више ствари. Када имате те вредности, онда портфолио.пхп могу бавити тим вредностима и да их штампа у некој врсти поретка. Када спроводе сви они, такође треба да спроведе 1 више функција. Ово може бити омогућавајући кориснику да промени своју лозинку, ресетовати своју лозинку ако сте га заборавили - тако да за поништавање лозинке, а затим вероватно ћете такође желети да измените региструјете тако да им омогућава да одредите е-пошту, па ако су заборавили своју шифру, онда они могу да добију то. Они вероватно могу да уђу у свом корисничком имену, а затим е-маил ће бити послат на њих са линком да буде у стању да поново своју лозинку. Можете да имате нешто што омогућава корисницима да добију признанице сваки пут када се купи или прода нешто, и онда на крају, дозволите им да додају новац на свој веб сајт. Само да се вратимо у концепт контролера и шаблоне мало. Ви ћете имати нешто слично - тако ћете овде имати контролер. Управо сада, ми гледамо на логин.пхп пример. Када имамо контролер, у основи то ће узети 2 предмета. Када имамо контролоре, ми смо у овом комаду који смо такође врста суочавања са када имамо облике, као добро. Регулатор ће у основи имати одвојене акције - један ако форма је већ достављен, а затим два, ако је корисник долази на ту страну по први пут и тек треба да унесете тај облик. Ја ћу да скочим на том случају прво пред одлазак до првог случају имају форму унутра Овде ми кажемо, ако форма није поднет са методом пост - Не брините о томе мало. Не брините о томе превише, али разумем да је у основи ова функција се бави да ли је образац поднет или не. Овај услов важи и ако корисник поднео образац. Ако не, онда ћемо желети да позовете логин_форм.пхп рендер, а затим прође у наслову. Овај наслов је само у основи ће се појавити у заглављу. Шта ово ради је у суштини каже, ок - добро, ако корисник иде на логин.пхп и није стварно пријављен, онда желим да их послати на страници која има тај вид што им омогућава да унесете корисничко име и лозинку. Онда идем логин_форм, а онда је стварни облик. Онда, када корисник поднесе тај облик, они ће га доставити логин.пхп са методом пост. Онда сам стварно ћу да уђу у овај део мог другог ако-петљу. Онда је овде да се бавимо вредностима ушли у форму. Овде је то бавимо тим. Онда када се баве тим вредностима - ако имаш посла са - кажу да имамо посла са куоте.пхп страници на којој неко може унети залихе тог они желе да изгледају горе, а онда видети да дисплеј - то је овде некако слично. Овде имамо пријаву форму - иоу'д вероватно имају форму куоте - али онда када је корисник стварно поднео ту информацију, онда ћете желети контролер да прође у другу шаблон који ће им показати да актуелне информације. Па онда у праву овде, онда сте вероватно ћу - око крају свог стања овде - ако је метод једнако пост - онда вероватно ћете желети да пружи још једну страницу - шоу куоте - који вам шаље тој страници - схов_куоте.пхп-- а затим у том фајлу неће референцирати те вредности. Да ли то смисла? Имамо контролер који у основи бави са 2 случаја - да ли сте унели форму у или не. Ако нисте унели форму, онда ће вас преусмерити на том обрасцу, који ће вам онда ставити назад на тој страници. Затим, када имате информације у контролеру, то тело ће се бавити са тим информације као неопходно - било гледајући вредности залиха, и онда кад се то погледа те вредности и има их у лепо обликовани низу, онда може да прође тај низ у шаблон странице  да се бави оутпуттинг ту информацију. Опет, пошто је веб, то ће бити забавно. Ми смо ван Ц па нисмо ограничени на АСЦИИ терминала и да излаза, па се забавите са овим. Можете направити га као визуелни колико желите. Можете дозволити корисницима да улазне милионе долара у једном тренутку, или ограничи их и бити стварно значе и омогућавају им да уђу само 1 динар у време или нешто слично. Дефинитивно будите сигурни да се забављају са овим. ПХП код је мало једноставније да је мало лакше да мапира свој Псеудокод у стварне реализације. Дакле, дефинитивно се забавити са овим, јер је то заправо наш последњи комад у ЦС50. Уз то, ово је била Уалктхроугх 7. Када завршите гледао описом и завршио свој псет, онда оне су такође псетс, а сада смо на финалном производу - након што смо добили кроз квиз 1. Онда надамо можете користити алатке које сте научили из псетс - не само синтакса, али више апстрактна идеја како да се сигурно - волим, желим да урадим ово и онда стварно спровођење тога. Учење како да се боре кроз синтаксу и дистрибуцију кода. Читање код других људи, и онда тумачење да користи већ постојеће функције. Па, срећно са последњим псет. Прошло је задовољство да води Валктхроугхс. Надам се да сам био од помоћи за тебе. То су сцреенсхотс, и хвала пуно. [ЦС50.ТВ]