[Muzikos grojimo] David J. Malan: Gerai. Sveiki sugrįžę. Tai CS50. Tai yra 8 savaitės pabaigos. Ir, kaip žinote, mes turime gana normaliomis darbo valandų nedaug iš valgyklų, įskaitant Annenberg. Ir kai kurie iš komandos maloniai paėmė keletą nuotraukų pastaruoju metu. Ir garbei Helovinas, norėjome dalis, vienas, kad, o sugauti su mumis staigmena čia Annenberg salėje tiesiog kitas naktį. Jūsų klasiokas Jokūbas pozavo ši nuotrauka, bet buvo daugiau juokingas buvo "Facebook", kylančių pokalbis, kad atsitiko vėliau. 

Jo pirmasis postas, reaguodama Jo nuotrauka buvo tai. Po kelių minučių, jis nusprendė vienas pats save su tai. Jis išvyko tada eiti į tai, ir tada, net daugiau Įdomiai yra tada, kai jo mama chimed. Ir tada galiausiai, atrodo tai buvo tik nuostabus gudrybė už žaisti, kad vyksta. 

Taigi, jei norite pamatyti Jokūbą ir kitus, tarp jų Cynthia Meng, kas atsilieka nuo CS50 zonos darbuotojams scenų, galva į šį URL ir šiame spektaklyje čia. Taigi be tolesnio ceremonija, šiandien tęsti šį pažvelgti interneto programavimo, ir faktinis Programų, kad nereikia paleisti savo komandinės eilutės, bet vietoj paleisti viduje naršyklę. 

Matyt dabar arba labai Netrukus, jūs ketinate būti įgyvendinimo įkarštyje savo interneto serverį, kuris skiriasi nuo interneto programavimo. Serverio pset6 yra visa informacija apie raštu programinę įrangą, kuri žino, kaip imtis HTTP užklausas iš naršyklės, ar net iš tavęs, žmogaus, su programa, vadinama "Telnet, ir tada atsakyti į šiuos prašymus arba apspjovus iš HTML failą arba jpeg arba gif, ar net .php failą. 

Bet su interneto serverį, tai nėra turėtų tiesiog atidaryti PHP failą, kažkas baigiasi .php, ir tada išspjauti turinį. Tai turėtų daryti ką tą bylą pirmosios? Taip sakant. Ne kaupti, mes pirmadienį, bet rather-- Taigi, ją interpretuoti. 

PHP yra interpretuojama kalba, o taip viena iš pagrindinių funkcijų savo interneto Serveris, nors įgyvendinamos mus tai gebėjimas savo interneto serverį pastebėti, oh. Tai failas baigiasi .php. Neleisk man tiesiog nusiųsti jį vartotojas kaip tai statinis turinys, o leiskite linija skaityti jį linija, iš kairės į dešinę, ir ją interpretuoti. 

Ir padaryti, kad jums vaikinai iš esmės punt programai į prietaisą, ir dėl kompiuterinių sistemų daug, tiesiog vadinamas PHP. Tai PHP ir pavardė Language savo vertėjas. Taigi, kad gabalas mes įgyvendinti už Jūs, o kas liko už jus, galiausiai, yra numeris vienetų, tarp kurių įgyvendina paramą statinio turinio. 

Bet dabar, ir su problema septynis, jūs ketina pradėti perėjimo prie iš tikrųjų rašyti PHP kodą kad gauna aiškinama kalbėtis su nugaros pabaigos duomenų bazė, kuri saugo informaciją. Taigi galime geriau suprasti, pirma, Šių superglobals pora ir tik kiek energijos jums gauti iš dėžutės nemokamai su panašaus PHP kalba. Daiktai jūs neturite įgyvendinti patys. 

Taigi, matėme pirmadienis $ _GET, kuri yra superglobal, kuris tiesiog PHP kalba už pasaulinį kintamasis galite naudotis bet kur. Ir tai, kas viduje dolerių _GET? Kas viduje tai superglobal kad mes matome? Tikrai statistiškai ne bent vienas asmuo žino. Kas viduje $ _GET? Taip? 

AUDITORIJA: Tai kintamieji jūs įtraukėte į užklausos eilutę. 

David J. Malan: Perfect. Tai Kintamųjų įdėti į užklausos eilutę. Taigi, mūsų senesnės pavyzdys reimplementing Google kai mes turėjome URL, tada klaustukas, kuris atriboja HTTP pradžią parametrai, tada mes turėjome q lygus kažkas, kaip q lygus kates, ką automatiškai vidun to $ _GET super pasaulinė jums, nes iš PHP, yra Q klavišą, ir jo vertės iš kačių. 

Kitaip tariant, $ _GET ir visi šie dalykai yra asociatyvių masyvų, maišos lentelės rūšių, kad parduotuvė raktus ir reikšmes. Dabar atgal pset5, maišos Lentelėje galite Įgyvendinome arba pabandyti galbūt Įgyvendinome tikrai efektyviai buvo asociatyvus masyvas, duomenų struktūros kuriuo galite susieti raktai su vertybėmis. 

Bet pset5, vertybės buvo trivialus. Vertė iš esmės teisingi, ar klaidingi. Ar žodyne žodis? Taigi, kai jūs maiša panašų obuolių žodį pamatyti, jei "Apple" yra žodyne, Čekį funkcija matyt grįžo true arba false. Taigi, tai efektyviai vertė mes grįžti. 

Bet mes matėme, pirmadienį Trumpai, jums tikrai gali susieti įdomiau verčių, ty ne tik true arba false su raktais, kaip "Apple". Jūs iš tiesų gali grįžti savavališkas eilutė, ir iš tiesų, kad tai, ką $ _GET ir jų kiti kintamieji leidžia daryti. 

Taigi $ _POST yra panašus į dvasią, bet jei jūs pateikiate formą, siuntimas paštu, kitoks HTTP metodas tai naudoti dalykų, pavyzdžiui, kredito korteles, ir privati ​​informacija, ir net dvejetainis informacijos kaip nuotraukų, tie dalykai baigti viduje $ _POST. Ir iš tikrųjų failų kaip jpeg ir Papuošalą, ten net dar, kad ne čia vadinamas $ _FILES taip pat. 

Taigi, serveris mes ne galvoti apie per daug, bet ji suteikia jums prieigą rūšiuoti žemesnio lygio informacijos apie serveris pats, kad jūs naudojate. Slapukų ir sesijos, nors, mes efektyviai pamatyti dabar. Paskutinis yra tai, ką mes naudojame įgyvendinti iš krepšelį sąvoka. Super paprasta, bet priminti kad mes turėjome šį pavyzdį čia skaičiuoti, kiek kartų jūs prieš lankėsi šį puslapį. 

Tačiau šiandien, o ne tik žiūrėti į Efektas, galime atverti "Chrome" inspektorius kuri paprastai galite padaryti paspauskite dešinį pelės klavišą ir kontrolės paspauskite bet kur tinklalapyje, ir tada pasirinkite "Tirti elementą. Arba galite eiti per meniu kad mes aprašyti pset6 savo spec. Ir aš ruošiuosi skirtuką Network čia ir tegul žiūri akimirką HTTP srautą, kad yra vyksta ir atgal. 

Leiskite pirmiausia eiti į priekį ir aišku Chrome "cache. Taigi kai kurie iš jūsų gali būti susipažinę šią technologiją jau, ir mes ketiname jį naudoti dėl derinimo čia. Dabar mes, kaip kompiuteryje Mokslininkai ketina pradėti Tokiu būdu derinimo metu tikslais, pagal kurią mes išvalyti talpyklą, paprastai, kad mes gali atsikratyti dalykų, vadinamų slapukai. Taigi jūs tikriausiai yra plačiai žinomi ką slapukai, arba bent jau kad jie egzistuoja, bet kas suprantate juos, kaip tik remiantis vartotojų Kompiuteriai, ką yra slapukas? Taip. 

AUDITORIJA: Tai šiek tiek of-- gerai, ne bitų į kompiuterių mokslo laikotarpiu. Tai duomenų dalis, kad tinklalapis siunčia jums, kad gebėti fiksuoti statistiką jums. David J. Malan: Gerai, gerai. Todėl duomenų dalis, kad serveris, iškelia į savo kompiuterį, ir tegul apibendrina jį net daugiau, tai raktas value-- gerai, kad darosi tikslesnė. Tai gabalas informacija, duomenų dalis, kad serveris gali įdėti į savo kompiuterį ir labai dažnai, serveris veikia tai, kad būtų prisiminti, kas jūs esate. Taigi, pavyzdžiui, kertasi tu tikriausiai prisijungęs prie svetainių, kaip Facebook, ar "Gmail", arba kiti anksčiau, ir jūs prisijungti su savo Vartotojo vardas ir slaptažodis, ir tada po to, dėl tam tikrų skaičių Protokolų ar valandų ar net dienų, serveris prisimena, kad esate, iš tikrųjų, prisijungęs. Dabar, kaip yra tai, kad iš tikrųjų vyksta? Nes jūs tikrai ne perspausdinimas pamiršote slaptažodį kiekvieną kartą, Jūs eikite į kitoks puslapis "Facebook". Taigi paaiškėja, slapukai yra atsakymas. 

