[Powered by Google Translate] [Walkthrough Harjoitus 7] [Zamyla Chan] [Harvardin yliopisto] [Tämä on CS50] [CS50.TV] Hei kaikille, ja tervetuloa esittely 7, CS50 Finance. Nyt olemme virallisesti tehneet kaikki psets vuonna CS50, ja olemme vain jää yksi, joka tulee olemaan hauskaa täytäntöönpano on sivusto, jossa käyttäjät voivat kirjautua sisään CS50 Finance ja ostaa ja myydä varastoja. Tänään aiomme olla muutamia työkaluja käytössämme. Aiomme puhua käyttöoikeudet. Aina kun on web kansio, olet menossa haluavat käyttäjät voivat suorittaa tiettyjä tiedostoja mutta myös vain lukea toisilla, niin me tutkimme käyttöoikeudet ja miten voit asettaa ne. Sitten aiomme tutkia PHP, HTML ja SQL-koodin. Ensinnäkin, käyttöoikeudet. Kun olet terminaalissa tietyn hakemiston, niin mitä haluat tehdä on, haluatko suorittaa chmod komento. Se on sen jälkeen joko kirjaimia tai numeroita vastaa mitä pohjimmiltaan haluat maailmassa nähdä, itse nähdä jne. Esimerkiksi, jos sinulla on kansion, sitten haluat, että kansio olisi suoritettavissa kaikille, että näkee sen, niin mitä tekisit on voisit ajaa komento chmod + x ja sitten nimi kansion. Kun olet tiedoston, kuten CSS-tiedostoja tai kuvatiedostoja - kuten JPEG ja bittikarttoja, tuollaista, tai JavaScript-koodia - Haluatko että ollakseen luettavissa kaikille, niin mitä sitten teet on voisit käyttää asteriskia - joka on tähdellä - pohjimmiltaan ilmoittaa CSS kansio - kaikki kansion -  Aion sanoa, että tulee olemaan luettavissa kaikille. Kanssa käyttöoikeudet, kun käytämme kirjaimia, Voimme myös käyttää numeroita sijaan. Joten, näet, että lopulta kun haluat jotain olla executable - että on edustaa numero 1 - jotain luettavissa on numero 4 ja sitten - kirjoitettavissa on numero 2 - ja niin olennaisesti, kun haluat yhdistelmä näistä, niin lisäät ne. Jos haluat jotain luettavissa, kirjoitettavissa ja executable, niin voisitte lisätä enintään 4, 2 ja 1 ja antaisi sinulle 7, Sitten kun olet kansio, joka on täytäntöönpanokelpoinen kaikki - sekä luettavissa ja kirjoitettavissa - sitten teet, että 7, 1, 1. Se olisi 7 teille, sitten 1 muita ihmisiä. Kun olet spec, se tulee todella mitkä kansiot ja mitkä tiedostot täytyy olla chmod-ed nimenomaan. Esimerkiksi, jos sinulla on kansiot - ne ovat 7-1-1 - Kun sinulla on kuvia tai HTML, CSS, JavaScript, sitten ne tulevat olemaan 6, 0, 4 - tai 6, 4, 4 - ja sitten PHP-tiedostot tulevat olemaan 6, 0, 0. Ajatus siitä, että on, että käyttäjät eivät oikeastaan ​​näe PHP-koodin, mutta vain nähdä tuotoksen. Hienoa! Siirtymässä PHP. Yksinkertaisesti, kun haluat PHP-tiedoston, tiedosto pääte on. Php. Voit myös sekoittaa HTML PHP-koodin. Jos sinulla on HTML-tiedoston, esimerkiksi voit liittää sen vasempaan kulmaan, kysymysmerkki, php - laittaa PHP - ja sulkemalla sitten kyseisen toisen kysymysmerkki ja oikeassa kulmassa. Muuttujat PHP ovat paljon helpompi käsitellä kuin muuttujia C. Jokainen muuttuja vain alkaa dollarin merkki sen edessä, ja he heikosti kirjoitettu. Tämä tarkoittaa, että sinun ei tarvitse murehtia, jossa jotain sama merkkijono tai kokonaisluku. Voit vain sanoa, tämä on minun nimi muuttujan ja sitten tämä on sen arvo, niin se tulee olemaan helpompi käsitellä siellä. Toinen asia on, että PHP jonka avulla voit käyttää assosiatiiviset taulukot. Voit vain yksinkertaisesti määritellä erilaisia ​​kuin te C sanomalla, dollarimerkki-nimeä array-vastaa- ja sitten hakasulkeissa on pohjimmiltaan vain arvoluettelo kaikki elementit jono. Mutta, PHP, mitä voit tehdä, on määritellä periaatteessa - Se on tavallaan kuin hajautusfunktio. Voit määrittää indeksin - mitä aiot kutsua sitä - ja sitten, että vastaa arvoa. Jos olet itse kulkemaan = 1, b = 2, c = 3, Sitten sinun array index antaisi sinulle 1. Tämä PSET tulee lämmin sinut joitakin PHP osassa kysymyksiä, ja sitten sukeltaa CS50 Finance. Meillä on pari - meillä on joitakin toimintoja, pohjimmiltaan, toteuttaa tällä sivustolla. Haluamme käyttäjät voivat rekisteröityä sivuillamme käyttäjätunnuksella ja salasanalla. Haluamme antaa heille mahdollisuuden etsiä lainaus, ja sitten voisimme tulostaa nimen tuon lainauksen sekä nykyinen hinta, se on osoitteessa. Haluamme antaa heille mahdollisuuden nähdä salkun kaikista osakkeista, jotka he ovat ostaneet toistaiseksi. Haluamme myös, jotta ne voisivat ostaa osakkeita sekä myydä niitä. Ja sitten lopuksi, haluamme antaa heille mahdollisuuden nähdä historian kaikista liiketoimista, jotka he ovat tehneet. Sitten lopuksi, kun olet toteuttanut kaiken tämän, Sitten olet vapaa toteuttaa yksi ylimääräinen ominaisuus. Mennään noihin. Ne voivat olla joko antamalla käyttäjille mahdollisuus saada ylimääräistä käteistä tallettamalla ylimääräistä rahaa, tai voit antaa heille mahdollisuuden vaihtaa salasanaa, tai jotain, heille sähköpostia kuitti, kun he ostavat tai myyvät varastosta. On rajallinen luettelo ominaisuuksista, jotka voit toteuttaa itseäsi, niin se viimeinen siellä. Koska tämä on verkkosivusto, teillä on myös paljon vapautta muokata sitä. Teemme tarjota joitakin CSS koodia, mutta olet varmasti vapaa nipistää sitä, tehdä se näyttää mukavampaa, mutta taustalla on perustoiminnot niin aina viitata spec mitä todella tarvitset sisällyttää siellä. Jälkeen spec, aiomme käyttää laitetta kuten myös palvelin. Se tulee olemaan hosting sivuillamme meille, sen paikallisessa palvelimessa. Jos noudatat näitä ohjeita ja pura PSET 7 jakelu koodi osaksi virtuaalinen isäntä / paikallinen isäntä kansioon,  Sitten voit vain vierailla http://localhost/ Google Chrome laitteen ja sitten voisitte saavuttaa koodi jonka olet kirjoittanut PSET 7. PSET 7 tulee joukko jakelu koodin, ja toivottavasti we've - läpi kaikki psets ennen tätä - tottunut meitä lukemisen kautta jakeluun koodia, ymmärtää, mitä toimintoja jo, ja miten voisimme käyttää näitä ja muita toimintoja, jotka aiomme olla täytäntöönpanoon. Tässä tapauksessa meillä on 3 kansioita. Meillä HTML kansio, sisältää kansio ja malleja kansio. Mitä aiomme tehdä tämän PSET on tavallaan erottaa ajattelu - ohjelmointi ajattelu - ja PHP-koodin kanssa todellinen visuaalinen puoli. Me on yksi PHP tiedosto, joka tekee kaikki ajattelu, lukee tietokantaan, tulostaa asioita, on jos julkilausumat - tuollaista - ja sitten se menee ohi tietoja meidän mallitiedosto - tai template.php tiedosto. Mitä se aikoo tehdä, on lukea tietoja ja sitten se tulostaa sen. Voimme hoitaa malleja niin "tyhmä" että me emme todellakaan halua niitä olla tekemässä paljon työtä laskettaessa asioita. Haluamme ohjaimet tehdä. Hieman kyseisen - Otetaan katsomaan joitakin jakelun koodin. Täällä meillä on index.html-tiedosto, ja se on melko tyhjä. Pohjimmiltaan mitä se tekee - se sanoo, hyvin, aion vaatia configuration.php tiedosto. Emme näe, että oikeassa, mutta se on pohjimmiltaan soittaa configuration.php tiedosto, ja täytäntöönpanovaltion se. Sen jälkeen se, että se tulee tehdä salkun. Rendering on funktio, joten aina kun olemme ohjaimen, soitamme render, annamme sen tiedoston ja sitten tiedot että olemme ohimennen, niin että se tulee soittaa portfolio.php--laji kulkea tietojen jotta portfolio voi käsitellä sitä. Ja nyt, täällä, meillä on login.php muodossa.  Tämä on ohjain, joka periaatteessa hoitaa sisäänkirjautumisen Täällä, se tarkistaa, onko lomake toimitettiin tämän tiedoston ja käsittelee validointi toimittamisesta. Me tarkastelemme tätä anteeksi toimintoa. Kun halutaan tulostaa virheilmoituksen, käytämme anteeksi ja ohjaa käyttäjän tietylle sivulle joka tulostaa virheilmoituksen, että me osoittavat. Jatkuu, se kyselyn tietokantaan - we'll päästä siitä lisää myöhemmin. Sitten näette, että tänne jos lomake ei ole toimitettu, se tekee muodossa. Tämä tarkoittaa, että se menee login_form.php, joten katsotaanpa sitä. Login.php on oikeastaan ​​missä näemme HTML käsittelevät todellista visuaalinen puoli. Täällä meillä on tulo tag käyttäjätunnus, tulo salasanaa, sekä lähetä-painiketta. Se on oikeastaan ​​missä visuaalinen puoli ja HTML muodossa on tarkoitus pitää. Täällä sanotaan, että se tulee jättää tietty menetelmä, jota kutsutaan post. Pääsemme menetelmien väliset erot - post vs. päästä, siellä on myös jotain kutsutaan laittaa - Pääsemme näitä menetelmiä myöhemmin, mutta kiinnostus tätä PSET, Olisin erittäin rohkaista teitä käyttämään postitse. Tiedämme, että periaatteessa kun tämä lomake on toimitettu - mistä login_form.php-- sitten se menee kanteen - login.php-- periaatteessa kulkea kaikki parametrit jotka lomakkeiden login.php. Tulokset, jotka muodostavat jotka sisältyvät tähän tehtävään assosiatiivisia array. Indeksit eri elementtien post array ovat mitä täällä määrittämäsi. Sanot että nimi tämä tulo on käyttäjätunnus. Nimi tämä on unohtunut. Samoin näet käyttäjätunnus indeksi assosiatiivisia array siellä. Jos menemme sisältää kansion, meillä on tämä toimii tiedosto joka tulee olemaan erittäin hyödyllinen. Kaikki nämä toiminnot on toteutettu sinulle. Sinun ei tarvitse erikseen toteuttaa näitä itse, mutta he aikovat varsin hyödyllistä. Olemme pahoillamme, joka kuten aiemmin sanoin, pohjimmiltaan tulostaa virheilmoituksen sinulle tietyllä sivulla - apology.php. Sitten meillä on kaatopaikka, joten jos vain soittaa dump ja sitten siirtää muuttujaan, niin se vie sinut sivulle, joka näyttää, että muuttuja sinulle. Sitten olemme logout, joka pohjimmiltaan päättyy tietty käyttäjän istunto. Lookup tulee olemaan hyödyllinen. Koska olemme tekemisissä lainauksia ja varastot, aiomme pystyä - ja se on periaatteessa reaaliajassa. Meidän täytyy tietää, mitä nuo hyllyssä arvot, joten meillä on haku-toiminto, joka käsittelee Yahoo dokumentointi varastot. Kun haet tietty symboli varastossa, se palaa teille osakesymboli sekä nimi ja nykyinen myyntihinta varastosta. Se lookup toiminto. Sitten olemme tekemisissä mySQL, joten aiomme olla haluavat suorittaa tiettyjä kyselyihin meidän SQL-tietokannan. Olemme kysely käsiteltävä - eräänlainen abstrakti joidenkin että ulos. Aiomme olla ohi koko jono meidän SQL kysely - ja kaikki muuttujat, jotka menevät siinä - ja mitä tämä tekee todella suorittamiseen meille. Sen sijaan, että kirjoittaa kaiken tämän pois joka kerta, että haluat kyselyn - saamalla kaikki tulokset että kysely - voit vain soittaa kyselyn toiminto, ja se tulee takaisin sinulle - riippuen siitä mitä käytät oman kyselyn - luultavasti rivin kaikki tulokset, jotka vastaavat kyselyä tai vastaavia. Siitä lisää myöhemmin kuitenkin. Lopuksi on uudelleenohjaus, joka, kuten nimestä voi päätellä, ohjaa sinut eri sivulle. Ja sitten meillä on render, jonka aiomme olla kutsumassa pari kertaa. Kun olet ohjain, soitat tehdä osaksi malliin sivu ja sitten kulkea arvot malli sitten käsitellä. Nämä arvot ovat todennäköisesti tullaan käsittelemään tuotostyyppiä haluamasi on esitetty mallia sivulla. Okei. Nämä ovat toimintoja, ja siellä on paljon enemmän tämän jakelun koodin. Kehotan sinua menemään tämän läpi ja tutkia itse. Myös spec luultavasti läpi joitakin muita osia jakelun koodin. Tässä on yhteenveto toiminnoista löytyy functions.php. Okei. Ensimmäinen tehtävä on antaa käyttäjille rekisteröityä verkkosivuilla. Juuri nyt on login muodossa verkkosivuilla, ja olet mukana muutama käyttäjille salasanoja. Voit käyttää näitä käyttäjätunnuksia ja kirjaudu sisään, mutta haluat antaa ihmisten tehdä omat käyttäjätunnukset ja lisätä itse verkkosivuilla. Layout rekisteröintiä on melko samanlainen login muodossa, paitsi käyttäjänimi ei ole ennestään, ja käyttäjä on myös saada aikaan uusi salasana, ja sitten tyypillisesti meillä salasanan vahvistus. Kun käyttäjä syöttää kaikki nämä tiedot, haluamme lisätä ne meidän tietokantaan käyttäjille. Aiomme olla tietokanta - SQL-tietokanta - että aiomme viitata. Että tietokantaan, meillä on taulukko, jossa kaikkien käyttäjien sisältävät käyttäjätunnuksensa, salasanansa, ja kuinka paljon rahaa heillä on. Rekisteriin, haluamme antaa heille syöttää nämä tiedot. Haluamme näyttää, että lomake. Haluamme varmistaa, että niiden salasana - että he tulivat, ja sitten myös, että salasanat vastaavat toisiaan, kun he tulevat sen kahdesti. Kun kaikki tämä on tehty - olettaen, että nämä virheet tarkastetaan - Sitten haluamme lisätä nämä käyttäjät tietokantaamme. Lopuksi, kun olet rekisteröitynyt, ihan kätevä jos et tarvitse kirjautua uudelleen Kun olet rekisteröitynyt, joten aiomme kirjautua niiden verkkosivuilla, jos he rekisteröity onnistuneesti. Ensimmäisenä tehtävänä on näyttää muodossa, ja tämä on todella olemaan - Tämä koko prosessi on menossa mallintaa melko tarkasti sisäänkirjautumisen jälkeen paitsi sen sijaan login.php saatat olla register.php. Sen sijaan, että login_form.php--, joka on malli - Sinun on rekisteröitävä muodossa. Sinun kannattaa lisätä yhden kentän - salasana vahvistus kenttä - sijasta yhden käyttäjätunnuksen ja yhdellä salasanalla. Seuraavaksi haluamme onko salasanat vastaavat tai ovat tyhjiä. Meillä ohjain - register.php--joka aikoo huolehtia tehdä näitä tarkastuksia. Kun lomake lähetetään kautta POST-menetelmää, sitten kaikki nämä muuttujat on sisällä jälkeen jono. Haluat varmistaa, että viesti array arvo indeksi salasana vastaa vahvistus elementti. Haluat varmista, että ne eivät ole tyhjiä, ja haluat varmistaa, että ne ovat samalla. Yksi kätevä juttu PHP on, että meidän ei tarvitse käyttää merkkijono vertailla enää. Voimme käyttää yhtä-sama operaattori  tarkistaa, onko jouset ovat yhtä suuret. Saat virheenkäsittely, sinun kannattaa pyytää anteeksi. Pyytää anteeksi, voit yksinkertaisesti soittaa toiminto  ja määritä viestin tyypin, jonka haluat tuotos. Voit sitten haluat lisätä käyttäjän tietokantaan. Tähän asti kaikki olemme tehneet on vain toimimalla paikallisesti tuloksiin lomakkeen. Nyt me todella haluamme lisätä ne meidän tietokantaan. Tätä varten haluamme ensin varmistaa, että käyttäjätunnus ei ole tyhjä. Ymmärrä, että sivusto voi olla useita käyttäjiä samalla käyttäjätunnuksella, joten sinun kannattaa varmistaa, että kun asetat jotain tietokantaan - aseta uusi käyttäjä - niin et saa törmäys ennestään käyttäjätunnus ja käyttäjänimi käyttäjä yrittää lähettää. Tämän, kun olet suorittaa kyselyn - lisäämällä tietty käyttäjä salasanansa ja alustava määrä rahaa - kun soitat että kysely, MySQL todella palauttaa false, jos se epäonnistuu. Rakenne käyttäjien on sellainen, että tunnus on yksilöllinen arvo, joten et voi olla enemmän kuin yksi. Kun yrität lisätä uuden rivin, jossa käyttäjänimi on jo olemassa, että menee palauttamaan vääriä - kuten Boolen-arvon epätosi. Hankala asia tässä on, että sinun kannattaa tarkistaa, jos tulos on seurausta kyselyn. Jos se epäonnistuu, niin sinun kannattaa tarkistaa triple-vastaa operaattori. Se on todella menossa tarkistaa onko vika vai ei, katsoo, pelkkä vastaa-vastaa, se olisi totta, jos rivi oli tyhjä. Seurausta siitä, jos on törmäys käyttäjätunnuksia on todellinen epätosi. Tässä on, miten haluat lisätä tietokantaan. Tässä on kysely, että sinulla olisi ajaa tiukasti SQL. Yksi asia on, että voit itse mennä sivuston, joka hallitsee SQL-tietokannan ja leikkiä siellä syöttämällä manuaalisesti joko arvot tai rivejä. Se tulostaa mitä SQL lähtö on. Voit myös suorittaa SQL komentoja tietokannan  ja sitten mitä syntaksi voi olla, ja sitten kääntää sen osaksi kyselyn toiminto, joka meillä on PSET 7, joka tulee olemaan hyvin samanlainen kyselyt, että olet todella ajaa. Jos halusin lisätä uuden rivin minun käyttäjät taulukkoon, niin haluan täsmentää työnnä käyttäjiä, mikä on nimi minun pöytäni. Sitten haluaisin täsmentää sarakenimiä. Sitten haluaisin antaa arvoja yhdessä salasanani. Salasanat meidän käyttäjät taulukossa ei tallenneta kuin vain merkkijono. Ne tallennetaan salatun version, joten sinun kannattaa suorittaa toiminnon crypt todellisesta salasana ja antaa sinulle oikean tyyppinen varastointi käyttäjille array. Running tämä lisätä uuden rivin omaan käyttäjät taulukkoon. Käsitellä kyselyn toiminto, ennen C käytimme prosenttimerkki paikkamerkkinä. Vastaavasti sama käsite paikkamerkin pätee täällä. Kanssa kyselyn, voit määrittää koko kyselyn, paitsi jos olet tekemisissä muuttujia kuin syöttää kyselyn, Sitten sen sijaan todella toteuttavat ne sisällä - kuten silloin meillä oli printf lausuntoja C. Haluaisimme laittaa merkkijonon ja sitten paikkamerkin siellä, ja sitten sen jälkeen jokaisen pilkku, mitkä muuttuja meillä oli. Täällä aiomme käyttää kysymysmerkkiä merkki meidän paikkamerkkinä ja sitten siirtää kunkin muuttujan vastaavasti peräkkäin, paikkamerkit - jos nämä muuttujat pitäisi mennä. Joten tässä, ensimmäinen kysymys merkki korvattaisiin todellisten käyttäjätunnus Sitten toinen kysymys merkki salasanalla. Sitten lopuksi, kun olet rekisteröitynyt ne ja lisätä ne tietokantaan, sitten haluat kirjautua heidät verkkosivuilla. Meillä on eräänlainen super-globaali muuttuja nimeltään istunto. Session vie tietty id, ja id vastaa käyttäjälle, joka on kirjautunut sisään Mitä sinun kannattaa tehdä on löytää mitä heidän Käyttäjätunnuksen on ja aseta se istunto id kyseisen käyttäjän id. Toiminto, joka sinun kannattaa käyttää tässä SQL-komennon että hakee viimeksi asetettu id numeron taulukosta. Silloin rivit kutsuvat - it'll soita id - it'll antaa nimen numero, että se palaa. Se tulee soittaa että id. Nyt olemme valmiita rekisteröityä, ja voimme siirtyä lainata. Lainaus sallii käyttäjän syöttää nimen tietyn varastossa, ja sitten se tulee palauttaa ominaisuuksia että varastosta. Mitä sinun kannattaa tehdä tässä on ohjain ja joitakin malleja. Tässä tapauksessa aiomme olla ohjaimeen, joka aikoo tehdä kaikki ajattelu meille. Se tulee etsiä symboli ja sitten kulkea arvoja malleja tulostuu. Aiomme olla 2 malleja täällä. Aiomme olla 1 malli, joka tarjoaa muodossa käyttäjät tulevat tulo nimi varastosta - osakkeen nimi. Sitten olemme myös menossa halua toista mallia, joka näyttää näitä arvoja. Voit tutkia kirjautuminen esimerkki siitä, miten olisit lomake, joka hyväksyy syötteen, paitsi täällä, me vain haluamme 1 kenttä. Emme halua käyttäjätunnuksen ja salasanan kenttään. Haluamme vain 1 tekstikenttään avulla käyttäjä voi syöttää nimen tietty varastosta. Sitten haluat lähettää että tietoja - kun olet katseli että kalusto - ja quote_form.php. Lookup palaa symboli hyllyssä, nimi ja hinta. Nämä ovat sisällä assosiatiivinen array. Etsiä haku toiminnon sisällä functions.php lisätietoa tuottoon tyyppejä nämä. Hienoa! Joten lopuksi, sinun kannattaa näyttää varastosta. Sinun kannattaa ehkä näyttää - you'll haluat käyttää näitä muuttujia. Kun olet hinta muuttuja - sekä nimi ja symboli - Sitten sinun kannattaa näyttää kuin mallisi sivulla. Tämä malli sivu voisi kutsua show_quote.php tai jotain. Sinun quote.php sivu tekisi näytä lainaus ja sitten siirtää kaikki näitä arvoja. Sitten sinun php-sivulla voit itse tulostaa ne arvot HTML osa sivun. Sinä vain käyttää tulostustoimintoa ja siirtää hintoihin. On 2 tapaa - voit joko liität sen piste operaattorin tai käytä paikkamerkki. Käyttäjät lopulta tullaan ostamalla ja myymällä varastot. Haluamme antaa heille tapa nähdä kaikki varastot että ne tällä hetkellä ovat. Aiomme soittaa että niiden salkun. Portfolio olisi oletettavasti jokaiselle käyttäjälle, sisältää joukko rivejä luetellaan osakelajeittain että heillä on ja sitten kuinka moni niistä he ovat. Meidän valmiiseen pöytään - nyt meillä on käyttäjiä taulukon meidän tietokantaan. Se sisältää käyttäjän käyttäjätunnuksen sekä niiden salasana ja kuinka paljon rahaa heillä on. Ei ole oikea tapa tallentaa kaikkien niiden varastot kyseisen. Se ei ole kuin voimme lisätä uusia sarakkeita jokaista varastosta. Se olisi hyvin, hyvin pitkä rivi, koska meillä on ääretön määrä tyypit varastot, jotka niillä voi olla. Joten sen sijaan, mitä teemme on samassa tietokannassa, meillä on käyttäjiä pöytä, mutta meidän täytyy myös salkun pöytä. Portfolio taulukko on varmasti sidoksissa käyttäjille taulukkoon, vaan salkun pöydän rakenne on varastosta, kuinka monta osaketta että varastossa käyttäjä on, sekä käyttäjän tietty ID-numero. Sinulla käyttäjät taulukko, jossa on id sekä käyttäjätunnus, hash - mikä on salasana, salattu salasana - ja sitten määrä rahaa heillä on. Id numero olisi sidoksissa id numero salkun. Salkku olisi vain symboli varastossa sekä osakkeet - osakkeiden lukumäärä kyseisen kannan että käyttäjä on. Tässä portfolio taulukossa sinulla olisi periaatteessa kaikki osakkeet hallussa kaikki käyttäjät sivustossasi. Myöhemmin määrittää vain tietty käyttäjä osakkeet - vain niiden portfolio - voisitte hakea vain arvoja salkun pöytään siten, että id-numero on spesifinen kyseiselle käyttäjälle. Kun näytät salkun, sinun kannattaa ilmoittaa kullekin kantojen käyttäjän salkun. Sinun kannattaa ilmoittaa osakkeiden lukumäärä ja nykyinen osakkeiden arvo. Että nykyinen osakkeiden arvo ei tallenneta salkun taulukossa koska tulee olemaan päivittää - vähintään - päivittäin Yahoo. Saadaksesi että tietoa, ei voi viitata, että teidän SQL-kysely. Mikä toiminto säädetään, että meille? Mikä funktio saa hinnan? Se lookup, joten käyttämällä lookup tietyn symbolin antaa sinulle paljon tietoa. Se antaa sinulle 3 kpl tietojen - nimi, symboli, samoin kuin hintaa. Kun lookup tietty symboli, niin saat hinta- ja sitten voit käyttää hinta näyttää oman salkun. Portfolio on myös näyttää käyttäjän nykyisen kassavaroihin. Tämä kenttä on tallennettuna käyttäjille taulukossa. Joten sitten muistaa miten olemme periaatteessa ottaa - emme ottaa erilaisia ​​PHP-tiedostoja. Aiomme olla ohjaimeen, joka pohjimmiltaan tekee kaiken työn puolestasi. Ja sitten meillä on malli, jossa mallin käsittelee tietojen tulostamisen. Sinun täytyy ajatella mitä muuttujia ohjain tulee ottaa sisään Jos olemme tekemisissä salkun, joka lähettää jokaisen nimi, symboli, ja osakemäärästä, sekä nykyinen hinta varastossa, Sitten sinun kannattaa löytää jonkin keinon periaatteessa ohimennen - voit kulkea arvomatriisin jotka vastaavat sitä. Mennään esimerkki siitä, miten voi hakea kaikki varastot omistaa tietylle käyttäjälle. Tämä ei ole tekemisissä - vielä - hinnalla varastosta. Mitä tämä tekisi on suorittaa kyselyn. Se saisi symboli sekä osakkeet - Soitan tässä taulukossa, mutta tässä tapauksessa, mikä se olisi? Mikä nimi taulukon kanssa olemme tekemisissä joka on symboli ja osakkeet tietyn käyttäjän? Se on joko käyttäjiä tai salkun. Portfolio. Mitä tämä tekisi on kysely salkun symbolien ja osakkeet tietylle käyttäjälle. Täällä, sanon, (SELECT symboli, osakkeita tbl - mutta sen sijaan taulukon aiot korvata, että salkun. "Missä on pohjimmiltaan tilani. Sanon haluan vain saada nämä assosiatiiviset taulukot, jotka vastaavat  Tämän seuraava ehto - id vastaa.  Sitten Laitan paikkamerkkiä siellä ja sitten istunto id. Mitä tämä vain sanoa kunkin rivin riviä. Tämä on siisti tapa eikä oikeastaan ​​ottaa perustaa varten silmukka että iteroi kaikki indeksit, sitten PHP voit olla for-jokainen silmukka. Jos sinulla on tietty joukko, niin voit sanoa aion soittaa joka peräkkäisten elementti - Aion soittaa jokaisen elementin tätä nimeä. Joten jokainen näistä elementeistä, aion soittaa heille tämän, sitten voin tehdä tämän. Tässä jokaiselle, olet rivejä todellinen matriisi, ja jokainen rivi aiot soittaa riville. Joka kerta, kun se suorittaa elimen, se menee ylös ja se päivittyy rivin seuraavaan elementtiin riveihin. Nyt, mitä ostaa varastot, mitä haluamme tehdä, on saada kalusto että käyttäjä haluaa ostaa ja osakkeiden määrä että käyttäjä haluaa ostaa, ja sitten - jos he haluavat - Lisään, että kalusto valikoimaansa. Ilmeisesti, jos he ostavat jotain, niin se tulee laskea paljon rahaa he ovat, jotta tulee vähentämään rahavirtaa. Me aiomme olla tekemisissä päivittää portfolio sekä käyttäjien taulukko, joka sisältää käteistä. Mutta ensin sinun täytyy saada todellista kalusto ja osakkeiden määrä että käyttäjä haluaa. Siihen tarvitset HTML-lomakkeen, joka kysyy symboli varastosta jonka haluat ostaa sekä osakkeiden lukumäärästä. Sitten sinun kannattaa lisätä. Sinun kannattaa valita tiettyjä arvoja. Olemme käyneet läpi tämän vähän jo, mutta kun yrität saada tiettyjä rivejä - hakea tiettyjä rivejä SQL taulukosta Tämä on seuraava syntaksi. Olette valita, ja sitten kun liität tähti, että saat periaatteessa palauttaa koko, koko rivi sinulle. Sitten taas, olet kunnossa missä, ja sitten määrittää - Haluan vain käyttäjätunnuksen vastattava posti-, niin se vain hakee rivin käyttäjät joka vastaa posti-. Kun käyttäjä haluaa lisätä osake salkun, sinun täytyy tarkistaa muutamia virheitä. Haluat varmistaa, että käyttäjä voi itse varaa varastossa, joten sinun kannattaa tarkistaa käteisellä. Ennen käytimme tähti hakea koko rivin SQL taulukosta. Mutta täällä, voimme todellakin vain määrittää, että haluan vain 1 arvo - Haluan vain käteisellä. Joten tässä, se palauttaa käteistä käyttäjälle id numero 1. Jos käyttäjä on jo ostanut tietyn kalakannan mutta sitten ostaa enemmän kyseisen kannan, sitten oman salkun - et halua erillistä linjaa, toinen rivi, joka sisältää kyseisen uusi liiketoimi. Todella haluat päivittää määrään. Kaikki tämä muuttuu todella osakemäärä että käyttäjä omistaa. Jos käytät insert into kyselyä - niin se vain lisätä omaan salkkuun kaikki nämä arvot - käyttäjän id numero sekä symboli varastosta että he ostavat ja osuudet, niin sinun kannattaa myös määritellä, hyvin, jos olen joutunut kaksoiskappale avain - Tässä tapauksessa, kaksoiskappale avain ei ole vain käyttäjän id lisäksi osakesymboli - koska voit vain olla - meidän lähtökohta on, että voit vain 1 rivi  , joka vastaa 1 erityisiä symboli. Niin, kaksoiskappale avain - jos olet joutunut törmäyksen siellä - olet juuri menossa päivittää osakkeiden uuteen arvoon. Osaketta, vastaa mitä meillä oli ennen plus se määrä osakkeita, jotka käyttäjä on ostamassa. Nyt olemme päivittäneet salkun pöydän, me haluamme päivittää käyttäjän käteisellä. Se on käyttäjien taulukkoon, joten aiomme olla vähentämällä tietty määrän käteistä. Oletettavasti se tulee olemaan käteistä rahamääräisistä miinus - ja sitten tietty määrä. Voit päivittää käteistä, olisit - jos halusin viedä rahaa posti-, niin olisin suorittaa tämän kyselyn - "Update käyttäjien ja aseta käteistä sarakkeen käteistä - Haluaisin poistaa 9999 dollaria vain, jos käyttäjätunnus on sama kuin posti-. Mutta tässä tapauksessa, emme halua vähentää 9999 erikseen. Haluamme määritellä, hyvin, haluamme vähentää nykyisen hinnan varastossa kerrottuna osakkeiden lukumäärä he ostavat. Nyt olemme saa heidät näkemään kaikki varastot, jotka niillä on, sekä ostaa lisää varastoja. Olemme myös aikaisemmin saa niitä etsiä nykyinen hinta varastosta. Tässä haluamme antaa heille mahdollisuuden myydä niitä. Ensin haluamme näyttää periaatteessa - Haluamme antaa heille mahdollisuuden nähdä kaikki varastot, jotka niillä on, joten tässä haluamme näyttää kaikki rivit salkun. Jos he päättävät myydä tietty varastossa, Sitten aiomme olettaa, että he haluavat myydä kaikki se. He eivät juuri menossa myymään 50% niiden osakkeista, he aikovat myydä 100% siitä. Voimme vain poistaa koko rivin salkun. Voimme poistaa tietyn käyttäjän osuudet tiettyjen symbolin. Ei syntaksin. Sitten haluamme päivittää käteistä. Aiomme lisäämme käteisvarojen sama määrä osakkeita ne myyvät kerrottuna nykyinen hinta varastosta - ei hinta, jolla he ostivat sen, vaan hinta, jolla ne ovat - nykyinen hinta, kun ne myyvät sitä. Viitata nykyinen hinta varastossa, haluat käyttää lookup, joka antaa sinulle hinnan varastossa Tällä haavaa. Nyt meille jää historiaan, jonka haluat sallia käyttäjälle seurata kaikki liiketoimet - haluaa nähdä kun ne myydään jotain, kun he ostivat varastosta. Haluamme määritellä ajan, jolloin he tekivät samoin kuin kuinka monta he ostivat ja mitä varastossa oli. Onko meillä mitään nykyisen, olemassa rakenne, joka määrittää, että? No, meillä on portfolio, joka näyttää numero varastoja, jotka käyttäjä on tietyn osuuden. Mutta me jäsentäminen salkun siten, että se päivittää kun ostamme useita, taas historiaa pitäisi - jos ostaa Applen, 10 osaketta sen, ja sitten myöhemmin myydä 5, niin haluaisi nähdä ne erikseen erilliset toimet, eri riveillä. Katsoo, että toimet visualisoida että meidän salkun taulukossa olisi vain päivitys kyseiselle riville,  joten olemme luultavasti menossa halua toisen taulukon. Meidän tietokantaan, meillä on käyttäjiä pöytä, meillä on salkun pöytä, ja nyt varmaan historian pöytä. Että historia taulukko voi seurata nykyisen päivämäärän, sekä erityisesti osakesymboli, sekä kuinka monta osaketta, ja sitten mihin toimiin se on - onko olit ostamassa niitä osakkeita vai myyt niitä. Voit käsitellä mennessä, on olemassa pari tapaa, joilla voit tehdä tämän. PHP on tapa pitää kirjaa päivämäärä, jonka voit etsiä itse. SQL voit käyttää joko nyt tai nykyinen aikaleima. Se on sinun. Varmista vain, että joka kerta, kun käyttäjä ostaa tai myy, sinun on päivittää käteisellä Käyttäjät taulukosta, sinun on päivittää rivit salkkujen taulukossa sitten sinun myös päivittää historia, joten aiotaan 3 erillistä SQL-kyselyjä, että voit soittaa sinne. Meillä on joukko toimintoja nyt. Vain pari muistutuksia että teidän hakemistotiedoston, sinun kannattaa linkittää ainakin teidän - mutta sinun kannattaa antaa käyttäjälle linkin buy.php sivulle. Se tulee antaa käyttäjälle - buy.php on ohjain, jotta tulee joko lähettää sinut - että tulee lähettää sinut lomakkeen avulla voit etsiä asioita. Meillä on historia. Olemme kirjautumassa ulos, saada lainaus ja sitten myydä. Ne ovat vähintään mitä haluat näyttää. Kannalta salkun portfolio todella näkyy hakemisto. Jos menemme indeksiin, tässä me näemme, että se tekee portfolio.php ja kulkee assosiatiivisia array - pohjimmiltaan otsikossa on salkun. Joten, tämä on ohjain. Jos menemme mallipohja portfolio.php, niin kaikki se on on - näyttää pohjimmiltaan kuva, joka sanoo, oi, tämä sivusto on rakenteilla. Myöhemmin, kun kulkea - you'll olla ohimennen pohjimmiltaan tarkempia tietoja. Sen sijaan vain otsikon, sinun todennäköisesti kulkevat enemmän asioita. Kun sinulla on nämä arvot, niin portfolio.php voi käsitellä näitä arvoja ja tulostaa ne ulos minkäänlaista järjestystä. Kun olet toteuttanut kaikki nämä, sinun on myös toteuttaa 1 enemmän ominaisuus. Tämä voi olla joko sallii käyttäjän vaihtaa salasanansa, palauttaa salasanansa, jos he ovat unohtaneet sen - joten salasanan sitten luultavasti myös haluavat muokata rekisteröidä siten, että se auttaa heitä määrittää sähköpostin, joten jos he unohtavat salasanansa, he voivat saada sen. He voivat ehkä tulla heidän käyttäjätunnus ja sitten sähköposti lähetetään niille , jossa on linkki voi palauttaa salasanansa. Voit olla jotain, jonka avulla käyttäjät voivat saada tuloja joka kerta kun he ostavat tai myyvät jotain, ja lopuksi, jotta ne lisätä rahaa niiden verkkosivuilla. Vain mennä takaisin käsite ohjaimet ja malleja hieman. Sinulla on jotain - joten sinun on ohjaimen täältä. Juuri nyt me tarkastelemme login.php esimerkki. Kun meillä on ohjain, pohjimmiltaan se vie 2 tapausta. Kun meillä on ohjaimet, olemme tässä pala että olemme myös eräänlainen käsitellä kun meillä on muotoja samoin. Säädin pohjimmiltaan on erilliset toimet - yksi, jos lomake on jo lähetetty, ja sitten kaksi, jos käyttäjä on tulossa kyseiselle sivulle ensimmäistä kertaa ja vielä syöttää tämän muodossa. Aion hypätä asiassa ennen kuin menee jopa Ensimmäisessä tapauksessa ottaa muodon sisään Täällä sanomme, jos lomake on toimitettu menetelmän post - älä huoli siitä hieman. Älä ole huolissasi, että liian paljon, mutta ymmärtää, että periaatteessa tämä toiminto käsittelee onko lomake on toimitettu vai ei. Tämä ehto on tosi, jos käyttäjä on lähettänyt lomakkeen. Jos ei, niin olemme menossa halua soittaa render login_form.php, ja sitten siirtää otsikossa. Tämä otsikko on vain pohjimmiltaan menossa näkyvät otsikossa. Mikä tämä on pohjimmiltaan sanoo, okei - No, jos käyttäjä menee login.php eikä ole itse kirjautunut sisään, niin haluan lähettää ne sivulle, joka on tässä muodossa jonka avulla ne voivat syöttää käyttäjätunnuksen ja salasanan. Sitten menen login_form, ja sitten se on todellinen muoto. Sitten, kun käyttäjä lähettää lomaketta, he aikovat toimittaa sen login.php menetelmää postitse. Sitten olen itse menossa syöttää tämä osa minun if-else silmukka. Sitten se on täällä, että käsittelemme arvojen tuli muotoon. Se on täällä, että käsittelemme niitä. Sitten kun olet tekemisissä näiden arvojen - jos olet tekemisissä - sanovat olemme tekemisissä quote.php sivun jossa joku voi syöttää kalustolla he haluavat etsiä, ja sitten nähdä, että näyttö - että on tavallaan samanlainen täällä. Täällä meillä login muodossa - you'd todennäköisesti lainaus muodossa - mutta sen jälkeen, kun käyttäjä on itse asiassa esittänyt, että tiedot, Sitten sinun kannattaa ohjaimen kulkea toiseen malliin joka osoittaa heille, että todelliset tiedot. Joten sitten oikealle täällä, niin olet luultavasti - ympäri vuoden tilasi täältä - jos menetelmä vastaa post - Sitten varmaan tehdä toiselle sivulle - Show lainaus - joka lähettää sinut kyseiselle sivulle - show_quote.php-- ja sitten se tiedosto viittaus niitä arvoja. Onko siinä järkeä? Meillä on ohjain, joka pohjimmiltaan käsittelee 2 tapausta - onko olet syöttänyt muodossa vai ei. Jos et ole tullut muodossa, se ohjaa sinut siinä muodossa, joka sitten laittaa sinut takaisin kyseiselle sivulle. Sitten, kun olet tietoa ohjain, että keho käsittelee että tiedot tarvittaessa - joko etsii arvot varastossa, ja sitten kun se katsoi ylös näitä arvoja ja on niitä muotoiltuja array, sitten voi kulkea että array osaksi malliin sivun  joka käsittelee ulos että tiedot. Jälleen, koska se on verkossa, se tulee olemaan hauskaa. Olemme ulkopuolella C joten emme rajoitu ASCII ja että päätelaite ulostulo, joten on hauskaa tämän kanssa. Voit tehdä sen niin visuaalinen kuin haluat. Voit avulla käyttäjät voivat syöttää miljoonia dollareita kerrallaan, tai rajoittaa heitä ja todella tarkoittaa ja anna niiden vain tulla 1 penni kerrallaan tai jotain. Ehdottomasti varmasti on hauskaa tätä. PHP on hieman yksinkertaisempi, että se on vähän helpompi kartoittaa oman pseudokoodina täytäntöönpanosta käytännössä. Joten varmasti on hauskaa tätä, koska se on oikeastaan ​​meidän viimeinen pala CS50. Kanssa, että tämä oli läpikäynti 7. Kun olet valmis katsomassa läpikäynti ja lopettanut PSET, Sitten nämä olivat myös psets, ja nyt olemme lopputuotteeseen - jälkeen saamme läpi Quiz 1. Sitten toivottavasti voit käyttää työkaluja, jotka olet oppinut psets - paitsi syntaksin, mutta abstrakti käsite miten ottaa tietty - kuten, haluan tehdä tämän ja sitten itse täytäntöön panemiseksi. Learning miten kahlaamaan läpi syntaksin ja jakelu koodi. Reading muiden ihmisten koodi, ja sitten tulkita, että käyttämällä olemassa olevia toimintoja. Joten onnea viime PSET. On ollut ilo johtaa walkthroughs. Toivottavasti he ovat olleet hyödyllisiä sinulle. Nämä olivat Walkthroughs, ja kiitos paljon. [CS50.TV]