>> [Musikgengivelse]
>> ROB BOWDEN: Hej.
Jeg er Rob, og jeg håber du er klar at sætte lager i denne opløsning.
Først, lad os tage et kig på registret.
Så husk, at vi her tjekker for at se om en form var
indsendt til denne side.
>> Så første ting, vi vil at gøre, er at gå til andet.
Og vi kommer til at gengive registeret formularen.
Så registeret form går at skrive til register.php.
Og hvad det kommer til at sende?
Det kommer til at sende et brugernavn, som den brugeren kommer til at udfylde en adgangskode,
og en bekræftelse -
kodeordet indtastet igen.
>> Så nu når at formularen er indsendt til register.php vi udføre dette, hvis.
Ser man på dette, hvis vi først kommer til at validere input.
Vi ønsker at sikre, at brugernavnet og adgangskode ikke var tom, og at
bekræftelse faktisk svarer til adgangskoden.
Når vi har bekræftet, at vi kan faktisk registrere brugeren.
>> Hvad betyder det?
Nå, vi ønsker at indsætte bruger i vores database.
Og det er, hvordan vi vil gøre det.
Så vi kommer til at indsætte i brugerne tabel felterne brugernavn,
hash og kontanter.
>> Standardværdien af ​​kontanter vil være 10.000.
Og vi kommer til at passere som brugernavn, brugernavn, gennem POST super
globalt, der er indgivet fra formularen.
Og vi kommer til at kryptere adgangskoden.
>> Så hvis det lykkedes, så resulterer vil være ikke-falsk.
Hvis det mislykkedes, så vi vil gerne undskylde.
Noget gik galt.
Og hvad kunne være gået galt?
>> Nå, der er behov for et unikt brugernavn.
Og så forespørgslen kunne have undladt Hvis brugernavnet allerede
eksisterede i tabellen.
Så under forudsætning af at det var et unikt brugernavn, så vi kommer til at forespørge at få fat i
ID brugeren.
Husk, at id er auto-inkrementeringen.
>> Og så hvis det sker for at mislykkes for nogle grund, så vi vil gerne undskylde
at vi ikke kunne få fat i id.
Men under forudsætning af, at det ikke mislykkes, da vi Grib id fra, hvad forespørgslen
returneres, gemme det i vores session - så vi ønsker at logge denne bruger i ved
lagring af id i sessionen super globalt, og endelig
omdirigere til vores portefølje.
Og det er det for registeret.
>> Nu vil vi gå videre til citat.
Så citat kommer til at have en virkelig lignende sæt op.
Vi ser her, at dette er den kode, der vi kommer til at udføre, når en formular er
indsendt til denne side.
Men først skal vi faktisk har at gøre denne form.
Så tage et kig på citat form hvilke felter er der?
>> Vi ser, at al citat har er en enkelt tekstboks med navnet symbol.
Og så når citat formular er udstationeret til quote.PHP vi nu kommer til at
udføre denne kode.
Og den eneste variabel i vores POST super globalt bliver symbol.
>> Vi validere at sørge for, at de faktisk bogført symbolet.
Og hvis de ikke gjorde det, siger vi, at du skal give et symbol.
Antages de angav et symbol, vi ser op dette symbol.
>> Husk nu at kig op kan have mislykkedes siden, ja, måske var det ikke en
gyldigt symbol til at begynde med.
Så hvis dette ser op tilbagevenden falsk, vi vil gerne undskylde, at den
symbol blev ikke fundet.
Når vi har fundet det symbol, vi nu kan gengive quote.PHP skabelon.
>> Hvad betyder det så se ud?
Det er bare at udskrive, at en del uanset den bestandene navn var
er værd at uanset aktiekursen er.
Nu hvorfor vi bruger denne htmlspecialchars fungere?
Det er fordi bestanden navn og symbol kan faktisk indeholde særlige
tegn, der burde ikke fortolkes som HTML.
>> Okay, så det er det for citat.
Nu ønsker vi at se på index.php og portefølje.
Men først skal vi faktisk nødt til at konstruere porteføljerne bordet.
Her er, hvordan vi kommer til at gøre det.
>> Så lad os tage et kig på strukturen.
Og vi ser, at porteføljerne Tabellen vil have et ID.
Så det kommer til at være brugerens ID, der er at indsætte aktierne.
Vi har et symbol, der kommer til at være symbolet på det selskab, som vi er
indsætte aktier.
Og så aktier er antallet af aktier, der bliver indsat.
>> Så husk at pr PSET spec, vi præcisere, at id og symbol -
vi tjekke indekser, ID og symbol er den primære nøgle.
Så en bruger-id og symbol parring bør kun vises et enkelt
tid i denne tabel.
Lad os nu se på koden.
>> Så nu index.php kommer til at få fat i alle af vores portefølje information og
vise det til brugeren.
Så det første, vi kommer til at få fat i kontanter at brugeren i øjeblikket har fra
cash bord.
Husk, at forespørgslen er altid vil at returnere en array af arrays.
Så selvom vi kun udvalgte kontanter fra en enkelt række, er vi stadig nødt til at
grab, at kontanter ved at indeksere ind nulte indeks af rækker og snuppe den
kontant indeks.
>> Så nu er vi ønsker at vælge alle de oplysninger fra porteføljer tabellen
der er relevant for den aktuelt indloggede bruger.
Vi har naturligvis brug for at validere, at der faktisk lykkedes som vi
bør altid gøre, når vi forespørge.
Når vi har alle disse oplysninger, den PSET spec informerer os, at vi
bør gøre dette for at pænt opbevare alle oplysningerne i dette
positioner array.
>> Så vi looping over alle af portefølje information, se op
bestand er forbundet med hver række i portefølje, og klik derefter
lagring i position array navn, pris, aktier og symbol alle
forbundet med denne bestand.
Og endelig, vi kommer til at gengive portfolio.PHP, der passerer i mængden
af kontanter, vi har i øjeblikket, de positionerne array, vi bare
konstrueret, og titlen på dette side, som vil være portefølje.
>> Lad os tage et kig på portfolio.PHP.
Og vi ser, at de store interessant del er denne løkke.
Så vi looping over positioner matrix, hvilket skaber en
tabel, hvor den pågældende tabel -
vi befolker hver række med oplysninger, som vi sætter ind i
positioner array.
>> Igen, er vi nødt til at bruge htmlspecialchars i tilfælde dette symbol eller navnet
indeholde HTML tegn.
Og her er vi multiplicere prisen og det antal aktier, som vi har
for at få, hvor meget der er øjeblikket værd for brugeren.
Og det er det for portefølje.
>> Nu vil vi tage et kig på at sælge.
Så sælger kommer til at gå tilbage til det format, som vi havde i register.php.
Vi ser, at en formular går at blive udstationeret til denne side.
Men først, når vi indlæse siden, vi kommer til at gøre dette.
>> Så hvad er denne gør?
Nå, kunne vi bare have sell side have en enkelt tekstboks, som brugeren
kommer ind i denne symbol, vi ønsker at sælge.
Men vi kommer til at være en smule mere klog og vi kommer til at have en dråbe
ned, der tillader brugeren at vælge faktiske symboler, de allerede har.
>> Så vi får brugerens portefølje.
Vi kommer til at vælge fra porteføljer alle de symboler, som brugeren
har i øjeblikket, den aktuelt indloggede bruger.
Sørg for, at der er lykkedes.
Og nu vil vi løkken over den returnerede oplysninger, bare snuppe
hvert symbol, og lagre den i denne symboler array.
>> Og nu vil vi gengive sælge formularen.
Så sælge formularen vil bare være en drop down menu, en udvalgt.
Og hver enkelt indstilling i sælge formularen er vil bare udskrive symbolet
at vi greb fra porteføljer bordet.
>> Så sælge formularen kommer til indsende tilbage til sell.PHP.
Ser man på sell.PHP, dette er den kode, der kommer til at udføre, når vi indsende
til denne side.
Vi ønsker at validere at brugeren faktisk indtastet et symbol.
>> Nu antage, at de gjorde -
så nu vil vi bestemme, hvor mange deler brugeren faktisk sælger
og hvor mange penge brugeren bør få for at sælge, at mange aktier.
Så vi fat i antallet af aktier, brugeren har med dette symbol.
Vi kigger op i porteføljer for given bruger og givet symbol.
>> Nu sørg for, at der rent faktisk returnerede en række.
For hvis det ikke gjorde det, at brugeren ikke faktisk har dette symbol til at sælge.
Antages de har det symbol, vi ønsker at få fat i antallet af
aktier, som de har.
Og nu ønsker vi at slå op, hvordan meget hver aktie er værd.
>> Så brugte vi se op funktion.
Vi kigger op værdien af symbolet.
Antages det, at udseendet op lykkedes nu vi vil faktisk opdatere alle
oplysningerne.
Så vi ønsker at slette fra porteføljer de aktier, vi sælger.
Vi ønsker at opdatere brugerens beløb i kontanter.
>> Og vi opdatere den med aktier gange aktiekursen -
så det er hvor mange penge brugeren netop har lavet.
Og nu ønsker vi at opdatere vores historie.
Så har vi ikke taget et kig på historien tabellen endnu.
Så vi vil vende tilbage til dette.
>> Nu vi endelig kommer til at omdirigere tilbage til porteføljen.
Lad os nu tage et kig på køb.
Så køber bør være temmelig svarer til at sælge.
>> Vi ser, at vi igen kommer til at tjekke for at se, om vi er
indsender til denne side.
Antages det, at vi ikke er, er vi kommer til at indlæse buy formularen.
Så hvad betyder buy formular se ud?
>> Vi ser her, det er bare en almindelig danner der kommer til at
indsende tilbage til buy.PHP.
Og det kommer til at have et symbol, der brugeren indtaste antallet af
aktier, som brugeren ønsker at købe af dette symbol, og det er det.
Så når vi indsende tilbage til buy.PHP, er vi nu kommer til at udføre denne kode.
>> Vi igen vil validere, at den brugeren har indtastet noget gyldigt.
Så her er vi sikre, at de faktisk indtastet et symbol.
Her vil vi sikre, at de faktisk indtastede aktier.
Og her er vi sikre, at de indtastet et heltal for aktier, så
de prøver ikke at købe ABC aktier.
>> Nu ønsker vi at slå op prisen på symbol, så vi ved, hvor mange penge vi
bør trække fra brugeren.
Nu vil vi vælge, hvor meget kontant brugeren faktisk har, og sørg for, at
det lykkedes.
Her vil vi tage fat i kontanter.
Og nu her, vi sørge at brugeren har nok kontanter.
>> Så hvis antallet af aktier brugeren ønsker at købe gange prisen for hver
af disse aktier er større end kontante beløb, som vi har, så den
Brugeren kan ikke råd til det.
Antages det, at brugeren har penge nok, nu vil vi indsætte i
brugerens portefølje.
Nå, vi indsætte i brugerens portefølje, hvis det sker for at være den
første gang brugeren køber det pågældende symbol.
>> Men hvad nu, hvis de allerede ske at have nogle Apple lager?
Nå, nu vi gør brug af den på duplikere nøgle opdatering erklæring.
Så det er derfor tidligere vi angivet, at Id og symbol bør være en fælles
primær nøgle, så hvis vi forsøger at indsætte et id og symbol, der er
allerede der, vil vi bare opdatere aktier til også at omfatte de nye aktier,
brugeren køber.
>> Nu ønsker vi at opdatere mængden af kontanter, som brugeren har, fordi de
lige brugt nogle penge på disse aktier.
Og endelig, opdaterer vi historietabellen igen.
Hvilket igen, ser vi ved i en anden.
Og endelig vil vi omdirigere tilbage til portfolio.PHP.
>> Så lad os tage et kig på historie tabellen.
Husk nu, at historien tabellen er formodes at holde styr på alle køber og
sælger, at alle brugere gør, ikke bare de nuværende antal aktier, som
brugere, hvilket er hvad portefølje er for.
Så vi holde styr på den bruger, er køber eller sælger, uanset om
den pågældende transaktion var et køb eller en sælger, det symbol, der er at være
købt eller solgt antallet af aktier at vi køber eller sælger, den
prisen for en enkelt aktie, der bliver købt eller solgt, og endelig den tid
at dette køb eller salg forekommer.
>> Og det er alle historie oplysninger, som vi har brug for
at holde styr på.
Så når vi kiggede på at sælge, så vi, at blev vi indsætter i historien sælge,
som om vi køber eller sælger, det aktuelle tidsstempel, og den
aktuelle bruger, det symbol, der er at være sælges, antallet af aktier, der er
der sælges, og prisen på bestanden på dette tidspunkt.
Tilsvarende i buy, det vil ser næsten det samme.
Den eneste forskel er i stedet sælge, vi køber.
>> Så i at sælge og købe, vi indsættelse i Den historier tabellen alle
køber og sælger, der sker.
Så alt history.PHP skal gøre er at gribe oplysninger fra historie
bord, sørg for at det lykkedes, og gøre disse oplysninger.
Så ser på history.PHP skabelon, de interessante oplysninger
er lige her.
>> Vi looping over alle af transaktioner, trykning, om denne
var en købe eller sælge, formatering dato tid at vi gjorde denne transaktion.
Husk vi bruge htmlspecialchars på
symbol, just in case.
Og endelig, formatering af antallet af aktier, der blev købt, og prisen
en enkelt del på det tidspunkt.
>> Og der viser alle historie oplysninger, som vi har brug for.
Og det er det for denne PSET.
Mit navn er Rob, og dette var CS50 Finance.