Slapukas jūs galite galvoti, kaip, Rūšiuoti kaip, skaitmeninis ranką spaudas, kad jūs galite gauti už pramogų parkas ar klubą, kad iš esmės rodo jums buvo čia prieš, ir jūs jau ve parodė savo ID į bouncer, už pavyzdžiui, ir kad klubas ar parkas dabar turėtų daryti prielaidą, kad jums buvo patvirtinta jau. Jūs jau nustatė jį. 

Taigi atsižvelgdamas į tai, tegul atverti skaitiklis čia. Leiskite man eiti į priekį, aš tiesiog padarė, ir išvalyti visus mano slapukus. O dabar ką aš ruošiuosi padaryti tai Laikydami Shift, tiesiog gera priemonė, ir prievarta perkraukite puslapį. Shift tiesiog įsitikinkite kad nieko gauna talpyklos. O čia prašymas kad nuėjo į priekį ir atgal. Taigi per čia turime prašymą, ir tegul man priartinti žemyn čia, ir tai daug yra tarsi neįdomu detales dabar, kad naršyklė turi automatiškai išsiųsti, bet galime spustelėkite Peržiūrėti Šaltinis pamatyti pirminius antraštes. 

Ir jei jūs kada nėrė į pset6 jau, jums tikrai pažįstamų dalykų kaip tai, o gal ir kai kurių Šių kitų linijų čia bet kas įdomiau šiandien jei aš slinkti žemyn, o ne į prašymą bet vadinamosios Reaguodama į tai, Ši linija tikriausiai atrodo pažįstamas. Tai geras dalykas, kai pamatysite 200 OK. Matyt tai yra data ir laikas serveryje ir ten daiktų krūva. O, tai įdomu. 

Pasirodo, kai jūs naudojate PHP, bent jau šiuo serveriu, serveris išspjauna kas PHP versija jūs naudojate. Kuris, iš tiesų, už saugumą tikslais, nėra geras dalykas. Bet mes vėl atvyksta į tą kitąkart gal. Bet dabar tai sultingas linija šiandien, ir mes trumpai mačiau kai kurie iš jų, Manau su Facebook kai baksnodavo aplink tuo metu inspektoriui, rinkinys Slapukas yra kas sodinti kad dalelę informacijos į savo kompiuterį. 

Tai HTTP tai efektyviai pasakoja savo naršyklę, Chrome, IE, kas, hey naršyklė parduotuvė nuo vartotojo kietasis diskas, arba naudotojo RAM, raktas vadinamas PHPSESSID, kuris yra Scenografija supratimą ir sesijos ID, ir suteikia jai reikšmę iš 0vlk8t, dot, dot, dot. Tikrai ilgai pseudo atsitiktinis raidžių ir skaitmenų eilutė. Tai tiesiog tikrai didelis skaičius, tačiau tai koduotas raidžių ir skaičių taip, kad jo dydis gali būti net didesnis, nei vien tik skaičiai. Ir tada, beje, Kelias = /, kad tiesiog reiškia, kad šis slapukas turėtų būti susijęs su visuma svetainėje, ne tik konkrečios puslapis visa tai. Taigi tai, kad virtualus ranka antspaudas. Tai tarsi serveryje, Facebook, arba mūsų atveju prietaiso, turi pažodžiui parašyta 0vlk8t ir taip toliau, kai ant rankų. Stebėkite serverio, nedaryti yra tai ne saugoti savo vartotojo vardą, tikrai ne saugoti savo slaptažodį. 

Vietoj to, ji, atrodo, būti saugoti pseudo atsitiktinių informaciją kad niekas negali atspėti kas mano ranka antspaudas yra. Serverio pusėje, Tuo tarpu serveris ketina prisiminti, tikriausiai duomenų bazėje ar kažką, kad vartotojas, kuris ateityje pristato rankų antspaudą 0vlk8t, dot, dot, dot, turėtų būti susijęs su šiuo ypač krepšelis, taip sakant. Kitaip tariant, jei aš dabar eiti grįžti čia ir iš naujo įkelkite šį puslapį, kaip veikia serveris žinoti kad aš aplankė vieną kartą? 

Arba, jei aš tai padaryti dar kartą, kaip veikia serveris žinau, kad aš aplankė jį du kartus? Na, jei aš eiti į šią Paskutines prašymu, kuris Dabar trečia, kad aš išsiuntė iš viso pastebės mano prašymą dabar. Yra vis dar tai prašyti iki čia pats kaip ir anksčiau, dar visa krūva stuff, kad mes ignoruojami kaip ir anksčiau, bet labai paskutinis antraštės, tai laikas, nes aš čia buvęs, yra pristatymas Ši virtuali ranka antspaudas. 

Pagal kurį ši linija čia nėra nustatytas slapukas bet slapukas dvitaškis PHPSESSI = 0vlk8t, tai tik mano naršyklės automatinis pristatymas io antspaudu taip, kad dabar serveris, kai tik jis supranta, ooh, tai vartotojas 0vlk8t dot, dot, dot, Dabar galiu prisiminti, kas jis yra, ir reassociate su to vartotojo kokia informacija, kurią aš noriu, ir visi kad informacija gali būti saugoma jūsų, programuotojas, į $ _SESSION. 

Taigi, kad būtų aišku, jei aš atverti nekilnojamojo greitai į gedit kad tikrasis failas, counter.php, mano vietos priimančiosios visuomenės kataloge kaip ir anksčiau, pastebėsite, kad, iš tikrųjų, Aš galiausiai saugojimo $ _SESSION Citata citatos "counter" Ankstesnės counter vertė, kuri Gaunu iš šių eilučių čia, kad mes pažvelgė paskutinį kartą padidinus vienu. Taigi po gaubtu, tai visi slapukai. Tai tiesiog skaitmeninis rūšiuoti ranka antspaudas vyksta ir atgal, ir atvirai jei atidarote "Chrome" Inspektorius bet svetainėje Jūs lankotės šiandien, super didelė tikimybė, jūs ketinate pamatyti gal vieną, gal pustuzinis slapukai yra prisimenamas jums. 

Ir dar blogiau, jei tie svetainės lankotės visi turi reklama, kuri tikrai gana dažnas šiandien ir jei tie skelbimai ateina iš kai centrinis šalies, nors, kaip Google ar "AdWords", kaip jie skambinti į vieną iš jų produktų arba kitais panašiais pardavėjai, kad parduoti reklamos, kas įdomu, ir atvirai, kas mažai jaudina, apie tai, kaip HTTP veikia, yra tai, kad jei turite skelbimą embedded į Facebook.com ir Google.com, ir Harvard.edu, bet koks skaičius Svetainių, todėl toks kad ten viduryje vyras, kuris tarnauja iki skelbimai su visais šiais tinklalapiais trijų paaiškėja, kad slapukai yra už domeno. 

Taigi, jei turite skelbimą iš pati bendrovė ant skirtingų svetainių, kad bendrovė gali efektyviai sekti kas Jūs esate per su visais šiais tinklalapiais. Harvardo gali nežinoti lankotės Facebook. Facebook gali nežinoti ir lankotės Harvardo. Bet kokia reklama tarnyba jie naudoja, jei tas domenas yra abiejuose Harvard.edu internete puslapiai ir Facebook.com tinklalapiai, tai viduryje vyras tikrai žino, kas jūs esate nes šie slapukai būtų dalijamasi per, ar veikiau į, kad vadinamasis tarpininkas. 

Taigi, mes vėl atvyksta į tai saugumo spragas jų, bet ten daug informacijos Sandėliuojant apie jus bet kada aplankyti bet dauguma tinklalapį interneto ir jis tikrai sumažina šią labai paprastą mechanizmą. Kas atsitinka, tada, jei Jūs esate super paranojikas ir jūs nuspręsite eiti į "Chrome" ar IE ar kas ir išjungti slapukus? Kas atsitinka? Taip? Jūs really-- baigsite šią teisę? Gerai. Ne, eiti į priekį. 

