>> [MUSIK SPELA]
>> ROB BOWDEN: Hej.
Jag är Rob, och jag hoppas att du är redo att sätta lager i denna lösning.
Först, låt oss ta en titt på register.
Så kom ihåg att här vi kollar för att se om ett formulär var
skickas till den här sidan.
>> Så första vi ska göra är att gå till annat.
Och vi kommer att göra registret form.
Så registret formen kommer att lägga till register.php.
Och vad kommer det att skicka?
Det kommer att skicka ett användarnamn att användaren ska fylla i, ett lösenord,
och en bekräftelse -
lösenordet skrivs igen.
>> Så nu när formuläret postas till register.php vi ska utföra detta om.
Titta på detta om, är vi först kommer att validera den ingången.
Vi vill se till att användarnamnet och lösenordet inte var tomma och att
bekräftelsen faktiskt matchar lösenordet.
När vi har verifierat att vi kan faktiskt registrera användaren.
>> Vad innebär det?
Jo, vi vill infoga användare i vår databas.
Och det är hur vi ska göra det.
Så vi kommer att sätta in användarna tabellen fält användarnamn,
hash, och kontanter.
>> Standardvärdet av kontanter kommer att bli 10.000.
Och vi kommer att passera som användarnamn, användarnamn, genom POST super
globalt som har lämnats in från formuläret.
Och vi kommer att kryptera lösenordet.
>> Så om det lyckades, resulterar sedan kommer att vara icke-falskt.
Om det misslyckades, då vi vill be om ursäkt.
Något gick fel.
Och vad kan ha gått fel?
>> Tja, det måste finnas ett unikt användarnamn.
Och så frågan skulle ha misslyckats Om användarnamnet redan
existerade i tabellen.
Så om det nu var ett unikt användarnamn, då ska vi fråga att ta tag i
ID: t för den användaren.
Kom ihåg att ID är automatisk uppräkning.
>> Och så om det händer att misslyckas av någon skäl, då vill vi be om ursäkt
att vi inte kunde ta tag i ID.
Men antar att det inte misslyckas, då vi ta tag i ID från vad frågan
återvände, förvara det i vår session - så vi vill logga den här användaren genom
lagring av ID i sessionen super globalt, och slutligen
omdirigera till vår portfölj.
Och det är det för registret.
>> Nu ska vi gå vidare till citat.
Så citat kommer att ha ett riktigt liknande uppsättning upp.
Vi ser här att det är den kod som vi kommer att köras när ett formulär är
skickas till den här sidan.
Men först vi faktiskt har att göra detta formulär.
Så ta en titt på citat form, vilka områden finns det?
>> Vi ser att alla citat har är en enda textruta med namnet symbolen.
Och så när quote formuläret postas till quote.PHP vi nu att
exekvera denna kod.
Och den enda variabeln i vår POST super globalt kommer att bli symbol.
>> Vi validera att se till att de faktiskt postade symbolen.
Och om de inte gjorde det, säger vi att du måste tillhandahålla en symbol.
Förutsatt att de lämnade en symbol, vi ser upp som symbol.
>> Nu kom ihåg att titta upp kan ha misslyckades eftersom, ja, kanske det inte var en
giltig symbol till att börja med.
Så om detta se upp återvändande falskt, vi vill beklagar att
symbolen hittades inte.
När vi har hittat symbolen, nu vi kan återge det quote.PHP mall.
>> Vad ser det ut som?
Det är bara att skriva ut att en aktie oavsett det bestånd hette
är värt vad aktiekursen är.
Nu varför vi använder denna htmlspecialchars fungera?
Det beror på att aktie namn och symbol kan faktiskt innehålla särskilda
tecken som inte bör tolkas som HTML.
>> Okej, så det är det för offert.
Nu vill vi titta på index.php och portfölj.
Men först vi faktiskt behöver för att bygga tabellen portföljer.
Här är hur vi ska göra det.
>> Så låt oss ta en titt på strukturen.
Och vi ser att portföljerna Tabellen kommer att få ett ID.
Så det kommer att vara användarens ID som är att föra in aktierna.
Vi har en symbol, som kommer att bli symbolen för det företag som vi är
föra in aktierna för.
Och då aktier är antalet aktier som håller på att införas.
>> Så kom ihåg att per den pset spec, vi ange att ID och symbol -
vi kolla index, ID och symbolen är primärnyckel.
Så ett användar-ID och symbolhoppar ska bara visas en enda
gången i den här tabellen.
Nu ska vi titta på koden.
>> Så nu index.php kommer att ta alla i vår portfölj information och
visa den för användaren.
Så först ska vi få tag på kontanter att användaren har för närvarande från
cash bord.
Kom ihåg att den frågan kommer alltid att returnera en matris med matriser.
Så även om vi bara valt kontanter från en enda rad, ändå måste vi
ta det pengar genom att indexera in i nollte index rader och ta tag i
kontanter index.
>> Så nu vill vi markera alla information från tabellen portföljer
som är relevant för den aktuella inloggade användaren.
Vi behöver naturligtvis att validera att som faktiskt lyckats, vilket vi
ska alltid göra när vi fråga.
När vi har all denna information, den pset spec informerar oss om att vi
bör göra detta för att snyggt lagra all information i denna
positioner array.
>> Så vi loopa över alla de portföljinformation, se upp
lager är associerad med varje rad i portföljinformation och sedan
lagring i den position array namnet, pris, aktier och symbol alla
förknippas med det beståndet.
Och slutligen, kommer vi att göra portfolio.PHP, som går i mängden
av kontanter vi har för närvarande, det positioner array som vi bara
konstrueras, och titeln på denna sida som kommer att vara portfölj.
>> Låt oss ta en titt på portfolio.PHP.
Och vi ser att de stora intressanta delen är denna slinga.
Så vi looping över positionerna matris, vilket skapar en
bord, där det bordet -
vi fylla varje rad med information som vi lägger in i
positioner array.
>> Återigen måste vi använda htmlspecialchars ifall denna symbol eller namn
innehåller HTML-tecken.
Och här vi multiplicera priset och det antal aktier som vi har
för att få hur mycket som är för närvarande värd för användaren.
Och det är det för portfölj.
>> Nu tar vi en titt på sälja.
Så säljer kommer att gå tillbaka till format som vi hade i register.php.
Vi ser att ett formulär ska för att skickas till den här sidan.
Men först, när vi laddar sidan, Vi ska göra det här.
>> Så vad är det här att göra?
Tja, vi kan bara ha säljsidan har en enda textruta som användaren
går denna symbol att vi vill sälja.
Men vi ska vara lite mer smart och vi kommer att ha en droppe
ner som tillåter användaren att välja verkliga symboler som de redan har.
>> Så vi får användarens portfölj.
Vi kommer att välja mellan portföljer alla symbolerna som användaren
har idag, den för tillfället inloggade användaren.
Se till att det lyckades.
Och nu ska vi slinga över tillbaka information, bara ta tag
varje symbol, och lagra den i detta symboler array.
>> Och nu ska vi göra sälja formuläret.
Så säljer formuläret ska bara vara en rullgardinsmeny, en utvald.
Och varje alternativ i sälj formen är kommer att bara skriva ut symbolen
att vi tog från portföljer tabell.
>> Så säljer formuläret kommer att skicka tillbaka till sell.PHP.
Om man tittar på sell.PHP, detta är den kod det kommer att köras när vi in
till den här sidan.
Vi vill validera att användaren faktiskt kommer in en symbol.
>> Nu antar att de gjorde -
så nu vill vi bestämma hur många delar som användaren faktiskt säljer
och hur mycket pengar användaren ska få för att sälja så många aktier.
Så vi ta det antal aktier som användaren har för denna symbol.
Vi tittar upp i portföljerna för given användare och den givna symbolen.
>> Nu se till att det faktiskt return rad.
För om det inte gjorde det, inte användaren faktiskt har den symbolen för att sälja.
Förutsatt att de har den symbolen, vi vill ta det antal
aktier som de har.
Och nu vill vi att slå upp hur mycket varje aktie är värd.
>> Så vi använde slå upp funktionen.
Vi letar upp värdet av symbolen.
Med antagande av att titta upp lyckats, nu vi ska faktiskt uppdatera alla
informationen.
Så vi vill ta bort från portföljer de aktier som vi säljer.
Vi vill uppdatera användarens mängd kontanter.
>> Och vi uppdaterar den med aktier gånger aktiekursen -
så det är hur mycket pengar användaren just gjort.
Och nu vill vi att uppdatera vår historia.
Så vi har tagit en titt på historien tabellen än.
Så vi ska återkomma till detta.
>> Nu äntligen ska vi omdirigera tillbaka till portföljen.
Nu ska vi ta en titt på köp.
Så, köpa borde vara ganska liknande att sälja.
>> Vi ser att vi återigen kommer för att kontrollera om vi är
lämna in till den här sidan.
Förutsatt att vi inte är, vi är går att ladda köp formuläret.
Så vad betyder det köp formuläret ut?
>> Vi ser här att det är bara en vanlig bildar det kommer att
skicka tillbaka till buy.PHP.
Och det kommer att ha en symbol som användaren är på väg in, antal
aktier som användaren vill köpa av den symbolen, och det är det.
Så när vi lämna tillbaka till buy.PHP, vi är nu kommer att köra den här koden.
>> Vi vill återigen för att validera att användaren angett något giltigt.
Så här är vi se till att de faktiskt kommer in en symbol.
Här vi se till att de som faktiskt förs in aktier.
Och här vi se till att de in ett heltal aktier, så
De försöker inte köpa ABC-aktier.
>> Nu vill vi titta upp priset på symbol så vi vet hur mycket pengar vi
bör dra från användaren.
Nu väljer vi hur mycket pengar användaren faktiskt har och se till att
det lyckades.
Här vi ta tag i kontanter.
Och nu här, vi se till att användaren har tillräckligt med kontanter.
>> Så om det antal aktier användaren vill köpa gånger priset för varje
av dessa aktier är större än mängd kontanter som vi har, då den
Användaren har inte råd med det.
Med antagande av att användaren har tillräckligt med kontanter, nu vill vi sätta in i
användarens portfölj.
Nåväl, vi sätter in i användarens portfölj om det råkar vara
Första gången användaren köper att särskild symbol.
>> Men vad händer om de redan hända att ha lite Apple lager?
Nåväl, nu är vi att använda sig av den duplicera nyckel uppdatering uttalande.
Så det är därför tidigare vi angett att ID och symbolen ska vara en gemensam
primärnyckel, så att om vi försöker sätt in ett ID och symbol som är
redan där, vi bara uppdatera aktier för att inkludera de nya aktierna som
användaren köper.
>> Nu vill vi att uppdatera den mängd pengar som användaren har, eftersom de
precis spenderat lite pengar på dessa aktier.
Och slutligen, vi uppdaterar historia bordet igen.
Vilket, återigen, kommer vi att titta på i en sekund.
Och slutligen ska vi styra om tillbaka till portfolio.PHP.
>> Så låt oss ta en titt på historiktabellen.
Kom nu ihåg att historien tabellen är tänkt att hålla reda på alla köper och
säljer att alla användare gör, inte bara den nuvarande antal aktier som
användarna har, vilket är vad portfölj är för.
Så vi hålla reda på användaren som köper eller säljer, oavsett om
denna transaktion var ett köp eller en försäljning, en symbol som är att vara
köpts eller sålts, antalet aktier att vi ska köpa eller sälja, det
priset för en enskild aktie som är att vara köpas eller säljas, och slutligen, den tid
att köpa eller sälja sker.
>> Och det är allt historia information som vi behöver
att hålla reda på.
Så när vi tittade på sälja, såg vi att vi sätter in i historien sälja,
som om vi ska köpa eller sälja, den aktuella tidsstämpel, och
aktuella användaren, symbolen som är att vara säljas, det antal aktier som
säljs, och priset på beståndet vid denna tid.
Likaså i köpa, det ska ser nästan likadana ut.
Den enda skillnaden är i stället att sälja, vi köper.
>> Så i sälja och köpa, vi sätter in i tabellen historier alla av
köper och säljer som händer.
Så allt history.PHP behöver göra är att ta tag informationen från historiken
bord, se till att det lyckades, och göra den informationen.
Så titta på history.PHP mallen, det intressant information
är just här.
>> Vi looping över alla de transaktioner, tryckning huruvida detta
var en köpa eller sälja, formatering datum tid att vi gjorde den här transaktionen.
Kom ihåg måste vi använda htmlspecialchars på
symbol, för säkerhets skull.
Och slutligen, formatering av antalet aktier som köptes och priset
av en enda aktie på den tiden.
>> Och som visar hela historien information som vi behöver.
Och det var allt för denna pset.
Mitt namn är Rob, och detta var CS50 Finance.