[Powered by Google Translate] [Walkthrough Vandamál Set 7] [Zamyla Chan] [Harvard University] [Þetta er CS50] [CS50.TV] Halló allir og velkomin til walkthrough 7, CS50 Finance. Nú erum við opinberlega búin með allar psets í CS50, og við erum bara uppi með einn sem er að fara til vera a gaman framkvæmd á vefsíðu þar sem notendur geta skráð þig inn í CS50 fjármálum og kaupa og selja hlutabréf. Í dag erum við að fara að hafa nokkur verkfæri til ráðstöfunar okkar. Við erum að fara að tala um leyfi. Þegar þú hafa a vefur möppu þú ert að fara að vilja til að leyfa notendum að framkvæma ákveðnar skrár en líka bara að lesa aðra sjálfur, þannig að við munum líta inn í heimildir og hvernig þú getur sett þá. Þá ætlum við að líta inn í PHP, HTML, og SQL kóða. Í fyrsta lagi leyfi. Þegar þú ert í flugstöðinni í ákveðinni möppu, þá er það sem þú vilt gera sem þú vilt að keyra chmod skipunina. Það er eftir annaðhvort bókstöfum eða tölustöfum samsvarar því sem þú vilt í raun heiminn að sjá, þú sjálfur að sjá o.fl. Til dæmis, þegar þú ert með möppu þá þú vilt að mappa að vera executable af öllum sem sér það, svo er það sem þú vilt þú getur keyrt skipunina chmod a + x og svo heiti möppu. Þegar þú hafa a skrá eins og CSS skrár eða myndum - eins og JPEG og bitmaps, svoleiðis, eða hvaða JavaScript kóða - þú vilt að vera læsileg af öllum, Svo hvað sem þú gera er að þú gætir nota algildisstaf - sem er stjörnu - í rauninni fram í CSS möppunni - allt í þeirri möppu -  Ég ætla að segja að það er að fara að vera læsileg af öllum. Með leyfi, þegar við notum stafina, við getum líka notað númer í staðinn. Svo þú sérð að lokum þegar þú vilt eitthvað til að vera executable - sem er táknað með númer 1 - eitthvað til að vera læsileg er númer 4 og þá - skrifanleg er númer 2 - og svo í raun þegar þú vilt blöndu af þeim, þá bæta þær. Ef þú vilt eitthvað til að vera læsileg, skrifanleg, og executable, þá myndi bæta upp 4, 2 og 1 og sem myndi gefa þér 7, þá þegar þú ert með möppu sem þú vilt að vera executable af öllum - og læsileg og skrifanleg - þá getur þú gert það 7, 1, 1. Það væri 7 fyrir þig, þá 1 fyrir öðru fólki. Þegar þú ert sérstakur, verður það í raun að tilgreina hvaða möppur og hvaða skrár þarf að chmod-Ed sérstaklega. Til dæmis, þegar þú ert möppur - þeir eru 7-1-1 - þegar þú hefur myndir eða HTML, CSS, JavaScript, þá sem eru að fara að vera 6, 0, 4 - eða 6, 4, 4 - og þá PHP skrár eru að fara að vera 6, 0, 0. Hugmyndin á bak við það er að notendur ættu í raun ekki séð PHP kóðann þinn, en bara að vera fær um að sjá framleiðsla. Great! Flutningur í PHP. Einfaldlega, þegar þú vilt PHP skrá, skrá viðskeyti er. PHP. Þú getur einnig blandað HTML með PHP kóða. Ef þú ert með HTML skrá, til dæmis, þá er hægt að láta það með vinstri horn, spurningarmerki, PHP - setja PHP kóða - og svo loka því með öðru spurningarmerki og rétt horn. Breytur í PHP er mikið auðveldara að takast á við en breytum í C. Hvaða breytu byrjar bara með dollaramerki fyrir framan það, og þeir eru veikt slegið. Það þýðir að þú þarft ekki að hafa áhyggjur um að setja eitthvað jafnt streng eða heiltölu. Þú getur bara einfaldlega að segja, þetta er nafn mitt um breytu og þá er þetta gildi þess, svo það er að fara að vera auðveldara að takast á við það. Annar hlutur er að PHP er hægt að nota tengin fylki. Þú getur bara einfaldlega skilgreina fylki eins og þú myndi í C með því að segja, dollaramerki-nafn þitt array-jafn, og síðan í hornklofum eru í rauninni bara lista yfir gildi allra staka í fylki. En í PHP sem þú getur líka gert er að tilgreina í grundvallaratriðum - það er góður af eins og a kjötkássa virka. Þú getur tilgreint vísitölu - hvað þú ert að fara að kalla það - og þá svarar það í gildi. Ef þú fara í raun í a = 1, b = 2, c = 3, þá array þinn á vísitölu sem myndi gefa þér 1. Þetta pset mun hita upp með einhverjum PHP í hluta af spurningum, og þá erum við að kafa í CS50 fjármálaráðherra. Við hafa a par af - við höfum nokkur virkni, í grundvallaratriðum, að hrinda í framkvæmd á þessari vefsíðu. Við viljum til að leyfa notendum að skrá sig á vefsíðu okkar með notandanafni og lykilorði. Við viljum leyfa þeim að horfa upp á quote, og þá myndum við prenta út nafn að vitna sem og núverandi verð sem það er á. Við viljum leyfa þeim að sjá safn af öllum þeim bréfum sem þeir hafa keypt svona langt. Við viljum líka að leyfa þeim að kaupa hlutabréf og selja þau. Og þá að lokum, viljum við að leyfa þeim að sjá sögu af öllum þeim viðskiptum sem þeir hafa gert. Þá, loksins, eftir að þú hefur innleitt allt það, þá þú ert frjáls til að framkvæma einn auka lögun. Við munum fara inn í þá. Þeir geta annað hvort leyfa notendum að fá auka fé með því að leggja auka peninga, eða þú getur leyft þeim að breyta lykilorðinu sínu, eða eitthvað svoleiðis, email þeim kvittun þegar þeir kaupa eða selja hlutabréf. Það er takmarkaður listi af lögun sem þú gætir framkvæma sjálfur, þannig að sá síðasti þar. Þar sem þetta er a website, hefur þú krakkar líka fullt frelsi til að aðlaga það. Við gerum veita CSS kóða, en þú ert örugglega frjáls til að fínstilla það, gera það útlit ágætur, en undirliggjandi það er a undirstöðu-virkni svo alltaf að vísa til sérstakur um hvað þú þarft í raun að fela þar. Eftir sérstakur, við erum að fara að vera með tæki sem einnig miðlara. Það er að fara að hýsa heimasíðu okkar fyrir okkur, á staðnum miðlara. Ef þú fylgir þessum leiðbeiningum og renna niður pset 7 dreifingu kóða í raunverulegur vél möppunni gestgjafi / local,  þá getur þú bara heimsótt http://localhost/ í Google Króm í vélinni, og þá myndi ná kóðann sem þú hefur skrifað pset 7. Pset 7 kemur með fullt af kóða dreifingu, og vonandi we've - í gegnum allar psets fyrir þetta - vön okkur að lesa í gegnum kóða dreifingu, skilja hvað aðgerðir eru nú þegar veitt, og hvernig við gætum vera fær um að nota sem og aðrar aðgerðir sem við erum að fara að vera framkvæmd. Í þessu tilviki höfum við 3 möppur. Við höfum HTML möppu, sem felur í sér möppu og sniðmát möppu. Það sem við erum að fara að vera að gera með þessari pset er góður af aðgreina hugsun - forritun hugsa - af PHP kóða með raunverulegu sjón hlið. Við verðum eitt PHP skrá sem gerir alla að hugsa, lesa í gagnagrunninn, prentar út hlutina, hefur ef yfirlýsingar - svoleiðis - og þá sem ætla að fara framhjá gögn í skrá sniðmát okkar - eða template.php skrá. Hvað sem mun gera er að lesa gögn og þá mun það prentað það út. Við getum meðhöndla sniðmát eins og "heimsk" í að við í raun ekki vilja þá að vera að gera a einhver fjöldi af vinna í útreikning hluti. Við viljum stýringar okkar til að gera það. A lítill hluti um það - við skulum taka a líta á sumir af the dreifingu kóða. Hér höfum við index.html skrá okkar, og það er ansi tóm. Í meginatriðum hvað það er - það segir, Jæja, ég er að fara að krefjast þess að configuration.php skrá. Við sjáum ekki það rétt þar, en það er í rauninni að hringja í configuration.php skrá, og framkvæmd það. Eftir það er að það er að fara að láta safnið. Rendering er fall, svo þegar við erum í stýringu, við munum kalla bakið, munum við gefa það skrána og gögn sem við erum sem liggur í, þannig að það hringi í portfolio.php--konar fara í þessi gögn þannig að eignasafn get tekist á við það. Og nú, hér höfum við login.php mynd okkar.  Þetta er stjórnandi sem í grundvallaratriðum sér um að skrá þig inn Hér athugar það ef mynd var lögð á þessa skrá og fjallar staðfesta uppgjöf. Við munum líta á þetta afsökunar virka. Þegar við viljum prenta út villu skilaboð, við notum afsökunar og það mun beina notandi til ákveðna síðu sem mun prenta út tiltekna villa skilaboð sem við kynna. Endurmenntun á, mun það fyrirspurn gagnagrunninn - we'll fá inn meira af því síðar. Þá sérðu að hérna ef mynd var ekki lögð fram, þá gerir það form. Það þýðir að það fer að login_form.php, þannig að við skulum líta á það. Login.php er í raun þar sem við sjáum HTML takast á við raunveruleg sjón hlið. Hér höfum við inntak tag fyrir notandanafn, inntak á lykilorð auk Senda hnappur. Það er í raun þar sem sjón þáttur og HTML formi er að fara að vera haldin. Hér segir það að það er að fara að vera frá ákveðinni aðferð, sem heitir eftir. Við munum komast í muninn aðferðir - senda á móti fá, það er líka eitthvað sem heitir að setja - við munum fá í þeim aðferðum síðar, en fyrir hagsmunum þessa pset, Ég vildi mjög hvetja þig til að nota færslu. Við vitum að í rauninni þegar þetta eyðublað er lögð - frá login_form.php-- þá mun það fara í aðgerð - login.php-- grundvallaratriðum fara í öllum þessum þáttum frá þeim formum í login.php. Niðurstöður úr þeirri mynd er að finna í þessari færslu tengin array. The Vísitölur mismunandi þætti í kjölfar fjölda er nákvæmlega það sem þú tilgreinir hér. Þú segir að að nefna þetta inntak er notandanafn. Nafn þessa einn er lykilorðið. Á sama hátt, þú sérð notandanafn og vísitölu tengin array þar. Ef við förum í nær möppu, höfum við þessa aðgerðir skrá sem er að fara að vera mjög gagnlegt. Allar þessar aðgerðir koma til framkvæmda fyrir þig. Þú þarft ekki að sérstaklega framkvæma eitthvað af þessum sjálfur, en þeir eru að fara að alveg gagnlegt. Við höfum afsökunar, sem eins og ég sagði áður, þá í raun prenta út villu skilaboð fyrir þig á ákveðna síðu - apology.php. Þá höfum við sorphaugur, þannig að ef þú kallar bara sorphaugur og síðan fara í breytu, þá mun það koma þér á síðu sem mun sýna þá breytu fyrir þig. Þá höfum við Útskrá, sem mun í grundvallaratriðum enda fundur ákveðinn notanda. Leit er að fara til að vera gagnlegt. Þar sem við erum að fást við tilvitnunum og hlutabréfa, við erum að fara að vera fær - og það er í raun rauntíma. Við þurfum að vita hvað þessir lager gildi eru, þannig að við höfum útlit virka sem fjallar með gögnum Yahoo fiskistofna. Þegar þú lítur upp ákveðin merki af lager, mun það koma aftur til þín lager tákn sem og nafn og núverandi verð á þeim stofni. Það er útlit virka. Svo við erum að fást við MySQL, þannig að við erum að fara að vera ófullnægjandi til að framkvæma ákveðnar fyrirspurnir í SQL gagnagrunni okkar. Við höfum fyrirspurn til takast - til konar ágrip sumir af þeim út. Við ætlum að vera farið í öllu band á SQL fyrirspurn okkar - og allar breytur sem fara í það - og hvað þetta gerir er í raun framkvæma það fyrir okkur. Í stað þess að þurfa að skrifa allt þetta út í hvert skipti sem þú vilt að spyrja - með því að fá allar niðurstöður úr þeirri fyrirspurn - þá getur þú bara hringja í fyrirspurn virka, og það mun koma aftur til þín - eftir því hvað þú ert að nota við leit þína - sennilega röð allar niðurstöður sem passa við fyrirspurn eða álíka. Meira um það síðar þó. Að lokum, höfum við beina sem, eins og nafnið bendir til, tilvísanir þig á aðra síðu. Og þá höfum við bakið, sem við erum að fara að hringja nokkrum sinnum. Þegar þú ert í stjórnandi, kalla þú láta inn í sniðmát síðuna og þá fara framhjá í gildi að sniðmáti mun þá takast á við. Þeir gildi eru líklega að fara að takast á við hvers konar framleiðsla sem þú vilt að birtast á síðu sniðmátið. Allt í lagi. Þeir eru störf, og það er mikið meira til þessa dreifingu kóða. Ég hvet þig til að fara í gegnum þetta og kanna það sjálfur. Einnig sérstakur mun líklega ganga í gegnum nokkur önnur atriði í dreifingu kóða. Hér er yfirlit yfir þær aðgerðir sem finnast í functions.php. Allt í lagi. Fyrsta verkefni er að leyfa notendum að skrá sig á vefnum. Núna, það er tenging á vef, og þú eru með nokkrum notendum með lykilorð. Þú getur notað þessi notendanöfn og skrá þig inn, en þú vilt leyfa fólki að taka sínar eigin notendanöfn þeirra og bæta sig til the website. Útlitið um skráningu er nokkuð svipað innskráningu formi, nema notendanafn er ekki fyrirliggjandi, og notandinn þarf einnig að veita nýtt lykilorð og þá oftast við höfum lykilorð staðfestingu. Þegar notandi inntak allar þessar upplýsingar, viljum við bæta þeim við gagnagrunn okkar notendum. Við ætlum að hafa gagnagrunn - a SQL gagnagrunn - að við erum að fara að vísa. Í þeim gagnagrunni, munum við hafa töflu með öllum notendum inniheldur notandanafn, lykilorð þeirra og einnig hversu mikið fé þeir hafa. Í skrá, viljum við að leyfa þeim að slá inn þær upplýsingar. Við viljum sýna að mynd. Við viljum tryggja að lykilorð þeirra - að þeir inn einn, og þá einnig að lykilorð passa þegar þeir slá það tvisvar. Eftir allt sem er gert - að því gefnu að þeir villur eru skoðuð - þá viljum við bæta þá notendur til hjá okkur. Að lokum, þegar þú hefur skráð, er það nokkuð þægilegt ef þú þarft ekki að skrá sig inn aftur Þegar þú hefur skráð, þannig að við erum að fara að skrá þá inn á vefsíðu ef þeir hafa skráð í góðum árangri. Fyrsta verkefni er að sýna mynd, og þetta er í raun að fara að vera - Þetta allt skráningar er að fara að vera fyrirmynd ansi náið eftir innskráningu nema í stað login.php þú gætir hafa register.php. Í stað þess að login_form.php--sem er sniðmát - þú munt hafa skrá formi. Þú þarft að bæta við einum sviði - staðfesting lykilorð reitinn - í stað bara einn notandanafn og auðkennisnúmer. Næst viljum við að athuga hvort lykilorð passa eða eru eyða. Við höfum stjórnandi - register.php--sem er að fara að sjá um að gera þessar athuganir. Þegar mynd er lögð í gegnum POST aðferð, þá allar þessar breytur er að finna innan the staða fylkisins. Þú vilt tryggja að array eftir gildi á lykilorð vísitölu passar staðfestingu frumefni. Þú vilt tryggja að þeir eru ekki tóm, og þú vilt vera viss um að þær séu eins. Einn þægilegur hlutur óður í PHP er að við þurfum ekki að nota band bera lengur. Við getum notað jafn-jafnt rekstraraðila  til að athuga hvort strengir eru jafnir í öðru. Fyrir meðhöndlun villa, munt þú vilt að afsaka. Að afsaka, að hringja einfaldlega virka  og þá tilgreina tegund skilaboð sem þú vilt að framleiðsla. Þú vilt þá að bæta notanda við gagnagrunn. Upp fyrr en nú, allt sem við höfum verið að gera er bara að takast á staðnum við niðurstöður formi. Nú viljum við í raun og veru að bæta þeim við okkur. Fyrir þetta viljum við fyrst að ganga úr skugga um að notendanafnið sé ekki tóm. Skilja að á vefsíðu, getur þú ekki að hafa marga notendur með sama notendanafni, svo þú þarft að ganga úr skugga um að þegar þú setur eitthvað inn í gagnagrunninn þinn - setja nýjan notanda - svo þú færð ekki árekstur milli fyrirliggjandi notandanafn og notendanafn sem notandi er að reyna að senda inn. Fyrir þetta, þegar þú framkvæma fyrirspurn - setja ákveðinn notandi með aðgangsorði sínu og fyrstu magn af peningum - þegar þú hringir að fyrirspurn, þá MySQL mun í raun aftur rangt ef það tekst ekki. Uppbygging notenda er svo að notandanafn er einstakt gildi, svo þú getur ekki haft fleiri en einn. Þegar þú reynir að setja inn nýja röð með notandanafn sem er þegar til það er að fara að fara aftur rangar - eins og Boolean-gildi rangar. A erfiður hlutur hér er að þú þarft að athuga hvort niðurstaðan er afleiðing af fyrirspurn þinni. Ef það tekst ekki, þá munt þú vilt að athuga með þrefaldur jafngildir rekstraraðila. Það er í raun og veru að fara að athuga hvort að það sé bilun eða ekki, en, í bara einfalt jafn-jafn, væri satt ef röðin var tóm. Afleiðing af bilun ef það er árekstur milli notendanöfn er í raun falskur gildi. Hér er hvernig þú vilt setja inn í gagnagrunn. Hér er fyrirspurn sem þú vilt keyra aðeins í SQL. Einn hlutur er að þú getur raunverulega að fara á vefsíðu sem stýrir SQL gagnagrunn og leika sér þar með því að slá handvirkt annaðhvort gildi eða raðir. Það mun framleiðsla hvað SQL framleiðsla er. Þú getur líka keyrt SQL skipanir í gagnasafninu  og þá sjá hvað setningafræði gæti verið, og þá þýða að í fyrirspurn virka sem við höfum í pset 7, sem er að fara að vera mjög svipuð og fyrirspurnum að þú keyrir í raun. Ef ég vildi setja inn nýja röð í notandi borð mitt, þá myndi ég skilgreina setja inn notenda, sem er nafn mitt borð. Þá myndi ég tilgreina dálki nöfn. Þá myndi ég veita gildi með lykilorðinu mínu. Lykilorð á notenda töflu okkar eru ekki geymd sem bara band. Þær eru geymdar sem brengla útgáfu, svo þú þarft að hlaupa virka Crypt á raunverulegum lykilorð, og það mun gefa þér rétta tegund af geymslu fyrir notendur fylkisins. Running þetta mun setja nýja línu inn notendur töflunni. Til að takast á við fyrirspurn virka, áður í C ​​við notuðum prósent skilti sem tákn. Á sama hátt, sama hugtakið tákn gildir hér. Með fyrirspurn, tilgreina þér allt fyrirspurn, nema þegar þú ert að takast á við breytum eins og hjálpina í fyrirspurn, þá í stað þess að í raun að setja þá inni - eins og þegar við höfðum printf yfirlýsingar í C. Við viljum setja band og síðan hafa tákn þarna, og síðan eftir hverja komma fram hvaða breytu sem við átti. Hér erum við að fara að nota merkið spurning merki sem tákn okkar og þá fara í hverja breytu um sig til, fyrir staðgengla - hvar þær breytur ættu að fara. Svo hér, væri fyrsta spurningarmerki komi raunverulegu notandanafn þá seinni spurningarmerki með lykilorði. Þá að lokum, þegar þú hefur skráð þá og bætt þeim við í grunninn, þá þú vilt skrá þig þá inn á heimasíðu. Við höfum eins konar ofur-alþjóðlegt breytu sem heitir lotu. Session tekur ákveðna auðkenni, og id svarar til notanda sem er skráður inn Það sem þú þarft að gera er að finna það kenni þeirra er og þá setja þeim fundi persónuskilríki sem auðkenni sem einstökum notanda. A fall sem þú þarft að nota hér er SQL skipun sem sækja síðasta sett kennitölu úr töflunni. Þá raðir vilja kalla - it'll kalla id - it'll tengja nafn við fjölda sem það skilar. Það verður hringt í þá finnst. Nú höfum við skráð lokið, og við getum flutt til vitna. Quote leyfir notandanum að inntak nafn af ákveðinni lager, og þá mun aftur eiginleika viðkomandi stofni. Það sem þú þarft að gera hér er að hafa stjórnandi og sumir sniðmát. Í þessu tilfelli erum við að fara að hafa stjórnandi sem er að fara að gera allt að hugsa fyrir okkur. Það er að fara að líta upp tákn og þá fara framhjá í gildi til sniðmát sem vilja prenta út. Við ætlum að hafa 2 sniðmát hér. Við ætlum að hafa 1 sniðmát sem veitir mynd þar sem notendur eru að fara að inntak nafn á verslun - nafn á hlut. Þá erum við líka að fara til að vilja annað sniðmát sem sýnir þá gildi. Þú getur litið inn í innskráningu til dæmi um hvernig þú vilt hafa mynd sem tekur inntak, nema hér, viljum við einungis 1 reit. Við viljum ekki inn notandanafn og lykilorð reit. Við viljum bara 1 textareitinn sem leyfir notandanum að inntak nafn af ákveðinni lager. Síðan sem þú vilt að senda þessi gögn - þegar þú hefur litið upp þessi verslun - til quote_form.php. Leit mun skila tákn á lager, nafn, og verð. Þeir eru að finna innan tengin array. Horfðu upp útlit virka inni í functions.php fyrir frekari upplýsingar á aftur gerðir þeirra. Great! Svo að lokum, munt þú vilt að sýna lager upplýsingar. Þú þarft að öllum líkindum sýna - you'll vilt fá aðgang að þeim breytum. Þegar þú hefur verð í breytu - sem og nafn og tákn - þá munt þú vilt að sýna þeim sem eru í Page Snið þínu. Þessi sniðmát síðu gæti kallað show_quote.php eða eitthvað. Quote.php síða þín geri sýna vitna og svo fara í öllum þessum gildum. Þá í PHP síðunni þinni, prenta þú í raun út þá gildi við HTML þætti á síðunni. Þú notar bara prenta virka og fara í verði. Það eru 2 leiðir til - þú getur annað hvort concatenate það með punktur rekstraraðila, eða nota tákn. Notendur að lokum eru að fara að kaupa og selja hlutabréf. Við viljum leyfa þeim nokkur leið að sjá allar birgðir sem þeir hafa nú. Við ætlum að kalla það safn þeirra. Portfolio myndi væntanlega fyrir hvern notanda, innihalda fullt af línum skráningu hvaða hlut sem þeir hafa og þá hversu margir af þeim sem þeir hafa. Núverandi borð okkar - núna höfum við notendur borð hjá okkur. Það inniheldur notandanafn notandans sem og lykilorð þeirra og hversu mikið fé þeir hafa. Það er engin alvöru leið til að geyma öll hlutabréf þeirra í því. Það er ekki eins og við getum sett nýja dálka fyrir hvert lager. Það myndi vera mjög, mjög löng röð þar sem við höfum óendanlega magn gerðir af hlutabréfum sem þeir gætu hafa. Svo, í staðinn það sem við munum gera er að innan sama gagnagrunni, við munum hafa notendur borð, en þá munum við einnig hafa eigu borð. Eignasafnið borð verður örugglega tengd við notendur borð, en í staðinn borðið eigu uppbygging mun hafa birgðir upplýsingar, hversu mörgum hlutum úr þeim stofni sem notandinn hefur auk notanda einkum id númer. Þú hefur á notenda töflu sem er með kenni auk notandanafn, kjötkássa - sem er lykilorð, the brengla lykilorð - og þá upphæð af peningum sem þeir hafa. Kennitölu yrði tengd við kennitölu frá safninu. Eignasafnið vildi bara tákn stofnsins sem og hlutabréfum - fjöldi hluta í viðkomandi stofni sem notandinn hefur. Í eignasafninu töflu sem þú þyrftir í rauninni allt hlutafé yfir af öllum notendum á síðuna þína. Seinna, að tilgreina aðeins hluti ákveðins notanda - einungis eigu þeirra - þú vildi sækja gildi úr töflu eignasafnsins þíns þannig að að kennitala er um viðkomandi notanda. Þegar þú birtir eigu, munt þú vilt að tilkynna hvert hlutabréf í eigu notanda. Þú þarft að greina frá fjölda hluta og núverandi gildi þessara hluta. Að núverandi verðmæti þessara hluta er ekki geymt í eigu borð vegna þess að það er að fara að uppfæra - að lágmarki - á hverjum degi af Yahoo. Til að fá þær upplýsingar, getur þú ekki vísað því frá SQL fyrirspurn þinni. Hvaða aðgerð veitir það okkur? Hvaða aðgerð mun fá verð? Það er útlit, með því að nota leit á tilteknu tákni mun gefa þér mikið af upplýsingum. Það verður að gefa þér 3 stykki af upplýsingar - nafn, tákn, eins og heilbrigður eins og the verð. Þegar þú flett ákveðnu tákn, þá er hægt að fá verð, og þá er hægt að nota verð til að sýna í eigu þinni. Eignasafnið ætti einnig að sýna núverandi reiðufé notanda jafnvægi. Þessi reitur er geymd innan notandi töflunni. Svo muna hvernig við erum í rauninni að þurfa að - við erum með mismunandi gerðir af PHP skrá. Við ætlum að hafa stjórnandi sem í rauninni allt að hugsa um þig. Og svo erum við með sniðmát sem sniðmát fæst með outputting gögn. Þú þarft að hugsa um hvað breytur sem stjórnandi þurfa að taka inn Ef við erum að fást við safni sem framleiðsla hvert nafn, tákn og deila númer, og núverandi verð á hlutabréfum, þá munt þú vilt að finna einhverja leið til þess í rauninni farið í - þú geta fara framhjá í fjölda af gildum sem samsvara þeim. Við skulum fara inn í dæmi um hvernig þú gætir sækja allar birgðir eigu notanda. Þetta er ekki að takast - en - við verð á hlutabréfum. Hvað þetta myndi gera er að keyra fyrirspurn. Það myndi fá tákn sem og hlutabréf félagsins úr - Ég kalla þetta borð, en í þessu tilfelli hvað myndi það vera? Hvað er nafnið á borðinu sem við erum að takast á við það er tákn og hlutabréf fyrir tiltekna notandi? Það er annað hvort notendur eða eigu. Portfolio. Hvað þetta myndi gera er fyrirspurn eigu fyrir táknum og hlutabréfum fyrir tiltekna notendur. Hér segi ég, (SELECT tákn, hlutir FRÁ TBL - en í stað töflu, ætlar þú að fara að skipta því við eigu. "Hvar er í grundvallaratriðum ástand mitt. Ég er að segja að ég vil bara að fá þær tengin fylki sem passa  þessum eftirfarandi ástand - id jafningjar.  Þá er ég að setja tákn þar og síðan fundur id. Hvað þetta myndi gera er að segja fyrir hverja röð í raðir. Þetta er snyrtilegur vegur í stað í raun að þurfa að setja upp for lykkju sem iterates yfir allar vísitölur þá í PHP er hægt að hafa fyrir-hverja lykkju. Ef þú ert ákveðinn fjölda, þá er hægt að segja að ég ætla að hringja í hvert samfellda þáttur - Ég ætla að hringja í hvert frumefni þetta nafn. Svo, fyrir hvern og einn þessara þátta, ætla ég að kalla þá það, þá get ég gert þetta. Í þessu fyrir hvern, þú raðir sem raunverulegur fylki þitt, og hver röð sem þú ert að fara að hringja í röð. Í hvert skipti sem það keyrir líkamann, það mun fara upp og það mun uppfæra röð á næsta þátt í röðum. Nú, hvað varðar að kaupa hlutabréf, hvað við viljum gera er að fá á lager sem notandinn vill kaupa og the magn af hlutum sem notandinn vill kaupa, og þá - ef þeir vilja - bæta að hlutabréf í eigu þeirra. Vitanlega, ef þeir eru að kaupa eitthvað, þá er að fara að lækka þá upphæð sem þeir hafa, svo það er að fara til að minnka fé þeirra. Við erum að fara að takast á við að uppfæra safn sem og á notenda töflu, sem inniheldur reiðufé. En fyrst þarftu að fá raunverulegt birgðir og magn af hlutum sem notandinn vill. Fyrir þessi, þú þarft HTML formi sem mun biðja um tákn lager sem þú vilt kaupa og fjölda hluta. Síðan sem þú þarft að bæta við. Þú þarft að velja ákveðin gildi. Við höfum farið í gegnum þetta smá þegar, en þegar þú ert að reyna að fá ákveðnar raðir - sækja ákveðnar raðir frá SQL töflunni, þetta er eftirfarandi setningafræði. Þú hefur valið, og þá ef þú tilgreinir stjörnu, þessi 'í grundvallaratriðum aftur allt, heila röð fyrir þig. Þá aftur, hefur þú ástand þar, og þá þú tilgreinir - Ég vil aðeins notandanafn til að vera jafn póstur-í, svo það verður bara að sækja röð notendur sem samsvarar póstur-í. Þegar notandi vill bæta hlut við eigu, þú þarft að athuga í nokkrar villur. Þú vilt tryggja að notandinn getur í raun og veru efni á lager, svo þú þarft að athuga með fé þeirra. Áður notuðum við stjörnu til að sækja allt röð af SQL töflunni. En hér getum við í raun bara að skilgreina það sem ég vil bara 1 gildi - Ég vil bara peninga. Svo hér, myndi það skila reiðufé fyrir notanda með id númer 1. Ef notandi hefur þegar keypt ákveðna lager en þá kaupir meira af þeim stofni, þá í eigu þinni - þú vilt ekki að sér línu, önnur röð sem inniheldur að nýja færslu. Þú vilt í raun að uppfæra magn. Allt sem er að breytast í raun er sú upphæð sem hluta að þessi notandi á. Ef þú notar setja inn fyrirspurn - þannig að það er bara að setja inn í eigu þinni öll þessi gildi - id notanda númer og tákn á lager sem þeir eru að kaupa og hlutabréf, þá munt þú einnig vilja til að tilgreina, vel, ef ég hlaupa inn í afrit lykill - í þessu tilfelli, afrit lykill er ekki aðeins id notanda en einnig lager tákn - vegna þess að þú getur aðeins hafa - forsenda okkar er að þú getur aðeins hafa 1 röð  sem svarar til 1 tiltekna tákn. Svo, á afrit lykill - Ef þú keyrir inn í árekstri þarna - þú ert bara að fara að uppfæra hluti á nýja gildi. Hlutabréf jafnt hvað við höfðum áður auk fjölda hluta sem notandinn er að kaupa. Nú þegar við höfum uppfært eigu borð, við munum vilja til að uppfæra peninga notandans. Það er í notandi borð, þannig að við erum að fara að draga ákveðna upphæð frá peningum. Væntanlega, það er að fara að vera reiðufé jafngildir reiðufé mínus - og síðan ákveðna upphæð. Til að uppfæra peninga, myndir þú - ef ég vildi taka burt peninga frá póstur-í, þá myndi ég hlaupa þessa fyrirspurn - 'Uppfæra notenda og þá setja reiðufé dálkinn til fé - Ég myndi fjarlægja 9.999 dollara nema notendanafn er jafn póstur-í. En, í þessu tilviki, við viljum ekki að draga 9.999 sérstaklega. Við viljum að tilgreina vel, viljum við að draga núverandi verð á hlutabréfum margfaldað með fjölda hluta sem þeir eru að kaupa. Nú höfum við leyft þeim að sjá allar birgðir sem þeir hafa, sem og að kaupa fleiri hlutabréf. Við höfum líka áður leyft þeim að horfa upp á núverandi verð á lager. Hér viljum við að leyfa þeim að selja þær. Fyrst viljum við sýna grundvallaratriðum - við viljum að leyfa þeim að sjá allar birgðir sem þeir hafa, svo hér erum við að sýna öllum línum frá safninu. Ef þeir velja að selja ákveðna lager, þá erum við að fara að gera ráð fyrir að þeir vilja til að selja það allt. Þeir eru ekki bara að fara að selja 50% af hlut sínum, þá eru þeir að fara að selja 100% af henni. Við getum bara eytt heila röð frá safninu. Við getum eytt hlutabréf ákveðins notanda á ákveðnu tákni. Það er setningafræði fyrir það. Þá viljum við að uppfæra peninga. Við erum að fara að bæta í reiðufé jafn fjárhæð hlutabréfa sem þeir eru að selja margfaldað með núverandi verð á hlutabréfum - ekki verðið þar sem þeir keyptu það, heldur verð þar sem þeir eru - núverandi verð þegar þeir eru að selja það. Til að vísa til núverandi verð á hlutabréfum, þú vilja vilja til að nota útlit sem mun gefa þér verð á hlutabréfum á núverandi tíma. Nú erum við uppi með sögu, sem þú vilt leyfa notendum að halda utan um öll viðskipti þeirra - vill sjá þegar þeir seldu eitthvað, þegar þeir keyptu lager. Við viljum að tilgreina tíma sem þeir gerðu það og hversu margir þeir keyptu og hverrar ættar hann væri. Höfum við allir núverandi, núverandi skipulagi sem segir að? Jæja, höfum við eigu sem sýnir fjölda birgðir sem notandi hefur fyrir tiltekið hlut. En við erum að uppbyggingu eigu í leiðinni að það uppfærslur þegar við kaupum margar, en sagan ætti - ef þú kaupir Apple, 10 hluti af því, og þá seinna á selja 5, þá þú vilt að sjá þá sérstaklega sem sjálfstæðar aðgerðir, sérstakar raðir. Í þessi aðgerð að sjón að í töflu eigu okkar myndi bara vera uppfærsla til viðkomandi röð  þannig að við erum líklega að fara að vilja annað borð. Í gagnagrunninum okkar, höfum við notendur borð okkar, höfum við eigu borð okkar, og nú munum við sennilega vilja sögu borð. Þessi saga borð hægt að halda utan um núverandi dagsetningu, sem og sérstaklega lager tákn, eins og heilbrigður eins og hversu mörgum hlutum, og þá hvaða aðgerða það er - hvort þú varst að kaupa þá hluti eða hvort þú varst að selja þær. Til að takast á við dag, there ert a par af leiðir að þú getur gert þetta. PHP hefur leið til að halda utan um þann dag, sem þú getur litið upp sjálfur. Í SQL er einnig hægt að nota annað hvort núna eða núverandi timestamp. Það er komið að þér. Bara ganga úr skugga um að í hvert skipti sem notandi kaupir eða selur, munt þú vera að uppfæra peninga þeirra í notandi borð, verður þú að vera að uppfæra raðir í eignasöfnum töflunni þá munt þú einnig uppfæra sögu, þannig að það eru að fara að vera 3 aðskilin SQL fyrirspurnum að þú munt vera að hringja þar. Við höfum fullt af virkni núna. Bara nokkrar áminningar að í skrá vísitölu þinn munt þú vilt að krækja amk þínar - en þú þarft að leyfa notandi til að tengjast buy.php síðu. Það er að fara að leyfa notandi - buy.php er stjórnandi, þannig að er að fara að annaðhvort senda þér til - það er að fara að senda þig til formi sem gerir þér kleift að leita það upp. Við höfum sögu. Við höfum skógarhögg út, fá að vitna og svo selja. Þeir eru í lágmarki það sem þú vilt að sýna. Með tilliti til safnsins, er eigu í raun sýnt á upphafsíðu. Ef við förum að skrá, hér sjáum við að það gerir portfolio.php og fer í tengin array - í grundvallaratriðum jafngildir titillinn eigu. Svo, þetta er stjórnandi. Ef við förum til sniðmát portfolio.php, þá er allt það hefur - sýnir í rauninni mynd sem segir, ó, þessi síða er í vinnslu. Seinna, þegar þú fara í - you'll vera komið í grundvallaratriðum nánari upplýsingar. Í stað þess bara titli, munt þú sennilega vera farið í fleiri hlutum. Þegar þú hefur þeim gildi, þá portfolio.php get tekist á við þá gildi og prentun þá út í hvers konar röð. Þegar þú hefur innleitt alla af þeim, þú þarft einnig að framkvæma 1 fleiri lögun. Þetta getur annað hvort að leyfa notandi til að breyta lykilorðinu sínu, að endurstilla lykilorð þeirra ef þeir hafa gleymt því - svo fyrir lykilorð endurstilla, þá þú munt sennilega líka að breyta skrá þannig að það gerir þeim kleift að tilgreina tölvupóst, þannig að ef þeir gleyma lykilorðinu sínu, þá geta þeir fengið það. Þeir geta líklega inn í notandanafn, og þá er tölvupóstur verður sendur til þeirra með tengli til að vera fær um að endurstilla lykilorð þeirra. Hægt er að hafa eitthvað sem gerir notendum kleift að fá kvittanir hvert sinn sem þeir kaupa eða selja eitthvað, og svo að lokum, að leyfa þeim að bæta fé til þeirra website. Bara til að fara aftur inn í hugmyndina um stýringar og sniðmát svolítið. Þú munt hafa eitthvað eins og - þannig að þú munt hafa a stjórnandi hér. Núna erum við að horfa á login.php dæmi. Þegar við höfum stjórnandi, í raun það er að fara að taka 2 mál. Þegar við höfum stýringar, erum við í þessu stykki sem við erum einnig góður til að takast á við þegar við höfum form eins og heilbrigður. The stjórnandi mun í grundvallaratriðum hafa aðskilin aðgerðir - einn ef mynd hefur þegar verið lögð fram, og síðan tveir ef notandinn er að koma á þá síðu í fyrsta skipti og enn þarf að inntak sem myndast. Ég ætla að hoppa í því tilfelli fyrst áður en þú ferð upp í fyrra tilvikinu að hafa formið inn Hér segjum við, ef mynd hefur verið lögð við þá aðferð eftir - ekki hafa áhyggjur af því að smá. Ekki hafa áhyggjur óður í það of mikið en skilja að í grundvallaratriðum fjallar þessa aðgerð með hvort mynd hafi verið lögð fram eða ekki. Þetta ástand er satt ef notandi hefur sent inn mynd. Ef ekki, þá erum við að fara að vilja til að hringja bakið login_form.php, og þá fara í titlinum. Þessi titill er bara í rauninni að fara að birtast í hausnum. Hvað þetta gerir er í grundvallaratriðum segir, allt í lagi - ja, ef notandi fer í login.php og hefur í raun ekki skráður inn, þá vil ég senda þær á síðuna sem hefur að mynd sem gerir þeim kleift að inntak notandanafn og lykilorð. Þá fer ég að login_form, og þá er í raun form. Þá, þegar fram notandinn sem mynd, þá eru þeir að fara að leggja það til login.php með aðferð færslu. Og ég er í raun að fara að slá þessa hluti af ef-annað lykkju mína. Þá er það hér að við að takast á við þau gildi sem inn í form. Það er hér sem við takast á við þau. Þá þegar þú takast á við slíkar gildi - ef þú ert að takast á við - segja að við erum að fást við quote.php síðu þar sem einhver getur slá inn lager sem þeir vilja að líta upp, og þá sjá að sýna - það er góður af líkur hér. Hér höfum við innskráningu mynd - you'd líklega hafa vitna mynd - en svo þegar notandi hefur í raun fram að upplýsingar, þá munt þú vilt að stjórnandi til að fara í annað sniðmát sem mun sýna þeim að raunverulegum upplýsingum. Svo rétt í kring hér, þá munt þú sennilega - um enda ástandi hér - að ef aðferð jafn staða - þá munt þú sennilega vilja til að gera aðra síðu - sýning vitna - sem sendir þig á þá síðu - show_quote.php-- og þá í þeirri skrá vilja vísa þeim gildi. Er það skynsamleg? Við höfum stjórnandi sem í grundvallaratriðum fjallar um 2 tilvikum - hvort þú hafir slegið inn mynd á eða ekki. Ef þú hefur ekki slegið inn mynd, þá mun það sent þig í því formi, sem mun þá setja þig aftur á þá síðu. Þá, þegar þú hefur upplýsingar í stjórnandi, sem líkaminn verður að takast á við það upplýsingar sem nauðsynlegar - annað hvort að horfa upp gildi fyrir lager, og svo þegar það er litið upp þá gildi og hefur þá í fallega sniðinn fylking, þá er hægt fara að fylki í sniðmát síðuna  sem fjallar outputting þær upplýsingar. Aftur, þar sem vefur það er, það er að fara að vera skemmtilegt. Við erum utan C þannig að við erum ekki bundin við ASCII og að flugstöðinni framleiðsla, svo hafa gaman með þetta. Þú getur gert það eins og sjón eins og þú vilt. Hægt að leyfa notendum að inntak milljónir dollara á einu, eða takmarka þær og vera í raun átt við og leyfa þeim aðeins að slá inn 1 eyri í einu eða eitthvað svoleiðis. Ákveðið að vera viss um að hafa gaman af þessu. PHP kóði er aðeins einfaldara í að það er svolítið auðveldara að kortleggja sauðakóðanum þinn í raun framkvæmd. Svo örugglega hafa gaman með þetta vegna þess að það er í raun síðasta verk okkar í CS50. Með því að þetta var Walkthrough 7. Þegar þú ert búin að horfa á walkthrough og lauk pset þinn, þá voru þetta líka psets, og nú erum við á endanlegri vöru - eftir að við að komast í gegnum próf 1. Þá vonandi er hægt að nota tól sem þú hefur lært af psets - ekki aðeins setningafræði, en meira abstrakt hugmynd um hvernig á að taka ákveðin - eins, ég vil gera þetta og þá í raun að framkvæma það. Læra hvernig á að berjast um setningafræði og dreifingu kóða. Lestur kóða annarra, og þá túlka það að nota fyrirliggjandi aðgerðir. Svo gangi þér vel með síðasta pset. Það hefur verið ánægjulegt að leiða walkthroughs. Ég vona að þeir hafa verið gagnlegt fyrir þig. Þetta voru walkthroughs, og takk kærlega. [CS50.TV]