SAM LEVATICH: Byenveni nan seksyon pou semèn sa a. Mwen menm mwen pa Andi. Andi te tonbe malad jou sa a, ak mwen yo te sòt de rele nan dènye minit pran sou. Li nan sezon grip la, se konsa asire w ke ou ap rete pwòp, lave men ou, ak manje an sante pou ke ou, tou, yo pa aje. Men, san yo pa plis tarde, kite a jwenn te kòmanse. Jodi a, nou ap ale nan pale sou PHP yon ti kras ki jan bit-- PHP gen rapò ak HTML, ki jan li gen rapò ak CSS, ak kèk nan entènèt la bagay ou te fè sou plasman an dènye. Nou pwal pale yon ti kras sou SQL ak fason ou kapab travay avèk bazdone, ki se yon eleman trè enpòtan nan P mete 8-- P mete 7. P mete 7. Lè sa a, nou ap ale nan pale yon ti kras ti jan sou ki jan vi contrôleur travay e poukisa sa a, se yon filozofi dèyè kèk paj wèb modèn ak diferan konsepsyon. Bèl anpil yon anpil nan kalite apps ak aplikasyon pou ou ta ka bato ap itilize modèl sa a, View fondasyon kontwolè, ke ou yo pral lè l sèvi avèk nan P mete 7, se konsa mwen pral pale yon ti kras sou rezon ki fè ki nan vin popilè, poukisa li enpòtan ak bèl. Lè sa a, mwen pral finalman deplase sou li nan kèk konsèy sou abòde P mete 7. Men, si nou gen tan rete sou nan fen a, nou ka aktyèlman fè kèk travay sou ki ansanm. Se konsa, PHP. An reyalite, ou ka remake gen sa a men ou pa t 'reyèlman gen plonje nan l-- men P mete 6 te gen kèk PHP kòd ki te pral sou. Epi paske PHP se yon C-tankou lang, PHP, kontrèman ak HTML ak CSS, se yon lang programmation, Lè nou konsidere ke HTML ak CSS yo se estatik. Yo ap fè fas lang markeup ak style ak aranjman tèks vizyèl. PHP se kontra a reyèl. PHP gen pasan, li gen conditions-- tout sa ki bagay sa a, se plezi sou C. Li te gen yon bagay kèk ki se yon ti kras ti jan pi bon pase C, ki nou pral wè, men mwen panse ke fason ki pi fasil yo pale sou PHP a se jis a plonje nan. Se konsa, mwen pral ale dwat nan IDE a nan pwen sa. Premye bagay nou pral fè se aktyèlman gade yon ti kras nan kèk nan la PHP kòd ki te nan P mete 6. Se konsa, fason a ke nou fè that-- anvan, wout la ke nou te kouri sèvè a pou aparèy la te ke nou ta gen yo type-- swa sèvi ak aplikasyon ou oswa aplikasyon anplwaye a nan a server.c pa pral antre nan anyè ak kouri ak swa pa gen okenn server.c arguments-- Se konsa, jis rele li sou mòn lan lame lokal yo, ki se ki sa ou pwobableman te fè pi fò nan time-- nan ak Lè sa a manje li yon anyè ak ki yo itilize kòm rasin li yo kote sit entènèt la ta gen kouri, fondamantalman. Semèn sa a pou P mete 7, kòm gwo kòm Kòd nou an pou server.c ye, se la yo se moun ki te deja ekri bagay sa yo amann sou nan CS50 sa yo ki te yon ti jan plis fonctionnalités, yon pwogram sèvè sa a, se ki kapab pou fè fas ak yon pi plis ti kras a sibtilite ki ke nou pral wè nan tou de P mete 7 ak P mete 8. Ak wout la ke ou kòmanse moute nan sèvè se pa jis tape, "apache50." , Epi anvan ou fè anyen, ou vle asire w ke ki Apache 50 se pa deja kouri kòm li se sou machin mwen an, ki mwen te fè li teste li. Epi ou fè sa lè w rele apache50. Sispann, epi ou pral wè ke li nan kanpe sèvè wèb la, si ou ka gade gen nan pati anba a nan fennèt la tèminal. Lè sa a, jis yo kòmanse, nou ap pral rele, "apache50 kòmanse." Lè sa a, nou ap ale ba l manje l 'yon anyè. Koulye a, paske nou vle gade nan kèk nan P a mete 6 Kòd ke nou te aplike, mwen aktyèlman kopye yon ti kras nan P a mete 6 Kòd nan katab pwòp mwen an, ki ou ka wè sou bò gòch la a. Yo rele li "SECTION8" nan tout lèt majiskil paske mwen se jis pou eksite yo dwe ap viv-difuze jodi a. Se konsa, si nou kouri sa a, li ta dwe tout travay bèl efektivman. Li di, OK, sit nou an se kounye a disponib nan adrès ki nan IDE a, fondamantalman, ki se ki sa ou te lè l sèvi avèk egzakteman jan li te ye nan P mete 7-- P mete 6. Tout endis mwen yo se youn endèks jodi a. Se konsa, nou ka ale nan ki adrès, si ou pral sonje, pa jis klike sa a ti kras bouton nan dwat a anwo kay la. Men, ou pral sonje Kòd sa a, ki ki te pase lè ou antre nan hello.php. Ak sa ki se kòd la fèt yo fè se lè ou tape nan yon non isit lan-- si ou di Sam paske se sa mwen name-- ak mwen klike di alo, lè nou te ale nan pwochen paj la, te ke non sipoze ap parèt. Li ta di, "Hello, Sam" oswa "Alo," tou sa non ou mete nan li menm si nou te ale nan yon paj entènèt totalman nouvo. Lè sa a se sòt nan de bagay ki PHP kapab fè pou ou. PHP se kapab pase done ant de paj wèb. Sa a se yon paj totalman diferan. Ou pral wè tit la se "alo" isit la. Aktyèlman, yo gen menm tit la, men mwen pwomèt yo diferan sou sit paj si nou gade nan sous la. Epi ou ka pase done yo sa a, se antre nan sa jaden tèks, ou soumèt li nan pwochen an paj ki nan yo te rele leve, ak Lè sa a ke done se kapab dwe la nan fòm prezan li yo. Koulye a, nou pa gen ankò aplike sa a tèt nou, ki se sa nou ap ale nan fè sa ki dwat kounye a sòt ka resevwa yon gou pou konbyen PHP ap travay, men lide a kle se ke ou kapab PHP-- sòt de panse a li tankou yon fonksyon. Yon bagay ki PHP ka kite ou se li ka pran paramèt ke ou D 'nan yon paj HTML nan sèvi ak PHP ak fòm, epi li ka pase sa yo kòm paramèt nan paj la pwochen ke li charj yo. Nan ka sa a, nou ap chaje moute sa a paj ki gen bouton an "Di alo". Men, pou kounye a, mwen aktyèlman efase kèk nan ki Kòd nan hello.php nan ki te ke yo te kouri ki te aktyèlman montre "alo la, mond "oswa" hello, Sam "oswa "hello," tou sa te opinyon jis. Se konsa, pou kounye a, nou ap ale nan fè sa, fondamantalman. Nou pral rkree sa ki epi tou ajoute kèk fonctionnalités plis, fè yon ti jan ti kras pi plis ak li, wè sa PHP se reyèlman kapab nan. Se konsa, premye, se pou yo pale sou sa a ranpli, hello.php. Se konsa, si nou rale nan yon ti kras bit-- e kounye a, mwen se sòt de ap eseye woulo liv tout wout la around-- gen nou ale. Ou pral wè sa yo rele hello.php, men sentaks la nan li sanble yon dosye HTML. Sa a se paske nan PHP aktyèl nan sa a ranpli se tout kole ant sa yo kesyon mak-Lambda blòk. Tout dwa isit la ki konsidere kòm PHP kòd. Apre sa, ou pral avi ke lè m 'te fè yon kòmantè, ou pral wè abitye a de pou pi devan bar. Men, si ou pral sonje, nan HTML, si mwen tape yon kòmantè, li sanble yon bagay pi pre sa a, ki se yon kòmantè nan HTML. Se konsa, reyèlman tout bagay ant de parantèz sa yo ang se kounye a PHP kòd, ki se reflete nan lefèt ke sa a senbòl kòmantè ti kras se tounen nan yon kòmantè. Se konsa, chak fwa ou ekri kòd PHP, menm si gen nan pa gen kòd HTML deyò nan li, li nan toujou pral fè ki fèmen nan sa yo parantèz ang ak mak kesyon. Ou ka sòt de panse osijè de ki jan tout l-- nan kòd la ki kouri nan pwogram C ou te fèmen nan yon int prensipal yo, anile, Curly atèl, fen Curly atèl deklarasyon. Epi ou pral wè aparèy òtopedik Curly nan PHP, tou, men sa a se sòt de tankou metòd prensipal la nan PHP. Se konsa, kounye a, ki jan nou fè anyen nan PHP? Koulye a, PHP se yon pwogram lang sa a, se trè C-tankou, men li opere sou entènèt la. Se konsa, yon sèl bagay ki ou pral immediately-- youn nan bagay ki premye ou reyèlman te fè ak C te ou enprime bagay soti, dwa? Se konsa, nan C nou te fè ki ak yon fonksyon printf. Nou te bay li yon fisèl, pwobableman ak yon liy nouvo, ak Lè sa a nou sispann l 'ak yon virgules. Se konsa, fason a ke nou ap ale nan fè sa nan PHP-- paske li nan pa byen printf. Li se yon ti kras nan diferan sentaks. Fason ki ke nou enprime bagay sa yo soti nan PHP se nou di, "eko alo" oswa "eko" nenpòt mo. Apre sa, ki gen efè a nan fè printf ak yon kòd, "hello." Apre sa, li ajoute liy nan nouvo nan li. Se konsa nou kounye a fè sure-- Mwen pral rale soti ankò yon ti kras bit-- se pou yo asire w ke ke kòd ap travay paske se la ta ka trè byen, se pou yon ensèk nan kòd sa a ke nou va gen yo atake. Se konsa, sèvè a se deja kouri. Se konsa, si nou woulo liv tounen desann nan pati anba a, wi, sèvè a se toujou kouri. Se konsa, si nou jis tiyo sou sa a ti kras dwat isit lan-- welcome-- nou ta dwe get-- gwo. Nou toujou ap gen nan abitye "Di alo" dyalòg, men lè mwen tape nan "hi," nou pral wè ki tèks la "alo" te depoze enprime soti, ki se egzakteman jan nou espere paske repete nan PHP se jis tankou yon deklarasyon printf. Se konsa, tounen nan kòd la, ki jan nan P mete 6 te fè kòd a distribisyon w ap bay fè li pou ke PHP ta pwodiksyon bagay la ke ou tape nan sou ekran an anvan? Men, sòt de egzaminen poukisa sa rive, nou ap ale nan antre nan index.html, ki se dosye orijinal la, dosye a ki montre moute sou ekran sa a ak bouton an "Di alo". Ou remake ke gen nan tout bagay sa yo klasik nou te vini nan atann de HTML sa yo kòm bagay sa yo, sa yo Tags ki fèmen nan parantèz ang, tankou PHP men san yo pa mak yo kesyon, ki endike yon bagay espesyal nan HTML. Nou gen tit, ki se "hello." Apre sa, ou pral avi ke jan nou te wè, tit la se "alo" nan tou de ka. Se pou nou chanje yon sèl sa a nan "di" jis pou nou fè distenksyon ant tèt nou kote ka nou ye. Men, nou te gen yon kò. Lè sa a, ti jan a enteresan, nan ti jan ki montre moute nan HTML a, se sa a eleman fòm. Se konsa, nou te gen yon fòm. Lè sa a se kle a. Sa a se ki jan nou ap travay ak PHP. Paramèt nan aksyon nan fòm di ke hello.php se sa nou ap ale nan voye valè yo nan fòm sa a nan. Sa a se kote nou ap pase paramèt yo, se konsa pale. Ou pral avi yon lòt bagay isit la se ke metòd la se "jwenn." Gen de prensipal metòd pa ki pral lè l sèvi avèk PHP yo pase done ant paj wèb websites--, rather-- nan plasman sa a. Ak metòd sa yo se "jwenn" ak "post." Gen kèk sibtil diferans ki genyen ant jwenn ak pòs ke nou pral jwenn nou into-- pral "jwenn" nan, si ou pral. Men, pou tout entansyon ak rezon, jwenn ak pòs tou de se jis fason ki ou pase paramèt ak egzekisyon yon ti kras diferan. Pou kounye a, nou ap ale nan sèvi ak jwenn paske jwenn se sa ki te te itilize orijinal nan dosye a PHP a P mete 6. Apre sa, aktyèlman, si nou ale nan ak gade anvan nou te edited nenpòt lòt bagay, Mwen pral di hi to-- sa ki nan non ou? ODYANS: Elliot. SAM LEVATICH: Oh, bondye papa. Mwen pa konnen ki jan yo eple sa. Èske ou ta kapab eple ke pou m 'konsa? ODYANS: E-L-L-I-O-T. SAM LEVATICH: Mwen-O-T? ODYANS: Yeah. SAM LEVATICH: pafè. OK. Mwen devine mwen te fè konnen ki jan yo eple sa. Regrèt sou sa. Men, si nou di "Di hello," li pa li pa pral montre moute sou ekran an ankò paske nou modifye kòd a yon ti kras. Men, si nou "Di alo" - OK, se konsa "alo" se isit la. Men, si nou pran yon pi pre gade nan URL la tèt li, nou pral wè ke li fini Non = Elliot ak hello.php?. Se konsa, sa a se yon fason pou kominike nan paj wèb la pwochen paramèt yo ke nou te pase. Nou te di Non = Elliot. Epi sa a, finalman ki jan P mete 6 jwenn aksè varyab la ke nou te pase nan a fòm nan. Lè sa a se yon bagay ki se spesifik a yon demann jwenn. Yon demann jwenn fè paramèt yo li te ye nan URL la nan sit entènèt la. Men, ou pral sonje, tou, nan P mete 6 ke ou te gen yo ekri yon fonksyon ki te fè fas ak lefèt ke sa a fisèl query te kapab egziste apre yon dosye-a. Ta ka kapab genyen yon mak kesyon ki te swiv pa fondamantalman nenpòt ki kantite karaktè. Epi sa a, egzakteman ki sa k ap pase sou isit la. Ak rezon an ou te gen yo analizan ki nan aplikasyon ou a server.c nan P mete 6 se pou ke ou te kapab di kòd a PHP ki non = Elliot. Ou bezwen pou kapab analizan ke soti nan URL la se konsa ke dosye a PHP nan kesyon te konnen sa li te fè fas ak. Se konsa, èspere ke sa a bay motivasyon nan server.c kounye a ke nou ap deplase sou deyò nan C nan PHP. Se konsa, kite a aktyèlman konsantre sou aksè nan bagay te pase nan mitan yon demann jwenn kounye a nan pwen sa. Mwen pral pou konsève pou sa a. Nou pa t 'chanje anyen. Li sanble ke nou te gen yon jaden opinyon. Nou ap mete kèk pwopriyete, jan nou kapab fè yon HTML. Sa yo se bagay sa yo ki senp. Nou pa bezwen sa yo. Men, nou te gen otokonple koupe, ki fondamantalman says-- ou konnen, lè ou tape bagay nan entènèt la, pafwa li ap eseye ranpli ke nan pou ou. Se konsa, li yon bagay bèl. Nou vle vire l 'la pou objektif sa a. Sa ki te yon desizyon CS50. Se konsa, nou ka efase ke si nou te vle. Otofokus jis kole kurseur la nan bon nan fòm nan kòmansman an. Yon fwa ankò, pa twò enpòtan. Men non = "Non" - li a yon ti kras difisil paske li nan non ak non. Men, nou te ka te chanje sa a yon lòt bagay. Ak an reyalite, sa a, se ki sa nou pral fè kounye a. Nou pral di "moun," ki se sòt de tankou non si se yon moun defini nan non yo. Se konsa nou fèmen sa a, reouvri moute sit entènèt nou an depi sèvè nou an, se toujou kouri Apache 50, epi nou pral di, hello, isit la nan Elliot ankò. Poukisa nou pa? Alo. Men, si n 'al jwenn moute isit la, nou pral wè Lè sa a, olye pou yo Non = Elliot, li di moun = Elliot. Epi sa a, yon rezilta dirèk nan lefèt ke nou jis chanje non = "moun." Se konsa, nan yon eleman D 'a yon fòm HTML, jaden an Non se idantifyan a pou la paramèt ki nan ke yo te pase. Se tankou si w ap kreye yon fonksyon "ajoute" ki te pran nan de nonm antye relatif epi ou di int yon ak int b. Ki ta ka non yon, epi si ou te vle yon lòt fòm, ki nou ka fè jis pa kopye ak rakle, lè sa a nou ta gen non b. Se konsa, kounye a nou pral gen de paramèt sa ki te mache nan tout li ale nan website-- nan pwochen te paj wèb la kap vini an, hello.php. Apre sa, nou ka aktyèlman wè sa ankò si nou vle. Sa a se fason ki pi fasil fè fas ak kòd a entènèt nan IDE a, fondamantalman. Ou kòmanse moute sèvè a, jwenn li kouri, ak Lè sa a chak fwa ou fè kèk chanjman, jis fèmen ke dosye jis yo dwe san danje. Peze bouton an tounen se yon ti kras difisil paske li ta ka chaje yon pi bonè vèsyon, pa gen yon sèl ki pi mete ajou. Lè sa a, ou jis klike sou ou bouton ankò, pòp dwat leve- oh, e kounye a, ki te gen de fòm. Se konsa, si nou tape yon sèl bagay nan chak yonn-"jason hirshhorn," pou instance-- nou di hello. Nou gade moute nan paramèt nou an. Li sanble ke nou te gen, kòm espere, yon = Jazon ansanm ak b = hirshhorn, ki reprezante de paramèt yo ke nou te pase nan fonksyon sa a. Se konsa, kounye a kite a aktyèlman ale nan mete ann aplikasyon ki fonctionnalités ke nou te gen nan P mete 6. Se konsa, kounye a nou ap jis eko hello. Epi sa a, pa trè itil. Nou vle repete kèk varyab ki te pase yo ban nou. E nou konnen non an nan varyab sa a. Nou gen yon epi nou te b. Se konsa, nou te kapab chwazi yo repete swa yon sèl. Men, ki jan nou jwenn aksè nan li? Oke, gen sèten varyab mondyal nan PHP. Apre sa, mwen pral ekri yo nan kòmantè isit la. De moun ki pi enpòtan yo se jwenn ak afiche pou rezon nou an kounye a. Sa yo se ranje yo oswa, teknikman, diksyonè yo kote varyab nou an ke nou ap pase nan pwochen paj entènèt ap viv la. Apre sa, nou va byento wè kouman yo sèvi ak yo. Yon lòt nòt kout sou PHP Kòd ak kèk spesifik nan l-- nan C, deklare yon varyab oswa yo sèvi ak varyab, ou premye te gen nan deklare yo. Ak ki sa ou te fè lè ou deklare yo te di Int yon oswa Char b. Ou te gen yo deklare ki kalite sa yo varyab anvan ou te kreye yo. PHP-- ou pa bezwen fè nenpòt nan sa. PHP pa mande pou ki kalite varyab. Ak wout la ke ou kreye yon variable-- olye pase li di int, Char, string-- ki se reyèlman * Char, menm jan nou know-- olye ke fè tout nan sa, paske tout bagay se nan kalite la menm, typeless, nou ka jis itilize yon karaktè, ki se siy a an dola. Men, ou pral wè li nan deja eklate moute, ti kras otokonple bagay sa yo. Apre sa, li nan ki di ke _GET ak _POST yo se de opsyon ke mwen gen disponib m '. Gen kèk nan sa lòt bagay yo lòt varyab mondyal nan PHP ke ou pral lè l sèvi avèk plis pase dwe kou a nan P mete 7. Pou kounye a nou ap ale nan konsantre sou jwenn ak pòs. Men, sa a se yon itil bagay ki IDE a fè kote yon fwa ou te tape nan ki siy dola, li pral kòmanse ranpli nan varyab mondyal oswa varyab ou te deja defini. Se konsa, si ou te vle defini yon varyab rele "fisèl," ou ta ka jis mete l 'egal a "hi." Lè li nan fondamantalman kòm senp tankou sa. Lè sa a, nou te ka fè yon bagay tankou "eko $ fisèl." IDE a yo ta dwe voye kèk erè si m ap fè anyen ki mal, se konsa èspere ke m ap fè tout bagay dwat. Men, pinèz toujou leve. Yon lòt bagay difisil sou PHP se ke li pa nan konpile. Se konsa, avèk pwogram C, ou ta fè woutin nan chak jou de- fondamantalman, ou ta fè edits kòd ou a, ou ta sove li, ak Lè sa a ou ta fè l ', kote fè te etap la ki te rele du a, rezone, fè kòd ou a, sa a tèks ranpli, nan yon ègzèkutabl. PHP se C-tankou, men li la egzekite sou vole a pa navigatè entènèt ou. Se konsa, gen nan pa gen fason yo konnen. Fè ta voye jete moun erè itil, dwa? Li ta dwe tankou, ou pa t 'deklare varyab sa a anvan ou te eseye sèvi ak li. Ou te fè tout bagay sa a move segfault stuff--, segfault, tout sa ki sòt de plezi fwa ki vini ak fè. PHP se yon kouto de bò paske ou pa pral jwenn sa yo erè, men sa vle di ke ou pa pral konnen tou reyèlman sa ki nan mal ak pwogram ou an si ou jis kouri li epi li pa nan travay. Men, debugjeur a ta dwe pwen soti kèk èspere ke itil bagay ti kras syntactically ke ou ka ranje. Se konsa, kounye si nou ale sou to-- di, se pou yo fèmen sa. Reouvri. Apre sa, nou ap tounen nan isit la. Se konsa, nou te gen yon varyab ak yon b varyab. Apre sa, sa yo pa pral finalman gen pwoblèm. Nou pral rele yo h ak g pou okenn rezon an patikilye. Epi nou di alo. Koulye a, li sanble afè nou an "hi" se tout bon enprime. Nou te kreye yon varyab rele "fisèl," mete l 'egal a "hi." Remake nou pa t 'dwe fè malok oswa fè yon etalaj karaktè. Nan PHP, paske varyab se typeless, se yon fisèl se menm bagay la kòm yon Char pou tout entansyon ak objektif. Sa a te kapab "hi." Sa a te kapab jis k la karaktè. Sa a kapab yon nimewo 1. E li pa pran swen. PHP pa pran swen sou ki kalite varyab ou yo. Oswa, li fè sa swen. Li gen sousi lè w ap eseye ak fè bagay sa yo ak li, men li pa pran swen nan etap la deklarasyon. Apre sa, jis tankou ou kapab nan C, ou kapab deklare strings sou chemine a tankou sa a menm si li di: "chemine" se yon ti kras ti jan nan yon pèsonalite misnomer potansyèl lè nou ap pale de PHP. Men, nou pa gen enkyete sou sa. Se konsa, nou te resevwa fisèl nou an "hi," epi nou repete fisèl. Se konsa, kounye nou te diskite varyab. Se konsa, kounye a nou bezwen pale sou jwenn ak afiche ak fè bagay sa a, se final la bezwen reyèlman jwenn sa a tounen moute fonksyonalite a nan P a mete 6. Se konsa, kounye a nou ap Eko fisèl la, men nou gen sa yo varyab jwenn ak pòs. Epi paske nou ap lè l sèvi avèk metòd la jwenn, li sanble natirèl ki varyab nou an ki nou ap enterese nan, tou de A ak B, sa yo pral lokalize nan etalaj la oswa diksyonè, teknikman jwenn. Se konsa, si nou mete kanpe jwenn tankou sa a ak groups-- ou mwen bourade antre epi li pa t 'tankou l-- men isit la nou gen jwenn. Se konsa, jwenn deja egziste. Se konsa, nou ka deja kòmanse aksè kèk nan eleman ki nan jwenn. Si nou jwenn, sentaks sa a pou ranje nan PHP se yon bagay ki C-tankou. Nou gen de parantèz kare nou an. Se konsa, si nou di jwenn nan yon nòmal etalaj, nou te ka gen aksè endèks la zeroth, endèks la an premye. PHP se zewo endèks. Nou te kapab di zewo, yon sèl, two-- bagay tankou sa a. Apre sa, mwen ve yo te di ke jwenn se teknikman yon diksyonè. Se konsa, sa PHP ap fè anba kapo machin lan, ki se yon ti jan joli pase C, se li deja an, ban nou kèk diksyonè fonctionnalités, ki se tab reyèlman regle, oswa ap eseye yo, sipozeman te. Oswa, teknikman li te kapab fè yon eseye kòm byen. Men, PHP ap aplike yon tab regle, ki fòme yon diksyonè efikas. Se konsa, nou konnen non an nan varyab nou an, dwa? Li nan ke yo te pase nan fisèl la rechèch pa PHP. Nou gen yon = h epi b = g ki kote ak b Se te non douz varyab yo. Se konsa, fason a ke nou ka gen aksè nan valè ki koresponn ak kle nan nan diksyonè nou an, se jis lè li di _GET_GET ["yon"]. Se konsa, kounye a nou gen _GET ["yon"]. Men, si nou jis ranplase andedan eko nou an, si nou repete _GET_GET ["yon"] - epi n ap wè si debugjeur a lanse nenpòt ki erè sou sa a men nou pral delivre sa epi fèmen sa a soti. Louvri li. Se konsa, nou ap jis ap fè yon dwa kounye a, se konsa b pa ta dwe gen pwoblèm. "li" ak "li" - "hum." "li" ak "hum." Son bon. Epi, se enprime soti "li," ki se fou. Men, sa a ekzakteman ki sa te vini nan P mete 6. Fondamantalman, ki sa P mete 6 te doing-- eko hello, name-- kote li te gen yon Non varyab ak li jis mande w al fè tape nan ki ti jan nan tèks. Te gen tou gen kèk adisyonèl postal kote li enkli si deklarasyon, ki nou ka fè sa ki dwat kounye a. Nou ka di si egziste, ki se yon fonctionnalités nan PHP, _GET Ak souliye a, "Non" - ki se fondamantalman li di yo: "si te non te plen nan" paske nou te ka gen sèlman klike bouton an yo soumèt fòm lan san yo pa sezisman anyen nan ki jaden. Apre sa, nou vlope ke nan nou an zanmitay aparèy òtopedik Curly. Nou ka gen yon deklarasyon lòt bagay. Epi sa a, tout nan ang lan PHP bracket, kesyon make, bracket ang, si ou pral. Epi, koulye a nou pral wè si sa a travay. Mwen kenbe ap tann pou l 'bay dbug ak krap soti sou mwen, fondamantalman, men li pa gen anyen ankò. Petèt li pral kounye a paske mwen te pale osijè de. Wi. Li te fè, an reyalite. Se konsa, pa gen anyen ki ki montre moute. Sa a paske yo te yon bagay mal ke mwen te ekri nan kòd la PHP. Apre sa, mwen mansyone debogaj nan se difisil paske nan PHP, nou pa t 'konpile li davans ak du a pa te renmen, isit la nan kote erè ou yo. Men, sa ki nou ka fè is-- fè moun sonje ki jan fè yon gade nan rezo a diferan demann ki PHP-- oswa ki sit voye? [? Malen?] Te fè sa a nan konferans yon fwa oswa de fwa. Ou sonje ki kote nou ale nan jwenn dèt yo diferan ak 200 OKs, tout kòd sa yo ki yo te voye a HTTP soti nan paj entènèt nan paj entènèt? Nenpòt moun ki sonje kote nou ale nan fè sa? ODYANS: Sous Page. SAM LEVATICH: Page sous. Egzakteman. Si ou ale nan Page Source-- pafè. Se konsa, Sous Page rale moute enspektè a. Apre sa, mwen lè l sèvi avèk Safari. Yon anpil nan ou pral pwobableman lè l sèvi avèk Chrome oswa Firefox. Men, osi lontan ke w ap nan nenpòt navigatè modèn ak santi yo lib yo swiv ansanm si ou vle. Ou ka tape moute kòd sa a oswa jis gade andedan P mete nan 6 anyè pou kèk bagay menm jan an. hello.php se sa nou ap aktyèlman ap travay sou Emulation. Se konsa, gen yon varyete de onglè. Nou ka gade nan tout resous yo. Nou ka wè kòd la sous. Se konsa, sanble li pa t ' jwenn kò sot pase yo nan fen an. Li te jwenn yon erè nan PHP ak li sispann loading paj wèb la antye. Nou pa menm gen yon fen tag pou HTML oswa nenpòt bagay. Men, si nou gade nan rezo a, nou kapab wè ke nou se ke yo te voye yon demann. Sa a se domèn nan. Sa a se adrès la. Li se yon dokiman. Nou ap lè l sèvi avèk metòd la jwenn. Lè li nan wouj. Oswa, li te wouj lè m ' pa te chwazi li. Kouman pou mwen deselèksyone li? Oke, li te wouj. Kite m 'rafrechi. Gen li ye. Kounye a li nan wouj. Se konsa, li wouj, ki vle di li echwe, ki se move. Se konsa an n egzamine poukisa li t 'febli. Se konsa, tout sa ki Sous Page a kapab fondamantalman di ou se bagay ou pa t 'travay, nou ka deja wè. Se konsa, depreferans gen ta gen yon zouti pi plis itil. Apre sa, yo se kèk ekstansyon navigatè ki pèmèt ou debug PHP, men nou pa ap ale nan dwe ekri yon tòn PHP, se konsa li a pwobableman jis pi bon fè yon gade nan kòd ou a ak anpil atansyon ak jis asire w ke li nan pa fè nenpòt lòt bagay. Se konsa, kite a wè si fòma a nan sa a si deklarasyon se kote pwoblèm lan se. Mwen vle chaje ki tounen moute isit la. Hello, Hi. Se konsa, gen nan yon pwoblèm la. Se konsa, pou kòrèk sentaks nan PHP, PHP ki pral yo dwe C-tankou nan ki ou pral wè pasan. Ou pral wè si deklarasyon. Ou pral wè tout zanmi sa yo ke ou te vin abitye ak plis pase kou a nan sa a semès CS50. Men, fason ki pi bon figi konnen kouman ou fè yon bagay nan PHP se sou Google li oswa fè yon gade nan kèk egzanp nan kòd PHP paske ou konnen fonctionnalités la. Ou konnen ki sa ou kapab fè ak pwogram nan. Ou kapab riban. Ou kapab riban kòm anpil fwa tankou ou vle. Ou kapab nan tout bouk kalite diferan fason. Ou ka kreye fonksyon. Ou ka kreye fonksyon ki rele fonksyon lòt, fonksyon ki rele tèt yo. Epi ou gen non pou konsèp sa yo. Ou te gen rkursyon, pasan, si, lòt ap koule kontwòl. Se konsa, Google se pi bon zanmi ou yo. Menm di, "si PHP deklarasyon "ak gen pral gen tòn posts ak repons bay lòt moun ki te gen kesyon menm jan ak nou, ki ap jis kòmanse soti ak PHP epi yo kirye de yon bagay sentaks. Paske nou gen liksye a pou yo te kapab fè yon gade nan kòd la nan P seri 6, nou aktyèlman rale li leve, li wè ke OK, isit la nan yon bagay ki enteresan. Se konsa, sa a se sa li aktyèlman te sanble ak nan P mete 6. Se konsa, si nou ale nan sa a, nou ka wè ke nou te te resevwa plizyè nan sa yo ti kras PHP-tankou kesyon mak miyèt moso. Apre sa, yo pa aparèy òtopedik Curly. Gen kolon. E genyen anpil Curly aparèy òtopedik nan PHP, men sa a se yon fòma ak yon fason pou fè PHP ki travay byen ak HTML paske kòm ou pral wè, nou ap fèmen koupe sa yo PHP bits-- elses nan ak ifs a ak tout nan that-- ak Lè sa a nou ap entèrkale HTML andedan yo pandan y ap toujou sa ki annapre yo kontwòl koule mete deyò pa PHP. Se konsa, mwen jis ale nan rapid ti mache nan sa a paske li nan yon anpil nan menm bagay la tou konsèp ke nou t ap fè anvan. Nou te gen si se pa vid, parantèz, _GET_GET ["Non"]. Sa a se tout bagay la menm. Nou ap lè l sèvi avèk diksyonè sou _GET ki PHP voye sou demann nan fòm, paske li se paramèt yo nan aksyon, ak metòd la se jwenn. Lè sa a, ki fini sa. Kolon an se yon siyifyan nan jis fè sa si si deklarasyon an evalye vre. Se tankou yon atèl Curly. Ak nan reyalite, li se yon atèl Curly nan lòt lang tankou Piton, kote ou ka rankontre si ou jis fè sa pou pwojè final ou a. Lè sa a, liy sa a, hello. Lè sa a, nou te gen bagay sa a etranj. Nou te gen plis parantèz. Gen nan pa gen HTTP there-- oswa PHP, regrèt. Men, gen nan yon siy egal-ego. Lè sa a, nou gen yon fonksyon, htmlspecialchars (_GEThtmlspecialchars (_GET ["Non"]). Sa a se sòt de tankou yon pi plis vèsyon avanse nan eko. Fè tankou nou te repete kòm yon fason ekri ak lèt ​​detache bagay sa yo soti nan PHP. Sa a se yon fonksyon sa a, se defini nan PHP ki ap fè fas ak kèk plis anbarasan karaktè ak valè multiple ke ou ta ka pase l. Li nan toujou pi bon yo sèvi ak sa a. Men, eko pral fè travay la jis anfòm si nou pa ap fè fas ak anyen twò anbarasan. Se konsa, sa a gen menm bagay la tou efè nan fondamantalman, bagay sa a nan ant kesyon an mak se evalye pa PHP. htmlspecialchars retounen yon HTML bèl enprime valè de _GET_GET ["Non"], dir tou sa nou tape nan fòm nan. Lè sa a, li pral di hello, vigil espas, ak Lè sa a sa. Sa tout bagay ant parantèz yo ang pral ranplase pa tou sa htmlspecialchars mete deyò. Se konsa, sa a, se fondamantalman menm jan an nan sa nou ap fè. Epi nou gen yon deklarasyon sa a, se lòt bagay alo mond, sa ki fè sans. Se konsa, kounye a kite a tounen nan nou an Kòd ak wè exactly-- oh. M 'te di ki egziste, ki se pa yon bagay ke nou te vle fè. Nou te vle di pa vid. Se konsa, sa a ta dwe travay yon ti kras ti jan pi bon, pa vid _GET_GET ["Non"]. Epi sa atèl Curly alimèt ki atèl Curly. Nou te gen aparèy òtopedik Curly nou an isit la. eko alo _GET ["Non"]. Ann wè si sa a ap travay yon ti kras pi byen. Nou ap toujou kouri sèvè nou an. Bonjou Jason. Bonjou Jason. Apre sa, li te travay tan sa a. Se konsa, sa a, se yon prèv ke ou ka tout bon itilize aparèy òtopedik yo Curly ke ou konnen epi renmen nan kòd PHP nan HTML. Kòd a PHP bay ou nan pset pset 6-- 6-- bay yon lòt fason nan fè sa menm bagay. Se konsa, kounye a nou gen pouvwa a. Nou gen fonksyonalite a aplike kòd a PHP ke nou te wè nan pset 6 pa tèt nou, fondamantalman. Mwen anvan m 'deplase sou, ki sa yo se kèk nan la kesyon ke ou gen nan pwen sa a? Wi [fèbl]. ODYANS: Se konsa, nan vèsyon an nan pset6, lè ou kouri li, gen nan yon espas. Apre sa, mwen ka wè ki kote espas ki la se apre vigil la. [Fèbl] kòmanse bracket a louvri. Ki jan ou fè enkòpore espas ki la nan wout la ou te ekri kòd pwòp ou a? Oratè: Sa se yon kesyon bon. Se konsa, kite a figi ki soti. Se konsa, sa a, se yon kesyon reyèlman bon ak youn ki mwen pa t 'konsidere. Men, kite a fè l 'ansanm. Se konsa, premye nan tout, ki sa M ap fè ak eko se lè nou jis repete alo, li sorties hello. Si nou repete kounye a sa a jwenn sou yon separe liy, se pou yo egzaminen sa ki rive. Se konsa, nou klike sou sa a. Nou kenbe li di: hi Jason. Se konsa, ankò, nou pa gen espas sa a. Epi sa a, paske, nan PHP, lè nou te repete, pa gen pwoblèm konbyen spaces-- Non, pa V-- nan pa gen pwoblèm konbyen espas nou mete nan isit lan-- si nou kounye a chaje ki moute ankò, hi Jason. Yeah, gade: tout nan tout sa yo espas te resevwa manje yo. Epi sa a, yon bagay ki fonksyon an eko fè. Se konsa, pran swen nan espas sa, e sa se youn nan rezon ki poukisa ou pa sèvi ak eko epi ou sèvi ak htmlspecialchars pito. Mwen se kirye sa ki ta rive si nou te fè sa a kote nou fèmen yon espas nan yon kòd. Mwen se onètman pa fin sèten sa ki pral rive lè m 'fè sa a. Se konsa, sa a, se yon sèl fason. Sa a yon fason yo pran swen l '. Si ou vlope espas ki la nan yon afè, lè sa a espas ki la yo pral pwodiksyon joliman pa eko. Bagay la pi bon fè se fè htmlspecialchars. Sa a toujou parye a san danje. Men koulye a, nou gen yon fason yo fè l 'ak eko si sa nesesè. Apre sa, nan yon fason ki similè yo, nou kapab eko nouvo liy, tout sòt nan nan bagay w ap abitye fè nan PHP. Nenpòt lòt moun, ki sa yo nenpòt ki plis kesyon ke lòt moun gen nan pwen sa a sou PHP? Si moun te montre yo yon ti kras an reta, Mwen kontan yo rete apre yon ti jan epi pale sou kèk nan konmansman an. Apre sa, li la tou tout livestreamed, ak achiv, ki se fou. De tout fason, se konsa kounye a kite a fè kèk plis bagay avanse ak PHP. Apre sa, youn nan bagay ki pi bonè ou te prezante yo nan C te pou pasan. Apre sa, PHP gen yon plis pouvwa anpil pou bouk yo rele bouk la fortch. Apre sa, li sanble sa a men pou chak vid kòm vid, parantèz Curly, fè sa ki. Se konsa, sa a se fondamantalman yon steno. Al gade nan, pou la riban kòm yon konstriksyon sentaks te envante nan C ak nan asanble lang ak bagay sa yo renmen. Envante nan C, jisteman, kòm yon steno pou yon anpil nan kalite mouvman yo ak pasan ke gen moun ki ta renmen wè. Tankou lè ou te ekri yon bouk, gen te souvan yon etap inisyalizasyon egzekite dwa nan kòmansman, se yon nan kondisyon kote riban an ta stop-- e ke sa a karakteristik nan sa se sèlman nan yon bouk ti tan, oswa ki yon ti tan gen egzakteman sèlman sa feature-- ak Lè sa a yon etap incrementation nan fen an. Se konsa, ou ta souvan jwenn tèt ou ekri kòd tankou sa ki annapre yo. Mwen pral efase kèk nan sa a. Men, si nou ap iteration nan karaktè nan yon etalaj, pou egzanp, tankou nou te te resevwa yon etalaj de karaktè. Padon fè m 'tounen C. mwen konnen, ou te panse ou te fè. Men, li la sèlman nan bi pou pou yo aprann PHP, mwen te pwomèt. Se konsa, si ou te resevwa yon str Char nan longè 8, e kite yo di li di Hellooo ak yon nil fin. Great, se konsa sa a, se fisèl nou an. Lè sa a, nou te gen yon pou riban. Nou gen int mwen egal 0. E nou vle sòti lè str nan mwen egal pa egal a nil, paske nou sòti lè li egal nil. Lè sa a, nou fè m ++ nan chak pwen nan a pou riban. Lè w fè yon bagay ki gen str a mwen. Se konsa, fòmil la debaz te, nou te gen sa a etalaj ke nou te vle trete eleman kòm apa a. Men, sa ki nou te gen fè se nou te fondamantalman kreye yon nonb antye relatif ki apa a varyab ki te konte moute chak fwa nou mache ale nan tout bouk la. Lè sa a, nou ta gen Lè sa a, rele strstr [mwen] lè sa nou reyèlman te vle fè se jis ale pèsonaj pa karaktè, dwa? Nou pa vle yon kantite nonb antye relatif ak Lè sa a sèvi ak sa nonb antye ki pè jwenn aksè nan chak karaktè endividyèlman. Nou vrèman vle pèsonaj pa karaktè. Se konsa, pou chak intelijans kalkile ki pou nou. Si nou gen yon etalaj, ki nou ka deklare nan PHP kòm just-- si nou gen yon varyab rele, se pou yo rele li etalaj. Mirak yo nan pa gen okenn sezisman, li nan jis tankou nenpòt ki lòt varyab. Se jis yon etalaj. Epi nou gen yon ti kras [fèbl] tankou 1, 2, 3, jis yon sòt de etalaj inisyalizèd. Li nan OK, li pa renmen fortch mwen. Men, si nou aktyèlman foreach-- Mwen tape ke yon ti kras mal. Gen de fason yo fè yon riban fortch. Genyen sentaks la nan ak jan sentaks la. Epi nou ap ale nan fè nan sentaks premye, pa tankou. Sa a erè m 'yo. Se konsa, fortch NUM nan etalaj, eko NUM. Apre sa, PHP se tap rele ke nan m 'pou kèk rezon. Li nan jwenn yon inatandi nan nan yon bagay, ki se yon ti kras nan yon deranje. Men, nou pral konnen ki poukisa se sa ki nan yon moman. Se konsa, pa renmen sa. Ann eseye lè l sèvi avèk la kòm. Li pwefere kòm nan sentaks se sanble. Se konsa, kite a fè etalaj fortch kòm NUM. Se konsa, yon ti kras esplikasyon nan sa ki jis rive se kòm sentaks la se saying-- byen premye, se pou yo gade nan ki sa sa a simagri soti. Se konsa, nou louvri moute IDE nou an. Nou ale isit la. Nou di, Bonjou Jason. Apre sa, li te fè 123, ki te sa ki nan etalaj la ke nou kreye moute tèt. Se konsa, plonje nan sa a riban fortch, nou gen yon varyab rele etalaj ki se yon etalaj de twa chif yo. Lè sa a, nou ap fè fortch etalaj kòm NUM, eko NUM. Epi sa a, plis entwisyon pase yon pou lop. Nou ap di: trete chak nan bagay sa yo nan etalaj la kòm NUM, Mwen vle nou ban m 'NUM. Epi sa a, egzakteman ki sa li la fè a. PHP se kalkile ki lè ou di etalaj fortch, epi ou ap fè fas ak yon etalaj, ki sa w ap ale nan vle repekte sou se karaktè yo ki nan ki etalaj, se antye yo nan ki etalaj, se eleman ki nan ki etalaj. Apre sa, li la kite ou magazen moun varyab kòm NUM, ak Lè sa a jis pwodiksyon NUM touswit olye ke li di: Mwen gen yon varyab rele mwen, ak Lè sa a, mwen vle strstr pwodiksyon [mwen]. Se konsa, ki pèmèt nou fè bagay sa yo fre. Fè tankou fondamantalman nou pa gen yo kreye sa yo varyab tankou m nan ak fè tout bagay sa a incrementation nan fen an. PHP pran swen de nan tout sa pou ou. Se konsa, kounye kite nan pale sou fortch kòm li aplike a diksyonè _GET nou an. Se konsa, nou pral fè kòmantè sa a soti byen vit. Se konsa, nou gen etalaj _GET nou an. Nou gen varyab sa a. Apre sa, li nan te resevwa kèk bagay nan li. Dwa koulye a, nou gen sèlman yon varyab ke yo te pase nan li, ki se non. Men, si nou peze Antre, kounye a nou ka gen de varyab. Nou ka gen non ak laj, pou egzanp, si nou vle jwenn laj la epi tou li non an nan yon moun, kuryeuzman ase. Se konsa, kounye _GET a pwal yon diksyonè ak de eleman, ak de valè pè kle. Apre sa, key-- an premye mwen pral ekri yon sèl sa a moute sou tablo a tou. Nou gen diksyonè nou an, se _GET. Padon, li la se yon ti kras difisil yo wè. Men, anndan diksyonè nou an nou gen non, ki se ale nan yon bagay ke nou ap bay yo. Epitou, n ap gen laj, ki se tou pral fè yon bagay ke nou ap bay yo. Lè sa a se antye a a diksyonè nou an. Se konsa, li nan te resevwa de eleman nan li. Se konsa, paske fortch pasan yo entelijan, nou ta ka panse, ak kòrèkteman ta ka panse ke fortch ka repekte nan sa a diksyonè, enprime soti valè yo bay nan non ak laj. Se konsa an n an reyalite fè sèlman sa. Se pou nou konstwi yon bouk fortch. Epi nou ap ale nan fè pou _GET kòm. Epi nou ap ale nan fè sa ki annapre yo. Se konsa, kite a wè sa k ap pase si nou tape mo jis, ak Lè sa a di eko mo. Nou ap tou ale nan repete yon liy nouvo jis fè li yon ti kras pi klè, sa k pase. Se konsa, kite a wè. Li pa nan bay m 'nenpòt ki erè. Epitou, n ap fèmen sa a. Sou sit entènèt nou an, w ap ale nan dwe ap fè yon anpil nan ki sou kou a nan pset7. Se konsa, nou di non mwen se Sam. Laj mwen se 45. Li pa. Men, li simagri soti, jan yo espere, Sam 45. Se konsa, ou pral avi ke sa fortch bouk did-- isit la, se pou yo tounen nan ke se konsa li a jiska sou board-- a nou jwenn _GET kòm mo. Apre sa, te gen kat bagay sa yo nan _GET. Men, li sèlman enprime soti de bagay sa yo. fortch, yo te pwòp tèt ou entèlijans li yo, sipoze ke sa nou reyèlman te vle te valè yo, pa kle yo. Men, gen yon fason ki nou te ka enprime soti kle yo kòm byen, si nou te vle. Si nou te vle konnen tou sa varyab sa yo yo te rele, gen nan yon fason ke nou kapab jwenn aksè sa a tou. Apre sa, wout la nan sòt de fè sa, pou nou ka di, pèmèt reyèlman fann l 'nan valè kle pè. Se konsa nou wè sa ki rive kounye a. Se konsa, nou gen kle. Nou gen valè. Nou gen yon lòt nouvo liy pou lizibilite. Li kite yo wè sa ki rive lè nou fè sa kounye a. Mwen pa konnen ki laj Jason se. Jason nan 15. Se konsa, nou gen non Jason, laj 15. Se konsa, nou yo te kapab jwenn aksè nan kle a ak pè valè de sa a diksyonè jis lè li di kòm pwen kle nan valè. Epi sa a, yon fortch Massachusetts Institute of Technology ti jan sik ki pèmèt ou gen aksè a bagay sa yo nan diksyonè a. Se konsa, èspere ke sa a sòt de mete aksan sou pouvwa a nan bouk la fortch. Ou kapab bèl anpil voye jete nenpòt ki bagay ki sanble iterable, tankou nenpòt ki bagay ki gen plizyè eleman tankou yon etalaj, tankou yon dictionary-- sa yo se de bagay prensipal ou pral travay ak tou de nan lavi ak nan pset 7. Se konsa, ou ka voye jete ki bagay nan li, epi li pral figi konnen ki sa ou vle fè ak li. Li pral di, OK, mwen pral yo ka resevwa bagay sa yo soti nan done yo ki te pase m '. Epi sa a, yon bagay ke w ap ale nan dwe lè l sèvi avèk yon anpil nan nan pset 7. Mwen pral woulo liv rapid desann jis yo wè ki kote mwen se nan. Moun ki gen kesyon nan pwen sa a? Kesyon nan tout? Wi? ODYANS: Se konsa, avèk kle a ak valè, ou te kapab non li nenpòt lòt bagay epi li ta toujou travay? Oratè: Wouch. Wow, Mwen totalman efase liy lan tout antye. Great travay. Se konsa, yon, yon. Kle ak valè se jis yon konvansyon. Li nan itil. Ou ta jwenn kèk konsepsyon pwen, petèt kèk pwen style pou fè sa paske li reyèlman tradwi entansyon an. Men, nou di yon ak yarp. ODYANS: Ou pa oblije chanje anyen nan dosye a HTML yo nan lòd yo reflete sa? Oratè: Pa nan tout. ODYANS: Apre sa, li jis konnen ke paske yo te egal, pi gwo than-- Oratè: Wi. ODYANS: --that endikatè ki that's-- Oratè: Wi. Sa se yon sentaks fortch, men wi. ODYANS: Pa gen kalite. Se konsa, sa si ou te laj yo dwe sèlman yon PO? Èske gen yon fason yo fè sa? Oratè: Gen fason yo tcheke si varyab konfòme yo ak sèten kalite. Se konsa, PHP mande yon ti kras plis soti nan ou paske pa gen okenn kalite nan. Gen kèk fason li mande mwens. Nan kèk fason li mande plis. Paske si ou gen jis yon bagay nan yon varyab, ou pa gen okenn lide ki sa kalite li ye. Men, si ou se entelijan sou varyab yo ke ou bay kalite pou ale ak pou asire w ki fonksyon sèlman return-- ou vle fonksyon a sèlman retounen yon kalite ki gen valè se konsa ke ou ka fondamantalman espere ke varyab la ou jwenn tounen ki sòti nan yon fonksyon yo pral nan kalite la ke ou panse ke li pwal, fondamantalman. Men, gen kèk metòd pa kote ou ka tcheke. Mwen pa sonje yo koupe tèt la nan tèt mwen. Mwen ap tann pou l 'bay vire ble. isint? isstr? Gen metòd bati nan PHP ki ka tcheke kalite a nan varyab pou ou. Men, si ou bay varyab smartly, ou pa ta dwe gen fè sa twòp nan pset 7. Men, metòd sa yo egziste. Epi sa a, yon bagay ki se nan lang nan tèt li. Apre sa, mwen pa sonje sentaks la presi. Nou te kapab menm gade li. Men, tan se nan sans nan. gen Èske nenpòt lòt moun gen nenpòt kesyon pi plis? Wi. ODYANS: Mwen gen sèlman yon sèl plis. Se konsa, ou mansyone metòd la jwenn, men ou pa t 'mansyone metòd la POST. Èske nou vini tounen nan sa? Oratè: Wi, nou pral dwe vini tounen nan sa. Sa a ekzakteman ki sa mwen te kap a telefòn mwen, ki kounye a tonbe dòmi, men mwen pral jwenn li ankò. Jis fè si nou frape tout nan nòt yo PHP. Oui, gen nan pa gen vèsyon debogaj. Wi, nou gen yon kèk plis bagay sa yo ke nou vle fè kounye a nan pwen sa a. Se konsa, pale de POST, kote ou mansyone, diferans la sèlman ant JWENN ak POST se ki sonje lè nou te a URL sa a epi nou te wè, o, Non egal yon ak laj egal yarp se dwa nan URL la gen pou nou. POST se yon ti kras pi plis sekrè ak pase li yo nan enfòmasyon. Se konsa, si ou pa t 'vle yon itilizatè konnen, pou egzanp, ou pa t 'vle non itilizatè a ak modpas nan moun nan kounye a louvri sesyon an ap parèt nan URL la, ki se yon bagay ki rezonab pa vle nan URL la, paske yon moun ka wè li. Si yo konekte yon moun nan yon paj, ou pa vle URL yo rekrepi a, paske yo ta ka pèmèt moun yo konekte jis ak kole nan yon URL olye pou a aktyèlman ranpli yon fòm. POST se yon ti jan ti kras pi plis sekrè. Apre sa, bagay sa yo sèlman ki nou pral oblije chanje se metòd sa a, chanjman soti nan jwenn yo pati. Lè sa a, andedan HTTP a, olye pou a aksè _GET nan etalaj, nou ap ale nan jwenn aksè nan _POST nan etalaj. Epitou, n ap remake ke, si nou louvri sa a tounen moute ankò, Jason tou dousman refize nan laj. non Jason, laj 14. Bagay la menm Pops leve. Men, nou ale nan URL la ak moun varyab yo se pa la. Apre sa, fason ke POST passes-- konsa sonje ki jan fè yon gade nan sous la nan yon paj. Nou ale nan rezo a. Nou rafrechi. Lè sa a se yon lòt bagay ki POST ap ba ou avètisman sou yo. Ou ta ka gen pou wè yon bwat, yon tèks bwat tankou sa a nan navigatè ou a. Èske ou sèten ou vle voye yon fòm ankò? POST se sa k ap voye fòm sa yo. Paske fondamantalman si ou voye ou enfòmasyon kat kredi ak yon moun, ki pa k ap pase yo montre moute nan URL la. Sa k ap pase yo dwe yon demann POST. Se konsa, lè ou rafrechi paj la, li nan ranvwaye ke post demann. Se konsa, kounye a nou vle voye nan fòme ankò paske li pa k ap pase yo kreye nenpòt acha kopi. Epitou, n ap remake ke desann isit la, metòd la nou ap lè l sèvi avèk se POST. Epi, se te tout bon transfere bytes. Li transfere 401 nan yo. Pwogram nan bèl ti. Men, gen nan okenn kote ke nou ka wè valè yo sa ki te pase. Paj sa yo entènèt tèt yo ka wè, men nou kòm itilizatè yo pa kapab wè, sof si ou se yon HACKER. Si ou se yon HACKER bon, ou ka gade. Si ou konnen debaz la fòma nan HTML a, valè yo pral fè tèt yo li te ye nan paj sa yo. Ou pral kapab yo wè. Valè yo pral gen, yo ap jis yon ti kras mwens evidan pou ou jwenn aksè nan, fondamantalman. Èske nou gen nenpòt ki plis kesyon sou JWENN, POST fè anvan sa nou ap ale nan fè pwochen se aktyèlman gade nan kèk nan kòd la ke w ap bay nan pset 7, pale sou li montre kouman li sèvi ak kèk nan konsèp sa yo, epi pale sou nan bagay sa yo ke ou yo ale fè yo fè yon ti jan ti kras nan pset 7. Nenpòt plis kesyon anvan sa? Plis kesyon ou nèg genyen? Great. Tout dwa, kite pou yo gade yon ti jan nan pset 7, pa gen dout sa ou yo tout pi eksite sou. Mwen vle di, sa a se yon bagay ki David ale nan yon ti kras. Men, nou pral gen twa repèrtwar nan la tèt, osi byen ke yon dosye konfigirasyon. Sa a pou baz done, ki nou pral pale sou nan sou senk minit. Gen ladan, ou pa janm bezwen fè yon gade nan anyè sa a si ou pa vle men li la bèl yo konnen gen tout kalite moun k'ap ede. Moun k'ap ede, se tankou fonksyon itil. Lè sa a, nou gen config, ki etabli kèk moute bagay. Gen kèk fonksyon ki CS50 gen ekri ki nan lòt moun sanble ak config. Se konsa, kèk nan PHP a ki deja sòti nan dosye pral fè yon anpil nan sòt nan plis a obti travay janm pou ou. Fè tankou si nou ale nan piblik login.php, ki se sa montre moute dwa lè ou ale nan pset 7. Nou pwal wè ke gen nan sa a mande pou deklarasyon. Epi sa sòt de tankou yon byen file enkli ladan yo, hashtag gen ladan si w ap nan yon jenerasyon plus. Men, sa a fondamantalman di ke mwen bezwen aksè nan tout fonksyon yo nan config.php. Epi ou te kapab gen yon mande pou pou tout kalite lòt bagay. config aktyèlman mande pou moun k'ap ede. Se konsa, nenpòt lè ou mande pou config, w ap tou ki gen ladan oswa ki mande moun k'ap ede kòm byen. Se konsa, ki ba ou aksè a nan tout fonksyon fre ki nou ap ale nan sèvi ak, bagay renmen rann. Mwen aktyèlman ale nan fasilite sa a desann yon ti kras. Se konsa, fonksyon an Lè sa a, nou ap ale nan mache nan jis anvan nou deplase sou li nan yon ti kras SQL ti jan se fonksyon an login.php, jis paske li sèvi ak kèk nan sijè ki ke nou jis te pale osijè de nan PHP. Ou wè nan premye bagay se si $ _SERVER. Sa se yon lòt varyab mondyal ki w ap ale nan dwe fè fas ak. Se tankou _GET ak _POST, men sa ki sèvè gen se sa a ka fè w konnen si metòd la demann te yon JWENN oswa yon POST. Fè tankou deja sa nou te fè se jis nan kòd nou ke nou te ekri, nou te jis chanje li nan dwe JWENN ak POST depann sou sa ki HTML a te genyen an. Men, gen paj ki ka aksè ak tou de kalite demann. Epi ou ta ka vle fè bagay sa yo diferan ki depann sou kalite a nan demann, jis tankou login fè. Se konsa, ou ka tcheke ke demann metòd nan aksè kle, a lè l sèvi avèk yon kle ak ap resevwa nan valè de yon bagay nan diksyonè sou _SERVER. Se konsa, sa a, se yon lòt mondyal varyab tankou _GET ak _POST. Si li nan JWENN, nou vle rann fòm nan login. Rann se yon fonksyon ki fondamantalman jis mete moute HTML ki apwopriye epi pase li kèk paramèt. Tit Sa a se yon paramèt sa a, se yo itilize nan montre, etranj ase, tit la nan paj la nan kesyon, bagay la moute isit la, di oswa alo nan egzanp anvan nou yo. Koulye a, nou gen yon bagay diferan. Lòt Bagay si li nan POST, nou fè kèk bagay lòt. Nou ap lè l sèvi avèk ke metòd vid. Li pa nan egziste, li nan vid. Apre sa, nou te wè anvan, PHP gen yon kantite lajan ki jis nan bati nan metòd jan David will-- si gen se metòd ki yo itil yo nou la a, yo pral bay ou okouran nan mache a nan jan David bay nan BECA a kòmansman, epi tou li Bits itil Zamyla a. Li nan tounen tout moun. Nou tout ka kontan. eskize se yon fonksyon justesse yo te rele ki jis fondamantalman simagri soti kèk mesaj erè, paske CS50 se yon bagay ki janti. Epi, koulye a sa a, sa a se yon ti jan difisil paske sa a se kote nou ap rekèt baz done a. Koulye a, nou pa t 'te pale osijè de baz done. Epi nou ap ale nan nan pwochen an senk minit oswa konsa, maksimòm. Men, sa a se yon fonksyon li te ke CS50 ekri yo ka resevwa yon tab fondamantalman soti nan yon baz done ke nou ap travay ak nan pset 7. Mwen vrèman move ak mwen zewo Indexing jodi a. Men, repons lan se wi, li se 7. Se konsa, sijè rechèch li pral retounen yon etalaj, fondamantalman se ti jan a kle. Epi paske bagay sa yo pa gen sezisman, se konsa ranje se yon etalaj de ranje. Paske lè nou ap panse sou yon tab, ki sa nou ap ale nan fè se, menm jan ou te aprann sa nan psets tankou jwèt la nan 15, de tout fason kote ou te gen yo sèvi ak yon doub etalaj, nou fondamantalman gen etalaj de lòt ranje fè yon tab. Apre sa, ou te gen ranje ak kolòn. Lè sa a, ou kapab jwenn aksè yo tankou [0] [1], ou jwenn [0] [1]. La Bagay de baz tankou sa. Se konsa, sa n ap fè isit la nan fonksyon sa a, nou ap mande baz done a si itilizatè a sa a, se ap eseye konekte, ki pral voye nan metòd la POST. Nou pwal wè nou ap vin non itilizatè a soti nan _POST. Yo pral menm ki voye, itilizatè a oswa ou 'va voye yon valè atravè yon fòm nan POST paske li nan non itilizatè ak modpas bagay. Nou ap tcheke non itilizatè a yo wè, se sa a nan tablo a? Paske si yon itilizatè se antre nan, Lè sa a, non itilizatè yo yo ta dwe estoke nan tablo a nan itilizatè ki egziste pou sit sa a. Se konsa, fondamantalman si nan itilizatè se nan baz done a, query ki pral retounen ki ranje, ki se yon etalaj. Men, pati nan difisil se ke si menm si etalaj la doub se sèlman nan yon sèl ranje, menm si li nan yon ranje yon sèl array-- tankou ou te gen basically-- si ou te gen yon gwosè yon sèl etalaj ki nan kenbe yon lòt etalaj, w ap reyèlman fè fas ak yon sèl kolòn. Men li la toujou trete tankou yon etalaj doub. Lè sa a se kote li ka pafwa jwenn difisil, paske nou te gen ranje isit la. Varyab nou an se ranje. Lè sa a, nou ap kreye yon nouvo varyab rele ranje ak anviwònman li egal a premye ranje a nan ranje. Apre sa, ou pral avi ke kòmantè di li a premye e sèl ranje a. Se konsa, sa a se difisil a pati kote kounye a fonksyon ka retounen ranje trè fasil. Gen nan pa mallocs. Ou pa pral wè mallocs. Se konsa, ou pa pral wè fot seg. Men, fonksyon ap toujou gen pase alantou ranje ak done an gwoup. Epi ou gen yo dwe Gèrye nan sa egzakteman fonksyon ou a pral retounen. E menm si li nan youn kolòn tankou sa a, sijè rechèch se toujou pral retounen yon etalaj doub. Se konsa, yo aksè ki column-- oswa ou ka panse a tout bagay sa yo kòm Envèse depi nou ap pale de ranje. Men, jwenn aksè nan ke yon moun ranje, ou pa kapab jis di ranje. Menm si li se youn ranje, ou gen rowsrows [0] a sòt de elimine sa a ti jan deyò nan etalaj la ak gen sèlman yon sèl ranje ou yo. Fè kèk lòt bagay. Genyen yon fonksyon rele password_verify ki verifye a modpas ki te afiche. Lè sa a, nou wè yon lòt mondyal varyab isit la, _SESSION. Fondamantalman id sesyon ki jan pou ou kenbe tras a si yon moun ki louvri sesyon an oswa ou pa. Se konsa, kounye a ak login.php, nou ap antre nan yon itilizatè. Se konsa, sa nou vle fè se nou vle di id la sesyon ki egal a ranje a id, ki jis fè sans paske chak ranje pral gen yon id diferan Nimewo kòm yon pati nan tab la. Nou pral jwenn nan SQL nan yon dezyèm lan, Se konsa, si nenpòt nan sa a sanble yon ti jan tankou bla ti kras, Lè sa a, tout yo pral otorize yo. Men, nou ap ale nan mete id nan egal a bagay la apwopriye, antre itilizatè a nan. Eskize si anyen ale mal. E ke se koneksyon objektif nan lavi tankou Pwofesè Malan ta ka di. Se konsa, sa ki te login.php. Ak yon anpil nan kòd la PHP ou ekri nan pset 7, yo pral yon ti kras. Pa bliye fè chmod autorisations yo apwopriye. Li pral fè yon ti kras sou ke nan konmansman an nan espèk a. Men, PHP a ke w ap ekri a pwal fè bagay sa a, se menm jan ak sa a. W ap ale nan gen aksè kèk bagay ki Yo ba yo ba ou nan nan varyab mondyal de PHP ki ap fè fas ak aktyèl la louvri sesyon an itilizatè, si gen gen te demann voye nan sa a paj, bagay sa yo diferan tankou sa. Epi li pral tou pou potansyèlman iteration nan ranje nan bagay sa a. Nan yon fonksyon diferan, query retounen sa a etalaj doub. Men, si gen plis pase yon ranje nan li, si gen sont- repons lan se wi, si gen yo gen plis pase yon ranje nan li, Lè sa a, li pral yon tab. Epi ou ta ka vle repekte a ranje yo nan sa a etalaj lè l sèvi avèk bouk la fortch ke nou dekri yo. Se konsa, si ou fè fortch sou yon doub etalaj, ki sa ki pral pawòl la- a isit la, Mwen pral aktyèlman ekri li. Mwen pral ekri li rapid isit la. Si nou gen yon fortch nan ranje kòm ranje, sa ki nan kalite a nan ranje? Nenpòt moun ki konnen? Ou te resevwa li? Se konsa, ranje a se yon etalaj doub. Se konsa, sa se fortch ale nan dégager ke nou vle sa a soti nan etalaj doub si nou ap iteration sou li? Nou ka asime ke fondamantalman li k ap pase yo dwe swa eleman, oswa ranje, oswa kolòn, fondamantalman. Se konsa, ranje ak kolòn nou ka trete kòm menm bagay la. Fondamantalman sa riban an fortch ki pral fè se li k ap pase yo retounen ranje. ranje a pwal nan ranje kalite, Lè nou konsidere ke ranje se yon etalaj doub. Se konsa, si ou bay fortch yon etalaj doub, li nan pa ale nan repekte plis pase yon nivo fon anpil. Ki se fondamantalman vle di si gen se uit selil ki nan sa a table-- 1,2, 3 4, 5, 6, 7, 8-- nan fortch bouk se pa ale nan ale nan chak nan selil sa yo. Ki sa ki riban an fortch pral fè te li pral ale nan ranje sa a, ba ou tout ranje sa a. Lè sa a, li pral ale nan ki ranje. Se konsa, li sèlman iterates yon nivo fon anpil. Si ou ajoute yon enbrike fortch bouk, lè sa a ou ka trete chak ranje tounen soti nan ranje, ou fè ranje fortch kòm eleman, kite a di. Lè sa a, ou te kapab repete eleman nan. Se konsa, sa a, se yon kout ti kras resiklaj sou kòman ou ta ka lè l sèvi avèk fortch pasan nan yon kontèks query. Èske gen nenpòt kesyon sou PHP? Nenpòt bagay nan tout anvan nou deplase sou li nan ap pale de SQL ak plezi a nan baz done? Santi bon? Santi bon. Tout dwa. Se pou yo deplase sou tounen nan la PowerPoint, ki pwobableman ou manke. SQL, Yay. Moun ki gen nan seksyon m 'tipikman n'a konnen se tit nan akwonim yo toujou sèlman mo yo an premye Mwen panse ke nan ki matche ak ki algorithm ki akwonim. Li pa yon algorithm. Se konsa, SQL se yon baz done. Li se yon lang ki travay ak baz done. Apre sa, tout baz done yo se tab, omwen nan chemen an ki SQL reprezante yo. Yon lòt fason yo reflechi sou baz done a se baz done se yon seri kle ak valè fondamantalman. Ou ka panse osijè de yon baz done kòm yon diksyonè ak tou kòm yon tab. Fondamantalman li nan yon fason yo asosye done diferan ak lòt done, souvan nan ranje ak kolòn. Epi sa a, wout la sa a, se SQL travay pi byen. Se konsa, sa a se yon egzanp sou yon tab. Mwen te gen yon egzanp kèk nan moun ki nan seksyon m 'yo, ki Mwen pa t 'gen tan chanje. Men, nou te gen bagay sa yo tankou ID, non, gwo pwisans, ak vil. Mwen pa konnen nenpòt moun ki nan kote soti nan nan seksyon m 'yo, se konsa mwen jis ale nan asime tout moun nan soti nan New York City paske mwen gen yon wo estatistik chans pou yo te kòrèk. SQL pral otomatikman pran swen nan kolòn nan ID pou ou. Si ou insert yon nouvo ranje nan yon baz done SQL, li pral kantite ki Nimewo ID ak jis fondamantalman bwa tankou senk non, gwo pwisans, peyi, moun ki va sou fen a nan ki tab. Se konsa, ID se yon kolòn ou pral pa janm gen enkyete sou. Men, tankou nan ka a a login.php, lè nou te resevwa ID a sesyon ki sòti nan yon tab ak jis lè l sèvi avèk ID, ID se yon fason yo idantifye inikman yon eleman nan yon baz done. Se konsa, si nou te gen de Sams, tou de ki anseye CS50, epi toude, ni nan ki moun yo te soti nan Milwaukee, sa yo ki ta toujou gen nimewo ID distenk e konsa gen distenk nan kontèks la nan tab la. Se konsa, sa a se sa SQL se fè fas ak, travay ak nan fen a tounen. Koulye a, sa yo, se kat kòmandman yo ke ou pral bezwen yo travay avèk SQL. Apre sa, mwen mete yo tout moute sou yon sèl glise. Men, nou ap ale nan ale nan yo tout endividyèlman. Lòd nan premye se MIZAJOU, ki fè sa ou ta ka atann. Di ou gen kèk done nan tab la sa a, se soti nan dat. Fè tankou si w ap kenbe tras nan non moun nan ak laj, si yon moun nan ogmante laj, lè sa a w ap ale nan vle ale nan ak aktyalizasyon laj sèlman sa moun nan. Pou yon egzanp ki travay ak premye table-- nou an pa enkyete sou ekri tout nan kòmandman sa yo nan menm tan an. Men, si ou te gen aktyalizasyon desann, ki pral bon pou pati sa a, paske nou ap ale nan tounen nan tab la. Se konsa, si nou tounen nan tablo a, se pou yo di yon bagay sa ki te rive te te gen yon tranbleman tè oswa yon liy fòt ki fann dirèkteman a New York City. Apre sa, nou te vle mete ajou tout moun ki te rete nan New York City. Yo tout te gen pou yo avanse pou Pennsylvania. Sa a pa yon vil. Yo tout te gen pou yo avanse pou New Haven. Gen nou ale. Se konsa, tout moun nan New York bwote al rete nan New Haven. Se konsa, sa a, se yon bagay sa a, se koreksyon twa ranje nan tablo sa a. Men, nan SQL, ou ka fè ke nan jis yon sèl deklarasyon. Se konsa, nou tounen nan Mizajou. Kite m 'rapid efase tablo sa a ankò. Lè nou ap pale de jour, gen yon pati kèk nan sentaks la ki kle. Oke, nan tout sentaks la se kle. Men, bagay la nan vèt se si ou vle. Yo blan ki nesesè yo, tankou prédéfinis non. Ak ble nan limyè yo se bagay ki varye selon sou tab la. Se konsa, sa a, se sa k ap pase sou ak konplo a koulè isit la, moute a. Se konsa, si nou vle mete ajou sa yo ranje jis nan moun yo ki ap viv nan New York, Se konsa, sa nou ta fè si nou te di MIZAJOU? Se konsa, tab se kote nou mete non an nan tablo nou an. Se pou nou jis di non an nan tablo nou an, se tab yon sèl. Se konsa, nou vle mete ajou tab yon sèl. E nou vle set-- ki sa nou vle yo mete? Oke nou vle di, se konsa column-- PHP trete ranje kòm Idantifyan inik. Lè sa a, kolòn yo jaden yo diferan nan tout sa yo eleman nan baz done a. Se konsa, eleman nan premye nan baz done a gen yon non nan Sam, gwo pwisans nan CS50, ak yon vil nan Milwaukee. Se konsa, si nou te di mete, se pou yo gade nan paramèt yo ankò ke seri pran. Nou gen kolòn egal valè. Se konsa, nou vle di kèk column-- ki sonje se yon field-- nou vle wè yon jaden egal a yon nouvo bagay. Se konsa, si nou jis di aktyalizasyon tab 1, mete non egal Elliot. Jwenn kèk moun ki sòti nan la nouvo seksyon nan sou sa a. Men, si nou jis te fè aktyalizasyon tab 1 mete non egal Elliot, sa ki ta gade nan tab tankou apre sa? Moun gen nenpòt lide? Yeah. ODYANS: Tout bagay nan ki ranje ta vin Elliot. Oratè: Tout bagay nan ki ranje? ODYANS: Nan premye ranje a. Oratè: Nan premye ranje a? Poukisa premye ranje a? Mwen pa vle di yo chwazi sou ou. ODYANS: Petèt tout bagay nan tablo a antye? Oratè: Tout bagay nan tab la tout antye, wi. Epi sa a, egzakteman dwat because-- mwen te jis ede ou konnen yon ti kras there-- paske nou omisyon si ou vle KI KOTE kloz a. Si ou pa gen KI KOTE nan kloz, ki sa kòmandman sa a pral fè se li pral travay ak tout sèl ranje nan tablo a. Non tout moun nan pral vin Elliott, fondamantalman, ki Elliot se trè kontan sou yo. Ou Yanni, youn nan de la. Men non tout moun nan pral chanje. Se konsa, wout la nou itilize KI KOTE clause-- nan ak sa a aplike a tout nan Wheres yo ki nan chak nan bagay sa yo diferan. Se konsa, ou pral avi ke SET gen kolòn egal valè. Se konsa, fè sa ki KI KOTE. Men, sa yo, se diferan kalite deklarasyon. Se konsa, kolòn nan egal valè nan ansanm se nan plasman. Tankou nou ap di nou vle yo mete non egal a Elliot. Men, nan Paragraf yo kote, sa yo, se deklarasyon egalite. Se konsa nou di nou sèlman te vle chanje non moun nan an Elliot si non yo te Ryan, se pou yo di. Se konsa, lè nou di KI KOTE Non egal Ryan, ki ta avèk siksè sèlman chanjman name-- a li ta sèlman chanje jaden an Non nan ranje kote jaden an non se egal a Ryan. Se konsa, si nou te gen moun miltip yo te rele Ryan, nan tout non yo ta chanje nan Elliot. Sa a se menm jan ak egzanp lan a si yon liy fòt fractionne Vil New York ak tout moun gen yo deplase li nan yon New Haven, wout la nou kapab fè sa nan yon sèl deklarasyon ki MIZAJOU table1 SET vil = New Haven kote vil egal Vil New York. Sa a se pouvwa a nan deklarasyon an MIZAJOU. Nou ka chwazi nenpòt ki kantite ranje a deklarasyon vre sou jaden yo nan sa yo ranje. Nou pa ka di MIZAJOU table1 seri Non = Elliot KI KOTE ranje = 1, eksepte ke nou kapab si nou di ID = 1. Se konsa, nou ap ale nan dwe travay ak egalite nan jaden, egalite nan kolòn. Men, lè l sèvi avèk jaden an ID se yon fason yo chwazi ranje endividyèl espesyalman, paske jaden an se yon inik ID idantifyan nan yon baz done SQL. Se konsa, tankou à ranje yon sèl, ID egal 1. Mete ajou ranje de, jis chanje ladan nimewo ID. Men, pouvwa a nan la KI KOTE deklarasyon se ke nou ka mete ajou bagay ki baze sou sa yo valè aktyèl la nan sèten bagay ye. Wi Elliot? ODYANS: Ak sa ki si ou vle to-- ankò, sa a se yon lòt kesyon. Men, anvan m 'te kesyon, kote se sa kap pase? Ki kote mwen à sa a? Èske sa a nan yon kòd PHP? Oratè: Ki kote ou mete ajou, wi. Nou pwal pale sou kote tout bagay sa yo k ap pase nan yon fwa nou sòt ale nan tout kòmandman yo. Men, sa ki ou bezwen konnen pou kounye a se fondamantalman ki baz done SQL ou egziste kòm yon bagay yo dwe jwenn aksè pa rechèch la fonksyon, ki CS50 defini. Se konsa, si ou itilize fonksyon an sijè rechèch, ou kapab jwenn aksè tablo sa a. Se konsa, ou yo pral voye sa yo kòmande sou tab ou a nan dosye PHP a fonksyon an sijè rechèch. Ou kapab tou jwe otou ak tab ou dirèkteman. Epi sa a, fason ki pi bon tès sa yo kalite kòmandman. Epitou, n ap ale nan egzakteman ki jan fè sa nan jis yon ti kras. Se konsa, sa a, se MIZAJOU lòd. Tout rès kòmandman yo yo pral yo dwe sòt de ki similè yo, ap travay sou bagay sa yo menm jan an. Insert nan a se pwobableman pi diferan ki soti nan MIZAJOU. Mwen pral kite ki 'kanpe pou jis yon ti jan ak travay sou isit la. Se konsa, INSERT INTO, ou ap wè ki tab se toujou menm bagay la. Ou vle insert nan. Lèt majiskil, SQL an se ka bra kwaze. Se konsa, ou pa bezwen kapitalize bagay sa yo. Pa konvansyon, mo sa yo nan blan yo pwofite kapitalize. Men, mwen menm mwen te koulè kode yo. Rezon ki fè la sèlman ke ou kapitalize moun lè w ap tape yo se jis mete aksan sou ki sa yo se konstan. Se konsa, ou ka swa gade nan lèt majiskil la oswa lefèt ke mwen te ki gen koulè pal yo yon lòt jan. Se konsa, nou te gen insert nan, kite a fè table1 ankò. Sa a se tout sou yon sèl liy. Mwen jis separe li pa diferan deklarasyon sa yo. Se konsa, pa enkyete sou lefèt ke table1 te fè li sou liy, dezyèm lan. Se konsa, nou vle insert INTO table1 kèk valè. Apre sa, ou pral avi si ou vle nan ti jan, ki mwen pral ale nan nan yon dezyèm fwa. Se konsa, nou te gen valè. Se konsa nou di nou vle ajoute Andi sou tab nou an, paske nou manke Andi. Andi ki malad. Se konsa, kite a ajoute Andi sou tab nou an. Sonje ke nimewo a ID se mete ajou otomatikman. Se konsa, jaden yo sèlman nou bezwen enkyete sou se non, gwo pwisans, ak vil. Se konsa, wout la ke nou fè sa, gade nan sentaks nou an, se nou te jis te resevwa yon parantèz, ak vigil valè separe, chak nan yo ki se yon valè. Se konsa, si nou te vle insert Andi nan nou an tab, tout sa nou dwe fè ki dwat Andi. Ki sa ki nan gwo pwisans Andi la, moun ki nan seksyon Andi la? Li renmen vòl, oswa renmen vitès, oswa yon bagay. Ki sa nou deja genyen 'kanpe? Nou gen CS50, vòl, vitès, ak fòs. ODYANS: Tan vwayaj. Oratè: Tan vwayaj, dwòl. Se konsa, nou te gen Andi, tan vwayaj, ak vil li. Sa se yon kesyon reyèlman bon. New York City, sof si yon moun konnen. Tout moun nan soti nan New York se nan leson yo pran lwen jodi a. Se konsa, sa a ta deklarasyon Insert, kòm yon senkyèm ranje, ak gwo pwisans tan vwayaj la ak yon vil nan vil New York. Men, si ou vle jaden an se fondamantalman yon fason ou presize egzakteman ki kolòn ou vle insert bagay sa yo nan. Fason ki ke nou ap fè li kounye a, Andi, vwayaj tan, Vil New York, ki pral yo nan lòd egzak la nan nou an Non table--, gwo pwisans, vil. Men, si ou te vle fè yon lòt bagay pase sa, tankou di ou pa t 'konnen gwo pwisans yon moun, tankou ki jan mwen pa t 'konnen an Andi gwo pwisans nan kòmansman an. Se konsa, tout mwen te konnen te li non ak vil li. Ki sa ki mwen te kapab fè se mwen te kapab do-- mwen pral efase sa a rapid. Mwen vle sèlman mete ajou kolòn yo. Lè sa a se kote si ou vle nan lis kolòn vin antre nan jwe. Mwen sèlman vle mete ajou non ak vil. Lè sa a, Mwen pral di valè. Mwen pral fè Andi ak Vil New York. Si m 'te omisyon lis la nan kolòn ak jis fè de bagay sa yo, kote ta Vil Nouyòk te ale? Ki kolòn ta New York City yo te mete yo nan? Moun gen nenpòt lide? Gwo pwisans, egzakteman. Se konsa, sa a pral jis ale nan lòd. Ak yon lòt fwa li rive nan nan fen a lis, li pral jis sispann ranpli bagay sa yo nan. Ak valè yo ke li pral bwa nan tout kolòn yo pral jis pou nil. Se konsa, paske nou espesifye non ak vil, nou ap ale nan gen ID 5, non Andi, gwo pwisans NULL. Se konsa, gwo pwisans se yon valè uninitialized. Ou pa pral nesesèman jwenn nan menm erè Valgrind si ou eseye ak jwenn aksè nan li. Tout bagay yo pral joliman zero soti, paske NULL se yon valè nan SQL. Sa se yon konstan. Lè sa a, peyi yo pral Vil New York. Se konsa, sa a, se INSERT a nan lòd. Anvan nou deplase, gen nan de plis kòmandman. Moun ki gen nenpòt kesyon sou MIZAJOU, sou insert nan, sou SQL jeneralman anvan nou deplase sou Bits final nou an? Moun yo santi yo bon, gwo. Renmen li. Se konsa, kite nan pale sou chwazi. Ale menm twou MIZAJOU sou isit la. Epi chwazi a pwal trè sanblab. Objektif la nan chwazi, Objektif chwazi nan nan lavi se yo ba ou yon pakèt moun sou kolòn ki satisfè sèten kondisyon. Apre sa, lè m 'di satisfè sèten kondisyon, lide ou ta ka imedyatman tounen nan ki KI KOTE kloz ki te vin moute nan MIZAJOU. Epi sa kloz se egzakteman gen la nan chwazi. Si nou pa mete KI KOTE nan kloz epi nou di non chwazi, hometown-- eple ke yon ti kras Non wrong--, peyi KI SOTI NAN table1. Si nou jis di ke, ki sa CHWAZI ki pral ban nou se li nan pral bay nou yon double-- yon tab, olye. Yon etalaj doub si nou ap panse sou nan PHP sans. Men, li la jis ale nan ba nou yon doub etalaj de de Non columns--, ak vil. Epi li pral inyore ID. Epi li pral inyore gwo pwisans. Epi, se pral jis ba nou chak sèl ranje nan ki tab. Se konsa, si nou jis eleman Andi, nou pral gen Andi. Epitou, n ap gen kat orijinal la. Si yo ve yo te mete ajou, ki pral dwe reflete, et setra, et setra. Se konsa, sa a se paske nou pa t 'sèvi kloz a ki kote. Men, nou ka sèvi ak li nan egzakteman nan menm jan nou itilize li nan MIZAJOU. Si nou sèlman vle yon tab nan non yo ak pouvwa super nan moun k ap viv nan New York, nou ka egzekite yon deklarasyon tankou non chwazi, superpower-- Mwen jis ale nan kite that-- KI SOTI NAN table1 KI KOTE vil = Vil New York. Se konsa, sa a ale nan montre ke ou kapab jwenn kolòn totalman diferan, ak Lè sa a mete kolòn ke ou pa ap menm ap resevwa tounen nan kloz a ki kote. Nou pa menm vle a peyi a tout moun. Men, nou vle non ak gwo pwisans yo ak pèp ki gen vil se New York City. Se konsa, sa a, se yon bagay nou kapab fè avèk KI KOTE nan kloz se nou ka fè fas ak kolòn ke nou pa nesesèman vle tounen. Nan menm fason an nan MIZAJOU, nou ka fè fas ak kolòn ke nou fè pa nesesèman vle mete ajou. Nou ka mete ajou vil la nan tout moun ki moun ki nan non se Sam, pou egzanp. Nou ka mete ajou vil la nan tout moun ki gen ID nonb ki se 2. Se konsa, jis mete ajou nan vil nan dezyèm ranje a kote nou pa gen fè fas ak nesesè kesyon an komen. Ak efase se, menm jan ou ta atann, efase soti nan table1. Lè sa a, nou te gen yon lòt kloz KI KOTE. Se konsa, nou ka di KI KOTE ID = 1. Debarase m de premye ranje a. Ak efase ap toujou efase yon ranje, oswa li pral efase kèk kantite ranje. Efase nan tablo KI KOTE City vil = New York pral efase tout moun nan Vil New York. Sa a si te gen yon toudenkou epidemi trajik epi ou jis te vle retire tout moun soti nan tab la ki te rete nan yon vil sèten ki te frape pa epidemi an. Se pou yo rès ak kè poze. Sa yo se kat kòmandman yo SQL ke ou ap bezwen yo sèvi ak. Ou pa ta ka menm bezwen sèvi ak yo tout. Men, sa yo, se kat la ki CS50 espere ou yo dwe konfòtab ak pral antre nan tou de egzamen 1 ak tou pset7 ak pset8. Genyen sèlman sa tab ankò. Nan yon sèl sa a, gwo pwisans Roy a gen te mete ajou ak travès lazè, ki ki se yon egzanp mwen pa t 'sèvi ak. Mwen pa konnen ki youn Roy pwefere, men fòs. Roy gen yon gwo pwisans nan fòs. Katherine pa t 'fè li jodi a. Sa a malere. Men, li te gen vitès super. Oke sa ki te PHP. Anvan nou pale sou mv, èske nenpòt moun ki gen kesyon sou PHP? Koulye a, SQL, oswa PHP si ou rete konsa gen vini ak yon kesyon sou PHP? Great. Tout dwa, nou ap tout ansanm lè sa a. Se konsa, pale yon ti kras sou modèl View contrôleur, se pou yo tounen nan kèk nan bagay la nan pset7. Se konsa, sa modèl View kontwolè is-- mwen pa ale pou konsève pou chanjman mwen an login paske mwen totalman mennen labatwa li. Men, fondamantalman nou gen de bagay apa pral sou. Nou gen yon piblik anyè ki gen kòd a ki k ap pase yo dwe egzekite ak paj sa yo entènèt ke yo pral vizite. Apre sa, nou yo te genyen tou anyè opinyon sa a. Ak opinyon gen modèl. Sa a se sa fonksyon an render-- nou te wè nan rann fonksyon nan yon pakèt moun sou kòd la PHP li te ke CS50 deja ekri pou ou, ki pran an sèten karakteristik. Ki sa sa ap fè Kòd se li k ap pase nan opinyon, ki se kouche nan tankou prewritten Kòd HTML, ak li a mete valè nan sèten kote. Sa a se fason lè ou ale nan CS50 Finans, menm header a se sou chak paj. Footer nan menm se sou chak paj. Sa a se paske wout la ki rann travay se li 'tout otomatikman plak nan ki header ak visualiseur ki ou ka jwenn nan opinyon. Nou aktyèlman ka ale nan header, ak gade, li nan yon dosye HTML ak yon tèt. Li nan te resevwa kèk style. Ou pa bezwen fè yon gade nan CSS pou pset7 si ou pa vle. Men, ou ka modifye yo si ou vle, fè Finans ou gade yon ti kras diferan. Li nan te resevwa kèk PHP nan header nan yon ti jan yo wè si gen nan yon tit diferan li ta dwe mete nan header sa a. Men, jis kèk lòt Scripts, ak lyen yo, ak lòt bagay. Head fini, kò kòmanse, ak Wouch, nou gen sa a etranj ti jan fen ti kras. Apre sa, gen nan yon div, jis tankou yon kalite inform nan eleman ki gen yon lide sou presegondè. Lè sa a, lè nou wè footer, nou gen nan fen yon div. Nou gen yon anba, ki se kote tèks la footer se. Fen div, fen nan kò, nan fen HTML. Se konsa, sa rann se fè se rann se sòt a reparèt moute header, se yon diferan dosye PHP ki pral gen bagay yo reyèl ki ou pral wè, tankou tab ou nan aksyon si w ap achte oswa ou vann aksyon. Lè sa a, li pral ajoute nan footer la. Apre sa, gade nan modèl lide kontwolè se ke nou vle separe ki jan bagay sa yo gade nan kòd la. Li nan nou vle separe entèfas a ak entèfas a, kote entèfas a se bagay la ki itilizatè a wè, bèl nan visuals-- HTML, CSS, bagay sa yo tankou sa yo, imaj, et setra. Apre sa, entèfas a se PHP. Sa a se kòd ke ou ekri. Sa a se kote kòd la sa a, se fè operasyon vrè. Sa a se lè w ap ajoute yon estòk sou tab ou, lè w ap achte ak vann, sa a, se entèfas. Epi nou ka, jan ou te wè, ki gen ladan PHP dirèkteman nan HTML. Se konsa, sa nou te ka te fè pou plasman sa a se jis te gen yon dosye HTML pou chak paj, tankou login. Lè sa a, nan paj ki, jis te gen yon blòk gwo PHP kòd, ki gen ladan tout nan kòd la ki paj ki espesyalman ta bezwen. Lè sa a, nou te ka gen fè sa pou pòtfolyo. Nou te kapab te fè tout nan achte a ak vann nan paj sa yo endividyèl elèv yo. Men, paske se nou ap rann separeman ki soti nan kote nou ap ekri entèfas a Kòd, nou ka byen fasil chanje fason bagay sa yo gade san yo pa chanje chak dosye sèl. Nou fè bagay sa yo tankou jis ajoute yon nouvo div nan pati anba a de- Alo Mwen modifye footer la. Ou ka jis fè bagay tankou sa. Men, tou, ou kapab chanje tout Layout la vizyèl san sa pa afekte sa ki nan pral nan entèfas a. Epi ou ka chanje a tout entèfas epi ou toujou ap genyen li gade jis tankou li te fè anvan an. Sa a Se lide an nan modèl View kontwolè. Apre sa, li la aktyèlman yon paradigm enpoze nan kèk nan lang yo pwogramasyon ou ta ka vle sèvi ak pou pwojè final la. Si ou fè sa iOS devlopman, yo gen opinyon, ki se sa ou wè sou iPhone a, ak Lè sa a, entèfas kòm tankou yon bagay ki apa a. Ou ka panse osijè de yon ti kras. Genyen yon anpil nan binèr nan syans òdinatè, ki se komik, paske tout bagay nan nan binè. Mwen pa t 'plan pou sa. Sa ki te yon Pun entansyonel. Wi, Pun pa gen entansyon. Men, tankou dosye h ak dosye c, gen nan yon anpil nan separasyon de bagay sa yo ke nou ta ka pa bezwen. Se konsa, nou ka jis edite dosye yo h, oswa yon moun ka jis wè yon dosye h ak konnen egzakteman fonksyon yo ki nan la c dosye san yo pa nesesèman konnen aplikasyon yo. Lide sa a nan separe eleman ki depann sou chak lòt men yo ka sòt de aksè youn ak lòt atravè chanèl diferan, pase nan varyab, jis gen ladan deklarasyon, bagay sa yo tankou sa yo, prensip sa a ede yo kreye aplikasyon pou ki ka pi fasil edited by miltip moun, ka pi fasil chanje oswa modifye nan yon echèl gwo, epi yo pi fasil yo debug nan yon anpil nan fason. Vrèman rapid, mwen gen yon konsèy kèk pou pset7, ki mwen pral fè plein écran pou w pa jis gade nan the-- tippee pwent pwent. Pa gen ke anpil konsèy. Men, mwen mansyone PHP se difisil yo dbug. Doub ak trip tcheke li. Si kòd ou a se jis pa ki montre moute sou paj la, li la pwobableman yon erè PHP, regrèt. Ou pa janm bezwen fè yon gade nan CSS si ou pa vle. Men, yon fwa w ap fini, li kapab yon bagay bèl ti plezi yo jis ale nan ak dezòd ak paramèt yo CSS. CSS ak HTML se yon egzanp sou yon modèl bagay View style kontwolè tou, dwa? Ou te kapab gen Tags style andedan nan eleman HTML. Men, si ou sòt de externalisation yo CSS, yo ap pi fasil yo edite, ak jwe otou ak, ak pran plezi avèk yo. Trete CS50 k'ap vin ede fonksyon kòm bwat nwa. Ou pa bezwen konnen ekzakteman ki sa rann ap fè, men mete konfyans li nan toujou fè dwat a bagay depann sou sa ki ou pase l ', bagay sa yo tankou sa a. Apre sa, mwen ta rekòmande pou l ap gade solisyon David la, ale atravè tout tout nan bagay, pa sèlman Todos yo, men ou reyèlman ka trete sa yo bwat kòm nwa. Pa antre nan sa yo fonksyon kap chèche pinèz. Ak akeyi retounen nan a Siprèm Zamyla nou an. Great. Èske gen nenpòt kesyon final anvan nou sòt de rebondisman pou yon jou a? Èske mwen toujou ap viv? Great. Hi moun livestream. Great. Èske gen ankò kesyon? Se pa? Lè sa a, mwen panse ke nou ap bon yo ale pou jodi a. Mwen pral bwa alantou yon ti jan apre sa si moun te gen kesyon yo te pè poze sou kouran an. Men, otreman, gen yon bon jou.