[Musikk spilles] ROB BOWDEN: Hei. Jeg er Rob, og jeg håper du er klar å sette lager i denne løsningen. Først, la oss ta en titt på register. Så husk at her vi sjekker for å se om en form var postet på denne siden. Så første vi kommer å gjøre er å gå til den andre. Og vi kommer til å gjengi registeret skjemaet. Så registeret formen kommer å legge til register.php. Og hva går det å sende? Det kommer til å sende et brukernavn som den brukeren kommer til å fylle ut, et passord, og en bekreftelse - passordet skrevet inn igjen. Så nå når det skjemaet er lagt ut til register.php vi vil utføre dette hvis. Ser på dette hvis, vi er først kommer til å validere input. Vi vil være sikker på at brukernavnet og passord var ikke tom, og at bekreftelsen faktisk passer til passordet. Når vi har bekreftet at vi kan faktisk registrere bruker. Hva betyr det? Vel, ønsker vi å sette inn bruker i vår database. Og dette er hvordan vi skal gjøre det. Så vi kommer til å sette inn de brukerne Tabellen feltene brukernavn, hasj, og kontanter. Standardverdien av kontanter kommer til å være 10.000. Og vi kommer til å passere som brukernavn, brukernavn, gjennom POST super globale som er sendt fra skjemaet. Og vi kommer til å kryptere passordet. Så hvis det lykkes, resulterer da vil være ikke-usann. Hvis det mislyktes, da vi ønsker å be om unnskyldning. Noe gikk galt. Og hva kunne ha gått galt? Vel, det må være et unikt brukernavn. Og så kan søket har feilet Hvis brukernavnet allerede eksisterte i tabellen. Så antar det var et unikt brukernavn, så vi kommer til å spørre for å ta tak i ID til den brukeren. Husk at ID er automatisk øke. Og så hvis det skjer for å mislykkes for noen grunn, så vi vil be om unnskyldning at vi ikke kunne ta tak i ID. Men forutsatt at det ikke mislykkes, da vi ta tak i ID fra hva spørringen returnerte, lagre det i vår sesjon - så vi ønsker å logge denne brukeren i ved lagring av ID i sesjonen super global, og til slutt omdirigere til vår portefølje. Og det er det for register. Nå skal vi gå videre til sitatet. Så sitatet kommer til å ha en veldig lignende sett opp. Vi ser her at dette er koden som vi kommer til å kjøre når et skjema er postet på denne siden. Men først vi faktisk har å gjengi det skjemaet. Så ta en titt på tilbudsskjemaet, hvilke felt er det? Vi ser at alle sitatet har er et enkelt tekstboks med navnet symbol. Og så når tilbudsskjemaet er lagt ut til quote.PHP vi nå kommer til å utføre denne koden. Og den eneste variabelen i vår POST super global kommer til å være symbol. Vi validere at for å være sikker på at de faktisk postet symbolet. Og hvis de ikke gjorde det, sier vi at du må gi et symbol. Antar de gi et symbol, vi se opp som symbol. Nå må du huske at look up kan ha mislyktes siden, vel, kanskje det ikke var en gyldig symbol til å begynne med. Så hvis dette ser opp return false, vi ønsker å be om unnskyldning for at Symbolet ble ikke funnet. Når vi har funnet symbolet, nå er vi kan gjengi quote.PHP mal. Hva betyr det se ut? Det er bare kommer til å skrive at en aksje av hva bestandene navn var er verdt hva aksjekursen er. Nå hvorfor bruker vi denne htmlspecialchars fungere? Det er fordi de lager navn og symbol kan faktisk inneholde spesiell tegn som ikke bør tolkes som HTML. Ok, så det er det for sitat. Nå ønsker vi å se på index.php og portefølje. Men først vi faktisk trenger for å konstruere porteføljene tabellen. Her er hvordan vi kommer til å gjøre det. Så la oss ta en titt på strukturen. Og vi ser at porteføljene Tabellen kommer til å ha en ID. Så det kommer til å være brukerens ID som er å sette inn aksjene. Vi har et symbol, noe som kommer til å være symbolet på selskapet som vi er sette aksjene for. Og så aksjer er antall andeler som blir satt inn. Så husk at per i PSett spec, vi spesifisere at ID og symbol - vi sjekke ut indekser, ID og symbolet er primærnøkkelen. Så en bruker-ID og symbol sammenkobling skal bare vises en enkelt tid i denne tabellen. La oss nå se på koden. Så nå index.php kommer til å ta alle av vår informasjon og portefølje vise det til brukeren. Så først, vi kommer til å ta tak i kontanter at brukeren har for tiden fra cash bord. Husk, at søket er alltid kommer å returnere en rekke matriser. Så selv om vi bare valgt kontanter fra en enkelt rad, vi trenger fortsatt å grip at penger ved å indeksere inn i zeroth indeks over rader og gripe cash indeksen. Så nå ønsker vi å velge alle informasjon fra porteføljer tabellen som er relevant for den tiden påloggede brukeren. Vi trenger selvsagt å validere at som faktisk lykkes, som vi bør alltid gjør når vi spørre. Når vi har all denne informasjonen, den PSett spec informerer oss om at vi bør gjøre dette for å pent lagre all informasjon i denne posisjoner array. Så vi looping over alt av portefølje informasjon, se opp lager tilknyttet hver rad i porteføljeinformasjon, og deretter lagring i stillingen matrisen navnet pris, aksjer og symbol alle assosiert med det lager. Og til slutt, kommer vi til å gjengi portfolio.PHP, passerer inn beløpet av kontanter for tiden vi har, jo posisjoner array som vi bare konstruert, og tittelen på denne side som vil være portefølje. La oss ta en titt på portfolio.PHP. Og vi ser at de store interessant del er denne sløyfen. Så vi looping over posisjoner matrise, og skaper en tabell, der det bordet - vi fyller hver rad med informasjon som vi satt inne i posisjoner array. Igjen, må vi bruke htmlspecialchars i tilfelle dette symbolet eller navnet inneholde HTML-tegn. Og her er vi multiplisere pris og mengden aksjer som vi har for å få hvor mye det er i dag verdt for brukeren. Og det er det for porteføljen. Nå skal vi ta en titt på selger. Så selger kommer til å gå tilbake til format som vi hadde i register.php. Vi ser at en form skal å bli lagt ut på denne siden. Men først når vi laster siden, vi kommer til å gjøre dette. Så hva er dette å gjøre? Vel, kunne vi bare ha sell-side har et enkelt tekstboks som brukeren går dette symbolet som vi ønsker å selge. Men vi kommer til å være litt mer smart og vi kommer til å ha en dråpe ned som lar brukeren velge faktiske symboler som de allerede har. Så vi får brukeren portefølje. Vi kommer til å velge fra porteføljer alle symbolene som brukeren har i dag, som for øyeblikket påloggede brukeren. Sørg for at det lyktes. Og nå skal vi sløyfe over tilbake informasjon, bare gripe hvert symbol, og lagre den i denne symboler array. Og nå skal vi gjengi selger skjemaet. Så selger skjemaet skal bare være en rullegardinmeny, en utvalgt. Og hvert alternativ på selger form er kommer til å bare skrive ut symbolet at vi grep fra porteføljer tabellen. Så selger skjemaet skal sende tilbake til sell.PHP. Ser på sell.PHP, er dette koden som kommer til å kjøre når vi sender til denne siden. Vi ønsker å validere at brukeren gikk faktisk inn et symbol. Nå antar at de gjorde - så nå ønsker vi å finne ut hvor mange deler brukeren er faktisk selger og hvor mye penger de bruker skal få for å selge så mange aksjer. Så vi ta det antall aksjer som brukeren har etter dette symbolet. Vi leter opp i porteføljer for gitt brukeren og det gitte symbol. Nå må du kontrollere at det faktisk returneres rad. Fordi hvis det ikke gjorde det, gjør ikke brukeren faktisk har som symbol for å selge. Forutsatt at de har som symbol, vi ønsker å ta tak i antall aksjer som de har. Og nå ønsker vi å slå opp hvordan mye hver aksje er verdt. Så vi brukte ser opp funksjon. Vi leter opp verdien av symbolet. Forutsatt at utseendet opp lyktes, nå vi kommer til å faktisk oppdatere alle informasjonen. Så vi ønsker å slette fra porteføljer aksjene som vi selger. Vi ønsker å oppdatere brukerens mengde kontanter. Og vi oppdatere den med aksjer ganger aksjekursen - så det er hvor mye penger brukeren bare gjort. Og nå ønsker vi å oppdatere vår historie. Så vi har tatt en titt på historien bordet ennå. Så får vi komme tilbake til dette. Nå endelig kommer vi til å omdirigere tilbake til porteføljen. La oss nå ta en titt på kjøp. Så, kjøper bør være ganske lignende for å selge. Vi ser at vi igjen kommer å sjekke for å se om vi er innsending til denne siden. Forutsatt at vi ikke er, er vi kommer til å laste buy skjemaet. Så hva betyr buy skjemaet se ut? Vi ser her det er bare en vanlig danner det kommer til å sende tilbake til buy.PHP. Og det kommer til å ha et symbol som brukeren går inn, antall aksjer som brukeren ønsker å kjøpe av det symbolet, og det er det. Så når vi sender tilbake til buy.PHP, er vi nå kommer til å kjøre denne koden. Vi igjen ønsker å validere at bruker angitt noe gyldig. Så her er vi sørge for at de gikk faktisk inn et symbol. Her skal vi sørge for at de som faktisk har aksjer. Og her er vi å sørge for at de inngikk et heltall for aksjer, så De prøver ikke å kjøpe ABC aksjer. Nå ønsker vi å se opp prisen på symbol, slik at vi vet hvor mye penger vi bør trekke fra brukeren. Nå skal vi velge hvor mye penger brukeren faktisk har og sørge for at som lyktes. Her skal vi ta tak i kontanter. Og nå her, gjør vi sikkert at brukeren har nok kontanter. Så hvis det antall aksjer brukeren ønsker å kjøpe ganger prisen på hvert av disse andeler er større enn Mengden av kontanter som vi har, så Brukeren kan ikke råd til det. Forutsatt at brukeren har nok kontanter, Nå ønsker vi å sette inn i brukerens portefølje. Vel, vi skal sette inn i brukerens portefølje dersom dette skjer for å være den første gang brukeren kjøper det bestemt symbol. Men hva hvis de allerede skje å ha noen Apple lager? Vel, nå er vi å gjøre bruk av den på duplisert nøkkel oppdatering uttalelse. Så dette er grunnen til at tidligere angitt vi at ID og symbolet skal være en felles primærnøkkel, slik at hvis vi prøver å sette inn en ID og symbol som er allerede er der, vil vi bare oppdatere aksjer for å inkludere de nye aksjene som brukeren kjøper. Nå ønsker vi å oppdatere mengden kontanter som brukeren har, siden de bare brukt noen penger på disse aksjene. Og til slutt, vil vi oppdatere historien tabellen igjen. Som, igjen, vil vi se på i et sekund. Og til slutt vil vi omdirigere tilbake til portfolio.PHP. Så la oss ta en titt på historien tabellen. Nå må du huske at historien tabellen er ment for å holde orden på alle kjøp og selger at alle brukere gjør, ikke bare den nåværende antall aksjer som Brukerne har, som er det Porteføljen er for. Så vi holder styr på brukeren som kjøper eller selger, enten denne transaksjonen var et kjøp eller en selger, symbolet det er å være kjøpt eller solgt, antall aksjer at vi kjøper eller selger, den prisen av en enkelt aksje det er å være kjøpt eller solgt, og til slutt, den gang at dette kjøp eller salg er oppstått. Og det er alt av historien informasjon som vi trenger å holde styr på. Så når vi så på selger, vi så at vi setter inn i historien selger, som om vi kjøper eller selger, gjeldende klokkeslett-stempel, og den gjeldende bruker, symbolet det er å være solgt, det antall aksjer som er blir solgt, og prisen på aksjen på dette tidspunktet. Tilsvarende, i kjøp, det vil ser nesten det samme. Den eneste forskjellen er i stedet av selger, vi kjøper. Så i å selge og kjøpe, vi setter inn den historier tabellen hele kjøper og selger som skjer. Så alt history.PHP trenger å gjøre er å ta tak informasjonen fra loggen bord, sørg for at det lyktes, og gjengi denne informasjonen. Så se på history.PHP mal, det interessant informasjon er rett her. Vi looping over alt av transaksjoner, trykking om dette var en kjøpe eller selge, formatering Dato at vi har gjort denne transaksjonen. Husk vi trenger å bruke htmlspecialchars på symbol, bare i tilfelle. Og til slutt, formatering antall aksjer som ble kjøpt, og prisen av en enkelt aksje på den tiden. Og som viser hele loggen informasjon som vi trenger. Og det er det for denne PSett. Mitt navn er Rob, og dette var CS50 Finance.