SAM LEVATICH: Tere tulemast osa sel nädalal. Ma ei ole Andi. Andi on langenud haige sel päeval, ja ma on omamoodi kutsutud viimase hetke üle võtta. See on gripihooaeg, nii et veenduge, et olete viibivad puhas, pesu käed, ja tervisliku toitumise nii, et sa ka ei ole voodihaige. Aga ilma edasise jututa, olgem alustada. Täna me ei kavatse rääkida umbes PHP veidi bit-- kuidas PHP on seotud HTML, kuidas see käsitleb CSS ja mõned web asju sa tegid viimase ülesande. Me läheme rääkida natuke SQL ja kuidas te saate töötada andmebaasid mis on päris oluline osa P määrata 8-- P seatud 7. P seatud 7. Ja siis me ei kavatse rääkida natuke natuke, kuidas arvates kontrollerid tööd ja miks see on filosoofia mõned kaasaegsed veebilehti ja erineva kujundusega. Päris palju palju liike apps ja rakendused võite saata kasutavad seda mudelit, Arvestades kontroller raames, et sa kasutad P seatud 7, nii et ma rääkida natuke miks see on muutunud populaarne, miks see on oluline ja kena. Ja siis ma lõpuks liikuda mõned näpunäiteid võidelda P seatud 7. Ja kui meil on aega üle jäänud lõpus, me saame tegelikult teha mõned tööd, et koos. Nii, PHP. Tegelikult olete ehk märganud see-- sa ei tõesti sukelduda see-- kuid P seatud 6 olid mõned PHP kood, mis juhtus. Ja kuna PHP on C-like keel, PHP, erinevalt HTML ja CSS, on programmeerimiskeel, samas HTML ja CSS on staatiline. Nad märkekeeltele tegelevad stiil ja visuaalne kujundus. PHP on reaalne asi. PHP on silmad, see on conditions-- kõik see kraam, mis on lõbus umbes C. See on vähe asju, mis on veidi natuke parem kui C, mida me näeme, aga ma arvan, et lihtsaim viis rääkida umbes PHP on lihtsalt sukelduda. Nii et ma lähen paremale arvesse IDE sel hetkel. Esimene asi, mida me ei kavatse tegema, on tegelikult otsima natuke mõningaid PHP kood, mis oli P seatud 6. Nii nii, et me teeme selle-- Enne, kuidas me jooksid server seadme oli see, et me oleks liik-- kas kasutada oma täitmise või töötajate rakendamine of server.c laskumist kataloog ja töötab server.c kas pole arguments-- nii lihtsalt nimetame seda kohta kohalik masin, mis on see, mida sa ilmselt tegi enamik AEG_ ja siis söötes directory-- koos mis kasutada selle juur kus veebisait käivitada, põhimõtteliselt. See nädal P seatud 7, kui suur kui meie kood server.c on olemas inimesi, kes on juba kirjaliku need ilusad asjad üle mis CS50 mis on natuke rohkem funktsioone, server programm, mis on võimeline tegelevad natuke rohkem Hienoudet võime me vaata mõlemas P seatud 7 ja P seatud 8. Ja nii, et sa käivitada server on kirjutades, "apache50." Ja enne kui midagi, soovite veenduda et Apache 50 ei ole juba töötab, kui see on minu masin, mis ma tegin seda testida. Ja sa seda helistades apache50. Peatus, ja te näete, et see on peatumine veebiserver, kui sa vaatad seal allosas terminaliaken. Ja siis lihtsalt alustada, me oleme helistame, "apache50 hakata." Ja siis me läheme söödast kataloog. Nüüd, kuna me tahame vaadata mõningaid P seatud 6 koodi et meil oli ellu, ma tegelikult kopeerida natuke P seatud 6 kood minu kausta kust saab näha vasakul pool. Seda nimetatakse "SECTION8" suurte tähtedega sest ma olen lihtsalt nii elevil to live-otseülekanne täna. Nii et kui võtame seda, see peaks kõik töötab päris tõhusalt. Ta ütleb, OK, meie sait on nüüd saadaval aadressil IDE, Põhimõtteliselt, mis on see, mida sa kasutad täpselt nii, nagu see oli P seatud 7-- P seatud 6. Kõik minu indeksid on üks indeks täna. Nii saame minna, et aadress, kui sa mäletad, vaid klõpsates seda vähe nuppu üleval paremal. Ja sa mäleta seda koodi, mis juhtus siis, kui sa läksid hello.php. Ja milline kood on mõeldud teha on, kui sa kirjutasid oma nime siin-- kui sa ütled Sam sest see on minu name-- ja ma vajutan tere öelda, kui läksime järgmisel leheküljel, et nimi pidi olema kuvatud. Oleks öelda "Tere, Sam" või "Tere," mis iganes nime pannakse ta kuigi läksime täiesti uuele veebilehele. Ja see on selline asi, et PHP teha saab. PHP on suutnud andmeid kahe veebilehti. See on täiesti erinev lehel. Näete pealkiri on "tere" siin. Tegelikult on neil sama pealkiri, aga ma luban neil on erinevad web lehti, kui me vaatame allikas. Ja sa ei liigu andmed, mis on kantud antud välja, saatke see järgmise leheküljel, mis kuramuse nõutud, ja seejärel, et andmeid on võimeline seal selle praegusel kujul. Nüüd me ei ole veel rakendatud seda ise, mis on see, mida me teeme just nüüd Sorteeri saada maitse, kuidas PHP töötab, kuid põhiline mõte on, et PHP-- saate omamoodi mõelda nagu funktsioon. Midagi, mis PHP saab Sind ei see ei võta parameetrid et sa lähteandmetest HTML lehele kasutamise kaudu PHP ja vormid, ja see võib anda need parameetrid Järgmisele lehele, et see laeb üles. Sel juhul me peale üles seda leheküljel koos "Ütle tere" nuppu. Aga nüüd, ma tegelikult kustutada mõned, et koodi on hello.php mis oli joosta et tegelikult väljapanek "Tere, maailma "või" tere, Sam "või "Tere," mis iganes oli lihtsalt sisend. Nii kohe, me oleme kavatsete teha, et põhimõtteliselt. Me läheme uuesti, et ja lisada ka mõned rohkem funktsioone, teha natuke rohkem sellega, vaadake Mis PHP on tõesti võimeline. Nii esimene, räägime Selle faili hello.php. Nii et kui me suurendus vähe bit-- ja nüüd olen omamoodi üritab kerima kõik kuidas lihtsalt ringi seal me läheme. Näete seda nimetatakse hello.php, kuid süntaks see näeb välja nagu HTML faili. Seda seetõttu, et tegelik PHP failis on kõik kinni vahel Küsimärk-katus plokid. Kõik siin peetakse PHP koodi. Ja märkad, et kui ma tegin kommentaar, näete tuttav kaks kaldkriipsu. Ja kui sa meenutavad HTML, kui ma kirjutada kommentaar, tundub midagi lähemale see, mis on kommentaar HTML. Nii et tõesti kõike vahel Nende kahe noolsulgudes Nüüd on PHP kood, mis kajastub asjaolu, et see väike kommentaar sümbolit on muutunud kommentaari. Nii et iga kord, kui sa kirjutada PHP koodi, isegi kui pole HTML kood väljaspool seda, see on alati saab olema ümbritsetud need nurksulud küsimärki. Võite omamoodi mõelda see-- kuidas kõik kood, mis jooksis oma C programmid oli suletud int peamine, tühine, lokkis traksidega, lõpuks lokkis traksidega avalduse. Ja te näete looksulg sisse PHP, liiga, kuid see on omamoodi nagu peamine meetod PHP. Nüüd, kuidas me midagi teha PHP? Nüüd, PHP on programmeerimine keel, mis on väga C-like, aga see töötab veebis. Nii et üks asi, mis Teil immediately-- üks esimesi asju sa tõesti tegid C oli teile trükitud kraami välja, eks? Nii C tegime, et koos printf funktsiooni. Me andsime selle stringi, ilmselt uue liini, ja siis me lõpetada see semikooloniga. Nii nii, et me ei kavatse seda teha in PHP-- sest see ei ole päris printf. See on natuke teistsugune süntaks. Nii, et me printida asju teha PHP on meil öelda: "echo hello" või "Kaja" iga sõna. Ja see mõjub teed printf koos haaknõela, "tere." Ja see lisab uue rea ta. Nii saab kohe teha sure-- Ma kujutist taas veidi bit-- olgem veenduge, et et kood töötab sest seal võib väga hästi olla viga selles kood et me peame tegelema. Nii et server on juba käivitatud. Nii et kui me tagasi kerima alaserva, yup, server töötab endiselt. Nii et kui me lihtsalt puuduta seda natuke siin-- welcome-- peaksime get-- suur. Me ikka on võttes tuttav "Ütle tere" dialoogi, aga kui ma kirjuta "hi" Me näeme et tekst "tere" oli tõepoolest välja printida, mis on täpselt nii, nagu lootsime, sest kaja PHP on nagu printf avalduse. Nii tagasi koodi, kuidas P seatud 6 tegin jaotus kood olete varustatud teha seda nii, et PHP oleks väljund asi, mida trükitud eelmise ekraani? Ja omamoodi uurida miks see juhtub, oleme lähe index.html, mis on originaal faili, faili ilmub selle ekraanile koos "Ütle tere" nuppu. Sa märkad, et seal on kõik klassikaline asju me oleme harjunud HTML sellised kui need asjad, need sildid suletud noolsulgudega, nagu PHP kuid ilma küsimärke, mis näitab, eriline asi HTML. Meil on pealkiri, mis on "tere." Ja märkad, et nagu me nägime, pealkiri on "tere" mõlemal juhul. Muudame selle ühe to "öelda" lihtsalt, et me saab eristada end, kus me oleme. Aga meil on keha. Ja siis huvitav natuke, siis natuke, et näitab üles HTML, on see vorm element. Ja nii on meil kujul. Ja see on võti. See, kuidas me töötame koos PHP. Tegevus parameeter kujul ütleb, et hello.php on see, mida me kavatseme saata väärtused seda vormi. See on koht, kus me möödaminnes parameetreid, nii rääkida. Märkad teine ​​asi siin on, et meetod on "saada." On kaks peamist meetodid, mille abil hakkab kasutad PHP andmete edastamiseks vahel websites-- veebilehti, rather-- selle ülesande. Ja need meetodid on "saada" ja "post". Seal on mõned peent erinevused get ja post et saame into-- me on "saada" ümber, kui soovite. Aga kõik kavatsused ja eesmärkidel, saada ja pärast on nii lihtsalt viisil, et te kaotate parameetrid natuke erineva hukkamisi. Praegu me ei kavatse kasutada saada, sest saada oli, mida kasutati algselt PHP faili P seatud 6. Ja tegelikult, kui me minna ja otsida Enne oleme toimetanud midagi muud, Ma ütlen hi mina-- mis su nimi on? Sihtrühm: Elliot. SAM LEVATICH: Oh, jumal. Ma ei tea, kuidas kirjutada seda. Kas sa õigekirja et minu jaoks? Sihtrühm: E-L-L-I-O-T. SAM LEVATICH: I-O-T? Sihtrühm: Jah. SAM LEVATICH: Perfect. OKEI. Ma arvan, et ma tegin seda, kuidas kirjutada seda. Vabandust selle pärast. Aga kui me ütleme "tere öelda," see ei ole ta ei kavatse näidata üles ekraanil veel, sest meil muuta kood natuke. Aga kui me ei "Ütle tere" - OK, nii et "tere" on siin. Aga kui me võtame lähemalt vaadata URL ise, Me näeme, et see lõpeb koos hello.php? name = Elliot. Niisiis, see on viis edastades järgmisel veebilehel parameetreid, et oleme läbinud. Me ütlesime name = Elliot. Ja see on lõpuks, kuidas P seatud 6 külastatud muutuja, mida me möödunud aastal vormi kaudu. Ja see on midagi, on omane get taotluse. GET taotluse muudab parameetrid tuntud veebilehe URL. Ja sa meenutada, liiga, P seatud 6 et te tuli kirjutada funktsiooni mis käsitles asjaolu, et see päringustringiga võib eksisteerida pärast faili. Võiks olla küsimärk järgneb poolt põhimõtteliselt iga märgiga. Ja see on täpselt see, mis toimub siin. Ja põhjus, miks sa pidid sõeluda, et Teie rakendamise server.c P seatud 6 on nii, et võid öelda PHP kood, mis name = Elliot. Pidite suutma sõeluda, et välja URL nii et PHP faili alla teadis, mida ta tegeles. Loodetavasti annab see motivatsiooni server.c Nüüd, kui me liigume edasi Väljaspool C arvesse PHP. Nii saab tegelikult keskenduda pääseda asju läbi get taotluse nüüd sel hetkel. Ma lähen salvestada. Me ei muuda midagi. Tundub, meil on sisestusväli. Me milles mõned omadused, kui me saame teha HTML. Need on lihtsad asjad. Meil ei ole vaja neid. Aga meil autotäitm välja, mis põhimõtteliselt says-- sa tead, kui kirjutad asju arvesse web, mõnikord ta püüab täita, et teile. Nii et see on kena asi. Me tahame, et see välja lülitada selleks. See oli CS50 otsuse. Nii saame kustutada, et kui me tahtsime. Autofookus lihtsalt pulgad kursor kujul kohe alguses. Jällegi ei ole väga olulised. Aga name = "nimi" - see on natuke keeruline, sest see on nimi ja nimi. Aga me ei muutnud see midagi muud. Ja tegelikult, see on mida me teeme kohe. Me ütleme "inimene", mis on omamoodi nagu nimi Kui isik on määratletud nende nimi. Nii saab sulgeda, uuesti üles meie kodulehel kuna meie server töötab endiselt Apache 50, ja me ütleme, tere, siin on Elliot uuesti. Miks mitte? Tere. Ja kui me läheme siia, eks näis siis selle asemel name = Elliot, see ütleb inimese = Elliot. Ja see on otseselt tingitud asjaolust, et me lihtsalt muutunud name = "inimene." Nii sisend element HTML kujul nimi väljale on tunnus parameeter, mis kuramuse möödas. See on nagu siis, kui loote funktsiooni "lisada", mis asus kahe täisarvu ja sa ütlesid, int a ja int b. See oleks nimele, ja kui sa tahtsid teises vormis, mis me saame teha just kopeerimine ja kleepimist, siis oleks meil nime b. Nüüd on meil kaks parameetrit mis on läbinud saada järgmisele website-- Järgmise veebilehe hello.php. Ja me saame tegelikult näha et taas, kui tahame. See on lihtsaim viis lahendada veebi koodi IDE, põhimõtteliselt. Sa käivitada server, saad selle töötab, ja siis iga kord, kui teha mõned muudatused, just lähedal et faili lihtsalt karta. Vajutades nuppu Tagasi on natuke keeruline sest see võib laadida varem versioon, mitte kõige ajakohasem. Ja siis klõpsake lihtsalt nuppu, pop õigus up-- oh, ja nüüd on kaks vormi. Ja kui me kirjutame üks asi igasse one-- "Jason Hirshhorni," jaoks instance-- ütleme tere. Ootame üles meie parameetreid. Tundub, meil, nagu eeldatakse, a = jason ja b = Hirshhorni, mis esindab kahte parameetrit et me võtsime selle funktsiooni. Vaatame nüüd tegelikult saada rakendamisel, et funktsionaalsust, et me oli P seatud 6. Nii just nüüd lihtsalt kajastas tere. Ja see ei ole väga kasulik. Me tahame, et kajastada mõne muutuja mis võeti vastu meile. Ja me teame nime selle muutuja. Meil on ja me oleme b. Nii võiksime valida kaja kas üks. Aga kuidas me seda kasutada? Noh, on olemas teatud globaalsete muutujate PHP. Ja ma kirjutan neid kommentaare siin. Kaks kõige olulisemad on get ja postitada meie eesmärkidel praegu. Need on massiivid või Tehniliselt sõnastikud kus meie muutujaid, et me oleme kulgeb järgmise veebilehe live. Ja järgnevalt näeme, kuidas neid kasutada. Teine lühike teade PHP koodi ja mõned spetsiifikat see-- C, kuulutada muutuja või muutujate kasutamine, kõigepealt tuli tunnistada neid. Ja mida sa pidid tegema, kui sa deklareeritud neist oli öelda int a või char b. Sa pidid deklareerima tüüpi neid muutujaid, enne kui nad loonud. PHP-- sa ei pea tegema ükskõik mida. PHP ei küsi tüübist muutuv. Ja nii, et sa luua variable-- pigem kui öelda, int, char, string-- mis on tõesti char *, nagu me sead ühendit väljakirjutada mitte tehes kõik et kuna kõik on sama tüüpi, typeless, saame lihtsalt kasutada üks märk, mis on dollari märk. Ja te näete, see on juba popping up, little autotäitm asju. Ja see on selge, et _GET ja _POST On kaks võimalust, et mul on olemas mulle. Mõned neist muud asjad on teiste globaalsete muutujate PHP et teid kasutades üle käigus P seatud 7. Sest nüüd me läheme keskenduda get ja post. Aga see on kasulik asi, et IDE ei kus, kui olete sisestanud et dollari märk, see saab alustada täites globaalseid muutujaid või muutujate olete juba määratletud. Nii et kui sa tahad, et määratleda muutuja nimega "string" võid lihtsalt pani võrdne "hi". Ja see on põhimõtteliselt nii lihtne. Ja siis me võiksime teha midagi "echo $ string." IDE tuleb visata mõned vigu, kui ma teen midagi valesti, nii et loodetavasti ma teen kõik õigesti. Aga vead alati ei teki. Teine keeruline asi PHP on see, et see ei ole koostatud. Nii C programme, mida sa teeksid igapäevaelust of-- põhiliselt sa oleks muudatust koodi, siis tahaks salvestada, ja siis oleks Tee, kus make oli samm, et kutsutakse koostaja, kolisevad, et muuta oma koodi, selle teksti faili, käivitatava. PHP on C-tüüpi, kuid see on teostatud lennult teie veebibrauser. Seega puudub võimalus teada. Tee oleks visata neid kasulik vigu, eks? See oleks nagu, sa ei deklareerinud seda muutujat Enne proovisin seda kasutada. Sa tegid kõik see halb stuff-- segfault, segfault, kõik, mis omamoodi lõbus korda mis tuli teha. PHP on kahe teraga mõõk sest sa ei saa neid vigu, kuid see tähendab ka, et sa ei tea tõesti, mis valesti oma programmi kui sa lihtsalt käivitada see ja see ei tööta. Aga siluri nentima mõned loodetavasti abiks pisiasjadest süntaktiliselt et saate määrata. Nüüd, kui me läheme üle mina-- öelda, olgem sulgeda, et. Taastada. Ja me oleme tagasi siin. Nii on meil varieeruv ja muutuvast b. Ja need ei lõppkokkuvõttes oluline. Me nimetame neid h ja g ilma kindla põhjuseta. Ja me ütleme tere. Nüüd tundub, et meie string "hi" on tõepoolest trükkimine. Me oleme loonud muutuja nimega "string", seadke see võrdub "hi". Pange tähele, et me ei pea tegema malloc või teha iseloomu massiivi. PHP, sest muutujaid on typeless, string on sama kui char kõik kavatsused ja eesmärkidel. See võiks olla "hi." See võib olla just iseloomu k. See võib olla number 1. Ja see ei huvita. PHP ei hooli tüübist oma muutuv. Või see ei ravi. See huvitab, kui sa püüad ja teha asju koos sellega, kuid see ei hooli Deklaratsiooni samm. Ja täpselt samamoodi nagu C, saate Kinnitan stringid virnas niimoodi kuigi ütleb "korsten" on väike natuke potentsiaali eksitav, kui me räägime PHP. Aga me ei pea muretsema, et. Nii saime string "Tere," ja me kaja string. Nüüd me oleme arutanud muutujaid. Nüüd peame rääkima get ja lisada ja sooritada lõplik asi, mis on vaja tõesti seda varundada funktsionaalsust P seatud 6. Nii just nüüd kajana string, kuid me ei ole need muutujad saada ja kontrollida. Ja kuna me kasutame meetod saada, siis Tundub loomulik, et meie muutuja oleme huvitatud, nii a ja b, hakkab asuma massiivi või sõnastik, tehniliselt saada. Nii et kui me luua saa niimoodi Teie groups-- ma pressitud sisestage ja see ei meeldinud see-- kuid siin on meil saada. Ja nii saan juba olemas. Nii saame juba hakata juurdepääsu mõned elemendid saada. Kui me ei saa seda süntaks massiivid PHP on väga C-like. Meil on kaks nurksulgudes. Nii et kui me ütleme saada normaalne massiiv, võiksime juurde zeroth indeks, esimene indeks. PHP on null indeks. Võib öelda, null, üks, two-- selliseid asju. Ja ma olen öelnud, et saada on tehniliselt sõnastik. Mis PHP teeb kapoti all, mis on natuke kenamaks kui C, on see juba annab teile mõned sõnastik funktsionaalsus, mis on tõesti hash tabeleid, või üritab väidetavalt. Või tehniliselt võiks proovida ka. Aga PHP rakendab hash tabelit, mis moodustab efektiivse sõnastikku. Ja nii me ei tea nime Meie muutuja, eks? See on sooritanud päringustringiga PHP. Oleme = h ja b = g kus ja b on nimed muutujad. Nii nii, et me ei pääse vastava väärtuse võti meie sõnastiku lihtsalt öeldes _GET_GET ["a"]. Nüüd on meil _GET ["a"]. Ja kui me lihtsalt asendada sees Meie kaja, kui me kaja _GET_GET ["a"] - ja me näeme, kui siluri viskab vigu umbes see-- Hoiame et sulgeda see välja. Tee lahti. Nii et me lihtsalt teeme õigus nüüd, et b ei tohiks asja. "tema" ja "Tema" - "hum." "tema" ja "hum." Kõlab hästi. Ja see välja printida "tema", mis on hull. Aga see on täpselt see, mida toimunut P seatud 6. Põhimõtteliselt, mida P seatud 6 oli doing-- kaja hello, name-- kus see oli muutuja nimi ja see lihtsalt küsib kirjutad, et natuke teksti. Oli ka mõningaid lisakood, kus see lisada, kui avaldused, mida me saame teha just nüüd. Me ei saa öelda, kui on olemas, mis on funktsionaalsus jooksul PHP, _GET Koos alakriips "nimi" - mis on põhimõtteliselt öelda, "Kui nimi on täidetud", sest oleksime võinud lihtsalt klõpsanud nuppu esitada kujul ilma kirjutades midagi sinna valdkonnas. Ja me pakkima, et meie sõbralik looksulg. Meil võib olla teine ​​avalduses. Ja see on kõik sees PHP nurk sulg, küsimärk, nurgik, kui soovite. Ja nüüd me näeme, kui see töötab. Hoian ootab ta, et siluda ja jama välja mind, põhimõtteliselt kuid see ei ole veel. Võib-olla on see nüüd sest ma rääkisin. Jep. See tegi tegelikult. Niisiis, miski ei näita üles. See on sellepärast, et midagi on valesti et ma kirjutasin PHP koodi. Ja ma mainisin silumine on keeruline, sest PHP, me ei kompileerida eelnevalt ja koostaja ei meeldi, Siin on koht, kus oma vead. Aga mida me teha saame on-- teha inimesed mäletavad kuidas vaadata erinevate võrgu nõuab, et PHP-- või mis veebilehed Kirjuta? [? Malin?] Tegi seda loengu üks või kaks korda. Mäletad, kui me minna, et leida erinevate võlgade ja 200 Oks, Kõik need koodid, mis saadetakse läbi HTTP alates veebilehe veebilehe? Kas keegi mäletab kus me läheme seda teed? Sihtrühm: Page Source. SAM LEVATICH: Page allikas. Täpselt. Kui te lähete Page Source-- täiuslik. Nii Page Source tõmbab inspektor. Ja ma kasutan Safari. Palju siis ilmselt kasutad Chrome või Firefox. Aga kui sa oled Igal kaasaegse browser-- ja julgelt järgi mööda, kui soovite. Sa võid kirjutada üles selle koodi või lihtsalt vaadata sees P komplekt 6 Kataloog mõned sarnased asjad. hello.php on see, mida me oleme Praegu töötab emuleerib. Seega on olemas erinevaid klapid. Me võime vaadata kõiki ressursse. Me näeme lähtekoodi. Nii tundub, et see ei ole saada minevikus keha lõpuks. Ta leidis vea PHP ja lõpetas laadimise kogu veebilehe. Me ei pea isegi lõpp silt HTML või midagi. Ja kui me vaatame võrgustik, saame näha, et me seda saatis. See on domeeni. See on aadress. See dokument. Me get kasutades meetodit. Ja see on punane. Või oli see punaseks, kui ma ei valides. Kuidas tühistage? Noh, see oli punane. Lubage mul värskendada. Seal on. Nüüd on punased. Nii et see on punane, mis tähendab, see ebaõnnestus, mis on halb. Nii Uurime, miks ta ei suuda. Nii et kõik, et Page Source saa põhimõtteliselt öelda, on oma asi ei tööta, mida me saame juba näha. Nii ideaalis oleks olla rohkem kasulik vahend. Ja seal on mõned sirvimislaiendused mis võimaldavad teil siluda PHP, kuid me ei kavatse kirjalikult ton PHP, nii et see on ilmselt lihtsalt parim vaatama läbi oma koodi hoolikalt ja lihtsalt veenduda, et see ei ole midagi muud. Vaatame, kui vormi osas kui väide on, kus probleem on. Ma tahan laadige see siia üles tagasi. Tere, tere. Nii et probleem on olemas. Nii õige süntaks PHP, PHP läheb olla C-like, et näete silmad. Näete, kui avaldused. Näete kõik need sõbrad et olete tutvunud koos jooksul Selle CS50 poolaastal. Aga parim viis aru saada, kuidas midagi PHP on Google seda või mõningaid näiteid PHP koodi sest sa tead funktsionaalsust. Sa tead, mida saate teha programmis. Võite loop. Võite loop nii mitu korda kui soovid. Võite loop kõik kehvasti erineval viisil. Saate luua funktsioone. Saate luua funktsioonid kutsuda teisi funktsioone, funktsioonid mis nimetavad ennast. Ja sa pead nimed need mõisted. Sul recursion, silmad, kui muud kontrolli voolab. Ja nii Google on su parim sõber. Isegi öelda, "PHP kui Väide "ja muidu olla tonni poste vastused teiste inimestega kes on olnud sarnaseid küsimusi teile, kes on hakanud just läbi PHP ja on uudishimulik süntaks asi. Kuna meil on luksus on võimalik vaadata koodi P komplekt 6, me tegelikult tõmmake üles ja vaata, et OK, siin on midagi huvitavat. Nii et see on see, mida ta tegelikult tundus P seatud 6. Nii et kui me minna läbi selle, näeme, et me oleme sain mitu neist vähe PHP-nagu küsimärk bitti. Ja seal ei ole lokkis traksid. On kooloniga. Ja seal on lokkis traksid PHP, kuid see on vormi ja selle kandja PHP, mis töötab hästi HTML sest nagu näete, me sulgeda välja need PHP bits-- elses ja IFS ja kõik selle-- ja seejärel me Interspersing HTML sees samas pärast käsuvoog sätestatud PHP. Nii et ma olen lihtsalt kavatse Kiire jalutuskäik läbi selle sest see on palju sama kontseptsioone, mis me teeme enne. Meil kui ei ole tühi, sulgudes _GET_GET ["nimi"]. See kõik on sama värk. Me kasutavad _GET sõnastik, mis PHP saadab taotluse vormid, sest see on parameetrid tegevus, ja meetod on saada. Ja siis, et lõpetab selle. Koolon tähistaja lihtsalt seda teha kui if tulemus on tõsi. See on nagu lokkis traksidega. Ja tegelikult, see on lokkis traksidega teistes keeltes nagu Python, mis võivad ilmneda, kui sa just teha oma lõplik projekt. Ja siis see rida, tere. Siis on meil see imelik asi. Meil rohkem sulgudes. Pole HTTP there-- või PHP, vabandust. Aga seal on võrdusmärk. Ja siis on meil funktsioon, htmlspecialchars (_GEThtmlspecialchars (_GET ["nimi"]). See on omamoodi nagu rohkem täiustatud versiooni kaja. Nagu meil oli kaja kui viis printida asju läbi PHP. See on funktsioon, mis on määratletud PHP, et hakkab tegelema mõned vastik tegelased ja baidiväärtused et siis võiks mööda minna. See on alati ohutum kasutada seda. Aga kaja teeb tööd just fine, kui me ei ole tegelevad midagi liiga vastik. Ja nii see on samasugune mõju põhiliselt Selle kraami vahel küsimus märgid hinnatakse PHP. htmlspecialchars naaseb kena HTML trükitud väärtus _GET_GET ["nimi"], st mida me trükitud kujul. Ja siis ütlen tere, komadega ruumi, ja siis. See kogu asi vahel nurk sulgudes asendatakse iganes htmlspecialchars paneb välja. Nii et põhimõtteliselt sarnased mida me teeme. Ja meil on teine ​​väide, mis on tere, mis on loogiline. Nüüd lähme tagasi meie koodi ja vaata exactly-- oh. Ütlesin olemas, mis ei ole asi, mida me tahtsime teha. Tahtsime öelda ei ole tühi. Ja nii see peaks toimima vähe natuke parem, mitte tühja _GET_GET ["nimi"]. Ja see lokkis traksidega sobib, et lokkis traksidega. Meil meie looksulg siin. Kaja hello _GET ["nimi"]. Vaatame, kas see toimib veidi paremini. Me ikka töötab meie server. Tere Jason. Tere Jason. Ja see töötas sel ajal. Ja nii see on tõestus et saate tõepoolest kasutada looksulg, et sa teame ja armastust PHP koodi HTML. PHP koodi tingimusel, et Teid pset 6-- pset 6-- on veel üks võimalus teeme sama asja. Nüüd on meil võimsust. Meil on funktsionaalsus rakendada PHP koodi, et nägime pset 6 ise, põhimõtteliselt. Enne kui ma liikuda, mida on mõned küsimusi, et teil on sel hetkel? Jah [kuuldamatu]. Sihtrühm: Nii redaktsiooni pset6, kui sa jooksed seda, seal on ruumi. Ja ma ei näe, kus ruumi on pärast koma. [Kuuldamatu] start Avatud sulg. Kuidas lisada ruumi kuidas sa kirjutasid oma koodid? SPEAKER: See on hea küsimus. Ja nii Leiame, et välja. Nii et on tõesti hea küsimus ja üks, et ma ei pidanud. Aga teeme seda koos. Nii esiteks, mida Ma teen koos kaja Kui me lihtsalt kaja tere, on väljundiks tere. Kui me kaja nüüd seda saada eraldi line, Uurime, mis juhtub. Nii me klõpsake seda. Me ütleme, hi Jason. Nii jälle, me ei ole seda ruumi. Ja see on sellepärast, et PHP, kui me oleme kaja ükskõik kui palju spaces-- nope, mitte V-- ükskõik kui palju ruumi panime siin-- kui me nüüd laadige see uuesti üles, hi Jason. Jah, vaata, kõik need ruumid sai söödud. Ja see on midagi, mis kaja funktsioon teeb. Nii hoolitseda nimetatud ruumi ja see on üks põhjustest miks sa ei kasuta kaja ja te kasutate htmlspecialchars asemel. Ma olen uudishimulik, mida oleks juhtuda, kui me seda tegime kus me suletud ruumi string. Ma ausalt ei tea, mida juhtub, kui ma seda teen. Nii et üks võimalus. See on üks viis hoolitseda selle eest. Kui te wrap ruumi string, siis ruumi on väljund kenasti poolt kaja. Kindlaim asi, mida teha on teha htmlspecialchars. See on alati kindel. Aga nüüd on meil võimalus seda teha seda kaja, kui vaja. Ja samamoodi, saame Kaja uued liinid, kõik omamoodi kraami te olete juba tuttav teeb PHP. Keegi teine, mida on enam küsimused, mida teised inimesed on sel hetkel umbes PHP? Kui inimesed näitasid natuke hilja, Ma olen õnnelik, et jääda pärast natuke ja rääkida mõned alguses. Ja see on ka kõik livestreamed, ja arhiveeritud, mis on hull. Igatahes, nii et nüüd teeme mõned rohkem arenenud kraam PHP. Ja üks esimesi asju, mida toodi C oli silmuseid. Ja PHP on võimsam loop nimetatakse foreach loop. Ja tundub, et see-- iga tühja nagu tühi, looksulgudega, tehke asi. Nii et see on põhimõtteliselt stenografist. Vaata, silmus nagu süntaktiline ehitus töötati välja C ja kokkupanek keel ja asju. Töötati välja C, täpselt, lühendina jaoks palju tüüpe silmuseid et inimesed näeksid. Nagu siis, kui kirjutas loop, siis Tihti oli initsialiseerimishetkel hukati kohe alguses, et seisund, kus loop oleks stop-- ja see on omadus see on lihtsalt mõnda aega silmus, või et mõnda aega on täpselt lihtsalt, et feature-- ja seejärel incrementation samm lõpus. Ja nii sa sageli leiad end kirjalikult koodi nagu järgmine. Ma lähen kustutada osa sellest. Aga kui me iterating läbi tegelased massiivi, Näiteks nagu me oleme sain hulgaliselt tähemärke. Sorry, et tuua tagasi C. Ma tean, sa arvasid teinud. Aga see on ainult selleks, õppe PHP, ma luban. Nii et kui sul on char str pikkus 8, ja olgem öelda, et see ütleb Hellooo koos trailing null. Hea, et see on meie string. Ja siis oli meil silmus. Meil on int i võrdub 0. Ja me tahame, et väljuda, kui str i võrdub ei võrdu tühjaks, sest me väljuda, kui see võrdub null. Ja siis me teeme i ++ igal punkti jaoks silmus. Midagi koos str i. Nii et põhilised valem oli, meil oli see massiiv, et me tahtsin käsitleda eraldi elemente. Aga mida me pidime tegema, on pidime põhimõtteliselt luua eraldi täisarv muutuja, mis oli lugedes üles iga aeg läksime läbi silmuse. Ja siis oleks meil siis helista strstr [i] kui me tõesti tahtsid teha lihtsalt minna iseloomu poolt iseloomu, eks? Me ei taha, et juurdekasvu täisarv ja siis kasutada, et täisarv juurdepääsu iga märgi ükshaaval. Me tõesti tähthaaval. Ja nii iga arukalt arvutab, et meie jaoks. Kui meil on hulgaliselt, mis saame kuulutada PHP kui Lihtsalt-- kui meil on muutuv nimetatakse, olgem kutsuvad seda valikut. Imedest ei kirjutades, et see on nagu iga teine ​​muutuja. See on lihtsalt massiivi. Ja meil on vähe [kuuldamatu] nagu 1, 2, 3, vaid mingi lähtestatud massiivi. See on OK, see ei meeldi minu foreach. Aga kui me foreach-- tegelikult Ma kirjutada, et natuke vale. On kaks võimalust teha foreach loop. Seal on ka süntaksi ja kui süntaks. Ja me teeme süntaksis esimene, mitte nii. See on minu viga. Nii foreach num massiivi, kaja num. Ja PHP karjuma mulle miskipärast. See järeldus ootamatu aastal midagi, mis on natuke vaeva. Aga me nuputada miks see nii on hetkel. Nii ei meeldi, et. Proovime abil nagu. See eelistab nii süntaks on tundub. Nii teeme foreach massiivi num. Nii vähe selgitus mis juhtus Kas nii süntaks on saying-- ka esimene, Vaatame, mida see prindib välja. Nii me avada meie IDE. Käime siin. Me ütleme, Tere Jason. Ja ta tegi 123, mis olid sisu massiivi, et oleme loonud up top. Nii sukeldudes see foreach loop, meil on muutuja nimega massiivi mis on massiiv kolme numbrid. Ja siis me teeme foreach massiivi num, kaja num. Ja see on rohkem intuitiivne kui ette ripnema. Me öeldes, ravimisel iga asjad massiivi kui num, Ma tahan, et sa mulle num. Ja see on täpselt see, mida ta teeb. PHP on arvutamist kui sa ütled foreach massiiv, ja sa oled tegelevad massiivi, mida sa lähed tahan korrata üle on märke, et massiiv, on ints, et massiiv, on elemente, mis massiivi. Ja see on lastes teil salvestada need muutujad nii num, ja siis lihtsalt väljund num kohe mitte öelda, Mul on muutuja nimega i ja siis ma tahan väljund strstr [i]. Ja nii, et võimaldab meil teha lahedaid asju. Nagu põhimõtteliselt ei ole meil luua need muutujad nagu i poolt ja teha kõik Selle incrementation kraami lõpus. PHP hoolitseb kõigi selle teile. Nüüd räägime foreach kui see kehtib meie _GET sõnastik. Nii me välja kommenteerida kiiresti. Nii et meil on meie _GET massiivi. Meil on see muutuv. Ja see sai mõned asjad on. Just nüüd, meil on ainult üks muutuja edastata seda, mis on nime. Aga kui me vajutage Enter, nüüd meil on kaks muutujat. Saame nimi ja vanus, näiteks kui me tahame saada vanusest ja ka nimi inimene, veidralt piisavalt. Nüüd _GET läheb olla sõnastik kaks elementi, kahe põhiväärtus paari. Ja esimene key-- ma lähen kirjuta see üles laual ka. Meil on meie sõnastiku _GET. Vabandame, see on natuke raske mõista. Aga sees meie sõnastiku meil Nime, mis saab olema midagi et me antud. Ja me peame vanus, mis on ka saab olema midagi, et me antud. Ja see on täielikult meie sõnastikku. Nii see ju kaks elemente. Ja seda sellepärast, foreach silmad on targad, me Võib arvata, ja õigesti Võib arvata, et foreach võib korrata kaudu sõnastik, väljatrükk saadud väärtused nimi ja vanus. Nii saab tegelikult teha just seda. Olgem ehitada foreach loop. Ja me ei kavatse teha _GET nagu. Ja me teeme järgmine. Vaatame, mis juhtub, kui me kirjutame lihtsalt sõna, ja siis öelda kaja sõna. Oleme ka läheb kaja uus liin vaid teha seda veidi selgem, mis toimub. Vaatame. See ei anna mulle mingeid vigu. Ja me sulgeda. Meie kodulehel, sa lähed tegema palju, et jooksul pset7. Nii me ütleme, minu nimi on Sam. Minu vanus on 45. See ei ole. Aga ta prindib välja, kui oodata, Sam 45. Ja nii sa märkad, et Mis foreach loop did-- siin lähme tagasi, et nii see on kuni kohta board-- saame _GET kui sõna. Ja seal oli neli asja _GET. Aga see ainult välja printida kaks asja. foreach, olles oma luure ise, Eeldatakse, et see, mida me tõesti tahtsid oli väärtuste mitte võtmed. Aga seal on nii, et me võiks printida võtmed välja ka, kui me tahtsime. Kui me tahame ka teada, milliseid Nende muutujate kutsuti, seal on nii, et me pääseb ka seda. Ja viis omamoodi teha, Nii võime öelda, laseb tõesti jagada see põhiväärtus paari. Vaatame, mis juhtub nüüd. Nii et meil on võti. Meil on väärtus. Meil on veel üks uus line loetavust. Ja vaatame, mis juhtub kui me teeme seda nüüd. Ma ei tea, kui vana Jason on. Jasoni 15. Nii et meil on nimi Jason, vanus 15. Nii oleme suutnud pääseda võti ja väärtust paari sõnastiku lihtsalt öeldes, kui olulised punktid väärtus. Ja see on foreach süntaktilise suhkrut natuke, mis võimaldab pääsete asju sõnastik. Loodetavasti selline rõhutab võimu foreach loop. Saab päris palju visata midagi, mis tundub iterable, nagu midagi, mis on mitu elemente nagu massiivi, nagu dictionary-- need kaks Esmane asju teil töötavad koos nii elus kui ka pset 7. Nii et sa ei viska seda kraami seda ja siis nuputada mida sa tahad teha. See ütlen, OK, ma lähen need asjad on andmeid, et võeti vastu mulle. Ja see on midagi, mida sa oled kavatsed kasutada palju on pset 7. Ma lähen kiirkerimist maha lihtsalt näha, kus ma olen. Kas inimesed on küsimusi sel hetkel? Küsimused üldse? Jah? Sihtrühm: Nii võtme ja väärtuse, siis võiks nimetada seda midagi muud ja ikkagi töötab? SPEAKER: Oops. Wow, ma täiesti jättis kogu liini. Hea töö. Nii, a. Key ja väärtus on vaid konventsiooni. See on kasulik. Sa saaksid mõned disain punktid, võibolla mõned stiili punktid millega seda teha, sest see tõesti väljendab kavatsust. Aga ütleme ja yarp. Sihtrühm: Sa ei pea midagi muuta HTML faili et kajastada mis? SPEAKER: Üldse mitte. Sihtrühm: Ja see lihtsalt ei tea, et sest võrdub suurem than-- Ettekandja: Jah. Sihtrühm: --that näitaja, et see on-- Ettekandja: Jah. See on foreach süntaksi, aga jah. Sihtrühm: Ei ole tüüpe. Mis siis, kui sa tahtsid vanus olla vaid number? Kas on võimalik seda teha? SPEAKER: On viise, et kontrollida, kas muutujad vastavad teatud tüüpi. Nii PHP küsib veidi rohkem sa, sest puuduvad liigid. Mõnes mõttes see küsib vähem. Mõnes mõttes see küsib rohkem. Sest kui sul on lihtsalt midagi muutuja, sa ei tea, millist tüüpi ta on. Aga kui sa oled tark umbes muutujad et olete mõnele tüüpe ja veenduge, mis toimib ainult return-- sa tahan funktsioone ainult tagasipöördumine üht tüüpi väärtust nii et saab põhimõtteliselt eeldada, et muutuja saad tagasi funktsioonist on sellist tüüpi mis te arvate, on see, põhimõtteliselt. Aga seal on mõned meetodid mille abil saab vaadata. Ma ei mäleta neid välja mu peas. Ma ootan seda siniseks. isint? isstr? Leidub võimalusi ehitatud PHP, mida saab kontrollida tüüpi muutujatest teile. Aga kui sa määrata muutujaid teravmeelselt, siis ei tohi pead tegema, et liiga palju pset 7. Aga need meetodid ei eksisteeri. Ja see on midagi, mis on keel ise. Ja ma ei mäleta täpset süntaksit. Võiks isegi otsida see üles. Kuid aeg on sisuliselt. on Kas keegi on veel küsimusi? Jah. Sihtrühm: Mul on veel üks. Nii et sa mainisid GET meetodiga, kuid sa ei maininud POST meetodit. Kas me jälle on? Ettekandja: Jah, me tule tagasi seda. See on täpselt see, mida ma otsisin minu telefoni, mis nüüd magama, aga ma leida. Lihtsalt veenduge, me tabanud kõik PHP märkmeid. Yep, pole silumine versiooni. Jah, meil on veel mõned asjad, mis me tahame teha nüüd selles punktis. Nii räägime POST, mis te mainisite, ainus erinevus vahel GET ja POST on et mäletad, kui me vaatasime sellelt aadressilt ja nägime, oh, nimi võrdub ja vanus võrdub yarp on õigus URL meid seal. POST on veidi saladuslik selle läbimise kohta. Nii et kui sa ei taha kasutaja teada, näiteks, siis ei tahtnud kasutajanime ja salasõna isiku praegu sisse logitud kuvatakse URL, mis on mõistliku asi et ei taha URL, sest keegi ei näe. Kui nad viitavad kellelegi lehel ei taha oma URL krohvitud seal, sest see võimaldaks inimestel sisse lihtsalt koos kleepimine URL asemel tegelikult täites vormi. POST on natuke rohkem saladuslik. Ja ainsad asjad, mis me peame muutma on selle meetodi muutust alates saa postitada. Ja siis sees HTTP asemel juurdepääsu massiivi _GET, me läheme juurdepääsu massiivi _POST. Ja me märkad, et kui avame selle tagasi jälle, Jason väheneb aeglaselt vanus. nimi Jason, vanus 14. Sama värk hüppab. Aga me läheme URL ja need muutujad ei ole olemas. Ja nii, et POST passes-- nii mäletan kuidas vaadata allikas lehele. Läheme võrku. Me värskendada. Ja see on veel üks asi, mis POST teile hoiatusi. Te olete näinud kasti, teksti kasti niimoodi brauseris. Kas oled kindel, et tahad saata kujul uuesti? Post Mis saates need vormid. Sest põhimõtteliselt, kui sa saatsid oma krediitkaardi andmeid keegi, et ei kavatse näidata üles URL. See saab olema POST taotluse. Nii et kui sa värskenda lehekülge, see uuesti saata, et pärast taotluse. Nüüd me ei taha saata moodustada uuesti, sest ta ei kavatse luua korduvaid oste. Ja me märgata, et siin, meetod, mida me kasutame on POST. Ja see oli tõesti üle baiti. See üle 401 neist. Programmi päris pisikesi. Aga seal kuskil, et näeme väärtused, mida edasi. Veebilehti ise näen, kuid me nagu kasutajad ei ole võimalik näha, kui sa oled häkker. Kui sa oled hea häkker, saate otsida. Kui sa tead, põhi vormi HTML, väärtused teeb Endast lehekülgi. Sul on võimalik näha. Väärtused on seal, nad natuke vähem selge teile juurdepääsu, põhimõtteliselt. Kas meil on enam küsimusi GET, POST before-- mida me teeme järgmine tegelikult vaadata mõned koodi et sa oled andes in pset 7, rääkida kuidas ta kasutab mõnda neist mõistetest, ja rääkida asju, mida sa ei kavatse to pean tegema natuke ka pset 7. Veel küsimusi enne seda? Rohkem küsimusi teiega on? Hea. Olgu, vaatame natuke on pset 7, Kahtlemata mida on kõik kõige põnevil. Ma mõtlen, et see on midagi, David läheb läbi natuke. Aga me peame kolm kataloogi juures top, samuti konfiguratsioonifaili. See on andmebaasid, mida me tulen räägime umbes viis minutit. Sisaldab sa ei pea kunagi vaadata selle kataloogi kui te ei taha, aga see on tore tean, seal on igasuguseid abilisi. Abilised on nagu abivalmis funktsioone. Ja siis on meil config, milles mõned asjad üles. Leidub funktsioone, mis CS50 on kirjutatud, et on abimees ja config. Ja mõned PHP, et juba väljub faile teeme palju rohkem Sorteeri on nüri jalg töö. Nagu siis, kui me minna avaliku login.php, mis on see, mida näitab üles just siis, kui te lähete pset 7. Me näeme, et seal on see nõuab avalduses. Ja see omamoodi nagu terav hulka, hashtag hulka, kui sa oled uuema põlvkonna. Aga see põhimõtteliselt ütleb, et mul on vaja juurdepääsu kõigile funktsioonidele config.php. Ja siis võiks olla vaja igasuguseid muid asju. config tegelikult vajab abilisi. Nii et kui teil on vaja config, sa oled ka sh või nõudes abilised ka. Nii, mis annab teile juurdepääsu kõigile cool funktsioone, et me ei kavatse kasutada, Asjad muuta. Ma olen tegelikult läheb leevendada see veidi allapoole. Nii funktsiooni siis me oleme läheb jalutada vahetult enne astume SQL vähe natuke on login.php funktsiooni, lihtsalt sest ta kasutab mõningaid teemasid et me lihtsalt rääkisime PHP. Näed Esimene asi on see, kui $ _SERVER. See on veel üks globaalse muutuja, et sa lähed tegelema. See on nagu _GET ja _POST, kuid mida server sisaldab See võib teile tea, kas taotlus meetod oli GET või POST. Nagu varem, mida me teeme on lihtsalt meie kood, mis me kirjutasime, Me lihtsalt muutuvas seda GET ja POST sõltuvalt sellest, mida HTML on. Kuid on lehekülgi, mis võib olla külastatud mõlemat tüüpi taotlustele. Ja võiksite teha erinevaid asju sõltuvalt tüübist taotluse, nagu login teeb. Nii saate kontrollida, et taotluse meetod läbi pääseda võtmed, läbi kasutades nuppu ja saada väärtus midagi sõnastik _SERVER. Nii et on veel globaalne muutuja nagu _GET ja _POST. Kui see SAADA tahame muuta sisselogimist. Render on funktsioon, mis põhimõtteliselt lihtsalt paneb üles HTMLi ja läbib seda mõned parameetrid. See pealkiri on parameeter, mis on kasutatud väljapanek Kummalisel pealkiri lehele küsimus, asi siin, öelda või hello meie eelmise näite. Nüüd on meil teine ​​asi. Või kui see on POST, me teha mõned muud kraami. Me kasutavad seda tühja meetod. See ei ole olemas, see on tühi. Ja me nägime enne, PHP on päris palju ehitatud meetodite et David will-- kui meetodid, mis on kasulik teile, neid hoiatada teid kõndida läbi, et David annab alguses ülevaate, ja ka Zamyla abivalmis bitti. Ta on tagasi kõigile. Me võime kõik rõõmustada. Vabandan on tabavalt nimetatud funktsiooni et lihtsalt põhimõtteliselt prindib välja mõned veateated sest CS50 on väga viisakas. Ja nüüd see, et see on keeruline natuke, sest see on koht, kus me oleme päringu andmebaasi. Nüüd me ei ole rääkinud andmebaasides. Ja me ei kavatse järgmisel viis minutit või nii, maksimaalne. Kuid see on funktsioon et CS50 on kirjutanud saada tabeli põhimõtteliselt andmebaasist et me töötame koos in pset 7. Ma lihtsalt ei oska oma null indekseerimise täna. Aga jah, see on 7. Nii päringu see läheb tagastada massiiv, põhimõtteliselt on võti natuke. Ja kuna neid asju ei ole kirjutades, et rida on hulgaliselt massiivid. Sest kui me mõtleme tabeli, mida me teeme on, kui olete õppinud psets nagu mängu 15. niikuinii kus sa pidid kasutama topelt rida, me põhiliselt on hulgaliselt teisi massiivid teeb laua. Ja sul ridade ja veergude. Ja siis pääsete neile meeldib [0] [1], saad [0] [1]. Basic värki. Mida me teeme siin see funktsioon, me palume andmebaasis kui kasutaja, et on üritan sisse logida, et on saadetakse läbi POST meetodit. Me näeme me saada kasutajanimi alates _POST. Nad on saadetud kasutaja või siis, saadab väärtus läbi vormi kaudu POST sest see kasutajanimi ja parool kraami. Kontrollime kasutajanimi näha, on see tabelis? Sest kui kasutaja logib aastal, siis oma kasutajanime tuleb hoida tabelis kasutajad, kes on sellele saidile. Ühesõnaga, kui kasutaja on andmebaasis, päringu läheb tagasi et rida, mis on massiivi. Aga keeruline osa on see, et kui isegi siis, kui topelt massiiv on ainult üks rida, isegi kui see on üks rida array-- nagu sul basically-- kui sul on suurus ühe massiivi mis hoiab teise massiivi, sa oled tõesti tegemist ühe veeru. Aga see on ikka ravida nagu topelt massiivi. Ja see on koht, kus see võib mõnikord saada keeruline, sest meil rida siin. Meie muutuja on rida. Ja siis me luua uus muutuja nimega reas ja milles see võrdub esimese rea rida. Ja märkad, et kommentaar ütleb, et see on esimene ja ainus rida. Nii et see on keeruline osa, kus nüüd funktsioone võib naasta massiivid väga lihtne. Seal ei ole mallocs. Sa ei näe mallocs. Nii et sa ei näe seg vigu. Aga funktsioone ikkagi kulgeb ümber massiive ja andmete rühmades. Ja sa pead olema ettevaatlik, mida täpselt oma ülesandeid naaseb. Ja isegi kui see on üks veerus niimoodi, päringu on ikka veel tagasi topelt massiivi. Nii et juurdepääs, et column-- või sa ei mõtle kõik see tagurpidi kuna me räägime rida. Aga juurdepääsu, et üks rida, sa ei saa lihtsalt öelda, rida. Kuigi see on üks rida, sa pead ei rowsrows [0] kuni omamoodi kõrvaldada see välimine natuke massiivi ja just teie ühes reas. Kas mõned muud asjad. Seal on funktsioon nimetatakse password_verify tõestava Parooli et oli postitatud. Ja siis me näeme teise globaalse muutuva siin, _SESSION. Põhimõtteliselt Session ID kuidas teil jälgida ja kui keegi on sisse logitud või mitte. Nii kohe koos login.php, me metsaraie kasutaja. Mida me tahame teha, on me tahame öelda sessiooni id on võrdne rida id, mis lihtsalt mõtet, sest iga rida on erinev id number osana tabelis. Me võtame arvesse SQL on teine, nii et kui mõni selle Tundub natuke nagu blah, siis kõik saab lahendatud. Aga me ei kavatse seada id võrdne õige asi, sisselogimist kasutaja. Vabandan, kui midagi läheb valesti. Ja see on sisselogimise otstarbeks elu nagu professor Humala ütleks. Nii et oli login.php. Ja palju PHP koodi kirjutad in pset 7, ta hakkab olema natuke. Ärge unustage, et chmod kuni õige õigusi. Seal on natuke et alguses spec. Aga PHP, et sa oled kirjalikult läheb teeme asju, mis on sarnane sellele. Sa lähed, et olla juurdepääsu mõned asjad, mis antakse teile globaalsete muutujate PHP, et Tegemist on praeguse sisseloginud kasutaja, kas on olnud taotlused saata see lehekülje, erinevad asjad niimoodi. Ja see on ka potentsiaalselt iterating läbi rida see asi. Erinevas funktsioon, päringu ei tagastab double massiivi. Ja kui on olemas rohkem kui üks rida on, kui are-- jah, kui seal on rohkem kui üks rida seda, siis võib lauale. Ja võiksite korrata läbi rida selle massiiv kasutades foreach loop et me kirjeldatud. Nii et kui sa foreach kohta kaheses massiiv, millised on word-- siin Ma tegelikult kirjutada. Ma kirjutan seda kiire siin. Kui meil on foreach ridu nagu real, mis on tüüpi rida? Kas keegi teab? Said pihta? Nii rida on kahe massiivi. Mis on foreach läheb järeldavad et me tahame selle topelt massiivi kui me iterating üle? Meil on põhimõtteliselt eeldada, et see saab olema kas elemendid, või ridade või veergude põhimõtteliselt. Ja nii ridade ja veergude me saab käsitleda kui sama asi. Põhimõtteliselt, mida foreach loop läheb mida teha, on see läheb tagasi rida. rida saab olema tüüpi järjest samas reas on kahe massiivi. Nii et kui sa annad foreach topelt rida, see on ei kavatse korrata rohkem kui ühel tasandil sügav. Milline on põhimõtteliselt öelda, kas on kaheksa rakkude selles table-- 1,2, 3 4, 5, 6, 7, 8-- foreach loop ei ole lähe läbi kõik need rakud. Mida foreach loop teen oli see läheb läbi see järjest teile kogu see rida. Ja siis lähen läbi, et järjest. Seega ainult itereerib ühe taseme sügav. Kui lisate nested foreach loop, siis saab ravida igas reas naasnud rida, sa foreach rida element, oletame. Ja siis võiks echo element. Nii et lühidalt vähe täiendõpet, kuidas Te kasutate foreach silmad kontekstis päring. Kas on mingeid küsimusi PHP? Üldse midagi enne, kui me liikuda räägime SQL ja nalja andmebaasi? Hästi tundma? Hästi tundma. Hästi. Jätkame tagasi PowerPoint, mida te ilmselt ei pane. SQL, jess. Inimesed, kes on minu osa tavaliselt teavad, et alamrubriikidesse lühendid on alati just esimesed sõnad Ma arvan, et selle mängu, et algorithm-- et akronüümi. See ei ole algoritmi. Nii SQL on andmebaaside. See on keel, mis töötab andmebaasides. Ja kõik andmebaasid on on tabelid, vähemalt viis et SQL esindab neid. Teine võimalus mõelda andmebaaside andmebaaside komplekti võtmeid ja väärtusi põhimõtteliselt. Võite mõelda andmebaasi sõnaraamatu ja ka tabeli. Põhimõtteliselt on see nii, et siduda erinevaid andmeid teiste andmetega, sageli läbi ridade ja veergude. Ja see, kuidas see on SQL toimib paremini. Nii et see on üks näide tabelis. Mul on mõned näited inimesed minu osa, mis Mul ei olnud aega, et muuta. Aga meil asjad ID, nimi, suurriik, ja kodulinna. Ma ei tea, kus keegi on alates minu osa, nii et ma lähen lihtsalt eeldada, igaüks on New York City sest mul on kõrge statistilise tõenäosus on õige. SQL võtab automaatselt hoolitsust ID veerus teile. Kui sisestate uue rea arvesse SQL andmebaasi, see juurdekasvu et ID number ja lihtsalt põhimõtteliselt kinni nagu viis nime, suurriik, kodulinna, kes koridori lõpus, et tabelis. Nii ID on veeru saate kunagi ei pea muretsema. Aga, nagu puhul of login.php, kui me olid üha sessiooni ID tabelist ja lihtsalt kasutades ID, ID on võimalus üheselt tuvastada element andmebaasis. Nii et kui meil oli kaks Sams, mõlemad mis õpetas CS50 ja nii sellest, kes olid Milwaukee, need oleks ikka on erinevad ID numbrid ja seega eraldiseisev kontekstis tabelis. Nii et see on see, mida SQL tegeleb koos, töötades taga otsas. Nüüd on need neli käske et peate töötama koos SQL. Ja ma viskasin nad kõik ühel slaidil. Aga me läheme läbi need kõik eraldi. Esimene käsk on UPDATE, mis teeb mida võite oodata. Ütle, et mõned andmed tabelis, mis on vananenud. Nagu kui sa hoida jälgida inimeste nimed ja vanuses, kui keegi on vanuse kasvades, siis sa lähed tahan minna ja uuendada ainult selle isiku vanusest. Näitena, mis töötab meie esimene table-- ärge muretsege kirjalikult kõik Nende käskude samal ajal. Aga kui sul uuendada alla et saad hea selles osas, sest me ei kavatse mine tagasi lauale. Nii et kui me läheme tagasi laua, oletame midagi, mis juhtus oli oli maavärin või vigadeks line, et jagada otse läbi New York City. Ja me tahtsime uuendada kõik kes elas New York City. Nad kõik olid liikuda Pennsylvania. See ei ole kodulinnas. Nad kõik olid kolida New Haven. Seal me läheme. Nii et igaüks, New York kolib New Haven. Ja nii see on midagi, mis on toimetamine kolm rida selles tabelis. Aga SQL, mida saate teha et vaid üks avaldusega. Nii läheme tagasi uuendada. Lubage mul kiire kustutada selle pardal uuesti. Kui me räägime uuendamine on mõned osad süntaks, mis on olulised. Noh, kõik süntaks on võti. Aga asjad roheline on vabatahtlik. Valge on vaja, nagu eelnevalt nimed. Ja helesinine on asju mis sõltuvad tabelis. Nii et see, mis toimub koos värvilahendused siin, seal üleval. Nii et kui me tahame, et uuendada ainult need read inimesed, kes elavad New York, nii et mida me teeks, kui me ütlesime UPDATE? Nii tabelis on koht, kus me paneme nimi meie lauale. Ütleme nii, et nime Meie tabelis on tabelis üks. Nii et me tahame uuendada tabelis üks. Ja me tahame set-- Mida me tahame seada? Noh me tahame öelda, et column-- PHP kohtleb rida unikaalseid identifikaatoreid. Ja siis veerud erinevates valdkondades neid elemente andmebaasi. Nii et esimene element Andmebaasi on nimi Sam, suurriik CS50, ja kodulinnas Milwaukee. Nii et kui me ütlesime määrata, vaatame parameetrid jälle, et komplekti võtab. Meil on veerus võrdub väärtusega. Nii et me tahame öelda mõned column-- mis mäletan on field-- me tahame näha valdkonnas võrdne midagi uut. Nii et kui me just ütles uuendus Tabelis 1 esitatud nimetus võrdne Elliot. Saaksin inimest Uue sektsiooni seda. Aga kui me lihtsalt tegime uuendus tabelis 1 määrata nimi võrdne Elliot, mis oleks laua nägema pärast seda? Inimesed on aimu? Jah. Sihtrühm: Kõik, et rida muutuks Elliot. SPEAKER: Kõik kus järjest? Sihtrühm: esimeses reas. SPEAKER: esimeses reas? Miks esimeses reas? Ma ei taha, et valida teile. Sihtrühm: Võib-olla kõike kogu tabel? SPEAKER: Kõigel Kogu tabelit, jah. Ja see on täpselt õige because-- ma lihtsalt aidata teil natuke there-- sest me jätta vabatahtlik WHERE klauslit. Kui sul ei ole WHERE klausel, mida see käsk teha on see teen tööd iga üherealised tabelis. Igaühe nimi saada Elliott, põhimõtteliselt mis Elliot on väga õnnelik. Or Yanni, üks kahest. Aga kõik uueks nimeks. Nii, kuidas me kasutame KUS clause-- ja see kehtib kõigi Päritoludokumendi mis on kõigis need erinevad asjad. Nii märkad, et SET on veerus võrdse väärtusega. Ja nii ei kus. Aga need on erinevad tüüpi avaldused. Nii veerus võrdub väärtus SET on loovutamisega. Nagu me ütleme me tahame seada nimi võrdne Elliot. Aga KUS sätted, need võrdõiguslikkuse kohta. Ütleme, et me ainult tahtis muuta inimese nime, et Elliot kui nende nimi oli Ryan, oletame. Nii et kui me ütleme KUS nimi võrdub Ryan, et oleks edukalt vaid muutus name-- see oleks ainult nime muutmine valdkonnas ridadesse kus nimi valdkonnas on võrdne Ryan. Nii et kui meil oli mitu inimest nimega Ryan, kes kõik nende nimede muudaks Elliot. See on sarnane näiteks ja kui süü line jagab New York City ja igaühel liikuda New Haven, kuidas me suudame teha, et ühes hagiavalduses on UPDATE Tabel 1 sätestatud kodulinna = New Haven kus kodulinnas võrdub New York City. See on võimu UPDATE avaldus. Me võime valida suvalise arvu rida läbi tõelise avaldused umbes valdkondades nendes ridades. Me ei saa öelda, UPDATE Tabel 1 sätestatud name = Elliot KUS rida = 1, välja arvatud, et saame, kui me ütleme, ID = 1. Nii et me ei kavatse olla töötavad võrdõiguslikkuse valdkondades, võrdsus sambad. Aga kasutades ID-alal on võimalus valida üksikuid ridu täpsemalt sest ID valdkonnas on unikaalne tunnus SQL andmebaasi. Nii nagu ajakohastamine reas üks, ID võrdub 1. Uuendamine järjest kaks, vaid muuta, et ID number. Aga võimu KUS avaldus on, et me saate uuendada asju põhjal, mida nende kehtivaid väärtusi teatud asjad on. Jah Elliot? Sihtrühm: Ja mis siis, kui sa tahad mina-- Jällegi, see on teine ​​küsimus. Aga minu esimene küsimus oli, kus see nii on? Kuhu ma kaasajastamiseks? See on PHP kood? SPEAKER: Kus olete, jah. Me läheme rääkida millisest kõik see juhtub mingi kord läheme läbi kõik käsud. Aga mida sa pead tean nüüd on põhimõtteliselt et teie SQL andmebaasi eksisteerib midagi tuleb juurde päringu funktsioon, mis CS50 määratleb. Nii et kui te kasutate päringu funktsiooni pääsete selles tabelis. Nii et sa saadab need käske oma tabeli PHP faile läbi päringu funktsiooni. Võite ka mängida oma laua otse. Ja see on parim viis katsetada neid erinevaid käsklusi. Ja me läheme läbi, kuidas täpselt seda teha natuke. Nii et UPDATE käsk. Ja ülejäänud käsud saab olema omamoodi sarnased, kallal sarnaseid asju. INSERT INTO on ilmselt Kõige erineb UPDATE. Ma jätan selle sinna üles natuke ja töö siin. Nii INSERT INTO, näete et tabelis on ikka sama. Tahad INSERT INTO. Kapitaliseeritus, SQL on tõstutundetu. Nii et sa ei pea ära neid asju. Kokkuleppeliselt sõnad valge on kapitaliseeritud. Aga ma ka värvikoodiga neid. Ainus põhjus, et sa ära neid, kui sa kirjutad neid on lihtsalt rõhutada et need on konstandid. Ja nii võite vaadata kapitaliseerimine või asjaolu et ma olen värviline neid erinevalt. Nii on meil lisada, teeme Tabel 1 kord. See kõik on ühes reas. Ma lihtsalt eraldab seda Erinevate avaldused. Nii et ärge muretsege, et Tabel 1, teinud peale teine ​​rida. Nii et me tahame INSERT INTO tabel 1 mõned väärtused. Ja märkad vabatahtlik natuke, mis ma saan teise. Nii on meil väärtusi. Ütleme, et me tahame lisada Andi meie lauale, sest me ei pane Andi. Andi on haige. Lisame Andi meie lauale. Pea meeles, et ID number uuendatakse automaatselt. Nii et ainus väljad me vaja muretseda on nimi, suurriik, ja kodulinna. Ja nii, kuidas me seda teeme, Vaadates meie süntaks, on me oleme just sulgudes komadega eraldatud väärtused, millest igaüks on väärtus. Nii et kui me tahame, et sisestada Andi meie tabelis, kõik me peame tegema, on õigus Andi. Mis Andi on suurriik, inimesed Andi sektsiooni? Ta meeldib lennu või meeldib kiirus, või midagi. Mida me juba seal? Meil on CS50, lennu, kiiruse ja tugevuse. Sihtrühm: Ajarännak. SPEAKER: Time travel, hämmastav. Nii on meil Andi aeg reisimine ja oma kodulinna. See on tõesti hea küsimus. New York City, kui keegi teab. Igaüks on New York on õppetund ära võtta täna. Nii et see väide oleks sisestada, kui viiendas reas, koos suurriik ajal reisida ja kodulinnas New York City. Aga vabatahtlik valdkonnas on põhimõtteliselt viis et täpsustada, millist sambad soovid lisada asju. Nii, et me teeme seda nüüd, Andi, ajas rännata, New York City, läheb täpselt, et meie table-- nimi, suurriik, kodulinnas. Ja kui sa tahad teha midagi peale selle, nagu öelda sa ei tea kellegi suurriik, nagu, kuidas ma ei tea, Andi poolt suurriik alguses. Nii ma teadsin, oli tema nimi ja oma kodulinna. Mida ma võiksin teha, on suutsin do-- ma kustutada selle kiire. Ma tahan ainult värskendada sambad. Ja see on koht, kus vabatahtlikud tulbas hakkavad. Ma tahan ainult uuendada nimi ja kodulinn. Ja siis ma ütlen väärtusi. Ma teen Andi ja New York City. Kui ma oli jätnud nimekirja sambad ja lihtsalt teha need kaks asja, kus oleks New York City on läinud? Milline veerus oleks New York City on paigutatud? Inimesed on aimu? Suurriik, täpselt. Nii see lihtsalt minema järjekorras. Ja kui see jõuab lõpuks nimekirja, siis see lihtsalt lõpetada täites asju. Ja väärtuste et jään ka kõik veerud oleks lihtsalt NULL. Nii, sest me täpsustada nimi ja kodulinn, me lähed on ID 5, nimi Andi, suurriik NULL. Nii suurriik on deinitsialiseerimine väärtus. Sa ei pruugi saada Sama Valgrindi vigu, kui sa püüad ja seda kasutada. Kõik saab kenasti nullitakse välja, sest NULL on väärtus SQL. See on konstant. Ja siis kodulinnas on New York City. Nii see on lisada käsk. Enne astume, ei veel kaks käske. Kas inimesed on küsimusi UPDATE umbes lisada, SQL üldiselt enne Astume peale meie lõplik bitti? Inimesed tunnevad hea, väga. Armastan seda. Nii räägime SELECT. Minnes kraavi UPDATE siin. Ja valige saab olema väga sarnased. Eesmärk SELECT, VALI oma elule mõtte on teile kamp sambad mis vastavad teatud tingimustele. Ja kui ma ütlen rahuldada Teatud tingimustel meelt pruugi kohe tagasi minna, et WHERE klauslit mis tulid UPDATE. Ja see klausel täpselt seal SELECT. Kui me ei pane KUS § ja ütleme SELECT nimi, kodulinna kirjutatud, et vähe wrong-- nimi, kodulinna alates Tabel 1. Kui me lihtsalt öelda, et mida VALI läheb meile on see annan meile double-- tabeli, pigem. Topelt massiivi kui me oleme mõtled PHP meeli. Aga see on lihtsalt läheb meile topelt rida kaks columns-- nimi, ja kodulinna. Ja see ignoreerib ID. Ja see ignoreerib suurriik. Ja see lihtsalt annab meile iga üherealised kõnealuse tabeli. Nii et kui me lihtsalt lisada Andi, me peame Andi. Ja me peame originaal neli. Kui nad on uuendatud, mis kajastuma, jne, jne. Nii see on, sest me ei kasuta WHERE klauslit. Aga me saame seda kasutada täpselt Samamoodi me kasutasime seda UPDATE. Kui me tahame ainult tabeli nimed ja suurriikide elavate inimeste New York, saame täita avaldus nagu SELECT nimi, superpower-- Ma lihtsalt lahkuda selle-- FROM Tabel 1, kus kodulinna = New York City. Nii et see näitab, et saate saada täiesti erinevad sambad, ja siis pane sambad et sa ei ole isegi saada tagasi WHERE klauslit. Me isegi ei taha kodulinnas kõigile. Aga me tahame nime ja suurriik inimesed kelle kodulinn on New York City. Nii et me saab teha WHERE klausel saame tegeleda sambad et me ei pruugi taha tagasi. Samamoodi uuenduse, saame tegeleda sammastega, et me ei pea tingimata soovite värskendada. Me saame uuendada linna igaühele kelle nime on Sam, näiteks. Me saame uuendada linna Igaühel, kelle ID number on 2. Nii lihtsalt uuendada linna teises reas kus me ei pea tegelema vaja ühist küsimus. Ja kustutada on, kui soovite eeldada, kustutada Tabel 1. Ja siis on meil veel üks WHERE klauslit. Nii võime öelda, kus id = 1. Kustuta esimeses reas. Ja kustutada alati kustutada järjest või siis kustutada ridade arv. Kustutada laua taga, kus kodulinna = New York City kustutada kõik New York City. See on siis, kui oli ootamatu traagilise katk ja sa lihtsalt tahtsin, et eemaldada kõik lauast, kes elas teatud linna mis tabas katk. Võib nad rahus puhata. Need on neli SQL käsud et sa pead kasutama. Sa ei pruugi isegi vaja kasutada neid kõiki. Kuid need on nelja et CS50 ootab teid olla rahul laskumist nii viktoriini 1 ja ka pset7 ja pset8. Seal on lihtsalt, et laua uuesti. Selle üks, Roy suurriik on uuendati laserkiirte, mis on näide ma ei kasuta. Ma ei tea, millest üks Roy eelistab, kuid jõudu. Roy on suurriik tugevust. Katherine ei tee seda täna. See on kahetsusväärne. Aga ta on super kiirus. Noh, et oli PHP. Enne kui me räägime MVC, ei kellelgi on küsimusi PHP? Nüüd SQL või PHP kui sa äkki on tulla küsimus PHP? Hea. Hea küll, me kõik seatud siis. Nii räägib natuke umbes mudel seisukohta kontrollerid lähme tagasi mõned selle kraami pset7. Mis mudel seisukohta controller on-- ma ei ole päästa oma muudatused sisse logima sest ma täiesti tappis ta. Aga põhimõtteliselt on meil kaks Eraldi asju juhtub. Meil on avaliku kataloog, mis sisaldab kood, mis läheb täide ja veebilehti, mis on külastanud. Ja meil on ka see vaade kataloogi. Ja vaated sisaldab malle. See on see, mida funktsioon render-- nägime muuta funktsiooni kamp PHP koodi et CS50 on juba kirjutatud teile, mis võtab teatud parameetreid. Mida see kood teeb on see laskumist seisukohti, mis on komplekti nagu prewritten HTML-koodi ja see sisestamist väärtused arvesse teatud kohtades. See, kuidas, kui sa minema CS50 Finance, Samal päise kaudu on igal leheküljel. Sama jalus on igal leheküljel. Seda seetõttu, et viis et muuta tööd on siis see automaatselt plaaster, mis päise kaudu ja vaataja, mis leiad seisukohti. Me tegelikult ei lähe päise kaudu, ja otsida, see on HTML faili pea. See ju mõned stylesheets. Sa ei pea vaatama CSS jaoks pset7 kui sa ei taha. Aga sa võid muuta neid, kui soovite, et Sinu Finance pisut erineda. See ju mõned PHP header natuke näha kui seal on erinev pealkiri siis tuleks selles päise kaudu. Aga mõned muud skriptid, ja linke ja muid asju. Head lõpeb, keha hakkab, ja oih, meil on see imelik väike ots natuke. Ja seal on div, nagu vormitu mingi element mis on idee keskel. Ja siis, kui me näeme jalus, meil lõpuks div. Meil on põhjas, mis on kus jalus tekst on. End of div lõpp keha, lõpuks HTML. Mis muudab on tehes on muuta on omamoodi siluda päise kaudu, et erinevat PHP faili sisaldab tegelik asjad, mis Näete, nagu oma laua varude kui ostad või müüsid aktsiaid. Ja siis lisame jalus. Ja mudeli vaade controller mõte on see, et me soovite eraldi, kuidas asju vaatavad koodi. See tahame eraldi frontend ja backend, kus esinda värk, et kasutaja näeb, kena visuals-- HTML, CSS, asju, pilte, jne. Ja backend on PHP. See on kirjutatud koodi. See on koht, kus kood, mis on teeb tegelikku tegevust. See on siis, kui olete lisatud varu oma laua, kui sa osta ja müük, mis on backend. Ja me saame, kui nägid, sealhulgas PHP otse HTML. Nii et me oleks võinud teha Selle ülesande on lihtsalt pidin HTML-faili iga lehekülje, nagu login. Ja siis sellel lehel, lihtsalt oli suur blokk PHP koodi, sealhulgas kõik koodi Sellel lehel just oleks vaja. Ja siis me võiksime olla teha, et portfelli. Me oleks võinud teha kõik osta ja müüvad jooksul üksikuid lehti. Aga sellepärast, et me muutes eraldi, kus me kirjalikult backend kood, saame kergesti muuta, kuidas asju vaatama ilma muutuvad iga faili. Teeme asjad lihtsalt lisada uus div alt of-- Tere ma muuta jalus. Sa võid teha midagi sellist. Aga ka, saab muuta kogu visuaalne kujundus mõjutamata, mis on läheb backend. Ja saate muuta kogu backend ja veel on see välja täpselt nagu see oli enne. See Kas idee mudeli vaade kontroller. Ja see on tegelikult kehtestatud paradigma mõned programmeerimiskeeled võiksite kasutada Lõpliku projektid. Kui sul iOS arengut, neil on seisukohti, mis on see, mida sa näed iPhone, ja siis taustaprogramm nagu näiteks eraldi asi. Võite mõelda natuke. Seal on palju kahendfailid sisse arvutiteadus, mis on naljakas, sest kõik on binaarne. Ma ei plaaninud seda. See oli pun tahtmatu. Jah, pun ole ette nähtud. Aga nagu .h failid ja .c faili, seal on palju eraldav asju, mida me ei pruugi vaja. Nii saame lihtsalt muuta h failid või keegi saab lihtsalt näha .h faili ja tean täpselt funktsioone, mis on ka .c faili ilma et teades nende rakendamist. See idee komponentide eraldamine mis sõltuvad teineteisest kuid saab omamoodi juurdepääsu üksteise erinevate kanalite kaudu, möödaminnes muutujaid, lihtsalt lisada avaldused asjad niimoodi, et see põhimõte aitab luua rakendusi mis võivad olla kergemini toimetanud mitu inimest, saab kergemini muutunud või muutmine suur ulatus, ja neid on lihtsam siluda ka palju võimalusi. Tõesti kiire, ma pean mõned näpunäited pset7, mis ma teen täisekraanil, et sa ei lihtsalt vaadata the-- tip tip Tippee. Seal ei ole nii palju näpunäiteid. Aga ma mainisin PHP on raske siluda. Kahese seda kontrollida. Kui koodi pole lihtsalt ilmumise lehel see on ilmselt PHP viga, vabandust. Sa ei pea kunagi vaadata CSS, kui sa ei taha. Aga kui sa oled valmis, see võib olla toreda nalja asi lihtsalt minema ja jama CSS parameetrid. CSS ja HTML on näide mudel Arvestades kontroller stiilis asi ka, eks? Sa oleks võinud stiilis sildid sees HTML elemente. Aga kui sa omamoodi allhanke neid CSS, nad kergemaks muuta, ja mängida ringi ja nautige. Ravida CS50 abimees toimib mustad kastid. Sa ei pea teadma täpselt krohvikihid teeb, kuid usun, et see alati õigus asi sõltuvalt sellest, mida sa andke seda, asjad niimoodi. Ja ma soovitaks vaadates Davidi ülevaadet, läbimas kõiki kraami, mitte ainult kõike, kuid tõesti ravib Nende mustade kastide. Ei lähe need funktsioonid otsin vigu. Ja teretulnud tagasipöördumine Meie overlord Zamyla. Hea. Kas on olemas lõplikud küsimused enne me mingi põrge päev? Kas ma olen ikka elus? Hea. Hi livestream inimesi. Hea. Kas on enam küsimusi? No? Ja siis ma arvan, et me oleme hea minna täna. Ma jään umbes natuke hiljem, kui inimesed olid küsimused nad kartsid küsida oja. Aga muidu on hea päev.