[Powered by Google Translate] [Walkthrough problemą, 7] [Zamyla Chan] [Harvardo universiteto] [Tai CS50] [CS50.TV] Sveiki visi, ir sveiki atvykę į Walkthrough 7, CS50 finansų. Dabar mes oficialiai su visomis iš psets CS50 ir mes tiesiog paliko dar vienas kuris ketina būti įdomus įgyvendinimas tinklalapį, kuriame vartotojai gali prisijungti prie CS50 Finansų ir pirkti ir parduoti atsargas. Šiandien, mes ketiname turėti keletą mūsų turimas priemones. Mes ketiname kalbėti apie teises. Kai jūs turite interneto aplanką, jūs ketinate norite leisti vartotojams atlikti tam tikrus failus , bet taip pat tik skaityti kitų, todėl mes pažvelgti į teises, ir kaip jūs galite nustatyti šias. Tada mes ketiname pažvelgti į PHP, HTML, ir SQL kodą. Pirma, leidimus. , Kai esate tam tikro kataloge terminale, tada tai, ką jūs norite daryti yra, kurį norite paleisti chmod komandą. Arba raidžių ar skaičių, kad po į tai, ką iš esmės nori parodyti pasauliui, jūs patys pamatyti, ir tt Pavyzdžiui, kai jūs turite aplanką, tuomet jūs norite, kad aplankas turi būti įvykdyti visiems, kurie mato jį, Taigi, ką darytumėte, jums gali paleisti komandą chmod + x ir tada aplanko pavadinimas. Kai jūs turite failą, pavyzdžiui, CSS failus arba vaizdo failus - kaip JPEG ir rastrai, dalykų, pavyzdžiui, kad, ar bet kokio JavaScript "kalbos kodas norite, kad perskaityti visiems, taip, tada tai, ką jūs darote, yra, galite naudoti pakaitos kuri žvaigždutė - iš esmės nurodo, CSS aplanką - viskas tame aplanke -  Aš ruošiuosi pasakyti, kad tai bus perskaityti visiems. Su leidimais, kai mes naudojame raides, mes taip pat galime naudoti numerius, o ne. Taigi, kaip matote, kad galiausiai, kai norite ką nors būtų išieškotina kad atstovavo skaičiumi 1 - kažkas būti perskaitomas numeris 4 ir tada - rašyti yra numeris 2 - ir taip iš esmės, kai norite tų funkcijų deriniui, tada jums pridėti juos. Jei norite ką nors būti įskaitomas, rašyti, ir vykdomąjį, tada jums reikės pridėti iki 4, 2 ir 1, ir kad duos jums 7, tada, kai jūs turite aplanką norite, kad būtų įvykdyti visi - taip pat įskaitomas ir rašyti - tada jums padaryti, kad 7, 1, 1. Kad būtų 7 už jus, tada 1, kitų žmonių. Kai jūs turite spec, jis bus iš tikrųjų nurodyti, aplankai ir kurie failai reikia chmod-ED specialiai. Pavyzdžiui, kai jūs turite aplankus - tie, kurie 7-1-1 - kai turite vaizdus, ​​ar HTML, CSS, JavaScript, tada tie bus 6, 0, 4 - arba 6, 4, 4 - ir tada PHP failai bus 6, 0, 0. Idėja ta, kad vartotojams turėtų būti ne iš tikrųjų matyti savo PHP kodą, o tiesiog galėsite pamatyti produkcijos. Puiku! Persikėlimas į PHP. Tiesiog, kai norite PHP failą, failo priesaga yra PHP. Jūs taip pat galite maišyti HTML su PHP kodu. Jei turite HTML failą, pavyzdžiui, tada jūs galite pridėti jį su kairiuoju kampu, klaustuko, php - įdėti savo php kodą - ir tada arti, kad su kitu klaustuku ir stačiu kampu. PHP kintamieji yra daug lengviau spręsti nei kintamųjų C. Bet kuris kintamasis, tik prasideda dolerio ženklas priešais jį, ir jie silpnai įvedėte. Tai reiškia, kad jums nereikia jaudintis, nustatant kažką eilutę arba sveikasis skaičius lygus. Galite tiesiog sakyti, kad tai yra mano vardas kintamasis ir tai yra jo vertė, todėl bus lengviau kovoti su ten. Kitas dalykas yra tai, kad PHP leidžia naudoti Association masyvai. Galite tiesiog nustatyti masyvas, kaip jūs, C , sakydamas doleris prisijungimo savo vardą, pavardę masyvo-lygus, ir tada laužtiniuose skliaustuose iš esmės yra tik visų masyvo elementų reikšmių sąrašą. Tačiau, PHP, ką taip pat galite atlikti yra nurodyti iš esmės - tai tipo kaip maišos funkcija. Galite nurodyti indeksą - ką jūs ketinate jį pavadinti - ir tada, kad reiškia reikšmę. Jei jūs iš tikrųjų perduoti 1 = a, b = 2, c = 3, tada jūsų masyvas indeksuoti duos jums 1. Šis pset bus šilta jus su PHP klausimų skyriuje, ir tada mes pasinerti į CS50 Finansų. Mes turime porą - turime kai kurias funkcijas, iš esmės, įgyvendinti šioje svetainėje. Mes norime, kad leidžia vartotojams užsiregistruoti mūsų svetainėje su vartotojo vardą ir slaptažodį. Mes norime, kad jie galėtų ieškoti citata, ir tada mes išspausdinti tos citata pavadinimą, taip pat, kad tai ne Dabartinė kaina. Mes norime, kad jie galėtų pamatyti, kad jie pirko iki šiol akcijų portfelį. Mes taip pat norime, kad jie galėtų pirkti akcijas, taip pat juos parduoti. Ir galiausiai, mes norime, kad jie galėtų pamatyti istoriją visų sandorių, kad jie pagaminti. Tada, pagaliau, po to, kai įdiegėte visa tai, tada jūs laisvai įgyvendinti vieną papildomą funkciją. Mes eiti į tuos. Tie, kurie gali būti arba leidžia vartotojams gauti papildomų pinigų, deponuodama papildomų pinigų, ar jums gali leisti jiems pakeisti savo slaptažodį, arba kažką panašaus, kad, elektroniniu paštu jiems kvitą, kai jie pirkti ar parduoti akcijų. Yra ribotą sąrašą funkcijų, kad galėtumėte sau įgyvendinti, kad naujausia. Kadangi tai yra interneto svetainėje, jus vaikinai taip pat turi daug laisvės pritaikyti jį. Mes teikiame šiek tiek CSS kodą, bet jūs tikrai įgnybti, kad ji atrodytų gražiau, bet pagrindinei pagrindinės funkcijos todėl visada primena apie tai, ką jūs iš tikrųjų reikia įtraukti spec. Spec, mes ketiname naudoti prietaisą, taip pat su serveriu. Tai bus mums, talpinimas mūsų svetainėje savo vietos serveryje. Jei atlikite šiuos nurodymus ir išpakuokite pset 7 platinimo kodą į savo virtualaus serverio / vietos priimančiosios aplanką,  tada jūs galite tiesiog apsilankyti http://localhost/ "Google Chrome" į prietaisą, ir tada jums bus pasiekti kodą, kuriame jūs parašėte pset 7. Pset 7 ateina su platinimo kodo krūva, ir tikiuosi, we've - per visus prieš tai psets įpratę skaityti per platinimo kodą, suprasti, ką funkcijos jau yra numatytos, ir kaip mes galime būti suteikta galimybė pasinaudoti tų, ir kitų funkcijų, kad mes ketiname būti įgyvendinta. Tokiu atveju, mes turime 3 aplankus. Mes turime HTML aplanką, apima aplanką ir šablonai. Ką mes ketiname daryti su šiuo pset yra natūra atskirti mąstymą - programavimo mąstymas - PHP kodo, ir dabartinis vizualiniu aspektu. Mes turime vieną PHP failą, kad daro viską, mąstymo, rašoma į duomenų bazę, spausdina dalykų, jei pareiškimai - dalykų, pavyzdžiui, į tai, kad - ir tada, kad bus perduoti duomenis į mūsų šablono failą ar template.php failą. Kas, kad bus padaryti skaityti duomenis ir tada ji atsispausdinti. Mes galime gydyti šablonus kaip "kvailas", kad mes iš tikrųjų nenori juos daryti daug darbų apskaičiuojant dalykų. Mes norime, kad mūsų valdikliai padaryti, kad. Šiek tiek apie tai - Paimkime į kai paskirstymo kodo išvaizdą. Čia mes turime mūsų index.html failą, o tai gana tuščia. Iš esmės, ką ji daro - jis sako, gerai, aš reikalauti, kad configuration.php failą. Mes nematome, kad teisę ten, bet tai iš esmės paskambinus configuration.php failą, ir vykdančiosios kad. Po to, kai jis tai daro, jis ketina teikti portfelį. Rendering "yra funkcija, todėl, kai mes, duomenų valdytojo, mes paskambinsime tinką, mes suteikti jai failą ir tada duomenys, kad mes, praeinančio, taip, kad jis tau paskambinsiu į portfolio.php rūšies Pereiti į tuos duomenis, todėl, kad aplankas gali spręsti, kad. Ir dabar, čia, mes turime login.php formą.  Tai yra valdiklis, kuris iš esmės rūpinasi prisijungti in Čia, ji patikrina, ar forma buvo pateikta šį failą ir pasiūlymai pateikti patvirtinimui. Mes pažvelgti į šią atsiprašyti funkcija. Kai mes norime spausdinti klaidos pranešimą, mes naudojame atsiprašyti ir kad bus nukreipti vartotoją į konkretų puslapį , kurie bus išspausdinti konkretų klaidos pranešimą, kad mes nurodyti. Tęsiant užklausą duomenų bazę - we'll patekti į daugiau, kad vėliau. Tada pamatysite, kad žemyn čia, jei forma nebuvo pateikta, tada jis tampa formą. Tai reiškia, kad ji eina į login_form.php, todėl galime pažvelgti, kad. Login.php iš tiesų yra,, kur matome HTML Darbas su faktinio vizualiniu aspektu. Čia mes turime pirkimo žymeklį vartotojo vardą, slaptažodį įvesties, taip pat mygtuką "Siųsti". Kad iš tikrųjų vizualiniu aspektu ir bus surengtas HTML formą. Čia, ji sako, kad ji ketina pateikti tam tikrą metodą, vadinamą pranešimas. Mes susisieksime į skirtumų tarp metodų - rašyti, palyginti su gauti, yra taip pat kažkas vadinamas įdėti - mes susisieksime į šių metodų vėliau, tačiau šio pset interesų, Aš labai rekomenduojame jums naudoti įrašą. Mes žinome, kad iš esmės, kai ši forma yra pateikta - nuo login_form.php - tada jis bus eiti į veiksmų - login.php - iš esmės išlaikyti visų šių parametrų iš šių formų į login.php. Iš tos formos yra pateiktos šioje post Association masyvas. Po masyvo įvairių elementų indeksai yra būtent tai, ką jūs čia nurodomos. Jūs sakote, kad šio įėjimo vardas vartotojo vardas. Šio vieno vardas yra slaptažodis. Be to, pamatysite vardą kaip asociatyvus masyvas ten indekso. , Jei mes einame į apima aplanką, mes turime Ši funkcija failą, kuris ketina būti labai naudinga. Visas šias funkcijas yra įgyvendinamos jums. Jums nereikia konkrečiai įgyvendinti bet kurios iš šių sau, tačiau jie bus gana naudinga. Mes apgailestaujame, kuris, kaip jau minėjau anksčiau, bus iš esmės spausdinti klaidos pranešimą Jums konkretų puslapį - apology.php. Tada mes turime sąvartynas, todėl, jei jūs tiesiog paskambinti sąvartynas ir tada perduoti kintamojo, tada jūs pateksite į puslapį, kuris bus rodomas šį kintamąjį jums. Tada mes atsijungimo, kuris iš esmės baigti tam tikrą vartotojo sesijos. Paieška yra, bus naudinga. Kadangi mes susiduriame su kabutėmis ir atsargas, mes ketiname galės ir tai iš esmės realiu laiku. Mums reikia žinoti, ką tie akcijų vertės, todėl mes turime peržvalgos funkciją, kuri susijusi su Yahoo dokumentacijos išteklių. Kai jums atrodo tam tikrą vertybinių popierių simbolis, jis grąžina Jums akcijų simbolis taip pat pavadinimą ir tų išteklių Dabartinė kaina. Štai peržvalgos funkcija. Tada mes susiduriame su MySQL, todėl mes ketiname būti nori vykdyti tam tikras užklausas mūsų SQL duomenų bazės. Mes turime užklausa spręsti - abstrakčių kai kurie, kad iš rūšies. Mes ketiname būti perduoti visą mūsų SQL užklausos eilutę - ir visų kintamųjų, kurie eiti į jį - ir kas tai yra iš tikrųjų vykdyti, kad mums. Vietoj to, kad rašyti visa tai atlikti kiekvieną kartą, kurį norite užklausą gauti visus rezultatus šiai užklausai: tada galite tiesiog skambinti užklausą funkciją, ir jis bus jums grįžti į priklausomai nuo to, ką jūs naudojate jūsų užklausą turbūt visų rezultatų, atitinkančių užklausą arba panašų eilutėje. Daugiau apie tai vėliau nors. Galiausiai, mes turime nukreipti, kuris, kaip rodo pavadinimas, nukreipia į kitą puslapį. Ir tada mes turime suteikti, kurią mes bus skambinti porą kartų. Kai esate duomenų valdytojo, galite skambinti teikti į šablono puslapį ir tada pereiti vertybėmis, kad šablonas tada spręsti. Tos vertės tikriausiai bus susijusios su produkcijos tipą, kurį norite turi būti pateikiami ant savo šablono puslapio. Gerai. Tai yra funkcijos, ten yra daug daugiau prie šio paskirstymo kodą. Raginu jus eiti per šią ir ją tyrinėti save. Be to, spec tikriausiai vaikščioti jums per kai kurių kitų elementų platinimo kodas. Čia yra rasti functions.php funkcijų santrauka. Gerai. Pirmoji užduotis yra, kad vartotojai užsiregistruoti svetainėje. Dabar, yra prisijungimo forma svetainėje, ir jums būtų suteikta keli vartotojai su slaptažodžiais. Jūs galite naudoti šiuos vardus ir prisijungti , bet norite, kad žmonės galėtų padaryti savo vardus ir įtraukti save į svetainę. Registracijos išdėstymas yra gana panašus į prisijungimo formą, išskyrus vardas yra jau esama, vartotojas taip pat turi pateikti naują slaptažodį, ir tada paprastai turime slaptažodžio patvirtinimą. , Kai vartotojas įėjimai visi tos informacijos, mes norime įtraukti juos į mūsų vartotojų duomenų bazę. Mes ketiname turėti duomenų bazė - SQL duomenų bazės - kad mes ketiname nuoroda. Toje duomenų bazėje, mes turime lentelę su visi vartotojai turintis savo vardą, slaptažodį, o taip pat, kiek pinigų jie turi. Į registrą, mes norime leisti jiems patekti į tą informaciją. Mes norime parodyti tą formą. Mes norime įsitikinti, kad jų slaptažodis - , kad jie atvyko, ir tada taip pat, kad slaptažodžiai sutampa, kai jos įvežamos jį du kartus. Po to, kai visa tai daroma - darant prielaidą, kad tos klaidos yra tikrinami tada mes norime pridėti tuos vartotojus, į mūsų duomenų bazę. Galiausiai, kai esate registruotas, tai labai patogu, jei jums nereikia prisijungti dar kartą Kai esate registruotas, todėl mes ketiname prisijungti į svetainę, jei jie jau įregistruota sėkmingai. Pirmoji užduotis yra rodyti formą, ir tai iš tikrųjų bus - visa ši registracijos procesas bus modeliuojama gana glaudžiai po prisijungimo išskyrus vietoj login.php jums gali tekti register.php. Vietoj to, kad login_form.php kuri--yra šablonas - jūs turėsite užsiregistruoti formą. Jūs norite pridėti dar vieną lauką slaptažodį patvirtinimas lauko - , o ne tik vieną naudotojo vardą ir vieną slaptažodį. Be to, mes norime patikrinti, ar slaptažodžiai atitinka arba yra tušti. Mes turime Controller - register.php--kuris ketina rūpintis atliekant šiuos patikrinimus. Kai forma yra pateikiama per POST metodas, tada visi tų kintamųjų yra per po masyvas. Jūs norite įsitikinti, kad po masyvas indekso vertė slaptažodžiu atitinka patvirtinimo elementas. Jūs norite įsitikinti, kad jie nėra tuščias, , ir jūs norite įsitikinti,, kad jie tą patį. Vienas patogus dalykas, apie PHP yra tai, kad mums nereikia naudoti eilutę palyginti nebėra. Mes galime naudoti lygus lygus operatorių  patikrinti, ar stygos yra lygus vienas kitam. Klaidų, kad jūs norite atsiprašyti. Atsiprašyti, jūs tiesiog paskambinti funkcija  ir tada nurodykite žinutės tipą, kurį norite produkcijai. Tada jūs norite pridėti vartotoją į duomenų bazę. Iki šiol viskas, ką jau daro, tai tiesiog sandėrius atlikdami vietos mastu su forma rezultatus. Dabar, mes iš tikrųjų nori juos įtraukti į mūsų duomenų bazėje. Norėdami tai padaryti, mes pirmiausia norite įsitikinti, kad vardas yra ne tuščias. Suprasti, kad svetainėje, galite turėti kelias naudotojų paskyras su tuo pačiu vartotojo vardu, todėl jūs norite įsitikinti,, kad, kai jūs įtraukėte ką nors į savo duomenų bazę - įterpti naują vartotoją - tada jums nereikia gauti susidūrimo tarp jau egzistuojančios vartotojo vardą ir vartotojo vardą, kad vartotojas bando pateikti. Už tai, kai vykdote užklausą įtraukti tam tikrą vartotoją su savo slaptažodžiu ir pradinio suma pinigų kai skambinate, kad užklausos, tada MySQL bus iš tikrųjų gražins false, jeigu ji neatitinka. Vartotojų struktūra yra tokia, kad vartotojo vardas yra unikali vertybė, todėl jūs negalite turėti daugiau nei vieną. Kai bandote ir įterpti naują eilutę, vartotojo vardą, kad jau egzistuoja, kad manimi vyksta gražins false - kaip Būlio vertė klaidinga. Keblus dalykas čia yra, kad jūs norite patikrinti, ar rezultatas yra jūsų užklausą. Jeigu tai nepavyksta, tada jūs norite patikrinti su trigubo lygus operatoriaus. Kad iš tikrųjų vyksta, patikrinti, ar yra gedimas ar ne, kadangi, tiesiog paprastas lygus lygus, tai būtų tiesa, jei eilutė buvo tuščias. Gedimo rezultatas, jei yra susidūrimas tarp vartotojų vardų yra faktinė klaidinga reikšmė. Čia kaip būtų įrašyti į duomenų bazę. Čia yra užklausos, kad galėtumėte paleisti griežtai SQL. Vienas dalykas yra, kad jūs iš tikrųjų galite eiti į svetainę, kuri valdo savo SQL duomenų bazę ir pažaisti įvedant rankiniu būdu arba vertes arba eilutes. Jis atras ką SQL produkcija. SQL komandas taip pat galite paleisti per savo duomenų bazę  ir tada pamatyti, kas sintaksė gali būti, ir tada išversti, kad į užklausos funkcija, kad mes turime pset 7, kuri bus labai panaši į užklausas, kad jūs iš tikrųjų paleisti. Jei aš norėjau įterpti naują eilutę į savo vartotojų lentelės, tada aš norėčiau nurodyti įterpti į vartotojų, kuris yra mano stalo vardas. Tada aš norėčiau nurodyti stulpelių pavadinimus. Tada aš norėčiau suteikti vertes kartu su savo slaptažodžiu. Slaptažodžius Mūsų vartotojai iš lentelės nėra saugomi kaip tik eilutę. Jie saugomi kaip saugiame versija, todėl jūs norite paleisti funkcija kripta faktine slaptažodį ir kad duos jums teisingą tipo saugojimo vartotojų masyve. Vykdant šią įterpti naują eilutę į savo vartotojų lentelės. Kad galėtų susidoroti su užklausos funkcija, C anksčiau mes panaudojome procento ženklą kaip vietos rezervavimo ženklas. Be to, ta pati sąvoka rezervuota vieta čia. Su užklausa, galite nurodyti visą užklausą , išskyrus tuos atvejus, kai jūs susiduriame su kintamųjų, kaip savo indėlį į užklausą, tada vietoj faktiškai išleisti juos į vidų - kaip, pavyzdžiui, kai mes turėjome printf pareiškimus C Mes norėtume įdėti eilutę ir tada ten yra vietos rezervavimo ženklą, ir tada po kiekvieno kablelis, nurodykite, su kintama mes turėjome. Čia mes ketiname panaudoti kaip mūsų vietos rezervavimo ženklas klaustuko ženklas ir perduoti kiekvieno kintamojo, atitinkamai, kad už vietos rezervavimo ženklai šie kintamieji turėtų eiti. Taigi čia, į pirmąjį klausimą ženklas turėtų būti pakeistas pagal faktinį vartotojo vardą tada antra klaustukas slaptažodžiu. Galiausiai, kai jūs jau juos įregistravo ir pridėjo juos į duomenų bazę, tuomet jūs norite prisijungti prie svetainės. Turime super pasaulinį kintamąjį vadinamas sesijos rūšies. Sesija trunka tam tikrą id, ir kad id atitinka į vartotoją, kuris šiuo metu prisijungęs , Ką jūs norite padaryti, tai rasti, kokia jų vartotojo vardas ir tada nustatyti, kad sesijos ID, kaip, kurioje yra vartotojo ID. Funkcija, kad jūs norite naudoti SQL komandą kad bus gauti paskutinę įvestą ID numeris iš lentelės. Tada eilutės kreipsis - it'll skambinti id it'll priskirti vardą skaičių, kad jis grįžta. Kviesiu tą ID. Dabar mes baigsite registruotis, ir mes galime judėti su citata Citata leidžia vartotojui įvesti vardą tam tikrų akcijų, , o po to sugrįšiu tų išteklių savybes. , Ką jūs norite padaryti, čia yra valdiklis ir Kai kurie trafaretai (templates). Šiuo atveju, mes ketiname turėti valdiklį, kuris ketina padaryti viską, mąstymas mums. Jis ketina ieškoti simbolį ir tada perduoti vertybių šablonus, kurie bus išspausdinti. Mes ketiname turėti 2 šablonus čia. Mes ketiname turėti 1 šabloną, kuris suteikia formą, kurioje vartotojai ketinate įvesties sandėlyje pavadinimas - akcijos pavadinimas. Tada mes taip pat ketiname norite kitą šabloną, kuris rodo šias vertybes. Galite pažvelgti į prisijungimo pavyzdys, kaip jūs turite formą, kuri priima indėlį, išskyrus čia, mes tik norime srityje 1. Mes nenorime, kad vardą ir slaptažodžio lauką. Mes tiesiog norime 1 teksto lauką, kuris leidžia vartotojui įvesti tam tikro akcijų vardą. Tada jūs norite siųsti, kad duomenys, - kai jūs pažvelgė išteklių - į quote_form.php. Peržvalgos grįš nurodytas akcijų simbolis, vardas, pavardė (pavadinimas), ir kaina. Tie, kurie yra per Association masyvas. Ieškoti peržvalgos funkcija viduje functions.php Daugiau informacijos grąžinimo tų tipų. Puiku! Ir galiausiai, jūs norite rodyti akcijų informaciją. Tikriausiai jūs norite rodyti - ty jūs norite turėti prieigą prie tų kintamųjų. Kai jūs turite kintamojo kainą taip pat pavadinimą ir simbolį tada jūs norite rodyti savo šablono puslapio. Kad šablono puslapį būtų galima pavadinti show_quote.php ar kažką. Jūsų quote.php puslapis taptų šou pasiūlymą ir perduoti visų šių vertybių. Tada savo php puslapyje, jūs iš tikrųjų atsispausdinti šias vertybes puslapio HTML aspektu. Jūs tiesiog naudokite spausdinimo funkciją ir perduoti į kainą. Yra 2 būdai - galite Jungiant jį su dot operatorius, arba naudoti vietos rezervavimo ženklą. Vartotojai galiausiai bus pirkti ir parduoti atsargas. Mes norime, kad būtų galima jiems šiek tiek matyti visi atsargų, kad jie šiuo metu yra būdas. Mes ketiname skambinti, kad jų portfelis. Portfelis, matyt kiekvienam vartotojui, yra eilučių krūva išvardijamos akcijų rūšies, kad jie turi ir tada, kiek tie, jie turi. Mūsų esamą lentelę - dabar turime vartotojai lentelę mūsų duomenų bazėje. , Kuriame yra vartotojo vardą, taip pat savo slaptažodį ir kiek pinigų jie turi. Nėra jokio realaus būdas saugoti visos jų atsargos per šį. Tai ne taip, kaip mes galime įterpti naujus stulpelius kiekvienai sandėlyje. Kad būtų labai, labai ilga eilė, nes mes turime begalinis kiekis rūšių išteklių, kad jie galėtų turėti. Taigi, vietoj to, ką mes padaryti toje pačioje duomenų bazėje, mes turime vartotojams lentelę, bet tada mes taip pat turi tam tikrą portfelio lentelę. Portfelis lentelė bus tikrai susijusi su vartotojų stalo, bet vietoj portfelio lentelės struktūrą turės informaciją biržoje, kiek tų išteklių, vartotojas turi akcijų, taip pat naudotojo identifikavimo numeris. Turite vartotojai lentelę, kuri turi ID, taip pat vartotojo vardą, maišos - yra slaptažodis, užšifruotos slaptažodį ir tada pinigų sumą jie turi. ID numeris būtų susietas su ID numerį iš portfelio. Sandėlyje simbolį, taip pat akcijų portfelis tiesiog turi - tų išteklių, kad vartotojas turi akcijų skaičius. Toje portfelio stalo jums reikės iš esmės visos akcijos turi visus savo svetainės vartotojams. Vėliau, nurodyti tik tam tikro vartotojo akcijas - tik jų portfelis - galėtumėte gauti vertybes iš savo portfelio stalo toks, kad ID numeris yra šio vartotojo. Kai rodote portfelį, jūs norite pranešti apie kiekvieną iš atitinkamų išteklių į vartotojo portfelio. Jūs norite pranešti apie akcijų skaičių ir dabartinę šių kapitalo dalių vertės. Nėra saugomi, kad šiuo metu šių akcijų vertė portfelio lentelėje dėl to, kad bus atnaujinti - ne mažesnį - kiekvieną dieną "Yahoo". Norėdami gauti šią informaciją, jūs negalite nuoroda, kad iš jūsų SQL užklausa. Kokia funkcija suteikia mums darbo? Kokia funkcija gauti kainą? Štai paieška, todėl naudojant tam tikrą simbolį lookup duos jums daug informacijos. Tai duosiu jums 3 vnt informacija - pavadinimas, simbolis, taip pat kaina. Kai jūs peržvalgos tam tikrą simbolį, tada jūs galite gauti kainą, ir tada jūs galite naudoti savo portfelį, kuris bus rodomas kainą. Portfelis taip pat turėtų rodyti vartotojo dabartinio grynųjų pinigų likutį. Šioje srityje yra saugoma per savo vartotojų lentelės. Taip, tada prisimena, kaip mes iš esmės turintys mes, turintys įvairių tipų PHP failus. Mes ketiname turėti valdiklis, kuris iš esmės daro visą darbą už jus mąstymą. Ir tada mes turime šabloną, kuris susijęs su duomenų išvedė šablonas. Jūs turite galvoti apie kintamieji valdytojas reikės imtis. Jei mes susiduriame su portfelį, kuris išveda kiekvieną pavadinimą, simbolį, ir akcijų skaičių, taip pat dėl ​​akcijų kainos, tada jūs norite rasti tam tikrą iš esmės einančios į kelią - galite pereiti į vertybių Štai kad masyvo. Eikime į pavyzdį, kaip jūs galite gauti visus atitinkamų išteklių priklauso tam tikram naudotojui. Tai nėra susijusios, tačiau akcijų kaina. Kas tai padaryti, tai paleisti užklausą. Ji jį gautų simbolis, taip pat akcijų - Vadinu šią lentelę, bet šiuo atveju kas tai būtų? Kas yra lentelės pavadinimas, kad mes susiduriame su simbolis ir akcijų konkretaus vartotojo? Tai arba naudotojai arba portfelio. Darbai. Kas tai padaryti yra užklausos simbolių ir akcijų portfelis konkretaus vartotojo. Štai, aš sakau: (pasirinkite simbolis akcijos iš tbl bet vietoj stalo, jūs ketinate pakeisti, kad su portfelio. "Tais atvejais, kai" iš esmės mano būklė. Aš sakau, aš tik noriu gauti tuos Association masyvai, kurie atitinka  šios sąlygos - id lygus.  Tada aš išleisti vietos rezervavimo ženklą ir sesijos ID. Kas tai padaryti, tai pasakyti kiekvienam eilės eilėmis. Tai tvarkingas būdas, o ne iš tikrųjų sukurti už linijos , kuris kartojasi per visus indeksai, tada PHP jūs galite turėti už kiekvieną kilpą. , Jei turite tam tikrą masyvas, tada jūs galite pasakyti, kad aš ruošiuosi skambinti kiekvieną perimamumą elementas - Aš ruošiuosi skambinti kiekvienas elementas šis pavadinimas. Taigi, kiekvieno šių elementų, aš ruošiuosi skambinti jiems tai, tada aš galiu tai padaryti. Tai kiekvienam, jūs turite eilučių, kiek jūsų faktinis masyvas, ir kiekvienoje eilutėje, jūs ketinate skambinti eilutę. Kiekvieną kartą, kai ji vykdo kūno, jis bus eiti ir jis bus atnaujinti eilutę prie kito elemento eilėmis. Dabar, perkant atsargas, tai, ką mes norime padaryti, tai gauti atsargų, kad vartotojas nori pirkti ir akcijų suma, kurią vartotojas nori pirkti ir tada - jei jie nori - pridurti, kad atsargų į savo portfelį. Akivaizdu, kad, jei jie ką nors nusiperka, tada, kad manimi nemažės pinigų suma, kurią jie turi, kad ketina sumažinti savo pinigus. Mes ketiname būti susijusios su atnaujinimo portfelį, taip pat vartotojų lentelę, kuri yra pinigų. Bet pirmiausia, turite gauti faktinį atsargų ir akcijų kiekį, kad vartotojas nori. Norėdami tai padaryti, jums reikia HTML formą, kad prašys sandėlyje simbolio kad norite pirkti, taip pat akcijų skaičių. Tada jūs norite pridėti. Jūs norite pasirinkti tam tikras vertybes. Mes išgyveno šiame šiek tiek jau, bet kai jūs bandote gauti tam tikras eilutes - gauti tam tikras eilutes iš SQL lentelės, tai yra tokią sintaksę. Jūs turite pasirinkti, ir tada, jei nurodyti žvaigždę, , kad bus iš esmės grąžinti visą, visą eilutę. Ir vėl, jūs turite sąlyga, kur, ir tada jums nurodyti Aš tik noriu, vardą, kuris bus lygus paštu, todėl tai bus tik priimti į vartotojų eilutę, kuri atitinka paštu. Kai vartotojas nori įtraukti dalį į akcijų portfelį, jums reikia patikrinti per keletą klaidų. Jūs norite įsitikinti, kad vartotojas iš tikrųjų galite sau akcijų, todėl jūs norite patikrinti savo pinigus. Prieš, mes panaudojome žvaigždė gauti visą eilutę iš SQL lentelės. Bet čia, mes galime iš tikrųjų tiesiog nurodyti, kad aš tik noriu 1 kartą vertė - Aš tik noriu pinigų. Taigi čia, būtų grąžinti pinigus už vartotojo ID numeris 1. Jei vartotojas jau nusipirko tam tikrą atsargų, bet tada perka daugiau tų išteklių, tada savo portfelį - tu nenori atskiroje eilutėje, kitą eilutę, kad yra, kad naują sandorį. Jūs iš tikrųjų norite atnaujinti sumą. Visa tai keičiasi tikrai yra akcijų suma, kad vartotojas turi. Jei naudojate įterpti į Užklausa - todėl tiesiog įterpti į savo portfelį visų šių vertybių - vartotojo id numeris, taip pat akcijų simbolis, kad jie perka akcijos, tada jūs taip pat norite nurodyti, gerai, jei aš paleisti į rakto dublikato šiuo atveju, dublikato raktas yra ne tik vartotojo ID, bet taip pat akcijų simbolis - , nes galite turėti tik mūsų prielaida yra ta, kad jūs galite turėti tik 1 eilutę  , kuris atitinka 1 specifiniu simboliu. Taigi, dėl dublikato raktas - jei paleisti į susidūrimo - esate tik ketina atnaujinti akcijas savo naują vertę. Akcijos lygus, ką mes turėjome prieš pridėjus akcijų skaičius, kad vartotojas perka. Dabar, kad mes atnaujinome portfelio lentelę, mes norime atnaujinti vartotojo pinigų. Kad vartotojų lentelėje, todėl mes ketiname atimant tam tikrą pinigų sumą iš. Matyt, tai bus pinigų lygus pinigų minusas - ir tada tam tikra suma. Norėdami atnaujinti pinigų, jūs - jei aš norėjau atimti pinigus iš pašto, tada aš paleisti šią užklausą "Atnaujinti naudotojų ir tada nustatyti grynųjų pinigų stulpelį pinigus - Norėčiau pašalinti 9999 dolerių, tik tuo atveju, jei vardas yra lygus paštu. Tačiau, šiuo atveju, mes ne nori atimti 9999 specialiai. Mes norime nurodyti, gerai, mes norime atimti dabartinę akcijų kainą padauginta iš akcijų skaičiaus, kad jie perka. Dabar mes leido jiems pamatyti visų žuvų, kurias jie turi, taip pat pirkti daugiau išteklių. Mes taip pat anksčiau buvo leista jiems atrodo, kad dabartinė kaina yra sandėlyje. Čia mes norime, kad jie galėtų juos parduoti. Pirmiausia mes norime rodyti iš esmės - mes norime, kad jie galėtų pamatyti visų atitinkamų išteklių, kad jie turi, todėl čia norime visi eilėje iš portfelio. Jeigu jie nuspręstų parduoti tam tikrą atsargų, tada mes ketiname daryti prielaidą, kad jie nori parduoti visa tai. Jie yra ne tik ketina parduoti 50% savo akcijų, jie ketina parduoti 100%. Mes galime tiesiog ištrinti visą eilutę iš portfelio. Mes galime ištrinti Atsižvelgiant į vartotojo akcijas tam tikro simbolio. Ten, kad sintaksė. Tai mes norime atnaujinti pinigų. Mes ketiname pridėti pinigų sumą į akcijų kiekio, jie parduoda padauginta iš akcijų dabartine kaina - ne kaina, už kurią jie pirko, bet veikiau kaina, už kurią jie yra dabartinė kaina, kai jie parduoda. Siekiant nurodyti, kad dabartinė kaina vertybinių popierių, jūs norite naudoti lookup, kuri duos jums akcijų kaina esamą laiką. Dabar mes esame palikti su istorija, , kurį norite leisti vartotojui sekti visus savo sandorius - nori pamatyti, kai jie ką nors, kai jie pirko akcijų pardavė. Mes norime nurodyti laiką, kada jie tai padarė, kad taip pat, kiek jie pirko ir ką vertybinių popierių buvo. Ar mes turime, kad šiuo metu, esama struktūra, kurioje patikslinama, kad? Na, mes turime skaičių atsargas, kad vartotojas, kuris rodo portfelį tam tikrą dalį. Bet mes struktūrizavimo portfelį taip, kad ji atnaujina, kai mes perkame kartotinis, kadangi istorija turėtų - jei jūs perkate "Apple", "10 akcijų, o vėliau parduoti 5 tada jūs norėtumėte pamatyti tuos atskirai, kaip atskirų veiksmų, atskirose eilutėse. Kadangi, kad veiksmai, vizualizuoti, kad mūsų portfelio stalo būtų tiesiog atnaujinti toje konkrečioje eilutėje,  todėl mes tikriausiai ketinate norite dar vieną lentelę. Mūsų duomenų bazėje turime Mūsų vartotojai lentelę, turime mūsų portfelio lentelę, ir dabar mes tikriausiai norite istorija lentelę. Stalo, kad istorija gali sekti esamą datą, taip pat ypač akcijų simbolis, taip pat, kiek akcijų, ir po to, kokių veiksmų ji yra - ar jums buvo pirkti tas akcijas, ar jūs juos parduoti. Kad galėtų susidoroti su data, yra daug būdų, kad galite tai padaryti pora. PHP turi sekti datos kelią, kurį galite ieškoti sau. SQL taip pat galite naudoti dabar arba einamosios timestamp. Tai priklauso nuo jūsų. Tiesiog įsitikinkite, kad, kad kiekvieną kartą, kai vartotojas perka arba parduoda, jums reikia atnaujinti savo pinigus vartotojų stalo, jums reikia atnaujinti eilutes į portfelius lentelės, tada jums taip pat atnaujinti istoriją, todėl bus 3 atskiri SQL užklausų, kad jums bus atplaukiančių. Mes turime funkcionalumo krūva dabar. Tiesiog priminimų, kad Jūsų failas indeksas, jūs norite susieti bent jūsų pora - , bet jūs norite leisti vartotojui susieti į buy.php puslapį. Kad ketina leisti vartotojui - buy.php yra duomenų valdytojas, kad vyksta arba nusiųs jus į - kad ketina siųsti į formą, kuri leidžia jums ieškoti dalykų. Mes turime istoriją. Mes atsijungti, gauti pasiūlymą ir tada parduoti. Tie, kurie ne mažesnį, ką norite parodyti. Portfelis portfelio tikrųjų rodomas tituliniame puslapyje. Jei mes einame į indeksą, čia mes matome, kad jis tampa portfolio.php ir eina asociatyvus masyvas esmės pavadinimas lygus portfelį. Taip, tai duomenų valdytojas. Jei mes einame į šabloną portfolio.php, tada visi ji turi, tai rodo iš esmės vaizdas, kad sako, oi, ši svetainė yra statomas. Vėliau, kai pereisite - ty jūs einančios iš esmės konkrečią informaciją. , O ne tik pavadinimą, jums tikriausiai bus perduoti daugiau dalykų. Kai jūs turite šias vertybes, tada portfolio.php gali susidoroti su šių vertybių ir jų spausdinimą iš bet tvarkos rūšiuoti. Kai įdiegėte visiems tiems, jums taip pat reikia įgyvendinti 1 daugiau funkcijų. Tai gali būti arba leidžia vartotojui keisti savo slaptažodį, iš naujo savo slaptažodį, jei jie jau pamiršti jį - taip slaptažodžio, tada jūs tikriausiai norite redaguoti užsiregistruoti, kad ji leidžia jiems nurodyti elektroninio pašto, , todėl, jei jie užmiršote savo slaptažodį, tada jie gali gauti, kad. Jie greičiausiai gali įvesti savo vartotojo vardu ir tada paštu bus išsiųstas jiems su nuoroda, kad būtų galima iš naujo savo slaptažodį. Jūs galite turėti kažką, kuri leidžia vartotojams gauti kvitus kiekvieną kartą, kai ką nors pirkti ar parduoti, ir galiausiai, kad jie galėtų įdėti grynuosius pinigus į savo interneto svetainėje. Tiesiog grįžti į kontrolieriams ir šablonų šiek tiek koncepcija. Jūs turite kažką panašaus - todėl jūs turite valdytojas. Dabar, mes ieškome login.php pavyzdžiui. Kai mes turime valdytojas, iš esmės ji ketina imtis 2 atvejai. Kai mes turime valdikliai, mes šiame kūrinyje, kad mes taip pat rūšies, susijusius su kai mes turime formas, taip pat. Duomenų valdytojas iš esmės turi atskirus veiksmus - forma, jei ji jau buvo pateikta, ir tada du, jei vartotojas ateina į tą puslapį pirmą kartą, tačiau dar reikia įvesti, kad forma. Aš ruošiuosi pereiti į tos bylos prieš einant iki Pirmuoju atveju formą in Čia mes sakome, jei forma buvo pateikta metodas POST - nereikia nerimauti, kad šiek tiek. Nesijaudinkite apie tai, kad per daug, bet suprasti, kad iš esmės ši funkcija susijusi su ar forma buvo pateikta, ar ne. Ši sąlyga yra teisinga, jei naudotojas pareiškė, formą. Jei ne, tada mes ketiname norite skambinti render login_form.php, o tada pereiti pavadinime. Šis pavadinimas tiesiog iš esmės vyksta į antraštę. Kas tai yra iš esmės teigia, gerai - gerai, jei vartotojas eina į login.php ir iš tikrųjų nebuvo prisijungęs, tuomet aš noriu siųsti juos į puslapį, kuriame šią formą , kuri leidžia jiems įvesti vartotojo vardą ir slaptažodį. Tada aš einu login_form ir tada, kuri turi faktinį formą. Tada, kai vartotojas pateikia šią formą, jie ketina pateikti ją login.php metodas POST. Tada aš iš tikrųjų ketiname įvesti šį mano jei-kitas kilpa skyrių. Tada atėjo čia, kad mes turime reikalų su vertybių, įrašytų į formą. Tai čia, kad mes turime reikalų su tais. Tada, kai jūs susidoroti su šių vertybių - jei jūs susiduriame su sako, kad mes susiduriame su quote.php puslapį, kur kas nors gali įvesti akcijų, kad jie nori atrodyti, ir tada pamatysite, kad ekranas - tai čia tipo panašus. Čia mes turime prisijungimo formą you'd tikriausiai citata formą - bet tada, kai vartotojas iš tikrųjų pateikė šią informaciją, tada jūs norite, valdytojas pereiti į kitą šabloną , kad parodyti jiems, kad aktualią informaciją. Taigi, tada dešiniuoju pelės aplink čia, tada jums tikriausiai aplink Jūsų būklės. pabaigoje čia - jei metodas yra lygus pranešimą tada jums tikriausiai norite padaryti kitą puslapį - šou citata , kuris siunčia jus į šį puslapį - show_quote.php - ir tada šio failo nuoroda šias vertybes. Ar tai prasminga? Mes turime valdiklis, kuris iš esmės susijęs su 2 atvejais - ar jūs įvedėte, ar ne. Jei neįvedėte formą, tada jis nukreips jus ta forma, kuris bus jums grįžti į šį puslapį. Tada, kai turite valdytojo informaciją, kad kūnas bus spręsti, kad informacijos, kiek reikia - arba žiūrint atsargų vertes, ir tada, kai jis pažvelgė aukštyn šias vertybes ir juos gražiai suformatuotas masyvo, tada gali praeiti, kad masyvas į šablono puslapį  kad su išvedė šią informaciją pasiūlymai. Vėl, Kadangi tai yra internete, tai bus smagu. Mes ne C, kad mes ne tik į ASCII ir tos išvedimąįterminalą taip smagiai su šiuo klausimu. Jūs galite padaryti jį kaip vizualiai, kaip jūs norite. Galite leisti vartotojams įvesti milijonų dolerių, tuo metu, ar jas apriboti ir iš tikrųjų reiškia ir leisti juos tik įvesti 1 dinaras vienu metu ar kažkas panašaus. Tikrai bus tikrai smagiai su tai. PHP kodas yra šiek tiek paprastesnis, tuo, kad tai šiek tiek lengviau suplanuoti savo pseudocode į realų įgyvendinimą. Taigi, tikrai smagiai su šiuo, nes ji iš tiesų yra mūsų paskutinis darbas CS50. Su tuo, tai buvo Walkthrough 7. Kai baigsite žiūrėti žingsnis po žingsnio ir baigė savo pset, tada jie taip pat buvo psets, ir dabar mes esame iki galutinio produkto - po to, kai mes gauti per Quiz 1. Tada tikiuosi, jūs galite naudoti įrankius, kad jūs išmokti iš psets ne tik sintaksė, bet daugiau abstrakti sąvoka, kaip tam tikras patinka, aš noriu padaryti, tai ir tada iš tikrųjų tai įgyvendinti. Mokymasis, kaip kovoti per sintaksė ir platinimo kodas. Skaitymas kitų žmonių kodą, tada aiškinant, kad naudojant iš anksto esamų funkcijų. Taigi, geros kloties su paskutiniu pset. Tai buvo malonu vadovauti Walkthroughs. Tikiuosi, kad jie buvo naudinga jums. Tai buvo Walkthroughs, ir labai ačiū. [CS50.TV]