[CHWARAE CERDDORIAETH] DAVID J. Malan: pob hawl. Croeso yn ôl. Mae hyn yn CS50. Mae hyn yn ddiwedd yr wythnos 8. Ac fel y gwyddoch, yr ydym wedi 'n bert oriau swyddfa rheolaidd mewn rhai o'r neuaddau bwyta, gan gynnwys Annenberg. Ac mae rhai o'r tîm yn garedig Cymerodd rhai lluniau yn ddiweddar. Ac er anrhydedd Calan Gaeaf, rydym yn meddwl byddem rhannu'r un sydd braidd dal ni drwy syndod yma yn Neuadd Annenberg unig y noson o'r blaen. Eich classmate Jacob berir am y llun hwn, ond roedd yn fwy doniol i ar Facebook, mae'r dilynol sgwrs a ddigwyddodd wedi hynny. Roedd ei swydd gyntaf mewn ymateb at ei llun oedd hyn. Mae ychydig funudau yn ddiweddarach, penderfynodd i un i fyny ei hun gyda hyn. Aeth ymlaen wedyn i fynd â hyn, ac yna, hyd yn oed yn fwy amusingly yw pan ei mom chimed mewn. Ac yna yn y pen draw, mae'n ymddangos yn hyn yn unig oedd ystryw gwych ar gyfer chwarae sy'n mynd ymlaen. Felly, os hoffech i weld Jacob ac eraill, yn eu plith Cynthia Meng, pwy sy'n tu ôl i'r llenni o staff parth CS50, pen i'r URL yma a chwarae yma fan hyn. Felly, heb ado pellach, heddiw rydym parhau i edrych yma ar y we rhaglennu, ac mae'r gwirioneddol y rhaglenni creu nad ydynt yn rhedeg yn eich llinell gorchymyn, ond yn hytrach yn rhedeg tu mewn porwr. Yn ôl pob tebyg yn awr, neu'n iawn cyn bo hir, rydych yn mynd i fod yng nghanol gweithredu eich gweinydd gwe eu hunain, a oedd yn yn wahanol i raglennu we. Mae'r gweinydd gwe ym pset6 yn ymwneud ysgrifennu meddalwedd sy'n gwybod sut i gymryd Ceisiadau HTTP o borwr, neu hyd yn oed gennych chi, a dynol, gyda rhaglen o'r enw Telnet, a wedyn yn ymateb i'r ceisiadau hynny naill ai drwy poeri allan ffeil HTML, neu jpeg, neu gif, neu hyd yn oed ffeil .php. Ond gyda weinydd y we, nid yw'n i fod i jyst agor ffeil PHP, rhywbeth yn dod i ben yn .php, ac Yna boeri allan y cynnwys. Mae i fod i'w wneud beth i'w hwnnw ffeil yn gyntaf? Fel petai. Ddim yn llunio ei, dywedasom ar ddydd Llun, ond rather-- Felly, ei dehongli. PHP yn iaith dehongli, ac yn y blaen un o nodweddion allweddol yn eich gwe gweinydd, er ei rhoi ar waith gennym ni, yw y gallu hwn ar gyfer eich gweinydd gwe i hysbysiad, oh. Mae hwn yn dod i ben yn ffeil .php. Gadewch i mi nid yn unig anfon at y defnyddiwr yn ei gael ei fod yn cynnwys statig, ond yn hytrach gadewch i mi ddarllen lein gan lein, o'r chwith i'r dde, a'i ddehongli. Ac i wneud, bod chi Bydd guys yn y bôn punt i raglen yn y peiriant, ac ar lawer o systemau cyfrifiadurol, Gelwir unig PHP. Dyna enw'r PHP y cyfieithydd iaith ei hun. Felly, y darn hwnnw yr ydym yn gweithredu ar gyfer chi, a'r hyn sy'n weddill ar eich cyfer, yn y pen draw, mae nifer o ddarnau, ymhlith y yn gweithredu cefnogaeth ar gyfer cynnwys statig. Ond yn awr, a gyda problem yn gosod saith, rydych yn mynd i ddechrau i newid i mewn gwirionedd yn ysgrifennu y cod PHP sy'n cael ei ddehongli wrth siarad i ben yn ôl cronfa ddata sy'n storio gwybodaeth. Felly, gadewch i ni yn gyntaf yn deall yn well un neu ddau o superglobals hyn ac yn union faint o bŵer yr ydych ewch allan o'r bocs ar gyfer rhad ac am ddim gyda iaith fel PHP. Pethau nad oes gennych i weithredu eich hun. Felly, gwelsom ddydd Llun $ _GET, sydd yn superglobal, sydd yn unig yw PHP yn siarad am fyd-eang newidyn gallwch gael mynediad yn unrhyw le. A beth sydd y tu mewn o $ _GET? Beth sydd y tu mewn o hyn superglobal ein bod yn gweld? Siawns ystadegol ar o leiaf un person yn gwybod. Beth sydd y tu mewn o $ _GET? Yeah? GYNULLEIDFA: Mae'n y newidynnau eich rhoi yn y llinyn ymholiad. DAVID J. Malan: Perffaith. Mae'n y newidynnau chi roi yn y llinyn ymholiad. Felly, yn ein henghraifft hŷn reimplementing Google pan oedd gennym URL, ac yna marc cwestiwn, sy'n tynnu llinell rhwng dechrau HTTP paramedrau, yna cawsom q cyfartal rhywbeth, fel q hafal cathod, beth fyddai'n mynd yn awtomatig y tu mewn o hynny $ _GET super byd-eang ar eich cyfer, oherwydd PHP, yn allwedd o Q, ac o werth o hynny o gathod. Mewn geiriau eraill, $ _GET a phob o pethau hyn yn araeau cysylltiadol, tablau hash o ryw fath, bod allweddi storio a gwerthoedd. Yn awr, yn ôl yn pset5, y hash tabl efallai eich bod wedi rhoi ar waith, neu y byddwch yn ceisio gallai wedi gweithredu, mewn gwirionedd Roedd yn effeithiol yn cysylltiadol array, strwythur data lle y gallwch cysylltu allweddi gyda gwerthoedd. Ond yn pset5, mae'r gwerthoedd yn ddibwys. Werth ei hanfod gwir neu gau. A yw'r gair yn y geiriadur? Felly, pan fyddwch hashed gair fel afal i weld a yw afal yw yn y geiriadur, eich swyddogaeth siec yn ôl pob tebyg Dychwelodd wir neu'n anwir. Felly, dyna effeithiol yw'r gwerth yr ydym yn ei gael yn ôl. Ond gwelsom ddydd Llun yn fyr, gallwch sicr cysylltu yn fwy diddorol gwerthoedd na dim ond gwir neu gau gydag allweddi, fel afal. Fe allech chi mewn gwirionedd yn dychwelyd llinyn mympwyol, ac yn wir, dyna beth $ _GET ac mae'r rhain newidynnau eraill yn gadael i chi wneud. Felly $ _POST yn debyg o ran ysbryd, ond os ydych yn cyflwyno ffurflen drwy'r post, ddull HTTP gwahanol dyna ei ddefnyddio ar gyfer pethau fel cardiau credyd, a gwybodaeth breifat, ac hyd yn oed Gwybodaeth deuaidd fel lluniau, pethau hynny yn y pen draw y tu mewn o $ _POST. Ac mewn gwirionedd ar gyfer ffeiliau fel JPEG a whatnot, mae hyd yn oed un arall nad dyna hyd yma o'r enw $ _files hefyd. Felly, gweinydd ni fyddwn fynd ar ôl yn rhy lawer, ond mae'n rhoi mynediad i chi i ddidoli o fanylion lefel is am y gweinydd ei hun eich bod yn ei ddefnyddio. Cookie a sesiwn, fodd bynnag, byddwn yn gweld yn effeithiol erbyn hyn. Yr olaf yw'r hyn rydym yn ei ddefnyddio i weithredu y syniad o basged siopa. Mae un super syml, ond yn galw yn ôl ein bod wedi cael yr enghraifft yma, cyfrif faint o weithiau yr ydych wedi ymweld y dudalen hon o'r blaen. Ond heddiw, yn hytrach na dim ond yn edrych ar effaith hyn, gadewch i ni agor Chrome yn Arolygydd, yr ydych fel arfer yn bosibl ei wneud drwy glicio neu Reoli cywir glicio unrhyw le ar y dudalen we, ac yna dewiswch archwilio elfen. Neu gallwch fynd drwy'r bwydlenni a ddisgrifir yn spec pset6 yn. Ac yr wyf i'n mynd at y tab Rhwydwaith yma, a gadewch i ni wylio am eiliad y traffig HTTP dyna yn mynd yn ôl ac ymlaen. Gadewch i mi fynd yn ei flaen yn gyntaf a cache Chrome eglur yn. Felly, efallai y bydd rhai ohonoch yn gyfarwydd gyda'r dechneg hon yn barod, ac rydym yn mynd i ddefnyddio ar gyfer dibenion debugging yma. Nawr rydym fel cyfrifiadur gwyddonwyr yn mynd i ddechrau gwneud hyn ar gyfer debugging dibenion, lle byddwn yn clirio'r cache, fel arfer, er mwyn i ni Gellir cael gwared ar bethau o'r enw cwcis. Felly, mae'n debyg eich bod yn gyfarwydd yn gyffredinol â'r hyn cwcis yn, neu o leiaf eu bod yn bodoli, ond beth sy'n eich dealltwriaeth ohonynt, fel dim ond defnyddiwr o cyfrifiaduron, beth yw cwci? Yeah. GYNULLEIDFA: Mae ychydig o- yn dda, nid bit mewn tymor o wyddoniaeth gyfrifiadurol. Mae'n ddarn o ddata y mae wefan yn anfon i chi er mwyn i allu cofnodi ystadegau ar chi. DAVID J. Malan: Iawn, yn dda. Felly mae'n ddarn o ddata y mae gweinydd, rhoi ar eich cyfrifiadur, a gadewch i ni hyd yn oed yn cyffredinoli mwy, mae'n allwedd value-- yn dda, mae hynny'n mynd yn fwy manwl gywir. Mae'n ddarn o gwybodaeth, darn o ddata, bod gweinyddwr yn gallu i'w rhoi ar eich cyfrifiadur ac yn aml iawn, mae'r gweinydd yn ei wneud mae hyn er mwyn gofio pwy ydych chi. Felly, er enghraifft, ods yw eich bod yn ôl pob tebyg logio i mewn i safleoedd fel Facebook, neu Gmail, neu eraill o'r blaen, a byddwch yn logio i mewn gyda'ch enw defnyddiwr a chyfrinair, ac yna ar ôl hynny, ar gyfer rhai rhif o funudau neu oriau neu hyd yn oed ddyddiau, mae'r gweinydd yn cofio bod yr ydych, mewn gwirionedd, wedi mewngofnodi. Nawr, sut mae hynny'n digwydd mewn gwirionedd? Oherwydd yn sicr nad ydych yn aildeipio eich enw defnyddiwr a chyfrinair bob tro byddwch yn llywio i dudalen wahanol ar Facebook. Felly, mae'n troi allan y cwcis yw'r ateb. Mae cwci y gallwch feddwl amdano fel, math o hoffi, a llaw digidol stamp y gallech ei gael mewn difyrion parc neu glwb sydd yn y bôn indicates ydych wedi bod yma o'r blaen, ac nad ydych wedi eisoes dangos eich ID at y bouncer, er enghraifft, a bod y clwb neu'r parc Dylai awr yn cymryd yn ganiataol y byddwch yn wedi dilysu eisoes. Yr ydych eisoes wedi cael eu nodi gan iddo. Felly, gyda hynny mewn golwg, gadewch i ni agor cownter yma. Gadewch i mi fynd yn ei flaen, yr wyf yn unig oedd, ac yn glir fy holl gwcis. Ac yn awr yr hyn yr wyf i'n mynd i wneud yw dal Shift, dim ond ar gyfer mesur da, ac yn gorfodi ail-lwytho'r dudalen. Shift dim ond gwnewch yn siŵr nad oes unrhyw beth yn cael ei cached. A dyma y cais a oedd yn mynd yn ôl ac ymlaen. Felly dros yma mae gennym gais, a gadewch mi chwyddo i mewn i lawr yma, ac mae llawer o hyn yw manylion fath o anniddorol i nawr bod y porwr yn cael yn awtomatig anfon, ond gadewch i ni glicio View Ffynhonnell i weld y penawdau crai. Ac os ydych chi wedi deifio i mewn i pset6 eisoes, byddwch yn sicr yn adnabod pethau fel hyn, ac efallai rhai o'r rhain llinellau eraill yma, ond beth yn fwy diddorol ar gyfer heddiw os byddaf yn sgroliwch i lawr, nid i'r cais ond at yr ymateb fel y'i gelwir, yn ôl pob tebyg y llinell hon yn edrych yn gyfarwydd. Mae hynny'n beth da pan fyddwch yn gweld OK 200. Mae'n debyg mai dyma'r dyddiad ac amser ar y gweinydd ac mae 'na griw o bethau. O, mae hyn yn ddiddorol. Troi allan pryd bynnag y byddwch yn defnyddio PHP, o leiaf yn y gweinydd hwn, y gweinydd poeri allan beth fersiwn o PHP rydych yn ei ddefnyddio. Pa, mewn gwirionedd, ar gyfer diogelwch dibenion, nid yn beth da. Ond, byddwn yn dod yn ôl at hynny peth amser arall efallai. Ond yn awr mae hyn yn llinell juicy heddiw, a gwelsom yn fyr â rhai o'r rhain, Rwy'n credu gyda Facebook pan fyddwn poked o amgylch yr Arolygydd ar y pryd, cwci set yn yr hyn sy'n plannu mai ychydig darn o wybodaeth ar eich cyfrifiadur. Mae hwn yn pennawd HTTP dyna effeithiol dweud wrth eich porwr, Chrome, IE, beth bynnag, hey storio porwr ar y defnyddiwr 'n anawdd cathrena, neu mewn RAM y defnyddiwr, allwedd o'r enw PHPSESSID, sef nodiant llaw-fer ar gyfer y sesiwn adnabod, ac yn rhoi cynnig gwerth 0vlk8t, dot, dot, dot. Mae ffug 'n sylweddol hir llinyn alffaniwmerig ar hap. Mae'n dim ond nifer fawr iawn, ond mae'n encoded gyda llythrennau a rhifau fel y gall y maint o fod yn hyd yn oed yn fwy na rhifau yn unig. Ac yna, gyda llaw, Llwybr = /, bod jyst yn golygu y dylai cwci hwn fod gysylltiedig â'r gyfanrwydd y wefan, nid dim ond yn benodol dudalen yr holl beth. Felly, mae hyn yw bod stamp llaw rhithwir. Mae'n fel pe y gweinydd, Facebook, neu yn ein hachos ni yr offer, Mae 0vlk8t ysgrifenedig yn llythrennol ac yn y blaen, ar eich llaw. Sylwi ar yr hyn mae'r gweinydd yn, beidio â gwneud yw ei fod yn peidio storio fy enw defnyddiwr, yn sicr Nid yw storio fy nghyfrinair. Yn lle hynny, mae'n ymddangos i fod yn storio gwybodaeth ar hap ffug fel y gall unrhyw un ddyfalu beth yw fy stamp llaw yn. Ar yr ochr gweinydd, yn y cyfamser, y gweinydd yn mynd i gofio, yn ôl pob tebyg mewn cronfa ddata neu rywbeth, bod y defnyddiwr, a oedd yn y dyfodol cyflwyno stamp llaw o 0vlk8t, dot, dot, dot, dylai fod yn gysylltiedig â hyn arbennig basged siopa, fel petai. Mewn geiriau eraill, os wyf yn awr yn mynd yn ôl yma ac yn ail-lwytho y dudalen hon, sut mae'r gweinydd yn gwybod fy mod yn ymweld ag un tro? Neu, os wyf yn ei wneud eto, sut y mae'r gweinydd yn gwybod fy mod i wedi ymweld â hi ddwywaith? Wel os byddaf yn mynd i lawr i hyn cais mwyaf diweddar, a oedd yn yn awr yn y trydydd fy mod wedi anfon mewn cyfanswm, yn sylwi ar fy nghais yn awr. Mae dal hwn ofyn am hyd yma, yr un fel o'r blaen, mae dal i fod yn criw cyfan o bethau yr ydym wedi anwybyddu fel o'r blaen, ond y pennawd olaf un, mae hyn amser, gan fy mod i wedi bod yma o'r blaen, yn gyflwyniad o y stamp llaw rhithwir. Lle y llinell yma, nid yw yn gosod cwci ond colon cwci PHPSESSI = 0vlk8t, mai dim ond fy porwr yn awtomatig cyflwyniad hwn stamp llaw fel bod Erbyn hyn mae'r gweinydd, cyn gynted ag y bydd yn sylweddoli, ooh, mae hyn yn dot 0vlk8t defnyddiwr, dot, dot, Gallaf gofio nawr pwy ef neu hi yn ac reassociate gyda'r defnyddiwr hwnnw beth bynnag wybodaeth yr wyf eisiau, ac mae pob un Gall y wybodaeth yn cael ei storio gan chi, y rhaglennydd, yn $ _SESSION. Felly, i fod yn glir, os wyf yn agor i fyny real gyflym mewn gedit bod gwirioneddol ffeil, counter.php, yn fy cyfeiriadur cyhoeddus llu lleol fel o'r blaen, yn sylwi bod, yn wir, Im 'yn y pen draw storio mewn $ _SESSION Dyfyniad unquote "counter," gwerth y cownter blaenorol a A gaf gan y llinellau hyn i fyny yma i ni sylw y tro diwethaf, ynghyd ag un. Felly, o dan y cwfl, dyna i gyd cookies yn cael eu. Mae'n union fath o digidol stamp llaw yn mynd yn ôl ac ymlaen, a dweud y gwir, os byddwch yn agor Chrome yn Arolygydd ar unrhyw wefan byddwch yn ymweld heddiw, gyda super tebygolrwydd uchel, rydych chi'n mynd i weld efallai un, efallai hanner dwsin cwcis yn cael ei gofio gan chi. Ac yn waeth eto, os bydd y rhai gwefan yr ydych yn ymweld â gan bob un ohonom hysbysebion, sef yn sicr heddiw eithaf cyffredin, ac os bydd yr hysbysebion hynny yn dod o rai blaid ganolog, bydd rhywun fel Google AdWords neu fel y maent ffoniwch un o'u cynnyrch neu werthwyr eraill fel bod gwerthu hysbysebion, yr hyn sy'n ddiddorol, a dweud y gwir beth ychydig yn worrisome, am sut HTTP gweithio, yw os oes gennych ad gwreiddio yn Facebook.com, ac Google.com, ac Harvard.edu, unrhyw rif o wefannau, felly mae'n fath fod yna ddyn canol sy'n gwasanaethu ar hysbysebion ar gyfer pob un o'r tri o'r gwefannau hynny, mae'n ymddangos bod y cwcis fesul parth. Felly, os oes gennych ad dod o'r un cwmni ar wahanol wefannau, Gall y cwmni olrhain pwy effeithiol eich bod ar draws pob un o'r gwefannau hynny. Efallai na Harvard yn gwybod eich bod yn ymweld â Facebook. Efallai nad yw facebook yn gwybod a ydych yn ymweld Harvard. Ond pa bynnag wasanaeth ad maent yn eu defnyddio os yw'r parth yn yn bresennol yn y ddwy we Harvard.edu tudalennau a thudalennau gwe Facebook.com, y dyn canol yn sicr yn gwybod pwy ydych chi oherwydd y cwcis hyn yn cael eu rhannu ar draws, neu yn hytrach i, y middleman fel y'u gelwir. Felly, byddwn yn dod yn ôl at hyn yn goblygiadau diogelwch ohono, ond mae llawer o wybodaeth cael ei gadw amdanoch chi unrhyw bryd i chi ewch rhan fwyaf o unrhyw dudalen ar y we ar y rhyngrwyd ac mae wir lleihau i'r mecanwaith syml iawn. Beth fydd yn digwydd, ac yna, os eich bod yn super paranoid a byddwch yn penderfynu mynd i mewn Chrome neu IE neu beth bynnag a throi oddi ar eich cwcis? Beth fydd yn digwydd? Yeah? Rydych really-- eich bod wedi gwneud hyn yn iawn? OK. Na, mynd yn ei flaen. GYNULLEIDFA: Nid yw rhai gwefannau oes gan swyddogaeth heb ei hoffi Facebook. DAVID J. Malan: Yeah! Felly rhai gwefannau Bydd dim ond rhoi'r gorau i weithio. Ac yn y rhan fwyaf o wefannau y dyddiau hyn sy'n dibynnu yn y bôn ar gwcis, yn enwedig os oes ganddynt y byddwch yn mewngofnodi mewn, maen nhw'n jyst yn mynd i dorri. Gan fod yn ystyried y amgen, os bydd y wefan Nid oes ffordd o gofio pwy ydych chi, ac felly nid yw eich porwr gwe yn gynrychioli gyda phob HTTP cais hwn stamp llaw, effeithiol gwefan fel Facebook yn barhaus i gael i chi yn brydlon i logio i mewn bob tro darn byddwch yn newid tudalennau, neu cliciwch cyswllt, a oedd yn sicr nad yw defnyddiwr yn arbennig o dda profiad. Fel bod yno, hefyd, yn ymhlith y cyfaddawdau. Felly, heb ado pellach, gadewch i ni gymryd yn ganiataol bod gyda rhaglenni ar y we, mewn ieithoedd fel PHP, gallwch gofio gwybodaeth fel yna yn y broblem a osodwyd saith pan fyddwch yn gweithredu eich hun Gwefan E * Masnach-fel gyda lle i brynu ac yn gwerthu stociau, byddwch yn cofio yn union yr hyn y mae'r defnyddiwr wedi prynu a'u gwerthu a phwy ef neu hi yn drwy gyfrwng y sesiwn hon. Ond rydym yn mynd i angen ffordd ffansi nag e-bost i ddechrau cadw gwybodaeth o gwmpas. Hawl? Ar ddydd Llun, buom yn siarad am IMS Frosh a sut mewn fersiwn un o'r wefan honno, mlynedd yn ôl, i gyd wnaethon ni oedd anfon e-bost y Proctor pwy sy'n gyfrifol am y chwaraeon rhyngfurol rhaglen, yr enw, a'r ryw, ac a ydynt yn bod yn gapten, ac y dorm rhywun sydd yn cofrestru ar gyfer chwaraeon rhyngfurol. Felly, nid ei fod yn ddrwg, ond mae ef neu hi wedyn roedd yn rhaid i trolio drwy eu e-bost, gwneud taenlen neu rywbeth tebyg hynny, i gadw popeth drefnu. Felly, yn sicr i ni fel rhaglenwyr Gall wneud hyn ar gyfer hynny proctor. Ac felly fynd i mewn SQL, Ymholiad Strwythuredig Iaith, sydd yn mynd i edrych yn bert yn wahanol i C a PHP, a byddwch yn deifio mewn llawer mwy ymarferol PHP a problem yn gosod saith, ond hefyd SQL, neu SQL, mae hyn yn iaith sy'n rydych yn ei ddefnyddio i siarad i gronfa ddata. Ond beth yw cronfa ddata? Wel chi feddwl am cronfa ddata, o leiaf am y tro, fel dim ond bod fel ffeil Excel, neu os ydych yn nifer y defnyddwyr ffeil Mac, neu os ydych yn Google Apps defnyddiwr taenlen Google, 'i' yn effeithiol cronfa ddata, neu mewn gwirionedd yn benodol cronfa ddata berthynol. Mae cronfa ddata berthynol yn unig rhywbeth sydd wedi rhesi a cholofnau, a gallwch storio unrhyw fath o gwybodaeth mewn rhesi neu golofnau hyn. Ond beth sy'n neis am SQL, a am gronfeydd data gwirioneddol, nid dim ond taenlenni neu daenlenni Google, yw y gallwch ddefnyddio iaith i mewn gwirionedd yn gweithredu ymholiadau at mewnosod data, i gael gwared ar y data, i chwilio am ddata, hyd yn oed yn bwysicaf oll, ac yr ydych Nid oes rhaid ei ddefnyddio yn deg â llaw fel y gallech chi fel arfer yn Google taenlen fel hyn. Felly, yn SQL, mae 'na griw o ddatganiadau neu ddarnau sylfaenol o functionality a adeiladwyd yn. Mae llawer mwy na hyn, ond gallwch fynd pellter enfawr dim ond trwy wybod bod yr iaith hon a elwir yn Mae gan SQL o leiaf bedair datganiadau gallwch trosoledd. Dileu, ar gyfer cael gwared data, Mewnosod, ar gyfer ychwanegu rhesi, Diweddariad, ar gyfer newid rhesi, a Dethol, ar gyfer mynd yn ôl rhesi a dyna yn wir beth SQL yn ei wneud. Mae'n gweithredu yn gyfan gwbl ar resi felly bod pan fyddwch yn mewnosod, neu ddileu, neu ddiweddaru, neu dewiswch yr hyn rydych yn mynd yn ôl o ganlyniad i hyn a elwir yn set, fel amrywiaeth o rhesi. Mae criw o rhesi o dabl. Felly, yn ôl yn y dydd, a hyd yn oed hyd heddiw, gallwch ryngweithio gyda'r cronfa ddata gan ddefnyddio llinell orchymyn, ond nid yw'n arbennig o hwyl i'w defnyddio y ffenestr arddull du a gwyn ac mewn gwirionedd yn gweithredu gorchmynion ac yn brocio o gwmpas eich cronfa ddata. Mae rhyngwyneb defnyddiwr graffigol, neu GUI, yn llawer mwy well, gellid dadlau, ac felly mae'r offeryn rydym yn argymell ac yn preinstalled ar eich cyfer ar y peiriant cael ei alw'n phpMyAdmin. Mae'n gyfanswm gyd-ddigwyddiad bod y enw'r beth mae hyn yn ei PHP ynddo, 'i jyst yn golygu bod y bobl a ysgrifennodd y rhaglen hon eu hunain Ysgrifennodd ei fod yn PHP. Namyn 'i' yn y pen draw ynglŷn â gweinyddu gweinyddwr cronfa ddata, fel gweinydd MYSQL y gallai fod gennych, wrth i chi yn ei wneud, yn y peiriant CS50. Felly mae mwy o fanylion yma nag mae angen i ni ofalu am heddiw, ond yr hyn sy'n allweddol yw bod ar y chwith ochr yn rhestr o'r cronfeydd data sydd gennych ar eich cyfrifiadur, ar eich offer CS50, neu dewch prosiectau terfynol y gallech chi gael ar drydydd parti, cwmni gwefan neu ar y we gweinydd, bod efallai y byddwch yn talu am y gofod. Felly, ar y chwith yw'r cronfeydd data, un ohonynt yw pset7 yr wyf yn benthyg o nesaf wythnosau pset, ac yna ar y top mae sylwi mae 'na criw o tabiau, un ohonynt yw cronfeydd data, SQL, statws, defnyddwyr, allforio ac yn y blaen. Felly, gallwch chi fynd am hir ffordd yn unig trwy wireddu bod y rhan fwyaf o'r rhyngwyneb defnyddiwr yn y golofn ar y chwith uchaf ac ar draws y top dde i fyny yno. Felly, beth allwn ni ei wneud gyda hyn? Wel, gadewch i ni ddechrau creu ychydig o wybodaeth fel a ganlyn. Gadewch i ni dybio y canlynol yn wir, fel y bydd mewn ychydig ddyddiau, ydych am weithredu gwefan, a elwir yn CS50 Cyllid, ac y wefan hon yn gadael i chi brynu unquote dyfynnu a gwerthu stociau. Ac mae'n mynd i chyfrif i maes y pris stociau rhai, yn y pen draw fel y byddwch yn gweld, trwy siarad â Yahoo Cyllid. Pa rai, rhyfeddol, mae gan wasanaeth rhad ac am ddim lle gallwch basio mewn stoc Ticker fel GOOG i Google, ac y bydd yn yn rhoi i chi yn ôl Google stoc ar hyn o bryd pris yn y gorffennol ychydig funudau o leiaf. Felly, byddwch yn defnyddio hynny, yn y pen draw, i esgus ar gyfer y defnyddiwr i brynu a gwerthu gwirioneddol stociau ddefnyddio arian rhithwir, ond y peth cyntaf y defnyddiwr yn mynd i weld yw hyn login screen sy'n gofyn iddynt am eu enw defnyddiwr a chyfrinair. Ac felly, un o'r rhai cyntaf heriau i chi yn pset7 yn mynd i fod i weithredu'r ben yn ôl cronfa ddata, mae'r daenlen os mynnwch, sy'n mynd i storio enwau a chyfrineiriau defnyddwyr ac yn y pen draw, yr hyn y maent yn berchen stociau, a faint, a faint o arian sydd ganddynt, felly bagad o bethau eraill mewn tablau eraill, neu daenlenni. Felly, gadewch i ni edrych ar sut y mae hyn Gallai ymddangos ar yr olwg gyntaf. Rydw i'n mynd i fynd yn ôl i'r yr offer ac rwy'n mynd i fynd i'r URL hwn fan hyn phpMyAdmin localhost / phpmyadmin a byddwch yn gweld ei fod yn mynd â fi i'r rhyngwyneb yn union fel y gwelsom ar y ergyd sgrîn, ac yma yr wyf yn cael cronfa ddata ychwanegol Gelwir darlith ar gyfer heddiw a gadewch i mi fynd yn ei flaen cyntaf a chliciwch ar pset7. Yr wyf yn ymddangos i gael un neu ddau o opsiynau, un ar gyfer newydd, ar gyfer creu tabl newydd, a dolen i ddefnyddwyr, a oedd mae tabl Rwyf eisoes ei greu. Felly beth tabl? Felly os ydych yn defnyddio Excel o'r blaen, ac os ydych wedi rhifau a ddefnyddir neu Google Taenlenni, byddwch yn agor i fyny ffenestr a byddwch yn cael criw cyfan o rhesi a cholofnau, ond yna rydych fel arfer yn cael taflenni gwaith ar hyd y gwaelod, neu tabs ar wahân. Gallwch chi feddwl am bob un daflen waith fel tabl fel y gronfa ddata, yn y pen draw, yn cyfuniad o un neu fwy o dablau, un neu fwy o daflenni gwaith, yn y byd taenlen arferol. Felly, gadewch i mi fynd yn ei flaen ac cliciwch ar y daflen waith hon fy mod premade, a elwir yn ddefnyddwyr, a.k.a. Tabl cronfa ddata. Ac os wyf yn sgroliwch i lawr yma, gadewch i mi chwyddo allan ychydig, mae hyn yn beth phpMyAdmin yn ei ddweud ni yw tu mewn y tabl hwn ar hyn o bryd. Mae'n ychydig yn ddryslyd ar y dechrau yr olwg oherwydd nad yw'r UI yw y peth harddaf yn y byd, ond yr hyn sy'n ddiddorol yw rhan hon fan hyn. ID, enw defnyddiwr, a hash. Ymlaen llaw, a byddwch yn llawdrwm mae hyn yn broblem yn gosod saith, rydym yn rhoi ffeil sy'n cynnwys super i chi tabl cronfa ddata bach, benthyg mewn gwirionedd oddi wrth y rhifyn haciwr o broblem yn gosod dau, tu mewn y mae chwe rhes. Un ar gyfer Belinda holl ffordd i lawr i un ar gyfer Zamyla, ac yn sylwi ar ochr chwith y rheini enwau defnyddwyr yn IDs unigryw fel un, dau, tri, pedwar, pump, chwech, cyfanrifau, ac yna i'r dde mae hashes. Ac os, groes yn, na wnaethoch chi y broblem rhifyn haciwr gosod dau, ond mae hash yn union fel amgryptio cyfrinair gyda rhai cafeatau. Ac felly, yr hyn yr ydych yn gweld yma yn y fersiynau amgryptio o bob chwech o'n cyfrineiriau rhag problem gosod argraffiad dau yn haciwr. Nawr ar y chwith yn unig yw rhai pethau GUI, golygu rhes hon, copïo rhes hon, dileu'r rhes hon. Ond yr hyn sy'n ddiddorol nawr yw'r canlynol. Gallaf ddechrau mewn gwirionedd arbrofi gyda y tabl hwn. Felly, os af a chliciwch y SQL tab, yr wyf yn cael y blwch testun mawr. Ac nid yw hyn yn sut yr ydym yn mynd i wneud hynny pan mewn gwirionedd yn ysgrifennu cod. I fod yn glir, phpMyAdmin yn unig yw offeryn sy'n yn mynd i adael i ni brocio o gwmpas y gronfa ddata a gadewch i ni arbrofi gydag ymholiadau. Felly, er enghraifft, mae'n debyg Rwy'n gweithredu yn union hyn. Dethol, sy'n un o'r rhai keywords y soniais yn gynharach, seren, sy'n cynrychioli'r holl y colofnau mewn tabl. O'r hyn a bwrdd? Wel, defnyddwyr. A rhybudd mae hyn confensiwn rhyfedd yn SQL lle rydych yn ei ddefnyddio yn ôl trogod, fel arfer, dyfyniadau Nid sengl a dyfyniadau nad dwbl pan fyddwch yn siarad am enwau tablau, felly mae'r dyfyniad cefn yw'r peth ar y top chwith eich bysellfwrdd mwyaf tebygol. Felly, gadewch i mi fynd yn ei flaen yn awr a dim ond gadael hynny ei ben ei hun a sgroliwch i lawr a chliciwch Go, ac rydym yn mewn gwirionedd yn mynd i weld yr un peth. Rydym newydd ddienyddio ymholiad SQL gan ddweud dewiswch seren bopeth o dabl o'r enw defnyddwyr, ac hyn yr ydych yn ei gael yn ôl yn hyn. Yn y pen draw, byddwn yn gallu gwneud hynny un peth mewn cod, ond am y tro pob roeddwn i eisiau Nid oedd yn gweld ei fod yn fy porwr. Wel gadewch i ni wneud rhywbeth ychydig yn wahanol. Gadewch i mi fynd yn ôl at y tab SQL, a gadewch i ni dim ond dweud bod yr hyn? Zamyla wedi colli ei holl arian, ac felly ei fod yn amser i ni ddileu hi fel defnyddiwr. Mae hi bellach wedi logio i mewn. Felly, dw i'n mynd i ddweud dileu from-- yn dda, cynnal cyfalafu er mwyn cysondeb, dileu gan ddefnyddwyr lle. Ac felly, gallwn gael y rhain predicates, neu mae'r rhain rhagbrofol, ar ddiwedd fy natganiad ble a sut y gallwn i ddileu Zamyla? Yn ôl ei henw Zamyla, felly mae'r colofn, un o'r colofnau enwyd, felly lle mae enw = "Zamyla". Ac yma Rwy'n defnyddio dwbl dyfyniadau neu dyfyniadau sengl, ydych ond yn defnyddio'r cefn dic pryd siarad am yr enwau, er enghraifft, tablau neu gaeau. A gadewch i mi cliciwch Ewch yma. Ac yn awr, mae'r dudalen we yn sef ychydig yn uptight. Neu, ydych chi wir am weithredu dileu gan ddefnyddwyr lle mae enw hafal Zamyla? Ie. Felly nawr, os ydym yn mynd yn ôl at fy mwrdd gan ddefnyddwyr glicio, sylwi bod Hm. I goofed. Ac yn wir, yr wyf yn fath o glicio i ffwrdd mor gyflym nad oeddech hyd yn oed yn gweld y neges gwall coch, efallai. Beth wnes i ei wneud o'i le? GYNULLEIDFA: Nid ydych oedd angen i fanteisio i'r eithaf ei henw. DAVID J. Malan: Yeah I cyfalafu ei henw, ond mae ei username-- mewn gwirionedd yr wyf gwneud cwpl camgymeriadau, dde? Un, ei enw defnyddiwr yn zamyla, Z llythrennau bach, ac enw golofn yw enw defnyddiwr, Nid yw enw, felly gadewch i ni wneud hyn eto. Gadewch i mi fynd yn ei flaen ac dileu gan ddefnyddwyr lle enw defnyddiwr yn dychwelyd dyfyniad unquote "Zamyla". Mae pob hawl? Felly, mae hyn yn edrych ychydig yn well, gadewch i mi fynd sgroliwch i lawr a chliciwch Go. Mae hi dal yn mynd i gweiddi arna i fod yn sicr. I cliciwch Ie, ac yn awr rydym yn gweld, dweud y gwir digwyddodd hyn, mewn gwirionedd gyflym, yn llai nag un yn ail yn sicr, mae hyn yn union yr ymholiad a gafodd eu dienyddio. I gadarnhau, gadewch i mi cliciwch i ddefnyddwyr ac yn wir erbyn hyn Zamyla wedi mynd. Nawr, gadewch i ni wneud y gwrthwyneb. Tybiwch fod Gabe eisiau gofrestru ar gyfer y wefan. Beth yw'r ymholiad SQL, beth yw'r gorchymyn gallwn i deipio i ychwanegu Gabe? Wel mae'n eithaf syml. Mewnosod i mewn i ddefnyddwyr, ac yn awr mae'n mynd ychydig yn cryptig. Angen i mi nodi, at 'r gweinyddwr, pa feysydd yr wyf am ei aseinio. Dydw i ddim yn poeni beth Gabe ID rhif yw, felly dwi'n mynd i hepgor hynny. Im 'yn lle mynd i ddweud enw defnyddiwr, hash, ac yna y gwerthoedd Rwyf am roi mae yn mynd i fod Gabe. Ac yna ei hash, nid wyf yn gwybod. Felly, am y tro, yr wyf i'n mynd i gadael hynny fel mawr i'w wneud. Byddwn yn dod yn ôl i bod yn y broblem a osodwyd spec o ran sut yr ydych mewn gwirionedd yn gwneud hynny. Felly sylwi, unwaith eto, y gystrawen. Mewnosod i mewn i enw'r tabl, yna mae rhestr parenthesized y caeau, y colofnau yr ydych eisiau ei ychwanegu gwerthoedd i, ac yna dim ond union yr un fath ar ôl i archebu dde o'r gwerthoedd yr ydych am ychwanegu, a 'i' dim ond lapio oherwydd mae'r testun yn ychydig yn hir. Felly nawr gadewch i mi cliciwch Go. Un rhes mewnosod. Ac yn awr os byddaf yn mynd yn ôl i defnyddwyr, yr hyn sy'n ddiddorol yw nid yn unig bod Gabe awr yn y cronfa ddata, yr hyn sy'n debyg ei ID? Wel mae'n saith. Pam ei fod saith pan doeddwn i ddim ychwanegu? Felly, mae hyn, hefyd, yw un o'r nodweddion a gewch o'r gronfa ddata. Mae llawer o adeiladwyd yn functionality. Mae'n ymddangos bod pan Crewyd y tabl hwn, Rwy'n ragosodedig 'i' yn awtomatig aseinio ID yn y fath fodd ei fod yn cynnyddu. Felly, os ydych chi wedi poked erioed o gwmpas, ac wedi edrych ar beth yw eich Facebook ID rhif yw, y dyddiau hyn nid yw'n wir yn beth i'w wneud, ond mae Facebook fel API, Cais Rhaglennu Rhyngwyneb, lle y gallwch fynd yn ôl criw cyfan o ddata am chi eich hun, am eich ffrindiau, ac yn eich cysylltiadau. A hyn a arferai fod yn garedig o oer, yn ôl yn y dydd, oedd edrych ar beth yw eich Rhif ID facebook oedd. Mark Zuckerberg yn, er enghraifft, yw tri ers iddo fod yn awdur y safle. Ac wrth i'r stori yn mynd, creodd dau cyfrifon prawf, defnyddwyr un a dau, y mae ef wedyn yn dileu. Ac felly, Zuck, fel y mae ei enw defnyddiwr ar Facebook, yn ID rhif tri, ac mae pob un ohonom yn cael niferoedd llawer fwy na thri diwrnod yma. Yn wir, ar ryw adeg Symudodd facebook ffwrdd o hyd yn oed gan ddefnyddio int, a oedd yn werth 32-bit, i ddefnyddio y cam nesaf i fyny, hanfod yn hir o amser, felly eu bod yn gallu darparu ar gyfer hyd yn oed mwy o ddefnyddwyr sy'n cofrestru. Felly mae yn ffaith hanesyddol ychydig o hwyl. Felly dyna dim ond y gystrawennau sylfaenol â hwy efallai y byddwn yn gweithredu un neu ddau o ymholiadau, ond gallwn mewn gwirionedd gwneud bagad mwy o bethau gyda SQL. A byddwch yn gweld, yn y pen draw, yn y broblem a osodwyd saith bod yn rhaid i chi wneud nifer o benderfyniadau dylunio, yn eu plith yn mynd i fod pa fathau o ddata i'w defnyddio. Felly, yn union fel yn C, mae data mathau mewn cronfa ddata, megis MySQL, a'r mathau data rhaid i chi ddewis o'r cynnwys y meysydd hyn yma. Golosg, varchar, Int, int mawr, degol dyddiad ac amser, a llawer o rai eraill. Felly gadewch i ni mewn gwirionedd yn gwneud hyn. Gadewch i esgus nad ydym yn gwneud tabl defnyddiwr hwn yn llaw i chi a gadewch i mi fynd yn ei flaen a chreu, am fy hun, yn y darlithoedd database-- mewn gwirionedd yn gadael i mi fynd yn ei flaen ac yn dileu mae'r tabl gen i mewn yma yn barod fel y gallwn mewn gwirionedd yn creu hyn. Wps. Rydw i'n mynd i roi'r gorau i hyn bwrdd, ac erbyn hyn rwy'n mynd i fynd eto i'r darlith cronfa ddata dros yma, Rydw i'n mynd i greu tabl Gelwir defnyddwyr a gadewch i ni dim ond gwneud dair colofn yn y lle cyntaf a chliciwch Go. Yn awr, ar y cyfan, unwaith eto, mae hyn yn unig ddefnyddio'r offeryn graffigol o'r enw phpMyAdmin, a'r hyn rydym yn ei wneud yn awr yn creu tabl. Felly, mae hyn yn debyg File mynd, New, a chreu ffeil Excel newydd. Felly, mae'n gofyn i mi ychydig cwestiynau, o'r chwith i'r dde, beth yw enw'r y golofn gyntaf, ac yna enw'r ail golofn, ac enw y drydedd. Felly gadewch i ni ail-greu'r hyn. ID, ac yna enw defnyddiwr yn un, ac yna hash yn un arall. Felly, yr hyn y dylai y math data fod yn awr ar gyfer cae fel ID? Dyma'r rhestr gyfan o fathau data sydd ar gael i chi mewn cronfa ddata, ac am y tro, gadewch i ni dim ond yn mynd gyda int. Gwerth 32-bit, nid wyf yn ei wneud feddwl yn realistig i ddim mynd i gael mwy na 4000000000 defnyddwyr yn fy nghyfrif, yn fy ngwasanaeth, felly dwi'n mynd i gadw symud ymlaen i'r cwestiwn nesaf. Dydw i ddim yn mynd i bennu hyd neu werthoedd, nid yw'n berthnasol yma am int, fel y cyfryw. Ac yn awr y gallaf nodi, yn ôl pob golwg, a diofyn gwerth, ac nid wyf ddim yn mynd i bennu. Mae coladu, nid wyf yn gwybod beth yw hynny. Priodoledd. Nawr rydym yn ei wneud mewn gwirionedd gael penderfyniad dylunio. Felly mae yna ychydig o gaeau yma, nid yw pob ohonynt yn berthnasol, ond heb eu llofnodi jyst yn golygu beth? Bod yn rhaid i'r int fod? Dim ond heb fod yn negyddol. Felly, mae'n rhaid iddo fod yn 0 ar i fyny. Na, dydw i ddim yn mynd i wirio am fod Rwyf am i bob defnyddiwr i gael adnabod, ni all fod yn nwl. Ac yna, rydym yn dod i rai mwy penderfyniadau dylunio diddorol fel hyn. Byddwn yn dod yn ôl at hyn yn y man, ond pa nodwedd arall o gronfa ddata yw, yw y gallwch ddweud y gweinydd y gronfa ddata mynd yn ei flaen a gwneud y gorau eich hun, eich RAM a bod eich lle ar y ddisg galed, fel eu bod yn dethol, a mewnosodiadau, a dileu, a diweddariadau yn wirioneddol gyflym. Cyferbyniad hyn gyda pset5. Os ydych am edrych i fyny rhywbeth yn eich tabl hash, a oedd ydych yn meddwl am fel cronfa ddata, a oedd yn gorfod gwneud yr holl gweithio i wneud eich bwrdd hash gyflym. Mae'n debyg, yn amlwg, yr ydych. Hawl? Bu'n rhaid i chi roi yn yr holl amser ddirwy tiwnio pethau, cael swyddogaeth hash i'r dde, figuring sut lawer o bwcedi i'w gael. Ond beth braf, unwaith eto, tua cronfa ddata yn 'ch jyst punt bob un hwn i bobl eraill sydd wedi meddwl hyn trwy i chi, a beth Rydw i'n mynd i ddweud yma o dan mynegai yw bod fy maes ID yn mynd i fod ar y ffordd sylfaenol o nodi defnyddwyr yn y gronfa ddata hon. Dydw i ddim yn mynd i feddwl o Zamyla fel Zamyla, Rydw i'n mynd i feddwl am hi wrth i'r rhif 6. Pam ei fod, efallai, yn well yn reddfol i feddwl am a model pob un o'ch rhesi unigol gan ddefnyddio nifer yn hytrach na rhywbeth fel llinyn, fel yr Zamyla neu Gabe neu linyn hirach o hyd? Yeah? GYNULLEIDFA: Mae ID yn unigryw? DAVID J. Malan: Dweud eto? GYNULLEIDFA: Mae ID yn unigryw? DAVID J. Malan: Mae ID yn unigryw, ond suppose-- yn ôl y digwydd yn gyffredinol gyda enwau defnyddwyr, mae'n debyg Dywedais hefyd y gall dim ond un Zamyla yn y byd, a dim ond un Gabe. Gallwn osod pa mor unigryw cyfyngiad ar linynnau, hefyd, os oeddwn i eisiau. Felly, nid yw meddwl gwael. GYNULLEIDFA: Yn fwy diogel. DAVID J. Malan: Yn fwy diogel, pam? GYNULLEIDFA: Ni allwch ddweud pa yw sydd, fel yn y defnyddiwr. DAVID J. Malan: Iawn, chi Ni all ddweud pa defnyddiwr yw pa felly mae 'na agwedd preifatrwydd iddo, yn enwedig os yw'r IDs efallai ymddangos yn y URLs. Felly yn sicr, y gallai y math o waith, hefyd. Sylwadau eraill? Yeah? GYNULLEIDFA: Mae'n haws i perfformio gweithrediadau ar int. DAVID J. Malan: Dyna'r ciciwr gwir. 'I' jyst yn fwy effeithlon, neu'n haws i'r cyfrifiadur, i berfformio gweithrediadau ar cyfanrif. Hawl? Mae int yn sicr o fod yn 32-bit, tra Zamyla yn ychydig o gymeriadau o hyd, Gabriel yn ychydig mwy o gymeriadau o hyd, Davenport yn hir iawn, ac felly mae'n Nid yw yn arbennig o effeithlon i ddefnyddio llinynnau i gymharu gwerthoedd ac yn edrych ar gyfer meysydd, a chaeau diweddaru, os gallwch gael i ffwrdd gyda dim ond un cyfanrif. Dim ond 32 o ddarnau. Felly enwau defnyddwyr, hefyd, y ffordd hon, nid oes rhaid iddynt fod yn unigryw, er y dylent yn ôl pob tebyg fod, a hyd yn oed yn y modd hwn hefyd Gellid defnyddiwr yn cael ei ganiatáu i yn newid ei enw defnyddiwr. Felly gadewch i ni yn awr adael hyn gan fod y prif ddull o adnabod y defnyddiwr. Mae hyn yn dweud wrth y gronfa ddata mynd yn ei flaen ac yn gwneud y gorau eich hun fel eu bod yn edrych ups ar adnabod yn super gyflym. AI, a enwyd ofnadwy, dim ond golygu Auto Cynyddiad, ac mae hyn yn y siec blwch mae angen i ni wirio i nodi bod y cae adnabod i yn cael ei diweddaru yn awtomatig i mi, ac wedyn dw i'n mynd i sgrolio i'r dde yma a dweud y gwir Dydw i ddim wir ddiddordeb mewn unrhyw fwy o'r meysydd hyn. Yn sicr nid heddiw. Felly, yr wyf i'n mynd i fynd yn ôl yma, at y golofn gyntaf, lle Angen i mi nodi enw defnyddiwr a hash, a gadewch i ni yn canolbwyntio leiaf ar y ail un am y tro. Yn ôl pob tebyg Int yw nad yw'r alwad yn iawn, felly beth sy'n gwneud mwy o synnwyr o bosibl? GYNULLEIDFA: Testun. DAVID J. Malan: Dweud eto? GYNULLEIDFA: Testun. DAVID J. Malan: Testun? OK, yr wyf yn clywed y testun. Beth arall? Mae gennym fath o gennym griw o ddewisiadau sy'n testunol eu natur. Felly pan, a pham, yn gwneud ydych yn defnyddio rhai o'r rhain? Wel torgoch, yn groes i'r hyn yr ydych efallai yn meddwl, nid yn gymeriad unigol. Mae'n nifer penodol o gymeriadau. Felly os ydym yn gwybod bod yr holl enwau defnyddwyr Mae'n rhaid i fod yn debyg wyth cymeriadau, fel arfer bod yn gyffredin yn hŷn systemau cyfrifiadurol, gallwn ddweud torgoch ac yna gallwn ddweud 8 yma. Dyna pryd y drydedd golofn yn dod yn berthnasol wrth greu tabl. Ond dyna fath o blino oherwydd y gallai rhai pobl am gael enw defnyddiwr hirach nag wyth cymeriadau, efallai y bydd rhai pobl yn dymuno cael enw defnyddiwr byrrach, felly pam ymrwymo fy hun i nifer penodol? Beth am gael newidyn nifer o chars a dim ond yn dweud bod yr uchafswm hyd enw yw, nid wyf yn gwybod, fel 64 cymeriadau. Ni allaf feddwl am unrhyw ffrindiau sydd enwau yn hwy na 64 o gymeriadau, a hyd yn oed os yw hynny'n rhy fyr gallech yn sicr yn taro i fyny yn fympwyol. Felly varchar yn newidyn nifer y chars. Nid yw testun yn greddf ddrwg, ac a dweud y gwir y math hwnnw o yn gwneud yr hyn y mae'n ei ddweud, ond gall maes testun fod fel 65,000 bytes o leiaf. Dyna mae'n debyg overkill am maes, ac mewn gwirionedd, yup, 65,535. Dyna mae'n debyg overkill am enw, felly byddwn yn cadw, yn nodweddiadol, gyda varchars am destunol cae a hash, hefyd. Hash, mae'n troi allan, gallem wneud varchar hefyd neu rywbeth fel 'na, ond ni fyddwn yn canolbwyntio heddiw ar y cryptograffeg yno ac mae'r rhifau y gallem mewn gwirionedd am ddefnyddio am ei hyd. Ond gadewch i mi sgrolio i lawr i'r dde. Gallwch ond gael un prif fynegai ar gyfer tabl, ond ydw i'n eisiau gwneud cais unrhyw un o'r rhain, yn awr, i enw defnyddiwr, yn eich barn chi? Beth ddylai enw defnyddiwr fod yn seiliedig ar annelwig dealltwriaeth o'r rhain pedwar dewis? Dim ond wrth eu henwau? GYNULLEIDFA: Unigryw. DAVID J. Malan: Felly unigryw, dde? Felly, mae'n troi allan, nid yn unig allai i chi ddweud wrth cronfa ddata, o flaen llaw, dyma'r ffordd sylfaenol o nodi meysydd. Gallwch hefyd ddweud hyn yw mynd i fod yn faes unigryw. Dyw hi ddim yn mynd i fod y peth yr wyf yn dibynnu ar, ond hoffwn gronfa ddata i yn y bôn gael hynny os yw cyflwr, felly os wyf erioed wedi ceisio i gofrestru dau ddefnyddiwr gyda'r un enw, y gronfa ddata allan fflat Nid yn mynd i adael i mi. Efallai fy mod yn cael rhywfaint o cod ychwanegol yn PHP sy'n atal cymaint, ond y gronfa ddata, hefyd, yn gallu sicrhau nad yw byth sy'n mynd i ddigwydd. Yn awr, wrth fynd heibio, yn enwedig gan ydych yn meddwl am brosiectau terfynol, cadw mewn mynegai y mae'n meddwl ac yn llawn testun mewn gwirionedd yn eithaf defnyddiol. Os oes gennych gronfa ddata mwy o faint, nid gyda dwsinau, ond gyda channoedd neu filoedd neu hyd yn oed miliynau o gaeau, gallwch hefyd yn dweud wrth y gronfa ddata o flaen llaw mae hwn yn faes yr wyf i'n mynd i gael ei chwilio ar lawer. Efallai ei enw defnyddiwr, efallai ei bod yn bio, os ydych yn wneud gwefan Facebook-fel 'na Mae paragraffau fod y defnyddiwr a ganiateir i arbed, ac os ydych yn dymuno dywedwch wrth y gronfa ddata o flaen llaw Dw i'n mynd i gael ei chwilio ar y maes llawer, ond nid yw'n reidrwydd yn unigryw, gallwch nodi greu mynegai i mi. Neu, gallwch ddweud hefyd yn fy ngalluogi i wneud math o chwiliadau mympwyol fel Command neu Rheolaeth F, fel chi gellid yn yr Prosesydd Geiriau, felly gallech edrych llinynnau mympwyol neu substrings yn y maes hwn. Mewn geiriau eraill, rydym yn cyrraedd at y pwynt yn y semester lle nad oes rhaid i chi boeni am sut i roi pethau yn effeithlon. 'Ch jyst angen i chi ei wybod am yr hyn y penderfyniadau dylunio i wneud fel eich bod chi'n gan ddefnyddio'r offer cywir ar gyfer y masnach er mwyn trosoledd nodweddion y mae pobl eraill wedi adeiladu ar eich cyfer. Felly, i ailadrodd, dylai cynradd yn unig gennych un, gallwch ond gael un, ac mae'n y peth rydych yn ymrwymo i defnyddio i nodi meysydd unigryw. Unigryw yn unig debyg o ran ysbryd, ond efallai y byddwch yn ei ddefnyddio dim ond yn achlysurol, ond rydych am y gronfa ddata i osod iddo. Mynegai jyst yn golygu preemptively cyflymu pethau i fyny yn y dyfodol fel y gallaf chwilio am pethau yn y maes hwn. Ac yna testun llawn yn gyffredinol am paragraffau, neu draethodau, neu gyrff mawr o destun lle rydych Efallai hefyd am gael cardiau gwyllt fel yr hyn sy'n cyfateb seren. Hawl. Felly roedd y math hwnnw o llawer i gyd ar unwaith. Gadewch i ni weld os na allwn distill un neu ddau o nodweddion hyn ac yna adeiladu rhywbeth weddol syml, ond pwerus. Felly, ymysg y llall penderfyniadau dylunio eich bod yn yn y pen draw yn mynd i gael ei hyd y llinellau o beiriannau storio. A gadewch i mi jyst yn gwneud sôn am hyn gan ragweld prosiectau terfynol, a rhagweld gadewch i say-- dim gadewch i ni wneud hyn. Gadewch i ni adeiladu hyn ychydig cais cyntaf. Rydw i'n mynd i fynd i mewn i fy terfynell ffenestri, ac yn y fan hyn nad yw counter.php unig, yr ydym yn mynd yn awr i gael gwared o mor mwyach germane, ond mae gennym criw cyfan o gyfeirlyfrau ac mae hyn yn yn mynd i fod yn debyg iawn o ran ysbryd i'r hyn y byddwch yn gweld yn broblem a osodwyd saith. Felly mae gennym dri cyfeiriaduron cynnwys y cyhoedd a thempledi, a oedd yw ble yn union rydym yn chwith oddi ar Llun gyda â'n patrwm MVC cyfan. Ac i ailadrodd, yn gyhoeddus yn mynd i fynd unrhyw ffeil yr hoffwn defnyddwyr i mewn gwirionedd v yn gallu ymweld yn eu porwr drwy URL. Templed. Beth wnaethom ni eu rhoi ar dempledi? Pa fath o bethau? Nid oedd llawer ond cwpl ffeiliau o leiaf ar ddydd Llun. Yeah. GYNULLEIDFA: Pennyn a Troedyn? DAVID J. Malan: Pennyn a Troedyn. Felly, rydym wedi rhywbeth tebyg heddiw, hefyd. Mae gennym ychydig yn fwy o ffeiliau ond Troedyn Rwy'n gweld, Pennawd wyf yn gweld, ac yna criw o ffeiliau eraill. Felly, mae hyn yn gyfwerth o'r farn V MVC, sydd, unwaith eto, bydd yn ychydig yn fwy glir yn broblem a osodwyd saith, ond mae hyn yn unig yw folder rwy'n rhoi llawer o fy estheteg. Mae llawer o fy HTML, mae llawer o fy ffurflenni. Yn y cyfamser, yn cynnwys, yn un arall cyfeiriadur sydd y tri ffeil a gadewch i ni edrych yn sydyn ar y rhain. Rydw i'n mynd i fynd yn ei flaen ac yn agor i fyny config.php. Fel mae'n troi allan, llawer fel yn gynharach yn y tymor, chi gynnwys miniog CS50 dot h gyda pset7. Yn yr enghraifft heddiw, rydych yn mynd i wneud yr hyn sy'n cyfateb i hynny gyda datganiad yn gofyn hynny yn effeithiol cynnwys y rhain nifer o linellau. Felly, i fod yn glir, mae hyn yn ffeil o'r enw config.php. Ac yn sylwi ar yr hyn y mae'n ei wneud. Mae'n debyg ei fod yn gwneud rhywbeth cryptig, gan droi ar y negeseuon gwall fel y gallwch eu gweld yn y porwr. Mae'n, yna, mae'n debyg ei gwneud yn ofynnol dwy ffeil arall felly mae hyn yn debyg #include yn C, ac yna mae hyn yn un yr ydym yn gweld, ac rydym wedi dibynnu arnynt, mae hyn yn troi ar y cart siopa fel functionality. Mae hyn yn golygu cwci ewyllys yn cael ei anfon yn ôl ac ymlaen. Felly pam mae hyn yn ddiddorol? Wel, os ydym yn mynd yn ôl at hyn cyfeiriadur ac yn agor i fyny, er enghraifft, constance.php. Sylwch fod PHP yn cefnogi cysonion, nid mae'n eithaf tebyg i #define yn C. Yn lle hynny, byddwch yn llythrennol dweud diffiniedig, a rhybudd fy mod i wedi ei storio o flaen llaw pedwar cysonion yn y ffeil hon. Un ar gyfer cronfa ddata heddiw, er fy nghyfrinair, am fy enw defnyddiwr, ac am enw'r gweinydd. Felly, mae'r rhain mewn gwirionedd yn mynd i fod eithaf tebyg yn broblem yn gosod saith. Ac yn olaf, a dyma lle rwy'n mynd i gael rhywfaint o functionality 'n glws oddi wrth y staff, mewn functions.php mae criw o cod rydym wedi ysgrifennu, ac yr wyf yn dwyn peth o hyn o broblem yn gosod saith ar gyfer heddiw, sy'n gwneud criw o bethau a gadewch i ni dim ond yn edrych ar un ohonyn nhw yn arbennig. Mae'r swyddogaeth yma, ymholiad, yn mynd i fod y swyddogaeth PHP rydym yn galw er mwyn gweithredu SQL. Mae hyn o bryd yn ôl, roeddem yn defnyddio phpMyAdmin, ond dim ond ar gyfer y math o ddibenion dysgu a dibenion diagnostig ac anghofio eich set cronfa ddata. Pan fyddwch mewn gwirionedd yn defnyddio eich cronfa ddata, chi, y dynol, yn amlwg nid yn mynd i gael ei dynnu i fyny ar y we dudalen bob tro mae rhywun cofrestri. Rydych yn mynd i ysgrifennu cod sy'n mewnosod a dileu defnyddwyr ar y galw, ac rydym yn mynd i wneud hyn drwy gyfrwng y swyddogaeth ymholiad. Os wyf yn awr sgroliwch i lawr, mae mynd i fod ychydig mwy o nodweddion. Redirect yn mynd i fod yn swyddogaeth, ysgrifennom i chi sy'n eich caniatáu i anfon y defnyddiwr i URL arall, a rendr yn swyddogaeth, yn eithaf tebyg i gwelsom ddydd Llun, sy'n renders mewn gwirionedd templed, ond yn fwy am y rhain yn y fath o daith pset7 ei hun drwy. Am y tro, gadewch i ni fynd yn ei flaen ac yn gwneud hyn. Gadewch i mi fynd i mewn i fy tabl darlithoedd a gweld bod does dim byd ar hyn o bryd yma eto, a gadewch i mi hefyd yn mynd i mewn i fy cyfeiriadur cyhoeddus, lle nid dim ond un ffeil, index.php. Ymddengys y ffeil hon yn super syml ar hyn o bryd, mae'n edrych yn union fel hyn. Llawer iawn fel sut yr ydym yn gadael oddi ar ddydd Llun. Im 'yn ei gwneud yn ofynnol y ffeil, config.php, sydd yn yn cynnwys cyfeiriadur, a oedd yn mewn dot dot, fy rhieni, ac yna mae'n jyst rendro y ffeil. Felly, beth yw y ffeil? Gadewch i ni yn agor i fyny yn fy templedi form.php, a byddwn yn gweld hyn. Super syml, mae'n debyg y ffurflen hon yw mynd i gyflwyno gan a $ _GET neu $ _POST. Gwiriad pwyll gyflym. Llythrennol weledol chwilio'r ffeil. Dull hafal post. Felly, nid yw'n mynd i ddefnyddio'r URL, fel Google yn ei wneud, mae'n mynd i ddidoli o cuddio y wybodaeth y tu ôl i i'r llenni ac mae'n mynd i gyflwyno i ffeil o'r enw register.php, a dyna y ffeil nid ydym wedi ysgrifennu eto ond beth y mae hyn yn mynd i edrych fel yn hyn. Os byddaf yn mynd i dudalen ar wahân Mae hyn yn pa localhost / index.php yn edrych fel. Ac eto, mae'r gweinydd yn dim ond dybio index.php. Enter. Felly dyna lle rydym yn yn, a beth yr wyf am ei wneud ei fod yn gallu teipio pethau fel David, ac yna fy rhif ffôn, a fydd yn dweud 617-555-1212 am y tro, cofrestru ac erbyn hyn nid chanfuwyd register.php. Felly mae angen i mi weithredu hyn. Felly gadewch i ni chwip gyflym rhywbeth tebyg i fyny yma. Gadewch i mi fynd i mewn i fy cyfeiriadur cyhoeddus ac yn gwneud gedit o register.php, ac yn awr yr wyf i'n mynd i fynd yn ei flaen ac dechrau modd PHP, fel y gwnaethom ar ddydd Llun, a tag cau PHP, ac gadewch i ni wneud un neu ddau o bethau. Felly un, yr wyf yn gwybod, o wedi ysgrifennu y ffurflen honno, yr wyf am i wirio am y canlynol. Os yw'n wag, beth bynnag y defnyddiwr deipio i mewn i'r cae enw, yna Dw i'n mynd i ddweud rhywbeth hoffi ymddiheuro goll enw. Ymddiheuro, yn y cyfamser, mae Nid adeiladwyd yn PHP peth, mae'n swyddogaeth, ysgrifennom mewn functions.php am pset7 fel eich bod yn cael mynediad ato. Arall os yw'r cae arall yn wag, rhif, yna rwy'n mynd i ymddiheuro i'r defnyddwyr a dweud rhif coll. Arbedwch y ffeil. Nawr, gadewch i ni fynd yn ôl at fy porwr, ewch yn ôl i'r fforwm roi cynnig arall arni. Cofrestru. OK. Ni ddigwyddodd dim, sy'n beth da. Doeddwn i ddim yn cael neges gwall. Ond os yn lle hynny, gadewch i ni ail-lwytho hwn dudalen, ac nid yw yn darparu unrhyw beth. Damia. Yn gwneud hynny. Cofrestru. Beth wnes i ei wneud o'i le? Os yn wag, enw $ _POST. Dweud eto? O, wrth gwrs. Wedi anghofio y rhan mwyaf pwysig, sef yn ei gwneud yn ofynnol ("../ cynnwys / config.php."). Angen i mi gael mynediad at y ymddiheuro swyddogaeth, a oedd yn Dyna pam dim byd yn digwydd. Nid yw'r swyddogaeth yn bodoli mewn gwirionedd. Felly gadewch i ni roi cynnig ar hyn eto. Gadewch i ail-lwytho y dudalen, cliciwch ar y Gofrestr. OK. Yno y mae. Felly, mae'r cynnyrch rydym yn gweld yma yw canlyniad o alw am ymddiheuro swyddogaeth, super syml, a 'i jyst yn argraffu allan beth bynnag Rwy'n ei roi fel dadl. Mae pob hawl, felly gadewch i ni gydweithio. Gadewch i roi fy enw fel David, cofrestru, goll rhif OK gadewch i darparu, hefyd. 617-555-1212. Cofrestru. OK. Felly popeth yn iawn erbyn hyn, dim ond dim byd diddorol yn digwydd. Felly nawr gadewch i ni wneud rhywbeth mwy diddorol yn digwydd fel hyn. Gadewch i mi fynd i mewn i phpMyAdmin, a gadewch i ni mewn gwirionedd yn creu tabl o'r enw ddefnyddwyr, Rydw i'n mynd i roi iddo dri colofnau, ac 'n annhymerus' yn gyflym creu ID, ac yna enw, ac yna rhif, a'r cae ID rwy'n mynd i adael fel int. Mae'r cae Enw dwi'n mynd i adael fel varchar, a byddwn yn dweud 64, braidd yn fympwyol. Mae nifer Rwy'n mynd i wneud, eich bod yn gwybod beth? Rydym yn mynd i mewn i cefnogi rhifau Unol Daleithiau yma, felly dw i'n mynd i wneud rhywbeth fel torgoch ac yna 10 o gymeriadau max am cod ardal ac yna saith digid. Ac yna dros yma, yr wyf i'n mynd i nodi auto cynyddiad y maes hwn, wneud hyn yn allwedd sylfaenol, ac Rydw i'n mynd i fynd yn ei flaen ac nid gwirio unrhyw un o'r blychau eraill. Felly pan wyf yn awr yn olaf cliciwch Save, ac yr wyf yn mynd yn ôl at fy mwrdd i ddefnyddwyr, dyma sut mae'n edrych os byddaf bellach cliciwch strwythur New Tab. Felly, mae hyn, i fod yn glir, yn unig yw ffordd phpMyAdmin yn o ddweud eich tabl cronfa ddata Mae gan adnabod, enw, ac mae nifer gyda ffurfweddau neilltuol hynny a byddwn yn anwybyddu gweddill y caeau yno am y tro. Felly nawr beth ydw i am ei wneud? Felly, os byddaf yn mynd yn awr i mewn i fy cod ffynhonnell, os yw popeth yn iawn Rwyf am i weithredu yr ymholiad canlynol. Mewnosod i mewn, a gallaf jyst dweud defnyddwyr Nid wyf yn gwbl angen hynny yn ôl dic os yw'n Nid gair peryglus fel defnyddwyr. Rydw i'n mynd i ddweud enw, rif, ac yna dyma rwy'n ddim yn mynd i cod caled y digid o'r gwerthoedd eto. Dw i'n mynd i roi dau farc cwestiwn. Ac mae hyn yn gonfensiwn mewn llawer o ieithoedd lle os ydych am gael yn cadw'r llinyn ydych yn mynd i ddefnyddio'r cwestiwn marciau, am resymau yr ydym chi helpu dod yn ôl i sgwrsio am diogelwch, ac yma Rydw i'n mynd i basio yn y rhai dau faes ar ôl enw, ac yna ei bostio rhif, ac yn awr yn arbed y ffeil. Ac yn awr yr wyf i'n mynd i mynd i lawr fan hyn yn super yn syml yn dweud rendersuccess.php, a oedd yn mynd i fod templed arall. Rydw i'n mynd i greu 'n sylweddol yn gyflym. Geditsuccess.php a Im 'jyst yn mynd i ddweud llwyddiant H1 yn y ffeil. Mae pob hawl. Felly nawr, gadewch i ni fynd yn ôl at y porwr, lle rwy'n ymweld o'r blaen. Gadewch i ni fynd yn ei flaen ac yn cadarnhau ysgrifennais yn David, ysgrifennais mewn rhif ffôn, cofrestru. Damia. Beth wnes i ei wneud o'i le? Felly, dw i'n gweld gwall yma, byddwch yn cael gwall yn eich cystrawen SQL. Gadewch i mi neidio yn ôl i gedit, gadewch i mi fynd yn ôl i register.php, a beth wnes i adael allan y oedd y tro diwethaf yn bwysig? Fi angen hyn. Rydych chi eisiau gwybod hynny ac eithrio o ôl sylwi o'r blaen, ond yr wyf angen hyn. Felly nawr gadewch i ni fynd yn ôl, ac mae hyn yn yn ddefnyddiol o weld yn y porwr a dyna pam yn config.php rydym yn poeri allan camgymeriadau. Gadewch i ni fynd yn ei flaen ac yn ail-lwytho, cliciwch Parhau, llwyddiant. Felly nawr gadewch i mi fynd draw i fy gronfa ddata yma a chliciwch ar Users, a phori, ac yn sylwi fy mod yn awr rhaid i David yn fy gronfa ddata yma. Yn awr yn dechnegol y wefan hon nad ydynt eto ar y rhyngrwyd cyhoeddus, felly ni allaf i gael eraill pobl wrth roi yma, ond os wyf yn awr yn awyddus i, er enghraifft, anfon neges destun fy hun. Gadewch i ni fynd allan ar y cyrion braidd yma a gweld os yw hyn yn gweithio mewn gwirionedd. Rydw i'n mynd i fynd yn ei flaen ac yn dileu rhes hon a byddwn yn annelwig hyn allan yn y fideo yn ddiweddarach felly nid oes gennym yr y rhyngrwyd cyfan anfon negeseuon testun i mi, a byddwn yn awr yn mynd i fyny at y porwr a byddwn yn mynd drosodd i ddarlithio a byddwn yn deipio i mewn gwahanol rhif yma, cofrestru, llwyddiant. Felly nawr, mae fy rhif hun yn ôl pob tebyg yn y gronfa ddata, ac yn awr y rhan hwyl. Gadewch i ni mewn gwirionedd yn defnyddio PHP i wneud rhywbeth programmatically, naill ai o'r gorchymyn lein neu o rywle arall, ac ar hyn o bryd Im 'jyst mynd i'w gadw'n syml ac yr wyf i'n mynd i fynd i mewn i fy cyfeiriadur yma ac yn gwneud y canlynol. Sgript Gedit gadewch i ni ddweud, rydym annhymerus ei alw'n testun, #! / defnyddiwr / PHP bin / env, fel y gwelsom tro diwethaf. PHP. Nawr rwy'n mynd i oes angen cynnwys config.php, er bod gallai hwn cymell bychan gwall. Ac yn awr yr wyf i'n mynd i fynd yn ei flaen ac yn dweud rhesi, ymholiad, dewiswch seren gan ddefnyddwyr, ac yn awr dyma dw i'n mynd i wneud techneg o dro olaf ar gyfer pob rhesi fel rhes. Ac yr wyf i'n mynd i wneud rhywbeth syml. Printf gadewch i ni ddweud enw i yw hyn, a rhif yn hyn, slaes n. Ac yn awr yr wyf i'n mynd i basio mewn rhes enw unquote dyfynnu, a rhif y rhes dyfynnwch unquote, ac yn awr gadewch i ni fynd yn ei flaen a ffenestr fy terfynell chmod a hwn + x i wneud sgript o'r enw gweithredadwy testun. Ac yn awr gadewch i ni redeg testun. OK, felly symud ymlaen. A felly dwi wedi ysgrifennu yn awr sgript llinell gorchymyn, mewn iaith o'r enw PHP, hynny, oherwydd y mae angen llinell, yn cael mynediad at yr holl ffurfweddiad rheini cysonion fy mod penodedig. Enw'r gronfa ddata ac yn y blaen. Yn wir, dim ond i fod yn glir nad yw hyn yn hap a damwain, gadewch i mi fynd yn ei flaen a chofrestru, 'n sylweddol yn gyflym, rhywun arall, fel Rob a bydd yn rhoi y rhif 555-1212 iddo. Ac yn awr, os wyf yn rhedeg y sgript unwaith eto, yn sylwi ar y pŵer yr hyn yr ydym yn ei wneud â'r gronfa ddata. Nawr rwyf wedi gweld yn union yr hyn y mae'r dwy res arall yn fy gronfa ddata. Felly nawr gadewch i ni geisio gwneud rhywbeth hyd yn oed ffansi tu mewn, ac mae hyn yn y rhan rydym wedi heb eu profi o flaen llaw, felly y tro diwethaf i mi wneud hyn Aeth pethau o chwith horribly, mae gennym fideo i'r perwyl hwnnw. A dweud y gwir, ie, doniol neilltu. Felly, y tro diwethaf, mewn darlithio fel dwy flynedd yn ôl, penderfynasom, penderfynais, i fod yn Byddai hyn i gyd yn syniad gwych i gynhyrchu negeseuon e-bost yn ddeinamig dosbarth, gan ddefnyddio'r gronfa ddata gyfan CS50 fyfyrwyr, a oedd wedi rhoi eu rhifau i ni ac mae eu cludwyr cellphone yr ydych Efallai y galw i gof o pset0, sut i reswm, mae'n troi allan Roedd gen i fân nam yn fy rhaglen a wnaeth cwpl o gamgymeriadau yn 2012, yr wyf yn meddwl. Lle, un oedd gennyf am ddolen sydd Gwnaeth yn union y math hwn o beth, ailadrodd dros y gronfa ddata, cael enw o'r gronfa ddata, enw oddi wrth y gronfa ddata, ac yna ar bob un ailadroddiad o'r ddolen anfonais e-bost. Ond yn lle anfon un e-bost, yr wyf yn anfon e-bost un iteriad cyntaf, a dau e-bost ail ailadroddiad, a anfonwyd tri negeseuon e-bost ail ailadroddiad, a oedd fel y byddech yn cofio o'n trafodaeth o nodiant asymptotic O hwn fawr o ddrwg, fel n sgwario yw faint o negeseuon a anfonais, ond nid oedd yn negeseuon e-bost, hyd yn oed roedd negeseuon testun. Ac fel y gwyddoch, nid yw presenoldeb yn super uchel tuag at ddiwedd y semester ac felly yr wyf yn meddwl y byddai'n 'n giwt ar yr amser i ddweud, "Pam nad yw dosbarth i chi?" Yn y neges destun I anfon at y dosbarth cyfan, ac yr oedd yn ddoniol i yn hoffi 50% o'r dosbarth, ond mae'r 50% arall, mae rhai ohonynt freaked allan, i anfon anhygoel o nodiadau melys ymddiheuro at y staff yn ymddiheuro am ar ôl colli y ddarlith yn unig mae hyn unwaith, dde? Felly, byddai hynny horribly o chwith. Felly, yn yr ysbryd hwnnw, gadewch i ni roi cynnig ar hyn eto, ond dim ond gyda fy rhif. Ymlaen llaw, mewn functions.php, Rwyf wedi ysgrifennu swyddogaeth hon fan hyn. Mae'n cael ei alw testun, ac mae'n cymryd mewn tair dadleuon. Mae nifer, cludydd, a neges. Im 'yn arfer datganiad switsh, a oedd hyfryd PHP cymryd llinynnau, nid dim ond cyfanrifau, a doeddwn i ddim yn gweithredu yr holl gefnogaeth ar gyfer hyn eto, Rwyf newydd wneud AT & T a Verizon. Oherwydd ei fod yn troi allan bod gyda chludwyr hyn mae ganddynt e-bost at byrth SMS, lle y gallwch mewn gwirionedd anfon e-bost i gyfeiriad fel rhif ffôn ar vtext.com ac os nad yw'r defnyddiwr wedi blocio y negeseuon, bydd yn mynd drwy'r yn neges destun. Yn awr i wneud hyn, yr wyf i'n mynd i gael i ychwanegu un maes yn wirioneddol gyflym i fy gronfa ddata. Rydw i'n mynd i fynd i mewn i fy strwythur, ac rwy'n mynd i fynd yn ei flaen ac yn ychwanegu cae ar ddiwedd y tabl. Gadewch i ni cliciwch Go, ac rwy'n mynd i alw cludwr hwn ac am nawr rwy'n mynd i gadael hyn fel testun bar, ond gallwn fod yn ffansi yn y dyfodol. Rydw i'n mynd i fynd yn gyflym i mewn i fy tabl, ac rwy'n yn mynd i gael gwared ar Rob, oherwydd dyna rhif ffug, Rydw i'n mynd i fynd i mewn i olygu yma ac rwy'n mynd i newid fy cludwr â llaw i fod yn Verizon, y mae'n yw, ac yn awr dros yma. Gadewch i ni wneud gwiriad pwyll gyflym. Gadewch i ni agor ein sgript testun, a oedd yn edrych fel hyn, cludwr yw% s. Rydym yn gwneud llawer mwy o gwall gwirio nag a wnes yn 2012, cludwr. Ac yn awr, yr wyf i'n mynd i fynd ymlaen ac ail-redeg y sgript. OK. Carrier yn Verizon, sy'n golygu Erbyn hyn gobeithio y gallaf wneud yn union hyn. Gywir eleni, gobeithio, dyma ni. Felly, y tu mewn o hyn ar gyfer dolen, rwy'n mynd i nid yn unig wedi printf yma, Rwyf hefyd yn mynd i alw testun a y defnydd o'r swyddogaeth hon adalw Roedd mae'n cymryd rif, a cludydd, a neges. Felly, gadewch i ni weld, rhif yn mynd i fod rhes dyfyniad unquote "rhif," rhes dyfyniad unquote "cludwr," ac yn yr un olaf ei neges. Peidiwch â sgriw i fyny eleni, hanner colon. OK. Croesi bysedd. Gadewch i ni weld os yw hyn yn gweithio. Mae pob hawl, felly. Yma rydym yn mynd. Gadewch i ddatgloi y ffôn, croeswch eich bysedd, damn iddo. Caiff-- amrywiol undefined oh aros, aros, aros, go gyflym. Real gyflym, go gyflym. Mae hyn yn gwbl werth yr ymdrech. Gadewch i mi cydio, gadewch i mi cydio, uh-oh. Diolch i chi, mae'r testunau yn cael Dechreuwyd gan rywun arall. Gadewch i mi fynd yn ei flaen ac yn agor i fyny real cyflym, dropbox.php / post i mewn yma. Standby. Hollol werth chweil. Downloads. OK, src8m ffynhonnell. OK. Angen un llinell mwy yma. Oh yno y mae, 'i' yn Frosh IMS, 'i' yn y gofrestr ar dair. Oh helo, Margo, diolch yn fawr iawn. OK, ac roeddwn yn colli y llinell yma. Felly, gadewch i mi yn gyflym chrafangia y llinell hon o god, sy'n cynnwys y post neu lyfrgell bod Fi 'n weithredol angen at arfer, Rydw i'n mynd i gyflym mynd yn ôl i mewn i swyddogaethau, Rydw i'n mynd i fynd i ben y hyn ffeilio ac yn ei gwneud yn ofynnol y ffeil, yn ogystal, ac yn awr yr wyf i'n mynd i groesi 'n sylweddol fy bysedd pan fyddaf yn mynd yn ôl at y gorchymyn sgript lein, sydd tu mewn cyfeiriadur llu lleol heddiw. Testun yn rhedeg. Enter. Mail. Standby. Standby. Mail. Oh, OK. Yma rydym yn mynd. Bost yn cael Mailer PHP newydd. Oeddwn i'n gwneud hyn yn iawn? Damia. I-- oh, aros, aros, aros. Sefyll yn ôl. Yr wyf yn addo, mae hyn yn mynd i fod mor werth chweil. Cyfeiriad. Dyma pam nad wyf yn gwneud y enghreifftiau i'r dde cyn y dosbarth. Ych. Methodd y derbynwyr canlynol. Gadewch i ni roi cynnig ar un peth diwethaf. SMTP a osodwyd gan, ychwanegwch gyfeiriad, y cyfeiriad yn wir hynny. Gadewch i ni roi cynnig ar y rhan olaf yn y cyfeiriad. Aw, rwy'n drist iawn ar hyn o bryd. Diolch yn fawr. Ond Fi 'n sylweddol yn gwerthfawrogi i gyd mae'r testunau rydych chi wedi bod yn anfon. Rydych chi wedi got David hon. Rydych yn chwythu arno. Gadewch i ni adael yno ac byddwn yn atgyweiria ar ddydd Llun. Welwn ni chi wedyn. DAVEN FARNHAM: Ac yn awr Deep Meddyliau gan Daven Farnham. Os yw coeden ddeuaidd yn disgyn mewn coedwig a nad oes neb o gwmpas i C iddo-- [chuckling].