[Muusika mängimine] DAVID J. Humala: Hea küll. Tere tulemast tagasi. See on CS50. See on nädala lõpuks 8. Ja nagu te teate, on meil päris regulaarset tööaega paar Euroopa söögisaali, sealhulgas Annenberg. Ja mõned meeskond sõbralikult võttis mõned pildid viimasel ajal. Ja auks Halloween, me arvasime, et oleme jagada ühte, et pigem on püütud meile üllatus siin Annenberg Hall lihtsalt teised õhtul. Teie klassivend Jacob poseerinud see foto, kuid see oli rohkem naljakas oli Facebook, Järgnenud vestlus, mis juhtus hiljem. Tema esimene postitus vastus tema foto oli see. Paar minutit hiljem, otsustas ta ühe kuni ise sellega. Ta jätkas, siis minna seda, ja siis veel Lõbusas on see, kui tema ema chimed. Ja siis lõpuks, tundub, et see oli lihtsalt imeline riugas eest mängida, et toimub. Niisiis, kui soovid näha Jacob ja teised, nende seas Cynthia Meng, kes on kulisside taga CS50 tsooni personal pea see URL ja selle mängu siin. Niisiis ilma pikema jututa, täna jätkata seda vaadata veebi programmeerimine, ja tegeliku loomise programmid et ei jookse oma käsurida, vaid joosta sees brauserit. Arvatavasti nüüd või väga varsti, sa lähed olla keset rakendamisel oma veebiserver, mis erineb veebi programmeerimine. Veebiserver pset6 on kõike kirjutamise tarkvara, mis teab, kuidas võtta HTTP päringuid brauser, või isegi sinult, inimene, koos programmi nimega Telnet ja seejärel vastata neile taotlustele, sülitamine välja HTML fail või jpeg või gif või isegi .php faili. Aga veebiserver, see ei ole peaks lihtsalt avada PHP fail, midagi lõpeb Php ja siis sülitama sisu. See peaks tegema mida see fail esimesena? Nii öelda. Ei kompileerida me ütles esmaspäeval, kuid rather-- Nii tõlgendada. PHP on tõlgendanud keeles, ja nii üks peamisi funktsioone veebi server, kuigi meie rakendatud, on see võime oma veebiserver teate, oh. See fail ja käesolevast lõpeb .php. Ma ei või lihtsalt saatke see kasutaja nagu see on staatiline sisu, vaid lase mul seda lugeda rida rida, vasakult paremale, ja seda tõlgendada. Ja mida teha, et sa poisid sisuliselt punt, et programm seadme ja palju arvutisüsteemid, just helistas PHP. See on nimi PHP keele enda tõlk. Nii, et tükk me rakendada teid, ja mida jätta et sa, lõppkokkuvõttes on number tükki, mille hulgas rakendab toetust Staatilise sisu. Aga nüüd, ja probleem pani seitse, sa oled kavatse hakata üleminek tegelikult kirjalikult PHP koodi mis saab tõlgendada rääkides kolp andmebaas, mis talletab teavet. Nii et olgem paremini mõista esimene Paar need superglobals ja kui palju võimu te saada karbist tasuta koos nagu PHP. Asjad, mida ei ole rakendada ise. Nii nägime esmaspäeval $ _GET, mis on superglobal, mis on lihtsalt PHP rääkida ülemaailmse muutuja pääsete kõikjal. Ja mis sees on $ _GET? Mis on sees see superglobal, mida me näeme? Kindlasti statistiliselt juures vähemalt üks inimene teab. Mis on sees $ _GET? Jah? Sihtrühm: See on muutujad paned stringi. DAVID J. Humala: Perfect. See on muutujate sa panna stringi. Niisiis, meie vanemate eeskuju reimplementing Google, kui meil oli URL ja siis küsimärk mis piiritleb algust HTTP parameetreid, siis oli meil q võrdne midagi, nagu q võrdub kassid, mis oleks automaatselt sisse minna selle $ _GET super globaalne teile, sest PHP on võti Q, ja selle väärtuse kassid. Teisisõnu, $ _GET ja kõik need asjad on assotsiatiivne massiivid räsitabeli kehvasti, et kaupluse võtmed ja väärtused. Nüüd tagasi pset5, hash tabel, mida oleks võinud rakendada, või proovida võid on rakendanud, tõesti oli tegelikult assotsiatiivne massiiv, andmestruktuur millega saab seostada võtmeid väärtusi. Aga pset5 väärtused oli tühine. Väärtus oli sisuliselt õige või vale. Kas sõna sõnastikku? Seega, kui sa räsitud sõna nagu õun et näha, kas õun on sõnastikku oma kontrolli funktsioon arvatavasti tagasi tõene või väär. Nii, et tõhusalt raha me saada tagasi. Aga me nägime esmaspäeval lühidalt, saate kindlasti seostada huvitavamaks väärtusi kui lihtsalt õige või vale võtmed, nagu õun. Sa võiks tegelikult tagasi suvaline string, ja tõepoolest, see on, mida $ _GET ja nende teised muutujad lase sul seda teha. Nii et $ _POST on sarnase sisuga, kuid kui te esitama vormi kaudu postiga erinevate HTTP meetod, mis on kasutatud asjad nagu krediitkaardid, ja isiklik informatsioon ja isegi binaarne info nagu fotod, need asjad lõpuks seestpoolt $ _POST. Ja tegelikult faile nagu JPEG ja tühi-tähi, seal on isegi veel, et ei ole siin nimetatakse $ _FILES samuti. Niisiis, server me ei tegele liiga palju, kuid see annab teile juurdepääsu sorteerida madalama taseme andmeid server ise, et te kasutate. Cookie ja istungil, kuigi me tegelikult näha nüüd. Viimane on see, mida me kasutame, et rakendada mõiste ostukorvi. Super lihtne, kuid turult et meil oli see näide, lugedes mitu korda sa käis see leht enne. Aga täna, mitte ainult vaadata mõju see, olgem avada Chrome'i inspektor, mis tavaliselt saab teha parema klõpsuga või kontrolli klikkides kuhugi veebilehele, ja seejärel valida kontrollida element. Või võid minna menüüdes et me kirjeldame pset6 spec. Ja ma lähen sakk Network siin ja lähme vaatama hetkeks HTTP liiklust, mis on läheb edasi ja tagasi. Lubage mul kõigepealt minna ja selge Chrome vahemälu. Nii et mõned võite olla tuttav seda tehnikat juba, ja me ei kavatse seda kasutada silumisel siin. Nüüd kui arvuti teadlased ei kavatse alustada Seejuures silumiseks eesmärkidel, mille me vahemälu, tavaliselt nii, et me saab vabaneda asju nimetatakse küpsiseid. Nii et sa oled ilmselt üldiselt tuttav mida küpsised on, või vähemalt et nad on olemas, kuid milline on oma arusaamist nendega, lihtsalt kasutaja arvutid, mis on küpsis? Jah. Sihtrühm: See on natuke of-- hästi, ei natuke mõiste infotehnoloogia. See on tükk andmed, et veebisait saadab teile, et et oleks võimalik salvestada statistika teile. DAVID J. Humala: OK, hea. Nii et see on tükk andmed, et server, paneb arvutisse, ja olgem üldistada seda isegi rohkem, see on võti value-- hästi, mis on üha täpsemaks. See on tükk saamiseks tükk andmed, et server on võimeline panna oma arvuti ja väga tihti, server ei see, et meenutada, kes sa oled. Nii näiteks, koefitsiendid on sul ilmselt sisse loginud saidid nagu Facebook, või Gmaili või teised enne, ja te logite sisse oma kasutajanimi ja parool ja siis pärast, et mõned number minutit või tundi või isegi päeva server mäletab, et sa oled tegelikult sisse logitud. Nüüd, kuidas see tegelikult toimub? Sest sa oled kindlasti mitte tippida Teie kasutajanimi ja parool iga kord liigute teisele lehele Facebookis. Nii selgub küpsised on vastus. Küpsis sa ei mõtle nii, omamoodi nagu digitaalne käsi tempel, et sa võiksid saada on meelelahutuseks park või klubi, mis sisuliselt näitab, et olete olnud siin enne, ja sa oled juba näidata oma ID väljaviskaja jaoks Näiteks ja et klubi või pargis Nüüd peaks eeldama, et sa on tõestatud juba. Olete juba kindlaks teinud seda. Nii et seda silmas pidades, olgem avada counter siin. Lubage mul minna, ma just tegin, ja kustutada kõik küpsised. Ja nüüd ma lähen tegema, on hoidke Shift, lihtsalt hea meede, ja sunniviisiliselt laadige leht uuesti. Shift lihtsalt veenduda, et miski saab vahemälus. Ja siin on taotluse mis läks edasi ja tagasi. Nii et siin on meil palve, ja lase mul suumimiseks siin, ja palju see on omamoodi ebahuvitav üksikasjad nüüd, et brauser on automaatselt saadetakse, kuid olgem klõpsake View Allikas näha toores päised. Ja kui olete sukeldus pset6 juba, saate kindlasti tunnustada asjad meeldib see, ja võib-olla mõned Nende muude liinide siin kuid mis veelgi huvitavam täna kui ma keri, mitte taotluse vaid nn vastuse see rida ilmselt tundub tuttav. See on hea asi kui sa näed 200 OK. Ilmselt see on kuupäev ja kellaaeg serveris ja seal on hunnik asju. Oh, see on huvitav. Selgub, kui te kasutate PHP, vähemalt selles serveris server sülitab välja, mida PHP versiooni te kasutate. Mis tegelikult turvalisuse eesmärgil, ei ole hea asi. Aga me tuleme tagasi selle mõni teine ​​kord ehk. Aga nüüd on see mahlane line täna ja nägime korraks mõned neist, Ma arvan, et Facebook kui me torkasid ümber Inspector sel ajal, set cookie on see, mida istutada et tükike info arvutisse. See on HTTP päis see on tõhus ütlen brauseris Chrome, IE, mis iganes, hey brauseri poe kasutaja kõvaketas või kasutaja RAM, klahvi nimetatakse PHPSESSID, mis on stenografist märke sessiooni ID, ja annab talle väärtuse 0vlk8t, dot, dot, dot. Tõesti pikk pseudo juhuslikult tähti string. See on lihtsalt väga suur number, kuid see on kodeeritud tähed ja numbrid et suurus võib olla isegi suurem kui numbrid üksi. Ja siis, muide, Path = /, et tähendab lihtsalt, et see küpsis peaks olema seostatud kogu veebilehe, mitte ainult ühe leheküljel kogu asi. Nii see on, et virtuaalne käsi tempel. See on nii, nagu server, Facebook, või meie puhul seadme on sõna-sõnalt kirjutatud 0vlk8t ja nii edasi, oma käega. Pane tähele, mida server, ei tee see pole ladustamiseks mu kasutajanimi, kindlasti mitte salvestada oma salasõna. Pigem tundub olevat ladustamiseks pseudojuhuslikku info nii et keegi ei saa vist mida mu käsi tempel on. Sisse serveripoolne, Vahepeal server läheb mäleta, arvatavasti in andmebaasis või midagi, et kasutaja, kes tulevikus esitleb käsi tempel 0vlk8t, dot, dot, dot, tuleb seotud selle Eelkõige ostukorv, nii rääkida. Teisisõnu, kui ma nüüd minema siia tagasi ja laadige leht uuesti, kuidas server tea et käisin ühel ajal? Või kui ma seda uuesti, kuidas server tean, et olen külastanud seda kaks korda? Noh, kui ma minna seda viimane taotlus, mis Nüüd on kolmas, et olen saatnud kokku märka minu soov nüüd. Endiselt on see nõuda siin, sama nagu varem, seal on veel terve hulk kraami, et oleme ignoreerinud nagu enne, kuid viimasel päis, see aega, sest ma olen siin varem olnud, on esitlus see virtuaalne käsi tempel. Kusjuures see joon siin, mitte seada küpsist kuid cookie koolon PHPSESSI = 0vlk8t, see on ainult minu brauseri automaat ka käesoleva käsi tempel nii et Nüüd server, niipea kui ta mõistab, ooh, see on kasutaja 0vlk8t dot, dot, dot, Nüüd saan aru, kes ta on ja uuesti siduma selle kasutaja olenemata teave tahan ja kõik et teavet saab salvestada teie, programmeerija, in $ _SESSION. Nii et peab olema selge, kui ma avada reaalne kiire aastal gedit et tegelik faili counter.php, minu kohalikus masinas avalik kataloog nagu enne, märkate, et tõepoolest, Ma lõpuks salvestamine $ _SESSION Quote Tsitaat lõppeb "counter" väärtus eelmise loendur, mis Ma saan neid ridu siin, et me vaatasin viimast korda pluss üks. Nii all kapuuts, see on kõik küpsised. See on lihtsalt omamoodi digitaalse käsi tempel läheb edasi ja tagasi, ja ausalt öeldes, kui avate Chrome'i Inspektor tahes veebisaidi külastad täna, super suur tõenäosus, sa lähed, et näha, võib-olla üks, võibolla pool tosinat küpsised mida mäletatakse teid. Ja hullem veel, kui need külastatava veebisaidi kõigil on reklaamid, mis Kindlasti on üsna tavaline täna ja kui need reklaamid tulevad mõnest Keskerakond, keegi nagu Google või AdWords, nagu nad kutsuda ühe oma tooteid või muu selline müüjad, et müüa reklaami, mis on huvitav, ja ausalt öeldes, mis on veidi murettekitav, kuidas HTTP töötab, on see, et kui teil on reklaami varjatud aastal Facebook.com ja Google.com, ja Harvard.edu iga number veebilehed, nii et see on selline et seal on keskel mees, kes kannab up reklaame kõik kolm neist veebisaitidest, Selgub, et küpsised kehtivad domeeni. Nii et kui teil on reklaami kategoorias sama firma erinevate veebilehtede, et ettevõte saab tõhusalt jälgida, kes te olete kõigi nende veebilehtedel. Harvard ei pruugi teada te külastate Facebook. Facebook ei pruugi teada ja te külastate Harvard. Aga mida iganes reklaami teenus nad kasutavad, kui see domeen on olemas nii Harvard.edu web lehed ja Facebook.com veebilehti, Selle keskel mees kindlasti teab, kes sa oled sest need küpsised jagatud üle, või pigem, et nn vahendaja. Nii et me tuleme tagasi selle sisse mõju julgeolekule, ning kuid seal on palju informatsiooni hoitakse sinust iga kord, kui külastada kõige tahes veebilehe internet ja see tõesti vähendab selle väga lihtsa mehhanismiga. Mis juhtub siis, kui sa oled super paranoiline ja te otsustate minna Chrome või IE või mis iganes ja välja lülitada küpsised? Mis juhtub? Jah? Sa really-- oled seda teinud õige? OK. Ei, edasi minna. Sihtrühm: Mõned veebilehed ei ole funktsioon ei tunne Facebook. DAVID J. Humala: Jah! Nii et teatud veebilehed lihtsalt lakata töötamast. Ja kõige veebilehed nendel päevadel et põhimõtteliselt tugineda küpsised eriti kui nad on sisselogimisel aastal, nad lihtsalt läheb katki. Kuna kaaluda teise võimalusena, kui veebileht on kuidagi mäletamine, kes sa oled, ja seega oma veebilehitseja ei esindavad iga HTTP taotluse selle poolt tempel, tõhusalt veebilehel nagu Facebook läheb et pead märku sisse iga darn aeg muudad lehekülge või klõpsake linki, mis Kindlasti ei ole eriti hea kasutaja kogemus. Nii et ka seal on vahel kompromisse. Niisiis ilma pikema jututa, võtame enesestmõistetavaks, et veebi programmeerimine, keeltes nagu PHP, sa ei mäleta teavet, näiteks, et probleem määratud seitse, kui rakendada oma E * Trade moodi veebileht, mille abil saaks osta ja müüa varud, siis saad mäleta täpselt mida kasutaja on ostetud ja müüdud ja kes ta on teel selle sessiooni. Aga me ei kavatse vaja Kasvataja viis kui e-posti alustada hoides informatsiooni ümber. Õigus? Esmaspäeval, me rääkisime Frosh IEd ja kuidas versioonis üks selle veebisaidi aastat tagasi, kõik me tegime oli kirjuta Proctor, kes on vastutav ettevõttesisene sport Programmi nimi ja sugu, ja kas nad kapten ja ühiselamus keegi, kes on Registreerudes ettevõttesisene sport. Nii see ei ole halb, aga ta siis tuli troll läbi oma e-posti luua arvutustabeli või midagi sellist et hoida kõike korraldada. Nii et kindlasti me nagu programmeerijad võib seda sinu eest, et Procter. Ja nii sisestada SQL, Structured Query Language, mis läheb otsima ilus erinevad nii C ja PHP, ja sa sukelduda palju käed PHP ja probleem pani seitse, vaid ka SQL, või SQL, see on keel, mis kasutate rääkida andmebaasis. Aga mis on andmebaas? Noh sa arvad andmebaas, vähemalt praegu, kui lihtsalt on nagu Exceli faili või kui oled Maci kasutaja numbrid faili või kui sa oled Google Apps kasutaja Google'i arvutustabel, see on tegelikult andmebaasis või tegelikult konkreetselt relatsiooniline andmebaas. Relatsiooniline andmebaas on lihtsalt midagi, millel on read ja veerud, ja te saate salvestada mis tahes teave nende read või veerud. Aga mis on tore SQL ja umbes tegelik andmebaasid, mitte ainult tabeleid või Google arvutustabelid on, et saate kasutada keelt tegelikult täita päringut lisada andmeid, et kõrvaldada andmed, otsida andmeid, isegi Kõige tähtsam on, ja sa ei pea seda kasutada üsna käsitsi Nagu te võite tavaliselt Google tabelisse niimoodi. Nii SQL, seal on kamp põhilisi seisukohti või tükid funktsionaalsus sisse ehitatud. Seal on palju rohkem kui need, kuid võite minna tohutu vahemaa teades seda, et Selles keeles nimetatakse SQL on vähemalt neli avaldused saate kasutada. Kustuta, et kõrvaldada andmed, Lisa, lisades rida, Update muutmiseks Ridade ja valimine, saada tagasi ridade ja see on tõesti see, mida SQL teeb. Ta tegutseb täielikult rida nii et kui sisestate või eemaldada, või värskendada, või valida, mida sa oled saada tagasi kui nn tulemuse hulka, nagu massiivi rida. Kamp rida tabelist. Nii et juba järgmisel päeval, ja isegi see päev, saab suhelda andmebaasi kasutades käsurida, kuid see ei ole eriti lõbus kasutada see must ja valge stiili aknas ja tegelikult täita käske ja tuhnima oma andmebaasi. Graafilise kasutajaliidese või GUI, on palju parem väidetavalt ja nii näitaja soovitame ja eelnevalt installitud seadmele nimetatakse phpMyAdmin. See on täielik juhus, et nimi see asi on PHP on see, see tähendab, et inimesed kes kirjutas selle programmi enda kirjutas ta PHP. Aga see on lõppkokkuvõttes manustamist andmebaasi server, nagu MySQL server et teil võib olla, kui sa teha, et CS50 seade. Nii et seal on üksikasjalikumalt siin kui peame hoolivad täna aga mis peamine on see, et vasakul servas on loetelu andmebaasid et sul on arvutisse, Teie CS50 seade, või tulema lõplik projekte, mida võiks on kolmanda isiku, ettevõtte veebilehel või veebilehe server, mis siis võiks maksavad ruumi. Nii vasakul on andmebaase, millest üks on pset7 mida ma laenatud kõrval nädala pset, ja siis peal seal märgata seal hunnik kaarte, millest üks on on andmebaasid, SQL, staatus, kasutajad, ekspordi ja nii edasi. Nii saab minna veel pikk tee lihtsalt realiseerimisel et enamik kasutajaliides on ülemises vasakus tulbas ja ülaosas õigus seal. Mida me saame tegelikult pistmist? Noh, alustame luua natuke informatsiooni järgmiselt. Oletame, et järgmine on, kui on vaid paar päeva, soovite rakendada kodulehel, mida nimetatakse CS50 rahandus ja seda kodulehel saab osta tsiteerin lõppeb ja müüa varud. Ja see läheb välja nuputada hind nende varude lõpuks nagu näete, rääkides Yahoo Finance. Mis, imeliselt, on tasuta teenus millega saab liigu börsisümbol nagu GOOG Google, ja see teile tagasi Google'i praegune aktsia hinna sees varem paar minutit vähemalt. Nii saad kasutada, et lõppkokkuvõttes teeselda, et kasutaja osta ja müüa tegelik varud, kasutades virtuaalset raha, kuid kõige esimene asi, kasutaja näeme on see login ekraan, mis palub neil oma kasutajanimi ja parool. Ja nii, üks esimese väljakutsed teil pset7 läheb rakendada kolp andmebaasi, arvutustabeli kui soovite, et läheb salvestada kasutajad ja paroolid ja lõppkokkuvõttes varude nad omavad, ja kes, kui palju ja kui palju raha neil on, nii hunnik muid asju tabelite või tabeleid. Võtame vaatame, kuidas see võib tunduda esimesel pilgul. Ma lähen tagasi Seadme ja ma olen lähevad selle URL siia phpMyAdmin localhost / phpmyadmin ja sa näed, et see viib mind liides täpselt nii, nagu nägime Ekraanipilt, ja siin ma on täiendav andmebaas nimetatakse loeng täna ja lubage mul minna Esimene ja kliki pset7. Mulle tundub, et on paar võimalust, üks uus, luua uus tabel, ja link kasutajad, kes on tabel, mul on juba loodud. Mis on tabelis? Nii et kui sa kasutada Excel enne, ja kui olete kasutatud numbrite või Google Tabelarvutus, kui avada aken ja sa saad terve hunnik Ridade ja veergude kuid siis tavaliselt on töölehed allosas või eraldi klapid. Sa ei mõtle iga tööleht tabelina nii et andmebaas on lõppkokkuvõttes kombinatsioonis ühe või mitme tabelid, ühe või enam töövihikuid sisse maailma tavalise tabelisse. Nii et lubage mul minna ja kliki seda töölehte et ma Premade nimega kasutajat, teise nimega Andmebaas tabelis. Ja kui ma keri siin, Lubage mul välja suumida natuke, see on see, mida phpMyAdmin räägib meil on sees selles tabelis kohe. See on veidi segane alguses lühidalt, kuna UI ei ole ilusaim asi maailmas, kuid Huvitav on see osa siin. ID, kasutajanime ja räsi. Ette, ja sa pead olema käega Seda probleemi pani seitse, anname sisaldava faili super väike andmebaasi tabeli laenatud tegelikult häkker väljaanne Probleemi seatud kaks, mille sees on kuus rida. Üks Belinda kõik tee alla üks Zamyla, ja teate, et vasaku nende kasutajanimed on ainulaadsed sümbolid nagu üks, kaks, kolm, neli, viis, kuus, täisarvud, ja siis paremale on räsi. Ja kui, koefitsiendid on, sa ei teinud häkker väljaanne probleem seatud kaks, kuid hash on nagu krüpteeritud salasõna paar hoiatust. Ja nii, mida sa näed siin on krüpteeritud versioonid kõik kuus meie paroolid probleem määratud kahe aasta häkker väljaanne. Nüüd on jäänud vaid mõned GUI värk, muuda seda rida, kopeerimine järjest kustutad selle rea. Aga mis on huvitav Nüüd on järgmine. Ma ei saa tegelikult alustada katsetavad seda tabelit. Nii et kui ma lähen ja klõpsake SQL tab, saan selle suure teksti kasti. Ja see ei ole, kuidas me läheme seda teha kui tegelikult kirjalikult koodi. Et asi oleks selge, phpMyAdmin on lihtsalt tööriist, mis on lase meil tuhnima andmebaasis ja olgem eksperimenteerida päringuid. Nii Oletame näiteks, et Ma täita just seda. Select, mis on üks neist märksõnad mainisin, star, mis esindab kõiki veerud tabelis. Mida lauale? Noh, kasutajatele. Ja teate seal on see imelik konventsiooni SQL kus sa tegelikult kasutada tagasi puugid, tavaliselt, ei ülakoma mitte jutumärkide kui te räägite tabelite nimed, nii tagasi tsitaat on asi ülemises vasakus klaviatuuri kõige tõenäoline. Nii et lubage mul minna nüüd ja jäta see üksi ja liikuge allapoole ja kliki Go, ja me oleme tegelikult näeme sama asja. Äsja teostatud SQL päring öeldes, valige kõik star tabelist nimega kasutajatele ja mida sa saada tagasi see. Lõppkokkuvõttes me suutma Selleks, et sama asja koodi aga praegu tahtsin ei olnud näha minu brauseris. Noh olgem midagi veidi erinev. Lubage mul minna tagasi SQL sakk ja ütleme lihtsalt, et mida? Zamyla on kaotanud kogu oma eest, mistõttu see on meil aeg kustutada oma kasutajana. Ta ei ole enam sisse logida. Nii et ma ütlen kustutada algus-- hästi, säilitada kapitaliseerimine järjepidevuse, kustutada kasutajate kus. Ja nii, et meil on need predikaatit või nende täpsustus, lõpus minu avaldus kus ja kuidas ma saaksin kustutada Zamyla? Tema nimi Zamyla, nii kolonn, üks kolonnid nimetati, et kus name = "Zamyla". Ja siin ma saan kasutada topelt hinnapakkumisi või ülakoma, kasutate ainult tagasi puugid kui räägime nimesid, näiteks, tabelite või valdkondades. Ja las ma klõpsake Mine siia. Ja nüüd, veebileht on veidi pinges. Või kas sa tõesti tahad, et täita kustutada kasutajate kus nimi võrdub Zamyla? Jah. Nüüd, kui me läheme tagasi oma laua klõpsates kasutajad, märkate, et Hm. Ma goofed. Ja tegelikult, ma omamoodi klõpsanud ära nii kiiresti sa isegi ei näe punane veateate, võib-olla. Mida ma valesti tegin? Sihtrühm: Sa ei pea lõikama tema nime. DAVID J. Humala: Jah, ma kapitaliseeritud oma nime, kuid tema username-- tegelikult ma tegi paar viga, eks? Üks tema kasutajanimi on zamyla, väiketähed Z, ja veeru nimi on kasutajanimi, ei nime, nii et teeme seda uuesti. Lubage mul minna ja kustutada kasutajate kus kasutajanimi võrdub quote Tsitaat lõppeb "Zamyla". Kõik korras? Nii et see tundub veidi paremini, las mul minna liikuge allapoole ja kliki Go. See ikka läheb karjuda, et olla kindel. Ma vajutan Jah, ja nüüd me näeme, ausalt öeldes see juhtus, tõesti kiiresti, vähem kui üks teine ​​kindlasti see Just päringu, mis sai täidetud. Kinnitamaks, lubage mul klõpsake kasutajad ja tõesti nüüd Zamyla on läinud. Teeme nüüd vastupidist. Oletame, et Gabe tahab registreeruda veebilehel. Mis on SQL päring, mis on käsk saanud ma kirjutad lisada Gabe? Noh see on üsna lihtne. Lisada kasutajaid ja nüüd see läheb veidi segasena. Mul on vaja täpsustada, et server, millistes valdkondades Tahan anda. Ma tõesti ei huvita, mida Gabe ID number on, nii et ma lähen jäta seda. Ma asemel ütlen kasutajanimi, hash ja seejärel väärtusi ma tahan panna seal saab olema Gabe. Ja siis tema hash, ma ei tea. Nii et nüüd ma lähen jätta, et suur teha. Me tuleme tagasi et probleem määratud spec, kuidas sa tegelikult teha. Nii märkate jällegi süntaks. Lisada tabeli nimi, siis sulgudes nimekirja väljad veerud, mida soovite lisada väärtused ning seejärel ainult sama täpne tellimine jäetud paremal väärtused, mida soovite lisada, ja see on lihtsalt ümbriste sest teksti on veidi pikk. Nüüd lubage mul klõpsake Mine. Üks rida lisatakse. Ja nüüd, kui ma lähen tagasi kasutajatele, mis on huvitav on see, et mitte ainult Gabe nüüd andmebaas, mis on ilmselt tema ID? Noh see on seitse. Miks on seitse, kui ma ei lisanud seda? Nii ka see on üks funktsioone saad andmebaasi. Palju ehitatud funktsionaalsust. Selgub, et kui loodud Selle tabeli Ma eelseadistatud see automaatselt määrata ID sellisel viisil et see sammudena. Nii et kui sa oled kunagi torkasid ümber, ja vaatas, mida oma Facebook ID number on nendel päevadel see ei ole tõesti asi, mida teha, kuid Facebook API, Application Programming Interface, mille saad tagasi terve hulk andmeid ennast, oma sõpru, ning ühendused. Ja mida varem lahke lahe, juba järgmisel päeval, oli otsida, mida teie Facebook ID number oli. Mark Zuckerberg, Nii on näiteks kolm sest ta oli autor kohas. Ja kui räägitakse, ta lõi kaks testkontod kasutajad üks ja kaks, mida ta siis välja. Ja nii, Zuck, nagu on tema kasutajanimi Facebook, on ID number kolm, ja meil kõigil on numbrid palju suurem kui kolm neist päeva. Tegelikult mingil hetkel Facebook siirdunud alates isegi kasutades int, mis on 32-bitine väärtus, kasutades järgmine samm, sisuliselt pikk pikk nii et nad võiksid tulla isegi rohkem kasutajaid registreerida. Nii lõbus väike ajalooline fakt. Nii et see on lihtsalt põhiliste süntaksi, mille me võiksime täita paar päringuid, kuid me saame tegelikult teha kamp rohkem asju koos SQL. Ja te näete, lõpuks, probleemis pani seitse et sa pead tegema arvu disaini otsuseid, nende hulgas saab olema mis tüüpi andmeid kasutada. Nii nagu ka C on andmed tüüpi andmebaasi, nagu MySQL, ja andmetüübid teil on valida alates nende kaasamine siin. Char, varchar, keskmine, suur int, koma kuupäev ja kellaaeg, ja paljud teised. Nii et olgem tegelikult seda teha. Teeme näo, et me ei aga sa selle kasutaja tabelis ja lubage mul minna ja luua jaoks mina, loengutes database-- tegelikult las ma minna ja kustutada Tabelis on mul siin juba nii et me saame tegelikult luua selle. Oih. Ma lähen tilk seda tabelis ja nüüd olen lähen uuesti loeng andmebaas siin, Ma lähen luua tabel nimega kasutajat ja olgem lihtsalt teha kolm veergu esialgu ja klõpsake Mine. Nüüd, enamasti Ka see on lihtsalt Kasutades seda graafilist tööriista nimega phpMyAdmin ja mida me teeme nüüd loob tabelis. Nii et see on nagu läheb File, New, ja luua uus Exceli fail. Nii et see on minult paar küsimused, vasakult paremale, Mis nime esimeses veerus ja siis nimi teises veerus ja nimi kolmanda. Nii et olgem taastada seda. ID ja seejärel kasutajanimi oli üks, ja siis hash oli teine. Mida peaks andmetüüp olema nüüd välja nagu ID? Siin on kogu andmetüüpide nimekiri teile kättesaadavaks andmebaasis, ja nüüd lähme lihtsalt minema int. 32-bitine väärtus, ma ei arvan reaalselt ma olen läheb on rohkem kui 4 miljardit kasutajad minu konto minu teenust, nii et ma lähen edasi liikuma edasi järgmisele küsimusele. Ma ei kavatse määrata pikkus või väärtused, see ei ole kohaldatav siin int, per se. Ja nüüd ma ei täpsusta, ilmselt default väärtus, mis ma ei hakka täpsustama. Võrdlemine, ma ei tea, mis see on. Atribuut. Nüüd me tegelikult teha on disain otsus. Nii et seal on mõned väljad siin ei ole kõik mis on kohaldatavad, kuid allkirjastamata lihtsalt tähendab mida? See int peab olema? Lihtsalt mitte-negatiivne. Nii et see peab olema 0 üles. Ei, ma ei kavatse vaadata, sest Ma tahan igal kasutajal on ID, see ei saa olla null. Ja siis saame veel mõned huvitav disaini otsuseid niimoodi. Me tuleme tagasi selle hetke, kuid mida teine ​​tunnusjoon andmebaas on see, et te saate öelda andmebaasiserver minna ja optimeerida ennast, oma RAM ja kõvaketta ruumi, nii, et valib, ja lisab, ja kustutab ja uuendused on tõesti kiire. Vastandina pset5. Kui soovid otsida midagi Teie hash tabelit, mis sa arvad, kui andmebaasi kes pidid tegema kõik tööd tehes oma hash tabelit kiire. See on nagu muidugi teile. Õigus? Sa pidid kogu aeg trahvi tuuning asju, saada räsifunktsioon õige, figuring kuidas palju ämbrid on. Aga on tore jälle umbes andmebaas sa lihtsalt punt kõik seda teistele inimestele kes on mõelnud selle läbi teie jaoks, ja mida Ma lähen ütlen siin all indeks on see, et mu ID väli saab olema esmane viis kindlaks kasutajate andmebaasis. Ma ei hakka mõtlema kohta Zamyla kui Zamyla, Ma lähen välja mõelda teda number 6. Miks on nii, võib-olla parem intuitiivselt mõelda ja mudel iga oma individuaalne rida kasutades number asemel midagi nagu string, nagu Zamyla või Gabe või enam string veel? Jah? Sihtrühm: ID on unikaalne? DAVID J. Humala: Ütle uuesti? Sihtrühm: ID on unikaalne? DAVID J. Humala: ID on unikaalne, kuid suppose-- nagu olukord üldiselt koos kasutajanimed oletame Ma ütlesin ka seal saab olla vaid üks Zamyla maailmas, ja ainult üks Gabe. Ma võiks kehtestada unikaalsus piirang stringid ka, kui ma tahtsin. Nii et ei ole halb mõte. Sihtrühm: Turvalisem. DAVID J. Humala: Turvalisem, siis miks? Sihtrühm: Sa ei saa öelda, mis on mis nagu kasutaja. DAVID J. Humala: OK, siis ei saa öelda, mida kasutaja on mis seega ei privaatsuse aspekt see, eriti siis, kui ID-olla ilmumist URL. Nii kindel, et võiks sellist tööd ka. Muud mõtted? Jah? Sihtrühm: See on lihtsam toimingute kohta int. DAVID J. Humala: See on tõeline kicker. See on lihtsalt tõhusamaks, või lihtsam arvuti operatsioonide teostamiseks on täisarv. Õigus? Int on tagatud olema 32-bitine, samas Zamyla on paar märki pikk, Gabriel on veel paar märki pikk, Davenport on tõesti pikk, ja nii see on ei ole eriti tõhus kasutada stringid võrrelda väärtusi ja vaata eest valdkondades, ja uuendada väljad kui sa ei pääse vaid üks täisarv. Just 32 bitti. Nii kasutajanimed ka sel viisil, ei pea olema ainulaadne, kuigi nad ilmselt peaks olema, ja isegi sel moel liiga kasutaja võiks lasta muuta oma kasutajanime. Nii et olgem nüüd jätke see nagu peamine vahend kindlaks kasutaja. See räägib andmebaas minna ja optimeerida ise nii et vaata ups ID on super kiire. AI, jubedalt nimega, just tähendab, Auto juurdekasvu, ja see on kontroll kast peame kontrollima täpsustada, et ID väljale uuendatakse automaatselt minu jaoks, ja siis ma lähen leidke siin ja ausalt öeldes ma ei ole tõesti huvitatud igal mitut välja. Kindlasti mitte täna. Nii et ma lähen siia tagasi, et esimeses veerus, kus Mul on vaja täpsustada kasutajanime ja räsi ning lähme vähemalt keskendumine teine ​​nüüd. Int ei ole ilmselt õige kõne mis siis on mõttekam ehk? Sihtrühm: Tekst. DAVID J. Humala: Ütle uuesti? Sihtrühm: Tekst. DAVID J. Humala: Tekst? OK, ma kuulsin teksti. Mida veel? Meil selline on hunnik valikuid mis on tekstiline iseloomuga. Niisiis, millal ja miks, kas te kasutate mõnda neist? Noh char vastupidiselt võite arvan, ei ole üks sümbol. See on konkreetsed märgid. Nii et kui me teame, et kõik kasutajanimed peab olema nagu kaheksa tähemärki, nagu varem sagedamini vanematel arvutisüsteemid, võin öelda char ja siis ma võiks öelda 8 siin. See, kui kolmandas veerus muutub kohaldatav, kui luua tabelit. Aga see on selline tüütu sest mõned inimesed võivad tahad olla pikem kasutajanime kui kaheksa tähemärki, mõned inimesed võivad tahta Lühema kasutajanime miks pühendun teatava arvu? Miks mitte olla erinev sümbolite arvu ja lihtsalt öelda, et maksimaalne pikkus nimi on, ma ei tea, nagu 64 tähemärki. Ma ei saa mõelda ühtegi sõpra, kes on nimed pikem kui 64 tähemärki, ja isegi kui see on liiga lühike, siis võiks kindlasti tõstatan selle üles meelevaldselt. Nii varchar on muutuja sümbolite arvu. Tekst ei ole halb instinkt, ja ausalt, et omamoodi teeb mida ta ütleb, kuid tekstivälja saab nagu 65000 baiti vähemalt. See on ilmselt overkill valdkonnas, ja tegelikult yup, 65535. See on ilmselt overkill nimetada, nii me kinni, tavaliselt, koos varchars eest tekstiline valdkonnas ja hash ka. Hash, selgub, võiksime teha varchar ka või midagi sellist, kuid me ei keskenduks täna krüptograafia seal ja numbrid et me võiksime tegelikult soovite kasutada oma pikkus. Kuid lubage mul keri paremale. Sul võib olla üks esmane indeksi tabelis kuid ma tahan taotleda kõik need, nüüd, et kasutajanimi, sa ütleksid? Mida peaks kasutajanime põhineb ebamäärane arusaam nendest neli võimalust? Just nende nimed? Sihtrühm: Unique. DAVID J. Humala: Nii ainulaadne, eks? Nii selgub, et mitte ainult saaks ütlete andmebaas, ette, see on peamine viis kindlakstegemise valdkondades. Võite öelda, et see on saab olema ainulaadne valdkonnas. Ta ei kavatse olla asi, mida ma tugineda, kuid tahaksin andmebaasi sisuliselt on, et kui tingimus, et et kui ma kunagi proovinud registreerida kaks kasutajat sama nimega, Andmebaasi korter läbi ei lase mind. Ma võib-olla mõningaid täiendavaid PHP, mis ei lase nii palju, kuid andmebaasi võib samuti tagada et see ei saa kunagi juhtuda. Nüüd, kui kõrvale jätta, eriti kui sa arvad lõplik projekte, pidage meeles, see indeks ja täis tekst on tegelikult üsna kasulik. Kui teil on suurem andmebaas, mitte kümneid, vaid sadu või tuhandeid või isegi miljoneid valdkondades, saate ka öelda andmebaas ette see on valdkond, ma lähen tuleb otsides palju. Võib-olla oma kasutajanime võibolla on bio, kui sa oled tegemist Facebook-like kodulehel, et on punktid, mis kasutaja lubatud salvestada, ja kui sa tahad öelda andmebaas ette Ma lähen otsima selles valdkonnas palju, kuid see ei ole tingimata unikaalne, saab määrata looma mulle indeks. Või saab öelda ka võimaldab mul teha sorteeri suvalise otsinguid nagu Command või kontroll F, nagu sina võiks Word Processor, nii et võid vaadata suvalise stringid või alamstringide selles valdkonnas. Teisisõnu, me lähme punktini semester kus sa ei pea muretsema kuidas rakendada asjad tõhusalt. Sa lihtsalt pead teadma, mida disaini otsuseid teha nii, et sa oled kasutades õigeid vahendeid kaubandust, et kasutada ära funktsioone et teised inimesed on ehitanud teile. Nii et sulgege, esmane peaks ainult on üks, siis saab olla ainult üks, ja see on asi, mida sa endale kohustuse kasutades välja selgitada valdkondi üheselt. Unikaalne on just sarnase sisuga, kuid võite ainult aeg-ajalt kasutada, kuid soovite andmebaasi kehtestada see. Indeks tähendab lihtsalt ennetavalt kiirus asju tulevikus nii et ma ei saa otsida asjad selles valdkonnas. Ja siis täielik tekst on üldiselt punktid või esseed või suur asutused teksti, kus te Tasuks ka olema metamärke nagu samaväärne star. Õigus. Nii et oli mingi palju korraga. Vaatame, kas me ei saa ajama paari neid funktsioone ja siis ehitada midagi üsna lihtne, kuid võimas. Nii et teiste hulgas disaini otsuseid sa oled lõpuks saab olema on koos read ladustamise mootorid. Ja las ma lihtsalt mainita ootuses lõplik projekte, ning ennetades olgem say-- ei teeme seda. Rajame see väike taotluse esimesena. Ma lähen minema mu terminal aken ja siin ei ole ainult counter.php, mis me nüüd vabaneda mitte enam Sobiv, aga meil on terve hulk Kataloogide ja see saab olema väga sarnase sisuga mida sa näed, on probleem pani seitse. Nii et meil on kolm kataloogi hõlmab avaliku ja malle, mis on täpselt seal, kus jätsime maha Esmaspäev kogu meie MVC paradigma. Ja sulgege, avalikult ei lähe mis tahes faili, et ma tahan kasutajaid tegelikult v oleks võimalik külastada oma brauseri kaudu URL. Mall. Mida me paneme malle? Milliseid asju? Seal ei olnud palju, kuid paar Failide vähemalt esmaspäeval. Jah. Sihtrühm: Päis ja jalus? DAVID J. Humala: Päis ja jalus. Nii et meil on midagi sarnast täna ka. Meil on veel mõned failid, kuid Jalus ma näen, Päise ma näen, ja siis hunnik muid faile. Seega see on samaväärne V MVC arvamust, mida, jälle on natuke rohkem selge probleem pani seitse, aga see on lihtsalt kausta ma olen pannes palju minu esteetika. Palju minu HTML, palju mu vorme. Vahepeal on, on teine kataloog, mis on need kolm faili ja võtame kiire pilk need. Ma lähen edasi minna ja avada config.php. Nagu selgub, on palju nagu varem perspektiivis teravad lisatud CS50 dot h pset7. Tänapäeva Näiteks, sa lähed teha ekvivalent, mis koos vaja avaldus et tõhusalt on need mitu rida. Nii et peab olema selge, et see on fail nimega config.php. Ja teate, mis ta teeb. See on ilmselt midagi segasena, sisselülitamine veateated nii et näete neid brauseris. See on siis ilmselt nõuab, et kaks muud failid nii et see on nagu #include C, ja siis see, mida me ei näe, ja oleme tuginenud, see lülitub sisse et ostukorv nagu funktsionaalsust. See tähendab, küpsis saadetakse edasi ja tagasi. Miks see huvitav? Noh, kui me läheme tagasi selle Kataloog ja avada näiteks constance.php. Pange tähele, et PHP ei toetuseks konstandid, see ei ole päris nagu #define C. Selle asemel, siis sõna otseses mõttes öelda määratletud ning teade et ma olen salvestatud ette neli konstandid seda faili. Üks tänapäeva andmebaasi jaoks minu parool, minu kasutajanime ja serveri nime. Nii et need on tegelikult läheb päris sarnane probleem pani seitse. Ja lõpuks, ja see on koht, kus ma olen hakka mõne kena funktsionaalsus alates personali, functions.php on hunnik koodi oleme kirjutanud, ja ma varastas osa sellest alates probleemi pani seitse täna, et teeb hunnik asju ja olgem lihtsalt pilk üks neist eriti. See funktsioon siin, päringu, saab olema PHP funktsiooni me nimetame et täita SQL. Hetk tagasi olime kasutades phpMyAdmin, kuid see on lihtsalt jaoks omamoodi õppe eesmärgil ja diagnostika eesmärgil unustades oma andmebaasi kogum. Kui sa tegelikult kasutada oma andmebaas, sina, inimene, ilmselt ei kavatse tuleb tõmmates üles veebi leheküljel iga kord, kui keegi registreerib. Sa lähed kirjutada koodi, lisab ja kustutab kasutajate nõudlust, ja me ei kavatse seda teha teel päringu funktsiooni. Kui ma nüüd keri, seal saab olema veel mõned omadused. Uuesti läheb tuleb toimida me kirjutasime teile, mis võimaldab teil Kirjuta kasutaja teise URL, ja muuta on funktsioon, päris nägime esmaspäeval, et tegelikult muudab malli, kuid rohkem neid vormis pset7 enda jalutada. Sest nüüd, lähme edasi ja tee seda. Lubage mul minna minu loengud laud ja näha, et seal on praegu midagi siin lihtsalt veel, ja lase mul minna ka minu üldkasutatavasse kataloogi, kus seal on ainult üks fail, index.php. See fail tundub olevat super lihtne hetkel tundub lihtsalt niimoodi. Väga meeldib, kuidas me lõpetas esmaspäeval. Ma vajavad seda faili config.php, mis on sisaldab kataloogi, mis on dot dot mu vanemad, ja siis see lihtsalt muudab selle faili. Mis on selle faili? Olgem avada minu malle form.php, ja me näeme seda. Super lihtne, ilmselt see vorm on läheb esitama $ _GET või $ _POST. Quick meelerahu kontrolli. Sõna-sõnalt visuaalselt otsida faili. Meetod võrdub post. Nii et ta ei kavatse kasutada URL, nagu Google teeb, see saab sortida peita teabe taga stseenid ja see on kavatse esitada fail nimega register.php, ja see on faili me pole veel kirjutatud aga mis see läheb nägema on see. Kui ma lähen eraldi lehel See on mida localhost / index.php välja näeb. Ja jälle serveri lihtsalt eeldades index.php. Enter. Nii et kui me on ja mida ma tahan teha on olla võimelised kirjutama asju nagu David ja seejärel minu telefoninumber, mis ütleb: 617-555-1212 nüüd, registreeru ja nüüd register.php ei leitud. Nii et mul on vaja rakendada seda. Nii et olgem kiiresti piits midagi sellist üles. Lubage mul minna minu avalik kataloog ja teha gedit on register.php, ja nüüd ma lähen edasi minna ja alustada PHP režiim, nagu me tegime esmaspäeval Lähedale PHP tag, ja teeme paar asja. Nii et üks, ma tean, alates millel on kirjutatud sellisel kujul, et ma tahan, et kontrollida järgmist. Kui see on tühi, olenemata kasutaja tipitud nimele valdkonnas, siis Ma lähen midagi öelda nagu vabandama puudu nime. Vabandan, vahepeal on ei ehitatud PHP asi, see funktsioon kandsime aastal functions.php eest pset7 nii, et teil on sellele juurdepääs. Või kui muus valdkonnas on tühi, number, siis ma olen kavatse vabandada kasutaja ja öelda puuduv number. Salvesta see fail. Nüüd lähme tagasi oma brauseris minna tagasi foorumi proovige uuesti. Registreeru. OK. Midagi ei juhtunud, mis on hea. Ma ei saanud veateate. Aga kui mitte, lähme uuesti laadida leht ja ei anna midagi. Kurat. Teha. Registreeru. Mida ma valesti tegin? Kui tühi, $ _POST nimi. Ütle uuesti? Oh, muidugi. Ma unustasin kõige olulisem osa, mis on vaja ("../ includes / config.php."). Ma pean olema juurdepääs Vabandan funktsioon, mis Sellepärast midagi juhtub. Funktsioon tegelikult ei ole. Nii et proovime seda uuesti. Olgem laadige leht uuesti, klõpsake Registreeru. OK. Siin see on. Niisiis, väljund oleme näeme siin on tulemus helistaja vabandama funktsioon, super lihtne, ja see lihtsalt trükib välja mida iganes Ma annan argumendina. Olgu, nii et vaatame koostööd. Lähme minu nime nagu David, register, puudu arv OK olgem sätestada, et liiga. 617-555-1212. Registreeru. OK. Nii et kõik on hästi nüüd, just midagi Huvitav on toimumas. Nüüd teeme midagi huvitav juhtub niimoodi. Lubage mul minna phpMyAdmin ja olgem tegelikult luua tabel nimega kasutajate Ma lähen, et saada see kolme sambad, ja ma kiiresti luua ID ja seejärel nimi ja seejärel number, ja ID väli olen jätan nagu int. Nimeväli ma lähen lahkuda nii varchar ja me ütleme 64, pisut meelevaldselt. Number ma lähen teha, tead mis? Me läheme sisse toetada USA numbrid siin nii et ma lähen midagi teha nagu char ja siis 10 tähemärki max suunakood ja siis seitse numbrit. Ja siis siin, ma lähen täpsustada auto juurdekasvu selles valdkonnas, seda primaarvõti, ja Ma lähen edasi minna ja mitte vaadake kõik need teised kastid. Nii et kui ma nüüd lõpuks vajuta Save, ja ma lähen tagasi oma kasutajate tabelis see on kuidas see välja näeb, kui ma nüüd klõpsake New Tab struktuuri. Nii et see, et oleks selge, on lihtsalt phpMyAdmin tee öelda oma andmebaasi tabeli on ID, nimi ja number neid eriti koosseisud ja me ignoreerida ülejäänud väljad seal nüüd. Nii et nüüd, mida ma tahan teha? Nii et kui ma lähen nüüd minu lähtekoodi, kui kõik on hästi Ma tahan täita järgmine päring. Lisada, ja ma ei saa lihtsalt öelda kasutajatele ma ei ole rangelt vaja need tagasi puugid, kas see on mitte ohtlik sõna nagu kasutajad. Ma ütlen nime, number ja siis siin ma olen ei kavatse kõvasti kood kohaline väärtuste veel. Ma panen kaks küsimärke. Ja see on konventsioon Paljudes keeltes kusjuures kui sa tahad olla kohatäide string sa lähed kasutada küsimus märgid põhjustel jagame tagasi tulla vestelda julgeolekut, ja siin Ma lähen edasi nendes kahes valdkonnas postitada nime, ja siis pärast number, ja nüüd salvestada faili. Ja nüüd ma lähen minna siin on super lihtsalt öelda rendersuccess.php, mis läheb teise malli. Ma lähen, et luua väga kiiresti. Geditsuccess.php ja ma lihtsalt öelda H1 edu selles failis. Hea küll. Nii et nüüd, lähme tagasi brauser, kus ma varem käinud. Lähme edasi ja kinnitada Kirjutasin David, ma kirjutasin telefoninumber registreeru. Kurat. Mida ma valesti tegin? Nii et ma näen viga siin, siis on viga teie SQL süntaks. Lubage mul hüpata tagasi gedit, las mul tagasi minna register.php, ja mida ma jätta, et oli tähtis viimast korda? Ma vajan seda. Sa tahad teada, et muude kui võttes märganud enne, kuid ma vajan seda. Nüüd lähme tagasi ja see oli kasulik vaadata brauseris ja sellepärast on config.php me sülitama vigu. Lähme edasi ja uuesti, klõpsake nuppu Jätka, edu. Nüüd lubage mul minna üle minu Andmebaasi siin ja kliki Kasutajad, ja sirvida ja teate ma nüüd on David minu andmebaasis siin. Nüüd tehniliselt kodulehel on ei ole veel avalikkusele internet, nii et ma ei saa olla muud inimesed panna siia aga kui ma nüüd tahtsin jaoks Näiteks saadab ennast tekstisõnumi. Lähme Tukalassa siin ja vaata, kas see tegelikult toimib. Ma lähen edasi minna ja kustutada see rida ja me hägustada see läbi video hiljem nii et me ei pea kogu internet texting mulle, ja me nüüd läheme üles brauser ja läheme üle loengu ja me kirjuta erinev number siia, register, edu. Nüüd, minu number on arvatavasti andmebaasi ja nüüd lõbus osa. Olgem tegelikult kasutada PHP tegema midagi programmiliselt, kas käsk line või kuskilt mujalt, ja nüüd ma olen lihtsalt kavatse hoida lihtsa ja ma lähen minu Kataloog siin ja teha järgmist. Gedit script ütleme, siis me nimetame seda teksti, #! / user / bin / env PHP, nagu nägime viimast korda. PHP. Nüüd ma lähen ei nõua sisaldab config.php, isegi kui see võib indutseerida kerget viga. Ja nüüd ma lähen edasi minna ja öelda rida, päringu valige täht kasutajate ja nüüd siin ma lähen tegema tehnika alates viimane kord iga ridu järjest. Ja ma lähen tegema midagi lihtsat. Printf oletame nimi on see, ja number on see, längkriipsu n. Ja nüüd ma lähen edasi reas tsiteerida lõppeb nimi, ja rida quote lõppeb number, ja nüüd lähme edasi ja minu terminaliaken chmod see + x teha Selle skripti nimega teksti täidetavad. Ja nüüd lähme joosta teksti. OK, nii et edu. Nii et ma olen nüüd kirjutanud käsurida skripti, keeles nimetatakse PHP, et tõttu, mis nõuavad liin, on juurdepääs kõigile neile konfiguratsioon konstandid, et ma täpsustada. Andmebaasi nimi ja nii edasi. Tegelikult lihtsalt olema selge et see ei ole juhus, lubage mul minna ja registreerida, tõesti kiire, keegi nagu Rob ja annab talle 555-1212 number. Ja nüüd, kui ma käivitada skripti jällegi märgata võimu mida me teeme andmebaasi. Nüüd olen kohe näha, millised on Ülejäänud kaks rida on minu andmebaasis. Nüüd proovime teha midagi isegi Kasvataja sees, ja see on osa me oleme ei ole testitud ette, nii et viimane kord, kui ma tegin seda asjad läksid kohutavalt viltu, meil on video selle kohta. Tegelikult, jah, naljakas kõrvale. Nii et viimasel ajal, loeng, nagu kaks aastat tagasi, me otsustasime, et ma otsustasin, et olla Kõik see oleks suurepärane idee dünaamiliselt e-kirju klasside kaupa, kasutades kogu andmebaasi CS50 üliõpilased, kes oli andnud meile oma numbri ja oma mobiiltelefon lennuettevõtjad, kes te võiks meenutada, alates pset0, kuidas mõelda, selgub, Mul oli väike viga minu programm ja tegin paar viga 2012. aastal, ma arvan. Kusjuures, üks oli mul silmus, tegi täpselt selline asi, iterating üle andmebaasi saada nimi andmebaasist, nimi andmebaasist ja seejärel iga iteratsiooni et loop Saatsin talle. Kuid selle asemel, et saata üks e-posti, ma saatis ühe e esimese iteratsiooni ja kahe kirju teise korduse saadetud kolme kirjaga teise korduse mis kui võiks meenutada meie arutelu asümptootiliseks märke see suur O halb, nagu n ruudus on mitu sõnumit saatsin, kuid see ei olnud isegi e-kirju see oli tekstisõnumeid. Ja nagu te teate, käimine ei ole super kõrge lõpu poole semestri ja arvasin, et see oleks armas juures aega, et öelda: "Miks sa ei ole klassis?" Tekstsõnumi I saadetakse kogu klass, ja see oli naljakas meeldib 50% klassi, kuid ülejäänud 50%, kellest närvis läbi, ma saatsin uskumatult vabandav magus märkmed personalile vabandada olles jäin loeng lihtsalt see kord, eks? Nii et oleks kohutavalt viltu. Nii et selles vaimus, proovime seda jälle vaid lihtsalt minu number. Eelnevalt on functions.php, Olen kirjutanud selle funktsioon siin. Seda nimetatakse teksti ja see võtab kolm argumenti. Number, vedaja, ja sõnum. Ma kasutan lüliti avaldus, mis imeliselt PHP võtta stringid, mitte ainult täisarvud, ja ma ei rakendanud kõik toetust sellele veel Ma olen lihtsalt teinud AT & T ja Verizon. Kuna selgub, et nende kandjad neil on e SMS väravaid, mille saab tegelikult Saada e-kiri aadressile nagu telefoninumber kell vtext.com ja kui kasutaja ei ole blokeeritud Sõnumite siis lähen läbi on tekstisõnumi. Nüüd seda teha, ma lähen lisada üks valdkond väga kiiresti, et minu andmebaasis. Ma lähen minema minu struktuur, ja ma olen läheb minna ja lisada valdkonnas lõpus lauale. Olgem kliki Go, ja ma olen läheb nimetame seda kandja ja nüüd ma lähen jätke see nagu baar teksti kuid me ei saa olla Kasvataja tulevikus. Ma lähen kiiresti minema minu lauda ja ma olen läheb lahti Rob, sest see on võlts number, Ma lähen minema muuta siin ja ma olen kavatse muuta oma kandja käsitsi olevat Verizon, mida ta on, ja nüüd siin. Teeme kiire meelerahu vaadata. Olgem avada meie teksti skript, mis näeb välja selline, vedaja on% s. Me teeme palju rohkem viga kontroll kui tegin 2012. aastal kandja. Ja nüüd ma lähen minna ja uuesti käivitada skripti. OK. Carrier on Verizon, mis tähendab, nüüd loodetavasti saan teha just seda. Õigesti sel aastal loodetavasti siin me läheme. Nii seest see silmus, ma olen läheb mitte ainult see printf, Ma olen ka kavatse helistada teksti ja kasutamine see funktsioon tagasikutsumine oli see võtab mitu, vedaja, ja sõnum. Vaatame, number läheb olema rida quote Tsitaat lõppeb "number" rida quote Tsitaat lõppeb "kandja" ja viimane oli sõnum. Ärge keerake kuni tänavu semikooloniga. OK. Pöialt. Vaatame, kas see töötab. Olgu nii. Siin me läheme. Olgem telefoni avamiseks risti sõrmede, kurat võtaks. Undefined muutuja may-- oh Oota, Oota, oota reaalne kiire. Real kiire, reaalne kiire. See on täiesti seda väärt. Lubage mul haarata, lubage mul haarata, uh-oh. Aitäh, tekstid on alustas keegi teine. Lubage mul minna ja avada reaalne kiire, dropbox.php / mail siia. Ooterežiim. Täiesti seda väärt. Sport. OK, allikas src8m. OK. Vajad veel üks joon siin. Oh seal ta on, see on Frosh IEd, see on register kolm. Oh tere, Margo, tänan teid väga palju. OK, ma oli puudu see rida siin. Nii et lubage mul kiiresti haarata see rida koodi, mis hõlmab post või raamatukogu et ma tegelikult tahan kasutada, Ma lähen kiiresti minna tagasi funktsioonid Ma lähen üles selle esitada ja nõuda selle faili ka, ja nüüd ma lähen tõesti rist minu sõrmede, kui ma tagasi minna käsk rida skripti, mis on sees Tänapäeva kohaliku hosti kataloogi. Käivita teksti. Enter. Mail. Ooterežiim. Ooterežiim. Mail. Oh, OK. Siin me läheme. Mail saab uue PHP saatja. Kas ma saan seda teha eks? Kurat. Mina-- oh, oota, oota, oota. Valmis olla. Ma luban, et see on saab olema nii seda väärt. Aadress. See on põhjus, miks ma ei tee näited õigus enne klassi. Ugh. Järgmised saajad ei õnnestunud. Proovime veel ühte asja. SMTP seadistada vahemikus, lisada aadress, aadress on tõepoolest nii. Proovime seda viimast osa aadress. Ah, ma olen tõesti kurb kohe. Aitäh. Aga ma tõesti hindan kõiki tekstid olete saatnud. Sul on see David. Sa puhub ta. Jätame selle sinna ja me määrata esmaspäeval. Näeme siis. Daven FARNHAM: Ja nüüd Deep Mõtted, mida Daven Farnham. Kui kahe- puu langeb metsas ja keegi ei ole ümber C it-- [chuckling].