AUDITORIJA: Kai kurie interneto svetainės neturi be jo funkcija kaip "Facebook". David J. Malan: Yeah! Taigi tam tikri tinklalapiai tiesiog nustoti veikti. Ir dauguma interneto svetainių šių dienų kad iš esmės remtis slapukus ypač jei jie turi jums prisijungti į, jie tiesiog suluš. Nes mano alternatyva, jei svetainė neturi atsiminti kelią, kas esate, todėl Jūsų tinklalapio naršyklė nėra atstovaujančių kiekvieną HTTP prašymas io antspaudu, efektyviai svetainė kaip "Facebook" vyksta turėti, kad tai paskatins jus prisijungti kiekvieną adyti laiką Pakeitus puslapius arba paspausti nuorodą, kuri tikrai nėra labai geras vartotojas patirtis. 

Taigi, kad ten, taip pat yra tarp kompromisus. Taigi be tolesnio ceremonija, galime imtis savaime suprantama, kad su interneto programavimo, kalbomis, pavyzdžiui, PHP, galite prisiminti informacija, kaip, kad problema nustatyti septyni, kai jums įgyvendinti jūsų E * Trade-kaip svetainė, su kuria pirkti ir parduoti atsargas, jums prisiminti, ką vartotojas perkama ir parduodama ir kas jis ar ji yra būdu šioje sesijoje. Bet mes ketiname reikia mėgėjas būdas nei paštu pradėti laikyti informaciją apie. Teisė? 

Pirmadienį mes kalbėjome apie Frosh IV ir kaip versijos viena tos svetainės, prieš metus visi mes padarėme išsiųsti Proctor kas atsakingas už vidines sporto programa, pavadinimas ir lytį, ir ar jie kapitonas, ir kažkas bendrabučio kas Registruojant už vidine sportą. Taigi, tai nėra blogai, bet jis tada turėjo Troll per savo elektroninio pašto adresą, padaryti skaičiuoklę arba kažką panašaus kad išlaikyti viskas organizuota. Todėl tikrai mes programuotojais galite tai padaryti už tą Proctor. Ir taip patekti į SQL, Structured Query Language, kuris atrodys gana skiriasi tiek C ir PHP, ir panirsite į daug daugiau rankų PHP ir problema nustatyti septyni bet ir SQL, "arba" SQL, tai yra kalba, kuri naudoti pasikalbėti su duomenų baze. 

Bet kas duomenų bazė? Na jūs manote duomenų bazės, bent jau dabar, kaip tik yra kaip Excel failą, arba jei esate Mac vartotojas a numeriai failą, arba jei esate "Google Apps" vartotojas "Google" skaičiuoklių tai efektyviai duomenų bazę, arba tikrai specialiai reliacinės duomenų bazės. Reliacinės duomenų bazės yra tiesiog kažkas, kad turi eilučių ir stulpelių, ir jūs galite laikyti bet kokios rūšies informacija šiose eilučių ar stulpelių. 

Bet kas malonu apie SQL ir apie faktinius bazių, o ne tik skaičiuokles ar Google skaičiuoklės, yra tai, kad jūs galite naudoti kalbą realiai vykdyti užklausas įterpti duomenis, pašalinti duomenis, ieškoti duomenų, net svarbiausia, ir jums neturite ją naudoti gana rankiniu Kaip galima paprastai Google Skaičiuoklės, kaip šis. 

Taigi SQL, ten krūva pagrindinės paraiškos ar vienetų funkcionalumo pastatytas. Yra daug daugiau, nei tai, bet tu gali eiti milžinišką atstumą tiesiog žinant, kad ši kalba vadinama SQL turi ne mažiau kaip keturis ataskaitos galite svertų. 

Ištrinti, pašalinti duomenis, Įterpti, pridėti eilutes, Atnaujinti, keičiant eilutės ir parinkimas, gauti atgal eilučių ir tai iš tikrųjų ką SQL daro. Ji veikia tik nuo eilių taip kad, kai įdedate arba pašalinti, arba atnaujinti arba pasirinkti, ką jūs grįžti kaip vadinamasis rezultatų rinkinį, kaip eilučių masyvo. Eilių krūva iš lentelės. 

Taigi atgal per dieną, ir net iki šios dienos, Jūs galite bendrauti su duomenų bazę, naudojant komandų eilutę, bet tai ne itin smagu naudoti tai juoda ir balta stiliaus langas ir iš tikrųjų vykdyti komandas ir baksnoti aplink savo bazę. Grafinė vartotojo sąsaja, arba GUI, yra daug geriau, be abejo, ir todėl įrankis rekomenduojame ir iš anksto įdiegta jums ant prietaiso vadinamas phpMyAdmin. Tai bendra neatsitiktinai pavadinimas šio dalyko yra PHP jame, tai tiesiog reiškia, kad žmonės, Kas parašė šią programą patys surašė į PHP. 

Bet tai galiausiai apie administravimą duomenų bazės serveris, kaip MySQL serverio kad galite turėti, kaip jums padaryti, per CS50 prietaisu. Taigi šiek tiek daugiau informacijos čia ne mes turime rūpintis šiandien, bet tai, kas svarbiausia yra tai, kad kairėje pusėje pusėje yra duomenų bazių sąrašas kad jūs turite savo kompiuteryje, Jūsų CS50 prietaiso, arba ateiti galutinius projektus, kad galite turėti trečiajai šaliai, įmonės svetainės ar serverio, kad jums gali mokėti už patalpų. Taigi kairėje yra duomenų bazės, iš kurių vienas yra pset7 aš pasiskolino iš šalia sav pset, o tada ant viršaus ten Pastebėjus krūva skirtukų, iš kurių vienas yra duomenų bazės, SQL, statusas, Vartotojų, eksportas ir kt. Taigi galite eiti ilgai būdas tiesiog suprasdamas kad dauguma vartotojo sąsaja yra viršutiniame kairiajame stulpelyje ir per viršų teisę ten. Taigi, ką galime realiai padaryti su tuo? Na, galime pradėti kurti bitų informaciją, kaip nurodyta toliau. 

Tarkime taip yra tuo atveju, kaip bus tik kelias dienas, norite įdiegti svetainė, vadinamas CS50 Finansai, ir ši svetainė leidžia pirkti citata citatos ir parduoti atsargas. Ir jis ketina išsiaiškinti iš šių išteklių kaina, galiausiai, kaip jūs pamatysite, kalbėti su Yahoo Finance. Kuris, nuostabiai, turi nemokamą paslaugą kuriuo galite pereiti į biržos juosta kaip GOOG Google, ir tai bus suteikti jums atgal esamą "Google" akcijų kaina, kaip praeityje Kelios minutės bent. 

Taigi jums naudoti, kad galiausiai apsimesti, kad vartotojas pirkti ir parduoti faktinis atsargos, naudojant virtualių pinigų, bet pats pirmas dalykas, vartotojas ketina pamatyti tai prisijungimo langas, kuris prašo jų jų vardu ir slaptažodžiu. Ir tokiu būdu, vienas iš pirmųjų iššūkiai jus į pset7 bus įgyvendinti atgal pabaigoje duomenų bazė, jei bus skaičiuoklės, kad ketina laikyti vartotojų vardus ir slaptažodžius ir galiausiai, kas atsargos jiems priklauso, ir kiek ir kiek pinigų jie turi, taip kitų dalykų krūva į kiti stalai, skaičiuokles. 

Taigi galime pažvelgti, kaip šis atrodo gali pasirodyti iš pirmo žvilgsnio. Aš ruošiuosi grįžti į prietaisas ir aš Išvykstate į šį URL čia phpMyAdmin localhost / phpmyadmin ir pamatysite, kad jis priima mane į sąsają tiksliai taip, kaip matėme ekrano fotografiją, ir čia aš turi papildomą duomenų bazę vadinamas Paskaitoje šiandien ir leiskite man eiti į priekį Pirmoji ir spustelėkite pset7. 

Aš, atrodo, turi keletą galimybių, vienas naujas, kurti naują lentelę, ir nuorodą į vartotojų, kurie yra lentelė aš jau sukurta. Taigi, kas yra stalo? Taigi, jei jūs naudojamas Excel anksčiau, ir jei jūs naudojamais numeriais ar Google Skaičiuoklės, jums atverti langą ir gausite visa krūva eilučių ir stulpelių, bet tada jūs paprastai turi lapus Apačioje, arba atskiruose skirtukuose. Galite manyti, kad kiekvienas Anketos kaip stalo kad duomenų bazės galiausiai yra derinys iš vieno ar daugiau lentelių, vienas ar daugiau užduočių lapai, į pasaulis normalus skaičiuoklę. Taigi leiskite man eiti į priekį ir spustelėkite šį darbalapį kad aš premade, vadinami vartotojai, dar žinoma Duomenų bazės lentelę. Ir jei aš slinkti žemyn čia, leiskite nutolinti truputį, tai ką phpMyAdmin pasakoja mums yra viduje šios lentelės dabar. Tai šiek tiek klaidina ne pirmas žvilgsnis, nes UI nėra gražiausia dalykas pasaulyje, bet Įdomu tai, kad čia ši dalis. ID, vartotojo vardą ir maišos. 

