[За възпроизвеждане на музика] ROB BOWDEN: Hi. Аз съм Роб, и аз се надявам, че си готов да се сложи наличност в този разтвор. Първо, нека да разгледаме най-регистър. Така че не забравяйте, че тук ние сме проверка за да видите дали форма е качен на тази страница. Така че първото нещо, което започваш да направите е да отидете на друго. И ние отиваме да се направи формата регистър. Така под формата на регистър ще да публикувате register.php. И какво е то ще изпрати? Това ще изпрати потребителско име, че потребител ще трябва да попълните, парола, и потвърждение - паролата въведена отново. Така че сега, когато тази форма е качен на register.php ние ще се изпълни това, ако. С поглед към това, ако сме първи ще валидира вход. Ние искаме да се уверите, че потребителското име и паролата не бяха празни и че потвърждението всъщност съответства на паролата. След като сте проверили, че можем всъщност регистрира потребителя. Какво означава това? Е, ние искаме да вмъкнете потребител в нашата база данни. А това е как ние ще направим това. Така че ние ще се вмъкнете в потребителите маса полета потребителско име, хашиш, и пари в брой. Стойността по подразбиране на пари в брой ще бъде 10 000. И ние отиваме да премине като потребителско име, потребителско име, чрез супер POST глобален, който е представен от формата. И ние отиваме да криптирате паролата. Така че, ако, че успя, след това води до ще бъде не-фалшиви. Ако тя се провали, тогава ние Искам да се извиня. Нещо се е объркало. И какво може да се е объркало? Е, трябва да има уникално потребителско име. И така, заявката може да не са успели ако вече потребителското име съществува в таблицата. Така че, ако се приеме, че това е уникално потребителско име, След това отиваме да задава въпроси, за да вземете ID на този потребител. Не забравяйте, че тази идентификация е автоматично увеличаване. И така, ако това се случи да се провали по някаква причина, а след това ние искаме да се извини че не можем да грабне ID. Но ако приемем, че тя не се провали, след това грабваме ID от това, което заявката върнати, съхранява, че в нашата сесия - така че ние искаме да влезете в този потребител от съхраняване на ID на сесията супер глобален, и в крайна сметка пренасочи към нашето портфолио. И това е всичко за регистър. Сега отиваме да се премине към оферта. Така цитат ще има наистина подобен набор нагоре. Тук виждаме, че това е кодът, който ние ще се изпълни, когато формата е качен на тази страница. Но първо ние всъщност имаме да направят тази форма. Така че като погледнете цитат форма, кои области са там? Ние виждаме, че всичко е цитат е единичен текстово поле със символа за име. И така е публикуван, когато формулярът цитат да quote.PHP ние сега ще изпълни този код. И единствената променлива в нашата POST супер глобалната ще бъде символ. Ние се уверите, че за да се уверите, че те всъщност публикувал символа. И ако те не го направи, ние ви кажа, трябва да предостави символ. Ако приемем, че те направиха осигури символ, погледнем този символ. Сега не забравяйте, че може да има поглед нагоре се провали, тъй като, добре, може би това не беше валиден символ, за да започнем с това. Така че, ако това изглежда са връщане невярно, ние искаме да се извиня, че символ не е намерен. След като ние открихме, символът, сега ние може да направи шаблона quote.PHP. Какво означава, че прилича? Това е просто да отпечатате, че част на каквото и име на запасите е Заслужава каквото и цената на акциите е. Сега защо ние използваме тази htmlspecialchars функционира? Това е така, защото името на склад, както и символът всъщност може да съдържа специален символи, които не трябва да да се тълкува като HTML. Добре, така че това е за цитат. Сега искаме да погледнем в index.php и портфолио. Но първо ние действително трябва да се изгради масата на портфейли. Ето как ние ще направим това. Така че нека да разгледаме структурата. И ние виждаме, че портфейлите маса ще имат ID. Така че това ще бъде потребителя ID, което е вкарване на акция. Ние имаме един символ, който ще бъде символ на компанията, която сме вкарване на акция за. И тогава акции е броят на акции, които се добавят. Така че не забравяйте, че според PSET спекулация, ние се уточни, че ID и символ - ние проверим индекси, ID и Символ е на първичния ключ. Така потребителско име и символ на сдвояване трябва да се появи само един време в тази таблица. Сега нека да разгледаме кода. Така че сега index.php ще вземете всички на нашата информация портфейл и това показва на потребителя. Така че, на първо място, ние ще вземем парите че на потребителя в момента има от пари в брой маса. Не забравяйте, че тази заявка е винаги ще да се върне масив от масиви. Така че, въпреки че ние само избрания паричен от един ред, ние все още трябва да вземете тези пари от индексиране в нулев индекс на редове и измъкна паричен индекс. Така че сега ние искаме да изберете всички информация от таблицата на портфейли това е от значение за текущо влезли в употреба. Ние, разбира се, трябва да се уверите, че че всъщност успя, които ние винаги трябва да правим, когато сме заявка. След като имаме всички на тази информация, на PSET спец. ни информира, че ние трябва да направите това, за да се съхранява добре цялата информация в тази позиции масив. Така че ние сме примка върху всички информация портфейл, гледайки нагоре по наличност, свързани с всеки ред в информация портфейл, и след това съхраняване в масива позиция името, цена, акции и символ всички свързан с този запас. И накрая, ние отиваме да се направи portfolio.PHP, преминавайки в размер на пари в брой в момента имаме, на позиции масив, който ние просто изградени, както и заглавието на тази страница, която ще бъде на портфейла. Нека да разгледаме най-portfolio.PHP. И ние виждаме, че основният интересните част е този цикъл. Така че ние сме примка над позициите масив, създавайки маса, където тази маса - ние сме населяващи всеки ред с информация, която ще се постави вътре в позиции масив. Отново, ние трябва да използваме htmlspecialchars в случай, че този символ или името съдържа HTML знаци. И тук ние се умножи цената и размера на акции, които имаме За да получите колко това е момента стойност за потребителя. И това е за портфейл. Сега ние ще се погледнете в продажба. Така подажба ще се върнете към формат, който имахме в register.php. Ние виждаме, че една форма ще да бъдат публикувани на тази страница. Но на първо място, когато се зареди страницата, ние ще направим това. Така че това, което се прави това? Е, бихме могли просто да има на страницата Продавам има едно текстово поле, че потребителят влиза в този символ, който ние искаме да продаваме. Но ние отиваме да бъде малко по-умен и ние ще имаме спад надолу, която позволява на потребителя да избере действителните символи, които те вече имат. Така че ние сме получаване на портфейла на потребителя. Отиваме, за да изберете от портфейли всички символи на потребителя в момента има, текущо влезли в употреба. Уверете се, че успя. А сега отиваме да се накъдрят над река връща информация, просто вземете всеки символ, и го приберете в този символи масив. И сега ние ще направи формата на продажба. Така под формата на продажба, е просто ще бъде падащото меню, а изберете. И всяка опция във формуляра за продажба е просто ще се отпечата символа че ние грабна от портфейли маса. Така под формата на продажба ще представят обратно към sell.PHP. С поглед към sell.PHP, това е кодът, че това ще се изпълни, когато ние се подчиним към тази страница. Искаме да потвърдим, че потребителят действително вписана символ. Сега се предполага, че те направиха - така че сега ние искаме да се определи колко споделя потребителят е всъщност продажба и колко пари потребителят трябва да получи за продажба, че много акции. Така че ние вземете броя на акциите, които потребителят има за този символ. Търсим в портфейлите, за на даден потребител и дадения символ. Сега се уверете, че това всъщност връща един ред. Защото ако не е, че потребителят не всъщност има този символ, за да продават. Ако приемем, че те имат този символ, ние искаме да вземем броя на акции, които те имат. И сега ние искаме да гледам как много всяка акция е на стойност. Така че ние използвахме погледнете нагоре функция. Търсим на стойността на символа. Ако приемем, че гледат нагоре успя, сега отиваме да всъщност актуализира всички информацията. Така че ние искаме да изтриете от портфейли акциите, които ние продаваме. Ние искаме да се актуализира на потребителя сума в брой. И ние сме го актуализира от акции пъти цената на акциите - така че това е колко пари потребителят просто направи. И сега искаме да актуализираме нашата история. Така че ние не са взели един поглед на масата в историята си. Така че ние ще се върнем към това. Сега най-накрая отиваме да се пренасочи Обратно към портфейла. Сега нека да разгледаме най-бай. Така че, купи трябва да бъде доста подобни да се продават. Ние виждаме, че ние отново ще да се провери, за да се види дали сме подаване към тази страница. Ако приемем, че ние не сме, ние сме Ще се зареди формата купуват. Е, какво значи формата бай ти прилича? Ние виждаме тук, това е просто един обикновен образуват, че ще представят обратно към buy.PHP. И то се случва да има символ, който потребителя навлиза, броят на акции, които потребителят иска да си купи на този символ, и това е всичко. Така че, когато ние представяме обратно към buy.PHP, ние сме Сега ще изпълни този код. Ние отново искаме да потвърдим, че потребител е въвел нещо валиден. Така че тук ние сме като се уверите, те действително вписана символ. Тук сме като се уверите, че те всъщност вписани акции. И тук ние сме като се уверите, че те Въвели число за акция, така че те не се опитвате да си купите акции на ABC. Сега искаме да погледнем нагоре цената на символ, така че ние знаем колко пари имаме трябва да се изважда от потребителя. Сега ние ще изберете колко пари на потребителя всъщност има и се уверете, че че успя. Ето, което взимаме парите. И сега тук, ние сме като се уверите, че потребителят има достатъчно пари. Така че, ако броят на акциите на потребителя иска да купи пъти цената на всеки на тези акции е по-голям, отколкото на размер на парични средства, което имаме, тогава Потребителят все още не могат да си позволят това. Ако приемем, че потребителят има достатъчно пари в брой, сега искаме да вмъкнете в Портфолиото на потребителя. Е, ние ще се вмъкнете в потребителя портфолио, ако това се случи да бъде първият път, когато потребителят купува конкретния символ. Но какво, ако те вече се случи да има някакъв склад Apple? Е, сега ние го правим използване на ВКЛ дублира ключ изявление актуализация. Така че това е защо по-рано ние уточни, че ID и символ следва да бъде съвместен първичен ключ, така че ако се опитаме да вмъкнете ID и символ, че са вече е там, ние просто ще се актуализира акции да включват нови акции, които потребителят купува. Сега искаме да актуализира сумата на парични средства, които потребителят има, тъй като те просто прекара известно пари за тези акции. И накрая, ние ще актуализираме масата на историята отново. Което, отново, ние ще разгледаме в в секунда. И най-накрая ще се пренасочи обратно към portfolio.PHP. Така че нека да разгледаме най- таблицата история. Сега не забравяйте, че масата на историята е Трябваше да следите всички купува и продава, че всички потребители да направят, а не само текущия брой акции, че Потребителите имат, което е това, Портфолиото е за. Така че следенето на потребителя, че купува или продава, независимо дали тази конкретна сделка е покупка или продава, на символа, който е е купени или продадени, броя на акциите, че ние сме покупка или продажба, на цена на една акция, която е като купува или продава, и най-накрая, времето че това купуване или продаване се случва. И това е всичко, от историята информация, която имаме нужда да следите. Така че, когато погледна продава, видяхме, че ние се поставите в историята продава, и дали сме покупка или продажба, текущата времевата и текущия потребител, символът, който се е продадени, броя на акциите, които са се продава, а цената на запасите в този момент. По същия начин, в изкупуване, ще изглеждат почти еднакви. Единствената разлика е, вместо от продажби, ние купуваме. Така че в продават и купуват, ние сме поставите в масата на всички истории на купува и продава, че се случва. Така че всичко, history.PHP трябва да направите, е да вземете информацията от историята таблица, уверете се, че успя, и ще направи тази информация. Така че погледнете в шаблона history.PHP, интересната информация е точно тук. Ние сме примка върху всички сделки, печатане дали това Беше се купи или продаде, форматиране дата време че ние направихме тази сделка. Запомни, че трябва да използвате htmlspecialchars относно символ, просто за всеки случай. И накрая, форматиране на броя акции, които бяха закупени и цената на една акция по това време. И това показва цялата история информация, която имаме нужда. И това е всичко за тази PSET. Моето име е Роб, и това беше CS50 Finance.