>> [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.
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].