Iš anksto, ir jums bus ranka tai problema nustatyti septyni, mes jums failą, kuriame yra super mažas duomenų bazės lentelę, pasiskolintas iš tikrųjų nuo hakerių leidimas Problemos nustatyti du, kurio viduje yra šeši eilutės. Vienas Belinda visose galo, kad vieną Zamyla, ir pastebėsite, su ta kairėje vardai yra unikalūs identifikatoriai, pavyzdžiui, vieną, du, trys, keturi, penki, šeši, sveikieji skaičiai, ir tada į dešinę yra maišos. 

Ir jei, šansai yra, jūs ne padaryti Hakeris leidimas problema nustatyti du, bet maišos yra kaip saugiame slaptažodis kelių įspėjimų. Ir taip, tai, ką matote čia, yra užšifruotus versijos visų šešių mūsų slaptažodžius problema nustatyti du jo Programišių leidimas. Dabar į kairę yra tik keletas GUI dalykų, redaguoti šį eilutę, kopijuoti šį eilutę, Ištrynus eilutę. 

Bet kas įdomu dabar yra taip. Aš iš tikrųjų galite pradėti eksperimentuoti su šioje lentelėje. Taigi, jei aš einu ir spustelėkite SQL skirtukas, man tai didelis teksto laukelį. Ir tai yra ne tai, kaip mes ketiname tai padaryti, kai iš tikrųjų rašyti kodą. Kad būtų aišku, phpMyAdmin yra tik įrankis, kuris yra ketina mums baksnoti aplink bazėje ir mums eksperimentuoti su užklausomis. 

Taigi, pavyzdžiui, įsivaizduokite Wykonam tiksliai tai. Pasirinkite, kuris yra vienas iš tų, raktiniai minėjau anksčiau, žvaigždė, kuri atstovauja visiems A lentelės stulpeliai. Iš to, ką stalo? Na, vartotojai. Ir Pastebėjus tai keistai konvencija SQL kur iš tikrųjų naudoti atgal erkes, paprastai, ne kabutes, o ne dvigubos kabutės kai kalbate apie lentelių pavadinimus, taip atgal citata apie ką Kairiajame viršutiniame klaviatūros dauguma Tikėtina. 

Taigi leiskite man eiti į priekį dabar ir tiesiog palikti, kad vien ir slinkite žemyn ir spustelėkite Eiti, ir mes iš tikrųjų ketiname pamatyti tą patį. Mes ką tik atlikęs SQL užklausa sakydamas pasirinkite viską žvaigždę nuo stalo vadinamas vartotojams, ir ką jūs gaunate atgal tai. Galų gale, mes galėsime daryti tą patį kodą, bet dabar viskas, ką aš norėjau do buvo matyti savo naršykle. Na darykime ką nors tiek kitoks. Leiskite grįžti į SQL kortelėje ir tegul tiesiog pasakyti, kad tai, ką? Zamyla neteko visų jai pinigai, ir todėl jis laikas mums ištrinti savo, kaip vartotojas. Ji nebegali prisijungti. 

Taigi, aš ruošiuosi pasakyti ištrinti from-- gerai, išlaikyti kapitalizacija nuoseklumo, ištrinti iš vartotojų, kur. Ir taip, mes galime turėti tai predikatai, ar jie apibūdinimų, prie mano pareiškimo pabaigoje kur ir kaip galėčiau ištrinti Zamyla? Iki jos vardas Zamyla, todėl kolonėlė, vienas iš kolonėlių buvo pavadintas, todėl kur vardas = "Zamyla". Ir čia aš naudoju du kartus citatos ar kabutes, naudoti tik nugaros erkes kai kalbame apie vardus, pavyzdžiui, iš lentelių ar laukų. Ir leiskite man spustelėkite Eiti čia. Ir dabar, tinklalapis yra mažai Rozdrażniony. 

Arba jūs tikrai norite vykdyti ištrinti iš vartotojų, kur "pavadinimas yra Zamyla? Taip. Taigi dabar, jei mes einame atgal į mano stalo paspaudę vartotojai, pastebėsite, kad Hm. Aš goofed. Ir iš tikrųjų, I rūšies paspaudėte toli taip greitai tu negali net pamatyti raudona klaidos pranešimas, galbūt. Ką aš padariau ne taip? AUDITORIJA: Jūs nereikėjo kapitalizuoti savo vardą. David J. Malan: Taip aš kapitalizuojamos savo vardą, bet jos vardas; iš tikrųjų aš padarė keletą klaidų, tiesa? Vienas iš jų, jos vardas yra zamyla, mažosiomis raidėmis Z, ir stulpelis vardas vartotojo vardas, ne pavadinimas, tad tai padaryti dar kartą. Leiskite man eiti į priekį ir ištrinti iš vartotojų tam tikrais Nick lygus citata citatos "Zamyla". Viskas gerai? Taigi tai atrodo šiek tiek geriau, tegul man eiti slinkite žemyn ir paspauskite Go. Jis vis dar vyksta klykauti į mane būti tikri. Aš spustelėkite Taip, ir dabar mes matome, atvirai tai atsitiko, tikrai greitai, mažiau nei vienas antra tikrai, tai būtent užklausa kad gavo įvykdytas. Norėdami patvirtinti, leiskite spustelėkite vartotojams ir iš tikrųjų dabar Zamyla dingo. Dabar galime daryti priešingai. Tarkime, kad Gabe nori užsiregistruoti svetainėje. Kas SQL užklausos, kas komanda galėčiau įvesti pridėti Gabe? Na, tai gana paprasta. Įkiškite į vartotojų, o dabar jis gauna šiek tiek paslaptingas. Man reikia nurodyti, kad serveris, kas laukai noriu priskirti. I do not really care ką Gabe ID skaičius, todėl aš ruošiuosi praleisti, kad. Aš vietoj ketinate pasakyti vartotojo vardą, maišos, ir tada Aš vertybės norite įdėti ten bus Gabe. Ir tada jo maišos, nežinau. Taigi dabar aš ruošiuosi palikti, kad taip didelis, kad daryti. Mes grįžti į kad problema nustatyti spec, kaip jūs iš tikrųjų padaryti. 

Taigi pastebėti, vėl sintaksė. Įkiškite į lentelės pavadinimą, tada skliausteliuose sąrašas laukuose, Stulpeliai norite pridėti vertės, tada tiesiog lygiai tas pats tvarkymas paliktas teisė vertybėmis norite pridėti, ir tai tik vyniojimo nes tekstas yra šiek tiek ilgai. Taigi dabar leiskite spustelėkite Vykdyti. Vieną eilutę įterpti. Ir dabar, jei aš einu atgal į Vartotojų, kas įdomu yra tai, kad yra ne tik Gabe dabar duomenų bazė, kas matyt jo ID? 

Na tai septyni. Kodėl jis septynis kai aš pridėti jį ne? Taigi tai, taip pat, yra viena iš funkcijos jums duomenų bazė. Daug "pastatyta funkcionalumą. Pasirodo, kad kai sukūrė šią lentelę, Aš iš anksto sukonfigūruotas tai automatiškai priskirti ID tokiu būdu kad kainos padidinimas. Taigi, jei jūs kada nors baksnodavo aplink, ir pažvelgė, ką "Facebook" ID skaičius, šių dienų tai tikrai ne ką reikia padaryti, bet "Facebook", kaip API, Application Programming Interface, kuriuo būtų galima grįžti visa krūva duomenų apie Būk, apie savo draugus, ir jūsų ryšius. Ir kas anksčiau natūra cool, atgal per dieną, buvo ieškoti ką jūsų Facebook ID numeris buvo. Pažymėti Zuckerberg s, pavyzdžiui, yra trys nes jis buvo svetainės autorius. Ir kaip sakoma, jis sukūrė dvi bandymų ataskaitas, vartotojai vienus ar dvejus, kurią jis tada ištrinti. Ir taip, Zuck, kaip jo vardas "Facebook", yra ID numeris trys, ir mes visi turime numerius daug didesnis nei trys šių dienų. Tiesą sakant, tam tikru momentu Facebook nutolo iš net naudojant int, kuri yra 32-bitų reikšmę, naudojant Kitas žingsnis, iš esmės ilgai ilgai, todėl kad jie galėtų prisitaikyti prie net daugiau vartotojų registravimas. Taigi įdomus mažai istorinis faktas. 

