[Muusika mängib] ROB BOWDEN: Hi. Olen Rob ja ma loodan, et sa oled valmis panna laos seda lahendust. Esiteks, võtame pilk register. Seega pidage meeles, et siin me kontrollime kas vorm oli postitatud sellele lehele. Nii et esimene asi, mida me ei kavatse teha, on minna mujale. Ja me ei kavatse muuta Registri vorm. Nii register vorm läheb postitada register.PHP. Ja mida ta kavatseb saata? See saab saata kasutajanimi, et kasutaja saab täita, parool, ja kinnitus - UUS tipitud uuesti. Nüüd, kui see vorm on lähetatud register.PHP me täita seda kui. Vaadates seda, kui me oleme esimene läheb valideerida sisendi. Me tahame veenduda, et kasutajanimi ja parool ei ole tühi ja et kinnituse tegelikult sobib salasõna. Kui oleme kontrollinud, et suudame tegelikult registreerib kasutaja. Mida see tähendab? Noh, me tahame, et sisestada kasutaja meie andmebaasist. Ja see on see, kuidas me teeme seda. Nii et me ei kavatse lisada kasutajaid tabeli väljad kasutajanimi hash ja sularaha. Vaikimisi väärtus raha saab olema 10000. Ja me läheme edasi, nagu kasutajanimi, kasutajanimi kaudu POST super ülemaailmne, mis on esitatud alates vormi. Ja me ei kavatse varjata parool. Nii et kui see õnnestus, siis tulemuseks on mitte-vale. Kui see ei õnnestunud, siis me tahan vabandada. Midagi läks valesti. Ja mis võiks olla valesti läinud? Noh, seal peab olema unikaalne kasutajanimi. Ja nii päringu oleks suutnud kui kasutajanimi on juba olemas laud. Seega eeldades, et see oli ainulaadne kasutajanime siis me päringuid haarata ID selle kasutaja. Pea meeles, et ID on auto-incrementing. Ja kui see juhtub, ei suuda mingil põhjusel, siis tahan vabandada et me ei suutnud haarata ID. Kuid kui eeldada, et see ei õnnestu, siis me haarata ID, mida päringu tagastata, salvestada, et meie istungi - nii et me tahame, et logida selle kasutaja poolt ladustamiseks ID istungil super globaalne, ja lõpuks suunata meie portfelli. Ja see on see register. Nüüd me liikuda edasi tsiteerida. Nii quote läheb on tegelikult sarnane ülesehitus. Me näeme siin, et see on kood, mis me ellu kui vorm on postitatud sellele lehele. Aga kõigepealt me ​​tegelikult muuta, et vorm. Nii võttes pilk quote kujul, millistes valdkondades on olemas? Me näeme, et kõik quote on üksik tekstikasti nime sümbol. Ja kui päring on postitatud et quote.PHP me nüüd läheb täita seda koodi. Ja ainus muutuja meie POST super ülemaailmne saab olema sümbol. Me kinnitada, et veenduda, et nad tegelikult postitatud sümbol. Ja kui nad seda ei teinud, siis ütled, tuleb ette sümbol. Eeldades, nad tegid pakkuda sümbol, me vaatame üles, et sümbol. Nüüd pidage meeles, et vaadata up võib olla ebaõnnestus, sest, noh, võib-olla see ei olnud kehtiv sümbol alustada. Nii et kui see üles otsima tagasi false, tahame vabandada, et sümbol ei leitud. Kui oleme leidnud sümbol, nüüd võib muuta quote.PHP malli. Mida see välja näeb? See on lihtsalt trükkimineku et osa olenemata varudest nimi oli Tasub iganes aktsia hind. Nüüd miks me kasutame seda htmlspecialchars toimida? Ongi, sest aktsia nimi ja sümbol võib tegelikult sisaldavad erilisi märgid, mis ei tohiks tõlgendada kui HTML. Olgu, see on seda tsiteerida. Nüüd tahame vaadata index.php ja portfelli. Aga kõigepealt me ​​tegelikult vaja ehitada portfellide tabelis. Siin on, kuidas me seda teeme. Võtame pilk struktuuri. Ja me näeme, et portfellid tabel läheb on ID. Nii et see saab olema kasutaja ID, mis on paigaldamisel aktsiatest. Meil on sümbol, mis saab olema sümbol firma, et me oleme sisestades aktsiaid. Ja siis on aktsiate arv aktsiaid, mis on sisestatud. Seega pidage meeles, et iga pset spec, me täpsustada, et ID ja sümbol - me kontrollida indeksid, ID ja sümbol on primaarvõti. Nii kasutajatunnus ja sümbol sidumist ilmub ainult ühe aega selles tabelis. Nüüd vaatame koodi. Nüüd index.php läheb haarata kõik Meie portfell info ja näitab seda, et kasutaja. Nii et esimene, me haarata raha et kasutaja on praegu alates raha lauale. Pea meeles, et päring on alati saab tagasi array massiivid. Nii et kuigi me ainult valitud raha ühest reas, meil on vaja veel haarata, et sularaha indekseerimine zeroth indeksi rida ja haarates raha indeks. Nüüd tahame, et valida kõik teavet portfellide tabel see on asjakohane, et praegu sisse loginud kasutaja. Me muidugi vaja kinnitada, et et tegelikult õnnestus, mis me peaksid alati tegema, kui me päringuid. Kui meil on kõik see info, pset spec teatab meile, et me peaks seda tegema, et ilusti talletada kõik andmed selles seisukohti massiivi. Nii et me silmusega üle kõik portfelli informatsiooni, soojaks aktsia, mis on seotud iga rea portfelli teavet ja seejärel salvestamine positsioon array nimi, hind, aktsiate ja sümbol kõik seotud selle aktsia. Ja lõpuks, me ei kavatse muuta portfolio.PHP, mis kulgeb summas raha meil on praegu, seisukohti massiivi, et me lihtsalt ehitatud ja pealkiri see leht, mis on portfelli. Võtame pilk portfolio.PHP. Ja me näeme, et suur huvitav osa on see ahel. Nii et me silmusega üle positsioone massiiv, luues tabel, kus see tabel - me rahvastamises iga rida teavet, et me sinna sisse panna seisukohti massiivi. Jällegi peame kasutama htmlspecialchars juhul kui see sümbol või nimi sisaldavad HTML tähemärki. Ja siin me korrutame hinna ja aktsiate kogus, mis meil on selleks, et saada, kui palju see on praegu tasub kasutaja. Ja see on seda portfelli. Nüüd võtame pilk müüa. Nii sell läheb tagasi minna formaat, mis meil oli register.PHP. Me näeme, et vorm läheb postitatakse sellele lehele. Aga esiteks, kui me koormus lehele me teeme seda. Niisiis, mida see teeb? Noh, me võiksime lihtsalt sell lehele on ühte teksti kasti et kasutaja kannab seda sümbolit tahame müüa. Aga me ei kavatse olla natuke targem ja me lähed on drop alla, mis võimaldab kasutajal valida tegelik sümbolid, mis neil juba on. Nii et me lähme alla portfellis. Me valida portfellide kõik sümbolid, mis kasutaja Praegu on, praegu sisse loginud kasutaja. Veenduge, et õnnestus. Ja nüüd me läheme silmus üle tagastatakse teave, lihtsalt haarata Iga sümbol, ja säilitamist Selles sümbolid massiivi. Ja nüüd me läheme muuta sell vormi. Nii sell vorm läheb lihtsalt olema rippmenüüst valige. Ja iga võimalust müüa vorm läheb lihtsalt välja printida sümbol et me haarasid portfellide tabelis. Nii sell vorm läheb esitama tagasi sell.PHP. Vaadates sell.PHP, on see kood et läheb täide, kui me esitama sellele lehele. Me tahame kinnitada, et kasutaja tegelikult kantud sümbol. Nüüd eeldatakse, et nad on teinud - Nüüd me tahame, et määrata kindlaks, kui palju jagab kasutaja on tegelikult müüvad ja kui palju raha peaks kasutaja saama müüa, et paljud aktsiad. Nii et me haarata aktsiate arv, mida kasutaja on selle sümbol. Otsime üles portfellid antud kasutaja ja antud sümbol. Nüüd veenduge, et tegelikult tagasi rida. Sest kui see ei ole, kasutaja ei tegelikult on see sümbol müüa. Eeldades, et nad on selle sümbol, tahame haarata arvu aktsiaid, mis neil on. Ja nüüd me tahame otsida kuidas palju iga osa on väärt. Nii me kasutasime otsida funktsiooni. Otsime üles väärtus sümboli. Eeldades, et vaadata up õnnestus nüüd me tegelikult uuenda teavet. Nii et me tahame kustutada portfellid aktsiad, mida me müüa. Me tahame, et uuendada kasutaja summa raha. Ja me selle ajakohastamine aktsiatega korda aktsia hind - nii see on, kui palju raha kasutaja lihtsalt tehtud. Ja nüüd me tahame uuendada meie ajalugu. Nii et me ei ole võtnud ilme ajaloost tabelis veel. Nii et me tuleme selle juurde tagasi. Nüüd lõpuks me ümber Tagasi portfelli. Nüüd vaatleme osta. Niisiis, osta peaks olema üsna sarnane müüa. Me näeme, et me jälle läheb vaadata, kui me oleme esitades sellele lehele. Eeldades, et me ei ole, me oleme läheb laadida buy vormi. Mis siis buy vorm välja näeb? Me näeme siin, et see on lihtsalt tavaline moodustada, mis läheb esitama tagasi buy.PHP. Ja ta läheb on sümbol, mis kasutaja siseneb arv aktsiaid, et kasutaja tahab osta selle sümbol ja see on kõik. Nii et kui me esitama tagasi buy.PHP, me oleme nüüd läheb täide see kood. Me jälle tahan kinnitada, et kasutaja sisestatud midagi kehtiv. Nii et siin me teeme, et nad tegelikult kantud sümbol. Siin me teeme kindlaks, et nad tegelikult kantud aktsiatest. Ja siin me tagada, et nad kantakse täisarv aktsiaid, mistõttu nad ei taha osta ABC aktsiaid. Nüüd tahame otsida hinnaga sümbol, et me teame, kui palju raha me peaks lahutama kasutaja. Nüüd me valida, kui palju raha kasutaja tegelikult on ja veenduda, et et õnnestus. Siin me haarata raha. Ja nüüd siin, me veenduge, et kasutaja on piisavalt raha. Nii et kui aktsiate arv alla tahab osta kordne hind iga kõnealuste aktsiatega on suurem kui summa raha, mis meil on, siis kasutaja ei saa endale lubada. Eeldusel, et kasutajal on piisavalt raha, nüüd tahame lisada kasutaja portfellis. Noh, me lisada kasutaja portfelli, kui see juhtub olema Esimene kord, kui kasutaja ostab et eelkõige sümbol. Aga mis siis, kui nad juba juhtuma on mõned Apple aktsia? Noh, nüüd me teeme kasutamise kohta korduv võti ajakohastatud aruanne. Nii et see on põhjus, miks varem me täpsustada, et ID ja sümbol peavad olema ühised primaarvõti, nii et kui me püüame sisesta ID ja sümbol, mis on juba olemas, siis me lihtsalt uuendada aktsiate lisada uusi aktsiaid, mis kasutaja ei osta. Nüüd tahame uuendada summa raha, et kasutaja on, sest nad lihtsalt kulutada natuke raha nende aktsiatega. Ja lõpuks, me uuendada ajalugu tabel uuesti. Mis jällegi me vaatame juures teine. Ja lõpuks me ümber Tagasi portfolio.PHP. Võtame pilk ajalugu tabel. Pea meeles, et ajalugu tabel peaks jälgima kõik ostab ja müüb, et kõik kasutajad teha, mitte ainult praegune aktsiate arv, mida kasutajatele, kes on see, mida portfell on. Nii et me jälgida, kasutaja, ostab või müüb, kas see konkreetne tehing oli ostu või müüa, sümbol, mis kuramuse ostetud või müüdud, aktsiate arv et me osta või müüa, hind ühe aktsia, mis kuramuse osta või müüa, ja lõpuks aeg et see ostmine või müümine on toimunud. Ja see kõik on ajalugu teabe, et me peame jälgida. Nii et kui me vaatasime sell nägime, et olime sisestamist ajalugu sell, nagu kas me ostmine või müümine, Praegune aeg tempel, ja praeguse kasutaja, sümbol, mis kuramuse müüdud aktsiate arv, mis on müüakse ja hind varude seekord. Sarnaselt osta, siis see näevad välja peaaegu sama. Ainus erinevus on, selle asemel, müügi, me osta. Nii et müüa ja osta, me sisestamist ajaloo tabel kõik ostab ja müüb, mis on toimumas. Nii et kõik history.PHP peab tegema on haarata teave ajalugu tabel, veenduge, et see õnnestus, ja muuta seda teavet. Nii vaadeldes history.PHP malli huvitav teave on siin. Me silmusega üle kõik tehingud, trükkimine, kas see oli osta või müüa, vormingu kuupäev aeg et me tegime selle tehingu. Mäleta peame kasutama htmlspecialchars kohta sümbol, igaks juhuks. Ja lõpuks, vormingu arvu aktsiaid, mis olid ostetud ja hind ühe osa sel ajal. Ja mis kuvab kõik ajalugu informatsiooni, mida me vajame. Ja see on see selle pset. Minu nimi on Rob ja see oli CS50 Finance.