[Powered by Google Translate] [Kiirtutvustus Ülesanded 7]
[Zamyla Chan] [Harvardi Ülikool]
[See on CS50] [CS50.TV]
>> Tere kõigile ja tere tulemast kiirtutvustus 7 CS50 rahandusministeerium.
Nüüd on ametlikult teinud kõik psets sisse CS50,
ja me lihtsalt jäänud veel üks, mis saab olema lõbus rakendamine
veebileht, kus kasutajad saavad sisse logida CS50 rahandus
ja osta ja müüa varud.
>> Täna me ei kavatse on mõned meie käsutuses olevaid vahendeid.
Me läheme räägime õigused.
Kui teil on web kausta
sa lähed tahan, et kasutajad saaksid täita teatud failid
aga ka lihtsalt lugeda teiste ones,
nii me uurime õigused ja kuidas saab määrata need.
Siis me ei kavatse uurida PHP, HTML ja SQL koodi.
>> Esiteks õigused.
Kui oled terminali teatud kataloogid,
siis mida sa teha tahad on, mida soovite käivitada chmod käsk.
See on järgneb kas tähed või numbrid
vastab mida sa põhimõtteliselt tahad maailma näha,
sa ise näha jne
Näiteks kui teil on kataloogi,
siis sa tahad selle kausta tuleb käivitatava igaüks, et seda näeb,
nii et mida sa teeksid on siis võiks käivitada käsk chmod a + x
ja siis nime oma kausta.
Kui teil on faili nagu CSS faili või pildifailid -
nagu JPEG ja rasterpildid, asju või mis tahes JavaScripti koodi -
soovite, et oleks loetav kõigile,
nii siis mida te teete on võid kasutada metamärke -
mis on tärniga -
et põhimõtteliselt näitama CSS kausta - kõik selles kaustas -
Ma ütlen, et see saab olema loetavad igaühele.
Mis õigused, kui me kasutame tähed,
me saame kasutada ka numbrite asemel.
Nii et, näete, et lõppkokkuvõttes, kui sa tahad midagi olema käivitatav -
mis on esindatud mitmeid 1 -
midagi oleks loetav on number 4 ja siis -
kirjutatav on number 2 -
ja nii sisuliselt kui soovite kombinatsioon neist, siis lisage need.
Kui sa tahad midagi olema loetav, kirjutatav ja käivitatav,
siis oleks liita 4, 2 ja 1 ja et annaks sulle 7,
siis kui sul on kaust, kuhu soovite, et olla käivitatav igaüks -
samuti loetav ja kirjutatav - siis teete, et 7, 1, 1.
See oleks 7 sina, siis 1 teiste inimestega.
Kui teil on spec, siis see tegelikult määrata, millised kaustad ja mis failid
tuleb chmod-ed konkreetselt.
Näiteks, kui teil on kaustad - need on 7-1-1 -
kui sul on pilte või HTML, CSS, JavaScript,
siis need hakkavad olema 6, 0, 4 - või 6, 4, 4 -
ja siis PHP faile saab olema 6, 0, 0.
Idee, et on see, et kasutajad ei peaks tegelikult näha oma PHP koodi,
aga lihtsalt võimalik näha väljund.
>> Suurepärane! Liikumine PHP.
Lihtsalt, kui sa tahad PHP fail, faili lõpp on. Php.
Võite segada HTML PHP koodi.
Kui teil on HTML faili, näiteks
siis saate pange see oma vasaku nurga, küsimärk, php -
pane oma php koodi - ja sulgege see teise küsimärk ja õige nurga all.
Muutujad PHP on palju lihtsam toime tulla kui muutujate C.
Iga muutuja lihtsalt algab dollari märk selle ees, ja nad nõrgalt kirjutatud.
See tähendab, et sa ei pea muretsema, milles midagi
võrdne jada või täisarv.
Sa võid lihtsalt öelda, see on minu nimi muutuja
ja siis see on tema väärtus,
nii et see saab olema lihtsam asju ajada seal.
>> Teine asi on see, et PHP võimaldab teil kasutada assotsiatiivne massiiv.
Sa võid lihtsalt määratleda massiivi nagu sa oleks C
öeldes, dollari märk-nime oma massiivi-võrdne,
ja siis nurksulgudes on põhiliselt just väärtuste nimekirja kõikide massiivi elementide.
Kuid PHP mida saab ka teha, on määrata põhimõtteliselt -
see on selline nagu räsifunktsiooniga.
Saate määrata indeks - mida sa lähed seda nimetada -
ja siis, mis vastab väärtusele.
Kui te tegelikult läbida = 1, b = 2, c = 3,
siis oma reaga indeks annaks sulle 1.
See pset soe teil välja mõned PHP osa küsimusi,
ja siis me sukelduda CS50 rahandusministeerium.
>> Meil on paar - meil on mõned funktsioonid, põhimõtteliselt
rakendama sellel veebilehel.
Me tahame, et kasutajad saaksid registreeruda meie kodulehel kasutajanimi ja parool.
Me tahame, et nad saaksid otsida tsiteerida,
ja siis me oleks välja trükkida nime, et tsiteerin samuti praegune hind, mis see on.
Me tahame, et nad saaksid näha portfelli kõik aktsiad, et nad on ostnud siiani.
Samuti tahame võimaldada neil osta varusid ning neid müüa.
Ja siis lõpuks, me tahame, et nad saaksid näha ajalugu
Kõiki tehinguid, mida nad olen teinud.
Siis, lõpuks, pärast olete võtnud kõik see,
siis sa oled vaba rakendada üks lisafunktsioon.
Me läheme neisse.
Need võivad olla kas võimaldab kasutajatel saada ekstra raha deponeerides ekstra raha,
või siis võiks võimaldada neil muuta oma parooli või midagi sellist,
neile meili kätte, kui nad ostavad või müüvad laos.
Seal on piiratud omaduste loetelu, mida võiks rakendada ise,
nii et on viimane seal.
>> Kuna see on veebileht, kutid on ka palju vabadust kohandada seda.
Teeme pakkuda mõned CSS koodi, kuid sa oled kindlasti vaba näpistama see,
oleks ilusam, kuid aluseks on põhilised funktsioonid
nii et alati viidata spec, mida sa tegelikult vaja lisada sinna.
Pärast spec, me ei kavatse olla kasutades seadet kui ka server.
See saab olema hosting meie kodulehel meile, tema kohalik server.
Kui te järgite neid juhiseid ja unzip pset 7 jaotus kood
oma virtuaalne host / kohaliku hosti kausta
siis saate lihtsalt külastada http://localhost/ Google Chrome aparaat,
ja siis jõuaks koodi, mis olete kirjutanud pset 7.
>> Pset 7 on kaasas hunnik jaotus kood,
ja loodetavasti Me oleme paar - läbi kogu psets enne seda -
harjunud meid lugedes jaotuse kood,
mõista, mis funktsioonid on juba ette, ja kuidas me võiks olla võimalik kasutada
need ja muud funktsioonid, mida me ei kavatse rakendada.
Sel juhul on meil 3 kaustadesse.
Meil on HTML kaustas on kaust ja kausta.
Mis me hakkame tegema seda pset on selline eraldav mõtlemine -
programmeerimine mõtlemine - on PHP koodi kui tegelik visuaalne aspekt.
Me olema üks PHP fail, mis teeb kogu mõtlemine, loeb andmebaasi,
trükib välja asju, on kui avaldused - asju -
ja siis see läheb üle andmed meie mallifail - või template.php faili.
Mida see teeb on andmeid lugeda ja siis välja trükkida.
>> Me võime ravida malle nagu "loll", et me ei taha neid
tuleb teha palju tööd arvutamisel asju.
Me tahame, et meie kontrollerid teha.
Natuke edasi, et - võtame pilk mõned jaotus kood.
Siin oleme meie index.html faili, ja see on üsna tühi.
Sisuliselt, mida ta teeb - ta ütleb, noh, ma lähen nõuavad configuration.php faili.
Me ei näe, et seal, kuid see on põhimõtteliselt helistades configuration.php faili
ja täidesaatva seda.
Pärast seda teeb, see saab muuta portfelli.
Esitus on funktsioon, nii et kui me oleme kontroller,
Me helistame krohvi, anname see fail ja seejärel andmed, et me möödaminnes,
nii et see helistab portfolio.php--tüüpi passi, et andmeid nii, et portfelli saab tegeleda sellega.
>> Ja nüüd, siin on meil login.php vormi.
See on kontroller, mis põhiliselt hoolitseb sisselogimist
Siin, siis kontrolli, kas vorm on esitatud käesoleva faili ja tegeleb valideerimiseks esitamise.
Me uurime seda vabandada funktsioon.
Kui me tahame välja printida veateate,
me kasutame vabandada ja mis suunab kasutaja konkreetsele lehele
et välja printida veateate, et me näitama.
Jätkub, siis päringu andmebaasi - we'll sattuda rohkem sellest hiljem.
Siis näed, et siin all, kui vormi ei ole esitatud, siis see muudab vormi.
See tähendab, et see läheb login_form.php, seega vaatame seda.
>> Login.php on tegelikult, kus me näeme HTML tegelevad tegelik visuaalne aspekt.
Siin on meil sisend silt kasutaja nimi, sisend parool
samuti submit nuppu.
See on tegelikult kus visuaalne aspekt ja HTML-vormi saab pidada.
Siin on öeldud, et see saab olema esitatud teatud meetod, mida nimetatakse ametikohale.
Me võtame arvesse meetodite erinevus -
postitada versus saada, seal on ka midagi, mida nimetatakse panna -
me võtame arvesse neid meetodeid hiljem, kuid huvi selle pset,
Ma väga soovitame kasutada postitus.
>> Me teame, et põhimõtteliselt kui see vorm on esitatud -
alates login_form.php--
siis läheb tegevus - login.php--
põhimõtteliselt läbida kõik need parameetrid need vormid arvesse login.php.
Tuleneb, et vorm on sellel postitus assotsiatiivne massiiv.
Indeksid erinevate elementide postitus massiivi
on täpselt, mida te määrate siin.
Te ütlete, et nimi see sisend on kasutajanimi. Nimi see on parooliga.
Samuti näed kasutajanimi indeks assotsiatiivne massiiv seal.
Kui läheme sisaldab kausta, meil on see funktsioonide faili mis saab olema väga kasulik.
>> Kõik need funktsioonid on olemas sinu jaoks.
Sa ei pea konkreetselt rakendada mõni neist ise,
kuid nad ei kavatse üsna kasulik.
Oleme vabandada, mis nagu ma enne ütlesin, on põhiliselt välja printida veateate
teile konkreetse leht - apology.php.
Siis on meil prügimäele, nii et kui sa lihtsalt helistada prügila ja seejärel viiakse muutuja,
siis jõuad lehele, mis kuvab selle muutuja teile.
Siis oleme logout, mis põhimõtteliselt lõpetada teatud kasutaja seanss.
Otsing saab olema kasulik.
Kuna me tegeleme hinnapakkumisi ja varud, me ei kavatse olla võimeline -
ja see on sisuliselt reaalajas.
Me peame teadma, millised need laos väärtused,
nii et meil on otsing funktsioon, mis tegeleb Yahoo dokumentatsioon varusid.
Kui sa vaatad üles teataval sümbol laos, siis tagasi teie aktsia sümbol
samuti nimi ja praegune hind kõnealuse kalavaru.
See on lookup funktsiooni.
>> Siis me tegeleme MySQL,
nii me ei kavatse olla tahavad täita teatud päringuid meie SQL andmebaasi.
Meil on päringu tegeleda - et selline abstraktne osa sellest välja.
Me läheme mööda sõitma kogu string meie SQL päring -
ja kõik muutujad, mis lähevad sellesse -
ja mida see teeb, on tegelikult täitma seda meie eest.
Selle asemel, et kirjutada see kõik välja iga kord, kui soovite päringu -
hakates kõik tuleneb, et päring -
siis saate lihtsalt helistada päringu funktsiooni ja see saab su juurde tagasi -
sõltuvalt sellest, mida te kasutate oma päring -
ilmselt reas kõik tulemused, mis vastavad päringu vms.
Rohkem, et hiljem küll.
>> Lõpuks on meil suunata, mis, nagu nimigi ütleb, suunab teid teisele lehele.
Ja siis on meil krohvi, mis me kavatseme olla kutsudes paar korda.
Kui oled lennujuht, siis helista muuda arvesse mudel lehele
ja siis liigu väärtustes et mall siis tegeleda.
Need väärtused on ilmselt saab olema tegemist Väljundi liik, mida soovite
näidata oma malli leheküljele.
Okei. Need on ülesanded, ja seal on palju rohkem seda jaotust kood.
Ma kutsun teid üles minna läbi selle ja uurida seda ise.
Samuti spec tõenäoliselt sõelub mõned muud elemendid jaotus kood.
Siin on kokkuvõte funktsioone leitud functions.php.
>> Okei. Esimene ülesanne on võimaldada kasutajatel registreeruda veebilehel.
Just praegu on sisäänkirjautumislomake veebilehel,
ja teile antakse mõned kasutajad paroole.
Võite kasutada neid kasutajatunnuseid ja sisse logida,
kuid sa tahad, et inimesed saaksid teha oma kasutajanimed
ja lisada ennast veebilehel.
Planeering registreerimiseks on üsna sarnane sisäänkirjautumislomake,
välja arvatud kasutajanimi ei ole olemasoleva,
ja kasutaja peab ka pakkuda uus parool
ja siis tavaliselt on meil salasõna kinnitust.
Kui kasutaja sisendite kõik, et teave,
me tahame, et lisada need meie andmebaasi kasutajatele.
Me läheme on andmebaas - SQL andmebaasi -
et me ei kavatse viidata.
Selles andmebaasis, me peame tabel koos kõigi kasutajate
sisaldavad oma kasutajanimi, parooli ja ka kui palju raha neil on.
>> Registreeri tahame võimaldada neil siseneda sellele teabele.
Tahame näidata, et vorm.
Me tahame veenduda, et nende UUS -
et nad sisenesid üks ja seejärel ka, et paroolid sobitada, kui nad sisenevad see kaks korda.
Pärast kõike seda tehakse - eeldades, et need vead on kontrollitud -
siis me tahame lisada neid kasutajaid meie andmebaasi.
Lõpuks, kui olete registreeritud, see on päris mugav, kui sa ei pea uuesti sisse logima
kui olete registreeritud,
nii me läheme sisse neid veebilehele, kui nad on registreeritud edukalt.
>> Esimene ülesanne on näidata vormis, ja see on tegelikult saab olema -
kogu see registreerimise protsess saab olema eeskujuks päris tihedalt pärast sisselogimist
Kuid selle asemel, login.php teil olla register.php.
Selle asemel, et login_form.php--mis on mall -
sa pead registreerima kujul.
Sa tahad lisada veel ühe valdkonna - UUS kinnituse valdkonnas -
asemel ainult üks kasutajanimi ja üks parool.
Edasi me tahame kontrollida, kas paroolid sobi või on tühjad.
Meil on kontroller - register.php--mis läheb hoolitseda teed neid kontrolle.
Kui vorm on esitatud posti kaudu meetod,
siis kõik need muutujad on esitatud jooksul pärast massiivi.
Sa tahad teha kindel, et postitus massiivi väärtus indeks parool
Sobib kinnitamiseks element.
Sa tahad teha kindel, et nad ei ole tühi,
ja sa tahad teha kindel, et nad on sama.
>> Üks mugav asi PHP on see, et meil ei ole vaja kasutada string võrrelda enam.
Saame kasutada võrdne-võrdne operaator
et kontrollida, kas stringid on võrdsed üksteisega.
Sest veakäsitlust, tahad vabandada.
Vabandust, sa lihtsalt helistada funktsioon
ja seejärel määrata sõnumi tüüp, mida soovite väljund.
Sa siis tahad lisada kasutaja andmebaasi.
Siiani on kõik oleme teinud, on lihtsalt tegemist kohalikul tasandil tulemuste näol.
Nüüd me tegelikult tahame, et lisada need meie andmebaasist.
Selleks peame kõigepealt tahan veenduda, et kasutajanimi ei ole tühi.
Aru, et veebilehel, siis ei saa olla mitu kasutajat sama kasutajanimega,
et sa tahad veenduda, et kui sisestate midagi oma andmebaasi -
lisada uus kasutaja - siis sa ei saa kokkupõrge olemasoleva kasutajanime
ja kasutajanimi, et kasutaja püüab esitada.
Selle, kui sa täita päringule -
lisades teatud kasutaja oma salasõna ja esialgne rahasumma -
kui sa nimetad seda päringut, siis MySQL tegelikult tagasi false kui ta ei suuda.
>> Struktuuri kasutajad on selline, et kasutajanimi on ainulaadne väärtus,
nii et sa ei saa olla rohkem kui üks.
Kui proovite ja lisada uus rida kasutajanime mis on juba olemas,
et läheb tagasi false - nagu Boole'i ​​väärtus vale.
Keeruline asi on selles, et sa tahad, et vaadata, kas tulemus on tingitud teie päringut.
Kui see ei õnnestu, siis tahad, et kontrollida kolmekordne võrdub operaator.
See on tegelikult lähen vaatan, kas on ebaõnnestumine või mitte,
arvestades, lihtsalt võrdne-võrdne, oleks õige, kui rida oli tühi.
Eiramise tõttu, kui on kokkupõrge kasutajanimed
on tegelik vale väärtus.
>> Siin on, kuidas sa tahaks lisada andmebaasi.
Siin on päring, et sa läheks rangelt SQL.
Üks asi on see, et tegelikult võite minna veebilehele, mis haldab teie SQL andmebaasi
ja mängida seal, sisestades käsitsi kas väärtused ridades.
See tulemus on see, mida SQL väljund on.
Võite ka käivitada SQL käske jooksul oma andmebaas
ja siis vaata, mida süntaks võib olla,
ja siis moodustavad sellest päringu funktsiooni, mis meil on pset 7,
mis saab olema väga sarnane päringuid, et te reaalselt sõita.
>> Kui ma tahtsin lisada uus rida minu kasutajate tabelis,
siis ma oleks täpsustada INSERT INTO kasutajad, kes on nimi minu lauale.
Siis ma täpsustada veerunimesid.
Siis ma annaks väärtused koos oma parool.
Paroolid meie kasutajatele tabelis ei ole salvestatud lihtsalt stringi.
Nad on salvestatud krüpteeritud versioon,
et sa tahad joosta funktsioon crypt tegelik parool
ja mis annab teile õige andmekandja tüüpi kasutajatele massiiv.
Jooks see lisab uue rea oma kasutajate tabel.
>> Selleks et tulla toime päringu funktsiooni
enne C kasutasime protsenti tähise kohatäide.
Sarnaselt sama mõiste kohatäide kehtib ka siin.
Mis päringu, saab määrata kogu päringu
välja arvatud siis, kui olete tegelevad muutujaid oma panuse päringu
siis selle asemel, et tegelikult paneb nende sees - nagu siis, kui meil oli printf avaldusi C.
Me paneks string ja siis on kohatäide seal, ja siis pärast iga
koma, täpsustada muutuja meil oli.
Siin me ei kavatse kasutada küsimärk märki meie kohatäide
ja siis liigu iga muutuja võrra, mille eesmärk on kohatäited -
kui need muutujad peaks minema.
Nii et siin, esimene küsimärk oleks asendatud tegeliku kasutajanime
siis teine ​​küsimärk poolt parool.
>> Siis lõpuks, kui olete registreeritud neid ja lisada need andmebaasi,
siis Sa soovid välja logida need veebilehel.
Meil on selline super-globaalse muutuja nimega istungil.
Session võtab teatud id,
ja et id vastab kasutaja, mis on praegu sisse logitud
Mida sa tahad teha, on leida, mida oma kasutajatunnus on
ja siis pane see Session ID kui selle konkreetse kasutaja id.
Funktsioon, et sa tahad kasutada siin on SQL käsk
mis kätte viimase sisestatud ID numbri oma lauale.
Siis read helistada - it'll helistada ID - it'll määrata nime arvu, et ta naaseb.
Seda saad helistada, et number.
Nüüd oleme valmis registreerima, ja me saame liikuda edasi tsiteerida.
>> Tsiteeri võimaldab kasutajal sisestada nimi mõne sellise aktsia,
ja siis naasen omadusi, et laos.
Mida sa tahad teha, on olla kontroller ja mõned mallid.
Sel juhul me lähed on kontroller, mis saab teha kõike mõtlemine meile.
See saab otsida sümbol ja seejärel viiakse väärtused mallid, mis välja printida.
Me läheme on 2 malle siin.
Me läheme on 1 mall, mis pakub vormis, kus kasutajad hakkavad
sisend nime laos - nime osa.
Siis me ka kavatse tahavad teise malli, mis kuvab neid väärtusi.
Võite uurida sisselogimise näide sellest, kuidas teil oleks vorm, mis aktsepteerib sisendi,
välja arvatud siin, me tahame ainult 1 väli.
Me ei taha kasutajanimi ja parool väljale.
Me lihtsalt tahame 1 teksti väli, mis võimaldab kasutajal sisestada nimi mõne sellise aktsia.
Siis, mida soovite saata, et andmed - kui olete tutvunud, et laos -
kuni quote_form.php.
Otsing naaseb sümbol laos, nimi ja hind.
Need on koondatud assotsiatiivne massiiv.
Vaata üles lookup funktsiooni sees functions.php rohkem infot
tagastamise kohta liikide neid.
>> Suurepärane! Siis lõpuks, sa tahad kuvada aktsia kohta.
Sa tahad ilmselt näidata - you'll soovite kasutada neid muutujaid.
Kui olete hind muutuja -
samuti nime ja sümboli -
siis sa tahad kuvada neid oma malli leheküljele.
See mudel lehele võiks nimetada show_quote.php või midagi.
Sinu quote.php leht muudaks kõike koguaeg ja siis viiakse kõik need väärtused.
Siis oma php lehel tegelikult välja printida need väärtused HTML aspekt osas.
Sa lihtsalt kasutada printimise funktsiooni ja liigu hinna sees.
On 2 võimalust - võite concatenate seda dot operaator,
või kasutada kohatäide.
>> Kasutajad lõpuks hakatakse ostmine ja müümine varud.
Me tahame, et võimaldada neil mingi võimalus näidata kogu varud, mis neil praegu on.
Me läheme helistada, et oma portfelli.
Portfolio oleks arvatavasti iga kasutaja, sisaldavad hunnik ridu
loetletakse tüüpi osa, mis neil on ja siis kui palju neid on neil.
Meie olemasolev tabel - praegu on meil kasutajate tabel meie andmebaasis.
See sisaldab kasutaja kasutajanime, samuti oma parooli ja kui palju raha neil on.
Ei ole reaalne viis hoida kõik oma varud selles.
See ei ole nagu me saame lisada uusi veerge iga aktsia.
See oleks väga pikk rida sest meil on lõpmatu kogus
liikide varusid, et nad võiksid olla.
Niisiis, selle asemel, mida me teeme on sama andmebaasi,
me peame kasutajate tabelis, kuid siis me ka portfelli tabelis.
Portfelli tabel on kindlasti seotud kasutajate tabelis,
kuid selle asemel portfelli tabeli struktuur on käivatest andmetest,
kui palju aktsiaid, et aktsiate kasutaja,
samuti kasutaja eriti ID-number.
Sul on kasutajate tabel, mis on ID samuti kasutajanime ja hash -
mis on parool, krüpteeritud parooli -
ja siis, kui rahasumma nad on.
ID number seotakse ID number portfelli.
Portfell oleks lihtsalt sümbol laos samuti aktsiad -
aktsiate arvu, et laos, et kasutaja on.
Sel portfelli tabel teil oleks põhimõtteliselt
kõik aktsiad valduses kõik kasutajad saidile.
Hiljem täpsustada ainult teatud kasutaja aktsiad - ainult oma portfelli -
siis oleks hankida väärtused oma portfelli tabel selline, et
ID number on seotud just selle kasutaja.
>> Kui kuvad portfelli, tahad teatada iga varude kasutaja portfellis.
Sa tahad teatada aktsiate arvu ja praeguse osade väärtuse.
See praegune väärtus nende aktsiate ei ole salvestatud portfelli tabel
sest et täna tuleb ajakohastada - minimaalsete - iga päev Yahoo.
Et saada seda teavet, siis ei saa viidata, et teie SQL päring.
Mis funktsioon on sätestatud, et meile? Mis funktsiooni saab hind?
See on lookup, et kasutades lookup konkreetse sümboli annab teile palju informatsiooni.
See annab sulle 3 tükki teave - laeva nimi, sümbol, samuti hind.
Kui teil lookup teatud sümbol, siis saad hinna,
ja siis saate hinna kuvada oma portfelli.
>> Portfell peaks ka näitama kasutaja praeguse kassajääk.
See väli on salvestatud oma kasutajate tabel.
Nii siis mäleta, kuidas me põhiliselt võttes -
meil oli eri tüüpi PHP faile.
Me läheme on kontroller, mis põhimõtteliselt teeb kogu mõtlemine sinu jaoks.
Ja siis on meil mall, kus malli tegeleb kirjutamine andmed.
Sa pead mõtlema, mida muutujad kontroller tuleb võtta sisse
Kui me tegeleme portfelli, mis väljastab iga nime, sümbolit, ja osa number,
samuti praeguse hinna varu,
siis tahad leida mingi võimalus põhiliselt sõidavad -
saab edastada massiivi väärtusi, mis sobivad.
>> Läheme näide sellest, kuidas te võite laadida alla kõik varud
kuulub konkreetse kasutaja.
See ei tegele - veel - hinnaga laos.
Mis see teha on käivitada päringu.
See annaks sümbol, samuti aktsiate -
Ma helistan tabelis, kuid sel juhul siis mis see oleks?
Mis on tabeli nimi, et me tegeleme, millel on sümbol ja aktsiate
konkreetse kasutaja?
See on kas kasutaja või portfelli.
Portfolio.
Mis see teha on päringu portfelli sümbolid ja osad
konkreetse kasutaja.
Siin ma öelda, (SELECT sümbol, aktsiate tbl -
kuid selle asemel laua, sa lähed, et asendada see portfell.
"Kus on põhimõtteliselt minu tingimus.
Ma ütlen Ma tahan ainult, et saada nende assotsiatiivse massiivi, mis vastavad
sellele järgmine tingimus - ID võrdsetena.
Siis ma panen kohatäide seal ja siis sessiooni id.
Mis see teha on öelda iga rea ​​rida.
See on puhas tee asemel oleks tegelikult luua loop
et kordab üle kõik indeksid, siis PHP võite lasta jaoks-iga silmus.
>> Kui teil on antud massiiv, siis võib öelda, et ma lähen helistada iga järgmise elemendi -
Ma lähen kutsun iga element selle nime.
Niisiis, iga üks neist elementidest, ma lähen helistada neile seda,
siis ma suudan seda.
Selles iga, siis on rida kui teie tegelik array, ja iga rida sa lähed helistada rida.
Iga kord, kui ta täidab keha,
see läheb üles ja see uuendab rea järgmise elemendi ridades.
>> Nüüd, seoses ostes aktsiad,
mida me tahame teha, on saada varu, et kasutaja tahab osta
ja aktsiate arv, mida kasutaja tahab osta ning seejärel - kui nad tahavad -
lisada, et laos on oma portfelli.
Loomulikult, kui nad ostavad midagi, siis see saab vähendada
raha nad on, nii et läheb vähendada nende raha.
Me läheme tegelema ajakohastamine portfelli samuti kasutajate tabelis,
mis sisaldab raha.
Aga kõigepealt pead saada tegelik laos ja aktsiate arv, mida kasutaja soovib.
Selleks peate HTML-vormi, mis küsib sümbol laos
, mida soovite osta, samuti aktsiate arvu.
Siis sa tahad lisada.
Sa tahad, et valida teatud väärtusi.
Me oleme läbi käinud see natuke juba, kuid kui te üritate saada teatud ridu -
laadida teatud read SQL tabel,
see on järgmine süntaks.
Sa valida, ja siis kui sa täpsustada täht,
et ma põhimõtteliselt tagastama kogu, terve rida teie jaoks.
Aga samas, teil on seisund, kus, ja siis täpsustada -
Ma tahan ainult kasutajanimi võrdne post-in,
nii et see alla laadida ainult rida kasutajad, mis vastab mail-in.
>> Kui kasutaja soovib lisada aktsia portfelli
sa pead kontrollima mõned vead.
Sa tahad teha kindel, et kasutaja saab tegelikult endale varu,
et sa tahad, et kontrollida oma raha.
Enne kasutasime täht laadida kogu rida SQL tabeli.
Aga siin, me saame tegelikult lihtsalt täpsustada, et ma tahan ainult 1 väärtus -
Ma tahan ainult raha.
Nii et siin oleks tagasi raha kasutaja ID number 1.
Kui kasutaja on juba ostnud mõne sellise aktsia, kuid siis ostab rohkem, et laos,
siis oma portfelli - sa ei taha eraldi real
teine ​​rida, mis sisaldab selle uue tehingu.
Sa tegelikult soovid uuendada summa.
Kõik, mis on muutumas tõesti on summa aktsiate et kasutaja omab.
Kui te kasutate INSERT INTO päring - nii see lihtsalt lisada oma portfelli kõik need väärtused -
kasutaja id number samuti sümbol laos, et nad ostavad
ja aktsiad, siis võite ka soovi täpsustada, noh, kui ma joosta korduv võti -
sel juhul, korduv võti ei ole ainult kasutaja ID, kuid ka aktsia sümbol -
sest teil võib olla ainult - meie eeldus on, et teil võib olla ainult 1 rida
mis vastab 1 iseloomulik sümbol.
Niisiis, korduv võti - kui teil tekib kokkupõrke seal -
sa lihtsalt läheb uuendada aktsiaid ka uue väärtuse.
Aktsiad võrdub iganes meil oli enne pluss aktsiate arv, mida kasutaja ostab.
>> Nüüd, kui oleme värskendatud portfelli tabel,
me tahame uuendada kasutaja raha.
See on kasutajate tabel, nii et me ei kavatse lahutada teatud summa raha.
Arvatavasti see saab olema raha võrdub raha miinus - ja siis teatud summa.
Uuendamiseks raha, siis oleks -
kui ma tahtsin ära võtta raha posti-in, siis ma läheks selle päringu -
"Uuendus kasutajate ja siis pane raha veeru raha -
>> Tahaksin eemaldada 9999 dollarit ainult siis, kui kasutajanimi on võrdne post-in.
Aga sel juhul me ei taha lahutada 9999 konkreetselt.
Soovime täpsustada, noh, me tahame lahutada praeguse hinna laos
korrutatud aktsiate arv, mida nad ostavad.
>> Nüüd oleme võimaldanud neil näha kõiki varusid, et nad on
samuti osta rohkem varusid.
Me oleme ka varem võimaldas neil otsida praeguse hinna varu.
Siin me tahame, et nad saaksid müüa.
Esiteks tahame näidata põhimõtteliselt -
me tahame, et nad saaksid näha kõiki varusid, et nad on
nii siin me tahame näidata kõik read portfelli.
Kui nad otsustavad müüa teatud varu,
siis me lähme eeldada, et nad soovivad müüa kõik.
Nad ei ole lihtsalt kavatse müüa 50% oma aktsiatest, nad ei kavatse müüa 100% see.
Me ei saa lihtsalt kustutada kogu rida portfelli.
Me ei saa kustutada antud kasutaja aktsiaid teatud sümbol.
Seal on süntaksi eest.
>> Siis soovite värskendada raha.
Me ei kavatse lisades raha võrdse summa aktsiate nad müüvad
korrutatakse praeguse hinna varu -
ei hinda, millega nad ostnud, vaid hind, millega nad on -
Praeguse hinna, kui nad müüvad seda.
Viitamiseks praeguse hinna varu,
Te soovite kasutada lookup, mis annab teile hind laos
praegusel ajal.
>> Nüüd on jäänud ajalugu,
mis sa tahad, et võimaldada kasutajal jälgida kõiki oma tehinguid -
tahab näha, kui nad müüsid midagi, kui nad ostsid varu.
Me tahame määrata aja, mis nad tegid, et samuti kui palju nad ostsid
ja mida laos ei olnud.
Kas meil praegu kehtivaid struktuur, mis määrab seda?
Noh, meil on portfell, mis näitab arvu varud, mis kasutajal on
teatava osa.
Aga me struktureerida portfell nii, et see värskendab, kui me ostame mitmekordne
arvestades, et ajalugu peaks - kui ostad Apple, 10 aktsiat, ja siis hiljem müüa 5,
siis tahaks näha neid eraldi eraldi meetmetena, eraldi ridadel.
Arvestades, et hagi visualiseerida, et meie portfelli tabel
oleks lihtsalt uuendada selle konkreetse rea,
nii et me oleme ilmselt läheb taha teises tabelis.
Meie andmebaasis on meil kasutajate tabel, meil on meie portfelli tabel,
ja nüüd me ilmselt tahavad ajalugu tabel.
See ajalugu tabelit saab jälgida praegust kuupäeva,
samuti eelkõige aktsia sümbol, samuti kui palju aktsiaid,
ja siis milliseid meetmeid ta on -
kas sa ostsid need aktsiad või kas sa müüsid neid.
>> Selleks et tulla toime päevast on paar võimalust, et võite seda teha.
PHP on viis jälgida, kuupäev, mida saab otsida ise.
SQL võid kasutada ka praegu ega praegune timestamp. See on sinust.
Lihtsalt veenduge, et iga kord, kui kasutaja ostab või müüb, siis saad neid uuendada raha
Kasutajad tabel, saate ajakohastamine rida portfellide tabel,
siis saate ka ajakohastamine ajalugu,
nii et saab olema 3 eraldi SQL päringuid, et teid kutsutakse seal.
Meil on hunnik funktsionaalsus nüüd.
>> Lihtsalt paar meeldetuletust, et oma indeksi faili, tahad linkida vähemalt oma -
kuid sa tahad, et võimaldada kasutajal linkida buy.php lehel.
See saab lubada kasutajal - buy.php on kontroller, nii et läheb kas
Kirjuta teil - et läheb teile saata vormi, mis võimaldab teil vaadata asju üles.
Meil on ajalugu. Oleme logib välja, saad koguaeg ja siis müüa.
Need on minimaalse mida soovite näidata.
Seoses portfelli portfell on tegelikult näidatud esilehele.
Kui läheme indeks, siin me näeme, et see muudab portfolio.php
ja möödub assotsiatiivne massiiv - põhiliselt pealkiri võrdub portfelli.
Niisiis, see on kontroller.
Kui läheme malli portfolio.php,
siis kõik see on on - kuvab põhimõtteliselt pilt, mis ütleb, oh, see sait on valmimisjärgus.
Hiljem, kui olete läbima - you'll olla läbivad põhiliselt täpsemat teavet.
Selle asemel, et lihtsalt pealkiri, saate arvatavasti läbivad rohkem asju.
Kui teil on need väärtused, siis portfolio.php saab käsitleda neid väärtusi
ja nende trükkimise läbi mingit järjekorras.
>> Kui olete täitnud kõik need, siis tuleb ka rakendada veel 1 funktsioon.
See võib olla kas lubab kasutajal muuta oma salasõna,
lähtestada oma parool, kui nad on unustanud - nii et paroolilähtestusketas, siis
sa ilmselt ka soovite muuta registreeru nii, et see võimaldab neil määrata talle,
nii et kui nad unustavad oma parooli, siis nad saavad selle.
Nad saavad ilmselt kandma oma kasutajanimi ja seejärel talle saadetakse neile
koos lingiga saaks lähtestada oma parool.
Sul võib olla midagi, mis võimaldab kasutajatel saada tulu
iga kord, kui nad midagi müüa või osta,
ja siis lõpuks, et nad saaksid lisada raha oma kodulehel.
Lihtsalt minna tagasi mõiste kontrollerid ja malle natuke.
Sa pead midagi - nii et sa pead kontroller siin.
Just nüüd, me vaatame login.php näiteks.
Kui meil on kontroller, põhiliselt see vőtab 2 juhul.
Kui meil on kontrollerid, me oleme selles tükis, et me oleme ka omamoodi tegelevad
kui meil on vormid ka.
Regulaator põhimõtteliselt on eraldi meetmed -
üks, kui vorm on juba esitatud, ja siis kaks, kui kasutaja on tulemas sellele lehele
esimest korda ja ikka on vaja sisestada sellisel kujul.
>> Ma lähen, et minna juhul, enne läheb kuni esimese puhul, millel kujul sisse
Siin me ütleme, kui vorm on esitatud meetodil postitus -
ärge muretsege, et natuke.
Ärge muretsege, et liiga palju, kuid aru, et põhimõtteliselt see funktsioon tegeleb
kas vorm on esitatud või mitte.
See tingimus on tõene, kui kasutaja on esitanud vormi.
Kui ei, siis me ei kavatse soovite helistada krohvi login_form.php, ja siis liigu pealkirjas.
See pealkiri on lihtsalt põhimõtteliselt läheb ilmuvad päises.
Mis see on põhimõtteliselt ütleb, okei - hästi, kui kasutaja läheb login.php
ja ei ole tegelikult sisse loginud, siis ma tahan saata neid lehele, mis on sellisel kujul
mis võimaldab neil sisend kasutajanimi ja parool.
Siis ma lähen LOGIN_FORM ja siis see on praegusel kujul.
Siis, kui kasutaja väidab, et vorm, nad ei kavatse esitada see login.php
meetodil postitus.
Siis ma olen tegelikult läheb siseneda käesolevas paragrahvis minu kui-teine ​​silmus.
Siis on siin, et tegeleme väärtused vormi sisestatud.
See on siin, et tegeleme nendega.
>> Siis kui sa tegelema need väärtused - kui olete tegelevad -
öelda me tegeleme quote.php lehele, kus keegi saab sisestada varu, mis
nad tahavad vaadata, ja siis vaata, et ekraan -
selline on sarnane siin.
Siin on meil sisäänkirjautumislomake - you'd ilmselt päring -
aga siis, kui kasutaja on tegelikult esitatud teabe kohta,
siis tahad kontroller läbima teise malli
, mis näitab neile, et tegelikud andmed.
Nii siis õige siin, siis saad ilmselt -
ümber lõpuks oma seisundi siin - kui meetod võrdub postitus -
siis sa ilmselt tahad muuta teisele lehele - Näita tsiteerin -
mis saadab teid sellele lehele - show_quote.php--
ja siis selle faili viide neid väärtusi.
Kas see on loogiline?
>> Meil on kontroller, mis põhiliselt tegeleb 2 juhul -
kas oled sisestanud kujul või mitte.
Kui te pole sisestanud kujul,
siis suunab teid sellisel kujul, mis seejärel panna teid tagasi sellele lehele.
Siis, kui teil on informatsiooni töötleja, et keha hakkab tegelema, et
teabe vastavalt vajadusele - kas soojaks väärtused laos,
ja siis kui see on tutvunud nende väärtuste ja on neid kenasti vormindatud massiiv,
siis ei liigu et massiivi arvesse mudel lehele
mis tegeleb kirjutamine seda informatsiooni.
>> Jällegi, kuna see veebi, see saab lõbus olema.
Oleme väljaspool C nii et me oleme mitte ainult ASCII ja et terminaliväljundi,
nii on lõbus sellega.
Võite teha nii visuaalse kui soovite.
Võite lubada kasutajatel sisestada miljoneid dollareid ajal,
või piirata neid ja olema tegelikult tähendab ja annab neile ainult sisestada 1 penn korraga
või midagi sellist.
Kindlasti tuleb kindlasti nautige seda.
>> PHP kood on natuke lihtsam, et see on natuke lihtsam kaardistada oma pseudokoodi
arvesse tegelikku rakendamist.
Nii, kindlasti on lõbus, sest see on tegelikult meie viimane tükk CS50.
Mis, et see oli kiirtutvustus 7.
Kui olete lõpetanud vaadates läbikäiguks ja lõpetas oma pset,
siis need olid ka psets, ja nüüd oleme valmistootega -
pärast saame läbi viktoriini 1.
Siis loodetavasti saate kasutada tööriistu, mida olen õppinud psets -
mitte ainult süntaks, kuid rohkem abstraktne mõiste, kuidas teha teatud -
meeldib, ma tahan seda teha ja siis tegelikult rakendatakse seda.
Õppimine, kuidas võitlevad kaudu süntaks ja levitamine kood.
Lugemine teiste inimeste koodi, ja siis tõlgendamisel et kasutades olemasolevaid funktsioone.
>> Niisiis, edu sulle viimase pset.
See on olnud rõõm juhtida trajektooridega.
Loodan, et nad olen olnud kasulik teile.
Need olid Walkthroughs, ja tänan väga.
[CS50.TV]