Taigi tai tik Paprasčiausios sintaksės, su kuria mes galime atlikti kelias pora užklausų, tačiau mes galime iš tikrųjų padaryti krūva daugiau dalykų su SQL. Ir jūs pamatysite, galiausiai, į problemą septynis kad jūs turite padaryti skaičius Projektinių sprendinių, Tarp jų bus kokie duomenys tipai naudoti. Taigi tiesiog kaip C, yra duomenys tipai duomenų bazėje, kaip MySQL, ir duomenų tipai, turite pasirinkti iš šiuos sektorius čia. Char, varchar, Žiniasklaida, didelis int, dešimtainis ir data laikas ir daugelis kitų. Taigi galime realiai padaryti. Tarkime, kad mes ne rankų jums šio vartotojo stalo ir leiskite man eiti į priekį ir kurti, ir aš, paskaitose database-- tikrai leido man eiti į priekį ir ištrinti stalo turiu čia jau kad mes iš tikrųjų gali sukurti tai. Oho. Aš ruošiuosi atsisakyti šio stalo, ir dabar aš ketina Grįžkime paskaita duomenų bazę per čia Aš ruošiuosi sukurti lentelę vadinami vartotojai ir tegul tiesiog padaryti tris stulpelius iš pradžių ir spustelėkite Vykdyti. 

Dabar, kad didžioji dalis, vėl, tai tik Naudojant šią grafinę įrankis, pavadintas " phpMyAdmin ir ką mes darome dabar kuria lentelę. Taigi tai yra kaip eiti File, Naujas, ir sukurti naują failą programa Excel. Taigi jis klausia manęs nedaug klausimai, iš kairės į dešinę, kas iš pirmo stulpelio vardas, ir tada antro stulpelio pavadinimas, o trečdalis vardas. Taigi galime atkurti tai. ID, ir tada buvo vienas username, ir tada buvo maišos kitą. Taigi, kas turėtų duomenų tipas dabar už panašų ID srityje? 

Čia yra visa sąrašas duomenų tipų jums prieinamos duomenų bazėje, o dabar tegul tiesiog eiti su tarpt. 32 bitų reikšmė, aš ne manau realiai aš teks daugiau nei 4 milijardus Vartotojų mano paskyroje, mano tarnybos, todėl aš ruošiuosi nuolat juda į kitą klausimą. Nesiruošiu nurodyti ilgis ar vertės, tai netaikoma čia int, per se. Ir dabar galiu nurodyti, matyt, pagal nutylėjimą vertė, kurią aš nesiruošiu nurodyti. Lyginimas, aš nežinau, kas tai yra. Atributas. Dabar mes iš tikrųjų turi dizaino sprendimą. Todėl ten keletą laukų čia ne viskas iš kurios yra taikomos, bet nepasirašytą tiesiog reiškia ką? Kad int turi būti? Tiesiog ne neigiamas. Taigi ji turi būti ant 0 up. Ne, aš nesiruošia patikrinti, kadangi Noriu kiekvienas vartotojas turi ID, ji negali būti null. Ir tada, mes turime šiek tiek daugiau Įdomios dizaino sprendimus tai patinka. Mes grįžti į tai akimirkai, bet kokia kita duomenų baze funkcija yra tai, kad jūs galite pasakyti, duomenų bazės serveris eiti į priekį ir optimizuoti savo asmenybę, RAM ir kietajame diske, kad pasirenka ir įdėklai ir ištrina ir atnaujinimai tikrai greitai. Palyginkite tai su pset5. 

Jei nori ieškoti kažko jūsų maišos lentelė, kurioje manote, kaip duomenų bazė, kurie turėjo padaryti viską sieksiu, kad jūsų maišos lentelės greitai. Tai kaip, žinoma, jūs. Teisė? Jūs turėjote įdėti visą laiką bauda Tuning dalykų, gauti maišos funkcija Gerai, suprasti, kaip daug kibirai turėti. 

Bet kas malonu, vėlgi, apie duomenų bazė tiesiog punt visi tai su kitais žmonėmis kas galėjo pagalvoti, tai per jums, ir kas Aš ruošiuosi pasakyti čia pagal rodiklis yra tai, kad mano ID laukas bus pagrindinis būdas nustatyti vartotojams šios duomenų bazės. Nesiruošiu galvoti iš Zamyla kaip Zamyla, Aš einu galvoti jos yra numeris 6. 

Kodėl ji, ko gero, geriau intuityviai galvoti ir modelį kiekvienam savo atskirų eilučių, naudojant skaičius, o ne kažkas, kaip eilutę, kaip ir Zamyla arba Gabe arba ilgiau styginių dar? Taip? 

AUDITORIJA: ID yra unikalus? David J. Malan: Pasakykite dar kartą? AUDITORIJA: ID yra unikalus? David J. Malan: ID yra unikalus, tačiau suppose-- kaip apskritai atveju su vartotojų vardais, tarkime Aš taip pat sakė, ten gali būti tik vienas Zamyla pasaulyje, ir tik vienas Gabe. Galėčiau skirti unikalumą suvaržymai stygos, taip pat, jei aš norėjau. Taigi nėra bloga mintis. 

AUDITORIJA: saugesnis. 

David J. Malan: saugesnė, kodėl? AUDITORIJA: Jūs negalite pasakyti, kuri yra kuris, kaip vartotojui. David J. Malan: Gerai, jūs negaliu pasakyti, kuris vartotojas yra kuris todėl nėra Privatumo aspektas į ją, ypač jei su kodais gal nesimatytų URL. Taigi tikrai, kad galėtų rūšies darbą, taip pat. Kitos mintys? Taip? 

AUDITORIJA: Lengviau atlikti operacijas int. David J. Malan: Tai realus kicker. Tai tiesiog efektyviau, arba lengviau kompiuteryje, atlikti operacijas sveikosios. Teisė? Int yra garantuotas būti 32 bitų, o Zamyla yra keletas simbolių, Gabriel yra keli simboliai, Davenport tikrai ilgai, ir todėl ne itin efektyvus naudoti stygos palyginti vertybes ir surasti laukus ir atnaujinkite srityse, jei jūs galite išeiti tik su vienu sveikojo skaičiaus. Tik 32 bitai. Taigi vartotojų vardų, taip pat, tai būdas, neturi būti unikalus, nors jie tikriausiai turėtų būti, ir net tokiu būdu per vartotojas gali būti leidžiama pakeisti jo ar jos vardą. 

Taigi leiskite dabar palikti tai kaip yra pagrindinė priemonė identifikavimo vartotoją. Tai sakau duomenų bazę eiti į priekį ir optimizuoti save taip, kad atrodo ups ID yra super greitai. AI, siaubingai pavadintas, tiesiog reiškia Auto Taškinis, ir tai yra patikrinimas Lauke mes turime patikrinti nurodyti, kad tapatybės srityje būti automatiškai atnaujinamas, man, ir tada aš ruošiuosi slinkite į dešinę čia ir atvirai, aš nesu tikrai domina pagal bet kurį iš šių sričių dar daugiau. Žinoma, ne šiandien. 

Taigi, aš ruošiuosi grįžti čia, į pirmoje skiltyje, kur Man reikia nurodyti vardą ir maišos, ir tegul bent jau dėmesio Antrasis dabar. Žiniasklaida yra tikriausiai ne teisus, Taigi, kas daugiau prasmės gal? 

AUDITORIJA: Tekstas. David J. Malan: Pasakykite dar kartą? AUDITORIJA: Tekstas. David J. Malan: Tekstas? Gerai, aš girdėjau, tekstą. Ką dar? Mes rūšies turite pasirinkimo krūva kad yra tekstinė pobūdžio. Taigi, kai, ir kodėl, ar Naudojant kai kuriuos iš jų? Na char, priešingai nei jums gali manau, yra ne vienas personažas. Tai specifinis rašmenų. Taigi, jei mes žinome, kad visi vartotojų vardai turi būti kaip aštuoni ženklai, kaip būdavo įprasta vyresni kompiuterinės sistemos, galėčiau pasakyti char ir tada galėčiau pasakyti 8 čia. Štai kai trečiasis stulpelis tampa taikoma kuriant lentelę. 

Bet tai rūšies erzina nes kai kurie žmonės gali norite turėti ilgesnį vardą nei aštuoni ženklai, kai kurie žmonės gali norėti turi trumpesnį vardą, tai kodėl įsipareigoju į tam tikrą skaičių? Kodėl gi ne nepastovius skaičius simbolių ir tiesiog pasakyti, kad maksimalus ilgis pavadinimo yra, aš nežinau, kaip 64 simbolių. Aš negaliu galvoti apie bet draugai, kurie turėti pavadinimus ilgesnis nei 64 simbolių, ir net jei tai per trumpa galėtumėte tikrai guzas jį savavališkai. 

