[Powered by Google Translate] [8 savaitė, Tęsinys]
[David J. Malan] [Harvardo universiteto]
[Tai CS50.] [CS50.TV]
>> Tai CS50, todėl tai yra 8 Savaitės čia pabaiga.
Mes, žinoma, buvo šiek tiek per uraganą anksčiau šią savaitę,
kad dabar tai tikrai tik tu ir aš Ši paskaita salėje,
tačiau šiandien mes ir toliau mūsų pokalbį apie PHP
ir apie web programavimą apskritai, ir mes taip pat pristatyti idėją
duomenų bazių, ypač vienas vadinamas MySQL, kuris yra gana populiarus šių dienų,
didele dalimi dėl jo mastelio, taip pat dėl ​​to, kad jos yra nemokama ir atviro kodo.
>> Bet pirmiausia, kur mes baigėte paskutinį kartą išvaizdą.
Prisiminkite, kad mes ieškojome kelių Frosh momentiniams žinučių pavyzdžių,
ir tai buvo šlykštus forma, kad aš atėjau su 15 + metų
norint turėti studentus į universiteto pirmakursis vidines sporto registre
be realiai Persikelti nebėra per kiemą Wigglesworth
skaidrių fizinį popieriaus lapo apačioje kai Procter duris.
Vietoj to mes persikėlė viską internetu, bet padaryti, kad mums reikia pasinaudoti
kelias technologijas, todėl vienas, mums reikia HTML Hypertext Markup Language,
o tai vėlgi tai yra žymėjimo kalba, su kuria jūs tinklalapius struktūriškai.
>> Naudojant CSS tiek šių dienų, Cascading Style Sheets,
, kuriuo mes naudojame stylizations tinklalapį naudojant šiek tiek kitokią sintaksę,
kadangi HTML buvo visa informacija apie jų struktūrą.
Mums taip pat reikia įvesti programavimo kalbą.
Šiuo atveju, mes naudoti PHP ir PHP leidžia mums
dinamiškai išvesties turinio, taip pat daryti programinius dalykus, pavyzdžiui,
siųsti elektroninius laiškus, kaip buvo atveju pastabos, mes palikome praėjusią savaitę.
>> Prisiminkite, kad šis kodeksas buvo 2 dalis.
Vienas, mes turėjome froshims3.php
ir tai buvo daugiausia žymėjimo HTML formą viduje ji,
Odrobineczkę CSS čia, stiliaus atributais
taip, kad forma pati būtų orientuota į puslapį, bet be to
mes turėjome atstovai formų įvedimo, į teksto lauką, žymėjimą,
kai radijo mygtukus, pasirinkite meniu ir mygtuką "Siųsti".
Ir per šią formą, mes pateikti failą, kuris, matyt, buvo vadinamas register3.php
kuri pati atrodė šiek tiek kažką panašaus į tai.
Dabar, dauguma, prisiminti, register3.php kodas buvo visa informacija apie elektroninio pašto.
Tai šiek tiek patvirtinimo formą, kuri buvo pateikta įsitikinti,
kad laukai buvo iš tikrųjų su sąlyga, kad buvo tikimasi.
Tada mes vadinami PHP funkcijas, naudojant šiek tiek naujos sintaksės,
nors tai pasiskolintas iš C
>> Ši rodyklė operatorius leidžia mums pasinaudoti Objektinis programavimas kažką vadinama.
Mes ne eiti į bet išsamiai čia, bet žinau, dabar
tai būdas turėti funkcijas, susijusias su objektais,
kurios yra specialaus tipo struktūra, kaip matėme C.
Bet dabar, tiesiog dėl tikėjimo, kad tai yra teisinga sintaksė naudoti
kai naudojant biblioteką kaip šis phpmailer bibliotekoje.
Ir tada šio failo pabaigoje mes turėjome dinamiškai generuojami laišką
kad gavo išsiųstas į mano jharvard@cs50.net sąskaitą
iš mano jharvard@cs50.net sąskaitą,
ir mes apie tai vartotojui, kad jie buvo įregistruotas šio sporto.
Kad yra gana daug, ką infrastruktūros valdytojai puslapį Frosh padarė visus tuos metus
kai aš jį įgyvendino, suteikta kita kalba,
bet tai rodo, tai turbūt galios, kad jūs turite
dabar, kad jūs galite išreikšti save ne tik programiškai
žemo lygio kalba kaip C, bet daug aukštesnio lygio
su šiais labai realaus pasaulio, pavyzdžiui, elektroninio pašto, kad iš tikrųjų išspręsti
keletas realių pasaulio problemų.
>> Dabar, žinoma, nors aš naudoju šį scenarijų sukurti dar
laiškus dinamiškai jharvard@cs50.net, kuris iš tiesų yra sąskaitos
kad aš turiu priėjimą prie, nereikia būti labai atsargūs, kad siųsti
paštu tik iš sąskaitų, kurie iš tikrųjų savo,
kitaip dalykų jums į karšto vandens, tiek gyvenime.
Turint tai sakė, tegul dabar perėjimas į kitą problemą spręsti apskritai,
kad saugoti valstybėmis.
Dabar, ką tai iš tikrųjų reiškia?
HTTP, šis hiperteksto perdavimo protokolas,
iš tikrųjų yra be pilietybės protokolas, ir ką tai reiškia, kad
kai jūs atsigriebti Google.com kažką panašaus ir tada paspauskite Enter
paprastai jūsų naršyklė turi kažkokį verpimo piktogramą, kad tada
rezultatai kai kurių interneto puslapyje parsisiųsti,
ir tada, kad šiek tiek piktograma sustoja verpimo, ir kad iš tiesų rodo
HTTP baigė kažkokį ryšį su serveriu ir viskas.
HTTP yra be pilietybės prasme, kad ji neteigia
nuolatinis ryšys su serveriu, tokiu pat būdu "Skype" nėra
arba gchat daro, nes su HTTP
daroma prielaida, kad, kai jūs paėmė tinklalapį, kad viskas.
>> Dabar iš tikrųjų šių dienų svetainių, kaip "Facebook" ir "Google Maps"
ir "Twitter" ir kaip ten yra daug daugiau dinamiškumo, kad
net po to, piktograma sustoja verpimui, galite iš tikrųjų gauti daugiau atnaujinimų
serverio, daugiau "Twitter", "Facebook" Būsenos atnaujinimai ir pan.
Bet net ir tai naudojant techniką, kad mes kalbame apie savaitę ar dvi
žinomas kaip Ajax, naudojant kalba vadinama "JavaScript",
bet dienos pabaigoje, HTTP yra be pilietybės.
Ir dar, jei norite kažkaip prisiminti dalykų apie vartotoją
net po to, kai jie jau atjungtas nuo jūsų serveryje
PHP suteikti jums tai daryti
, nes, kaip matėme paskutinį kartą, PHP turi daug superglobals
superglobal, vėlgi, speciali pasaulio kintamasis
kad perduodamas žiniatinklio serverio ir PHP pati.
>> Jums nereikia nieko daryti, įdėti vertybes,
mes matėme iki šiol tarp superglobals GET ir POST
kur yra formos laukus automatiškai už jus,
taip pat, kad mes nematėme dar pora kitų.
Viduje $ _SERVER yra kai kurie specialūs kintamieji, susiję su paties serverio.
Kas yra IP adresas, protokolas, HTTP ar HTTPS Jūs naudojatės,
užklausos metodas jūs naudojate ir kaip, kad yra keletas įdomus,
sultingas informacija apie serverį, ir iš tiesų, ten vartotojas taip pat.
Yra $ _cookie, kur yra šie dalykai vadinami Slapukai saugomi.
Mes ne praleisti laiką slapukus save šiandien
bet žinau, kad Slapukas - tai tik maža dalis informacijos
kad žiniatinklio serveris gali sodinti interneto naršyklėje
ir, savo ruožtu savo RAM arba savo kompiuterio kietajame diske
saugoti informaciją apie klientą, pavyzdžiui, savo vartotojo vardą
taip, kad jie neturi įveskite jį kiekvieną kartą prisijungiant arba kai
unikalus numeris, ar to vartotojo identifikatorius
taip, kad jūs neturite kvaršinti jiems klausimus apie tos pačios rūšies
lengvatos ateityje, tačiau dauguma interesų
dabar yra $ _SESSION.
>> Ši superglobal, kuris, kaip ir kiti, yra perduodamas automatiškai by PHP
kai rašote PHP-svetaines
galima laikyti viską, ką nori, stygos, sveikieji skaičiai,
plaukiojantieji taškų, vertybes, masyvai, objektai,
tikrai nieko, kad jūs norite, ir jis leidžia jums laikyti jį tokiu būdu,
kad net jei vartotojas apsilanko dabar ir tada
grįžta minutę iš dabar arba 5 minutes nuo dabar, nes
jie imasi savo laiką prieš paspaudžiant nors kitą nuorodą
PHP bus užtikrinti, kad viskas, ką jūs įtraukėte į tos sesijos superglobal
per minutę arba 5 minutes vis dar bus ten, kai vartotojas grįžta.
Ir po kapotu tai superglobal vykdomi atliekant
tie dalykai vadinama slapukus, bet dabar, tai tik abstrakcija
, kuriuo tarsi programine krepšelį ekvivalentu.
, Ką jūs, programuotojas, įdėti, kad
superglobal Association masyvas ten bus keletas minučių vėliau
, kol nepašalinamas arba tol, kol vartotojas meta savo naršyklę apskritai.
>> Paimkime bent pavyzdį, kaip tai, ką iš tikrųjų yra naudojamas išvaizdą.
Counter.php tarp šiandienos kodo gabalus
mes turime šią eilutę.
Tuo šios bylos pradžios mes turime mėlynos komentarus, kurie yra neįdomių dabar krūva.
, Bet atitinka 13, mes turime naują eilutę,
session_start, ir kad iš tikrųjų tai, ką ji sako.
Jis prasideda sesijas.
Tai leidžia jums naudoti, kad didelis superglobal $ _SESSION, ir tai taip paprasta, kaip kad.
Dabar, jei mes toliau pažvelgti line 16, pabandykime išsiaiškinti, ką šis tinklalapis ketinate daryti.
If (isset ($ _SESSION ["skaitiklis"), tada eiti į priekį
ir saugoti kovos kintamasis, mažosiomis skaitiklis,
$ _SESSION ["Skaitiklis"].
Tai, atrodo, skelbiantis vietos kintamasis vadinamas skaitiklis
kurio viduje išleisti viską, kas yra viduje superglobal kopiją
vadinamas sesija vietos "Counter".
Kita, matyt, tai šiek tiek vietos kintamąjį skaitiklis, yra inicializuoti iki 0.
>> Bet tada yra tik keletas eilučių vėliau 26 įspėjimo, kad sesijos kopija, skaitiklis,
jos pagrindinis, turi naują priskirta vertė, kuri yra jo dabartinė vertė plius 1.
Trumpai tariant, ši byla, atrodo, turi būti atnaujinti
skaitiklis, kad saugomas viduje sesijos superglobal
, jį didinant iki 1, bet jis pirmą kartą pasilieka kopiją su anksčiau buvusia reikšme
saugodami ją į vietinį kintamąjį, vadinamas $ skaitiklis,
ir tada žemyn čia pažiūrėkime, kas lieka.
Pasirodo, tai gana daug tik HTML.
Pasibaigus šio puslapio apačioje matome 37 eilutėje, kad aš aplankė šią svetainę
kovoti skaičių kartų, todėl yra pora įdomių funkcijų.
Vienas iš jų, tai yra aiškiai kintamasis, bet jo nepakanka tiesiog įdėti
$ Skaitiklis savo HTML, nes, žinoma, kūno
jei tai tik ten tarp jūsų HTML PHP ketina daryti prielaidą, kad tik HTML.
Jūs tiesiog norite $ skaitiklis turi būti spausdinami ant ekrano.
>> Bet vietoj to, nuleisti į režimo PHP
su šia sintaksę gabalas, mes galime dinamiškai įterpti reikšmės
labai panašus į dvasią, ką mes padarėme paskutinį kartą
įterpiant vertybes stygos.
Tiesą sakant, tai yra tik trumpa notacijos sakydamas kažką panašaus į tai pažodžiui,
print ($ skaitiklis) ar net kažkas panašaus printf (% s, counter),
ar net, kaip tu gali matyti internetu arba vadovėliuose,
PHP funkcija vadinama aidas
, kurie daro tą patį, ir visi iš jų yra tiesiog ilgiau kalbantis būdų
pasakyti, <=
Šiuo atveju jums nereikia įdėti
žodis PHP po klaustuko.
Tai yra sutrumpinimas notacijos, dar kartą, ką mes ką tik matė prieš akimirką
, kuris atkartodamas tam tikrą vertę.
>> Pažiūrėkime, ką galutinis rezultatas iš tikrųjų yra.
Leiskite man eiti per į mūsų counter.php failo,
ir mes pamatyti, kad Dovydas tiesiog padarė klaidą žaisti su kodu.
Eikime fix, viskas, ką jis įsukus
ir klaida, atrodo, būti ten, dingo, on line 37.
Atsižvelgiant į šio puslapio viršuje, aš lankėsi šioje svetainėje: 0 kartus.
Na, galime eiti į priekį ir dabar, o naršyklės viršuje spauskite
iš naujo įkelkite piktogramą ir aš spustelėkite perkrauti,
o dabar aš aplankė svetainės 1 kartą, 2, 3, 4, 5, 6, 7, 8.
Ir iš tiesų, jei pažvelgsime į šio puslapio šaltinio tikrasis šaltinis kodas keičiasi,
ir pastebėti visiškai nėra bet kokio PHP, ir tai todėl, kad
PHP kodas yra vertinamos arba aiškinama serverio pusės,
ir kad tai reiškia, kad produkcija yra PHP scenarijų, kas galiausiai išsiųstas į naršyklę,
, kuris šiuo atveju yra kai grynasis HTML, o kai žalias tekstas.
Kas čia vyksta?
>> Na, gana keletą eilučių kodo, aš galiu laikyti
nuolat per keletą sekundžių, arba jei mes laukėme pakankamai ilgai,
minučių, net valandas, kai vertė taip, kad HTTP
atrodo taip, tarsi mes lieka Stateful
šis ryšys su serveriu, ir ji tiesiog prisiminti, ką aš pasakiau paskutinį kartą,
bet iš tikrųjų ten visa krūva sudėtingumo vyksta po gaubtu
įtraukti slapukus, kurie padeda PHP duok man šitą iliuziją
šio krepšelį kaip funkcija.
Dabar, trivialus pavyzdys, kai mes tiesiog saugoti sveikasis skaičius,
bet, kad funkcija grįš būti labai vertingas
kai mes pradedame kalbėti apie sudėtingesnių projektų,
tarp jų problema rinkinys 7.
Tai jūsų labai paskutinė problema, nustatyti CS50.
Aš žinau, tai taip liūdna, bet ką jūs rasite, yra tai, kad mes ketiname sudaryti
tai semestro dalis iš tikrųjų pereinate
nuo C, be abejo, PHP
tačiau naudojant kai kurie iš tų pačių pagrindų
mes kalbėjome apie tam tikrą laiką.
>> Su pset 7 tikslas yra įgyvendinti CS50 Finansai,
, kas jūsų versija Yahoo Finance "arba" Google Finance
ar net Etrade.com, kuriuo turite galimybę
ieškoti akcijų kainas konkrečiais simboliais, bet net daugiau nei
jūs turite galimybę "pirkti" ir "parduoti" atsargas
kuriomis prekiaujama įvairių vertybinių popierių biržose, nes pagrindiniame puslapyje
čia rodo, kokie iš tiesų yra mastas, kuriuo mes pradėjome
problemą, jums, jūs turite prisijungimo formą, kurioje prašoma įvesti vartotojo vardą ir slaptažodį.
Ji turi mygtuką "Siųsti", bet po to, kaip mes galų gale pamatyti,
nėra nieko, kas iš tikrųjų vyksta po kapotu dar, nes
lieka jums įgyvendinti galimybę įregistruoti nauji vartotojai
galimybė pirkti akcijas, parduoti atsargas,
iš tikrųjų atrodo dabartines akcijų kainas.
>> Ir iš tiesų, tai bus kaip realiame pasaulyje, kaip įmanoma, nes mes padarėme
kenksmingą kodą, kuris leis jums tik vieną funkciją
užklausą Yahoo Finance, kuri nuostabiai daro laisvos duomenis
akcijų kainos, remiantis akcijų simbolis arba simboliu, žiūrint,
ir jums dabartinis akcijų kursas dienos.
Duomenys, jūs iš tikrųjų matome šioje konkrečioje pset bus
apie realiame pasaulyje, kaip jis gali gauti taip, kad jūs iš tikrųjų sąsajos
su realaus pasaulio atsargų, realiame pasaulyje kainos,
ir matysime, kiek pinigų galite padaryti galbūt
žaisti su savo problemą, per ateinančius keletą dienų.
>> Bet tegul pirma nustatyti etape, kaip sukurti kažką, kad tikrai sudėtingiau
, nei counter.php, tai sudėtingesnis nei bet kuris iš Frosh momentiniams žinučių pavyzdžių iki šiol,
ir pabandykime įvesti keletą paradigmas čia, kad leidžia mums
tiek. 7 pset ir gal jūsų galutinio projekto, jei jūs darote kažką žiniatinklio
išlaikyti savo kodą, gerai organizuota, išlaikyti save sveiko proto,
ir imtis žingsnį link bendradarbiauja, ar CS50 galutinę projekto
ar po, jei ir toliau programuoti kažką ateityje.
Ten tai bendras dizainas paradigma
informatikos ir programinės įrangos kūrimo apskritai
žinomas kaip MVC, modelis vaizdas valdiklio,
ir tai yra kvailas akronimas, kuris apibūdina labai gražią idėją,
kuris yra programos įvairių aspektų atskyrimas,
konkrečiai išlaikyti atskirą logika ar verslo logiką interneto svetainėje
todėl, kad kas nors, kuris apima tokius dalykus kaip
skambinimo funkcijos ir užklausų duomenų bazių ir pan
vyksta ne tarp savo HTML
, o atskiruose failuose, ir iš tiesų, ten tai vienas failas
paprastai, kad jūs vadinamas reguliatorius
tai tikrai už operacijos smegenys, ir mes pamatyti pavyzdį
tai vos akimirką.
>> Yra modelis, programavimo kodą
kad tai kalbėtis su savo duomenų bazes, kad pasakoja Yahoo Finance ir panašios,
ir ten V MVC, nuomonę,
stuff, kad estetika, bylos, kurią faktiškai yra susiję
jūsų HTML, o gal jūsų CSS ir panašiai.
Idėja, kaip šį paveiksliuką rodo, kad duomenų valdytojas
yra failas, nes mes netrukus matysime, ir kaip jums ypač matyti pset 7,
kad pasaulis pasakoja per savo interneto naršyklių.
Kad yra failas, kuris gauna aplankė viešąjį internetą,
tačiau duomenų valdytojas derybas potencialiai modelio,
kuriame yra viena ar daugiau kitų failų, kurie yra kodas, susijusi su duomenų,
kodas susiję su duomenų bazių ir, pavyzdžiui, ir tada ji pasakoja
Kontrolieriaus vienas arba keli kiti failai žinomas kaip nuomonėmis,
kurie yra iš tinklalapio estetika, šablonus rūšių,
kad gali imtis tam tikrų kaip įvesties duomenis, bet ne dienos pabaigoje
tik logika viduje siekiant turėtų būti šių duomenų atvaizdavimas,
per kilpą iteravimu ir spjaudytis iš kai
HTML perdavimų, ar net kažką panašaus į PDF.
>> Kas yra malonu apie MVC yra, kad jūs galite turėti skirtingus požiūrius
įtaiso tipo, remiantis tipo failo formatu, kad jūs iš tikrųjų grindžiamas
noriu parodyti, kad vartotojas.
Leiskite pažvelgti į keletą vis labiau sudėtingų ir gerai suprojektuoti pavyzdžių
pradedant pirma versija 0 čia.
Leiskite man eiti į priekį ir atverti mūsų MVC kataloge šiandien
failą pavadinimu index.php kataloge 0.
Atkreipkite dėmesį, tai yra super paprasta ir labai underwhelming svetainė
tai tarsi pagrindinio puslapio 0 versijos CS50
ir pastebėsite, kaip mes turime nuorodą į paskaitas, mes turime nuorodą į Syllabus
ir jei po nuorodą į paskaitas įspėjimo, kad URL
iki viršaus vyksta pakeisti į lectures.php.
Jei aš sekite nuorodą Savaitė 1 įspėjimo, kad URL pakeitimai į week1.php.
Atrodo, kad čia gana paprasta hierarchinė struktūra.
>> Paimkime greitai pažvelgti apačioje gaubtu, kaip tai išdėstyta,
ir iš tiesų, jei aš žiūriu į index.php tai gana paprasta.
Tiesą sakant, nors aš tai pavadino PHP failas nėra tikrasis programinis kodas.
Yra komentaras, kad aš parašiau čia PHP tik todėl vartotojas neturi galų gale pamatyti jį.
Žinoma, kaip ir anksčiau, nieko, kad tarp PHP žymių
bus aiškinama, net jei tai komentaras, ir aiškinti komentarą
reiškia tik tai, kad jį išmeskite bent dienos pabaigoje, o ne realiai
siųsti jį į naršyklę, kad viskas čia yra tik estetika.
Jei aš atverti panašiai lectures.php tai taip pat yra tik sunkiai koduojami failas.
Taip atsitinka, kad kažką. Php,
bet jis tikrai yra tik html, ir week1.php, week2.php
panašiai yra tik žymėjimo, todėl nėra šio dizaino trūkumų krūva.
Viena, tai didžiulis copy / paste.
Net jei vienintelis dalykas, kuris keičiasi tarp šių bylų yra netvarkingai sąrašas
Li žodžius, aš vis dėlto turiu dok tipą, HTML, galva,
pavadinimas, netoli kūno, netoli HTML ir daugiau
kiekvieną failą, o tai reiškia, kad jei aš kada nors nori pertvarkyti
šio tinklalapio, arba restylize turiu eiti ir keisti
visi šių rinkmenų rankiniu būdu arba su kai masinis rasti ir pakeisti.
>> Paimkime žingsnis link protingesni, ilgiau galvoja dizaino versijos 1 čia
o kaip už mane, kad mes įtraukti, kad būtų galima žaisti kartu su
tai daugiau laisvalaikio namuose pranešimo, kad mes turime čia
failus šios svetainės versijos 1 santrauka,
ir atrodo, kad aš jį ant savęs veiksnys
kai bendras kodeksas, header.php ir footer.php.
Na, tegul, kas viduje pirmasis iš tų išvaizdą.
Header.php atrodo pažįstamas,
bet pastebėsite, kur ji gauti nukirto?
Iškart po eilutę 19, todėl, kad viskas, kas buvo įprasta
nuo failus index.php, lectures.php,
week1 ir week2.php ankstesniame pavyzdyje.
Ką aš padariau buvo kopija ir supjaustyti viskas, kas buvo įprasta visus tuos failus,
įdėti ją į atskirą antraštės faile, ir taip footer.php
, aš taikyti tą patį principą, pagal kurį tik įdomių linijų
į footer.php yra šių dviejų, arti kūno ir uždaryti HTML.
>> Bet ką tai reiškia dabar yra tai, kad naujos redakcijos
index.php įspėjimo kiek paprastesnis jis gali gauti.
Natūralu, šiek tiek daugiau paslaptingas ieškote, šiek tiek mažiau intuityvus
sekti iš viršaus į apačią, o mano Dieve, visa to atleidimo iš darbo dabar dingo.
Mes reikalaujame, kad, naudojant PHP funkciją, tiesiog vadinamas reikalauja iki viršaus,
kuris yra labai primenantis, prisiminti, C "# include mechanizmą.
Mes reikalaujame, kad header.php viršuje.
Mes reikalauja footer.php apačioje, ir vienintelis dalykas, kuris yra kitoks
arba ypatingo apie šį failą turinio, kuris reiškia būti unikalus.
Jei aš turiu eiti į, tarkim, lectures.php, tas pats principas taikomas.
Vėlgi, kai iki viršaus komentarai, bet tada man reikia antraštę, reikia poraštę,
ir tarp jų, tai tik turinys, kuris iš tikrųjų pasikeitė.
Ir jei mes pažvelgė į 1 savaitė ir savaitė 2 mes norime pamatyti
kad tas pats principas buvo taikomas.
Na, mes ne labai pavargau.
>> Paimkime bent 2 versija išvaizdą, kuri turi panašią struktūrą,
, bet pastebėsite, dabar aš pristatė ką nors kita.
10 eilutės aš įvestas helpers.php
kuris, matyt, yra pagalbininkas funkcijas.
Pagalbininkas funkcija yra gana trumpas funkcija
, kad jums parašyti jums padėti įvairiose vietose,
ir pažiūrėkime, kas viduje helpers.php.
Šiuo atveju, atrodo, kad jis turi 2 funkcijas.
Prisiminkite, kitą dieną su mūsų kubo pavyzdžiui
galite nustatyti savo funkcijas PHP, ir ką aš padariau dabar aš
apibrėžtos funkcijos vadinamas padaryti apačia ir teikti antraštę,
iš kurių pirmasis mano parametras vadinamas duomenis,
, kurio numatytoji reikšmė yra tuščias masyvas, kaip siūloma čia,
ir mes iš tikrųjų gali rašyti tai net daugiau glaustai į naujausią versiją PHP
sakydamas atvirą kvadratinių kronšteiną, uždarytas kvadratinių laikiklį.
Tai reiškia, kad tuščias masyvas 0 dydžio, bet vis tiek masyvą.
>> Ši ištrauka funkcija yra šiek tiek ypatingas tuo, kad
ką ji daro, ji mano, kaip savo argumentą Association masyvas
, kuri turi 0 arba daugiau pagrindinių vertės poras, ir, jei turite Foo mygtuką
ir juostoje "Extract" funkcija vertė
sukuria situaciją, kai dabar, nes linijos 11,
turite vietos kintamasis vadinamas $ foo, kurio vertė yra baras.
Ir jei jūs turėjo daugiau raktus ir reikšmes duomenų masyvas
taip pat jie turėtų būti paimti į vietos sritį
arba pavadinimas erdvė, kad footer.php ir
pati idėja žemyn čia, kad header.php
turi prieigą prie šių kintamųjų.
Tiesą sakant, leiskite man vėl atverti header.php
ir atkreipti dėmesį į tai, kas atrodo, kad šioje versijoje.
>> Užuot sunku kodavimo CS50 už kiekvieną puslapį pavadinimu
pastebėsite, dinamiškumą, tai įmanoma dabar.
Atitinka 5 Aš pakartodamas tituliniame kintamąjį,
bet pirmiausia aš artimųjų, kad pavadinimas kintamąjį funkcija vadinama htmlspecialchars.
Kvailas pavadinimas funkcijos, tol, kol ji yra, bet tai tikrai, ką ji sako.
Ji užtikrina, kad visi specialių simbolių
į eilutę, kad buvo praėję tinkamai pabėgo HTML.
Iš tikrųjų tai yra būdas išvengti kažką vadinama Cross Site Scripting ataka
pagal kurį kas nors gali piktybiškai ar netyčia
švirkšti savo HTML kodą į jūsų svetainę
pagal įdėjimą į tam tikrą formą, pavyzdžiui,
kažkas, kad buvo ne visai nesitikėjote gauti, ypač "JavaScript" kodas,
kaip mes kalbame apie per savaitę ar netgi dvejų.
>> Tai dabar header.php, tai vaizdas
ta prasme, kad leidžia jums peržiūrėti estetiškai kai duomenų rinkinio turinį.
Bet tiksliau, yra šablonas.
Tai tarsi planą, dabar, ką mes norime kiekvieno puslapio antraštėje atrodyti,
bet ten kai dinamiškumas, kad mes norime būti dinamiškai įterpiamas pavadinimas
dėl pavadinimo kintamojo
, kurie buvo išgauti dar kartą, kai mes vadinami,
tinkas antraštės funkcija.
Dabar, jei mes pažvelgė į apačią, tinko, tikrai ne daug naudoti, kad dabar
nes footer.php kokia ne dinamiškumas.
Gali būti, bet šiuo metu ji sunkiai koduojami sąrašas 2 žymeles,
bet pati idėja, kad iš tikrųjų rodo, kodėl
Ar mes gaišti laiko turintys render antraštės ir poraštės funkciją render?
Leiskite man eiti, o dabar į 3 versija,
ir 3 pagalbininkai versiją aš nusprendė dar labiau supaprastinti.
>> Tegul man turi vieną render funkciją.
Leiskite man, kad jis būtų dar vienas argumentas, šiuo metu vadinamas šablonas,
, kuris yra skirtas būti šablono pavadinimą,
ir tada aš Jungiant įžūliai PHP tas kintamo dydžio vertės,
ir tada, jei jis egzistuoja foo.php, bar.php arba header.php ir footer.php
tada aš ruošiuosi eiti į priekį ir išskleisti kintamųjų duomenis
ir reikalauti, kad kelias.
Kitaip tariant, tai dabar, jei aš atverti index.php
pastebėti, kad aš ne skambinti render header nebėra.
Aš tiesiog paskambinkite padaryti, bet aš pereiti kotiruojamos antraštės vertės
aiškiai nustatyti, kuriai šablonas aš iš tikrųjų norite įkelti.
>> Tada per čia pastebėti, ką aš darau.
Aš einančios į dinamiškai nuosavybės rakte,
CS50 vertė, o tai taip pat, kaip matėme anksčiau,
galėtų būti labiau prigludusi į naujausią versiją PHP
kur galiu pakeisti masyvo funkciją su laužtiniuose skliaustuose,
siūlau dar skaitoma ir tikrai
šiek tiek lengviau tipas.
Ir, žinoma, su tinko poraštės kvietimo apačioje,
mes neturime nerimauti einančios į antrąjį argumentą, ne visi, ne masyvą,
nes ten nieko dinamiškas viduje tos poraštę.
Tai tik keli artimi HTML tegai.
Geras, mes žingsnius tikrai valymo dalykų čia,
bet leiskite man atidaryti 2 galutinis pavyzdžius.
Tai vienas, numeris 4, pranešimas, kad aš padarė sąmoningą sprendimą dabar
patobulinti ankstesniame pavyzdyje pagaliau naudoti tam tikrą hierarchiją su mano failus.
>> Atkreipkite dėmesį, kad šioje santraukoje, tai mane, aš įdiegėme
katalogą ir šablonų katalogą
, kurio turinys bus tai, ką aš noriu įtraukti
ir šablonai, kad aš noriu padaryti, atitinkamai.
Tai tikrai man buvo analinis ir stengiasi, kad viskas būtų tvarkinga,
saugoti susijusius failus kartu, bet galutinis rezultatas
yra tai, kad dabar mes turime šiek tiek tidier setup, bet mes turime atsiminti dabar
, pavyzdžiui, index.php
, jei mums reikalingas failo helpers.php
mes turime dabar reikalauja per includes / helpers.php
, o ne tiesiog pasakyti helpers.php, nes dabar tai tikrai sub kataloge.
Dabar, kaip panaikinti, jūs pamatysite šiuos pavyzdžius, ir kai kurie kiti
funkcijas, pavyzdžiui, reikalauja, reikalauja vieną kartą.
Yra tikrai pati funkcija vadinama įtraukti, ir visi jie turi šiek tiek kitokį elgesį.
Čia sakau pareikalauti vieną kartą padaryti super aišku, kad aš tik noriu tiems,
pagalbininkai savo projektą vieną kartą.
Bet jei aš atsargiai ir, jei aš iš tikrųjų galvoja per mano logika tinkamai
Ji turėtų pakakti per tiesiog pasakyti, kad reikalauja, kad iki viršaus
taip ilgai, kaip aš ne atsitiktinai reikalauti, kad tą patį failą kitur.
Tiesą sakant, tai yra šiek tiek daugiau veiksmingas būdas daryti dalykus, tada naudojant
reikalauja, kad vieną kartą, todėl aš diferentą jį žemyn, tiesiog reikia.
>> Paimkime dar vieną žingsnį.
Paskutinis pavyzdys dabar versija 5, yra dar švaresnis aplanką hierarchija.
Atkreipkite dėmesį, ką aš padariau čia už mane šioje galutinėje versijoje
dabar aš turiu HTML kataloge, kurį aš turėjau visą šį laiką,
bet viduje ten dabar yra tik index.php, lectures.php,
week1.php ir week2.php.
Apima, katalogas šiuo metu gyvena kartu HTML kataloge,
tame pačiame lygyje kaip broliai ir seserys, taip sakant.
Todėl nėra šablonai.
Raktas išsinešimui čia yra tai, aš pristatė šiek tiek daugiau struktūros,
tačiau dabar pagrindinis bruožas yra, kad tik bylos
kad turi būti pasiekiamas internetu, viešai adresuojamos
dėl viešojo interneto URL yra mano HTML kataloge.
>> Tuo tarpu kitos bylos, helpers.php, footer.php
header.php, yra neabejotinai gal jautresnis,
gal pagalbininkai iš tikrųjų turi vartotojo vardus ir slaptažodžius arba kai intelektinės
mano nuosavybė, veikia, aš tikrai nenoriu parodyti pasauliui, net jei netyčia.
Tai gera praktika išlaikyti viešojo HTML kataloge
visus failus, kad nereikia būti vieša.
Viskas, ką turite daryti tokiu atveju, kai žiūri į, pavyzdžiui,
HTML aplankas index.php failą,
mes tiesiog turime būti šiek tiek atsargūs, kai reikalaujama,
arba reikalauti, kad kartą šį failą.
Aš pirmiausia reikia padaryti .. eiti į pagrindinį katalogą,
tada nereikia / includes / helpers.php
pasinerti atgal gauti failą, kad man rūpi.
>> Bet tada apie MVC klausimai
tai gana paprasta įsikūnijimas?
Ir leiskite man aiškiai pasakyti, kad mes sutelktas gana tiek
V čia, pareikšti savo nuomonę ir faktoringo iš šių šablonų.
Mes ne tikrai išsiskiria iš C M tik dar.
Tiesą sakant, ten tikrai yra čia ne M, ir net mūsų C
valdytojas, tikrai ne daro visi, kad daug, bet gausite daug daugiau
susipažinę su tų 2 raides nuo MVC,
arba, tiksliau, jūs gausite daug labiau susipažinę su C
MVC problemą, 7, todėl yra daugiau, kad dėl horizonto.
Turite klausimų?
Yra tikrai niekas čia.
>> Gerai, tegul dabar pereiti į antrosios ir paskutinės tema šiandien.
Kad yra duomenų bazės įvedimas.
Iki šio punkto mes turėjo keletą būdų, kaip saugoti duomenis.
Mes naudojami kintamieji.
Atgal į c failas, I / O diskusija pradėjome naudoti tekstinius failus
ir naudojant failus, pavyzdžiui, fprintf, ir tada mes net pradėjo
kalbame apie CSV failus šiek tiek, kableliais atskirtos reikšmės,
kad visi jie leido duomenys saugomi
arba ne nuolatos arba nuolatos.
Bet net ir CSV ataskaitose iš tiesų nėra palanki ieškoti
ir įterpti ir ištrinti.
Tai tiesiog kvailas tekstinis failas, atskirti kableliais
eilutę eilutėje esančią eilutę, todėl, jei norite
ieškoti, kad byla geriausia, ką galite padaryti, tikrai yra tiesinė paieška.
Jūs turite pradėti failo viršuje skaityti visa tai,
ir surasti šiek tiek interesų vertė.
Jei norite įterpti į jį, jūs turite padaryti tą patį,
iteravimu per jį ir į tam tikroje vietoje,
ir iš tikrųjų, jūs turite padaryti viską, ieško sau logika.
>> Jūs negalite padaryti protingas modelio atitikimo CSV failą, nebent jūs patys rašyti kodą.
Jūs negalite padaryti filtruoja CSV failą
, nebent jūs patys rašyti kodą.
Ar nebūtų puiku, jei kas nors įdėti pastangų
iš tikrųjų ieško lengva ir įterpimo lengva
ir išbraukta ir atnaujinti ir tt?
Tai yra būtent tai, kas duomenų bazė yra.
SQL Structured Query Language, yra dar kita kalba
kad mes įvesti čia šiandien, bet tai taip pat yra gana prieinama,
ir ką mes iš tikrųjų ketiname daryti, tai tiesiog skinti iš jo kai kurie svarbiausi
kad pset 7 savybes, ir, jei jums padaryti kažką žiniatinklio,
jūsų galutinis projektas, jūs turite galimybę išreikšti save
duomenų užklausų.
Jūs turite galimybę laikyti šiek tiek arba daug duomenų
daug labiau struktūrizuotą taip, kad dienos pabaigoje
padaryti jūsų gyvenimą lengviau, nes su SQL galite išreikšti save
daug tiksliau, daug daugiau metodiškai, siekiant
grįžti šiek tiek duomenų iš didesnio tekstyno duomenų poaibį.
>> Galite manyti, kad duomenų bazės, šiuo atveju, SQL duomenų bazės, tikrai kaip "Excel"
(arba) numeriai, kur jis yra skaičiuoklės,
, o gal ir kelias lenteles, ir skaičiuoklę, žinoma,
eilučių ir stulpelių, ir tai todėl, kad
SQL duomenų bazės yra reliacinės, Reliacinė ta prasme,
, kad jie saugo duomenis šiose lentelėse,
eilučių ir stulpelių.
Jie yra našesni nei kažką panašaus į skaičiuoklę,
ir skaičiuoklės yra skirtas būti naudojamas žmogaus.
Duomenų bazė yra skirtas būti naudojamas programuotojas
rašyti kodą, prieš tai, kad duomenų bazės įsikūnijimas
bus arba komandinės eilutės.
>> Vienas iš populiariausių reliacinėse duomenų bazėse ten, vėlgi, MySQL,
puikiai, labai pažangiausi, ir tai, ką
"Facebook" labai anksti ir tam tikru mastu naudojamas dar ir šiandien
saugoti savo duomenų daug, ir mes pamatyti, per akimirką
kad naudojant gana paprastas komandas
mes galime pasirinkti duomenis, įrašyti duomenis, atnaujinti duomenis,
ištrinti duomenis ir panašūs, bet, laimei, yra daugiau vartotojo sąsaja,
ne tik rašyti juoda ir balta eilutę.
Mes naudojame nemokamas įrankis, vadinamas phpMyAdmin. Pset 7 ir už jos ribų.
Vardas yra atsitiktinis.
Įrankis atsitinka, turi būti įgyvendintos PHP,
bet tai iš esmės neturi reikšmės.
Kas naudinga apie phpMyAdmin yra tai, kad žiniatinklio įrankis.
Mes iš anksto įdiegta prietaiso už jus,
ir su ja galite kurti lenteles į duomenų bazę,
galite įterpti duomenis, naikinti duomenis, ir paprastai pamatyti
savo duomenis gana patogią aplinką.
Jūsų naudotojai neketinate naudotis phpMyAdmin.
>> Tai tikrai tik administracinės arba kūrėjas įrankis
pamatyti ir baksnoti aplink jūsų duomenis ir išsiaiškinti, kaip struktūruoti,
panašiai kaip tu pats gali naudoti programos Excel arba numerius,
bet tai bus puikus būdas vizualizuoti tai, kas vyksta po gaubtu
taip, kad jūs galite sutelkti dėmesį į įdomų problemų sprendimo ir ne tiek
paslaptingų komandų.
Paimkime pažvelgti pavyzdžiui, duomenys gali būti saugomi lentelių
reliacinės duomenų bazės.
Štai vienas iš tokių pavyzdžių.
Dabar, deja, phpMyAdmin padarė klaidą būdas mesti pusėje per daug žodžių
ir grafika ne jums, bet jei jums galąstuvas tik dėl
ID stulpelis, vartotojo vardas, stulpelis, o maišos stulpelis
Tai veiksmingai skaičiuoklę, bet tai atsitinka būti fragmentą
stalo prietaiso viduje
naudojant failą, mes suteiksime Jums problemą, 7.
>> Visų pirma, mes suteikiame jums failą, kuri atstovauja
vartotojo stalo, todėl skaičiuoklę, kurioje yra 3 stulpeliuose vartotojams,
iš kurių vienas yra unikalus ID, pradedant 1 ir padidinamos vėliau.
Antrajame vartotojo vardas ir tiems iš jūsų, kurie padarė Hacker,
hacker leidimas pset 2, gali pripažinti, bent kai kurie iš šių vartotojų vardus.
Dešinėje pusėje slaptažodžius, tačiau jie nėra pažodinis slaptažodžius.
Jie maišos jo, taip, it turns out
kad saugoti slaptažodžius duomenų bazėje yra tikrai bloga idėja.
Jūs visi tikriausiai skaityti, nors kai kurios svetainės
arba kai įmonės duomenų bazėje sukompromituota, ir tada jūs turite
pakeisti slaptažodį, turite gauti grąžinamąsias išmokas už dalykų
, nes kai kurie blogiukas iš tikrųjų įsiveržė į savo sąskaitą, kaip rezultatas.
>> Saugoti slaptažodžius atviru tekstu, paprastasis duomenų bazėje
yra visiškai asilų, ir dar tai labai juokingas
tada skaityti apie kai kurių labai gerai žinomų kompanijų
kartais spaudoje, kurių duomenų bazės yra pavojus,
ir ta dalis yra ne juokinga, bet tai, kad duomenų bazės yra paprastasis
slaptažodžiai yra juokinga, nes tiesiog vieną eilutę kodo
galite apsisaugoti nuo tos konkrečios grėsmės, ir tai, ką mes padarėme čia.
Net mūsų netikrą mažai CS50 Finansų versija
mes šifravimo slaptažodžius tiesiog gera priemonė, ir tai, kad
visi iš šių slaptažodžių pradėti nuo $ 1 $ yra tik konvencija.
Tai tiesiog reiškia, kad jie yra užšifruotas, arba tikrai sumaišomas,
, kuris yra panašus į vieną pusę šifravimo funkcija
o jūs negalite pakeisti savo poveikio kažką vadinama suma MD5.
>> Tas faktas, kad 50 yra po to reiškia, kad druska vertė
iš 50 buvo naudojamas maišos visi, išskyrus vieną iš šių slaptažodžių.
Mine, žinoma, kaip matote ten, korektorius,
naudojant skirtingos druskos, todėl tiems iš jūsų, kurie gavo šiek tiek užkliuvo
gal Hacker 2, kad galėjo mūsų, kurie naudojo rezultatas
už kitus, nes skiriasi maišos mano slaptažodis yra faktiškai tas pats
kai kito vartotojo up there.
Iš tiesų, jei jūs laukėte visi šie savaites išsiaiškinti,
ką šie slaptažodžiai slaptažodžiai, kad jums buvo užginčytos
nulaužti hacker leidimo problemą, 2, todėl nėra labai sudėtinga.
Tiesą sakant, Malan buvo kaip jharvard pats
bet jei mes einame atgal, jie atrodė kitaip.
>> Sutelkti dėmesį į jharvard, raudonu, nes jie buvo sūdyti skirtingai.
Algoritmas buvo pasipiktinimas taip, kad
maišos vertė, saugiame reikšmė atrodo šiek tiek skiriasi
, nes sąnaudos buvo šiek tiek skiriasi, bet po gaubtu slaptažodis
galiausiai dar buvo tamsiai raudonos spalvos.
Dabar, who cares apie tai?
Na, mes teikiame jums mėginio vartotojams, vartotojo vardų pavyzdžiai
ir jų slaptažodžius maišas, todėl, kad jūs iš tikrųjų turi tam tikrų
CS50 Finansų klientai už pirmą kartą gauti nuo žemės su savo kodą.
Jūs turite vykdo daugiau nei viduje MySQL lenteles viduje duomenų bazę.
Jūs turite sukurti daugiau skaičiuokles, efektyviai, tačiau mes nusprendėme suteikti jums šį vieną
, kad jums prasidėjo, ir jūs pamatysite, kad problema rinkinys specifikacija
walks jus per importuoti šią lentelę
ir taip pat paaiškinti, ką kai kurie rodikliai yra
ir jūs taip pat pamatysite, kad mes suteiksime Jums su kodu
tvarkyti šių slaptažodžių maišos arba šifravimo,
, taigi jums nereikės nerimauti per daug apie Kontrolinė suma MD5 arba kaip iš tiesų yra visa informacija apie.
>> Taigi, SQL Structured Query Language.
Tai, paprasčiausiai, kalba, mes ruošiamės pradėti naudoti pset 7
o gal ir ne tik prašyti duomenų iš kai duomenų bazės.
Duomenys, vėl saugomi lentelių šių Reliacinė lentelių, stulpelių ir eilučių,
tačiau naudojant kai gana paprasta sintaksė jis ištrintas,
įterpti, atnaujinti ir pasirinkite galime daryti būtent tai.
Mes galime ištrinti iš duomenų bazės, įterpti,
atnaujinti duomenis, taip pat pasirinkti, tai yra, gauti duomenis iš duomenų bazės.
Kaip mes eiti apie tai daryti?
Leiskite man eiti į priekį į prietaiso.
Leiskite man atsigriebti http://localhost,
, vėlgi, yra vietos pats prietaisas.
Tai jos Numatytasis slapyvardis.
Ir leisk man išvykti / phpmyadmin.
Panašu, kad tai specialus URL, kad prietaisas yra iš anksto sukonfigūruotas suprasti
kad iš karto paragina man vartotojo vardą ir slaptažodį.
>> Kaip įprasta, aš ruošiuosi įveskite jharvard ir raudona,
bet suprantame, kad sąskaitos administratoriaus kompiuteryje.
Tai tik sutapimas, kad ten taip pat CS50 Finansų registruotas jharvard.
Jharvard, tamsiai raudonos spalvos, "enter" suteikia man vartotojo sąsaja, kuri mes matėme
prieš akimirką žvilgsnis, ir tai šiek tiek absoliuti per pirmąjį,
bet būkite tikri, jūs niekada turite paspausti dauguma nuorodų į šią priemonę.
Jūs galų gale naudojant nedidelį poaibį, kad yra super naudinga,
kurių pirmasis yra duomenų bazės čia.
Jei man eiti prie duomenų bazių, atkreipkite dėmesį, kad aš paraginti sukurti duomenų bazę.
Tai, kaip sukurti naują "Excel" failą, efektyviai.
Aš ruošiuosi eiti į priekį ir vadinti šią paskaitą, ir aš tik ketina ignoruoti srityje egzistuoja, sugretinti.
Ji turi daryti su duomenų atstovavimo jame,
ir aš ruošiuosi spauskite kurti, ir dabar pastebėti, kaip aš atleiskite Create
kairėje pusėje, kur jis sako, nėra duomenų bazės
Aš netrukus turėtų pamatyti paskaita duomenų bazę.
>> Jei aš spustelėkite kairėje pusėje, paskaita duomenų bazės,
pastebėti mano skirtukų pakeisti šiek tiek.
Turiu struktūrą, SQL, eksportuoti, importuoti ir kai kurių kitų dalykų.
Struktūra yra beveik tuščias.
Nėra lentelių rasti duomenų bazėje, kaip ji sako, čia,
todėl galime sukurti lentelę, ir eikime į priekį ir sukurti lentelę
patinka studentus ir kiek stulpelių mes norime?
Galime laikyti tai paprasta, ir tegul kiekvienam studentui įrašas
ID numeris, vardas ir elektroninio pašto adresą.
>> Mes keep it simple, pavyzdžiui, kad taip 3 skiltyse, eiti.
Forma, kad jūs matote čia yra šiek tiek nepatogus ir didele,
bet mes tiesiog turime eiti per jį eilės eilės, todėl tikrai greitai suteikime
pirmasis stulpelis šioje duomenų bazėje ID Pavadinimas unikalaus identifikatoriaus.
Tai bus sveikasis skaičius. Aš iš tikrųjų gali ignoruoti ilgio ir vertybes.
Int bus 32 bitų Nesvarbu, ką jūs įveskite ten, tad palikite jį tuščią.
Numatytoji vertė, aš galėtų padaryti jį null, kaip apibrėžta.
Aš ruošiuosi palikti kad vien. Tegul ne nerimauti numatytąsias vertes.
Leiskite slinkti per čia į dešinę, atributų.
Tai įdomu.
Eikime į priekį ir šiek tiek netiksliai pasakyti, kad ID turi būti nepasirašytas.
Tegul ne atliekų jokių neigiamų skaičių.
>> Eikime 0 iki 4 mlrd, duoti ar priimti,
ir tada tegul ne paliesti bet kurį iš šių sričių, tik dar ten,
bet tada leiskite žemyn čia įveskite pavadinimą,
ir tada kitas elektroninio pašto, todėl laimikis laišką
vardas ir pavardė, akivaizdžiai nėra sveikieji skaičiai, todėl galime pakeisti juos kitoje srityje.
Pasirodo, varchar, kintamo ilgio char,
pavyzdžiui, SQL duomenų bazės eilutę
bet kintamo ilgio, ir jūs iš tikrųjų turiu pasakyti iš anksto
maksimalus eilutės ilgis, todėl aš šiek tiek netiksliai
konferencijų tipo 255 simbolių.
Galėtų visiškai pasakyti 32. Galėčiau pasakyti 1000.
Jūs savo demografija, kas yra natūra, reikia nuspręsti už save, remiantis
The Longest studento vardas ir eiti su tuo numeriu arba šiek tiek didesnis,
bet kas yra malonu apie VARCHAR ta, kad jis nesiruošia atliekų
255 baitų kiekvieno studento vardo.
Jei ji Davidas jis nesiruošia naudoti vieną visumą 255 baitai,
bet tai viršutinė riba, todėl aš eisiu su 255 tik pagal susitarimą,
, tačiau mes galime diskutuoti, kad turi būti šiek tiek mažesnė vertė, ir elektroninio pašto adresą
tiesiog turi būti suderinti 255, bet vėlgi, mes galime turėti tos pačios diskusijos.
Bet aš ruošiuosi daryti vienas kitas dalykas, čia dešinėje pusėje.
>> Kas yra galingas apie duomenų bazę, kad ji gali padaryti daug sunkiųjų kėlimo
arba sudėtingas darbą už jus.
Visų pirma, aš tikrai nerūpi, ką mano studento ID numeriai.
Tai tiesiog reiškia būti unikalus identifikatorius duomenų bazėje
taip, aš turiu 32-bit glaustą šio studento atstovavimas
todėl, kad turiu šiek tiek unikaliai identifikuojantis kelią
Tegul nebus 2 Davids, pavyzdžiui, vienoje klasėje.
Tiesą sakant, aš ruošiuosi patikrinti šį AI langelį, auto prieaugio,
kad duomenų bazės, MySQL, skaičiai,
kiekvieno naujai įterpiamas studento ID bus.
Aš net neturi rūpintis, kad mano kodas,
ir aš taip pat ketina pasirinkti kažką pagal indekso meniu.
Indeksas nukristi čia pagrindinis, unikalus,
indeksas ir visas tekstas.
Gal galite atspėti, ką iš šių dalykų pora,
tačiau paaiškėja, Reliacinė duomenų bazė
esate programuotojas arba duomenų bazės administratorius gauti preemptively
užuominų į duomenų bazę, kaip į kokius laukus
lentelėje yra šiek tiek specialusis.
>> Pavyzdžiui, šiuo atveju aš ruošiuosi pasakyti, kad ID
bus pagrindinis indeksas, kitaip žinomas kaip pirminį raktą.
Ką tai reiškia, pagal apibrėžimą, yra tai, kad ID šiol
vienareikšmiškai identifikuoti studentus šioje lentelėje.
Joks studentas turės tą patį ID, nes aš nustatyti šį apribojimą arba šis rodiklis.
Be to, tai, ką ketina padaryti už mane jis ketina pasakyti
MySQL, kad ID yra ypatinga.
Man rūpi ypač apie ID, kad eiti į priekį ir padaryti savo išgalvotas duomenų struktūra magija
sukurti tam tikrą medžio rūšį.
Paprastai tai kažkas, vadinamas B-medis, kurį žiūrėjo ne savaites,
bet tai kita tokia duomenų struktūra panaši dvasia dvejetainiai medžiai
ir bando, kad mes pažvelgė, bet jis ketina pasakyti
į duomenų bazę šioje srityje yra labai svarbu, kad aš tikriausiai
norite, kad būtų galima ieškoti, eiti į priekį ir sukurti šiek tiek fantazijos
duomenų struktūra atmintyje paspartinti paieškas, todėl, kad idealiu atveju
jie nuolatinio laiko, ar bent jau taip arti, kad kaip įmanoma
taip, kad jis nepereina į linijinių paieška, kuri yra nesiruošia būti
aukščiausias atlikti požiūrį.
Priešingai, elektroninio pašto adresą, galėjo būti pirminis raktas.
>> Teoriškai, kiekvienas el.pašto adresas yra unikalus, jei norite bendrinti tam tikrą sąskaitą,
bet tai paprastai nėra gerai naudoti kažką panašaus eilutę
kaip pirminį raktą, nes jei jos tikslas gyvenime yra unikaliai identifikuoti
eilutes šioje lentelėje nėra jokios priežasties naudoti 255 baitų maksimaliai
galėtų vienareikšmiškai identifikuoti kas nors, jei galite sau leisti tik su 4 baitų
32-bitų int.
Apskritai, pirminis raktas turi būti trumpas ir glaustas
, o idealiu atveju sveikasis skaičius arba dideliame INT, kuri būna, kad 64 bitų kažkas panašaus.
Pašto adresas turi būti unikalus, o vienas esminis duomenų bazės funkcijų
yra užtikrinti unikalumą man.
Pasirinkdami unikalus čia šalia elektroniniu paštu, nors elektroniniu paštu save
persukimo ekraną, aš sakau, kad duomenų bazės
nepasitiki manimi.
Neleisk man įrašyti į duomenų bazę
du kartus tą patį elektroninio pašto adresą, net jei aš idiotas ir nesu
labai gerai su mano IF ir ELSE IF ir faktinės PHP kodas
ir aš netyčia leidžia vartotojui užsiregistruoti esamą pašto adresą
duomenų bazė gynybos lygis yra dar vienas teisingumas
siekiant užtikrinti, kad, kad dviem egzemplioriais elektroninio pašto adresas nesibaigia iki pateiktoje lentelėje.
>> Dabar, priešingai, pavadinimą tikriausiai ne norite padaryti, kad unikalus
nes tada niekada negalėjo būti 2 Davids arba 2 Mike Smiths, pavyzdžiui,
savo duomenų bazę, kad vienas mes tiesiog palikti ramybėje.
Aš ruošiuosi eiti į priekį ir spustelėkite Įrašyti apačioje dešinėje,
ir viskas atrodo gerai, bet pastebėsite čia
tai yra dalis, kad dabar mes ne praleisti daug laiko
nes sintaksė yra šiek tiek sudėtinga, ir mes neturime kurti lenteles
visi, kad dažnai, bet ir pati SQL kalba,
sintaksės, kuri yra čia, kad aš pabrėžė.
Kas, phpMyAdmin tikrai yra, ji sukuria žiniatinklio GUI jums
su kuria jūs galite sutaupyti laiko ir nereikės rankiniu būdu įvesti
gana ilgai, SQL užklausos, pavyzdžiui, kad.
>> Kitaip tariant, jei norite rankiniu būdu sukurti šią lentelę,
arba kad juoda ir balta eilutę ar net phpMyAdmin
naudojant šį skirtuką Kita, tai SQL skirtuką, kur Jūs galite įvesti bet SQL užklausų
norite, tiesą sakant, tai buvo man minutėlę
faktiškai prisiminti visą sintaksę, ir net tada aš tikriausiai
padarė keletą rašybos klaidų, todėl ši priemonė yra naudinga dalykų, pavyzdžiui, kad ir jis taip pat pamokantis.
Galite pradėti daryti išvadą, kas sintaksė yra
tiesiog gražiu spalvų kodavimo, kad phpMyAdmin yra pridedant
mūsų regėjimo patogumui.
Tačiau dabar galime tai padaryti, o.
Leiskite man eiti į įterpti skirtuką viršuje, ir leiskite man eiti į priekį ir įterpti pavyzdžiui
tegul ID pasakyti iš tikrųjų man nerūpi.
Ji ketina auto prieaugio. Aš ruošiuosi leisti duomenų bazės susidoroti su šia.
Bet aš David, ir mano email turėtų būti malan@harvard.edu.
>> Eikime į priekį čia ir įdėti Mike Smith kitą.
Aš duosiu sau pavardę, taip pat,
ir mes turime jam būti smith@example.com
ir tada kur man eiti toliau?
Na, atrodo, kad eiti yra mygtuką paspausti, ir voila.
Pranešimas viršuje 2 įterptų eilučių.
Tai yra faktinis SQL užklausa.
Štai mane vykdomas phpMyAdmin įrankis,
bet galutinis rezultatas, pranešimas, jei aš dabar eiti į naršymo skirtuko,
2 eilutes šioje lentelėje, labai primena estetiškai
pateiktos lentelės matėme anksčiau mūsų vartotojams iš pset 7
vienas iš jų yra Davidas Malan, iš kurių vienas yra Mike Smith.
Bet tiesiog, kad būtų aišku, aš ne reikia naudoti phpMyAdmin,
ir iš tikrųjų, jūs ketinate netrukus rašyti kodą pset 7
kuri automatizuoja procesą, pridėti eilutes, ištrinti eilutes, atnaujinti eilutes ir panašūs,
todėl leiskite man vietoj to eiti į SQL skirtuką čia
ir tipo SELECT * FROM studentų kai
email = "malan@harvard.edu".
>> Kitaip tariant, tarkime, dabar jūs turite
Kai kurie HTML forma, ir vartotojas įveda savo elektroninio pašto adresą, be kitų sričių,
ir tikslas dabar yra ant nugaros pabaigoje kodą PHP
iš tikrųjų atrodo, kad vartotojas kitą informaciją.
Kas yra jūsų vardas ir pavardė? Koks yra jūsų ID numeris?
Jūs galite rašyti SQL užklausą panašaus į tai, SELECT * FROM studentų
kur email = "malan@harvard.edu".
Ir jei aš spustelėkite eiti, atkreipkite dėmesį, kad man reikia, ir iš tiesų aš, grįžti tik vieną eilutę.
Mike praleistas šį rinkinį rezultatų, kaip eilučių rinkimo
paprastai vadinamas, nes jis neturi tą patį e-pašto adresą, kaip ir aš.
>> Dabar, vėlgi, čia pset 7 jums naudoti phpMyAdmin kaip administracinė priemonė
ir pedagoginė priemonė sužinoti savo kelią
visame pasaulyje SQL, bet ne dienos pabaigoje
jūs ketinate rašyti šias užklausas viduje faktinio PHP kodo,
ir so stay tuned Zamyla rankos ypač
, kai gausite platinimo kodą kelionė šią problemą rinkinys
kur mes davė jums ne tik estetika, prisijungimo puslapyje
ir gražus seksualus logotipas, kad sako CS50 Finansai, tačiau mes taip pat davė jums
krūva funkcijų, kurios padarys jūsų gyvenimą šiek tiek lengviau.
Mes taip pat parašyta, kad jums pset
prisijungimo dalis, visų pirma, siekiant suteikti Jums tipiškos dizaino jausmą
kad faktiškai naudoja valdiklis, pavyzdžiui, index.php,
login.php ir patinka, ir tada pamatysite, pset taip pat turi šablonų katalogą
, kad turi savo nuomonę, estetika.
Ir todėl bendras darbo eiga bus, kad pset 7
jūsų vartotojai aplankyti valdiklį per URL naršyklėje.
Kad reguliatorius yra PHP kodą, kurį rašė, ir viduje savo PHP kode
gali būti įdėta tarp dvigubų kabučių kai kurie SQL linijos
ir perduodama į funkciją rašėme, pavadintą užklausą
, kuris padės jums kalbėti į duomenų bazę, naudojant kažką panašaus
administracinė priemonė kaip phpMyAdmin.
>> Galėsite rašyti SQL, PHP kodą
ir grįžti PHP įvairių rezultatų rinkinį,
eilučių, kad iš tikrųjų atitinka ta užklausa.
Ir taip pat jūs galėsite padaryti įterpti ar pašalinti
ar patobulinimus, pavyzdžiui, sintaksės, kuri yra gana panaši,
ir pamatysite iš kai kurių interneto nuorodų, platinimo kodo
ir iš pset pakuoti pati tiksliai, kaip eiti apie tai daro.
Suprantu, galiausiai mes tikrai tik braižymo SQL paviršių
MySQL, bet jo galia tikrai yra tai, kad ji išlaisvina jus
sutelkti dėmesį į problemas norite išspręsti, naudojimo atvejai norite įgyvendinti
be nerimauti gana tiek, kiek, bent jau pradžioje,
apie tai, kur ir kaip saugoti ir ieškoti savo duomenų bazę,
ir tai yra gana pažodžiui, kai "Facebook" pati gavo jos pradžios
naudojant MySQL ir tada naudojant MySQL serverius ir tada daugiau MySQL serveriai
iki ilgai, kol jie tada buvo sunku tikrai pradėti galvoti apie tai, kaip
saugoti duomenis, kaip laikyti dalykų dar efektyviau,
todėl, nors mes laiko savaime suprantamu dalyku tai, kad rodikliai ir unikalūs apribojimai
ir tt tiesiog dirbti yra labai įdomus pokalbis
, kad tai visa tai gali ilgainiui sukelti, kad suprasti, kad mes tiesiog įbrėžimas paviršiaus
, kas ilgainiui galėtų jums ar jūsų projektams tapo gana didelių duomenų bitų.
>> Turint tai sakė, galime baigti čia, ir mes Pasimatysime kitą savaitę.
[CS50.TV]