SAM LEVATICH: Dobrodošli oddelek za ta teden. Nisem Andi. Andi je zbolel za ta dan, in jaz so bili nekako imenuje v zadnji minuti prevzeti. To je sezona gripe, zato poskrbite, da boste prebivajo čisto, umivanju rok, in zdravo prehranjevanje, tako da tudi vi niste Iznemogao. Toda brez nadaljnje ado, začnimo. Danes bomo govorili približno PHP malo bit-- kako PHP se nanaša na HTML, kako ga nanaša na CSS, in nekatere spleta stvari si na zadnji dodelitvi. Bomo pogovoril malo o SQL in kako lahko delate z bazami podatkov, ki je zelo bistvena sestavina P nastavite 8-- P nastavite 7. P nastavite 7. In potem bomo govorili malo malo o tem, kako krmilniki pogled deluje in zakaj to je filozofija nekaj sodobne spletne strani in drugačno zasnovo. Precej veliko vrst aplikacij in aplikacije, ki jih lahko ladja so z uporabo tega modela, Okvir pogled krmilnik, da si bo z uporabo v P nastavljena 7, tako da bom govori malo o tem, zakaj da je postalo priljubljen, zakaj je pomembno in lepo. In potem bom končno premakniti na nekaj nasvetov o reševanju P nastavite 7. In če bomo imeli čas ostala na koncu, bomo lahko dejansko narediti nekaj delati na tem skupaj. Torej, PHP. V bistvu, ste morda opazili this-- vam ni res, da se potopite v it-- ampak P nastavite 6 imel nekaj PHP kodo, ki se dogaja. In zato, ker PHP je C-like jezik, PHP, za razliko od HTML in CSS, je programski jezik, ker se HTML in CSS so statična. Oni označevalni jeziki, ki se ukvarjajo s stilom in vizualno postavitev. PHP je prava stvar. PHP ima zank, da ima conditions-- vse te stvari, da je zabavno o C. To je nekaj stvari, ki so malo malo bolje kot C, kar bomo videli, ampak mislim, da je najlažje govoriti o PHP je le, da se potopite v. Tako da sem šel desno v IDE na tej točki. Prva stvar, ki jo boš storiti, je dejansko videti malo na nekatere izmed PHP koda, ki je bila v P nastavite 6. Torej način, da delamo that-- prej, tako, da smo bili z operacijskim strežnik za napravo je bila, da bi morali type-- ali uporabite svoj izvajanja ali izvajanje Kadrovskih je od server.c ki ga bo v imenik in teče server.c bodisi ni arguments-- tako samo pozivam lokalnega gostitelja, ki je tisto, kar ste verjetno storila večina time-- in nato s polnjenjem directory-- z za uporabo kot koreninah kjer je spletna stran bi biti prost, v bistvu. Ta teden P set 7, kakor velik kot naš kode za server.c je, da obstajajo ljudje, ki imajo že napisal te lepe stvari znova na CS50 ki imajo malo več funkcionalnosti, program strežnik, ki je sposoben ki se ukvarjajo z malo več od zapletenosti da bomo glej tako v P nastavite 7 in P nastavite 8. In način, da začnete gor Strežnik, ki ga vtipkate "apache50." In preden narediš karkoli, želite prepričati da je Apache 50 ne že teče, kot je na mojem računalniku, ki sem jo naredil, da ga preizkusite. In ti to, da ga kliče apache50. Stop, in videli boste, da je ustavljanje spletni strežnik, če si lahko ogledate tam Na dnu okna terminala. In potem samo za začetek, smo bo poklical, "apache50 začetek." In potem gremo ga nahraniti imenik. Zdaj, ker smo želeli videti na nekatere P določi 6 kodo da smo izvajali, sem dejansko kopirali malo P nastavite 6 kodo v mojo mapo, ki jih lahko vidite na levi strani tam. To se imenuje "SECTION8" v vseh z velikimi tiskanimi črkami saj sem samo tako navdušen da bo v živo predvajale-danes. Torej, če tečemo s tem bi bilo Vse deluje zelo učinkovito. Piše, OK, naša stran je zdaj na voljo na naslovu IDE, v bistvu, ki je tisto, kar ste bili z uporabo točno tako, kot je bilo v P nastavite 7-- P nastavite 6. Vsi moji indeksi so eden indeks danes. Torej, lahko gremo na to naslov, če si boste zapomnili, s klikom ta mali gumb v zgornjem desnem kotu. In se spomnite to kodo, ki se je zgodilo, ko si šel v hello.php. In kaj koda je zasnovan tako, da storiti, je, ko ste vnesli ime here-- če rečete Sam ker to je moj name-- in sem kliknite Hello Say, ko smo šli na naslednjo stran, To ime naj bi bil prikazan. To bi rekel: "Zdravo, Sam" ali "Hello", karkoli vam ime vanjo, čeprav smo šli na povsem novi spletni strani. In to je reč da lahko PHP stori za vas. PHP je sposoben, da prenese podatke med dvema spletnih straneh. To je popolnoma drugačna stran. Videli boste, naslov je "zdravo" tukaj. Pravzaprav imajo isti naslov, vendar sem Obljubim, da so različni web strani, če gledamo na viru. In lahko prenese podatke, ki je vnesejo v tem besedilnem polju, ga predloži naslednji strani, ki je vpoklican, in nato, da se podatki lahko tam v svoji sedanji obliki. Zdaj smo še ne izvajajo to sami, ki je tisto, kar bomo storili zdaj, da nekako dobili okus za to, kako PHP deluje, vendar je ključna ideja je, da PHP-- lahko nekako si o njej mislijo kot funkcijo. Nekaj, kar lahko PHP vam pustiti pa je lahko trajalo parametre da vnesete v HTML stran z uporabo PHP in oblik, in se lahko prenese s tistimi kot parametri na naslednjo stran, ki je naložila gor. V tem primeru, bomo nakladanje up to Stran z gumbom "pozdravi". Ampak za zdaj, sem dejansko črta nekaj te kode v hello.php da je prost dostop da je bil dejansko prikazovanje "zdravo, svet "ali" zdravo, Sam ", ali "zdravo", kar je samo vhod. Torej za zdaj, smo bo za to, v bistvu. Bomo ponovno, da je in dodate tudi nekaj več funkcionalnosti, narediti malo več z njim, si oglejte kaj PHP je res sposoben. Torej, najprej, kaj je govoril o ta datoteka, hello.php. Torej, če smo zoomom malo bit-- in zdaj sem nekako poskuša pomikanje vse način around-- tam gremo. Boste videli, da se imenuje hello.php, ampak sintaksa njega Izgleda datoteko HTML. To je zato, ker Dejanska PHP v tej datoteki se vsi zaljubljen med njimi vprašanje mark-strešica bloki. Vse je tukaj Šteje se PHP koda. In boste opazili, da ko sem komentar, boste videli poznajo dve poševnici. In če boste spomnimo, v HTML, če sem tip komentar, je videti nekaj bližje to, kar je komentar v HTML. Torej, res je vse med ti dve kotni nosilci Zdaj je PHP koda, ki se odraža v tem, da je to malo simbol komentar je obrnil v komentarju. Torej, vsakič, ko pišete PHP kodo, celo če ni HTML koda zunaj njega, to je vedno bo zaprti v teh kotnih oklepajih z vprašaji. Lahko nekako misliti it-- kako vse kode, ki je potekal v vaših programih C je bil zaprt v int glavno, praznino, kodrasti naramnicami, konec kodrasti izjava brace. In videli boste, zavite oklepaje v PHP, tudi, toda to je vrsta kot glavno metodo PHP. Torej sedaj, kako bomo storili ničesar v PHP? Zdaj, PHP je programski jezik, ki je zelo-C, kot so, ampak deluje na spletu. Torej, ena stvar, ki boste immediately-- eno od prvih stvari, ki jih res z C je bil ste tiskali stvari, kajne? Torej, v C smo naredili, da s funkcijo printf. Dali smo to niz, verjetno z novo linijo, potem pa preneha je s podpičjem. Torej tako, da bomo za to, da v PHP-- ker to ni čisto printf. To je malo drugačen sintakso. Tako, da smo natisnete stvari v PHP je, da smo rekli, "echo zdravo" ali "echo" kakršno koli besedo. In da ima tak učinek printf z vrvico, "zdravo." In dodaja novo linijo z njo. Torej, kaj je zdaj, da sure-- Bom pomanjšati spet malo bit-- dajmo se prepričajte, da da koda deluje ker je morda zelo pa gre za napako v tem kodeksu da bomo morali lotiti. Torej je strežnik že teče. Torej, če smo pomikanje nazaj na dno, Ja, je strežnik še vedno teče. Torej, če smo samo pritisnete na to malo desno here-- welcome-- moramo get-- super. Še vedno smo ob seznanjeni "Pozdravi" dialog, ampak ko sem tip v "hi", bomo videli da je besedilo "zdravo" je bil dejansko natisne, ki je točno tako, kot smo pričakovali, saj odmeva v PHP je tako kot izjavo printf. Torej nazaj na kodo, kako v P nastavite 6 storil porazdelitev koda, ki jo pod bi bilo tako, da je PHP bi izhod za stvar, ki se vam vnesli na prejšnji zaslon? In nekako preuči zakaj se to zgodi, smo bo šel v index.html, ki je izvirna datoteka, datoteka, ki se pojavi na zaslonu z gumbom "pozdravi". Opazite, da je vse klasične stvari, smo prišli, da pričakujejo od HTML takega kot te stvari, zaprto te oznake v kotnih oklepajih, kot so PHP vendar brez vprašaji, kar kaže na posebno stvar HTML. Imamo naziv, ki je "zdravo." In boste opazili, da se, kot smo videli, naslov je "zdravo", v obeh primerih. Oglejmo spremeniti tole da "reči" samo zato, da bomo mogoče razlikovati sebe, kje smo. Ampak imamo telo. In potem je zanimivo bit je bit, ki se prikaže v HTML, je ta oblika element. In tako smo dobili obliko. In to je ključ. To je, kako delamo s PHP. Akcijski parameter Obrazec pravi, da hello.php je tisto, kar bomo poslali vrednosti v tej obliki do. To je, če smo mimo parametri, če se tako izrazim. Opazili boste, še ena stvar tukaj je, da je metoda "znebiti." Obstajata dva osnovna Načini, s katerimi bo lahko z uporabo PHP, da prenese podatke med websites-- spletnih straneh, rather-- v tej nalogi. In te metode so "dobili" in "delovno mesto." Obstaja nekaj subtilno Razlike med get in pošti da bomo dobili into-- smo bo "dobil" v, če hočete. Ampak za vse namene in namene, dobili in post sta le načini, da podaš parametre z nekoliko drugačnimi usmrtitev. Za zdaj, bomo uporabili priti, ker dobil je, kar je bilo prvotno uporabljena V datoteki PHP P nastavite 6. In dejansko, če gremo v in poglej preden smo uredili ničesar drugega, Grem pozdravit to-- kako ti je ime? OBČINSTVO: Elliot. SAM LEVATICH: Oh, bog. Ne vem, kako naj napiše. Lahko napiše, da je za mano? Skupina: E-L-L-I-O-T. SAM LEVATICH: I-O-T? OBČINSTVO: Ja. SAM LEVATICH: Popolna. V REDU. Mislim, da sem vedel, kako se napiše. Oprosti zaradi tega. Toda, če rečemo »Say Hello«, to ni da se ne bo prikazal na zaslonu vendar, ker smo spremenjeno koda malo. Toda, če ne bomo "Pozdravi" - OK, tako "zdravo", je tu. Ampak, če vzamemo bližje poglej URL sama, bomo videli, da se konča Ime s hello.php? = Elliot. Torej, to je način komuniciranje na naslednjo spletno stran parametri, ki smo jih opravili. Rekli smo name = Elliot. In to je, navsezadnje, kako P nastavite 6 pogledali spremenljivke, ki smo jih opravili v preko obliki. In to je nekaj, kar je značilen za zahtevo GET. Zahteva za get naredi parametre znana v URL spletne strani. In se spomnite, preveč, v P nastavite 6, ki vas moral napisati funkcijo da je ukvarjal z dejstvom, da te poizvedbe niz lahko obstajajo po datoteki. Tam bi se lahko vprašanje znamka sledila ga bistvu poljubno število znakov. In to je točno tisto, kar se dogaja tukaj. In razlog, da si je moral razčleniti, da v vašem izvajanju server.c v P nastavite 6 je tako, da lahko poveš PHP koda, da naštejemo = Elliot. Je potrebno, da bo lahko razčleniti, da iz URL-ja tako da je datoteka PHP v vprašanju ni vedel, kaj je bilo, ki se ukvarjajo z. Zato upajmo, da to daje motivacija za server.c zdaj, ko se selimo na izven C v PHP. Torej, kaj je dejansko osredotočiti na dostopom do Stvari prečkale zahtevo GET zdaj na tej točki. Bom rešil to. Mi ni spremenilo nič. Izgleda, da imamo vnosno polje. Mi smo nastaviti nekaj lastnosti, saj ne moremo storiti HTML. To so preproste stvari. Ne potrebujemo jih. Ampak imamo autocomplete off, ki v bistvu says-- veste, Ko vtipkate stvari v spletu, včasih poskuša zapolniti, da se za vas. Torej, to je lepa stvar. Želimo, da ga izklopite za ta namen. To je bila odločitev CS50. Tako bomo lahko izbrišete, da če smo želeli. Samodejno ostrenje samo palice kazalec v pravi obliki na začetku. Še enkrat, ni preveč pomembna. Ampak name = "ime" - to je malo težavno, ker je to ime in ime. Ampak lahko smo spremenili da je to nekaj drugega. In z dejstvom, da je Kaj bomo storili zdaj. Bomo rekli "osebo", ki je nekaj podobnega imena če je oseba definirana njihova imena. Torej, kaj je blizu tega, ponovno odpre našo spletno stran saj naš strežnik še vedno teče Apache 50, in bomo rekli, zdravo, tukaj je Elliot znova. Zakaj ne? Zdravo. In če gremo tukaj gor, bomo videli potem namesto imena = Elliot, piše oseba = Elliot. In to je neposredna posledica dejstva, da smo pravkar spremenili name = "osebo." Torej, v vhodni element obrazec HTML, polje ime je identifikator za parameter, ki se je mimo. To je tako kot če ste ustvarili funkcijo "dodati", ki je v dveh števil in si rekel int A in int b. To bi bilo imena, in če si je želel še en obrazec, ki lahko storimo samo s kopiranjem in lepljenje, potem bomo imeli ime b. Sedaj bomo imeli dva parametra ki se prenašajo prek dobili na naslednjo website-- naslednjo spletno stran, hello.php. In bomo lahko dejansko videli da še enkrat, če želimo. To je najlažji način za spopadanje s spletna koda v IDE, v bistvu. Zaženete strežnik, da dobim teče, in nato vsakič, ko narediti nekaj sprememb, tako blizu da datoteko samo, da je varna. S pritiskom na gumb za nazaj je malo zapleteno ker bi bilo nalaganje prej različica, ni najbolj posodobljene ena. In potem si samo kliknite vaš Gumb za ponovno pop desno up-- oh, in sedaj obstajata dve vrsti. In tako, če vpišemo eno stvar v vsakem one-- "Jason Hirshhorn," za instance-- smo pozdravit. Mi poglej gor na naših parametrov. Izgleda, da imamo, kot je Pričakuje se, a = Jason in b = Hirshhorn, kar predstavlja dva parametra da smo opravili s to funkcijo. Torej, zdaj, kaj je v resnici priti do izvajanje te funkcije, ki jih imela v P nastavite 6. Torej, zdaj smo šele odmeval zdravo. In to ni zelo koristen. Želimo, da odmeva nekaj spremenljivko ki je bil sprejet na nas. In vemo, ime te spremenljivke. Imamo in smo b. Tako smo lahko odločijo, da odmeva niti enega. Toda, kako lahko dostopate do njega? No, obstajajo določene globalne spremenljivke v PHP. In bom napisal jim v komentarjih tukaj. Dve najpomembnejše so get in post za naše namene zdaj. To so nizi ali, Tehnično, slovarji kjer so naši spremenljivke, ki sva prehod na naslednjo spletno stran živi. In bomo kmalu videli, kako jih uporabljati. Še ena kratka opomba o PHP kodo in nekatere posebnosti it-- v C, da razglasi spremenljivko ali za uporabo spremenljivk, ste prvič imeli, da jih razglasi. In kaj ste morali storiti, ko ste razglasila jim je rekel, int a ali char b. Si moral razglasiti vrste teh spremenljivke, preden jih ustvarili. PHP-- vam ni treba storiti nič od tega. PHP ne zaprosi za tip spremenljivke. In pot, ki vas ustvariti variable-- precej kot pravijo, int, char, string-- ki je res char *, kot smo know-- namesto šel vse da, ker je vse je istega tipa, typeless, lahko smo samo uporabite en znak, ki je znak za dolar. In boste videli, da je že popping gor, malo samodokončanje stvari. In je rekel, da _GET in _POST sta dve možnosti, ki jih imam na voljo meni. Nekatere od teh drugim so druge globalne spremenljivke v PHP da boste uporabljali več potek P nastavite 7. Za zdaj bomo osredotočiti na get in post. Ampak to je koristno stvar, da je IDE ne kjer je nekoč ste vnesli v tem znak za dolar, da bomo začeli izpolnjevanju globalnih spremenljivk ali spremenljivke, ki ste jih že določili. Torej, če boste želeli opredeliti spremenljivka imenuje "niz" si lahko samo nastavite tako enaka "živjo". In to je v bistvu tako enostavno, kot da. In potem lahko storimo nekaj podobnega "echo $ string." IDE treba metanje nekatere Napake, če delam kaj narobe, zato upajmo, da delam vse, kar je prav. Vendar bugs vedno ne pojavijo. Drug rafiniran stvar PHP je, da je niso pripravljeni. Torej s programi C, bi vam dnevna rutina of-- bistvu, vam bi Uredite kodo, ki ste jo shranite, in potem bi bi bilo, če je bil make korak, ki se imenuje prevajalnik, Jek, da bo svojo kodo, to besedilo datoteke, v izvršljiv. PHP je C-všeč, vendar pa je že izvedena na letenje s strani spletnega brskalnika. Torej ni mogoče vedeti. Naj bi vrgel tisti, koristne napake, kajne? To bi bilo všeč, ni prijavil te spremenljivke preden si se potrudil, da ga uporabljate. Si naredil vse to slab stuff-- segfault, segfault, vse to vrsta zabavno-krat ki je prišel z znamko. PHP je dvorezen meč ker ne boste dobili te napake, vendar to tudi pomeni, da ne boste vedeli, Res, kaj je narobe z vašim programom če si jo vodijo in to ne deluje. Vendar bi morala razhroščevalnik poudariti nekateri upajmo koristnih malenkosti skladenjsko da lahko popravim. Torej, zdaj, če gremo čez to-- reči, kaj je zapreti to. Znova odpreti. In smo spet tukaj. Torej imamo spremenljivko in spremenljivi b. In ti ne bo na koncu važno. Mi jim bomo poklical h in g brez posebnega razloga. In smo pozdravit. Zdaj pa izgleda naš niz "hi" je dejansko za tiskanje. Ustvarili smo spremenljivko z imenom "niz", nastavljen je enaka "živjo". Obvestilo, da nismo imeli opraviti malloc ali narediti niz znakov. V PHP, ker spremenljivk so typeless, niz je enak kot za char vse namene. To bi lahko bilo "živjo". To je lahko samo k značaj. To je lahko število 1. In to ne skrbi. PHP ne skrbi tip vašega spremenljivke. Ali pa to ne skrbi. Prav briga ko poskušate in delati stvari, s tem, vendar ne skrbi, v korak deklaracija. In tako kot si lahko v C, lahko razglasi strune na sklad, kot je ta čeprav pravijo, "kup", je malo bit potencialnega napačno ime kadar govorimo o PHP. Ampak mi ne bo treba skrbeti za to. Tako smo dobili našo niz "hi", in mi echo niz. Torej, zdaj smo razpravljali spremenljivk. Torej sedaj moramo govoriti o get in post in opraviti končni stvar, ki je potrebno, da bo res dobil to nazaj gor k funkcionalnosti P nastavite 6. Torej, zdaj smo odmeval niz, vendar smo imajo te spremenljivke dobiti in po njem. In ker smo s pomočjo metoda dobili pa Zdi se logično, da je naša spremenljivka, ki smo zainteresirani, tako a in b, se bo nahajal v matriki ali slovar, tehnično dobili. Torej, če smo postavili dobili takole s svojim groups-- Pritisnil sem vstopiti in to it-- ni všeč ampak tukaj smo dobili. In tako dobili že obstaja. Tako bomo lahko že začnete z dostopom nekaj elementov dobil. Če ne bomo dobili, to sintakso za nizi v PHP je zelo C podobno. Imamo dve oglatih oklepajih. Torej, če rečemo, priti v normalno matrika, smo lahko dostopate indeks Ničti, prvi indeks. PHP je nič kazalo. Lahko bi rekli nič, ena, dvo stvari, kot je ta. In sem rekel, da bi dobili je tehnično slovar. Torej, kaj PHP počne pod pokrovom, ki je malo lepše od C, je že daje vam nekaj slovar funkcionalnost, ki je res hash tabele, ali poskuša, menda. Ali pa, tehnično jo je lahko poskušali tudi. Vendar PHP je izvajanje razpršene tabele, ki tvori učinkovito slovar. In tako vemo ime naše spremenljivke, kajne? To pa je opravil v poizvedba niz PHP. Imamo = H in B = g, kje in b so imena spremenljivk. Torej način, da bomo lahko dostop do Vrednost, ki se ujema s ključem v našem slovarju, je samo z besedami _GET_GET ["a"]. Torej, zdaj imamo _GET ["a"]. In če smo samo zamenjati znotraj naša echo, če bomo echo _GET_GET ["a"] - in bomo videli, če razhroščevalnik meče vse napake glede this-- bomo prihranili da in zapreti to. Jo odprli. Tako da smo samo delaš pravico Zdaj, da b ne bi pomembno. "njo" in "njega" - "hum." "njo" in "hum." Sliši se dobro. In to izpisal "ji", ki je noro. Ampak to je točno tisto, se je dogajalo v P nastavite 6. V bistvu, kaj P nastavite 6 je doing-- echo zdravo, name-- kjer je imela Ime spremenljivke in to šele prosi, da tip v tem nekaj besedila. Obstajala je tudi nekaj dodatna številka, kjer vključen, če izjave, ki jih lahko storite zdaj. Lahko rečemo, če obstaja, ki je funkcionalnost v PHP, _GET Z podčrtaj, "ime" - ki je v bistvu rekel, "če je bilo ime izpolnjen", ker smo lahko samo kliknili na gumb da predloži obrazec brez karkoli vpisali v tem področju. In smo zaviti, da je v naši Prijazno zaviti oklepaji. Imamo lahko stavka drugega. In to je vse v PHP kotom nosilec, vprašaj, kot nosilec, če hočete. In zdaj bomo videli, če to deluje. Držim čakajo na to, da debug in sranje od mene, v bistvu, vendar to še ni. Mogoče se bo zdaj ker sem govoril o tem. Ja. To je storil, v resnici. Torej, nič ne kaže navzgor. To je zato, ker nečesa napačnega da sem napisal v PHP kodo. In omenil sem razhroščevanje je zapleteno, ker v PHP, smo ga ni predhodno pripravijo in prevajalnik ni bilo všeč, tukaj je, kjer so vaše napake. Toda kaj lahko storimo is-- ljudje spomnite kako gledati na drugo omrežje zahteva, da PHP-- ali da spletne strani poslali? [? Malin?] To storili v predavanje enkrat ali dvakrat. Se spomniš, kam gremo, da bi našli različni dolgovi in ​​200 OKS, vse te kode, ki se pošiljajo preko HTTP od spletne strani na spletni strani? Ali kdo ne pozabite kam gremo, da to storim? OBČINSTVO: Page Source. SAM LEVATICH: vir Page. Točno tako. Če greste na stran Source-- popoln. Torej Page Source potegne navzgor inšpektorja. In jaz sem z uporabo Safari. Veliko vas bo verjetno lahko uporabljate Chrome ali Firefox. Ampak tako dolgo, kot ste v vsaki sodobni browser-- in vas prosimo, da sledite skupaj, če hočeš. Lahko vnesete to kodo ali samo poglej znotraj P set 6 imenik za kakšno podobno stvari. hello.php je tisto, kar smo Trenutno delajo na posnemanju. Torej obstajajo različne zavihke. Mi lahko ogledate na vseh virov. Vidimo lahko izvorno kodo. Torej izgleda, da ni dobili mimo telo na koncu. Napako je najti v PHP in njej ustavil nalaganju celotno spletno stran. Nimamo še konec tag za HTML ali karkoli. In če se ozremo na omrežje, smo lahko videli, da smo se pošlje zahtevek. To je domena. To je naslov. To je dokument. Mi smo z metodo get. In to je rdeča. Ali pa je bila rdeča, ko sem ni ga izberete. Kako ga unselect? No, bilo je rdeče. Dovolite mi, da osvežite. Tukaj je. Zdaj je rdeča. Torej, to je rdeče, kar pomeni, to ni uspelo, kar je slabo. Torej, si oglejmo, zakaj je propadel. Torej vse, da Page Source lahko v bistvu povedal, da je tvoja stvar ni delo, ki smo ga že lahko videli. Torej v najboljšem primeru pa bi biti bolj uporabno orodje. In tam so nekateri razširitve brskalnika ki vam omogočajo, da debug PHP, vendar ne bomo do pisanje tono PHP, tako da je verjetno samo najboljše odmisliti kodo previdno in samo poskrbite, da to ne počne nič drugega. Torej, da vidimo, če je format tega če izjava je, kje je problem. Želim naložiti, da tu gor nazaj. Pozdravljeni, hi. Torej je problem tam. Torej za pravilno sintakso PHP, PHP se dogaja biti-C, kot s tem, da boste videli zanke. Če izjavah boste videli. Videli boste vse te prijatelje da ste postali seznanjeni s tekom tega CS50 semestra. Vendar je najboljši način, da ugotovimo, kako storiti nekaj v PHP je, da ga vprašaš ali pa, da pogled na nekaj primerov PHP kodo saj veš funkcionalnosti. Veš, kaj lahko delati s programom. Lahko zanka. Lahko zanko tolikokrat, kot želite. Lahko zanka v vseh vrste različnih načinov. Lahko ustvarite funkcij. Ustvarite lahko funkcije, ki poklicati druge funkcije, funkcije ki se imenujejo. In imate imena za te koncepte. Imaš rekurzijo, zank, če pa se drugi tokovi nadzora. In tako Google je tvoj najboljši prijatelj. Celo rekli, "PHP če izjava "in tam bom bo ton mest s odgovori na druge ljudi ki ste imeli podobnih vprašanj za vas, ki so šele začenjajo z PHP in so radovedni skladnje stvar. Ker imamo razkošje bivanja lahko pogled na kodo v P set 6, smo ga dejansko potegnite navzgor in videli, da OK, tukaj je nekaj zanimivega. Torej, to je tisto, kar je pravzaprav izgledala v P nastavite 6. Torej, če gremo skozi to, lahko vidimo, da smo jih dobil več od teh malo -PHP kot bitov vprašaj. In tam niso zaviti oklepaji. Obstajajo dvopičja. In tam so kodrasti naramnice v PHP, vendar je to je oblika in način delovanja PHP, ki dobro deluje s HTML saj, kot boste videli, bomo zaprli off teh PHP bits-- elses in jev in vsi that-- in nato smo interspersing HTML znotraj njih medtem ko še vedno sledi nadzor pretoka določena s PHP. Tako da sem le, da bo Hiter sprehod skozi to ker je veliko enako koncepti, ki smo počeli prej. Imava če ni prazna, oklepaje, _GET_GET ["ime"]. To je vse isto stvar. Mi smo s pomočjo _GET slovar, ki PHP pošlje na zahtevo oblik, ker je parametri dejanje, in ta metoda znebiti. In potem, da se konča to. Debelo črevo je označevalec, da samo to storiti če, če izjava ovrednoten kot resničen. To je kot kodrasto opornico. In v resnici, je kodrasti brace v drugih jezikih, kot so Python, ki lahko naletite, če ste le to, da za svoj končni projekt. In potem je ta linija, zdravo. Potem imamo to čudno stvar. Imamo več konzol. Ni HTTP there-- ali PHP, žal. Ampak tam je enačaj. In potem imamo funkcijo, htmlspecialchars (_GEThtmlspecialchars (_GET ["ime"]). To je nekako tako kot bolj napredna različica odmev. Tako kot smo odmeva kot način natisniti stvari v PHP. To je funkcija, ki je opredeljena v PHP, ki se bo spopadel z nekaterimi bolj grdo znaki in bajt vrednosti da bi lahko to prenese. To je vedno najvarnejša treba uporabljati. Ampak echo bo to delo čisto v redu, če ne bomo ki se ukvarjajo s čimerkoli preveč grdo. In tako ima to isto Učinek bistvu te stvari med vprašanjem Ocene se ovrednoti s PHP. htmlspecialchars vrne lepo HTML tiskani vrednost _GET_GET ["name"], t.j. karkoli bomo vnesli v obrazec. In potem bo to pozdravi, vejica prostor, nato pa, da je. To je stvar med kotni nosilci bodo nadomestili karkoli htmlspecialchars postavlja ven. Tako da je v bistvu podoben s tem, kar delamo. In imamo izjavo drugega, ki je Zdravo svet, ki ima smisel. Torej sedaj se vrnimo k naši kodo in videli exactly-- oh. Omenjeni I obstaja, ki ni stvar, ki smo želeli storiti. Smo želeli povedati, ni prazna. In tako bi to moralo delati malo malo bolje, ni prazna _GET_GET ["ime"]. In da kodrasti brace ujema kodrasti oklepaja. Imamo naše zavitimi oklepaji tukaj. echo zdravo _GET ["ime"]. Poglejmo, če to deluje malo bolje. Mi smo še vedno teče našo strežnik. Hello Jason. Hello Jason. In je delal ta čas. In da je to dokaz, da lahko zares uporabite zavitih oklepajih, ki jih poznajo in ljubezen v PHP kodo v HTML. PHP koda zagotovljena ste v pset 6-- pset 6-- zagotavlja drug način počne to isto stvar. Torej, zdaj imamo moč. Imamo funkcionalnost za izvajanje PHP kodo, ki smo videli v pset 6 sami, v bistvu. Preden sem korak naprej, kaj so nekateri od Vprašanja, ki ste jih v tem trenutku? Da [neslišno]. OBČINSTVO: Torej, v različici, ki pset6, ko jo zaženete, tam je prostor. In vidim, kje je prostor vejico. [Neslišno] start odprta nosilec. Kako ste vključiti prostor, v tako, kot si napisal svoje kode? SPEAKER: To je dobro vprašanje. In tako da je to ugotovil. Tako, da je res dobro vprašanje in tisti, ki mi ni zdelo. Ampak dajmo skupaj. Torej, najprej, kaj Delam z echo je, ko smo pravkar odmeva Pozdravljeni, realizacij zdravo. Če bomo echo zdaj to dobite na ločen linija, si oglejmo, kaj se dogaja. Tako smo kliknite to. Hranimo rekel, hi Jason. Torej še enkrat, nimamo tega prostora. In da je zato, ker v PHP, ko smo odmeva, ne glede na to, koliko spaces-- nope, ne V- ne glede na to, koliko mest smo se v here-- če smo zdaj naložili, da spet gor, hi Jason. Ja, vidiš, vsi tisti, prostori požrta up. In to je nekaj, kar odmev funkcija počne. Torej, da skrbijo za ta prostor, in to je eden od razlogov zakaj jih ne uporabljate odmev in uporabljate htmlspecialchars namesto. Sem radoveden, kaj bi se zgodilo, če bomo to storili kjer smo zaprti prostor v nizu. Jaz sem iskreno ne vem, kaj se bo zgodilo, ko sem to naredil. Torej, to je eden od načinov. To je eden od načinov, da poskrbimo za to. Če ste zaviti prostor v niz, nato prostor bo izhod lepo ga odmev. Najvarnejši stvar je, storiti htmlspecialchars. To je vedno varna stava. Zdaj pa imamo tako opraviti je z echo, če je potrebno. In na podoben način lahko echo novih progah, vse vrste stvari ste seznanjeni delaš v PHP. Kdorkoli drug, kaj so vse bolj vprašanja, ki jih imajo drugi ljudje v tem trenutku približno PHP? Če ljudje prišel malo pozno, Jaz sem vesel, da ostanejo po malo in govori o nekaterih začetku. In to je tudi vse livestreamed, in arhivirajo, ki je noro. Kakorkoli že, tako da zdaj naredimo nekaj bolj napredne stvari s PHP. In ena od prvih stvari, ki jih so bili uvedeni, da je bila pri C zank. In PHP ima močnejši za zanka se imenuje foreach zanke. In izgleda, da this-- za vsako prazno kot prazne, zavitih oklepajih, narediti stvar. Torej, to je v bistvu okrajšava. Vidite, za zanko kot sintaktične konstrukcije je bil zasnovan v C in pri montaži jezik in stvari všeč. Oblikovala v C, natančneje, kot okrajšavo za veliko vrst zank da bi ljudje videli. Kot takrat, ko si napisal zanko, obstaja je pogosto inicializacija korak izvrši takoj na začetku, a stanje, ko bi se zanka stop-- in da je funkcija da je samo v while zanki, ali da ima, medtem ko natanko samo, da feature-- in nato naraščanje v korak konec. In tako boš pogosto znajdete pisanje kode, kot spodaj. Jaz grem izbrisati nekaj tega. Ampak, če smo ponavljanjem skozi znaki v array, na primer, kot smo jih dobil niz znakov. Žal mi je, da bi nazaj C. I know, ste mislili storiti. Ampak to je samo za namen za učenje PHP, obljubim. Torej, če imaš char str dolžine 8, in ne dovolimo, pravijo, da pravi Hellooo z odtočnem null. Super, tako da je naš niz. In potem smo imeli za zanke. Imamo int i enak 0. In želimo, da zapustite ko STR od i enaka ni enaka NULL, ker smo izhod, ko je enaka nič. In potem mi i ++ na vsaki točka v zanko. Narediti nekaj s str dne i. Tako da je osnovna formula je bila, smo imeli to vrsto, da smo želel obravnavati kot ločene elemente. Ampak tisto, kar smo morali storiti, je, da smo imeli na v bistvu ustvariti ločen celo spremenljivko, ki je štetje gor vsak Tokrat smo šli skozi zanko. In potem bi morali potem klic strstr [i], ko tisto, kar smo res želeli storiti se pojdi značaja ga značaja, kajne? Nočemo, da prirastek celo število in nato uporabite, da celo dostop vsak znak posebej. Res želimo znak za znakom. In tako za vsako pametno izračuna, da je za nami. Če imamo matriko, ki bomo lahko v PHP razglasi kot just-- če imamo spremenljivko imenovan, recimo ji niz. Čudeži brez tipkanja, je tako kot vsako drugo spremenljivko. To je samo polje. In imamo malo všeč 1 [neslišno] 2, 3, le nekako inicializiranem matrike. To je v redu, da ne mara moje foreach. Toda, če ne bomo foreach-- dejansko Sem tipkal, da malo narobe. Obstajata dva načina, da to foreach zanke. Tam je v sintakso in kot sintakso. In bomo storili v sintakse prvič, ni tako. To je moja napaka. Torej foreach num v array, echo num. In PHP kričiš me iz neznanega razloga. To je ugotovitev nepričakovan leta v nekaj, ki je malo moti. Ampak bomo razbrati Zato, da je v trenutku. Torej ni všeč. Poskusimo z uporabo kot. To raje kot skladnja zdi. Torej, kaj je storiti foreach paleto, kot num. Torej, malo razlaga o tem, kaj se je zgodilo je kot skladnja je dobro saying-- prvič, oglejmo, kaj to natisne. Tako smo odprli našo IDE. Gremo tukaj. Pravimo, Hello Jason. In je to storil 123, ki je bila vsebina matrike, ki smo ga ustvarili do vrha. Torej, potapljanje v tem foreach zanke, imamo spremenljivo imenovano zaporedje ki je niz treh številk. In potem delamo foreach matrika kot num, echo num. In da je bolj intuitivno kot za lop. Mi praviš, zdravljenje vsako stvari v matriki kot num, Želim si, da mi tel. In to je točno to, kar počne. PHP je izračun, ki ko rečeš foreach niz, in imate opravka s paleto, kar boste želeli ponoviti čez je liki v tej matriki, Je Ints v tem polju, se elementi v tem polju. In to je kar vam omogoča shranjevanje te spremenljivke so num, in potem samo izhod num Takoj namesto rekel, Imam spremenljivko i, in potem hočem izhodni strstr [i]. In tako, da nam omogoča narediti kul stvari. Tako kot v bistvu nimamo za ustvarjanje te spremenljivke, kot so i je in storila vse, to naraščanje v stvari na koncu. PHP skrbi za vse to za vas. Torej, zdaj kaj je govoril o foreach kot to velja tudi za naše _GET slovarju. Torej bomo to zakomentirajte hitro. Torej imamo _GET paleto. Imamo te spremenljivke. In to je dobil nekaj stvari v njem. Zdaj imamo samo eno spremenljivko prevalili na to, kar je ime. Ampak, če bomo pritisnite tipko Enter, zdaj lahko imamo dve spremenljivki. Imamo lahko ime in starost, na primer, če želimo, da bi dobili starosti in tudi ime osebe, Ljevkasto dovolj. Torej, zdaj _GET se dogaja, da se slovar z dvema elementoma, z dvema ključnima parov vrednosti. In prvi key-- grem napisati tole gor na krovu preveč. Mi imamo Slovar je _GET. Žal mi je, da je je malo težko videti. Vendar znotraj našem slovarju imamo ime, ki se bo nekaj da smo dati. In bomo imeli starost, ki je prav tako bo nekaj, kar bomo dano. In to je celota našega slovarja. Torej, to je dobil dva elementa v njem. In zato, ker foreach zanke so pametni, smo Morda mislite, in pravilno Morda mislite, da foreach lahko Ponovil skozi to slovar, tiskanje vrednosti, ki jo ime in starost. Torej, kaj je v resnici prav to. Dajmo zgraditi foreach zanke. In bomo narediti za _GET kot. In bomo storiti naslednje. Torej, da vidimo, kaj se zgodi, če vpišemo samo beseda, potem pa pravijo echo besedo. Mi smo se tudi dogaja, da odmeva novo linijo samo, da bi bilo malo bolj jasno, kaj se dogaja. Torej, poglejmo. To mi je ne daje nobenih napak. In bomo to zaprlo. Na naši spletni strani, boste, da se delaš veliko, da tekom pset7. Tako rečemo, moje ime je Sam. Moja starost je 45. Ni. Ampak to natisne, kot je bilo pričakovano, Sam 45. In tako boste opazili, da kaj foreach zanke did-- tukaj, pojdimo nazaj, da tako da je do na board-- pridemo _GET kot besede. In tam so štiri stvari v _GET. Ampak to samo natisne dve stvari. foreach, pri čemer je njegovo inteligenco sebe, Predpostavlja se, da tisto, kar smo res želeli je vrednosti, ne pa ključi. Vendar pa je tako, da lahko tiskamo od ključev, kot tudi, če smo želeli. Če smo želeli izvedeti tudi, kaj Te spremenljivke so bili imenovani, tam je pot, ki smo lahko dostopate tudi to. In način, da se nekako ne da, tako da lahko rečemo, omogoča zares je razdeljen na ključnih parov vrednosti. Torej, da vidimo, kaj se bo zdaj zgodilo. Torej imamo ključ. Imamo vrednost. Imamo še eno novo linija za berljivost. In da vidimo, kaj se zgodi ko to počnemo sedaj. Ne vem, koliko je star Jason je. Jason je 15. Torej imamo ime Jason, starost 15. Tako da smo bili sposobni za dostop do ključa in parov vrednost tega slovarju samo z besedami, kot ključne točke na vrednost. In to je foreach skladenjska malo sladkorja, ki omogoča vam omogoča dostop do stvari v slovarju. Zato upajmo, da to nekako poudarja moč foreach zanke. Lahko precej met karkoli da iterable zdi, kot karkoli, ki ima več elemente, kot so matrike, Tako kot dictionary-- tiste, sta dva osnovne stvari, boste delali z tako v življenju in v pset 7. Tako da lahko vrgel te stvari na njej, in da bo ugotoviti, kaj želite storiti z njim. To bom rekel, OK, grem, da bi dobili te stvari iz podatkov, ki jih je bil sprejet z mano. In to je nekaj, kar ste dogaja, da se z veliko od pset 7. Bom hitro pomikanje dol samo da vidim, kje sem na. Ali imajo ljudje vprašanj na tem mestu? Vprašanja sploh? Ja? OBČINSTVO: Torej, s ključem in vrednosti, lahko bi to ime kaj drugega in bi to še vedno deluje? SPEAKER: Ups. Wow, sem popolnoma izbrisal celotno linijo. Veliko delo. Torej, a. Key in vrednost je le dogovor. To je koristno. Ti bi dobili nekaj zasnovo točke, morda nekaj slog točk za to, da je zato, ker je res izraža namero. Vendar smo rekli in yarp. OBČINSTVO: Nimate za ničesar spremeniti v datoteki HTML da bi odražala to? SPEAKER: Sploh ne. OBČINSTVO: In to samo ve, da ker ne doseže večjo than-- SPEAKER: Da. OBČINSTVO: --that kazalnik, ki that's-- SPEAKER: Da. To je foreach sintakso, ampak ja. OBČINSTVO: Ni vrste. Pa kaj, če si hotel starost, da je le nekaj? Ali obstaja način za to? SPEAKER: Obstajajo načini, da preverite, če spremenljivke v skladu z nekaterimi vrstami. Torej PHP zahteva malo več od ste, ker ni vrste v. Nekaj ​​načinov, da vpraša manj. V nekaterih pogledih se sprašuje več. Ker če imaš samo nekaj v spremenljivko, nimate pojma, kakšne vrste je. Ampak, če ste pametni o spremenljivkah da dodelite vrstami in se prepričajte, da vam deluje le return-- želim funkcij v samo vračanje en tip vrednosti tako da lahko v bistvu Pričakujem, da spremenljivka dobiš nazaj iz funkcije bodo tipa da misliš, da bo, v bistvu. Vendar pa obstajajo nekatere metode s katerim lahko preverite. Jaz jih ne spomnim off vrhu moje glave. Čakam, da obarva modro. isint? isstr? Obstajajo metode zgrajena v PHP, ki lahko preverite vrsto spremenljivk za vas. Ampak, če ga dodelite spremenljivke pametno, da ne bi smeli morali storiti, da preveč v pset 7. Vendar te metode ne obstajajo. In to je nekaj, kar je v jeziku samem. In jaz se ne spomnim natančno sintakso. Lahko bi celo poglej gor. Ampak čas je ključnega pomena. ima še kdo Za vsa dodatna vprašanja? Da. OBČINSTVO: Imam samo eno več. Torej ste omenili metodo GET, vendar nisi omenil metodo POST. Smo se vračali na to? SPEAKER: Ja, bomo se vrnemo na to. To je točno to, kar sem iskal na moj telefon, ki je zdaj zaspala, ampak ga bom našel. Samo pazite, smo zadeli vse PHP not. Ja, ni debugging version. Ja, imamo še nekaj stvari, ki jih želimo narediti zdaj na tej točki. Torej, govorimo o POST, ki ste jo omenili, edina razlika med GET in POST je da se spomniš, ko sva pogledala na tem URL in videli smo, oh, Ime je enaka in starost je enaka yarp prav v URL tam za nas. POST je malo bolj skrivnosten s prenosu podatkov. Torej, če niste želeli uporabnika vedeti, za primer, ni želel uporabniško ime in geslo osebe Trenutno prijavljeni se prikaže v URL, ki je razumna stvar da ne želijo v URL, ker je nekdo lahko videli. Če se povežete nekoga na strani Ne želim njihov URL tam ometane, saj bi to omogočilo ljudem, da prijavo samo z lepljenjem URL-ja namesto dejansko izpolnite obrazec. POST je malo bolj skrivnosten. In edini stvari, ki bomo morali spremeniti so ta metoda, sprememba od dobili bi objavili. In nato znotraj HTTP, namesto dostopanja matrično _GET, bomo dostop matrično _POST. In bomo opazili, da se, če je smo odprli to spet nazaj, Jason počasi upada v starosti. ime Jason, starost 14. Ista stvar izskoči. Ampak gremo na URL in te spremenljivke niso tam. In način, POST passes-- zato ne pozabite, kako gledati na vir strani. Gremo na omrežje. Mi osvežiti. In to je še ena stvar, ki POST vam bo dala opozorila o. Morda ste opazili polje, besedilno polje, kot je ta v vašem brskalniku. Ali ste prepričani, da želite spet poslala obrazec? POST je, kaj se pošilja te oblike. Ker v bistvu, če ste poslali vaš podatke o kreditni kartici, da nekdo, da se ne bo pojavil v URL. To se dogaja, da je zahteva za POST. Torej, ko si osvežite stran, to je ponovno poslati to prošnjo naknadno. Torej, zdaj smo pa želeli poslati tvorijo še enkrat, ker je ne bo ustvariti nobenih podvojenih nakupe. In bomo opazili, da tukaj, metodo smo uporabljate, POST. In to je dejansko prenos bajtov. Prenese 401 od njih. Program je precej majhen. Ampak tam je nikjer, da lahko vidimo, vrednote, ki se prenašajo. Na spletnih straneh se lahko sami vidite, vendar smo kot uporabniki niso mogli videti, če ste heker. Če si dober hacker, si lahko ogledate. Če veste, da je osnovni Oblika HTML, Vrednosti bo javijo na straneh. Boste lahko videli. Vrednosti bodo tam, oni samo malo manj očitno za vas dostop, v bistvu. Ali imamo več Vprašanja o GET, POST before-- kaj bomo storili Naslednja je pravzaprav pogled na nekatere kode da ste kar v pset 7, govorimo o kako se uporablja nekatere od teh konceptov, in govoriti o stvari, ki jih boste morali narediti malo v pset 7. Vsa več vprašanj pred tem? Več vprašanj, ki jih fantje imajo? Great. V redu, si oglejmo malo na pset 7, ni dvoma, kaj ste vsi najbolj veseli. Mislim, da je to nekaj, kar David gre skozi malo. Bom vendar imamo tri imenike na top, kakor tudi datoteka konfiguracijo. To je za podatkovne baze, kar bomo govoriti v približno petih minutah. Vključuje, vam nikoli ni treba pogledati v ta imenik Če ne želite, vendar je lepo, da veš, da so vse vrste pomočniki. Pomočniki je kot koristne funkcije. In potem imamo zaupnik, ki določa nekaj stvari gor. Obstajajo nekatere funkcije, ki jih ima CS50 zapisano, da so v pomočnika in zaupnik. In nekaj PHP, ki že izstopi v datotekah bo naredil veliko bolj vrste od topi dela noge za vas. Like, če gremo v javnosti login.php, ki je kaj pokaže prav, ko greste v pset 7. Bomo videli, da obstaja to zahtevalo izjavo. In to nekako kot oster vključujejo hashtag vključujejo, če ste za novejšo generacijo. Ampak to v bistvu pravi, da moram dostop do vseh funkcij v config.php. In lahko imate zahtevajo za vse vrste drugih stvari. config dejansko potrebuje pomočnike. Torej, ko boste potrebovali config, ste tudi vključno ali zahteva pomočnike, kot dobro. Tako da omogoča dostop do vseh kul funkcije, ki jih bomo uporabili, Stvari všeč render. Jaz sem pravzaprav dogaja, da olajša to dol malo. Tako funkcijo, potem smo bom sprehod skozi tik preden gremo na SQL malo bit je funkcija login.php, samo saj uporablja nekatere teme da smo pravkar govorili v PHP. Vidiš, prva stvar je, če $ _SERVER. To je še ena globalna spremenljivka, boš se ukvarjajo z. To je kot _GET in _POST, ampak kaj Strežnik vsebuje je lahko to pustil vem, če je metoda zahteva je GET ali POST. Tako kot prej, kar smo počeli je samo v našem kodo, ki smo pisali, smo samo spremenili, da je GET in POST je odvisno od tega, kaj je HTML. Vendar pa obstajajo tudi strani, ki jih je mogoče dostopate z obema vrstama zahtev. In boste morda želeli narediti različne stvari, odvisno na vrsto zahteve, tako kot prijava počne. Torej, lahko preverite to zahtevo Metoda skozi dostop do ključev, s pomočjo ključa in pridobivanje vrednost nečesa v slovarju _SERVER. Torej, to je druga svetovna spremenljivka kot _GET in _POST. Če je to GET, želimo render obrazec za prijavo. Render je funkcija, ki v bistvu samo postavlja ustrezno HTML in prehaja nekatere parametre. Ta naslov je parameter, ki je uporablja pri prikazovanju, Nenavadno, naslov strani v Vprašanje je stvar tu, povedati ali pozdravite v našem prejšnjem primeru. Zdaj imamo drugačno stvar. Else, če je delovno mesto, smo še nekaj drugih stvari. Mi smo z uporabo te prazne metodo. To ne obstaja, da je prazna. In smo videli prej, PHP ima pošteno količino zgrajena metod, da David will-- če obstaja so metode, ki so koristne za vas, bodo opozorjeni, da vas na sprehod skozi ta Davidov daje na začetku pregleda, in tudi koristnih bitov Zamyla je. Ona je nazaj vsakdo. Vsi smo se lahko veselili. Opravičujem se je posrečeno poimenovali funkcija da samo v bistvu natisne nekatera sporočila o napakah, ker CS50 je zelo vljuden. In sedaj ta, da gre za zapleteno bit, ker ta je, če smo poizvedovanju baze podatkov. Zdaj nismo govorili o zbirkah podatkov. In bomo v naslednjem pet minut ali tako, največja. Toda to je funkcija da CS50 je napisal dobiti mizo v bistvu iz baze podatkov da delamo z v pset 7. Sem res slabo z mojim nič indeksiranje danes. Ampak ja, je 7. Tako poizvedovanje se dogaja, da se vrneta matrika, v bistvu je ključ bit. In ker te stvari nimajo tipkanje, zato vrstic je niz polj. Ker, ko razmišljamo o miza, kaj bomo storili je, kot ste se naučili v psets kot igra 15, nekako kjer boste imeli, da uporabite dvojna tabela, smo v bistvu imajo vrsto drugih nizi naredi tabelo. In imaš stolpce in vrstice. In potem se lahko do njih dostopate kot [0] [1], dobiš [0] [1]. Osnovne stvari, kot je ta. Torej, kaj delamo tukaj v tej funkciji, smo prosi baze podatkov če uporabnik, ki je poskuša prijavo, bo to poslana z metodo POST. Bomo videli, smo dobili uporabniško ime iz _POST. Ki so jih poslali bomo, uporabnika ali pa bodo poslali vrednost prek obrazca prek POST ker to je uporabniško ime in geslo stvari. Preverjamo uporabniško ime videti, je to v tabeli? Ker če ga uporabnik prijavi , potem pa njihovo ime morajo biti shranjeni v tabeli Uporabniki, ki obstajajo za to spletno stran. Torej v bistvu če Uporabnik je v podatkovni bazi, izraz se bo vrnil da je vrsta, ki je niz. Toda rafiniran del je, da če četudi dvojna array je samo iz ene vrste, tudi če je ena vrstica array-- kot imaš basically-- če imaš velikost enim nizom da je gospodarstvo še en niz, ste res ukvarjajo z eno kolono. Ampak to je še vedno zdravijo kot dvojni matriki. In to je, če se lahko včasih težavno, saj imamo vrstice tukaj. Naš spremenljivka je vrstice. In potem smo ustvariti nova spremenljivka imenuje vrstica in določanja enaka prva vrsta vrstic. In boste opazili, da je komentar pravi, da je prva in edina vrsta. Torej je to težavno del, kjer sedaj deluje Lahko se vrnete nizi zelo enostavno. Tam ni mallocs. Ne boste videli mallocs. Tako ne boste videli SEG napake. Vendar bo funkcije še vedno poteka okoli nizi in podatkov v skupinah. In moraš biti pozorna, kaj točno bodo vaši funkcije vrnejo. In tudi če je ena stolpec, kot je ta, se pozanima se še vedno dogaja, da se vrnete dvojni niz. Torej, da dostopa, ki column-- ali ste lahko zamislite vse to, kot je obrnjen saj govorimo o vrstah. Ampak za dostop do tega eno vrstico, ne moreš kar reči vrstice. Čeprav je ena vrstica, morate ne rowsrows [0], da bi nekako odpravila to Zunanja bit niz in ima samo svojo vrstico. Še nekaj drugih stvari. Tam je funkcija imenuje password_verify da preveri geslo, ki je bil objavljen. In potem bomo videli drugo svetovno spremenljivka tukaj, _SESSION. Seja v bistvu id je, kako spremljate to, če nekdo, ki je prijavljen ali ne. Torej, zdaj s login.php, smo prijavo uporabnika v. Torej, kaj želimo storiti, je, da smo želeli pravijo id seje enaka zapored id, ki je le smiselno, ker je vsaka vrsta bo imela drugačno id število kot del tabele. Bomo dobili v SQL je z po drugi strani, tako da, če nič od tega Zdi se malo, kot bla, potem vse bo zjasnilo. Ampak bomo nastavili id ​​enak pravilna stvar, prijavo uporabnika v. Opravičujem se, če gre kaj narobe. In to je prijave namen v življenje kot profesor Malan bi rekel. Tako da je bil login.php. In veliko PHP kodo pišete v pset 7, boste morali biti malo. Ne pozabite, da chmod na ustreznih dovoljenj. Tam bo malo o da je v začetku spec. Ampak PHP, ki ste pisanje se bo počne stvari, ki je podoben temu. Ti boš, da bo dostop do nekaterih stvari, ki so dana za vas v globalne spremenljivke PHP, ki se ukvarjajo s sedanjim prijavljeni uporabnik, ali obstaja so prošnje poslane s tem Stran, različne stvari, kot je ta. In to bo tudi potencialno ponavljanjem skozi vrsticah to stvar. V drugi funkciji, poizvedbo ne vrne ta dvojni niz. In če obstaja več kot ene vrstice v njem, če obstaja are-- ja, če obstaja več kot eno vrstic v njej, potem bo miza. In boste morda želeli Ponovil po vrsticah matrike, ki uporabljajo foreach zanke, ki smo opisali. Torej, če vam foreach na dvojni matrika, kaj bo word-- tukaj, Bom dejansko pisati. Bom napisati hitro tukaj. Če bomo imeli foreach vrstic kot vrsti, kaj je tip vrstice? Ali kdo ve? Si razumel? Torej vrstic je dvojna tabela. Torej, kaj je foreach gre sklepati, da želimo iz te dvojne matrike če smo ponavljanjem nad njo? Mi v bistvu lahko domnevamo, da to se dogaja, da se bodisi elementi, ali vrstice ali stolpce, v bistvu. In tako vrstice in stolpce smo mogoče obravnavati kot isto stvar. V bistvu, kaj foreach zanke se dogaja storiti, je, da se dogaja, da se vrnete vrstice. vrstica se bo tipa zapored ker vrstic je dvojna tabela. Torej, če daš foreach dvojni niz, to je ne bo Ponovil globoka več kot ena raven. Ki je v bistvu pravi, če obstaja osem celice v tem table-- 1,2, 3 4, 5, 6, 7, 8-- foreach zanke ni šli skozi vsako od teh celic. Kaj foreach zanke bo naredil je bo šel skozi te vrstice, vam to celotno vrstico. In potem bomo šli skozi te vrstice. Tako da se ponovi samo eno raven globoko. Če dodate ugnezdena foreach zanke, potem si lahko obravnava vsako vrstico vrnil iz vrstice, vam foreach vrstico kot elementa, recimo. In potem si lahko echo element. Tako, da je kratek Malo za osvežitev na to, kako vas bo morda s pomočjo foreach zank v okviru poizvedbe. Ali obstaja kakršna koli vprašanja o PHP? Sploh kaj, preden smo premaknete na govorimo o SQL in zabavno zbirko podatkov? Počutiti se dobro? Počutiti se dobro. V redu. Pojdimo nazaj k PowerPoint, ki jo verjetno izpustili. SQL, yay. Ljudje, ki so v mojem oddelku tipično bodo vedeli, da podštevilke kratic so vedno samo prve besede Mislim, da te tekme, ki algorithm-- to kratico. To ni algoritem. Torej SQL je baza podatkov. To je jezik, ki dela z bazami podatkov. In vse baze podatkov, so se mize, vsaj na način, da SQL jih zastopa. Drug način, da razmišljajo o zbirkah zbirke so nabor tipk in vrednot v bistvu. Lahko pomislite bazo kot Slovar in tudi kot mizo. V bistvu je to način, da se povežete različnih podatkov z drugimi podatki, pogosto po vrsticah in stolpcih. In to je način, da je SQL deluje najbolje. Torej, to je en primer mizo. Imam nekaj primerov ljudje v mojem oddelku, ki Nisem imel časa za spremembo. Ampak imamo stvari, kot so ID, ime, velesila, in rojstni kraj. Ne vem, kje kdo je od v mojem oddelku, tako da sem šele tekoč, da prevzame vsakdo je iz New Yorka Mesto, ker imam visoko statistično verjetnost, da je pravilna. SQL bo samodejno sprejme skrbi za ID stolpec za vas. Če vstavite novo vrstico v bazo podatkov SQL, bo prirastek, ki ID številka in samo v bistvu držijo kot pet imen, velesila, hometown, kdor na koncu te tabele. Torej ID je stolpec boste nikoli ni treba skrbeti. Vendar, kot v primeru od login.php, ko smo so dobili ID seje iz tabele, in samo z uporabo ID, ID je način za identifikacijo element baze podatkov. Torej, če bi imeli dva Sams, oba ki poučujejo CS50, in oba kdo so bili iz Milwaukee, tistih bi še vedno različne identifikacijskih številk in tako se razlikujejo v kontekst tabele. Torej, to je tisto, kar SQL se ukvarja s, ki sodeluje z na zadnjem koncu. To so štirje ukazi da boste morali za delo z SQL. In sem jih vse bruhal na enem diapozitivu. Vendar smo šli skozi jim individualno. Prvi ukaz je UPDATE, ki počne tisto, kar bi pričakovali. Recimo, da imate nekaj podatkov v tabela, ki je zastarel. Like, če ste vodenje track imen ljudi in starosti, če nekdo starost povečanja, nato boste želeli, da gredo v in posodobiti starost samo, da osebe. Za primer, da deluje z našo prvo table-- Ne skrbite pisanju vse ti ukazi hkrati. Ampak, če imaš posodobitev navzdol, da bo dober za ta del, ker bomo pojdi nazaj k mizi. Torej, če se vrnemo k mizi, recimo, kaj se je zgodilo je bil tam je bil potres ali vrstica krivda, da neposredno po delih skozi New York City. In smo želeli posodobiti vse ki je živel v New Yorku. So vsi imeli preseliti v Pensilvaniji. To ni hometown. So vsi imeli preseliti v New Haven. Tam gremo. Torej, vsi v New Yorku preseli v New Haven. In tako, da je nekaj, kar je urejanje tri vrstice v tej tabeli. Toda v SQL, lahko to storite da je v samo enem izkazu. Torej gremo nazaj v posodobitev. Naj hitro ponovno izbrisati ta odbor. Ko govorimo o posodabljanje obstajajo nekaj delov sintakso, ki so ključnega pomena. No, vse sintakse je ključnega pomena. Toda stvari v zeleni barvi, je neobvezno. Potrebna je bela, kot vnaprej določeni imena. In svetlo modra, so stvari ki se razlikujejo glede na mizi. Torej, to je tisto, kar se dogaja z barvna shema tu, tam gor. Torej, če želimo posodobiti samo tiste vrstice od ljudi, ki živijo v New Yorku, Torej, kaj bomo storili, če smo rekli UPDATE? Torej miza, kjer smo se ime za našo mizo. Naj samo povem ime za našo mizo je miza ena. Zato želimo, da posodobite tabelo eno. In želimo set-- kaj želimo nastaviti? No, želimo povedati, da column-- PHP obravnava vrstice kot edinstvene identifikatorje. In potem stolpci na različnih področjih od teh elementov baze podatkov. Torej prvega elementa podatkovne baze ima ime Sam, velesilo CS50, in hometown Milwaukee. Torej, če smo rekli nastavljena, si oglejmo spet parametri, ki set traja. Imamo stolpec enaka vrednost. Torej želimo povedati nekaj column-- ki spomnite je field-- želimo videti polje enako nekaj novega. Torej, če smo pravkar dejal update tabela 1, nastavite ime enako Elliot. Dobili nekaj ljudi iz nov oddelek, v zvezi s tem. Ampak, če smo le naredili posodobitev tabele 1 nastavite ime enako Elliot, kaj bi poglej tabelo, kot po tem? Ljudje imajo kakšno idejo? Ja. OBČINSTVO: Vse, da vrstica bi postal Elliot. SPEAKER: Vse v kateri vrsti? SKUPINA: V prvi vrstici. SPEAKER: V prvi vrstici? Zakaj prva vrstica? Ne mislim, da poberem na vas. OBČINSTVO: Mogoče je vse v celotni tabeli? SPEAKER: Vse v celotna tabela, ja. In to je ravno prav because-- I je bil samo ti pomagam malo there-- ker smo izpustili opcijska WHERE. Če nimate kjer klavzula, kaj ta ukaz bo naredil se, da bomo delo z vsako enojna vrsta v tabeli. Ime vsakogar bo postati Elliott, v bistvu, ki Elliot je zelo zadovoljna. Ali Yanni, ena od njiju. Vendar bo ime vsakogar spremeni. Torej, kako bomo uporabili KJE clause-- in to velja za vse Wheres da so v vsakem ti različni stvari. Torej, boste opazili, da SET ima stolpca enako vrednost. In tako ne kam. Ampak to so različni Vrste izkazov. Torej kolona je enaka vrednosti SET je v nalogi. Všeč mi govoriš želimo nastaviti imena enak Elliot. Toda v oddelkih, kjer To so izjave enakosti. Torej, recimo, da smo želeli le spremenite ime osebe za Elliot če je bilo njihovo ime Ryan, recimo. Torej, ko smo rekli, WHERE ime enaka Ryan, ki bi uspešno le sprememba name-- da bi le spremenite Ime polja v vrsticah kjer je polje ime enako Ryan. Torej, če bi imeli več ljudi imenom Ryan vseh njihovih imen bi spremenilo na Elliot. To je podobno kot v primeru o če je prelomnica razcepi New York City, in vsakdo ima do preseliti v New Haven, na način, da lahko to, da je v eni izjavi UPDATE Tabela1 SET hometown = New Haven kjer hometown enaka New York City. To je moč izjava UPDATE. Mi lahko izberete poljubno število vrstice prek resničnih izjav o poljih v teh vrsticah. Ne moremo reči, UPDATE Tabela 1 komplet name = Elliot WHERE vrstica = 1, razen, da bomo lahko, če bomo rekli, ID = 1. Tako bomo lahko delo z enakostjo polj, enakost stolpcev. Le da smo uporabili ID področju je način izberite posamezne vrstice posebej, ker polje ID je edinstven identifikator v zbirki podatkov SQL. Torej, kot je posodabljanje vrstico eno, ID enaka 1. Posodabljanje vrstico dve, samo spremeniti to ID številko. Toda moč KJE izjava je, da smo lahko posodobite stvari, ki temelji na kaj je njihova Trenutne vrednosti nekaterih stvari so. Da Elliot? OBČINSTVO: In kaj, če hočeš to-- še enkrat, to je drugo vprašanje. Ampak moje prvo vprašanje je bilo, kjer se to dogaja? Kje sem posodabljanje to? Je to v PHP kodo? SPEAKER: Kje ste posodobiti, ja. Bomo govorili kje vse to se zgodi, nekako, ko gremo skozi vse ukaze. Ampak tisto, kar potrebujete, da vem, za zdaj je v bistvu da vaš SQL podatkovno bazo obstaja kot nekaj, da lahko dostopate s poizvedbo Funkcija, ki CS50 opredeljuje. Torej, če uporabljate funkcijo poizvedbe, lahko dostopate do te tabele. Torej boste poslali ti ukaze za vašo mizo v PHP datotek prek funkcije poizvedbe. Lahko tudi igral z vašo mizo neposredno. In to je najboljši način za preizkušanje te vrste ukazov. In bomo šli skozi točno kako narediti, da je v samo malo. Torej, to je ukaz UPDATE. In ostali ukazov se bo nekako podobno, delajo na podobnih stvari. INSERT INTO je verjetno najbolj razlikuje od UPDATE. Bom zapustil, da je tam za samo malo in dela tukaj. Torej vstavite, boste videli, da miza je še vedno isto. Si želite vstaviti. Kapitalizacija, SQL je občutljivo na velikost črk. Tako da vam ne bi bilo treba izkoristiti te stvari. Po dogovoru besede v beli barvi so kapitalizirane. Ampak jaz tudi barvno jih kodirani. Edini razlog, ki ga izkoristi tiste, ko ste jih tipkanje je samo poudariti, da tisti so konstante. In tako lahko bodisi poglej kapitalizacija ali dejstvo da sem jih tudi drugačne barve. Torej imamo vstavite, naredimo table1 znova. To je vse v eni vrstici. Jaz sem samo to ločevanje, ki jih različne izjave. Torej, ne skrbite o tem, da Tabela1 jo je na drugi liniji. Zato želimo, da vstavite INTO Tabela1 nekaj vrednosti. In boste opazili, neobvezno bit, ki se bom v sekundi. Torej imamo vrednote. Torej, recimo, da želimo dodati Andi k naši mizi, ker smo zamudili Andi. Andi je bolan. Torej, kaj je dodati Andi na naši mizi. Ne pozabite, da je ID številka se samodejno posodablja. Tako da je edina področjih smo treba skrbeti so ime, velesila, in rojstni kraj. In tako pot, da bomo to storili, videti na naši sintakse, je, ki smo jih pravkar dobil oklepaje, z vejico Ločene vrednosti, od katerih je vsak je vrednota. Torej, če smo želeli vstaviti Andi v naši miza, vse, kar moramo storiti, je prav Andi. Kaj je Andi je velesila, ljudje v oddelku Andi je? Rada polet, ali je všeč hitrost, ali kaj podobnega. Kaj že imamo tam gor? Imamo CS50, polet, Hitrost in žilavosti. OBČINSTVO: Čas potovanja. SPEAKER: Čas vožnje, neverjetno. Torej imamo Andi, čas potovanje, in njen rojstni kraj. To je res dobro vprašanje. New York City, razen če kdo ve. Vsakdo je iz New York je Lekcija vzeti od danes. Torej, ta izjava bi vstaviti, kot peta zapored z velesila potovanja skozi čas in hometown New Yorku. Toda izbirno polje je v bistvu način točno, kateri stolpci določajo želite vstaviti stvari. Tako, da to delamo zdaj, Andi, čas potovanja, New York City, se dogaja v točno določenem vrstnem redu našega table-- ime, supersila, rojstni kraj. In če si hotel narediti nekaj drugega kot to, kot pravijo, da niste vedeli nekdo velesila, všeč, kako nisem vedel Andi je velesila na začetku. Torej, vse, kar sem vedel, je bila ona ime in njen rojstni kraj. Kaj lahko storim je, da sem lahko do-- bom izbrisati to hitro. Rad bi samo posodobi stolpce. In to je, če ni obvezno Seznam kolona prihaja v igro. Želim samo, da posodobite imena in rojstni kraj. In potem bom rekel vrednosti. Naredil bom Andi in New York City. Če sem izpuščen seznam stolpcev in samo narediti ti dve stvari, kjer bi New York City šla? Kateri stolpec bi New York Mesto so bile dane v? Ljudje imajo kakšno idejo? Velesila, točno. Torej bo to samo pojdi v redu. In ko to doseže konca seznam, se bo samo ustaviti polnjenje stvari. In vrednote, ki bo to držijo v vsi stolpci bo zgolj NULL. Zato, ker smo opredelili ime in rojstni kraj, bomo imeli ID 5, ime Andi, velesila NULL. Torej velesila je neinicializiranih vrednost. Vam ne bo nujno dobiti Iste napake Valgrind Če skušate in dostop do nje. Vse bo lepo nastavi na ničlo ven, ker NULL je vrednost v SQL. Da je konstantna. In potem bo hometown biti New York City. Tako, da je INSERT INTO ukaz. Preden gremo, tam je dve ukazov. Ali ljudje imajo kakršna koli vprašanja o UPDATE, približno vstavite, o SQL splošno preden gremo na naših končnih bitov? Ljudje se počutijo dobro, odlično. Ljubim to. Torej, kaj je govoril o SELECT. Going jarku UPDATE tukaj. In SELECT se bo zelo podobna. Cilj izberite Namen izberite v življenju je, da vam kup stolpcev ki izpolnjujejo določene pogoje. In ko rečem zadovoljiti določeni pogoji, vaš um morda takoj segajo da WHERE ki je prišel v posodobitev. In da klavzula točno tam izberete. Če nam ne dajo, kjer Klavzula in rečemo SELECT ime, hometown-- napisane, da je malo wrong-- ime, rojstni FROM Tabela1. Če bomo samo reči, da je tisto, kar SELECT se dogaja, da se nam je, da je dogaja, da nam double-- mizo, ne. Dvojno matrika, če smo razmišljal v PHP zazna. Ampak to je le, da bo dal nam dvojni niz dveh columns-- imena, in rojstni kraj. In bo prezreti ID. In bo prezreti velesilo. In bo to samo nam vsak single row navedene tabele. Torej, če smo samo vstavljena Andi, bomo imeli Andi. In bomo imeli prvotni štiri. Če ste bili posodobljeni, bo to morajo odražati, et cetera, et cetera. Torej, to je zato, ker mi ni uporabila klavzulo kje. Vendar ga lahko uporabite v točno enak način smo ga uporabili pri posodobitvi. Če smo le želeli tabelo imen in super pooblastila ljudi, ki živijo v New Yorku, se lahko izvrši izjavo kot SELECT ime, superpower-- Jaz sem le, da bo zapustil that-- IZ Tabela1 KJE hometown = New York City. Torej, to dokazuje, da lahko dobili povsem različne stolpce, in nato dal stolpce, ki niste celo dobili nazaj v klavzuli kje. Mi sploh ne želijo hometown vsakogar. Ampak želimo ime in velesila ljudi katerih rojstni kraj je New York City. Torej, to je nekaj, kar smo lahko naredite s KAM klavzula je lahko imamo opravka s stolpci da ne bomo nujno želijo nazaj. Na enak način dopolnitve, lahko imamo opravka s stebri, ki jih ne nujno želite posodobiti. Mi lahko posodobite mesto vsakogar kdo je ime je Sam, na primer. Mi lahko posodobite mesto Vsakdo, čigar ID številka 2. Torej samo posodobiti mesto v drugi vrsti kjer nam ni treba ukvarjati z potrebno skupno vprašanje. In brisanje je, kot ste jo pričakujejo, DELETE FROM Tabela1. In potem imamo klavzulo še kje. Tako lahko rečemo, kjer je id = 1. Izbrisati prvo vrstico. In DELETE bo vedno izbrišete vrstico, ali bo to izbrisati določeno število vrstic. DELETE FROM tabela WHERE hometown = New York City bo izbrisal vse v New Yorku. To je, če je bila nenadno tragično kuga in si želel, da se odstranijo vsi iz tabele, ki živel v nekem mestu ki je prizadela kuga. Lahko počivajo v miru. To so štiri SQL ukazi da boste morali uporabiti. Morda ne potrebujete niti uporabiti vse. Ampak to so štiri da CS50 vas pričakuje biti zadovoljni z tekoč v tako kviz 1 in tudi pset7 in pset8. Tam je samo, da tabela znova. V tem enem, Roy velesila ima bila posodobljena zaradi laserskih žarkov, ki je primer nisem uporabil. Ne vem, katera Roy raje, vendar trdnost. Roy je velesila moči. Katherine ne bi bilo danes. To je žalostno. Ampak ona je super hitrost. No, da je PHP. Preden govorimo o MVC, ne kdo vprašanja o PHP? Zdaj SQL ali PHP, če ste nenadoma prišli z vprašanjem o PHP? Great. Vse je v redu, smo vsi, ki takrat. Torej govorimo malo o kontrolorjev modela pogled, vrnimo na nekatere od stvari v pset7. Torej, kakšen model pogled Krmilnik is-- Nisem dogaja, da shranite svoje spremembe na prijavo ker popolnoma sem ga pobili. Ampak v bistvu imamo dve ločeni stvari dogaja. Imamo javnost imenika, ki vsebuje koda, ki se dogaja, da se izvrši in spletne strani, ki bodo obiskali. In imamo tudi to ogledov imenik. In poglede vsebuje predloge. To je tisto, kar je funkcija render-- smo videli ometa Funkcija v kup PHP kodo da CS50 je že napisal za vas, da je v določenih parametrih. Kaj to kodo počne se dogaja v pogledih, ki so sklopi, kot so napisanih HTML kodo, in to je vstavljanje vrednote v nekaterih krajih. To je, kako, če vas iti v CS50 finance, ista glava je na vsaki strani. Enako Noga je na vsaki strani. To je zato, ker je način da postanejo del je, da bomo samodejno obliž v tej glavi in Gledalec, ki jih lahko najdete v pogledih. Mi lahko dejansko šel v glavo, in poglej, to je datoteka HTML z glavo. Ima nekaj slogovnih. Vam ni treba gledati CSS za pset7, če ne želite. Vendar pa lahko spremenite jih, če želite, da Vaše Finance poglej malo drugačna. Ima nekaj PHP v glava malo videti če je drugačen naslov je treba dati v tej glavi. Vendar le nekatere druge skripte, in povezave, in druge stvari. Glava se konča, začne telo in oops, imamo to čudno malo končni bit. In tam je div, prav tako kot brezoblična vrsta elementa da ima idejo sredini. In potem, ko smo videli nogo, imamo konec div. Imamo dno, ki je kjer je besedilo noga. Konec div, konca telesa, konec HTML. Torej, kaj ometa je početje je render je nekako za krpanje gor glavo, A drugačna PHP datoteka, ki bo vsebovala dejanske stvari, ki boste videti, kot vaši mizi zalog če ste odkup ali prodajo zalog. In potem bomo dodali v nogi. In pogled modela Ideja krmilnik je, da smo želijo ločiti kako stvari pogledati od kodeksa. To želimo ločiti frontend in hrbtenica, kjer je začelje stvari, ki jo uporabnik vidi se lepo visuals-- HTML, CSS, take stvari, slike, et cetera. In backend PHP. To je koda, ki ste napisali. To je, če je koda, ki je početje dejanske operacije. To je, ko ste dodali stalež na vašo mizo, Ko kupujete in prodaja, da je backend. In bomo lahko, kot ste videli, vključno z PHP neposredno v HTML. Torej, kaj bi lahko smo storili za Ta naloga je ravnokar HTML datoteka za vsako stran, kot prijavo. In potem na tej strani, samo imel ogromen blok PHP kodo, vključno z vsemi kode, ki ta stran bi posebej potrebovali. In potem lahko imamo narediti, da je za portfelj. Lahko bi naredili vse za nakup in prodajo znotraj posameznih straneh. Ampak zato, ker smo upodabljanje ločeno od koder smo pisno backend koda, lahko zlahka spremeniti, kako stvari videti brez spreminja vsak eno datoteko. Počnemo stvari, kot le dodatek nov div na dno of-- Pozdravljeni, sem spremenil nogo. Lahko samo delati stvari, kot je ta. Pa tudi, lahko spremenite celotna vizualna postavitev brez vpliva na tisto, kar je dogaja v ozadju. In lahko spremenite Celotna backend in še vedno imajo to videti tako, kot je to storila prej. To Je ideja modela pogled krmilnika. In to je pravzaprav vsiljen paradigma v nekaterih programskih jezikov boste morda želeli uporabiti za končne projekte. Če boste to storili razvoj iOS, imajo poglede, ki je tisto, kar vidite na iPhone, in potem hrbtenica kot kot samostojna stvar. Lahko pomislite malo. Tam je veliko binarne datoteke v računalništva, kar je smešno, ker je vse, kar je v binarno. Nisem načrtovati, da. To je bil pun nenamerna. Da, pun ni namenjen. Ampak kot .h datotek in .c datotek, tam je Veliko ločevanje od stvari, ki smo ne bi potrebovali. Tako smo lahko samo urejate h datoteke, ali lahko nekdo pravkar videli .h datoteko in vedeti natanko funkcije, ki so v .c datoteka ni nujno, da vedo, njihovo izvajanje. Ta ideja, ki ločujejo komponent ki medsebojno odvisni vendar pa lahko nekako dostop seboj prek različnih kanalov, ki poteka spremenljivk, samo vključujejo izjav, stvari kot da je to načelo prispeva k ustvarjanju aplikacij da se lahko lažje uredil več ljudi, lahko lažje spremenila ali spremenjena na velikem merilu, in se lažje debug na veliko načinov. Res hitro, imam Nekaj ​​nasvetov za pset7, ki bom, poln zaslon, tako da ne samo gledaš na the-- Namig Namig tippee. Tam se ne da veliko nasvetov. Ampak sem omenil PHP je težko debug. Dvojne in trojne preverite. Če koda ni samo prikazujejo na strani, je to verjetno PHP napaka, žal. Vam nikoli ni treba pogledati CSS, če ne želite. Ampak, ko ste končali, je lahko lepo zabavna stvar, pojdite v in igraš s parametri CSS. CSS in HTML so primer modela Pogled slog krmilnik stvar preveč, kajne? Lahko bi slogovne oznake znotraj HTML elementov. Ampak, če vas nekako jih outsourcing CSS, oni lažje urediti, in play okrog z in se zabavajte s. Privoščite CS50 pomočnika deluje kot črnih skrinjic. Vam ni treba vedeti, točno, kaj render počne, ampak mu zaupate, da vedno narediti pravo stvar, odvisno od tega, kaj vam je zgodilo, Stvari, kot je ta. In jaz bi priporočal gledal Davidovo walkthrough, skozi vse stvari, ne samo todos, ampak res lahko privoščite ti kot črne skrinjice. Ne gredo v te Funkcije išče hrošče. In pozdravljajo vrnitev naše Overlord Zamyla. Great. Ali obstajajo kakršne koli končne vprašanja pred smo nekako premetavati na dan? Sem še vedno živi? Great. Hi Uživo ljudi. Great. Ali obstaja več vprašanj? Ne? In potem mislim, da smo na dobri poti za danes. Jaz bom ostal malo potem, če ljudje imeli vprašanja ki so se bali vprašati o potoku. Drugače pa, imajo dober dan.