Taigi varchar yra kintamasis skaičius simbolių. Tekstas nėra blogas instinktas, ir atvirai tai tarsi ką ji sako, bet teksto laukas gali būti kaip 65.000 baitų bent. Tai tikriausiai žiauru laukas, o iš tikrųjų, yup, 65.535. Tai tikriausiai žiauru pavadinimas, tokiu būdu mes laikysimės, paprastai, su varchars skirtas teksto lauko ir maišos, taip pat. Maišos, it turns out, mes galime padaryti varchar taip ar kažkas panašaus, bet mes ne sutelkti šiandien kriptografija egzistuoja ir numeriai kad mes iš tiesų gali norite naudoti savo ilgį. 

Bet leiskite man slinkti į dešinę. Jūs galite turėti tik vieną pagrindinis indeksas lentelę, bet aš noriu kreiptis bet kuris iš šių, dabar į vardą, jūs pasakytumėte? Ką turėtų naudotojovardas būti grindžiamas neaiški supratimas iš šių keturių variantų? Tiesiog jų vardus? 

AUDITORIJA: unikalus. 

David J. Malan: Taigi unikalus, tiesa? Taigi paaiškėja, kad ne tik galėtų pasakykite duomenų bazę, iš anksto, tai pagrindinis būdas identifikuoti laukus. Taip pat galima sakyti, tai yra bus unikalus laukas. Jis nesiruošia būti dalykas man remtis, bet aš norėčiau, kad duomenų bazę iš esmės turi, kad jei liga, todėl kad jei aš kada nors bandė registruotis Du vartotojai su tuo pačiu pavadinimu, duomenų bazė fiksuoto nesiruošia tegul mane. Turėčiau šiek tiek papildomą kodą PHP, kuri apsaugo tiek, bet duomenų bazė, taip pat gali užtikrinti kad niekada nesiruošia atsitikti. 

Dabar, kaip panaikinti, ypač manote apie galutinius projektus, turėkite omenyje, rodyklės ir pilnas tekstas iš tikrųjų yra gana naudinga. Jei turite didesnį duomenų bazę, o ne dešimtys, bet su šimtais ar tūkstančiais ar net milijonus srityse, galite taip pat pasakyti iš anksto duomenų bazę tai laukas aš ruošiuosi reikia ieškoti ant daug. Gal jos vardas, gal tai bio, jei esate priimant Facebook-kaip svetainė, kuri turi pastraipas, kad vartotojo leidžiama išsaugoti, ir, jei norite, kad pasakyti iš anksto duomenų bazę Aš ruošiuosi būti ieškojau šioje srityje daug, bet tai nebūtinai unikalus, Jūs galite nurodyti sukurti man indeksą. Arba, jūs galite taip pat pasakyti leidžia man daryti rūšiuoti savavališkai paieškas, pavyzdžiui, vadas arba Control F, kaip jūs galia teksto apdorojimo, kad galėtumėte žiūrėti savavališkų stygos ar poeilių šioje srityje. Kitaip tariant, mes vis į semestrą taško kur jūs neturite jaudintis kaip efektyviai įgyvendinti dalykų. Jūs tiesiog turite žinoti apie tai, ką dizaino sprendimai padaryti, kad esate naudojant tinkamus įrankius prekyba, siekiant papildyti savybes kad kiti žmonės, yra skirta jums. Taigi, norint Priminti, pirminė turėtų tik turėti vieną, jūs galite turėti tik vieną, ir tai, ką jūs įsipareigojant naudojant nustatant sritis unikaliai. Unikalus yra tik panašus į dvasią, bet galbūt tik retkarčiais jį naudoti, bet jūs norite bazė primesti jį. Indekso tiesiog reiškia Preemptively pagreitinti ateityje kad galėčiau ieškoti dalykų šioje srityje. Ir tada visą tekstą paprastai už dalys ar esė, arba didelių įstaigos teksto kur jus Taip pat galite turėti laukinių korteles kaip ir žvaigždė ekvivalento. Teisė. 

Kad buvo natūra daug iš karto. Leiskite pamatyti, jei mes negalime Alembikować Šių funkcijų pora ir tada kurti kažką gana paprastas, bet galingas. Taigi tarp kitų dizaino sprendimai jums esate galiausiai teks palei , taip pat saugojimo varikliai linijos. Ir leiskite man tiesiog paminėk tai tikintis galutinių projektų, ir numatant tegul say-- ne tegul tai padaryti. Kurkime tai mažai taikymas pirmiausia. Aš ruošiuosi eiti į savo terminalą langas, o čia yra ne tik counter.php, kuri mes dabar vyksta atsikratyti netekusiu su tema, bet mes turime visa krūva katalogų ir tai bus labai panašus į dvasią ką jūs matote problemą nustatyti septyni. 

Taigi, mes turime tris katalogų apima visuomenės ir šablonai, kurie yra būtent ten, kur mes palikome ne dėl Pirmadienis visa mūsų MVC paradigma. Ir primenama, viešai ketina eiti bet failas, noriu vartotojus tikrųjų prieš galėti aplankyti jų naršyklė per URL. Šablono. Ką mes įdėti šablonus? Kokios medžiagos? Nebuvo daug, bet pora failai bent pirmadienį. Taip. 

AUDITORIJA: Apatinė antraštė ir? 

David J. Malan: Apatinė antraštė ir. Taigi, mes turime kažką panašaus šiandien, per daug. Mes turime dar kelis failus bet Apačia matau, Header matau, ir tada iš kitų failų krūva. Taigi tai yra lygiavertis kurių V MVC nuomone,, vėl bus šiek tiek daugiau aišku problemos septynis, bet tai tik aplankas aš išleidimą mano estetika daug. Mano HTML, iš savo formomis daug daug. Tuo tarpu, apima, yra dar vienas katalogas, kuris turi šiuos tris failus ir galime imtis greitai pažvelgti šių. 

Aš ruošiuosi eiti į priekį ir atverti config.php. As it turns out, daug kaip anksčiau termino, Jūs aštrus įtraukti CS50 dot h su pset7. Šiandienos Pavyzdžiui, jūs ketinate daryti kuri atitinkamu su require pareiškimą kad efektyviai apima šiuos keletą eilučių. Taigi, norint būti aiški, tačiau tai failas, vadinamas config.php. Ir pastebėsite, kas tai daro. Tai, matyt, daro kažką paslaptingas, įjungimas klaidų pranešimai taip, kad jūs galite matyti naršyklėje. Tai, tada, matyt, reikia du kitus failus todėl tai yra kaip # include in C, ir tai jo mes pamatyti, ir mes rėmėsi, tai įsijungia kad krepšelis panašus funkcionalumas. 

Tai reiškia, kad slapukas būti siunčiami pirmyn ir atgal. Taigi, kodėl tai yra įdomu? Na, jei mes einame atgal į ši katalogas ir atverti, pavyzdžiui, constance.php. Atkreipkite dėmesį, kad PHP nepalaiko konstantas, tai ne visai kaip #define C Vietoj to, jūs tiesiog pasakyti apibrėžtas ir pranešimas kad aš saugomi anksto Keturi konstantos šio failo. Vienas už šiandienos bazėje, už mano slaptažodį mano vartotojo vardą, ir už serverio pavadinimą. Taigi tai iš tiesų bus gana panašios problemos nustatyti septyni. Ir galiausiai, ir tai yra, kai aš kažkiek gražią funkcionalumą iš darbuotojų, iš functions.php yra kodo krūva mes parašiau, ir aš pavogė kai tai nuo problemų septynis šiandien, kad daro daug dalykų krūva ir tegul tiesiog pažvelgti į vieną iš jų ypač. Ši funkcija čia užklausą, bus PHP funkcijai mes vadiname siekiant vykdyti SQL. Prieš akimirką buvome naudojant phpMyAdmin, bet tai tik už rūšies mokymosi tikslais ar diagnozavimo tikslais ir nepamirštant savo duomenų bazės rinkinys. Kai jūs iš tikrųjų naudoti Jūsų duomenų bazė, jūs, žmogaus, akivaizdžiai nesiruošia reikia traukiant web puslapis kiekvieną kartą, kai kažkas registrai. Jūs ketinate rašyti kodą, kad įtraukti ir pašalinti vartotojus pagal pareikalavimą, ir mes ketiname tai padaryti būdu užklausos funkcija. Jeigu aš dabar pereikite žemyn, ten bus keli požymiai. Nukreipimo ketina yra funkcija rašėme Jums, kad leidžia jums siųsti vartotoją į kitą URL ir padaryti tai funkcija, labai patiko matėme pirmadienį, kad iš tikrųjų teikia šablonas, bet daugiau apie juos, forma pset7 nuosavo pasivaikščioti. Nes dabar, eikime į priekį ir tai padaryti. 

