[Powered by Google Translate] [Vika 8, Áframhaldandi]
[David J. Malan] [Harvard University]
[Þetta er CS50.] [CS50.TV]
>> Þetta er CS50, þannig að þetta er endir viku 8 hér.
Við að sjálfsögðu var smá fellibylur fyrr í þessari viku,
svo núna að það er í raun bara þú og ég í þessum sal,
en í dag höldum við áfram samræðum okkar um PHP
og um forritun vefur almennt, og við kynna einnig hugmynd
gagnagrunna, sérstaklega einn sem heitir MySQL, sem er alveg vinsæll þessa dagana,
í stórum hluta vegna sveigjanleika þess ásamt því að þess að vera frjáls og opinn uppspretta.
>> En fyrst að líta á þar sem við var horfið síðast.
Muna að við vorum að horfa á nokkrum Frosh Spjallboð dæmi,
og þetta var ljót mynd sem ég kom upp með um 15 + árum
í því skyni að hafa nemendur á skrá háskólasvæðinu fyrir freshman intramural íþróttum
án þess í raun að þurfa að Trek aftur yfir garðinn til Wigglesworth
að renna líkamlega stykki af pappír fyrir neðan dyrnar sumir Proctor er.
Í stað þess að við fluttum allt á netinu, en til að gera það sem við þurftum til að nýta
á nokkrum tækni, svo einn, þurftum við HTML HyperText Markup Language,
sem er aftur þetta Markup Language sem þú gera vefsíður byggingu.
>> Using a hluti af CSS þessa dagana, Cascading Style Sheets,
þar sem við notum stylizations á vefsíðu með því að nota örlítið mismunandi setningafræði,
en HTML var allt um uppbyggingu hennar.
Við þurfum einnig að kynna forritun vefur tungumál.
Í þessu tilfelli, munum við nota PHP og PHP er að fara að leyfa okkur
við breytilega framleiðsla innihald eins og heilbrigður eins og gera programmatic hluti eins
senda tölvupóst, eins og raunin var í huga við fórum í síðustu viku.
>> Muna að kóðinn fyrir þetta var í 2 hlutum.
Einn, höfðum froshims3.php,
og þetta var að mestu Markup með HTML formi inni í honum,
örlítið hluti af CSS upp hér í stíl eiginleika
þannig að formið sjálft ætti að vera fyrir miðju á síðunni, en umfram það sem
við fengum fulltrúa inntak mynd, textabox, fyrir gátreitinn,
sumir útvarp hnappur, a velja Valmynd, og gefast upp hnappur.
Og í gegnum þetta form, lögð við að skrá var greinilega heitir register3.php,
sem sjálft horfði smá eitthvað eins og this.
Nú, af kóða í register3.php, muna, var allt um tölvupóst.
Það gerði smá staðfestingu á því formi sem send var til að tryggja
að reitir voru í raun enda var gert ráð fyrir.
Síðan við kölluðum nokkrar PHP aðgerðir með örlítið nýja setningafræði,
jafnvel þó það sé fengið að láni frá C.
>> Þessi ör stjórnandi gerir okkur kleift að nýta sér eitthvað sem kallast hlutbundin forritun.
Við munum ekki fara inn í að í öllum smáatriðum hér, en veit nú
það er leið til að hafa störf í tengslum við mótmæla,
sem eru sérstök tegund af uppbyggingu, eins og við sáum í C.
En nú, bara taka á trú að þetta sé rétt setningafræði til að nota
þegar bókasafn svona PHPMailer bókasafn.
Og þá með því að í lok þessa skrá við höfðum dynamically mynda tölvupóst
sem fékk sent til jharvard@cs50.net reikninginn minn
af reikningi jharvard@cs50.net mínum,
og við upplýst notandann í samræmi við það sem þeir höfðu verið skráð fyrir þessa íþrótt.
Það er ansi mikið hvað Frosh Spjallboð síða gerði öll þessi ár síðan
þegar ég framkvæmda það, veitt á öðru tungumáli
en það sýnir þér kannski vald sem þú hefur
nú að þú getur tjáð þig ekki bara kerfisbundið
á lágu stigi í tungumáli eins og C, en á mun hærra stigi
með þessum mjög raunverulegur veröld umsókn eins og tölvupóst til raunverulega leysa
nokkur raunveruleg vandamál heimsins.
>> Nú, auðvitað, jafnvel þó að ég nota þetta handrit til að búa sumir
tölvupósti virk frá jharvard@cs50.net, sem er örugglega reikning
sem ég hef aðgang að, ekki vera alveg varkár að senda
mail aðeins frá reikningum sem eru í raun eigin,
svo það fá þig í smá heitu vatni í lífinu.
Með því að segja, við skulum nú umskipti til að leysa mismunandi vandamál að öllu leyti,
að við að halda ríkjum.
Nú, hvað þýðir þetta í raun?
HTTP, þetta HyperText Transfer Protocol,
er í raun ríkisfangslaus siðareglur, og hvað þetta þýðir er að
þegar þú draga upp eitthvað eins og Google.com og högg koma inn í
yfirleitt hefur vafrinn þinn einhvers konar spuna táknið sem þá
Niðurstöður í sumum vefsíðu vera sótt,
og þá hættir að litla táknið spuna, og það vissulega bendir
að HTTP hefur lokið einhvers konar tengingu við miðlara og það er það.
HTTP er án ríkisfangs í þeim skilningi að það er ekki að viðhalda
viðvarandi tengingu við miðlara á sama hátt Skype gerir
eða Gchat er því með HTTP
Gert er ráð fyrir að þegar þú hefur sótt á vefsíðu sem er það.
>> Nú, í raun þessa dagana á síðum eins og Facebook og Google Maps
og Twitter og eins og það er mikið meira kraftur þar
jafnvel eftir að tákn hættir snúast hægt í raun að fá fleiri uppfærslur
á miðlara, fleiri kvak, fleiri stöðuuppfærslur á Facebook og þess háttar.
En jafnvel það er að nota tækni sem við munum tala um í viku eða tvær
þekktur sem Ajax með tungumál sem heitir JavaScript,
en í lok dagsins, HTTP er enn ríkisfangslaus.
Og enn ef þú vilt einhvern veginn að muna hluti um notanda
jafnvel eftir að þeir hafa ótengdur frá miðlara
PHP er veita þér leið til að gera þetta
vegna þess, eins og við sáum síðasta sinn, PHP hefur a tala af superglobals,
og superglobal er aftur sérstakt alþjóðlegt breytu
sem er afhent til þín frá the vefur framreiðslumaður og PHP sjálft.
>> Þú þarft ekki að gera neitt til að setja gildi í það,
og meðal superglobals við höfum séð hingað til eru fá og senda,
sem er þar sem svæðin eru sett sjálfkrafa fyrir þig,
og a par af öðrum sem við höfum ekki séð enn.
Inni á $ _server eru nokkrar sérstakar breytur sem tengjast þjóninum sjálfum.
Hvað er IP tölu, hvaða siðareglur, HTTP eða HTTPS did þú notar,
Hvað beiðni aðferð notaðirðu og þess háttar, þannig að það er nokkrar áhugaverðar,
safaríkur upplýsingar um miðlara og í raun, the notandi í there eins og heilbrigður.
Það er $ _cookie, sem er þar sem þetta kallast smákökur eru geymdar.
Við munum ekki eyða tíma í fótspor sig í dag,
en veit nú að kex er réttlátur a lítill stykki af upplýsingar
að vefur framreiðslumaður geta planta á a vefur flettitæki
og síðan RAM þess eða hörðum diski tölvunnar sinnar
að geyma upplýsingar um notendur, til dæmis, notandi nafn
svo að þeir þurfa ekki að slá það inn í hvert sinn sem þeir skrá þig inn eða einhvern
einstök númer eða auðkenni fyrir að notandi
þannig að þú þarft ekki að pester þá með sams konar spurningum um
óskir í framtíðinni, en af ​​áhuga
núna er $ _SESSION.
>> Þetta superglobal, sem, eins og aðrir, er afhent til þín sjálfkrafa með PHP
þegar þú ert að skrifa PHP-undirstaða websites
getur geymt allt sem þú vilt, strengi, heiltölur,
fljótandi stig, gildi, fylki, hlutir,
virkilega eitthvað sem þú vilt, og það gerir þér kleift að geyma það á þann hátt
að jafnvel þó að notandinn heimsækir þig nú og þá
kemur til baka í eina mínútu frá nú eða 5 mínútur frá núna vegna þess
þeir taka tíma áður en að smella einhverjum öðrum link
PHP mun tryggja að allt sem þú setur í þeim fundi superglobal
mínútu eða 5 mínútur síðan mun enn vera þar þegar notandi skilar.
Og undir hetta í superglobal er hrint í framkvæmd með því að
þessir hlutir kallast kex, en nú er það bara abstrakt
þar sem það er tegund af forritanlegur nemur innkaupakörfu.
Hvað sem þú, sem forritari, setja í það
superglobal tengin array verður einhver fjöldi af mínútum síðar
til að eyða því eða þar til notandinn hættir sitt vafranum öllu.
>> Við skulum taka a líta á dæmi um hvernig þetta er í raun notað.
Í counter.php meðal stykki í dag af kóða
við höfum eftirfarandi línu.
Í upphafi þessa skrá við höfum fullt af bláum athugasemdir, sem uninteresting nú.
En í samræmi 13 við erum með nýja línu,
session_start, og sem í raun er einmitt það sem það segir.
Það byrjar fundur.
Það gerir þér kleift að nota þessi stóru superglobal $ _SESSION, og það er eins einfalt eins og þessi.
Nú, ef við höldum áfram að líta á línu 16, við skulum reyna að reikna út hvað þessi vefsíða er að fara að gera.
If (isset ($ _SESSION ["gegn"]) þá fara á undan
og geyma í gegn breytu, lágstafir gegn,
$ _SESSION ["Gegn"].
Þetta virðist vera að lýsa staðbundna breytu sem heitir gegn
inni þar sem það er að setja afrit af hvað sem er fyrir innan superglobal
kallast fundur á staðsetningu "gegn."
Annars virðist,, þetta litla staðbundna breytu gegn er frumstilla í 0.
>> En þá nokkrar línur seinna í 26 eftir því að afrita fundur um gegn,
lykillinn, hefur nýtt gildi úthlutað sem er núverandi gildi þess auk 1.
Í stuttu máli, þessi skrá virðist vera að uppfæra
teljari sem er geymd inni í setu superglobal
með incrementing hana um 1, en það heldur fyrst afrit af fyrra gildi
með því að geyma það í sveitarstjórn breytu sem heitir $ gegn,
og þá niður hér skulum sjá hvað er.
Það kemur í ljós að það er ansi mikið bara HTML.
Neðst á þessari síðu sjáum við í línu 37 sem ég hef heimsótt þessa síðu
gegn nokkrum sinnum, þannig að það er a par áhugaverðar aðgerðir hér.
Einn, þetta er greinilega breytilegt, en það dugar ekki bara að setja
$ Gegn í meginmál HTML því auðvitað
ef það er bara þarna á meðal HTML PHP er að fara að gera ráð fyrir það er bara HTML.
Þú vilt bókstaflega $ gegn að prenta á skjánum.
>> En í stað með því að sleppa í PHP ham
með þessu stykki af setningafræði getum við breytilega setja gildi hér
mjög svipuð í anda við það sem við gerðum síðasta tíma með
setja gildi inn í strengi.
Í raun er þetta bara skammstöfun fyrir að segja eitthvað eins og þetta bókstaflega,
prenta ($ gegn) eða jafnvel eitthvað eins og printf (% s, gegn)
eða jafnvel, eins og þú gætir hafa séð á netinu eða í kennslubókum,
það fall í PHP heitir echo
sem gerir það sama, og allir þeirra eru bara lengur winded leiðir
að segja <? =.
Í þessu eina tilfelli sem þú þarft ekki að setja
orðið PHP eftir spurningarmerki.
Þetta er skammstöfun fyrir, aftur, hvað við sáum bara í smá stund síðan
sem er echoing sumir gildi.
>> Við skulum sjá hvað niðurstaðan af þessu í raun og veru er.
Leyfðu mér að fara yfir í counter.php skrá okkar,
og við munum sjá að Davíð bara gert mistök með því að spila með númerið þar.
Við skulum fara festa hvað hann ruglaður upp,
og villa virðist vera þar, farið á línu 37.
Samkvæmt efst á þessari síðu sem ég hef heimsótt þetta síða 0 sinnum.
Jæja, við skulum fara á undan núna, og efst í vafranum smelltu á
endurhlaða helgimynd, og ég smellt endurhlaða,
og nú hef ég heimsótt síðuna 1 tíma, 2, 3, 4, 5, 6, 7, 8.
Og reyndar, ef við skoðum uppruna þessa síðu raunveruleg uppspretta merkjamál er að breytast,
og taka alla skorts á PHP, og það er vegna þess
PHP kóði er metin eða túlka framreiðslumaður hlið,
og svo þýðir það að framleiðsla á PHP handrit er það sem er að lokum send til vafra,
sem í þessu tilfelli er nokkuð hrár HTML og sumir hrár texti.
Hvað er að gerast hér?
>> Jæja, með tiltölulega fáum línum af kóða Ég er fær um að geyma
stöðugt yfir námskeiðið um nokkrar sekúndur, eða ef við biðum nógu lengi,
mínútur, jafnvel klukkustundir, sumir gildi á þann hátt sem gerir HTTP
virðast stateful eins og við höfum haldið
þessi tenging til the framreiðslumaður, og það er bara að muna hvað ég sagði það síðast,
en í raun það er allt fullt af flókið að fara á undir hetta
þátttöku smákökur sem er gera það kleift PHP til að gefa mér þetta blekking
þessa innkaupakörfu-eins lögun.
Fyrir nú, er léttvæg dæmi þar sem við erum bara að geyma heiltölu,
en þessi eiginleiki mun koma aftur til að vera mikils virði
þegar við byrjum að tala um flóknari verkefni,
meðal þeirra vandamál að setja 7.
Þetta er mjög síðasta vandamálið sett í CS50.
Ég veit, það er svo sorglegt, en það sem þú munt finna er sú að við erum að fara að gera
þessi hluti önn við raunverulega breyting
af samhengi C vissulega að samhengi PHP
en meðan sumir af the mjög sama grundvallaratriði
við höfum talað um í nokkurn tíma.
>> Markmiðið með pset 7 er að innleiða CS50 fjármál,
sem er eigin útgáfa af Yahoo Finance eða Google Finance
eða jafnvel Etrade.com þar sem þú hefur getu til að
líta upp lager verð fyrir gefið tákn, en jafnvel meira en það
þú hefur getu til að "kaupa" og "selja" birgðir
sem verslað er með á mismunandi kauphallir þar sem þessi heimasíða
hér gefur til kynna, sem er í raun að hve miklu leyti við höfum byrjað
vandamál setja fyrir þig, hefur þú Login Form sem er að biðja um notendanafn og lykilorð.
Það hefur Senda hnappur, en eftir það, eins og við munum að lokum sjá,
það er ekkert að fara alveg undir hetta enn vegna þess að það
er fyrir þig að framkvæma getu til að skrá nýja notendur,
getu til að kaupa hlutabréf, að selja hlutabréf,
að í raun líta upp núverandi verði hlutabréfa.
>> Og reyndar, þetta verður eins og alvöru heimi eins og mögulegt er vegna þess að við gerðum
eru hluti af kóða sem leyfir þér með einni aðgerð
fyrirspurn Yahoo Finance, sem frábærlega gerir í boði ókeypis gögn
fyrir að leita upp lager verð byggt á lager tákn eða auðkenni,
og þú færð til baka núverandi gengi hlutabréfa í dag.
Þau gögn sem þú ert í raun að sjá á þessari tilteknu pset verður
um eins raunverulega heimi og það er hægt að fá þannig að þú ert í raun interfacing
með alvöru fiskistofna heims, raunverð World,
og við munum sjá hversu mikið fé þú getur gert kannski
á næstu dögum að spila með eigin vandamál þitt.
>> En við skulum setja fyrst á svið fyrir hvernig á að hanna eitthvað sem er vissulega flóknara
en counter.php, það er flóknara en einhverju Frosh Spjallboð dæmi svona langt,
og við skulum reyna að kynna nokkrar málin hér að leyfa okkur
bæði fyrir pset 7 og kannski lokaverkefni ef þú gerir eitthvað Vefur undirstaða
að halda númerið þitt vel skipulögð, að halda þér heilbrigð,
og til að taka skref í átt að samstarfi, hvort sem er í lokaverkefni CS50 er
eða lengra ef þú heldur áfram að forrita eitthvað í framtíðinni.
Það er þetta almenna hönnun fyrirmynd
í tölvunarfræði og í þróun hugbúnaðar almennt
þekktur sem MVC, líkan skoða stjórnandi,
og þetta er kjánalegt skammstöfun sem lýsir mjög góð hugmynd,
sem er aðskilnaður mismunandi þætti í áætluninni,
sérstaklega að halda sér í rökfræði eða viðskipti rökfræði á vefsíðu
þannig að allt sem felur í sér hlutina eins og
kalla aðgerðir og fyrirspurn gagnagrunna og þess háttar
gerist ekki meðal HTML
heldur í sérstaka skrá, og örugglega, það er þetta eina skrá
oftast að þú hefur kallað stjórnandi
það er í raun heilinn á bak við rekstur, og við munum sjá dæmi
um þetta í bara smástund.
>> Það er líkan sem er forritun kóða
sem þýðir að tala við gagnagrunna, sem talar til Yahoo Finance og þess háttar,
og þá er það V í MVC, skoðanir,
allt efni sem er sem tengjast fagurfræði, skrár sem í raun innihalda
HTML, kannski CSS þinn og þess háttar.
Hugmyndin hér, eins og þessari mynd gefur til kynna, er að stjórnandi
er skrá, eins og við munum fljótlega sjá og eins og þú munt sérstaklega sjá í pset 7,
að heimurinn talar gegnum vafra þeirra vefur.
Það er skrá sem verður heimsótt á internetið,
en stjórnandi talar hugsanlega fyrirmynd,
sem er ein eða fleiri skrár sem innihalda kóða sem tengjast gögnum,
númerið tengist gagnagrunna og þess háttar, og svo talar það til
The stjórnandi einn eða fleiri skrár þekktur sem skoðunum,
sem eru fagurfræði vefsíðu, sniðmát nokkurs konar,
sem gæti tekið nokkur gögn sem inntak, en í lok dags
eina rökfræði inni á huga ætti að vera flutningur á þessi gögn,
iterating yfir lykkju og raun spúandi sumir
HTML-undirstaða flutningur þeirra eða jafnvel eitthvað eins og PDF.
>> Hvað er gott um MVC er að þú getur haft mismunandi skoðanir
byggt á gerð tækisins, miðað við tegund af skrá snið sem þú í raun
vilja til að sýna fyrir notandann.
Við skulum taka a líta á nokkrar smám flóknari og vel hönnuð dæmi
með því að byrja fyrst með útgáfu 0 hér.
Leyfðu mér að fara á undan og opna upp í MVC skrá okkar í dag
a skrá sem heitir index.php í möppu 0.
Takið þetta er frábær einfalt og mjög underwhelming website
það er tegund af útgáfu 0 á heimasíðu fyrir CS50,
og taka eftir hvernig við höfum tengil á fyrirlestrum, höfum við tengil á námsefni,
og ef ég fylgja á tengilinn til fyrirlestra fyrirvara sem URL
upp efst er að fara að breyta til lectures.php.
Ef ég fylgja svo á tengilinn til Vika 1 tilkynningu að URL breytingar week1.php.
Það virðist vera nokkuð einfalt hierarchic uppbyggingu hér.
>> Við skulum taka fljótur líta neðan hetta á hvernig þetta er sett fram,
og reyndar ef ég líta á index.php það er frekar einfalt.
Í staðreynd, jafnvel þótt ég kallaði þetta PHP skrá það er engin raunveruleg forritun kóða.
Það er athugasemd sem ég skrifaði hér í PHP bara þannig að notandi hefur ekki endað að sjá það.
Auðvitað, eins og áður, nokkuð sem er á milli PHP tags
verður túlkað, jafnvel ef það er athugasemd og túlka athugasemd
þýðir bara að kasta það burt í lok dags og í raun ekki
senda það til the flettitæki, svo allt í hér er bara fagurfræði.
Ef ég opna álíka lectures.php þetta er líka bara harður dulmáli skrá.
Það gerist að vera kölluð eitthvað. PHP,
en það er í raun bara. HTML og week1.php, week2.php
álíka eru bara Markup, þannig að það er fullt af göllum í þessari hönnun.
Einn, það er a gríðarstór magn af afrita / líma.
Jafnvel þó að það eina sem er að breyta milli þessara skráa er óraðaðan lista,
Li tags, ég hef engu að síður doc tegund, HTML, höfuð,
Titill, loka líkami, loka HTML og fleira
í hvert einasta skrá, sem þýðir að ef ég vil alltaf að endurskipuleggja
Þessi vefsíða eða restylize þá verð ég að fara í og ​​breyta
allar þessar skrár handvirkt eða með sumir gegnheill finna og skipta.
>> Við skulum taka skref í átt að betri, lengri hugsa hönnun í útgáfu 1 hér
þar sem á að lesa mig um að við höfum með svo að þú getur spilað með
Þetta meira hægfara á eftir heima sem við höfum hér
samantekt á skrá í útgáfu 1 af þessari síðu,
og það virðist sem ég hef tekið það á mig að þáttur út
nokkrar algengar kóða, header.php og footer.php.
Jæja, við skulum taka a líta á það sem er inni í fyrstu af þeim.
Header.php lítur þekki,
en taka eftir hvar það fá skorið burt?
Réttur eftir línu 19, svo það er allt sem var algeng
af skrá index.php, lectures.php,
week1 og week2.php frá fyrra dæmi.
Það sem ég gerði var að afrita og skera allt sem var algeng á öllum þeim skrám,
setja það í sérstakan haus skrá, og álíka í footer.php
gerði ég að beita sömu reglu þar aðeins áhugaverðar línur
í footer.php eru þessir tveir, nálægt líkama og loka HTML.
>> En hvað þýðir þetta nú er sú að í nýrri útgáfu
á index.php fyrirvara hversu mikið einfaldara er hægt að fá.
Leyfishafi, aðeins meira Cryptic útlit, aðeins minna innsæi
að fylgja toppur til botn, en Guð minn, allt sem offramboð er nú farinn.
Við krefjumst þess að nota PHP virka bókstaflega kallast þurfa upp efst
sem er mjög minnir, man, af er C # eru kerfi.
Við krefjumst header.php efst.
Við krefjumst footer.php neðst, og það eina sem er öðruvísi
eða sérstakt um þessa skrá er efni sem er ætlað að vera einstakt að því.
Ef ég fer þá í, segjum, lectures.php, sama lögmál gildir.
Aftur, þurfa sumir athugasemdir upp ofan, en ég þarfnast haus, fæti,
og á milli það er bara efni sem er í raun breyst.
Og ef við leit í viku 1 og viku 2 viljum við sjá
að sama regla hefði verið beitt þar.
Jæja, erum við ekki alveg gert það.
>> Við skulum taka a líta á útgáfu 2, sem hefur svipaða uppbyggingu,
en taka nú ég hef kynnt eitthvað annað.
Í línu 10 Ég hef kynnt helpers.php,
sem inniheldur víst hjálparatriði virka.
A hjálpar virka er yfirleitt tiltölulega stutt fall
sem þú skrifar til að hjálpa þér út í ýmsum stöðum,
og við skulum sjá hvað er inni í helpers.php.
Í þessu tilfelli, það útlit eins og það hefur 2 valkosti.
Muna frá öðrum degi með td teningur okkar
þú getur skilgreint eigin aðgerðir þínar í PHP, og það sem ég hef gert núna er að ég hef
skilgreindar aðgerðir kallast láta fót og láta haus,
fyrsta sem tekur viðfang heitir gögn,
sem sjálfgefið gildi er tómt array, sem leiðbeinandi þar,
og við getum í raun og veru að skrifa þetta enn succinctly í nýjustu útgáfu af PHP
með því að segja opinn ferningur krappi, lokað ferningur krappi.
Það þýðir tóma fjölbreytta stærð 0 en engu að síður fylki.
>> Þetta þykkni aðgerð er svolítið sérstakt í því
Hvað það gerir er að það tekur sem rök þess að tengin array
sem hefur 0 eða fleiri helstu pör gildi, og ef þú ert með lykil af foo
og gildi bar útdrátturinn virka
skapar aðstæður sem nú, eins og í línu 11,
þú hafa a heimamaður breytu sem heitir $ foo sem gildi er sundlaug.
Og ef þú hefðir fleiri lykla og gildi í gögn fylking,
álíka myndu þeir vera einangrað í staðbundna umfang
eða nafn pláss þannig að footer.php og
sama hugmynd hérna svo að header.php
hafa aðgang að þeim breytum.
Í raun, að láta mig opna aftur header.php
og vekja athygli á nú hvað það lítur út eins og í þessari útgáfu.
>> Frekar en harður erfðaskrá CS50 sem titil fyrir hvert einasta síðu
taka við kraft sem er hægt núna.
Í línu 5 Ég er echoing titil breytu,
en fyrst ég er farið að titill breytu í aðgerð heitir htmlspecialchars.
A heimskur heiti fyrir aðgerð, lengi sem það er, en það er í raun það sem það segir.
Það tryggir að allir sértákn
í band sem hefur verið samþykkt í eru rétt slapp HTML.
Þetta er í raun leið til að forðast eitthvað sem heitir kross síða forskriftarþarfir árás
þar einhver getur illgjarn eða fyrir slysni
sprauta eigin HTML sína inn í vefsíðuna þína
með því að líma inn í einhvers konar, til dæmis,
eitthvað sem þú varst ekki alveg von á, sérstaklega JavaScript kóða,
sem við munum tala um í viku eða eftir tvö er.
>> Þetta núna header.php, þá er það skoðun
í þeim skilningi að það gerir þér kleift að skoða fagurfræðilega innihald einhverjum gögnum.
En nánar tiltekið, er það sniðmát.
Þetta er tegund af Teikning nú um hvað við viljum í haus á hverri síðu til að líta út eins og,
en það er einhver kraftur í því að við viljum að titill að vera virk sett
byggt á titli breytu
sem var dregin út þegar við kallað, aftur,
haus Render virka.
Nú, ef við leit á fót bakið, það er í raun ekki mikið notað af því núna
vegna þess að í footer.php það er engin kraftur alls.
Það gæti verið, en á því augnabliki sem það er erfitt dulmáli lista yfir 2 tags,
en sama hugmynd á við, þannig að í raun bendir hvers vegna
gerði við eyða tíma að hafa bakið haus og láta fót virka?
Leyfðu mér að fara í staðinn nú í útgáfu 3,
og í útgáfu 3 í framreiðslu ákvað ég að einfalda það enn meira.
>> Láttu mig hafa einn inna virka.
Láttu mig hafa það að taka annað rifrildi, í þetta sinn heitir sniðmát
sem er ætlað að vera nafn á sniðmáti
og þá mun ég concatenate ofdirfsku. PHP að meta þá breytu er,
og svo ef það er til staðar foo.php, bar.php eða header.php og footer.php,
þá ætla ég að fara á undan og draga breytilega gögn
og þá krefjast þess að leið.
Með öðrum orðum, til að nota þetta núna, ef ég opna index.php
eftir að ég kalla ekki láta hausinn lengur.
Ég kalla bara láta, en ég fara í vitnað gildi haus
að gera ljóst hvaða sniðmát sem ég vil í raun að hlaða.
>> Þá hérna eftir hvað ég er að gera.
Ég er farið í dynamically lykli af titli,
a gildi CS50, og þetta líka, eins og við sáum áður,
mætti ​​meira gagnorðar í nýjustu útgáfu af PHP
þar sem ég get skipta array virka með hornklofum,
sem ég leggja til er enn læsileg og vissulega
svolítið auðveldara að slá.
Og auðvitað með bakið fót hringja neðst,
við nennir ekki farið í annað rifrildi á öllum, engin tengin array,
vegna þess að það er ekkert dynamic innan þess fót.
Það er bara nokkur loka tags fyrir HTML.
Gott, erum við að taka skref í átt að raun þrífa það upp hér,
en láta mig opna 2 endanlega dæmi.
Þetta eitt, númer 4, eftir því að ég hef gert meðvitaða ákvörðun nú
til að bæta við fyrra dæmi með lokum nota sumir stigveldi að skrám mínum.
>> Takið eftir að í þessari samantekt, í þetta lesa mig, ég hef kynnt
sem felur í sér möppu og sniðmát möppu
innihald Hvers er að fara að vera það sem ég vil að fela
og sniðmát sem mig langar til að gera, hver um sig.
Þetta er í raun mér að endaþarms og reyna að halda hlutum snyrtilegu,
halda sem skrá saman, en niðurstaðan
er að við höfum nú örlítið tidier skipulag, en við verðum að muna nú
í, til dæmis, index.php
þegar við þurfa að skrá helpers.php
við verðum að nú þurfa það um nær / helpers.php
frekar en bara að segja helpers.php því nú er það í raun í staðinn fyrir einhvern skrá.
Nú, eins og innskot, munt þú sjá á þessum dæmum og nokkrum öðrum
virka eins og þurfa, þarf einu sinni.
Það er í raun fall sjálft kallað eru, og þeir hafa allir örlítið mismunandi hegðun.
Hér segi ég þarf einu sinni að gera frábær ljóst að ég vil aðeins þeir
aðstoðarmenn með í verkefnið mitt einu sinni.
En ef ég er varkár og ef ég er í raun og veru að hugsa um rökfræði mínum almennilega
það ætti að duga of bara að segja þarf upp efst
svo lengi sem ég sjálfur ekki tilviljun krefjast þess að sömu skrá annars staðar.
Í raun, þetta er örlítið skilvirkari leið til að gera hlutina þá nota
þurfa einu sinni, svo ég klippt það niður til bara krefjast.
>> Við skulum taka eitt skref lengra.
Þetta síðasta dæmi nú, útgáfa 5, hefur enn hreinni möppu stigveldi.
Tilkynning það sem ég hef gert hér á að lesa mig í þessari lokagerð
nú hef ég HTML skrá mína, sem ég hef haft allan þennan tíma,
en inni er nú bara index.php, lectures.php,
week1.php og week2.php.
The nær skrá nú býr við hlið af HTML skrá,
svo á sama stigi sem systkini, svo að segja.
Svo er það sniðmát möppunni.
Lykillinn takeaway hér er að ég hef kynnt svolítið meiri uppbyggingu,
en aðalatriðið er nú að aðeins skrá
sem þarf að vera vefur aðgengileg opinberlega addressable
með slóð á internetið er í HTML skrá mína.
>> Á sama tíma, aðrar skrár, helpers.php, footer.php,
header.php, sem eru að öllum líkindum kannski viðkvæmari,
kannski hefur framreiðslu raun nokkur notendanöfn og lykilorð eða sumir vitsmunalegum
eign mín, virka ég virkilega vil ekki að heimurinn að sjá, jafnvel þótt óvart.
Það er gott að halda út af the opinber HTML skrá
skrár sem þurfa ekki sjálfir að vera opinber.
Allt sem þú þarft að gera í þessu tilfelli er að horfa á, til dæmis,
index.php HTML skrá á skrá,
taka við verðum bara að vera a lítill fleiri varkár þegar þurfa
eða þurfa einu sinni þessa skrá.
Ég þarf fyrst að gera .. að fara til foreldris skrá,
þá gera / innheldur / helpers.php
að kafa aftur niður í að fá skrá sem mér þykir vænt um.
>> Einhverjar spurningar þá á MVC
eða þetta tiltölulega einfalt holdgun þess?
Og láta mig gera ljóst að við áherslu töluvert á að
V hér, skoðanir og Factoring út af þessum sniðmát.
Við höfum í raun ekki greina M frá C bara ennþá.
Í staðreynd, there raunverulega er engin M hér, og jafnvel C okkar,
stjórnandi, er í raun ekki að gera allt sem mikill, en þú munt fá miklu meira
þekki bæði af þeim 2 bréf frá MVC,
eða öllu heldur, þú munt fá miklu meira kannast við C
í MVC fyrir setja vandamál 7, þannig að það er meira af því í sjónmáli.
Spurningar?
Það er í raun enginn hér.
>> Jæja, við skulum nú fara í annað og síðasta atriði í dag.
Það er kynning á gagnagrunni.
Fram þessum tímapunkti sem við höfum haft nokkrar leiðir að geyma gögn.
Við höfum notað breytur.
Til baka í C skrá okkar, I / O umræða við byrjuðum að nota texta skrár
og nota skrár eins fprintf, og þá erum við jafnvel byrjaði
tala um CSV skrár svolítið, Comma Separated Values,
svo öll þessi leyfa okkur að hafa gögn geymd
annaðhvort ekki stöðugt eða stöðugt.
En jafnvel CSVs eru í raun ekki til þess fallnar að leita
og innsetning og eyða.
Það er í raun bara heimskulegt textaskrá aðskilin með kommum
röð eftir röð eftir röð eftir röð, þannig að ef þú vilt að
leita að skrá besta sem þú getur gert í raun er línuleg leit.
Þú þarft að byrja á the toppur af the skrá, lesa the heild hlutur í,
og leita að einhverjum gildi áhuga.
Ef þú vilt setja inn í það sem þú þarft að gera það sama,
iterating yfir það og setja á ákveðnum stað,
og í raun, þú þarft að gera allt sem leita rökfræði sjálfur.
>> Þú getur ekki gert snjall mynstur samsvörun á CSV skrá nema þú sjálfur skrifa kóðann.
Þú getur ekki gert síun CSV skrá
nema þú sjálfur skrifa kóðann.
Væri ekki gott ef einhver annar setur í öllum viðleitni
að í raun og veru að gera að leita auðvelt og innsetning auðvelt
og eyða og uppfæra og svo framvegis?
Það er einmitt það sem gagnagrunnur er.
SQL, Structured Query Language, er enn annað mál
sem við erum að kynna hér í dag, en það líka er nokkuð aðgengileg,
og hvað við erum í raun að fara að gera er bara að slíta úr honum sumir af the mikilvæg
einkenni svo að til pset 7, og ef þú gerir eitthvað vefur byggir á,
lokaverkefni þitt, hefur þú möguleika á að tjá þig
varðar fyrirspurnir gögn.
Þú hefur getu til að geyma mikið eða lítið af gögnum
á mun fleiri skipulögð leið sem verður í lok dagsins
gera líf þitt auðveldara vegna þess að með SQL er hægt að tjá þig
miklu meiri nákvæmni, miklu meira skipulega í því skyni að
fá aftur sumir hlutmengi af gögnum frá stærri Corpus gagna.
>> Þú getur hugsað um gagnagrunn, í þessu tilfelli, er SQL gagnagrunnur, virkilega eins og Excel
eða Numbers þar er töflureiknir,
eða kannski margar töflur og töflureikni, auðvitað,
hefur raðir og dálka, og það er vegna þess
SQL gagnagrunnar eru Vensla, Vensla í skilningi
að þeir geyma gögn í skilmálar af þessum töflum,
raðir og dálka.
Þeir eru meiri árangri en eitthvað eins og töflureikni,
og tafla er ætlað að vera notuð af mönnum.
A gagnagrunnur er ætlað að vera notuð af forritari
skrifa kóðann gegn henni, svo að holdgun gagnagrunni
er að fara að vera annað hvort stjórn lína.
>> Einn af vinsælustu Vensla gagnagrunna þarna úti er, aftur, MySQL,
sem er frábærlega frjáls, mjög hár framkvæma, og þetta er það
Facebook notað mjög snemma og að nokkru leyti enn í dag
að geyma mikið af gögnum sínum, og við munum sjá í smá stund
að nota tiltölulega einfaldar skipanir
við getum valið gögn, setja inn gögn, uppfæra gögn,
eyða gögnum og þess háttar, en sem betur fer, það er meira notandi-vingjarnlegur tengi
en bara að skrifa á svart og hvítu hvetja hér.
Við munum nota til pset 7 og víðar ókeypis tól sem heitir phpMyAdmin.
Nafnið er tilviljun.
The tól gerist að koma til framkvæmda í PHP,
en það er í grundvallaratriðum óviðkomandi.
Hvað er gagnlegt um phpMyAdmin er að það er vefur-undirstaða gagnsemi.
Við höfum fyrirfram setja í embætti það í tækið fyrir þig,
og með því er hægt að búa til töflur í gagnagrunni,
þú getur sett inn gögn, eyða gögnum, og almennt séð
gögn í nokkuð notandi-vingjarnlegur umhverfi.
Notendur þínir eru ekki að fara að nota phpMyAdmin.
>> Þetta er í raun bara stjórnsýslu eða verktaki tól
sem að sjá og pota í kringum gögn og reikna út hvernig á að skipuleggja það,
mikið eins og þú sjálfur getur notað Excel eða tölur,
en það er að fara til vera a mikill vegur af visualizing hvað er að gerast undir hetta
svo að þú getir einbeitt þér á áhugaverða lausn vandamála og ekki svo mikið
á Bogagöng skipanir.
Við skulum taka a líta á dæmi um gögn sem gætu komið geymd tabularly
í Venslagagnagrunnur.
Hér er eitt slíkt dæmi.
Nú, því miður, phpMyAdmin erred á hlið henda allt of mörg orð
og grafík á þig, en ef þú skerpa á bara á
ID dálki notandanafn dálki, og kjötkássa dálki
þetta er í raun að tafla, en það gerast til vera a seðillinn
á borð inni á tækinu
nota skrá sem við veitum þér með í setja vandamál 7.
>> Einkum gefum þér skrá sem sýnir
notandans borð, svo tafla inniheldur notendur með 3 dálka,
einn sem er einstakt auðkenni hefst kl 1 og vera incremented eftir.
Í öðrum dálki er notandanafn og þeir sem gerðu Hacker,
tölvusnápur útgáfa fyrir pset 2, gætir kannast sumir þessara notendanöfn amk.
Á hægri hönd eru lykilorð, en þeir eru ekki bókstaflegri lykilorð.
Þeir eru kjötkássa þeirra, svo það kemur í ljós
að geyma lykilorð í gagnagrunni er mjög slæm hugmynd.
Þú hefur allt líklega lesið á einhverjum tímapunkti í einhverjum vef
eða gagnasafn sumir félagsins verið léleg, og þá verður þú að
breyta lykilorðinu þínu, þú þarft að fá endurgreiðslur á hlutum
því slæmar strákur braut reyndar inn á reikninginn þinn vegna.
>> Geymsla lykilorð í skýrum texta, unencrypted í gagnagrunni
er alveg asinine, og enn er það mjög skemmtilegur
þá til að lesa um nokkur mjög vel þekkt fyrirtæki
stundum í fjölmiðla gagnagrunna Hvers eru í hættu,
og sá hluti er ekki fyndið, en sú staðreynd að gagnagrunnar innihalda unencrypted
lykilorð er fáránlegt vegna þess að bókstaflega með einni línu af kóða
þú geta vernda gegn viðkomandi ógn, og það er það sem við höfum gert hér.
Jafnvel fyrir falsa litla okkar CS50 Fjármál útgáfa
við erum að dulkóða lykilorð bara fyrir gott mál, og sú staðreynd að
öll þessi lykilorð að byrja með $ 1 $ er bara samningur.
Það þýðir bara að þeir eru dulkóðaðar eða mjög tætt,
sem er eins og dulkóðun virka einn-vegur
þannig að þú getur ekki snúið áhrifum hennar með eitthvað sem kallast MD5.
>> Sú staðreynd að 50 er eftir sem þýðir að salt gildi
um 50 var notað til að hakkast öll þessi lykilorð nema einn.
Mine, auðvitað, eins og þú getur séð það, HA,
var að nota mismunandi salt, þannig að þeir ykkar sem fékk örlítið skemmtiferðamaður upp
kannski í Hacker 2, sem gæti hafa verið afleiðing af því að hafa notað okkar
annað kjötkássa en aðrir vegna þess að lykilorðið mitt er í raun sama
sem einhverjum öðrum notanda þarna.
Í staðreynd, ef þú hefur verið að bíða eftir öll þessi vikur til að finna út
hvað þessir lykilorð voru hér voru lykilorð sem þú varst áskorun
að sprunga í Hacker útgáfa af setja vandamál 2, svo enginn of erfiður.
Í raun er Malan var sú sama og jharvard,
en ef við förum aftur að þeir litu öðruvísi.
>> Einbeittu jharvard í Crimson vegna þess að þeir voru saltaðar á annan.
Reiknirit var perturbed á þann hátt að
kjötkássa gildi, brengla gildi lítur svolítið öðruvísi
vegna þess að aðföng voru örlítið öðruvísi, en lykilorðið undir hetta
var samt að lokum Crimson.
Nú, sem þykir vænt um þetta?
Jæja, við erum að veita þér sýnishorn notendur, sem notandinn sýnishorn nöfn
og kjötkássa á lykilorð þeirra svo að þú ert í raun og veru nokkur
viðskiptavinum fyrir CS50 Fjármál þegar þú færð fyrst burt the jörð með kóðann þinn.
Þú verður að framkvæma fleiri borðum inni í MySQL, inni í gagnagrunninum.
Þú þarft að búa til fleiri tafla, á áhrifaríkan hátt, en við ákváðum að gefa þér þetta eina
að koma þér af stað, og þú munt sjá að setja vandamál forskrift
gengur þér í gegnum ferlið við að flytja þessa töflu
og einnig að útskýra hvað sumir af the einkenni eru,
og þú munt einnig sjá að við veitum þér með kóðanum
að takast á við hökkun eða dulkóðun af þessum lykilorðum,
svo þú þarft ekki að hafa áhyggjur of mikill óður í það MD5 eða eins og er í raun allt um.
>> Svo, SQL, Structured Query Language.
Þetta er einfaldlega, tungumál sem við erum að fara að byrja að nota í pset 7
og ef til vill víðar að biðja gögn frá einhverjum gagnagrunninum.
Gögnin er, aftur, geymd tabularly í þessum Vensla borðum, dálka og raðir,
en nota sumir tiltölulega einföldum setningafræði eins eyða
INSERT, UPDATE og veldu getum við gert nákvæmlega það.
Við getum eytt úr gagnagrunninum, setja,
uppfæra gögn eins og heilbrigður eins að velja, það er að sækja gögn úr gagnagrunninum.
Hvernig förum við að gera þetta?
Leyfðu mér að fara á undan inn í tækið.
Leyfðu mér að draga upp http://localhost,
sem aftur er staðbundin tæki sig.
Það er sjálfgefið gælunafn hennar.
Og láta mig fara í / phpmyadmin.
Þetta gerist að vera sérstakur URL sem tækið er forstillt þannig að skilja
að hvetja strax mér að notandanafn og lykilorð.
>> Eins og venjulega, ég er að fara að slá jharvard og purpuri,
en átta sig á því er stjórnandi reikningur á tölvunni.
Það er bara tilviljun að það er líka jharvard skráð fyrir CS50 fjármálaráðherra.
Jharvard, Crimson, slá gefur mér notendaviðmót sem við sáum
svipinn smá stund síðan, og það er a lítill yfirþyrmandi í fyrstu,
en hvíla sjálfsöruggur, þú ert aldrei að fara að smella af the hlekkur í þessu tóli.
Þú munt enda upp með a lítill hluti sem eru frábær gagnlegt,
fyrsta sem gagnagrunna upp hér.
Ef ég fer upp í gagnagrunnum, eftir að ég er beðinn um að búa til gagnagrunn.
Þetta er eins og að búa til nýja Excel skrá, á áhrifaríkan hátt.
Ég ætla að fara á undan og kalla þennan fyrirlestur, og ég ætla bara að fara að hunsa túni, samanburði.
Það hefur að gera með framsetningu gagna þar,
og ég ætla að smella búa, og nú taka svo ég sleppti búa
á vinstri hönd hlið þar sem hún segir engin gagnasöfn
Ég ætti fljótlega sjá fyrirlesturinn gagnagrunninum.
>> Ef ég smelli nú á vinstri hönd hlið, sem fyrirlestur gagnagrunn,
taka flipa minn breyta svolítið.
Ég hef fengið uppbyggingu, SQL, útflutningur, innflutningur og nokkrum öðrum hlutum.
Uppbygging er ansi mikið tóm.
Engin borð fundust í gagnagrunni, sem hér segir,
þannig að við skulum búa til borð, og við skulum fara á undan og búa til töflu
eins nemendur, og hversu margir dálkar viljum?
Við skulum halda þetta einfalt, og við skulum taka fyrir hvern nemanda
kennitölu, nafn og netfang.
>> Við munum halda það einfalt eins og þessi, svo 3 dálka, fara.
Form sem þú sérð hér er nú svolítið sóðalegur og yfirþyrmandi,
en við verðum bara að fara í gegnum það, röð fyrir röð, svo mjög fljótt við skulum gefa
fyrsta dálki í þessum gagnagrunni nafn á auðkenni fyrir einstaka auðkenni.
Það verður að vera heil tala. Ég get í raun hunsa lengd og gildi.
An int er að fara að vera 32 bita sama hvað þú skrifar á það, þannig að við skulum skilja það eftir autt.
Sjálfgefið gildi, ég gæti gert það null, eins og skilgreint.
Ég ætla að fara það eitt og sér. Við skulum ekki hafa áhyggjur af sjálfgefnum gildum.
Við skulum fletta hérna til hægri, eiginleika.
Þetta er áhugavert.
Við skulum fara á undan og nokkuð geðþótta segja að auðkenni verða að vera án undirritunar.
Við skulum ekki sóa allir neikvæðar tölur.
>> Förum 0-4000000000, gefa eða taka,
og þá skulum við ekki snerta eitthvað af þessum sviðum bara enn þarna,
en þá láta mig slá inn nafn hérna,
og síðan hinn var email, þannig að aflinn tölvupósti
og nafn, augljóslega ekki heiltölur, þannig að við skulum breyta þeim til mismunandi sviði.
Það kemur í ljós VARCHAR, breyta lengd bleikju,
er eins og band í SQL gagnagrunn
en breyta lengd, og þú ert í raun að segja það fyrirfram
Hámarkslengd band, þannig að ég ætla að nokkuð geðþótta
með því að venju gerð 255 stafir.
Ég gæti alveg sagt 32. Ég gæti sagt 1.000.
Manni þarf að ákveða fyrir þig byggt á lýðfræði þinn hvað er
lengsta nemandans nafn og fara með því að tala eða aðeins stærri,
en hvað er gott um VARCHAR er það er ekki að fara að sóa
255 bæti á nafni hvers nemanda.
Ef það er DAVID það er ekki að fara að nota alla 255 bæti,
en það er óákveðinn greinir í ensku efri, svo ég ætla að fara með 255 bara með því að venju,
en við gátum ræða það að vera einhver lægri gildi, og netfang
bara til að vera í samræmi 255, en aftur, við gætum hafa sömu umræðu.
En ég ætla að gera eitt annað hlutur hérna á hægri hönd.
>> Hvað er öflugt um gagnagrunn er að það er hægt að gera a einhver fjöldi af þungur lyfting
eða flókin vinna fyrir þig.
Einkum, ég sama hvað ID númer nemanda míns eru.
Það er bara ætlað að vera einstakt auðkenni í gagnagrunni
þannig að ég hef 32-bita gagnorða framsetningu að nemandi
svo að ég hafi einhverja leið til einstaklega greina þá
svo það að vera 2 Davids, til dæmis í bekknum.
Í raun er ég að fara að athuga þetta AI kassa, sjálfvirkur vöxtur,
þannig að gagnagrunni, MySQL, tölur úr
hvað ID hvert nýlega sett nemanda er að fara til vera.
Ég er ekki einu sinni að hugsa um það í númerið mitt,
og ég er líka að fara að velja eitthvað undir vísitölunni valmyndinni.
Vísitalan falla niður hér hefur aðal, einstakt,
vísitölu og fullur texti.
Þú getur kannski giska á hvað a par af þessir hlutir eru,
en það kemur í ljós í Vensla gagnagrunna
þú forritari eða gagnasafn stjórnandi fá að preemptively
gefa vísbendingar í grunninn um hvað sviðum
í töflu eru nokkuð sérstök.
>> Til dæmis, í þessu tilfelli sem ég ætla að segja að auðkenni
er að fara að vera aðal vísitölu, annars þekkt sem aðal lykill.
Hvað þýðir þetta um skilgreiningu er að ID héðan
verður einstaklega þekkja nemendur í þessari töflu.
Enginn nemandi mun hafa sama auðkenni vegna þess að ég er að leggja þetta þvingun eða þessa vísitölu.
Ennfremur, hvað þetta er að fara að gera fyrir mig er að það er að fara að segja
MySQL sem ID er sérstakt.
Ég hugsa sérstaklega um ID, svo fara á undan og gera galdur Fancy gögn uppbygging þíns,
byggja upp einhvers konar tré.
Venjulega það er eitthvað sem kallast B-tré, sem við ekki líta á dögum,
en það er önnur slík gögn uppbygging svipuð í anda til tvöfaldur tré
og reynir að við skoðuðum, en það er að fara að segja
í grunninn á þessu sviði er svo mikilvægt að ég líklega
langar að vera fær um að leita á það, fara fram í tímann og byggja upp smá ímynda
gögn uppbygging í minni til að flýta fyrir leit þannig að helst
þeir eru stöðugt tíma eða að minnsta kosti eins nálægt því og hægt er
þannig að það er ekki flytjast inn línulega leit, sem er ekki að fara að vera
the hár framkvæma nálgun.
Með því móti, netfang gæti hafa verið helsti lykill.
>> Fræðilega, netfang allra er einstakt, nema þú ert að deila sumir reikning,
en það er yfirleitt ekki gott að nota eitthvað eins og streng
sem aðal lykill því ef tilgangur hennar í lífinu er að einstaklega þekkja
raðir í töflunni það er engin ástæða til að nota 255 bæti hámarks
til einstaklega þekkja einhvern ef þú getur komist upp með aðeins 4 bytes
eða 32-bita int.
Almennt, aðal lykill ætti að vera stutt og gagnorðar
og helst eitthvað eins heiltala eða stór INT, sem gerist að vera 64 bita.
En netfang ætti að vera einstakt, og einn af the lögun af gagnagrunni líka
er að framfylgja sérstöðu fyrir mig.
Með því að velja einstök hér við hliðina á tölvupósti, jafnvel þótt email sig
er skrunað að slökkva á skjánum, ég er að segja við gagnagrunn
treystir mér ekki.
Ekki láta mig setja inn í gagnagrunn
sama netfang tvisvar, jafnvel ef ég er hálfviti og er ekki
mjög gott með IFS mínum og annars IFS og raunveruleg PHP kóða
og ég lét óvart notandinn skrá með netfang
gagnagrunnurinn er enn eitt stig af vörn fyrir misskilning
til að tryggja að að afrita netfang endi ekki upp í töflunni.
>> Nú, hins vegar að nafni vilt sennilega ekki að gera það einstakt
því þá gæti aldrei vera 2 Davids eða 2 Mike Smiths, til dæmis,
í gagnagrunninn, þannig að eina sem við munum bara fara einn.
Ég ætla að fara á undan og smelltu á Vista neðst til hægri,
og allt lítur vel út, en taka upp hér
þetta er hluti sem við ætlum ekki að eyða of miklum tíma í
vegna þess að setningafræði er svolítið flókið, og við þurfum ekki að búa til töflur
allt sem oft, en SQL sjálft er tungumál,
The setningafræði sem er hérna sem ég hef auðkennt.
Hvaða phpMyAdmin raun gerir er að það skapar a vefur-undirstaða GUI fyrir þig
sem þú getur sparað tíma og ekki að höndunum tegund út
nokkuð lengi SQL fyrirspurn svona.
>> Með öðrum orðum, ef þú vilja til með höndunum skapa þessari töflu,
annaðhvort að svart og hvítt hvetja eða jafnvel í phpMyAdmin
með því að nota þessa Annað flipinn þetta SQL flipi þar sem þú getur slegið inn í hvaða SQL fyrirspurnum
þú vilt, hreinskilnislega, það hefði tekið mig í eina mínútu
að í raun muna allt setningafræði, og jafnvel þá að ég myndi sennilega hafa
gert nokkrar innsláttarvillur, svo er þetta tól gagnlegt fyrir hlutum eins og þessi, og það er líka lærdómsríkt.
Þú getur byrjað að álykta hvað setningafræði er
bara með gott lit erfðaskrá að phpMyAdmin er að bæta
fyrir sjón þægindi okkar.
En nú skulum við gera þetta í staðinn.
Leyfðu mér að fara að setja inn flipa efst, og láta mig fara á undan og setja til dæmis
kenni á segjum-reyndar alveg sama.
Það er að fara að sjálfvirkt vöxtur. Ég ætla að láta gagnagrunninn takast á við þetta.
En ég skal vera Davíð, og netfangið mitt ætti að vera malan@harvard.edu.
>> Við skulum fara á undan hér og setja í Mike Smith og annað.
Ég ætla að gefa mér eftirnafn eins og heilbrigður,
og við munum hafa hann vera smith@example.com,
og þá hvar get ég farið næst?
Jæja, það lítur út eins og ferð er á hnappinn til að smella, og voila.
Tilkynning á efstu 2 raðir sett.
Þetta er í raun SQL fyrirspurn.
Það er phpMyAdmin tól framkvæma fyrir mig,
en niðurstaðan, fyrirvara, ef ég fer nú að beit flipa,
er að sjá 2 línur í þessari töflu, mjög minnir fagurfræðilega
í töflunni sem við sáum fyrr um notendur okkar frá pset 7,
einn þeirra er David Malan, eitt þeirra nú er Mike Smith.
En bara til að vera skýr, ég þarf ekki að nota phpMyAdmin,
og örugglega, ert þú að fara að fljótlega að skrifa kóðann fyrir pset 7
þessi gera sjálfvirkan the aðferð af því að bæta við línum, eyða raðir, uppfæra raðir og þess háttar,
svo látið mig fara í staðinn til SQL flipa upp hér
og tegund í velja * frá nemendum þar sem
email = "malan@harvard.edu."
>> Með öðrum orðum ráð nú þú ert
sumir HTML formi og notandinn slær í netfangið þeirra, meðal öðrum sviðum,
og markmiðið er nú í PHP á bak endir kóða
að í raun líta upp önnur atriði sem notanda.
Hvað er fullt nafn þitt? Hvað er kennitala þín?
Þú getur skrifað SQL fyrirspurn svona, velja * frá nemendum
þar email = "malan@harvard.edu."
Og ef ég svo smellt fara, eftir að ég ætti, og reyndar ég fæ, aftur bara einn róður.
Mike er sleppt úr þessari niðurstöðu sett, eins og safn af línum
er almennt kallað, vegna þess að hann hefur ekki sama netfang og ég.
>> Nú, aftur, hér pset 7 þú munt nota phpMyAdmin sem stjórnsýslu tól
og uppeldisfræði tól til að læra á þinn hátt
um allan heim á SQL, en í lok dags
þú ert að fara að skrifa þessar fyrirspurnir innan raunverulegu PHP kóða,
og svo dvöl lag í walkthrough Zamyla í lagi
þar sem þú munt fá skoðunarferð um dreifingu kóða fyrir þetta vandamál setja
þar sem við höfum gefið yður ekki einungis fagurfræði í innskráningarsíðu
og ágætur kynþokkafullur merki sem segir CS50 fjármál, en við höfum einnig gefið þér
fullt af aðgerðum sem munu gera líf þitt svolítið auðveldara.
Við höfum einnig skrifað hluta pset fyrir þig,
tenging hluti af því sérstaklega, að gefa þér tilfinningu um dæmigerðu hönnun
sem notar reyndar stjórnandi, til dæmis, index.php,
login.php og eins, og þá munt þú sjá pset hefur einnig sniðmát skrá
sem hefur öll skoðanir þínar, öll fagurfræði.
Og svo almennt workflow í pset 7 er að fara að vera að
notendur heimsækja stjórnandi gegnum vefslóð í vafra.
Þessi stjórnandi inniheldur PHP kóða sem þú skrifar, og innan PHP kóðann þinn
gæti verið nokkrar línur af SQL hreiður í milli gæsalöppum
og fór í aðgerð við skrifuðum heitir fyrirspurn
sem mun hjálpa þér að tala við gagnagrunn án þess að nota eitthvað eins og
stjórnsýslu tól eins og phpMyAdmin.
>> Þú munt vera fær um að skrifa SQL yfirlýsingar í PHP kóða
og fá til baka a PHP array af niðurstöðu setja,
um raðir sem raunverulega passa að fyrirspurn.
Og álíka verður þú að vera fær um að gera sett inn eða eytt
eða endurnýja eða þess háttar, setningafræði sem er nokkuð svipuð,
og þú munt sjá frá sumir online tilvísanir frá dreifingu kóða
og frá pset pakka sig nákvæmlega hvernig á að fara að gera það.
Gera sér grein fyrir að lokum að við erum í raun bara klóra yfirborði SQL
og MySQL, en afl það er í raun að það frjáls þig
að leggja áherslu á þau vandamál sem þú vilt leysa, notkun tilvikum þú vilt að framkvæma
án þess að þurfa að hafa áhyggjur alveg eins mikið, að minnsta kosti í byrjun,
um hvar og hvernig á að geyma og leita gagnagrunninn,
og þetta er alveg bókstaflega þar sem Facebook sjálft fékk að byrja sína
nota MySQL og nota meira MySQL framreiðslumaður og þá meira MySQL framreiðslumaður
áður en langt fyrr en þeir höfðu þá að virkilega byrja að hugsa hart um hvernig á að
geyma gögn, hvernig á að geyma það enn skilvirkari,
svo jafnvel þótt við tökum sem sjálfsögðum hlut þá staðreynd að Vísitölur og einstök þvingun
og svo framvegis bara að vinna þar er mjög áhugavert samtal
að þetta getur allt að lokum leiða til svo grein fyrir því að við erum bara að klóra yfirborðið
af því sem getur að lokum fyrir þig eða verkefni þín verða nokkuð stór gögn.
>> Með því að segja, við skulum enda hér, og við munum sjá þig í næstu viku.
[CS50.TV]