[MUSIC Playing] Rob Bowden: Hi. Unë jam Rob, dhe unë shpresoj se ju jeni gati për të vënë aksioneve në këtë zgjidhje. Së pari, le të marrin një vështrim në regjistër. Pra, mos harroni se këtu ne jemi duke kontrolluar për të parë nëse një formë ishte postuar në këtë faqe. Pra gjëja e parë që ne jemi duke shkuar të bëni është të shkoni në tjetër. Dhe ne do të merr formë fjalëkalimi. Pra, forma regjistrohu po shkon të postoni në register.PHP. Dhe çfarë është ajo do të dërgoj? Ajo do të dërgojë një emër përdoruesi që përdoruesit do të plotësoni, një fjalëkalim, dhe një konfirmim - regjistrohu shtypur përsëri. Deri tani, kur kjo formë është e postuar në register.PHP ne do të ekzekutojë këtë rast. Duke kërkuar në këtë rast, ne jemi e parë duke shkuar për të vërtetuar të dhëna. Ne doni të bëni të sigurtë që emri i përdoruesit dhe fjalëkalimin nuk ishin bosh dhe se Konfirmim të vërtetë përputhet me fjalëkalimin. Pasi ne kemi vërtetuar se ne mund në fakt regjistroheni përdoruesit. Çfarë do të thotë kjo? E pra, ne duam të futur përdorues në bazën e të dhënave. Dhe kjo është se si ne do të bëjmë atë. Pra, ne jemi duke shkuar për të futur në përdoruesit Tabela emrin e përdoruesit fusha, hash, dhe të holla. Vlera e paracaktuar e parave të gatshme do të jetë 10.000. Dhe ne jemi duke shkuar për të kaluar si emrin, emrin, përmes PAS super globale që është dorëzuar nga forma. Dhe ne jemi duke shkuar për të encrypt fjalëkalimin. Pra, nëse kjo pati sukses, atëherë rezultatet do të jetë jo-false. Në qoftë se kjo nuk arriti, atëherë ne dua të kërkoj falje. Diçka shkoi keq. Dhe çfarë mund të ketë shkuar keq? E pra, duhet të ketë një emër përdoruesi unike. Dhe kështu query mund të kishte dështuar nëse emri i përdoruesit tashmë ekzistuar në tabelë. Pra, duke supozuar se ishte një emër përdoruesi unike, atëherë ne do të query për të rrëmbyer ID e atij përdoruesi. Mos harroni se ID është auto-bën rritjen. Dhe kështu në qoftë se ndodh që të dështojnë për disa arsye, atëherë ne duam të kërkoj falje se ne nuk mund të kap ID. Por, duke supozuar se ajo nuk dështojnë, atëherë ne kap ID nga ajo query kthyer, dyqan se në seancën tonë - kështu që ne duam të hyni këtë përdorues në nga ruajtjen ID në seancën e super globale, dhe më në fund përcjellëse në portofolin tonë. Dhe kjo është ajo për regjistrin. Tani ne do të lëvizin për kuotë. Pra, japin kuotën e do të ketë një grup me të vërtetë të ngjashme up. Ne shohim këtu se ky është kodi që ne jemi duke shkuar për të ekzekutuar kur një formë është postuar në këtë faqe. Por së pari ne fakt kemi që të merr atë formë. Pra, duke marrë një sy në formë kuotë, çfarë fusha janë atje? Ne e shohim se të gjithë të japin kuotën ka është një e vetme kuti teksti me simbolin e emrit. Dhe kështu që kur formular quote është postuar të quote.PHP ne jemi tani duke shkuar për të ekzekutuar këtë kod. Dhe ndryshueshme vetëm në POST super tonë globale do të jetë simbol. Ne të vërtetuar se për të siguruar që ata në fakt postuar simbolin. Dhe në qoftë se ata nuk e bëri, themi se ju duhet të sigurojë një simbol. Duke supozuar se ata kanë siguruar një simbol, ne e shohim deri atë simbol. Tani mos harroni se look up mund të ketë dështuar që, mirë, ndoshta ajo nuk ishte një simbol i vlefshëm për të filluar me. Pra, nëse kjo të kërkoni kthimin rreme, ne duam të kërkoj falje që simboli nuk u gjet. Pasi ne kemi gjetur simbolin, tani ne mund të bëjnë template quote.PHP. Çfarë do të duken si? Kjo është vetëm do të shtypura që një pjesë e e çfarëdo emri stoqe ishte Vlen çfarëdo çmimi aksioneve është. Tani pse nuk kemi përdorim këtë htmlspecialchars funksionojë? Kjo për shkak se emrin e aksioneve dhe simbol mund të vërtetë përmbajnë të veçantë karaktere që nuk duhet të interpretohet si HTML. Në rregull, kështu që kjo është ajo për të japin kuotën. Tani ne duam të shikojmë index.php dhe portofolit. Por së pari ne duhet të vërtetë për të ndërtuar Tabela portofolet. Ja se si ne jemi duke shkuar për të bërë këtë. Pra, le të marrin një vështrim në strukturën. Dhe ne shohim se portofolet tryezë do të ketë letërnjoftim. Kështu që do të jetë e shfrytëzuesit ID që është futur aksionet. Ne kemi një simbol, e cila do të jetë simboli i kompanisë se ne jemi të futur aksionet për. Dhe pastaj aksionet është numri i Aksionet që është duke u futur. Pra, mos harroni se per spekulim pset, ne specifikojnë që ID dhe simbol - ne shikoni indekseve, ID dhe Simboli është çelësi primar. Pra një ID përdorues dhe simbol pairing duhet të paraqitet vetëm një të vetme Koha në këtë tabelë. Tani le të shohim në kodin. Deri tani index.php do të rrëmbyer të gjithë e informacionit të portofolit tonë dhe shfaqin atë të përdoruesit. Pra, së pari, ne jemi duke shkuar për të rrëmbyer para që përdoruesi aktualisht ka nga Tabela e holla. Mos harroni, kjo pyetje është gjithmonë do për t'u kthyer një grup të vargjeve. Pra, edhe pse ne vetëm të përzgjedhur të holla nga një rresht të vetëm, ne ende nevojë për të rrëmbej se parave nga Indexing në Indeksi 0 i rreshtave dhe grabbing Indeksi holla. Pra, tani ne duam të zgjidhni të gjitha Informata nga tabela portofolet kjo është e rëndësishme për momentin regjistrohet në përdorues. Ne sigurisht duhet të vërtetoni se që në fakt pati sukses, të cilat ne gjithmonë duhet të bëjë sa herë që ne query. Pasi të kemi të gjithë këtë informacion, spekulim pset na njofton se ne duhet ta bëjë këtë në mënyrë për të ruajtur mjaft mirë të gjitha të dhënat në këtë pozicione array. Pra, ne jemi duke looping mbi të gjitha informacion portofolit, duke kërkuar deri aksioneve të lidhur me çdo rresht në informacion portofolit, dhe më pas ruajtjen në rrjet pozicion emrin, çmimeve, aksionet dhe simbol të gjitha lidhur me atë magazinë. Dhe në fund, ne do të merr portfolio.PHP, duke kaluar në shumë e parave të gatshme ne aktualisht kemi, pozicione array se ne vetëm ndërtuar, dhe titulli i këtij faqe e cila do të jetë e portofolit. Le të bëjmë një vështrim në portfolio.PHP. Dhe ne shohim se interesante e madhe Pjesa është ky loop. Pra, ne jemi duke looping gjatë pozitave array, duke krijuar një tavolinë, ku që tavolinë - ne jemi duke popullimit çdo rresht me Informacioni që ne kemi vënë brenda pozicione array. Përsëri, ne kemi nevojë për të përdorur htmlspecialchars në rast se ky simbol ose emrin përmbajnë karaktere HTML. Dhe këtu ne jemi duke shumëzuar çmimin dhe shumën e aksioneve që ne kemi në mënyrë që të marrë sa që është aktualisht me vlerë të përdoruesit. Dhe kjo është ajo për portofolin. Tani ne do të hedhim një vështrim në të shitur. Pra shitur do të kthehen në format që kemi pasur në register.PHP. Ne e shohim se një formë është duke shkuar që do të postuar në këtë faqe. Por së pari, kur ne e ngarkesës faqe, ne jemi duke shkuar për të bërë këtë. Pra, çfarë është kjo e bën? E pra, ne mund vetëm të ketë faqen e shitur kanë një kuti të vetëm teksti që përdoruesit hyn këtë simbol që ne duam të shitur. Por ne do të jetë pak më të zgjuar dhe ne do të kemi një rënie poshtë që lejon përdoruesin për të zgjedhur simbole aktuale që ata tashmë kanë. Pra, ne jemi duke marrë portofolin e përdoruesit. Ne jemi duke shkuar për të zgjedhur nga portofolet të gjithë nga simbolet që përdoruesi aktualisht ka, aktualisht regjistrohet në përdorues. Sigurohuni që kjo pati sukses. Dhe tani ne jemi duke shkuar për lak mbi informacion kthye, vetëm grabbing çdo simbol, dhe ruajtjen atë në këtë grup të simboleve. Dhe tani ne jemi duke shkuar për bëjnë formularin shitur. Pra, forma e shitur do të vetëm të të jetë një menu drop down, zgjidhni një. Dhe çdo opsion në formën shesin është do të vetëm të shtypura nga simbolin që ne të rrëmbyer nga portofolet tryezë. Pra, forma e shitur do të paraqesë përsëri në sell.PHP. Duke parë sell.PHP, ky është kodi që do të ekzekutojë kur ne të paraqesë në këtë faqe. Ne duam për të vërtetuar se përdoruesi në fakt hyrë në një simbol. Tani duke supozuar se ata e bënë - kështu që tani që ne duam për të përcaktuar se sa ndan përdoruesi është në të vërtetë shitur dhe sa të holla përdoruesi duhet të marrë për shitjen e që shumë aksione. Pra, ne kap numrin e aksioneve që përdorues ka për këtë simbol. Ne jemi duke shikuar deri në portofolet për dhënë përdoruesit dhe simbolin e dhënë. Tani të sigurt se që në fakt kthyer një rresht. Sepse në qoftë se ajo nuk e bëri, përdoruesi nuk ka në fakt kanë atë simbol për të shitur. Duke supozuar se ata nuk kanë se simbol, ne duam të kap numrin e aksionet që ata kanë. Dhe tani ne duam të shikoni se si shumë çdo aksion është me vlerë. Pra, kemi përdorur të parë deri funksionin. Ne jemi duke shikuar deri vlerën e simbol. Duke supozuar se look up sukses, tani ne jemi duke shkuar për të rinovuar në fakt të gjithë informacioni. Pra, ne duam të fshini nga portofolet aksionet që ne jemi të shitur. Ne duam të rinovuar e shfrytëzuesit Shuma e parave të gatshme. Dhe ne jemi duke e informuar atë me aksione herë çmimi i aksioneve - kështu që kjo është se sa para përdoruesi bërë vetëm. Dhe tani ne duam të rinovuar historinë tonë. Pra, ne nuk kemi marrë një vështrim në tryezën e historisë ende. Pra, ne do të kthehen në këtë. Tani më në fund ne do të përcjellim mbështetur në portofol. Tani le të marrin një vështrim në blej. Pra, blej duhet të jetë shumë e të ngjashme për të shitur. Ne shohim se ne jemi përsëri duke shkuar për të kontrolluar për të parë nëse ne jemi dorëzimin në këtë faqe. Duke supozuar se ne nuk jemi, ne jemi duke shkuar për të ngarkuar formularin buy. Pra, çfarë ka forma blej duken si? Ne e shohim këtu është vetëm një rregullt formë që do të paraqesë përsëri në buy.PHP. Dhe ajo do të ketë një simbol që përdoruesi i hyrjes, numri i aksionet që përdoruesi dëshiron të blerë e atij simbol, dhe kjo është ajo. Pra, kur ne të paraqesë përsëri në buy.PHP, ne jemi tani duke shkuar për të ekzekutuar këtë kod. Ne duam përsëri për të vërtetuar se përdoruesi ka hyrë diçka të vlefshme. Pra, këtu ne jemi duke u siguruar që ata në fakt hyrë në një simbol. Këtu ne jemi duke u siguruar që ata Aksionet në fakt hyrë. Dhe këtu ne jemi duke u siguruar që ata hyri në një numër të plotë për aksionet, në mënyrë ata nuk janë duke u përpjekur për të blerë aksionet e ABC. Tani ne duam të shikojmë deri çmimin e simbol kështu që ne e dimë se sa të holla Ne duhet të zbresë nga përdoruesit. Tani ne do të zgjidhni se sa të holla përdoruesit në të vërtetë ka dhe të sigurohemi që që pati sukses. Këtu ne jemi duke grabbing të holla. Dhe tani këtu, ne jemi duke u siguruar se përdoruesi ka të holla të mjaftueshme. Pra, nëse numri i aksioneve përdoruesit dëshiron që të blej herë çmimin e secilit e atyre aksioneve është më e madhe se sa Shuma e parave që ne kemi, atëherë përdoruesi nuk mund të përballojë atë. Duke supozuar se përdoruesi ka të holla të mjaftueshme, tani ne duam të futur në Portofoli përdoruesit. E pra, ne do të futur në e shfrytëzuesit Portofoli nëse kjo ndodh të jetë hera e parë që përdoruesi është blerja se simbol të veçantë. Por ajo që në qoftë se ata tashmë të ndodhë që të ketë disa aksioneve Apple? E pra, tani ne jemi duke e bërë përdorimin e më kopjuar deklaratë kyç update. Pra, kjo është arsyeja pse ne specifikuar më herët se ID dhe duhet të jetë një simbol i përbashkët kyç primar, kështu që në qoftë se ne të përpiqemi për të futur një ID dhe simbol që janë tashmë atje, ne vetëm do të rinovuar Aksionet për të përfshirë aksionet e reja që përdoruesi është blerja. Tani ne duam të rinovuar sasinë e të holla që përdoruesi ka, pasi që ata vetëm shpenzuar disa para në këto aksione. Dhe në fund, ne do update Tabela historia përsëri. E cila, përsëri, ne do të shikojmë në në një të dytë. Dhe në fund ne do të përcjellim mbështetur në portfolio.PHP. Pra, le të marrin një vështrim në Tabela e historisë. Tani mos harroni se tabela historia është duhet të mbajnë gjurmët e të gjitha blen dhe shet që të gjithë përdoruesit të bëjnë, jo vetëm Numri aktual i aksioneve që përdoruesit kanë, e cila është ajo që Portofoli është për. Pra, ne jemi duke e mbajtur gjurmët e përdoruesit që është blerja ose shitja, nëse ky transaksion të veçantë ishte një blej ose një shitje, simbol që është duke u blerë ose shitur, numri i aksioneve se ne jemi blerjen apo shitjen, Çmimi i një pjesë të vetme që është duke u blerë ose shitur, dhe më në fund, herën se ky blerjen ose shitjen po ndodh. Dhe kjo është e gjitha e historisë Informacioni që ne kemi nevojë për të mbajtur nën të. Pra, kur kemi shikuar në të shitur, ne pamë se ne u futur në histori të shitur, si nëse ne jemi blerjen ose shitjen, vulën e kohës aktuale, dhe përdoruesit aktual, simbol që është duke u shitur, numri i aksioneve që janë të duke u shitur, dhe çmimi i aksioneve në këtë kohë. Në mënyrë të ngjashme, në të blerë, ajo do të shikoni pothuajse e njëjtë. Dallimi i vetëm është në vend e shitjes, ne jemi duke blerë. Pra, për të shitur dhe për të blerë, ne jemi futur në Tabela e historive të gjitha blen dhe shet të cilat janë duke ndodhur. Pra, të gjithë history.PHP duhet të bëni është të kap informata nga historia tavolinë, sigurohuni që ajo arriti, dhe bëjnë këtë informacion. Pra, duke kërkuar në template history.PHP, informacioni interesante është e drejtë këtu. Ne jemi looping mbi të gjitha transaksionet, shtypjen nëse kjo ishte blerë ose shitur, formatimin data koha që kemi bërë këtë transaksion. Mos harroni ne kemi nevojë për të përdorur htmlspecialchars në simbol, vetëm në rast. Dhe së fundi, formatimin e numrit të aksionet që janë blerë dhe çmimit të e një pjesë të vetme në atë kohë. Dhe kjo tregon gjithë historinë Informacioni që ne kemi nevojë. Dhe kjo është ajo për këtë pset. Emri im është Rob, dhe kjo ishte CS50 Financave.