Leiskite man eiti į mano paskaitas stalo ir matyti, kad šiuo metu nieko čia nėra, ir leiskite eiti į mano viešame, kur ten tik vienas failas, index.php. Šis failas atrodo super paprasta tuo momentu, atrodo tiesiog kaip šis. Labai panašiai, kaip mes baigėte pirmadienį. Aš reikia šį failą, config.php, kuri yra apima katalogą, kuriame yra dot dot, mano tėvai, ir tada jis tiesiog padaryti šį failą. Taigi, kas yra šis failas? 

Leiskite atverti mano šablonus form.php, ir mes pamatyti tai. Super paprasta, matyt ši forma ketina pateikti iki $ _GET ar $ _POST. Greita normalumas patikrinti. Drąsiai vizualiai ieškoti failą. Metodas prilygsta postą. Taigi jis nesiruošia naudoti URL, kaip "Google", jis ketina rūšiuoti odų informacija už scenos ir tai ketina pateikti failas, vadinamas register.php, ir tai failas mes dar parašyta bet ką tai vyksta atrodyti tai. 

Jei aš einu į atskirą puslapį, tai kas localhost / index.php atrodo. Ir vėl, serverio tiesiog darant prielaidą index.php. Įveskite. Štai kur mes esame ne, ir tai, ką aš noriu padaryti, yra sugebėti įvesti dalykus kaip Dovydas, o tada mano telefono numeris, kuris sakys 617-555-1212 dabar, registruotis ir dabar register.php nerastas. Taigi man reikia įgyvendinti tai. Taigi galime greitai plakti kažką panašaus į viršų. Leiskite man eiti į mano viešame ir padaryti gedit iš register.php, ir dabar aš ruošiuosi eiti į priekį ir pradėti PHP režimą, kaip tai darėme pirmadienį, ir glaudžiai PHP žymeles, ir darykime keletą dalykų. 

Taigi vienas, aš žinau, iš parašęs tą blanką, kad aš noriu patikrinti, ar taip. Jei jis yra tuščias, neatsižvelgiant į vartotojo įvestas į lauko pavadinimas, tada Aš ruošiuosi pasakyti kaip atsiprašyti trūksta vardą. Atsiprašyti, tuo tarpu, yra ne pastatytas PHP dalykas, tai funkcija rašėme į functions.php už pset7 taip, kad jūs turite prieigą prie jo. Else if kitoje srityje tuščias, numerį, tada aš tikiu, ketina atsiprašyti vartotojas ir pasakyti trūkstamą skaičių. Išsaugoti šį failą. 

Dabar grįžkime prie mano naršyklės, grįžti į forumą bandykite dar kartą. Registruotis. Gerai. Nieko neatsitiko, kuris yra geras. Negavau klaidos pranešimą. Bet jei vietoj to, tegul iš naujo įkelkite šį puslapis, o ne suteikti nieko. Velnias. Padaryti. Registruotis. Ką aš padariau ne taip? Jei paliksite tuščią, $ _POST vardas. Kartoju? 

Oi, žinoma. Pamiršau svarbiausią dalį, kuri yra reikalauti ("../ apima / config.php").. Man reikia turėti prieigą prie Atsiprašome funkciją, kuri kodėl nieko nevyksta. Funkcija nėra iš tikrųjų egzistuoja. Taigi pabandykime tai dar kartą. Leiskite perkraukite puslapį, paspauskite registro. Gerai. Štai jis. Taigi, išėjimas mes matau čia yra rezultatas skambinę atsiprašyti funkcija, super paprasta, ir tai tik spausdina viską Aš duodu ją kaip argumentą. 

Gerai, todėl galime bendradarbiauti. Leiskite pateikti savo vardą kaip Dovydas, registras, trūkstamas skaičius Gerai tegul numato, kad per daug. 617-555-1212. Registruotis. Gerai. Taigi viskas yra gerai dabar, tik nieko Įdomu, kas vyksta. Taigi dabar padarykime kažką daugiau Įdomu atsitikti taip. Leiskite man eiti į phpMyAdmin, ir tegul iš tikrųjų sukurti lentelę, pavadintą vartotojai, Aš ruošiuosi duoti jam tris kolonos, ir aš greitai kurti ID, ir tada pavadinimą, tada skaičius, ir ID laukas aš paliksime kaip int. Vardas lauke aš ruošiuosi palikti kaip varchar, ir mes pasakyti 64, šiek tiek savavališkai. Skaičius aš ruošiuosi padaryti, žinote, ką? Važiuojame į Paremkite mus numerius čia, todėl aš ruošiuosi daryti kažką kaip char ir tada 10 simbolių max vietovės kodą ir septynios skaitmenų. Ir tada per čia, aš ruošiuosi nurodyti auto prieaugio šioje srityje, kad šis pirminis raktas, ir Aš ruošiuosi eiti į priekį, o ne patikrinti bet kuriuo iš šių kituose langeliuose. 

Taigi, kai aš pagaliau spustelėkite Įrašyti, ir aš einu atgal į savo vartotojų stalo, tai, kaip jis atrodo, jei aš Dabar spustelėkite naujo skirtuko struktūrą. Taigi tai, kad būtų aišku, tik phpMyAdmin yra būdas pasakyti savo duomenų bazės lentelės turi ID, pavadinimą ir numerį, su tomis konkrečiomis konfigūracijų ir mes ignoruoti likusius laukus ten dabar. 

Taigi, dabar, ką aš noriu daryti? Taigi, jei aš einu dabar į mano kodo, jei viskas yra gerai Noriu įvykdykite šią užklausą. Įkiškite į ir galiu tik pasakyti vartotojai nemanau griežtai reikia tiems atgal erkes, jei tai ne pavojingas žodis, kaip vartotojams. Aš ruošiuosi pasakyti vardą, skaičius, tada čia aš nesiruošia kietąjį kodą skaitmenų vertybių dar. Aš ruošiuosi įdėti du klaustukų. Ir tai yra konvencija įvairiomis kalbomis kuriuo, jei norite, kad Ieškoti teksto eilutę placeholder jūs ketinate naudoti į klausimą ženklai, dėl priežasčių, mes grįžti prie pokalbių apie saugumas, o čia Aš ruošiuosi važiuoti, tie du laukai rašyti vardą, ir tada patalpinti numerį, ir dabar išsaugoti failą. 

Ir dabar aš ruošiuosi eiti čia yra super tiesiog pasakyti rendersuccess.php, kuris bus dar vienas šablonas. Aš ruošiuosi sukurti tikrai greitai. Geditsuccess.php ir aš tik ketina pasakyti H1 sėkmės šio failo. Gerai. Taigi, dabar, grįžkime prie naršyklė, kurioje lankiausi prieš. Vykime į priekį ir patvirtinti parašiau Dovydą, rašiau telefono numerį, užsiregistruoti. Velnias. Ką aš padariau ne taip? Taigi matau klaidą čia jums turi savo SQL sintaksės klaida. Leiskite pereiti atgal į gedit, leiskite man grįžti į register.php, ir ką aš praleisti, kad buvo svarbu paskutinį kartą? Man reikia tai. Jūs norite žinoti, kad ne iš pastebėję anksčiau, bet man reikia tai. 

Taigi dabar grįžkime, ir tai buvo naudinga pamatyti naršyklėje ir štai kodėl config.php mes išspjauti klaidų. Vykime į priekį ir vėl įdėkite, spustelėkite Tęsti, sėkmę. Taigi dabar leiskite man eiti į mano duomenų bazė čia ir spustelėkite Vartotojai, ir naršyti, ir pastebėsite, dabar aš turėti Dovydą savo bazę čia. Dabar techniškai ši svetainė yra dar ne viešąjį internetą, todėl aš negaliu turėti kitos žmonių išleisti čia, bet jei aš dabar norėjau, už pavyzdžiui, siųsti sau tekstinį pranešimą. Vykime ant galūnių čia ir pamatyti, jei tai iš tiesų veikia. Aš ruošiuosi eiti į priekį ir ištrinkite šią eilutę ir mes sulieti tai iš video vėliau taip mes neturime Visa interneto text me, ir mes dabar einame į Naršyklė ir mes pereiti per paskaitą ir mes įvesti skirtingas skaičius čia registruotis, sėkmę. 

Taigi dabar, mano numeris yra matyt duomenų bazė, o dabar įdomus dalis. Leiskite tikrųjų naudoti PHP daryti kažkas programiškai arba iš komandą linija arba iš kažkur kitur, o dabar aš tiesiog ketina laikyti jį paprasta ir aš ruošiuosi eiti į savo katalogas čia ir atlikite šiuos veiksmus. Gedit scenarijus tarkim, mes vadina jį teksto, #! / user / bin / env PHP, kaip matėme paskutinį kartą. PHP. 

