[Powered by Google Translate] [Aste 9]
[David J. Malan - Harvard Unibertsitatea]
[Hau CS50 da. - CS50.TV]
Guztiak eskubidea. Ongi etorri berriro. Hau CS50 da, eta hau da 9 aste hasieran.
Gaur egun, fokua, bereziki, diseinua, ez C testuinguruan
baina PHP eta SQL apur bat testuinguruan eta JavaScript pixka bat,
batez ere, bai pset 7 amaiera aldera, eta, gainera, azken proiektua.
Izan ere, puntu horretan baduzu, zure proiektua behin betiko
non ustez, gutxienez, ordu bat edo, beraz, ago pentsamendu batzuk ematen hasi ziren
zure azken proiektua eta 1 edo 2 ikaskideekin lankidetzan aritzea, nahi duzun pentsatzen ari zaren,
ari zaren arazoak izatea bada lotzen esan ikaskideekin,
sentitzen free inprimakia bete cs50.net/partners/form at.
Galdetzen besterik ez duzu nor zaren, zer nolako proiektua pentsatzen ari zaren,
arrazoi logistiko for non bizi duzu.
Eta gero, hurrengo astean edo, beraz, kalkulu-orriak URL hor baino begi bat mantendu nahi duzun bada,
Google doc bertsioa irakurtzeko soilik ikusi ahal izango dituzu.
informazio hori jasotzen ari gara.
Beraz, bada, norbait lan egin nahi duzun, baliabide guztiak sentitzen free pertsona iristeko
mekanismo horren bidez.
Baina Folks gehienak lana bakarka. Guztiz fina.
Beraz, ez sentitzen hori inolaz ere derrigorrezkoa da.
Ostirala On besterik ez zen niretzat, eta taldeko batzuk hemen
gehien antzerki hutsik.
3 turista eserita dago, apur bat awkward zen, beraz.
Zer hitz egin dugu datu-base izan zen, eta hitz egiten dugu pixka bat, 7 pset buruz.
Eta ez baduzu ez da gertatuko hori harrapatzeko bideoan oraindik, fina da.
Saiatu edozein hitz definitzeko behar dut bestela hartu dugun emandako
Ostirala-en hitzaldia oinarritzen da.
>> Baina gaur egun puntua saiatu goaz
ez bakarrik gai pset 7 bezalako zerbait egin behar izateaz
baina benetan ulertzen zer ari den gertatzen kanpaia azpian,
batez ere leku jartzen dugun functions.php fitxategia abstrakzioak batzuk
zure bizitza pixka bat errazteko, baina, azken finean, ulertu
beraz, prestakuntza-gurpilak etortzen off aste batzuk oraindik bizirik irauteko
mundu errealean eta zer stuff hau azpian esparru CS50 gabe.
Hau $ _saioa dutenek ezagunak
edo dagoeneko harrapatu bideoa Ostirala, zer ez SAIOA gaitezen egin
PHP-n oinarritutako web aplikazio bat?
Hau superglobal aldagaia da, eta horrek esan nahi du espiritua antzekoa da eta IRITSI ONDOREN
eta beste batzuk, baina zer gauza hau oso erabilgarria da?
>> Zer da SAIOA erabiltzen? Bai. [Ikasleak] saioa hasi
Sentitzen dugu? [Ikasleak] sartu Saio-hasiera sartu saioaren amaiera Izan ere.
7 pset SAIOA superglobal hau erabiltzen ari gara, saioa hasi errazteko
Eta zer superglobal honi buruzko nice elkartze-array bat da.
Elkartze-array bat, oroitzapen, besterik ez da array bat, baina horren indizeek ez dute zenbakiak izan
012 atsegin dute. Zenbakiak izan daitezke, edo are kateak daitezke.
Eta horrela dituzun 7 pset hartuz gero dived oraindik gogoratzen ari gara izeneko gako ID gordetzeko dezakezu
array elkartze hau eta bere balioa 123 antzeko zerbait da barruan
edozein user ID oraindik.
Honen motibazioa da ondoren ere bisitatu ditu localhost
edo nire webgunean, oro har, eta, ondoren, saioa hasi haiekin,
nahiz eta ez dira egin klik esteka bat edo nire webgunean itzultzeko 5 minutu
edo nahiz eta ordu bat edo egun bat ere, baina bere nabigatzailea leihoa irekita utzi dute,
superglobal honen bidez egin ahal izango direla oraindik sartu gogoratzen dut
>> Beste era batera esanda, apur bat epe luzerako ezer nahi erabiltzaile bati buruzko I gordetzeko aukera ematen du.
Eta benetan uste ahal izango duzu erosketa saskia Enkarnazio gisa.
Amazon bezalako Lekuak, jakina, utzi gauzak erosketa saskian batean,
baina HTTP, protokolo Web botereak, estaturik gabeko
zentzu web orri bat bisitatzen duzunean,
gehienetan ez duzu sare konexioa konstante
zure nabigatzaile eta zerbitzariaren artean.
Deskargatu dituzun bezain laster HTML, eta JPEGs eta GIFs eta, guztiak
konexioa doa urrun eta aski izango duzu HTML eta whatnot kopia bat zerbitzarian.
Baina zerbitzari nahi duzu zerbait gogoratu nahi izanez gero,
zama zerbitzariak informazio hori benetan grabatu da.
Programatzailea eta, beraz, zerbitzariak gaineko kontrola duten
gehienetan ezer jar dezakezu nahi duzun barruan honetan elkartze-array superglobal
eta han izango da hurrengo aldian Erabiltzaile bueltatzen
ala ez minutu edo, nahiz eta egun batzuk geroago, itxi dituztenean arakatzailearen leiho ezean,
puntua SAIOA desagertu egingo da.
Beraz, iragankorrak biltegiratze da, ez-iraunkorrak, eta ondorioz, urrun joan
bezain laster, erabiltzaileak bere nabigatzailea ixten - Ez hori bakarrik fitxa, sarritan osoa nabigatzailean,
horrela, modu eraginkorrean erabiltzaileak saioa hastean.
Beraz, gauza hori benetan nola inplementatu?
Dezagun begiratu ostiralean dugu adibide sinple bat begirada bat.
Ohituta dituztenentzat, hau bezain sinplea izan zen.
Hau da, web orrian eta horren helburua da bizitzan esango
zenbat aldiz bisitatu dut orrialde hau.
Lehenengo aldia da hemen Astelehena bisitatu dut, beraz, 0 dio.
>> Baina hasten badut Orri hau berritu, dio denbora 1, 2, 3, 4, 5,
eta azkenean bakarrik kontatuta on mantentzeko, gora, gora, gora, gora
aldi bakoitzean sakatu benetan dut Birkargatu.
Beraz, lan-hau da, nola? Barruan joan me izeneko counter.php fitxategi hau.
Goiko zati urdina iruzkinak da, baina zati interesgarria da hemen.
Line 13 session_start On funtzio hau deitu dugu,
eta hori da, hitzez hitz guztiak egin behar duzu nahi duzun sarbidea izan nahi izanez gero
bereziak izeneko superglobal hau $ _saioa.
Horregatik, posible guztiak, eta nola da posible guztiak une bat ikusi dugu.
16 line oharra zer egiten ari naiz.
Beste era batera esanda, indizearen balioa - "counter" gakoa, counter deitzen badu
izeneko SAIOA, orduan zer am lerroan I egiten beheko array honen barruan badago?
Zer line 18 egiten da?
>> [Inaudible ikaslearen erantzuna] Zer da hori? [Ikasleak] balioa gordetzeko. Good.
, Balioa duten SAIOA da gordetzeko lokal bat aldi baterako aldagaia berria oraintxe,
$ Minuskulaz guztiak mahaian.
Iragarki PHP dagoeneko pixka bat alferrak hemen.
Ohartu ez dugu izan int, float edo katea edo ezer bezala edozein aipamen
PHP idatzitako ahula delako, beraz, ez duzu aldagai bat mota zehazteko,
eta kasu honetan hemen ez dut are deklaratu oraindik.
Naiz geratuko barruan giltza horiek kizkur eta C ez bezala, hau da, benetan ados.
Ez dio axola nola sakon habiaratuak aldagai baten aitorpena PHP
kizkur giltza, barruan kizkur giltza eta antzeko barruan -
une horretan egingo du programaren gainerako existitzen,
Onerako edo txarrerako.
Beraz, berehala bihurtzen global bezain laster definitzeko ari gara hemen egiten.
>> Bestela, ez bada ez dut ez dagoela ezer SAIOA superglobal
Counter hau aldakorra hasieratzean itxuraz dut, 0
beraz, erabiltzaileak ez du inoiz izan hemen aurretik suposatuz.
Eta gero, jakina da eta counter nola incrementing?
Elkartze-array honen barruan balioa duten eguneratzen dut
edozein dela ere counter Gaur egun + 1 berdintasuna ezarriz.
Joan I behera bada hemen orriaren HTML, actually pretty simple.
Orri honen gorputza da, "bisitatu dute gune hau, beraz, eta, beraz, aldiz."
Eta hau PHP eraikuntza bat da.
Egin <? =, Hau da, zer funtzio baliokideak modu eraginkorrean? Bada
Printf antzeko zerbait, ikusi dugu hainbat aldiz C benetan baliokidea da,
dagoeneko ezagutzen duzun bezala, nahiz eta 7 pset zehaztutako
inprimatu da funtzio bat besterik ez bistaratzen zerbait izarrekin ere, ez du benetan formatu kodeak erabili
eta benetan esan dezakezu oihartzuna baita.
Oraindik dute inoiz beraz, apur bat ezberdinak, nahiz eta eragina garbia da, azken finean, gauza bera.
Erabilera hau berdin zeinu Beraz, dotorea modu bat egiteko moduko
succinctly baino gehiagotan bestela ahal izango dezakezu.
Beraz, gune honetan ez. Bistaratzen ditu counter balio.
Nola da hori guztia benetan gertatzen ari den?
Aste bat gogora ekarri ahal izango duzu, edo duela kanpaia azpian bilatzen hasi ginen
web orri bat Inspector fitxa hau erabiliz nola funtzionatzen.
>> Chrome du Mac bertsioa, Windows bertsio, eta are Linux bertsio bi
eta Firefox eta IE antzeko mekanismo horren bidez eraikitako-in araztaileak duzu
nabigatzailearen barruan.
Dezagun honako hauek begirada bat.
Tabs sorta osoa lortu dugu hemen, eta ezkerreko bat Elements dela gogoratzen
eta ez du axola nola godawful HTML eta JavaScript orri bat da,
gogoratzen Elements fitxa benetan dezakezu nabigatu HTML hierarkikoki
eta atsegina eta garbi.
Beraz, bada, Google edo Facebook bezalako web orri bat ikasten saiatzen ari zaren
edo benetan webgune, konturatzen ari zaren seguruenik hobeto
iturburu-kodea raw source begiratzen aurrean begira,
nahaspila bat izan daiteke, Nik ikusi dugun bezala, batez ere, Google-en gunean.
Beraz Sarea fitxa ordez egin klik hemen
zer ari den gertatzen orri hau bisitatzeko I ikus dezagun.
Lehenengoa utzi nire katxea garbitu me.
Chrome ezarpenak sartu eta gero, historia joan noa
eta, ondoren, Garbitu arakatze-datu guztiak.
Duzu hau egiteko beste helburuetarako erabil liteke, [barreak]
, baina orduan garatzen webgune, benetan erabilgarria da
ari zaren barre egiten baduzu ezagutzen. [Barreak]
Benetan da benetan erabilgarria da webgune errealitatea delako garatzen da
cookie-ak eta gauza cached fitxategiak HTML, JavaScript fitxategiak cached bezala gauzak
benetan bihurtu big buruhauste bat, izan ere, edozein arrazoigatik bada
nabigatzailea erabakitzen, fitxategi batzuk cache eta oraindik egin duzun fitxategiaren aldaketak zerbitzarian
baina nabigatzaileak ez du benetan konturatu fitxategia aldatu dela
eta, beraz, ez du benetan berriro deskargatzeko denean ere Reload botoian klik eginez gero,
bat ziurtatu errua ez da zure kodea modurik surefire,
arakatzailearen portaera, hemen zure nabigatzailean
eta garbitu historia osoan besterik ez da, beraz, ez dago nahasmena.
>> Eta gero, benetan paranoikoak izan nahi baduzu, irten nabigatzailea, berrabiarazi,
eta, ondoren, ziurtatu guztiak espero bezala lan.
Beraz, azken finean, konpentsazio cache ona da garapen egiten ari denean.
Beraz, hemen Network fitxa ditugu.
Ordura bisitatzen dut gune 9 aldiz, baina utzi aurrera me now eta Reload sakatu.
Eta atzera behera 0 nago.
Dezagun benetan SAIOA superglobal hau nola garatzen ari den hori da.
1 HTTP eskaera egin zuen klik noa,
eta arazketa leihoa Aukera hau begiratzen barruan me.
Hemen zerbitzariak erantzuna, eta hori ez da interesgarria ikusten dut.
Hau ikusi dut modu edozein zenbaki.
Baina zer da teknikoki interesgarria goiburuak dira.
Joan I behera bada, hemen eta eskaera goiburuak bideratzeko eta egin klik ikusi
zer ikusi dut literalki da HTTP eskaera
bakarrik joan zen nire nabigatzailea zerbitzari
GET operatibo hitza izan eta gero / counter.php fitxategi izena izateaz,
HTTP/1.1 HTTP bertsio hori nire nabigatzailea erabiliz.
Lerro honek hemen nabigatzaileak zerbitzari berreskuratu little zerbitzariaren izena
nahi dituen hitz.
Eta, ondoren, gainerako batzuetan interesgarria da, baina ez da garrantzitsua, eta oraintxe.
>> Hau besterik ez, jakin-mina baten antzeko zerbait da.
Críptica katea da hau, nahiz eta, edozein unetan zure nabigatzailean web orri bat bisitatzen
zerbitzariak da informatzea zer nabigatzaileak erabiltzen ari zaren
eta zer sistema eragile erabiltzen ari zarela eta zer bertsio kontratuan.
Beraz, bada inoiz duzun galdetu nola CNN eta whatnot bezalako webgune
dakit zer ehunekoak Mac erabiltzaile Web, PC erabiltzaile
IE erabiltzaileak, Chrome erabiltzaile eta bezala, gure nabigatzaile guztiak ere
single web bakoitza kontatzeko ez dago zer garen.
Ez du zertan eduki informazio pertsonala,
baina dira Zein da zure IP helbidea ez da eta zer arakatzailearen eta sistema eragilea erabiltzen ari zaren zerbitzaria ez da.
Beraz, informazio hori non dagoen.
Baina zer gehiago interesgarri orduan Saio horietan erantzun goiburua.
Source ikusteko egin klik me ondoan erantzun.
Zer da interesgarria hemen zenbait gauza bat da.
1, 200 egoera kodea itzuli ginen.
Inoiz ez dugu egoera kodea horrek esan nahi du, guztiak ondo.
Literalki esan nahi du beste zerbait kontrastea ados.
Zer da zenbaki bat batzuetan, ikusten dugu, hori txarra da? [Ikasleak] 404.
404, fitxategia ez da aurkitu, 403 duzun gainean baliteke dagoeneko stumbling
debekatuta dago, eta horrek esan nahi du ahaztu chmod zerbait, ziurrenik.
Eta beste sorta bat da.
>> Down hemen, hau da, pixka bat crazy.
Idatzi benetan besterik ez dut fitxategi hau duela minutu batzuk itsasteko gedit.
Zergatik orri hau 1981ean iraungiko da benetan izan zen lehenago, web gune bat?
Zer gertatzen da hor?
>> [Inaudible ikaslearen erantzuna] denbora zigilua. Baina zergatik?
Zertxobait arbitrarioa da, baina benetan erabilgarria da.
PHP fitxategi hau eskatu duzun dagoeneko iraungi Zer da hau nire nabigatzailea esaten da.
Izan ere, duela 30 urte iraungi egin da.
Baina, zer esan benetan esan nahi?
Esan nahi du, besterik gabe erabiltzaile Orri hau bisitatzen hurrengo aldian,
birkargatzen edo URL helbide-barran idazten den ala ez,
ziurtatu joan eta s eskuratzean duzun kopia berri bat.
Honek cache busting adibide bat sort da,
bakarrik esan nahi du nabigatzaile eskainiko saiatzen ergelak hitza
benetan HTML cachean zerbitzari batetik bidaliko
beraz, ez ustekabean hit reload eta, ondoren, fitxategiaren bertsio bera ikusteko.
Benetan nahi duzu beste kopia bat bidaltzeko zerbitzaria.
Beraz, duela 1981 Izan ere, besterik gabe esan nahi du zer tresna aukeratuz
iraganean arbitrarioak data gisa.
Baina benetako lerro mamitsuena da gaur egun.
Nahiz eta 50 aurretik Ziurrenera vaguely cookies ezagutzen.
Gisa, oraintxe bertan, batez ere hain eroso edo artean, besteak beste,
zer da zure ulertzeko cookie bat da oraintxe
nahiz eta zure ulermena teknikoa egiteko buruz ari gara?
Zer da cookie batean? Bai.
[Ikasleen] erabiltzaileari buruzko informazioa, nahi badu bere erabiltzaile-izena edo zerbait idatzi dut dute.
>> Good. Erabiltzaileari buruzko informazioa da, Nik ez ote duten beren erabiltzaile-izena idatzi dagoeneko.
Cookieak modu bat, zeinaren bidez zerbitzariak erabiltzaile bati buruzko zerbait gogoratzen dira.
Eta zer cookie bat benetan da testu fitxategi bat edo byte sekuentzia batzuk
zure nabigatzailearen barruan zerbitzaria landatu,
eta fitxategi horren barruan edo bytes artean identifikatzaile mota batzuk.
Agian literalki da zure erabiltzaile-izena, baina sarritan zerbait gehiago críptica begira
bo8dal3ct eta abar - benetan big alfanumeriko katea gauza hau hemen bezala
hori benetan ekarri besterik ez duzu identifikatzaile bakarra izan behar du.
Edo dezakezu uste esku birtual zigilua moduko gisa.
Club batzuk edo jolas-parke bat joaten bazara, benetan ordaindu duzula gogoratu
eta joan, eranskailu gorri txiki bat jarri dute zure Nolabaiteko alde batetik,
eta gogorarazten counter duzula dagoeneko ordaindu
eta zatoz dezakezu eta joan mesedez gisa.
Cookieak dira espirituz, baina apur bat antzekoa da.
Lehen aldiz web hau bisitatu dut, besterik ez dut nire cache urrundu ondoren egin zuen bezala,
web zerbitzariak, tresna, kasu honetan, jarri zigilua, nire eskua
bere izena PHPSESSID, saio ID
balioa benetan alfanumeriko kate luzea da.
>> Beraz, gaur egun armarridun sort nire eskua, beraz, hurrengo time I hit birkargatu
edo eskuz bisitatu URL hau arakatzaile batean,
nire nabigatzailea HTTP definizioa eskuz zigilua aurkezteko
behin eta berriz eta berriz.
Beraz, nahiz eta zerbitzariak ez du nahitaez ezagutzen I am
ezagutzen dute, gutxienez nago berean Erabiltzaile edo, gutxienez, zehatzago esanda, nabigatzaile berdinarekin.
Eta, beraz, hau da, azken finean, nola SAIOA superglobal inplementatu da.
Zerbitzariak Ideia ez duten bigarren edo hirugarren aldiz web berriro
aurkezten eskuz zigilua hau ezean.
Eta ahalik eta azkarren aurkeztuko eskuz zigilu hori,
funtsean, web zerbitzaria bere datu-base batean apur doa
eta txekeak, ados, besterik ez dut ikusten user bo8dal3ct zigilua batetik, eta abar.
Dezagun zein informazio programatzailea du gordetako me
Erabiltzaile honi buruzko superglobal barruan,
eta, ondoren, ziurtatu datuak berriro barruan SAIOA, superglobal egin me
horrela, programatzailea datu horiek berriro sartzeko
zen, nahiz eta minutu batzuk edo ordu ago.
Beraz, beste hitzetan, cookie-ak, baina denbora pixka bat rap txarra
delako nabigatzailean insecurities eta gure pribatutasuna urratzen, eta hori guztia benetan ahal izango dute,
benetan handia utility gabe delako horiek
etengabe nahi duzun bakoitzean Facebook bisitatzen duzun saioa hasi
edo Gmail e-posta behin nabigatzaileak ez badu gogoratzeko modu batzuk irakurri
duzula dagoeneko autentifikatu.
>> Beraz, modu honetan cookie bidaliko dira atzera eta aurrera alanbre zehar.
Cookieak buruzko jakin-mina beste, batez ere, hemen da, hau da, erabat cleartext.
Enkriptatzea ez da hemen inolako
eta, hain zuzen ere, HTTP erabiltzen ari naiz une honetan.
Gure favorites une bat CS50, hau da, duela 2 urte,
izan zen garai inguruan Firesheep izeneko tresna bat izan zen.
Software librearen segurtasun-ikertzaile batek egin zen
komunitateari dei estela-up bat besterik ez nola atrociously inplementatu esan bezala
zenbait Web autentifikazioa mekanismoak ziren.
Beraz, denbora pixka bat, Facebook izan da, ia oso-osorik HTTP, HTTPS ez baino gehiago.
Eta nahiz eta ez daki nola kripto lan egiten baduzu, segurua da S
beraz, ez da gutxienez enkriptatze batzuk parte hartzen esan nahi du.
Facebook erabiltzaile-izenak eta pasahitzak enkriptatzeko erabiltzen zuen,
baina ahalik eta azkarren zure begiratu pokes edo zure mezuak edo zure berri-jario,
hori guztia enkriptatu gabe.
Beraz, Gmail Duela urte bat besterik ez edo 2 arte.
Edonoiz zaude, bai, seguru enkriptazioa erabiltzen dute,
baina hortik aurrera ez zuten. Eta zergatik liteke hori?
Zergatik ez erabili kriptografia aurkituko duzu, denbora guztia erabili hau atsegin kasu?
Zer da hori? Zerbait entzun dudala uste dut. [Ikasleak] Speed.
Abiadura, ezta? Modu daude honen inguruan.
Baina besterik ez duzu mota bada pentsatu logikoki, enkriptatu behar duzu zerbait bada,
gutxienez apur bat gehiago lan egin behar duzu.
Caesar edo Vigenere jarri du martxan, edo are Crack pset 2,
kate bat besterik ez inprimatzeko nahiko erraza da.
Eta, ondoren, enkriptatzea kate bat inprimatzean minimoki pixka bat lan gehiago eskatzen du.
>> Google eta Facebook bezalako webgune popular super,
lan gehiago egin behar duzu, erabiltzaile bakoitzak behin web-orri bakar bisitatzen bada,
PUZaren denbora gehiago hartzen.
Eta PUZaren denbora gehiago behar izanez gero, zerbitzari gehiago behar izatea,
Horrek esan nahi du, diru gehiago behar izatea.
Eta beraz, urte askotan eta hori guztia benetan ez zen onena praktika.
Pertsonak SSL enkriptatzea denean bakarrik behar dute erabiliko luke.
Baina horrexegatik da, eta Firesheep fellow hau egin super argi eta garbi,
duzunean guys dira gaur egun duten Facebook-en oraintxe
Jakin-mina Out, ikus dezagun duzu Fess dugu.
Facebook erabiltzen ari bazara oraintxe bertan fitxa batzuetan bada ere, ez da foregrounded
Zure URL HTTP edo HTTPS da?
[Ikasle baino gehiago] S S.? [Barreak]
Ongi da. HTTP Any? Just 1? Ongi da.
Beraz, guztion lasaia, Facebook-eko kontua Hack oraintxe.
Hau bihurtu da gehien piztuta default, gutxienez, webgune batzuetan.
Eta luze ipuinean, zure web trafikoa enkriptatuta ez bada,
ez bakarrik ez HTML joan WiFis enkriptatu gabeko zehar atzera eta aurrera,
beraz, ez dute cookie-ak bezalako gauzak atzera eta aurrera Airean zehar dauden
enkriptazio gabe.
Beraz, bada, programazio adituentzat bit edo Googling trebetasun apur bat behar duzu
free software hori ez du aurkitu, guztiak egin behar duzun da Starbucks eseri
edo aireportu batean eseri han da, oro har, enkriptatu gabeko WiFi
edo PHPSESSID: eta Set-Cookie bezala keywords ikusi
duzu tekniko adituentzat baizik ikusi WiFi
bit Eredu hau airean zehar fluxua,
gero esan dezakezu guy en PHPSESSID gertatzen bo8dal eta abar.
Eta gero berriz Oraindik nahikoa teknikoki adituentzat bada, edo tresna izan eskuineko,
dezakezu, orduan besterik ez reconfigure zure nabigatzailean ibili da zigilu hori aurkezteko hasteko
Facebook.com eta Facebook besterik ez da lasaia zarela hori bereganatzeko
horiek guztiak ezagutzen ez delako nor zaren, baina identifikatzaile bakarra hau duzula.
Beraz identifikatzaile bakarra lapurtu eta aurkezteko Zure web zerbitzariak,
besterik ez dira pertsona hori erakusteko news feed
edo pertsona horren mezuak edo pokes.
>> Eta gaur egun Google nuke nola HTTPS aktibatzeko Facebook agian.
Baina hori bezain erraza da benetan.
Eta, beraz, Facebook eta Google eta antzeko ahaztuak benetan ona da,
baina begi bat mantendu webgune bisitatzen duzun edozein erabiltzen ez duten HTTP guztiak out
eta informazio sentikorra mota batzuk,
finantza-edo pertsonala ote den edo.
Ez bada ari dira hau erabiliz, nahiko ziurrenik cookies atsegin dute hau oso erraz lapurtu
eta, ondoren, forjatuak, eta hori zehazki zer Firesheep egin.
Ez duzu programatzailea izan.
Guztiak egin izan dute Internet konexioa, download free tresna hau,
eta zer egin izango litzateke da saioa, eta ondoren erakutsiko dizu litzateke Facebook izenak
Sanders-denek, bereziki manifestazio honetan, zure inguruan
eta egin izan zen bere izenaren gainean klik egin eta software prozesua automatiza
cookie hori sniffing, aurkeztu Facebook zeure
eta, voila, zu oraindik sartu
Beraz, horietako beste bat da, "ez hau" ofizialki.
Zure etxeko sarea bada, eta nahi tinker, baliabide guztiak,
baina konturatzen honetan zeharkatuko du unibertsitate ingurumena on line.
>> Baina hemen helburua da benetan ez hau nola egin azpimarratu
baina nola gauza mota hauen aurka defendatzeko.
Eta hutsala konponbidea hemen, nahiz eta bera da flawed,
diren guneak ez HTTPS erabili etengabe erabilera da benetan murrizteko.
Beraz, Facebook eta Google bezalako guneak gero eta kontrol-laukiak
non aukera dezakezu gauza sort hau,
eta banku izan dituzte urte antzeko arrazoiak direla eta.
Beraz, pixka bat besterik ez dugu beldurra faktore. Baina hori hitz batean.
Hau da, nola zerbitzari bat gogoratzen nor zaren.
Eta ahalik eta azkarren nor zaren gogoratzen dute, zuri buruz ezer gogoratzen dute
programatzailea izeneko $ _saioa superglobal berezi honen barruan gordetzen du.
Eta 7 pset ari gara erabiliz kenduz int bat gogoratzeko,
erabiltzailea saioa hasi ID berezia da, hain zuzen ere,
beraz, ezagutzen dugun han egon dira aurretik.
Gero saioak edo cookie-ak edo antzeko edozein galdera?
Firesheep ez baita gehiago,
eta zure ordenagailuan Modu nahasian berezia jarri behar duzu
beraz, benetan ari zaren zuei gain, trafikoa entzuten.
Beraz, ari zaren unean Firesheep deskargatu, konturatzen ez nahiko erraza da
behin izan zen erakusteko.
Guztiak eskubidea. Eta ez da Sanders. Do it etxean.
Datu-baseak.
Bat gauza egin dugu pset 7 Oso nahita
zen eman dugu adibide bat datu-basearen erabiltzaile erabiltzaile IDak batzuk ditu,
erabiltzaile-izen batzuk, eta enkriptatutako pasahitzak batzuk bertan.
Eta ikusten duzu, ez baduzu dagoeneko, taula aldatzeko pixka bat izan zaren joan.
Cache batzuk gehitu nahi mahai horretan erabiltzaile bakoitzak ari zara,
eta beste historia taula, zorroak taula bat gehitu behar duzu,
edo, agian, beste zerbait deitu.
Baina hau nola egin pentsatzen, dezagun tresna hau ireki
ostiralean erabiltzen dugu, baina lanik izanez gero, tresnak tresna batekin dator
phpMyAdmin den coincidentally PHP idatzitako izeneko
baina, bere bizitza helburua, saioa hemen I jharvard gisa carmesí ondoren,
me emateko nire datu-basea ikusteko eta aldatzen modu user-friendly.
>> Naiz I-tresnaren exekutatzen ari da datu-basea izeneko MySQL.
Hau oso ezaguna da, eta free open source datu-basea erabili wonderfully erraza da,
hau atsegin batez ere, aurrean amaitu da.
Zer tresna honekin egin me, esate baterako, taulak ikutu.
Dezagun aurrera eta hau egin.
Ostirala On ikasle izan zen super simple izeneko taula bat sortu genuen.
Id, izena, eta helbide elektronikoa - 3 zutabe izan du eta eskuz txertatuko dut Lerro pare bat
David eta Mike zehatz honetan adibide bezala.
Dezagun pixka bat gehiago, eta gogoratu nahi dugu bere gain hartzen dezagun
besterik gabe, izena eta posta elektronikoko erabiltzaile bati buruz baino.
Egitura sakatu me up Hemen goialdean.
Eta berriro ere, pset ibiltzen urratsak baldintza hemen bitartez,
beraz, ez kezkatu, batzuk apur bat azkarra bada.
Ondoren, egin klik hemen noa.
Email ondoren zutabe kopurua batzuk gehitu noa
house antzeko zerbait gehitu nahi dudalako.
Ikaslearen etxea grabatzeko ahaztu dut.
Let Go egin klik me, eta, gaur egun, zoritxarrez, hori da pixka bat zabala ezkerretik eskuinera dugu,
baina eremuan etxe honen izena deitzeko noa,
eta, ondoren, mota aukeratu dute gaur egun I.
Hargatik MySQL mota buruzko hainbat chat labur bat
PHP ahula, berriz, idatzi du sort-azkar eta mota solteak delako,
datu-base batean bereziki super garrantzitsua da benetan zure abantaila erabili idazketa
gauzak MySQL eta beste datu-base bat delako egin
ziurtatzeko ez duzula jarri akastunak datuak zure datu-basea da.
Error free zure eskura egiaztatzen moduko bat da.
>> Etxera ez, jakina, ez dugu nahi izan int bat, MySQL balioa 32-bit bat da.
Hitz labur ostiralera varchar, luzera aldakorreko char dago buruz egin dugu.
Zer da hau? Horrek aukera ematen die, hau Nolabaiteko kate bat izatea nahi duzun zehaztu.
Benetan ez duzu jakin, aldez aurretik zenbat denbora da
beraz, arbitrarioki dugu esan etxe izen bat 255 karaktere izan ditzake,
baina 32, 64 eta ezin duzu - edozein zenbaki benetan.
Baina varchar char izeneko eremu bat baino gehiago erabiliz abantaila zer da?
Just senez behera mugitu dut hemen, konturatu ez da char eta han varchar.
Varchar luzera aldakorreko char char du luzera finkorik char da.
Beraz, definizio horretan oinarrituta, zer da, horietako bakoitzaren abantaila edo desabantaila da?
Beste era batera esanda, bereizketa zaintzen, edo zergatik arduratu behar duzu?
>> Bai. [Ikasleen] Varchar malgutasun gehiago ditu, baina hartzen du memoria gehiago.
Good. Varchar hartzen gehiago - Ikus dezagun. Ez nago ziur entzun diot hori.
Ezin esan duzu behin gehiago?
[Ikasleak] varchar ziurrenik malgutasun handiagoa du, baina memoria gehiago hartzen du esan dut.
Interesgarria da. Ongi da. Varchar ziurrenik malgutasun handiagoa ematen dizu, baina hartzen du memoria gehiago.
Bigarrenak, berriz, ez du zertan egia.
Testuinguruaren araberakoa da, baina dezagun itzuli hori.
>> [Inaudible ikaslearen erantzuna] Zehazki.
Benetan char izango dela normalean memoria gehiago erabili da kasu
char, C bezala delako, kate bat bezalakoa da, karaktere array bat da.
Beraz, luzera 255 eremuan char esaten duzu,
datu-basea da, hitzez hitz, 255 karaktere emateko.
Eta etxea eta ondorioz sortu Mather eta 6 karaktere guztira,
200 karaktere baino gehiago galtzen ari duzu.
>> Varchar eraginkortasunez soilik pertsonaia askok bezala, beraz, erabiltzen da, beharrezko
gehieneko zenbatekoa.
Baina prezioa ordaindu behar da, benetan performance, potentzialki.
Aldez aurretik ezagutzen baduzu, zure kateak diren 8 karaktere izan behar ditu
Adibidez, demagun behar duzun luzera 8 pasahitzak
char eremu bat erabiliz, behin, baina ez da askotan goitik,
pasahitz bat bezalakoa da zerbait luzera finko bat zehazteko
gaur egun, datu-basea are smarter izan daiteke.
Badaki bakoitza char eremuan bada, zutabe batean kate guztietan berdina luzera da,
atzera ausazko sarbidea ezaugarri.
Salto inguruan dezakezu hainbat eremuak char artean, zure datu-basearen
datu-base bat delako uste errenkada eta zutabe gisa.
Beraz, bada, kate bakoitza luzera bera da,
byte 0 lehena badakizu, hurrengo byte 8
eta, ondoren, 16 eta, ondoren, 24 eta abar.
Beraz, kate guztiak luzera bera badira, salto egin inguruan dezakezu askoz ere modu eraginkorrean.
Beraz, emanaldiei dagokienez prestazioa bat izan daiteke,
baina normalean ez duzu aldez aurretik ezagutzea luxua,
beraz varchar bat modu joan da.
Zehatz-mehatz beste, nahiz eta Facebook azkenean sartu zuen.
Ints handiak dira, eta erabili sort ditugu default zenbaki bat nahi dugu edozein unetan,
baina 32 bit bakarrik da.
>> Eta nahiz eta Facebook ez da nahiko izan 4 milioi erabiltzaile orain,
ez da, zalantzarik gabe, ez dago out pertsona batzuk hainbat kontu
edo kontu ireki dira, eta ondoren itxi.
eta, beraz, Facebook bera trantsizio Duela urte batzuk izan int-tik uste dut
gisa egokiekin izenekoa, bigint, hau da, 64 bit ordez.
Beraz, hau ere diseinu-erabaki bat da.
Amazingly zortea izango litzateke azken proiektua startup bihurtzen bada,
4 milioi eta 1 erabiltzaile, eman edo hartu
kasu horretan, ints apur bat shortsighted izan daiteke.
Baina, egia esan, zure erabiltzaile taula da seguruenik ints duten fina.
Baina pset 7 antzeko zerbait, zure historia taula bezala,
etrade.com sartu eboluzionatu gero, milaka, milioika erabiltzaile izan dezakezu.
Beraz, agian, berriz, ez duzu 4 milioi erabiltzaile baino gehiago,
erabiltzaileek horiek egin nahi duzu 4 milioi transakzio baino gehiago izan ditzake denborak aurrera egin ahala
erosten eta saltzen ditu eta bere historia gauzak.
Beraz, ez duzu aurrea izanez gero, berriz, hauek ona duzu, askoz ere datu hori izanez gero arazoak izan dira
int baten tamaina gainditzen datuak aurrea izanez gero,
bigint antzeko zerbait egingo ez maiz nahikoa diseinatzaile hartutako norabidea da
pertsona zifra hori ez da arazo bat izango delako,
baina erraza da zerbait hori baino handiagoa aukeratzeko.
Hamartar 7 pset finkoa doitasun zehazten erabiltzen ari gara
beraz,, karroza eta bikoitzak eta reals eta atsegin hartzen dute parte gaiak saihesteko ahal izango duzu.
>> Eta gero, ez da beste eremu batzuk hemen. Gure eskuetan olatuen dugu nolabait.
Baina datak, aldiz MySQL formatuan agindutako
eta datak gordetzeko abantaila datak eta ez varchars
esan nahi duen datu basea benetan berreratu formatu ezberdinetan,
AEBetako formatua edo Europako formatuan edo antzeko ala ez - Hala ere, nahi duzun
askoz ere modu eraginkorrean ziren, besterik ez bada generic varchar batzuk baino.
Eta orduan, beste zenbait bitar, varbinary, tanta.
Hauek bitar objektu handiak dira, eta, gainera, dezakezu bitarra datuak gordetzeko
baita datu-base batean datuak geometriko gisa.
Baina normalean dugu ints eta varchars eta antzeko buruzko zaintzeko.
Dezagun amaitzeko house Adibide honetan.
Arbitrarioki esan dut Etxea 255 karakteretan izango da.
Ondoren, balio lehenetsia hau egin ahal izan genuen.
Genezake lehenespenez jartzen denek Mather House, esate baterako.
Hau da nola zehaztu izan dugu datu-basea
norbaitek beti balio du bermatu behar da. Baina utzi hori izan dut.
Izan ere, bizi duten pertsonen off campus eta ez etxe batean,
agian house balio lehenetsia NULL dela zehaztu nahi dut, benetan,
eta, ondoren, kutxa hau ikusteko, eta datu-basea ongi da erabiltzailearen etxea da NULL bada esan behar dut.
>> Berriz ere, beste defentsa mekanismo leku jarri dezakezu
beraz, ez duzu, nahiz eta zure kodea PHP jarri nahitaez.
Datu-basea gauza dira, edo ez dira NULL ziurtatzeko.
Eta gero, azkenik, atributuak.
Hauek ez dira oso garrantzitsua da.
Binary, unsigned horietako bat ere ez dira garrantzitsuak varchar bat.
Indizea.
Does Edozeinek jakin edo gogoratu edo indize bat zer den asmatzeko
etxea antzeko zerbait?
Hau gehiegi da, benetan garrantzitsua da eta nahiko erraza diseinu erabakia.
Dutenek ez dute oraindik ikusi, ostirala labur hitz egin dugu, gakoak lehen buruzko.
Datu-base taula bat, lehen mailako gako bat eremu edo zutabea
bakarrean identifikatzen taula errenkada.
Beraz, taula uneko identifikazioak dugu, izen eta e-posta dugu.
Horietako zein hautagaiak, lehen mailako gako bat izan da onena,
horren rola errenkada bakarrean identifikatzeko?
Seguruenik, ID.
Dudarik gabe, ere erabili izan dugu zer izan arren?
Agian, posta elektronikoa erabil daiteke teoria bakarra delako
Jendeak posta kontuak ezean partekatuz.
Baina errealitatea 1234 bezalako ari zaren zenbakizko ID bat erabiliz gero,
32 bits bakarrik hori, helbide elektroniko bat hainbat byte, edo askoren bytes hau, berriz, ezin izan.
Beraz, eraginkortasun baldintzak identifikadore berezia da,
praktika onak izan int bat erabili ohi da
nahiz eta zenbait kate hautagai izan dudarik gabe, erabili behar duzu.
>> House antzeko zerbait, hau ez da lehen mailako gako bat izan
ondoren, pertsona 1 bakarrik izan delako Mather bizi eta pertsona atsegin Currier eta 1.
Era berean, hau ez da bakarra.
Lehen eta bakarra arteko aldea, gure taulan uneko kasuan,
ID lehen izango litzateke, baina e-posta ez da arrazoia, aipatu besterik ez dugu lehen
performance, baina oraindik ere behar da berezia.
Beraz, oraindik dezakezu betearazi berezitasuna erreklamazioa egin gabe
super garrantzitsua da lehen eremuan.
Baina hau oso lagungarria da: indizea.
Zure proiektua behin betiko aldez aurretik ezagutzen baduzu, 7 pset, edo, oro har,
Eremu etxe hori zerbait bilatzeko asko izango
aukeratu keyword edo beste zerbait erabiliz,
ondoren preemptively dezakezu dira datu-basean bere magia lan
eta ziurtatu memoria sortzen fancy edozein datuen egitura beharrezko
etxea oinarritutako bilaketak azkartzeko.
Agian hash taula bat erabiliko du, agian lotutako zerrenda bat erabiliko du.
Errealitatea, zuhaitz bat erabili ohi da, askotan, egitura bat izeneko B-zuhaitza
ez zuhaitz bitar bat, baina B-zuhaitz bat, zuhaitz bat oso zabala da
CS124, datuen egitura klase bezala klase batean ikus dezake.
Baina, azken finean, ez duzu smart datu-basea software erabiltzen duten kezkatu.
Besterik esango dizu, "Index Eremu hau bilatu dut gehiago modu eraginkorrean".
>> Utzi duzu off bada, eta datu-basea duten Mather bizi guztiek bilatzeko saiatu behar baduzu,
bilaketa lineala devolve sartuko da.
Eta duzun got bada 6.000 undergrads bizi guztiak etxe batzuetan,
taula osoa bilatu Matherites aurkitzeko joan zaren,
Index esan duzu bada, zorionez, berriz, zerbait logaritmikoa bilaketa bat itxi egingo da
mota horiek ikasle aurkitzeko.
Honek ezaugarri bat besterik ez da free piztu,
arren ez espazioaren zenbatekoa batzuen prezio bat etorri da.
Azkenik, auto-gehikuntza, AI eremu honetan,
besterik gabe esan nahi du horrek int bat bada eta nahi ez duzun zeuk Kontatzailea to zaintzeko
Erabiltzaile berri bat da, aldi bakoitzean egiaztatu
eta erabiltzaile bakoitzak lortzen txertatuko automatikoki berria jaso ID bat.
Dezagun sakatu Save, eta, gaur egun, dezagun matxura diseinu hau.
Browse, aldez aurretik jakinarazi, bai Mike eta nire etxea da NULL I joanez gero.
PhpMyAdmin erabili ahal izango dut eskuz editatu.
Joan daiteke hemen, eta mota Mather eta, ondoren, sakatu Sartu,
eta, orain, taula desberdina da.
Baina beste zerbait nabarituko baita egin izan dut.
David ID 1 phpMyAdmin, berriz, administrazio-tresna bat da, beraz;
hau da, ez da zerbait zure erabiltzaile dira inoiz ikusi.
Beraz, bada, egin klik ordez I SQL fitxan goian -
eta berriro, pset 7 duzun aurkezten du kontsulta horiek
Eskuz dut SQL kontsulta egituratutako hizkuntza komandoa exekutatu
UPDATE erabiltzaile SET etxea = 'Pfoho' WHERE id = 1.
SQL kontsultak Hauek dira, nicely nahikoa, ezkerretik eskuinera nahiko irakurgarria.
Eguneratu erabiltzaile taula, etxea izeneko eremuan ezarri Pfoho
non erabiltzailearen ID 1.
Edo ere egin izan dut, non email = 'malan@harvard.edu'.
Beraz, luze hori bakarrean identifikatzen me, baita lan litzateke.
Baina ID ohi errendimendua handiagoa izan da, eta, beraz, utzi egin dela.
Dezagun sakatu Joan. Ados, lecture.users ez da existitzen. Zein da nire error?
Zer da benetan izeneko taula?
Deitzen da ikasle besterik ez delako hori zer sortu genuen hemen goiko ezkerreko.
Deitzen da ikasle, ez erabiltzaileak. Beraz, gaur egun, Joan egin klik.
1 errenkada eragina. Query hartu 0.01 segundotan.
Arakatu klik egin dut, gaur egun Malan bizitza Pfoho bada.
Beraz, beste SQL zaporea da, baina pset oinez egingo dela pixka bat gehiago bidez.
>> Ergelak erabakia dut dagoeneko hemen egiten da.
Datu-basearen diseinua eraginkorra dela argudiatu nahi nuke
pertsona gehiago gehitzeko ikasle taula I delako,
Gutako gehiago gehituz, gehituz hasten I TFS gehiago hasten naiz,
taula honetan redundancies hasteko goaz?
>> Bai. [Ikaslea ikasle dela ikusita, gauza bera ari gara erabiliz [inaudible]
Gauza bera gertatzen da - Eskuin, zehazki.
Beraz, bada, 400 pertsona Mather bizi, eman edo hartu.
azkenean, taula hau da, 400 errenkadak esan "Mather," "Mather,"
"Mather," "Mather," "Mather".
Bytes horiek guztiak galtzen ari gara, eta ez takeaways pare bat dago.
1, crazy izkinan kasu non bada norbaitek diru asko ordaintzen
eta renames Mather, orain dugu gure datu-basearen osoa aldatzeko.
Hori ez da askotan gertatuko da, Pfoho izan zen behin, nahiz eta North House deitzen Duela 15 urte,
beraz, gertatzen da. Baina hori ez da sinesgarria hori guztia.
Soltean datuak eguneratu beharrik horrelako kasuan txoko bat baino gehiago sinesgarria
datu-base bat da zergatik gordetzeko Mather behin eta berriro eta behin eta berriro?
Hori karakteretan, 6 karakteretan asko.
Ezin da, are gehiago, hori baino hobeto egin dugu, batez ere Pforzheimer?
Askok karaktere baino hobeto Ziur asko egin ahal izango dugu.
Zergatik ez bakarrik erlazionatuko etxe bakoitzean identifikatzaile bakarra
eta erabiltzaile bakoitzak denda hori? Hargatik saiatu honekin.
Dezagun ez bakarrik erabili ikasle taula baino, igo nazazu nire hitzaldia datu-basea sortu hemen goiko ezkerreko.
Iragarki hemen Sortu taula dio.
Let me izeneko etxe taula berri bat sortzeko.
Zutabe kopurua 2 izango da. Sartu.
Orain 2 fields daukat.
Izena deitu dut, eta luzera 255 varchar bat izango da,
>> baina hori nahiko arbitrarioa da. Hau behera hemen konbentzio jarri me.
Beraz, hemen jarri ID bat sortu. Dezagun etxe guztietan ematen identifikatzaile bakarra.
Dezagun etxe bakoitzak izen bat eman.
Dezagun identifikatzailea, berriz, zehaztu gabeko izango da konbentzio zenbaki positiboak bakarrik erabili.
Dezagun aurrera, eta hau auto-gehikuntza eremuan eman oraingoz.
Eta beste edozer behar dugu?
Dezagun aurrera eta sakatu Gorde.
Orain, bigarren taula bat daukat.
Oharra apur bat críptica SQL komando bat alde batera utzita
izan duzu litzateke eskuz idatzi ez phpMyAdmin administrazio bezalako tresna bat erabiliz gero.
Erabiltzen dugu, beraz, beste arrazoi bat.
Wonderfully erabilgarria pedagogiko moduko inguruan klik daitekeelako
irudikatu eta gauzak nola besterik ez kopiatu eta zer phpMyAdmin egin itsasteko lan egiten.
Baina sortu taula komandoa exekutatu, eta hemen nire taula da.
Dezagun aurrera me now eta raw SQL baino oversimplify Txertatu fitxan klik eginez.
Etxe INSERT INTO ez me,
eta etxearen izena Mather 'balioa izan behar da esan nahi dut.
Dela. Sintaxia apur bat gehiago críptica.
Eremu sartu nahi dugun izena da.
Hauek dira arlo horietan txertatzeko balio nahi dugu. Let joan egin klik me.
1 errenkada txertatuko hartu 0.02 segundotan. Arakatu me egin klik.
>> Ohartu egin klik Arakatu bada, ez da Mather, zeinen ID automatizazio 1 zenbakia da.
Beste bat do me. Dezagun joan SQL fitxa me.
Etxe txertatzeko. Etxearen izena da Pfoho balio bat izan da, eta abar.
Joan. Eta gorde berriro lan hau egiteko, eta behin eta berriro.
Edo aspertuko phpMyAdmin erabiliz, besterik ez dezakezu Txertatu fitxa erabili
eta ez dute raw SQL idatzi.
Zaitezke Bang azkarrago, esate baterako, idazketa by Currier, Sartu,
eta, gaur egun, egin klik Arakatu bada, ez dago Currier 3 ID bat.
Beraz, hau da, auto-gehikuntza bidez zer esan nahi dugun.
Baina orain zerbait konpontzeko ikasle ditugu.
Ikasleak zer egin behar datu mota etxeko eremuan orain?
Int bat izan behar du, ezta?
Helburua hemen faktore, bestela normalizatzeko bezala ezagutzen, mahaiak
beraz, ez dugu ez gordetzeko informazio redundantly nire mahai batean.
Eta berriro ere, hemen dugu bide ziren Mather, Mather esan nahi du,
Mather, Mather, Pfoho, Pfoho, Pfoho, Pfoho, hau da, oso erredundantea
karakteretan, wastefulness dagokionez.
Beraz, aurrera eta hau aldatzeko Egitura klik eginez,
eta utzi aurretik, joan eta egiaztatu off etxeko eremuan, egin klik aldatu
eta hau aldatzeko int bat izan dut.
255 jada ez da garrantzitsua.
Dezagun aurrera eta esan me duela fina da oraindik bada NULL. Gorde.
Orain taula ikasleak aldatu egin dira,
eta berriro ere nabarituko house int bat da.
Bat alde batera utzita, ez ikusi egin parentesi kopurua orduan ints.
>> Ondarea arrazoiak direla eta.
Itzuli egunean ez duzu GUIs, izan ordez komando lerroa ingurumena,
10 eta 11, hurrenez hurren zehaztu zenbat karaktere erakutsi behar duzu
terminal leihoa benetan erakutsi eremuak.
Ezer eremuan benetako luzera bit ez ditu, beraz, besterik ez dugu alde batetara utzi oraingoz.
Orain, taula honetan sartu behar dut.
Eta David Mather bizi, house behar ez 0 izan behar du,
hurbilago NULL int balio lehenetsia da.
Bizi behar zuen, etxea 1.
Dezagun arbitrarioki esan Mike Pfoho bizi da, beraz, etxe multzoko 2.
Orain nire taula itxura apur bat gehiago críptica.
Baina kontuan hartu eraginkortasuna.
32 bit bakarrik erabiltzen dut etxea identifikatzeko,
Horrek esan nahi du, 1 bakarrik nire etxea Mather eta Pfoho definizioa kanonikoa
eta hori etxe taula.
Beraz, bada, taula hauek orain rejoin nahi dut, modu honetan pentsatu.
Hona hemen nire ikasle taula I,, eta eskuinaldean zenbaki horiek, 1 eta 2.
1 Mather, 2 Pfoho da.
Beste taula honetan zenbaki bera ere, deitzen den etxe bat daukagu,
1 eta 2 eta 3 3 etxe horiek.
Zer egin nahi dugu, PHP eta SQL kodea gaitasuna izan da,
ordenatzeko rejoin taula hauek, non hauek dira ikasle eta etxe horiek dira,
nolabait konbinatu, beraz, 1 eta 1 lerroak nahi dugu,
2 2 sortu lerroak, eta horrela irudikatu dezakegu non David
eta non Mike eta gainontzeko bizi.
Horretarako, honako hauek bezalako SQL kontsulta bat exekutatu ahal izango dugu.
AUKERATU * ikasle ELKARTU etxe aurrera
Eta orain zer eremuak ez sartu nahi dugu?
Beraz, students.house = houses.id.
>> Un poco de críptica, baina zati bat, horrek esan nahi du, hitzez hitz, behin-behineko taula berri bat sortu
ikasle eta etxeak sartzeko emaitza da.
Eta, nola ez, nire behatzak aholkuak konbinatu hemen nahi al duzu?
Ezarri ikasleek 'etxea eremuan etxeak' ID eremuan berdinak.
Eta orain badut egin klik Joan itzuli dut zehazki zer espero dut.
David Mather, Mike Pfoho da, eta berezia identifikatzaileak ere ikusi dut.
Baina puntua da gaur egun osoa taula bat daukat.
Eta, beraz, takeaway hemen pset 7 edo benetan azken proiektua:
Aurkitzen ari zaren informazioa edozein pieza gordetzeko redundantly bada,
ote den etxe bat, agian, hiria, egoera, eta ZIP da
non ZIP egin dezake normalean, baina ez dira beti berezia identifikatzaile gisa erabiltzen da,
ez ariketa bidez phpMyAdmin moduko zerbait, adimen-eta, ondoren,
batez ere komun datuak out factoring zure web lortzen ondo erabiltzen delako
eta gehiago popular, hau da, nola ziurtatu dena super azkar egiten duzu,
berezitasun gisa hainbat aholku ahalik eta datu-base emanez.
Asko izan zen.
Edozein galdera? Guztiak eskubidea. Dezagun 5 minutuko atsedenaldi bat hartu eta bilduko.
Guztiak eskubidea.
Jarraian, adibide bat izan zen duela urte batzuk erabiltzen CS161 hartu nuen,
ikastetxea sistema eragileetarako mailakoa da
amazing izateagatik ezaguna den, baina lan zenbatekoa crazy bat,
eta benetan arreta berezia jarri du sistema eragile sortzen diren behe-mailako arazo batzuk
eta, gainera, nahiz eta datu-base munduan.
>> Istorioa kontatu izan zen nire irakaslea, Margo Seltzer, urte horretan honako hau izan zen.
Demagun bat duzula eta zure gelakide gela txiki hozkailua
eta bai benetan gustatzen esnea.
Beraz, etxera klase egun bat, zure gelakide oraindik ez da han,
hozkailua ireki duzu, eta konturatzen zara, "Oh madarikatua, esne gara."
Beraz, hozkailuan ixteko, oinez kalean zehar CVS
eta gero lerro luzeak CVS at esne pixka bat erostera.
Bien bitartean, zure gelakide etxera bere edo bere klasea,
gelan sartzen da, hozkailuan esne pixka bat benetan nahi irekiko da,
hozkailua irekiko da, eta, "Damn, ez esnea."
Beraz, zuen hozkailuan ixten dira, ibiltzen da atea, eta doan ABP
edo nonbait CVS non ez duzu beste bakoitzean erliebe baino beste
joan eskuratu esne pixka bat.
Jakina, minutu batzuk geroago, bai iritsi etxera
eta, gaur egun, bi aldiz askoz esne benetan duzun bezala nahi duzu.
Eta esnea izatea, gaur egun txarra joan da joan nahi duzu esnea delako
baina, ez duzu benetan esnea bezala, beraz, gaur egun gehiegi esnea behar duzu, beraz, gazi,.
Awful, egoera beldurgarria da.
Zer konpondu izan da predicament honetan lehen gelakide hasiera zinen bada? Bai.
[Ikasleen] Ohar bat utzi behar duzu. [Barreak]
Good. Ohar bat utzi behar duzu.
Jarri behar duzu, a Post-it ohar edo, esanez bezala "esne for Gone,"
eta, gero, zure gelakide kontzeptualki izan litzateke blokeatuta benetan egiten.
Edo joan 1 urrats dezake.
Literalki dezakezu hozkailuan blokeatu giltzarrapo mota batzuk,
eta orain zure gelakide literalki dira blokeatuta hozkailuan.
Orokortu dugu atzera programazio bada,
ia dezakezu hozkailuan uste zenbait aldagai mota edo struct
informazio edukiontzi mota batzuk.
Arazoa, funtsean, hemen duzu, bai ziren onartzen ikuskatu
edo datu-egitura honen egoera irakurri
baina bisitatua une desberdinetan, eta bai oraindik erabaki bat egin
munduko egoera oinarritzen denbora une desberdinetan horietan.
Beraz, zuen hozkailuan blokeatuta duzu, gutxienez, nahi duzun saihestu zure gelakide
izan balitz gai munduko egoera aztertuko,
beraz, berak ezin izan du egin dute erabaki hori bera.
Datu-base Beraz, bihurtzen da, arazo hau etengabe.
>> Ikus dezagun eszenatoki bat eraikitzeko bada.
Demagun txarra lasaia sort ari zaren joan eta Banco de América
edo plazan duten beste leku bat bikote kutxazainetan aldamenean,
eta, nolabait, hurrena nola ATM txartela bikoiztu gogor ez duten guztiak.
Banda magnetikoa bat besterik ez da.
Eta beraz, zer egin saiatu nahi duzu play Joko hau da
Horren bidez, 1 txartel jarri du makina 1, txartel bat beste makina batean,
eta, funtsean, nahi duzun dirua ateratzea, aldi berean, saiatu,
imajinatu duelako historia honela doa.
Ezkerraldean makina zure txartela eta zure PIN hartzen du,
eta, ondoren, esan duzu "Give me $ 100."
ATM programatuta dago lehen egin aukeratu bere datu-basea edo baliokidea
edozein delarik ere datu-basea erabiliz ikusteko erabiltzaile hau ez dute bere kontuan, gutxienez 100 $?
Hala bada, ondoren, txu $ 100 eta $ 100 beren oreka kentzen.
Baina, jakina, makina bat baino gehiago bada hemen edo ikuskatzeko modu bat baino gehiago
mundu egoera, banku-ganga, zenbat diru duzu ikusteko
demagun hori bakarrik aukera makina ezkerreko eta eskuineko
bi eskatu galdera gutxi gorabehera denbora une berean.
>> Eta hau, zalantzarik gabe gertatuko. Kutxazainetan ordenagailuak dira egun hauetan.
Beraz, ezker makina dioen bada, "Bai, gutxienez 100 $ duzu,"
bestalde eskubidea makina dio: "Bai, gutxienez 100 $ baduzu,"
ondoren, biak jarraitu beren programak amaitzeko eta benetan txu 100 $
eta esan, "Aurretik 200 $ izan duzu."
"Let me orain aldagaia $ 100 kontuan utzitako eguneratzeko."
Baina biak hautatuta izanez gero, zure kontu oreka eta aurkitu dela 200 $
eta biak, ondoren, egin math eta esan 200 - 100,
makinak potentzialki txu makina bakoitzean bi $ 100 fakturak,
baina soilik haiekin eguneratu zure batura saldoa $ 100 izan.
Beste era batera esanda, hartu duzun $ 200, baina munduko egoera ikuskatu dute delako
aldi berean, eta ondoren egin balio horretan oinarritutako erabaki bat,
Agian ez dute matematika, azken finean, behar bezala.
Beraz, banku-egoera bat ere nahi bateko blokeoaren nolabaiteko
beraz, ahalik eta azkarren egiaztatzen dituzun aldagai batzuen egoera
hori oso garrantzitsua da, zure saldoa bezala,
ez utzi inork egin horretan oinarriturik erabakiak egin arte gauza egiten,
non kasu honetan ezker ATM dira.
Blokeatu besteekin.
Benetan dezakezu lortzeko efektu hau modu ezberdinetan pare bat.
>> MySQL modurik errazena The SQL-lerro bat eman dizugu
arazo multzo zehaztapen zehazki itxura hau.
Edozein dela ere deitzen - id bat, sinbolo bat, eta partekatu, akzioen kopurua, taula txertatzeko
balio hauek, esate baterako.
Irakurri ez baduzu zehaztapenak oraindik, eta hau adibide bat da nola joan behar arazoak
Penny stock honen 10 akzio erosi presidentea Skroob
kopurua 7 izango, eta haren erabiltzaile ID gertatzen?
Dio taula honako id, ikurra, eta akzioen kopurua txertatzeko
7,, 'DVN.V', eta 10.
Baina, baina, baina, baina bigarren lerroan garrantzitsu bat da.
KEY UPDATE Duplicate akzio ON = akzioak + VALUES (akzioak).
Beraz, hasiera batean erabat críptica bila.
Baina SQL kontsulta hori, nahiz eta wraps 2 lerro aldera,
1 query luzea da, atomikoa da esan nahi du
Zentzu kontsulta hori bai, denak batera edo ez exekutatu guztietan.
Eta MySQL definizioa, nola kontsulta hau jarri du martxan dute.
Bermatuta guztiak aldi berean edo ez exekutatu eskuliburua definizioa da.
Honen motibazioa da honela.
Kasu honetan, 10 stock akzioak erosi ari bazara saiatzen ari da,
esnea bezala istorio mota da, ATM gisa istorioa berean mota da.
>> Egiten baduzu, akatsa ez da sintaxi honen bidez
baina, horren ordez, datu-basea hautatu zenbat Penny stock akzioak ikusteko
du presidenteak Skroob dute, eta suposatzen 10 akzio ditu,
eta, ondoren, split segundo batzuk beranduago UPDATE adierazpen bat egin ondoren,
beste SQL adierazpen dioen aurrera eta 10 akzio gehitu da
bere gaur egungo 10, haien, beraz, guztira 20, hau da,
arazoa, zeren eta gaur egungo datu-base sistemak eta baita gaur egungo ordenagailuetan
prozesadore bat baino gehiago, gune bat baino gehiago duzu
beste era batera esanda, ordenagailuak literalki anitz gauza egiten behin
bermea ez da zure SELECT eta kasu honetan UPDATE
dira berriro gertatuko atzera egingo.
Eszenatoki bat txarra litzateke, beraz, AUKERATU egiten duzu
zenbat akzio Penny stock hau izan du Skroob ikusteko,
eta, ondoren, kasualitatez beste Datu-basean kontsulta exekutatu da -
agian bere nabigatzailearen beste leiho batean Skroob 10 akzio erosi nahian
Beste leiho batean guztira, askoz ATM bezala -
eta demagun beste kontsulta batekin SELECT eta UPDATE artean lortzen.
Kasuan Skroob akzioen zenbaki batzuk galtzen izan daiteke
beste prozesu batek bere munduko egoera ikuskatzeko delako,
edo akzio behar zuen baino gehiago irabazi zuen.
Ez dugu zehazki zer bereziki istorioa lerro horiek litzateke partikularren sartu,
baina puntua duzu aldagai balio bat egiaztatu eta gero, erabaki bat izanez gero,
beste norbaitek zerbait egiten 2 adierazpenak artean arrisku bat badu,
bezala hainbat sistemetan gertatuko, multicore sistemak,
aldi berean hainbat gauza egin gaitasuna ordenagailuak, gauza txarrak gertatuko
banku bezalako kontuak ari zorduntzerik gaizki, esnea birritan ere erosi
edo kasu honetan akzio kopuru okerra.
Baina honi buruz pentsatzeko modu bat errazagoa.
>> Bihurtzen da SQL ere onartzen du, konfiguratu zure taula izanez gero, behar bezala,
zerbait izeneko transakzioak, argudiatzeko nuke are errazagoa da, benetan ulertu
hori baino, baina ez da 1-forrua, beraz, benetan pixka bat gehiago parte hartzen.
Literalki START transakzio izeneko SQL adierazpen bat dago.
Bezala AUKERATU, UPDATE, INSERT, DELETE, eta ELKARTU eta beste mordo bat,
START transakzio bezala keywords daude.
Eta zer 7 pset testuinguruan baduzu -
ez duzu pset 7 Horretarako, esplizituki ez da beharrezkoa disclaimed
baina azken proiektu erabilgarria izan daiteke
START transakzio kontsulta bat deitu, eta, ondoren, beste kontsulta batekin
eta gero, beste kontsulta batekin eta, ondoren, beste, beste bat, eta beste bat,
kontsulta horiek ez dira exekutatu deitu SQL instrukzioa Entregatu arte,
eta amaitzen da, ea 2 adierazpenak, 20 edo adierazpenak, izango dute guztiek da exekutatu aldi berean,
Horrek esan nahi du, inork ez bestela, ustekabean gehiegi erosi esnea edo zordunketa diru gehiegi
erosi edo gehiegi akzioak zure zalantzak guztiak exekutatu egingo delako
Atzera itzuli.
Eta hori da super garrantzitsua da, batez ere hau bezalako zerbait egiten ari zarenean.
Hau da adibide arbitrario bat dioen let eguneratzeko banku kontuan
$ 1000 2 kontu zenbakia da non - oreka oreka berdinak ezarriz.
Eta gero, bigarren adierazpena dezagun utz $ 1000
beste norbaitek sartu banku-kontu horien kontu zenbakia da 1.
>> Beste era batera esanda, hau adibide bikaina da ziurtatu nahi duzun
bi adierazpen horiek gertatzen diren edo ez
bestela bezeroak delako izorratu joan
eta beren dirua hartu eta ez da utzi beste nonbait ari zaren,
edo banku izorratu to get non ari zaren dirua uzteko
baina ez benetan kendu erabiltzailearen kontutik.
Beraz, biak batera exekutatu nahi duzun.
Hortaz, mundu eragiketak sartzen.
Beraz, zerbait your mind atzealdean mantentzen da,
beraz, proiektuaren azken helburuak askoz,
baina nahi duzun zure azken proiektua hartu nonbait,
hasi nahi enpresa batzuk inguruan izanez gero,
ikaslea talde batzuk arazo konpondu nahi duzun campusean
eta benetan, zuzenean, web aktibo horiek, bugs sotila sor sailkatu dira
ez baduzu nahiko uste bidez zer egin dezaket gertatuko 2 pertsonek
zure web sartzen saiatzen dira literalki denbora une berean,
Horren bidez, beraien iritziak, kontsultak liteke bestela interwoven.
>> JavaScript batzuk, horien teaser bat egiteko prest?
Hau gure azken seihilekoan hizkuntza da. Guztiak eskubidea.
Zorionez, JavaScript itxura oso, oso, 2 hizkuntza, C eta PHP oso antzekoa da,
horrela egin dugu orain arte.
7 pset Ikusteko Javascript-a ez da, baina oso tresna erabilgarria da
web-oinarritutako final proiektuak egiteko edo benetan just web programazioa, oro har, orduan.
Beraz, zerbait izeneko DOM ikuspegi azkar bat.
Hona hemen super simple web orrian benetan kaixo, mundu dio
bai titulua eta gorputza.
Koska gisa aspalditik proposatuz,
web orrialdeak hierarkia bat dago, hain zuzen ere.
Zuhaitz baten gisa HTML snippet berean hau marraztu izan nuen,
pentsatzeko gure datu-egituren eztabaidak C, honela.
Berezi batzuk root izeneko dokumentua nodo nodo daukat,
eta hau analogikoa JavaScript ikusiko dugu une bat besterik ez.
HTML tag lehen haurra, eta hori, kasu honetan, seme-alaba bakarra da.
Doctype, kartografia zuzenik ez da.
Hau gauza berezi bat, besterik ez dugu ahaztu behar orduan DOM hau da, beraz,
hau Document Object Model zuhaitza.
Oharra HTML tag, irudikatuta dut arbitrarioki laukizuzen bat bezala,
2 seme-alaba ditu: burua eta gorputza.
>> Horiek, era berean, laukizuzenak bezala marraztuko.
Esanguratsua da pictorially burua gorputzaren ezkerraldean da.
Inplikazioa da, buru den zuhaitza lehen.
Beraz, ez da benetan bat zuhaitz bat ordenatzen denean marraztu hau atsegin dute,
nahiz eta forma eta whatnot arbitrarioak dira.
Head bestalde izeneko title ume bat bakarra du,
eta izenburua benetan bere seme-alaba, hau da, "kaixo, mundua" du,
obalo bat hemen laukizuzena apur bat desberdinak egiteko nahita marraztu dut.
Laukizuzenak hauek elementuak dira, kaixo, mundua, berriz, benetan testu-nodo bat.
Beraz, zuhaitz nodo bat da, baina nodo mota bat da
beraz, marraztu dut arbitrarioki ezberdina izan.
Era berean, ez du gorputza kaixo, mundua baita izeneko haur bat,
beraz, nahiz eta hainbat nodo coincidentally Oraindik dute testu bera,
baina marrazten dut forma bera erabiliz. Beraz, nork zaintzen?
Beno, zer HTML buruzko nice hierarkiko izaera hori izan du.
Eta zer JavaScript eta, batez ere, liburutegi libre buruzko nice
eta jQuery bezalako popular, zuhaitzaren egitura beraz, amazingly erraz nabigatu ahal izango duzu.
Stuff C egin dugu erakusleak eta traversing zuhaitz eta nodoetako errekurtsibitatean
ezkerretik eskuinera haurraren haurra, Bat-batean ordenatzeko dezakegu emandako
amazingly argigarria izan ez pixka bat bada frustrating
baina ez ia modu eraginkor bat programazioari buruz.
Eta beraz, hizkuntza horiek JavaScript bezalako maila handiagoa
Zuhaitz hau askoz ere intuitiboki nabigatu ahal izango dugu.
>> Eta, hain zuzen ere, sintaxia nahiko ezaguna izango da.
Nik inoiz ez baduzu ikusi Ikusteko Javascript-a baino lehen, hau da benetan nice erreferentzia
Mozilla folks, pertsonak osatzen duten Firefox,
beraz, doan arakatzeko zure gustura sentitzen ez.
Zer aurkituko duzu eta diapositibak horiek berdin-berdinak dira, beste egun erabiltzen dugu
era berean, nagusiak desagertuko da.
Beraz JavaScript programa bat idazteko, funtzio nagusia ez da.
Hasteko besterik ez duzu kodea idatziz.
Baina JavaScript eta C eta PHP gako arteko bereizketa
C eta PHP, beraz, orain arte, berriz, exekutatu zerbitzariaren aldeko
Kasu honetan tresna edo gehiago, oro har, zerbitzari bat,
Arakatzaile batek diseinu by JavaScript ohi da exekutatu.
Beste era batera esanda, JavaScript kodea idatzi dezakezu, Oraindik dugu buruz
aparatuaren zerbitzaria, baina zure HTML artean, besteak beste, zure CSS artean,
zure GIFs eta zure PNGs eta zure JPEGs artean
beraz, erabiltzaileak zure web orrian bisitatzen ari bazara JavaScript erabiliz,
JavaScript kodea duten zerbitzaritik nabigatzailean dator,
eta benetan nabigatzailean exekutatzen da.
Beraz, hau jabetza nahiz eta intelektual inplikazio esanguratsuak.
Silly mota da, are gehiago, zure IP babesteko uste orduan JavaScript kodea
Hizkuntzaren izaera du normalean nabigatzaileak albo delako exekutatu.
>> Ezkutatu dezakezu, horrek esan nahi du, crazy eta itsusiak itxura egin dezakezu
zuriunez gabe, izugarri aldakorra izenak, jendeak zure IP lapurtzen gogorragoa izan dadin,
baina gakoa da hori exekutatu nabigatzailean alboko.
Nahiz eta zerbitzari alde batera utzita JavaScript erabili daiteke alboko gisa,
erabilera ohikoena kasu oraintxe da oraindik nabigatzailea.
Eta hemen zer itxura. Hemen da-errepikatzen ez bada, bestela, besterik gabe, C bezala eraikitzeko, PHP bezala.
Hemen boolear adierazpen bat duzunean "edo" 2 gauza batera.
Hona hemen "eta" 2 gauzak elkarrekin.
Hemen switch adierazpen bat da, hau da, PHP antzeko
balio-mota desberdinak alda dezakezu.
Loops antzera loops dute hemen, eta zer ikusi dugu aurretik egituratzen dira berdinean.
Loops bitartean; got dugu loops bitartean.
Aldagaiak, inoiz, beraz, apur bat desberdina da.
Aldagaiak deklaratzen ez duzu PHP eta C ez bezala,
Ikusteko Javascript-a aktibatu da, baina, era berean, ahula idatzi.
Ez duzu zehaztu int, float edo katea edo ezer izan ohi duen bezala.
Zehaztu var dezakezu.
Ez duzu var zehazteko, baina eragina izango du ez baduzu.
Normalean bada var alde, ustekabean ordez tokiko aldagai global bat sortzeko.
Beraz, egin iezadazue proposatu ia beti duzun esan var, eta ondoren aldagaiaren izena.
Ez da mota bat, besterik ez aldagaiaren var da.
Hau adibide bat izango litzateke, 123 edo "kaixo, mundua ote den".
Arrayak oraina eta sintaktikoki PHP antzekoak dira.
Var zenbakiak esan dut, eta, ondoren, parentesi artean karratua erabili dut berriro aldagai bat deklaratzeko
horren mota array zenbakiak bereziki komekin banatuta hauek.
Eta gero, azkenik, bakarra da, hau da, benetan itxura desberdina da.
Gogoratu PHP ezarri genuke elkartze-array bat ikasle batek
Zamyla atsegin baliteke itxura hau, non aldagaia deitzen zaio ikasleari.
Karratu parentesi artean esanahia hemen array bat dator.
>> Izan ere, ez naiz duten I zenbakizko indizeak baina kateak erabiliz - id, house, eta izena
esan nahi du horrek elkartze-array bat da,
eta geziak horiek zeinu eta angeluarekin parentesi berdinen
esan nahi du gako "id" dela, balioa 1 izango da;
gakoa "etxea" da, balio WINTHROP House da;
gakoa "izena" da, balio Zamyla Chan da.
Beraz, ez da 3 teklak elkartze-array honen barruan, eta bakoitzak bere balioa du.
Pset 7, edo laster izango da, JavaScript ideia berean, ikusi dugu
baina itxura hau dute.
Beraz var ikasle - ez dolarraren ikurra eta aipamen mota ez oraindik baina var -
berdinen eta ondoren, ireki giltza kizkur JavaScript denean gako bikote delako duzu,
benetan zerbait izeneko objektu bat erabili.
Eta dutenek APCS hartu zuen edo antzeko objektuak gogoratzen baliteke Java
edo antzeko hizkuntza.
Ikusteko Javascript-a ez da Java, lehenik eta behin.
Duela diseinu bat nahita erabakia urte izan zen, beste zerbait izan zen popular off dionean,
bere izena, nahiz eta ez funtsezko erlazio bera Java du.
JavaScript objektuak, eta horiek sortu kizkur giltza notazio modu.
JavaScript objektuak dira pretty askoz PHP array elkartze baliokideak
Horietako barruan datuak gordetzeko orduan.
>> Baina are gehiago potentziaz JavaScript oso erraz erlazionatuko duzu funtzio
Objektu baten barruan, eta hau egin nahi duzu, nahiz eta beste hizkuntza batzuetan,
paradigma oso ohikoa da, ikusi dugu.
Labur esanda, objektu hau ikaslea adierazten duten bereziki Zamyla da,
eta kontzeptualki antzekoa da, besterik ez sintaktikoki desberdinak.
Dezagun benetan erabili JavaScript fitxategi batean.
Script etiketa bat out bihurtzen da.
Estilo etiketa bat ikusi dugu eta beste HTML tags ikusi dugu.
Script etiketa benetan JavaScript kodea batzuk izango ditu.
Dezagun joan aparatuaren me non iturburu-kodea batzuk aurrez egindako dugu.
Ez dut posted web orrian oraindik, baina hori egin dut, klase ondoren.
Dezagun ireki bat, blink.html.
1990eko hamarkadan, ez zen literalki blink tag izeneko HTML tag bat,
eta wonderfully overused tags bat izan zen Interneten
Horren bidez, 1990eko hamarkadako estilo web orrian bisitatuko dituzu, eta testua ikusteko keinukaria hau atsegin dute,
Marqués tag emaitzak, izan testu hau atsegin dute.
Bat, non munduko web estandar bat adostu du benetan gutxi aldiz
taula zehar guztiek hil blink tag duela urte batzuk.
Baina berpizteko dezakegu JavaScript dituzun power manifestazio bat
programa bat idatzi dezakezu web-orri baten barruan.
Lehenik eta behin, utzi berria stuff saltatzeko eta fokua zaharra bakarrik.
>> Hona hemen, adibide honetan stuff zaharra da.
HTML tag bat, buru-etiketa bat, eta izenburua etiketa bat daukat.
Gero, gorputza tag bat daukat hemen div batekin, zein gogoratzen da orriaren banaketa laukizuzena
berezia da ID arbitrarioki "agurra" eman ditudan
besterik ez beraz, bakarrean da dagokienean modu bat izan dut, oso erraza da testu batzuk eskaintzen ditu:
kaixo, mundua.
Orain utzi sortu korrituko me fitxategi honen hasierara eta ikusi zer berri.
Lehenengo gauza berriak sortu top script etiketa da,
eta barruan script tag oharra deklaratu dut funtzio bat.
JavaScript funtzio bat, pretty PHP antzeko adierazi,
idatzi literalki funtzioa funtzioaren izena gero, parentesi
eta, agian, argumentuak batzuk hartzen baldin badago.
Ondoren, lortu dut nire ohiko giltza kizkur, eta gaur egun kode berria apur batzuk ditugu,
baina zer, horrek esan nahi du ikus-en.
Div var Beraz, hori esan nahi du, emadazu izenekoa div aldakorra.
Deitu nuen foo, baina deitu div nahi dut
arrazoi argia izango da, bigarren bat.
Gero bihurtzen da JavaScript hasi eta hau da JavaScript kodea nire web orrian kapsulatutako
izeneko dokumentua era askotako aldagai global berezia da.
Ikusteko Javascript-a hain zuzen ere, objektuetara bideratutako hizkuntza bat da.
Ez dugu sakontzeko 50, zer esan nahi du,
baina orain jakin objektu bat da beti, eta egitura bat bezala.
Ikusi genuen modu Like back lehen arazo bat ezartzen
non eta egitura batean, informazio asko jarri genituen
era berean, nabigatzailea datorren berezi bat struct dokumentatu da,
web orrian edozein dator. Ez da zerbait dut sortu.
Dokumentuaren egitura honen barruan, ordea, ez bakarrik datuak duzu
baina ere funtzioak.
>> Eta denbora edozein funtzio bat duzu egitura baten barruan, objektu baten barruan,
izeneko metodo bat. Baina gauza bera da.
Metodo bat funtzio bat besterik ez da, beraz, gertatzen da beste zerbait barruan izango da.
Berezi hau global aldagai izeneko dokumentua Beraz, horrek esan nahi du
funtzio bat getElementById literalki ez dela deritzo.
DOM, elementu, Document Object Model zuhaitz izango da,
horren ID Kasu agurra da.
Beste era batera esanda, garai hartan eman zituen datuen egitura sartzen da jokoan hemen.
DOM bat argazki izan dugu une batez ago,
nahiz eta orrialde apur bat desberdina da, izan nuen div argazki hau
zer document.getElementById litzateke me itzuliko litzateke eraginkortasunez erakuslea
zuhaitz, zuhaitza laukizuzen erreferentzia bat laukizuzena.
Beraz, zer esan nahi du benetan funtzio horietako bat deitzeko.
Kasu honetan, berriro div bat da. Ez da gorputz bat edo titulu bat.
Hargatik zer div honen ondoren, ez dut que tengo barruan hau izeneko aldagaia div en.
Bihurtzen da JavaScript orriaren CSS dinamikoki alda gaitasuna duzu.
Orain arte, CSS egin dugu, mugatua bada ere, estilo-atributuak da,
edo non bestela CSS jarri dugu?
Bat hondatu duen mota dut. Fitxategia goialdean tag estiloa.
Edo hirugarren postua izan da?
>> Kanpoko fitxategi bat, zerbait. Css.
Beraz, 3 plazatako CSS egin dugu horrela, orain arte horiek dira,
baina harrapaketa da gogorra dugu kodetuta guztiak.
Pset 7 Dove gisa erabaki duzu, hitzaldia baino lehen, zein den gure CSS litzateke erabaki genuen.
Baina nahi duzun zure CSS aldatu nahi izanez gero, egia esan dezakezu hori egiteko
behin benetako programazio-lengoaia bat behar duzu.
CSS, HTML - ez programatzeko hizkuntza. Ikusteko Javascript-a da.
Beraz, izarrekin bihurtzen da bezala laster laukizuzenak horietako bat bezala zuhaitza
DOM, izeneko, berez du barruan datu batzuk.
Beraz, besterik ez dut zuhaitza harrapatu div jabetza bat deitu dugu barruan
izeneko estiloa eta estilo jabetza bera ikuspena izeneko propietate bat.
Hori jakin nahi dut bakarrik CSS erabiltzaile eskuliburu begira.
Ikusgarritasuna CSS jabetza eta horrela, ez esaten out bihurtzen da.
Ikusgai den, edo ez, ikusgai den, edo ez den zerbait egiten du.
Eta nola egin hori.
Programazioaren dut galdetuz div honen ikusgarritasuna ezkutatuta badago,
zer aldatu dut? Ikusgai.
Bestela, orri honen ikusgarritasuna ezkutatuko ez bada, logikoki egin du ezkutuko dut.
Zergatik ikusgai eta ezkutuko eta ez ikusgai eta ikusezina da ideia ez daukat.
Diseinua ahula bidean erabaki zen.
Baina horiek dira, hain zuzen ere CSS aurkakoen: ikusgai eta ezkutuko.
Hori guztia ez da aldatu nire fitxategia CSS on eta off esan nahi du, eta off
jakin div.
Baina, berriro ere, blink izeneko funtzio bat da. Noiz keinu funtzioa deitzen da?
Bihurtzen da, ez dagoela beste global berezia aldakorra izeneko leiho,
dokumentuan espiritua antzekoa da, baina zure web orrian aipatzen, berriz,
DOM zuhaitz bezala, HTML zerbitzariak bidaliko da,
leihoa inguru chrome, helbide-barra, izenburu-barra aipatzen da,
eta zure web orrian inguruan stuff hori guztia.
>> Eta bihurtzen da leiho objektu funtzioa berezia barruan izeneko setInterval
hori ez esaten.
Tarte bat ezarri izango da, kasu honetan, 500 milisegundotan behin -
eta, etxebizitza bat hartu, zer egingo bakoitzean 500 milisegundotan egin?
Funtzioa keinu hori exekutatu.
Eta zer da nice hemen egin dugula izan da hau C, nahiz eta inoiz ez dugu egin.
C dauka zerbait izeneko funtzioa erakusleak funtzio non pasatu ahal izango duzu inguruan
argumentu gisa.
Era berean JavaScript funtzio beste funtzio baten izena pasatzeko duzu.
Eta nabarituko zer egiten ari naiz. Ez dut hori egiteko.
Jarri dut parentesi blink ondoren, deitu blink funtzioa esan nahi du.
Ezikusia egin ditut bada, horrek esan nahi du, hemen blink-funtzioa
beraz setInterval 500 milisegundotan behin dei daiteke.
Azken emaitza, beraz, atrocious arren da, bada, joan localhost sartu nintzen eta blink.html joan
Dute gaur egun I happening hau behin eta berriro.
Eta benetan badut Inspect Element, ikus dezagun hau ikus daiteke.
Inspect Element Let me, utzi behera joan me pixka bat,
utzi hemen elementuak aukeratu me,, eta Chrome en inspektore barruan DOM nabarituko.
Literalki da atzera eta aurrera aldatzen 500 milisegundotan behin.
Gure lagun Nate joanez gero,
inoiz galdetu duzu nola funtzionatzen, antzeko ideia tarte bat,
baina Nate da benetan koloreen erabilera oso eraginkorra kasu honetan bereziki hemen.
Beraz, zer gehiago egin dezakegu hori benetan egiten dugu?
Dezagun beste adibide bat ireki eta zerbait saiatu
keinu egiteko baino gauza are gehiago erabilgarria programazioaren hori.
Dezagun gure forma direktoriora joan me gaur eta form0 sartu.
Sortu naiz izan duten forma ugliest posible izan zen,
eta utzi me erakutsi besterik ez duzu zer itxura arakatzaile batean bezala.
>> Localhost / inprimakietan me, eta hau da form0.
HTML formularioan email eremu batzuk ditu, pasahitza super itsusi bat da,
pasahitza, eta, ondoren, zenbait termino eta baldintzak onartu apur bat kontrol-laukia.
Harrapatzen dut formulario hau bisitatzen bada, eta ez dut nahi nire e-posta helbidea eman,
Baldintza eta agian ados ez dut nahi, egin klik Izena eman I
me aukera ematen dizu, eta horren bidez ere.
Hau gertatzen bat ergelak PHP izeneko fitxategi dump.php aurkeztu.
Guztiak egiten du inprimatu $ _GET helburu diagnostiko edukia.
Hori izan zen zer zen aurkeztu oraintxe erabiltzaileak.
Baina demagun erabiltzailearen inprimaki aurkezteko balioztatzeko benetan nahi dugu.
Dezagun joan version 1 me.
Hau da form1.html. Estetikoki Badirudi besterik ez txarra, baina nabarituko nola fancy da.
Egin klik I lankidetzan Izena eman gabe bada, yelled zait.
"Zure posta elektronikoaren helbidea eman behar duzu."
Guztiak eskubidea. Hargatik saiatu me. Malan@harvard.edu Beraz. Ez dut behar duzu.
Izena eman. "Pasahitz bat eman behar duzu." Guztiak eskubidea.
Beraz, carmesí pasahitza bat emango dut. Izena eman.
"Pasahitzak ez datoz bat." Hemen carmesí idatzi behar dut.
Ustekabean checked dut. Izena eman.
"Termino eta baldintzak onartu behar dituzu." Guztiak eskubidea. Ados dago. Izena eman.
Eta orain me erakusten du irteera diagnostiko han.
>> Beraz, zer gertatu da?
Inprimaki bidalketak balioztatzeko gaitasuna izan dugu.
Izan ere, ez duzu dive pset 7 sartu, ez dago Barkatu funtzio bat
horri esker, nahiko erraza da pantailan mezu bat erabiltzaile Yell.
Apur bat ezberdina mekanismo, alerta funtzioa erabiltzen dut,
funtzioa ez den irribarre bat gainean egiten da erabiltzaileak mezuak oso itsusiak geroztik.
Baina hemen zer egiten ari naiz ikus-en.
Hau da form1.html, eta nabarituko que tengo sintaxia nahiko ezagunak batzuk:
tag gorputza, forma tag, ekintza atributu, metodo atributua.
Baina nabarituko eman dut nire erosotasuna ID berezia.
Ondoren, eremu elektroniko bat da, eta horren mota da testu dut,
pasahitza eremuan pasahitza, berrespena Eremu horren mota pasahitza mota duten,
eta, ondoren, kontrol-laukia hemen hitzarmen horren izena, mota kontrol-laukia.
Eta gero Nik submit botoi bat.
Baina goialdean nabarituko zer gehiago daukat.
Lehenik eta behin, ez dago script etiketa beste erabilera bat da.
JavaScript kodea beste fitxategi batzuk bada, CSS bezala sar ditzakezu.
Eta script source egin duzula, eta gero konturatu itxuraz Konektatzen dut
bidea oso luzea googleapis.com baina horren file name jquery.min da
gutxienez. js.
jQuery JavaScript popular super liburutegia bakarrik egiten du JavaScript
more user-friendly guztiak erabili.
Da modu eraginkorrean de facto estandar bat bilakatu da.
Beraz, nahiz eta zer ikusten ari zaren, nahiz eta ez pure JavaScript per se,
JavaScript goiko askoz CS50 liburutegi liburutegia geruza bat da
behe-mailako C kodea gainean; errealitatea da Interneten ia denek erabiltzen du.
Beraz, ez dira prestakuntza gurpilak. Hau besterik ez da onena landu egun hauetan.
Orain konturatu azpian nire script etiketa da, eta konturatu zer egin dut hemen.
Bihurtzen da jQuery zerbait little fancy du.
JavaScript dolarraren zeinuak ditu, baina zentzugabeak dira.
>> Gutun A edo B edo C. bezalako dira
jQuery besterik ez du onartu erreklamazioa ezarritako hitzarmen edo sort Izan ere
$ beren sinbolo berezia izango da.
Beraz, ahalik eta azkarren global JavaScript fitxategia hemen kargatu script etiketa,
global aldagai berezi bat deitzen $ sarbidea duzu.
Gehiago behar bezala izeneko jQuery, baina horrek ez du itxura ia $ gisa sexy.
Baina $ ez da esanahi berezia du. PHP esanahi berezia izan du.
Aldagai baten aurrean izan duzu.
Hau besterik ez da, gauza bat sexy zuten.
Zer gertatzen da hemen?
Iragarki jQuery funtzioa dut nire global aldakorreko dokumentua igarotzean
eta gero. deitzen naiz prest.
Zer jQuery funtsean ez da bainila JavaScript gauza batzuk hartzeko aukera ematen du
dokumentuaren objektu bezala, leiho objektu,
eta gainditu baduzu jQuery funtzioa -
eta, berriro ere, argi eta garbi izan behar du, hau izeneko funtzio bat jQuery
zer den ez da itzultzen dizu dokumentuaren bertsio berezi bat
gehiago funtzionalitate lotutako ditu.
Ikusteko Javascript-a raw Beraz, funtzioa ez dago prest,
baina pasatzen dokumentua jQuery funtzioa,
itzultzen dokumentuaren objektu bertsio berezi bat
fancy ezaugarri gehiago ditu.
Eta hori da, zergatik pertsona nahi. Besterik ez du egiten gauzak errazago egin, Oraindik ikusi dugun bezala.
Beraz, zer kode-lerro hau esan nahi du?
Kode lerro honek hemen esan nahi du, dokumentu prest dago
beste era batera esanda, nabigatzailea behin egiten da fitxategia goian behean irakurketa
aurrera eta hurrengo funtzioa exekutatu.
Zer da benetan JavaScript interesgarria eta PHP baita -
anonimo funtzioak.
JavaScript funtzio ez dute izena, baina gorputz bat egiten dute deklaratu ahal izango duzu.
Ohartu zer gertatzen ari den.
>> Izeneko funtzio bat prest da, eta esan nahi du, besterik ez da egin honako
osoa web orrian prest dago, noiz guztiak irakurri zerbitzariak.
Zer egin nahi duzu? Kode zatia exekutatu nahi dut.
Ohartu ez dugu nahi, kode hau berehala exekutatu.
Zehazten ez bada I bada, hau esan nahi du berehala hasteko kode lerro horiek exekutatzean.
Baina naiz duten I ez, ez, ez esaten, itzulbiratu hau atsegin dute hau anonimoak funtzio bat
bitartez ez exekutatu oraindik; deitu azkenean.
Hau ikusi genuen duela une bat gure inprimaki aurreko adibide.
Zer funtzioa, azkenean, ez da deitzen diogu, 500 milisegundotan geroago? Keinu egin.
Ideia bera izan dezaten.
Berriz ere, nahiz eta itxura apur bat arraroa da, fede orain
anonimo bat, funtzio hori deitu azkenean aldarrikatu,
idatzi besterik ez duzu function () {
Beraz, zer kodea egingo dugu azkenean exekutatu? Honako hauek.
Txiki hau ere itxura berri bat, baina horrek esan nahi du, hemen funtzioa jQuery da,
eta hori gaur egun lasterbide bat da.
HTML snippet noski pantailaren behealdeko zuhaitzaren irudikapen batzuk ditu.
Ez da hau. Orri hau interesgarria da hau, kaixo mundu Adibidez baino gehiago.
Baina zuhaitz batzuk, HTML honetan dagokio.
Lepoan mina bat izango litzateke funtzioa errekurtsiboa mota batzuk ezartzeko
erroko nodoa etan hasiko da, eta gero, nodo horren ID erregistroa aurkitu.
Beraz, zer jQuery egiten super erraza da gurekin literalki hau.
Anima zaitez eta me get edozein div edo edozein moduan, edozein HTML elementu
Matrikula ID bat dauka.
Document.getElementById ('izen-ematea') parekoa da.
>> Zergatik jQuery atsegin dute?
Da laburragoa delako idatzi. Baina hori guztia da. Ideia bera da.
Talde me etiketa horren ID da izen-ematea.
Eta etiketa horiek, eta hori gertatzen da, formulario bat izango da aurkeztu,
aurrera eta kode hau exekutatu.
Beraz, dezagun begiratu bat nola inprimaki baliozkotzea egiten ari gara.
Sintaxia da admittedly lehen críptica, baina zer gertatzen da?
Kode-lerro hau egia bada, erabiltzaileak Yell bere helbide elektronikoa eman dut.
Beraz, zer kode-lerro hau?
$ JQuery esan nahi du. Orain jakinarazteko.
CSS-ak bezala mota da.
Duzun CSS bada dived oraindik, jakin hori duten elementu ID da izen-ematea esan nahi duzu.
Espazioa esan nahi du, haur bat aurkitu edo izena emateko ondorengo bere izena sarrera.
Eta gero, plaza Parentesi gauza txiki honetan iragazki bat da.
Eta nahiz eta itxura críptica, hau esan nahi du joan duen Inprimaki ID da izen-ematea,
Sarrerako elementu hori bere izena da email barruan joan,
eta, ondoren, bere balioa, edozein dela ere bere balioa gertatzen
asdf hori da dena edo idatzitako malan@harvard.edu hori zer I idatzi bada.
Beraz, bada, inprimaki email eremuan == ezer balio, erabiltzaileak Yell.
Bestela, pasahitzaren eremuan balioa == ezer ez bada, erabiltzaileak Yell.
>> Bestela, pasahitzaren eremuan balio ez badu baieztapen eremuan balio berdinak,
izan zen beste elementu, erabiltzaileak Yell.
Eta gero, azkenik, eta hau ere, bere sintaxia berri batzuk ditu,
baina behin ikusi duzun, gutxienez apur bat gehiago arrazoizkoa da
bestela, bere ID da erregistroa Sarrerako elementu bat bere izena da hitzarmen
da, eta egiaztatzea, eta, joan aurretik, eta erabiltzaileak Yell.
Beraz, erabat onartzen dut, hau da, hasiera batean guztiz jasanezinak.
Sintaxia berri asko bat da. Baina jQuery guztiak eredu mota horiek.
Eta, egia esanda, ez nuen dakite hau existitu Duela minutu gutxi arte.
Googled dut: "Nola kontrol-laukia da jQuery hautatuta egiaztatu duzu?"
eta sintaxia hau da, ez dago egiteko modu ezberdinak direlako
raw oraingo JavaScript kodea.
Beraz Arazoa Set 7 orrialde oso lehen azpimarratzen
pset 7 asko zeure burua bootstrapping ariketa bat
non emandako dugu, zorionez, pset aurre egiteko esparru kontzeptuala.
>> Baina, izan ohi da web diseinu kasuan, duzu benetan ikutu,
sartzeko kodea mozkinak eta adibideak Web luze cite dituzu
lehen fitxa termino bakoitzeko,
eta konturatzen HTML, CSS, JavaScript eta are SQL ikasteko
benetan esan nahi du, hau-at home ariketa prestakuntza gurpilak horiek hartu off hasten dugu.
Eta konturatzen ere ez da hainbeste gauza gehiago nabigatzaile baten bidez egin ahal izango duzu.
Elementu horiek gehienak barruan daude gertaera kudeatzaileen izeneko beste gauza batzuk.
Eta nahiz eta batzuk begiratu besterik ez dugu deitzen onsubmit eta onready
gauza egin dezakezu onkeydown, onkeyup bezala,
nahi da erabiltzaileak tekla bat ukitzen, eta tekla entzun ahal izango dituzu.
Gmail teklatu lasterbideak ditu.
Nola ez Google ezartzeko teklatu lasterbideak C bezala konposatzen for?
Entzun gertaerak dira, gisa ari izenekoa, onkeypress edo onkeyup eta onkeydown bezala.
Hovered duzun inoiz bada zure sagua menu aukera batzuk baino gehiago
eta, bat-bateko voila guztiak, menu bat agertuko da edo grafiko kolorez aldatzen da,
nola egiten ari direla?
Baino onready edo onsubmit entzun, entzun onmouseover edo onmouseout duzu.
>> Beraz, azken finean,, horiek oso sinplea oinarriak ditudan dugu gaur egungo azalera urratu hasi
eta gehiago dugu murgiltze Asteazkena, duzu, gero eta gehiago,
power dagoeneko ari zaren gauzak ezagutzen mota ezartzeko.
Hargatik bertan amaituko da, eta hau jarraitu dugu asteazkenean.
>> [CS50.TV]