Dabar aš ruošiuosi daryti reikalauja apima config.php, nors tai gali sukelti nežymų klaidą. Ir dabar aš ruošiuosi eiti į priekį ir pasakyti eilutės, užklausos, pasirinkite žvaigždė iš vartotojų, ir dabar čia aš ruošiuosi daryti techniką nuo paskutinio karto kiekvienai eilučių kaip eilės. Ir aš ruošiuosi daryti ką nors paprasto. Printf tarkim vardas tai, ir numeris yra, kairinis brūkšnys n. Ir dabar aš ruošiuosi perduoti iš eilės citata citatos vardą, ir eilė citata citatos numeris o dabar eime į priekį ir mano terminalo langą chmod tai + x padaryti Šis scenarijus vadinamas tekstas vykdomąjį. O dabar tegul paleisti tekstą. 

Gerai, kad pažanga. Taigi aš dabar parašyta komandinės eilutės scenarijų, kalba vadinamas PHP, kad, dėl, kad reikalauti liniją, turi teisę susipažinti su visais, kurie konfigūraciją konstantos, kad aš nurodyti. Duomenų bazės ir pan pavadinimas. Tiesą sakant, tiesiog, kad būtų aišku, kad tai ne laimingas atsitiktinumas, leiskite eiti į priekį ir užsiregistruoti, tikrai greitai, kažkas kaip Rob ir Damoms 555-1212 skaičių. 

Ir dabar, jei aš paleisti scenarijų vėl pastebėsite galia ką mes darome su duomenų baze. Dabar aš iš karto matyti, kas kitos dvi eiles yra mano duomenų bazėje. Taigi, dabar pabandykime ką nors net mėgėjas viduje, ir tai yra dalis mes ve nebandytas iš anksto, todėl aš paskutinį kartą tai padarė dalykai nuėjo siaubingai kreivai, mes turime vaizdo įrašą šiuo tikslu. 

Tiesą sakant, taip, juokinga šoną. Taigi, paskutinį kartą iš paskaita kaip prieš dvejus metus, mes nusprendėme, aš nusprendžiau, kad būtų visa tai būtų puiki idėja dinamiškai generuoti laiškus klasė, naudojant visą duomenų bazę CS50 studentų, kurie davė mums savo numerį ir jų telefoną vežėjas, jums galime prisiminti iš pset0, kaip argumentuoti, paaiškėja, Turėjau smulkūs mano programos ir padarė keletą klaidų 2012, manau. 

Pagal kurią, viena turėjau kilpa, kad darė būtent šios rūšies dalykas, Iteracja per duomenų bazę, gauti vardą iš duomenų bazės, iš duomenų bazės pavadinimas, o tada ant kiekvieno pasikartojančių toje kilpa aš išsiuntė elektroninį laišką. Bet vietoj to, siunčiant vieną laišką, aš nusiuntė tokį laišką pirmajame iteracijos, ir du laiškai antrosios iteracijos, siunčiami Trys laiškai antrosios iteracijos, kuris kaip jūs tikriausiai pamenate iš mūsų diskusija asimptotins notacijos tai didelis O blogai, kaip kad n kvadratu yra kiek pranešimų nusiunčiau, bet tai buvo ne net laiškus tai buvo tekstiniai pranešimai. 

Ir, kaip žinote, lankomumo nėra super aukštos link pabaigos semestrą taigi ir aš maniau, kad būtų mielas ne laikas pasakyti: "Kodėl tu klasė?" Teksto žinutėje I siunčiami visai klasei, ir tai buvo juokinga, patinka 50% klasė, bet kiti 50%, kai kurie iš jų Pstry, aš išsiuntė neįtikėtinai Aizstāvošs saldžias į personalo atsiprašyti už atsižvelgdamas praleidau paskaitą tiesiog šį kartą, tiesa? 

Kad būtų siaubingai kreivai. Taigi šia dvasia, pabandykime tai vėl, bet vos su mano numeriu. Iš anksto ir functions.php, Aš parašiau šią funkciją čia. Tai vadinama tekstas, ir jis trunka tris argumentus. Skaičius, vežėjas, ir pranešimą. 

Aš naudoju SWITCH, kuris nuostabiai PHP imtis stygos, o ne tik sveikieji skaičiai, ir aš ne įdiegti visi už šią paramą dar, Aš ką tik padarė AT & T ir Verizon. Nes paaiškėja, kad su šiais vežėjais jie el.laišką SMS šliuzai, kuriuo galite realiai siųsti el.laišką adresu kaip telefono numerį ne vtext.com ir, jei vartotojas nėra užblokuotas pranešimai, jis bus eiti per yra tekstinė žinutė. 

Dabar tai padaryti, aš ruošiuosi įdėti vienas lauke tikrai greitai į mano duomenų bazėje. Aš ruošiuosi eiti į mano struktūra, ir aš ketina eiti į priekį ir pridėti laukas tuo lentelės pabaigoje. Leiskite spustelėkite Eiti, ir aš tikiu, paskambinsiu šis vežėjas ir dabar aš ruošiuosi palikti tai kaip baras tekstą, bet mes galime būti mėgėjas ateityje. Aš ruošiuosi greitai pereiti į mano stalo, ir aš tikiu, ketina atsikratyti Rob, nes tai netikras numeris Aš ruošiuosi eiti į redagavimo čia ir aš ketina keisti savo vežėjas rankiniu būti Verizon, kuri ją yra, ir dabar čia. 

Darom greitai normalumas patikrinti. Leiskite atverti mūsų teksto scenarijų, kuris atrodo taip, vežėjas yra% s. Mes darome daug daugiau klaidų tikrinti, nei aš iš 2012, laikikliai. Ir dabar, aš ruošiuosi eiti į priekį ir vėl paleisti scenarijų. Gerai. Vežėjas Verizon, o tai reiškia, Dabar tikiuosi galiu daryti tik tai. Teisingai šiemet, tikiuosi, čia mes einame. 

Taigi viduje šis for ciklas, aš tikiu, teks ne tik šį printf, Aš taip pat ketina paraginti tekstą ir Šios funkcijos atšaukimo naudojimas buvo užtrunka skaičių, vežėjas, ir pranešimas. Taigi pažiūrėkime, skaičius nuolat būti eilių citata citatos "skaičių" eilutė citata citatos "vežėjas" o paskutinis buvo žinutė. Negalima susukti šiemet kabliataškį. 

Gerai. Kumščius. Leiskite pamatyti, jei tai veikia. Gerai, taip. Here we go. Leiskite atrakinti telefoną, laikykite kumščius rautų. Undefined kintamasis may-- oh palauk, palauk, palauk, labai greitai. Nekilnojamasis greitai, labai greitai. Tai visiškai verta. Leiskite patraukti leiskite patraukti, uh-oh. Ačiū, tekstai turi pradėjo iš kito. Leiskite man eiti į priekį ir atverti nekilnojamojo greitai, dropbox.php / pašto čia. Budėjimo. Visiškai verta. Parsisiuntimai. Gerai, šaltinis src8m. Gerai. 

Reikia daugiau vieną eilutę čia. O ten jis yra, jis yra Frosh IV, tai iš registro ne trys. O labas, Margo, labai ačiū. Gerai, pasigendu šią eilutę čia. Taigi leiskite man greitai patraukti tai kodo eilutę, kuri apima paštu arba biblioteką kad aš iš tikrųjų noriu naudoti, Aš ruošiuosi greitai grįžti į funkcijų, Aš ruošiuosi eiti į šią viršų byla ir reikalauti šį failą taip, ir dabar aš ruošiuosi tikrai kirsti mano pirštai, kai aš grįžti į komandą linija scenarijus, kuris yra viduje Šiandienos vietinio kompiuterio katalogas. Paleisti teksto. Įveskite. Paštas. Budėjimo. Budėjimo. Paštas. Oi, gerai. Here we go. 

Pašto gaus naują PHP mailer. Ar aš tai padaryti teisingai? Velnias. To-- Oi, palauk, palauk, palauk. Budėjimo. Pažadu, tai bus taip verta. Adresas. Tai kodėl aš ne padaryti pavyzdžiai teisę prieš klasę. Ugh. Šie gavėjai nepavyko. Pabandykime dar vieną dalyką. SMTP nustatyti iš, pridėti adresą, adresas iš tiesų yra, kad. Pabandykime šią paskutinę vaidmenį adresą. Aw, aš tikrai liūdna dabar. Ačiū. Bet aš tikrai vertiname viską tekstai, kuriuose buvote siunčiant. Jūs turite šį Dovydą. Jūs pučia. Palikime jį ten ir mes ją išspręsti pirmadienį. Pasimatysime vėliau. 

DAVEN Farnham: O dabar Deep Mintys pagal Daven Farnham. Jei dvigubi medis patenka į mišką ir niekas aplink C it-- [chuckling].