SAM LEVATICH: Dobrodošli Odjeljak za ovaj tjedan. Nisam Andi. Andi je pao bolestan taj dan, a ja su vrsta pozvan u zadnji tren preuzeti. To je sezona gripe, kako bi bili sigurni da ste boravite čisti, pranje ruku, i zdrave prehrane, tako da što, također, nisu prikovan za krevet. No, bez daljnjeg ado, neka je početi. Danas ćemo razgovarati PHP malo bit-- kako PHP odnosi u HTML, kako ga odnosi na CSS, a neki webu stvari koje je učinio na zadnje dodjele. Idemo pričati malo o SQL i kako možete raditi s bazama podataka, što je prilično ključna komponenta P postavljen 8-- P set 7. P set 7. A onda ćemo pričati malo malo o tome kako pregledavati kontroleri rade i zašto to je filozofija iza nekih Moderne web stranice i različiti dizajn. Prilično mnogo mnogo vrsta aplikacija i aplikacije možda brod koristite ovaj model, Okvir kontroler pregled, da ćete biti koristeći P set 7, pa ću razgovarati malo o tome zašto da je postao popularan, zašto je važno i lijepo. A onda ću napokon prešli na neki savjeti rješavanju P set 7. I ako imamo vremena lijevo preko na kraju, zapravo možemo učiniti nešto raditi na tome zajedno. Dakle, PHP. Zapravo, možda ste primijetili this-- ti stvarno ne moraju zaroniti u it-- ali P postaviti 6 imao neke PHP kod koje se događa. I zato PHP je C-kao jezik, PHP, za razliku od HTML i CSS, je programski jezik, dok je HTML i CSS su statični. Oni su jezici koji se bave sa stilom i vizualnim izgledom. PHP je pravi posao. PHP ima petlje, to je conditions-- sve to da je zabavno o C. Ima nekoliko stvari koje su malo malo bolji od C, što ćemo vidjeti, ali mislim da je najlakši način za razgovor o PHP je samo roniti u. Tako ću ići pravo u IDE u ovom trenutku. Prva stvar koju ćemo učiniti je zapravo izgledaju malo na neke od PHP kod koji je u P set 6. Dakle, način na koji radimo that-- prije, na način na koji smo bili trčanje poslužitelj za aparat je da ćemo morati type-- koristite ili provedbu ili provedba Osoblje je od server.c odlaskom u imeniku i trčanje server.c s bilo ni arguments-- tako jednostavno nazvati na lokalni domaćin, što je ono što vjerojatno učinio većinu time-- a zatim ga hranjenja directory-- s koji se koriste kao svoj korijen gdje web stranice će se pokrenuti, zapravo. Ovaj tjedan za P postavljena 7, kao što je velika kao naš kod za server.c je, postoje ljudi koji su već napisao ove fine stvari više na CS50 da imaju malo više funkcionalnosti, server program koji je sposoban suočavanja s malo više od zamršenosti da ćemo vidi u oba P postavili 7 i P postaviti 8. A način na koji ste započeli gore poslužitelj je tako da upišete "apache50." I prije nego što učiniti ništa, želite biti sigurni da Apache 50 nije već pokrenut kao što je to na moj stroj, što sam učinio da ga testirati. A ti to pozivom apache50. Prestanite, i vidjet ćete da je to zaustavljanje web poslužitelj, ako možete gledati tamo na dnu terminala prozora. I onda samo za početak, mi smo nazvati "apache50 početak." A onda ćemo ga hraniti imenik. Sada, jer želimo gledati na neke od P postaviti 6 šifru da smo provodi, zapravo sam kopirati malo P set 6 kod u mojoj mapi, koje možete vidjeti na lijevoj tamo. To se zove "SECTION8" u svim velikim slovima jer sam samo tako uzbuđena se prenositi uživo danas. Dakle, ako smo pokrenuti to, što bi trebao svi rade prilično učinkovito. Ona kaže, u redu, naš site je sada dostupan na adresi IDE, osnovi, što je ono što su pomoću baš kao što je bio u P postaviti 7-- P set 6. Svi moji indeksi su jedan indeks danas. Dakle, možemo ići na to adresu, ako ćete se sjetiti, samo klikom ova mala gumb u gornjem desnom kutu. A vi ćete se sjetiti ovog zakona, koji dogodilo kada je otišao u hello.php. A što kod je osmišljen kako bi to je kad ste upisali u ime here-- ako kažeš Sam jer to je moja name-- i ja kliknite pozdraviti, kada smo otišli na sljedeću stranicu, to ime je trebao biti prikazan. To će reći: "Zdravo, Sam" ili "Pozdrav", što god ti ime stavite u nju, iako smo otišli na posve novu web stranicu. A to je vrsta stvar da PHP može učiniti za vas. PHP je u stanju proći podataka između dvije web stranice. To je potpuno drugačiji stranica. Vidjet ćete naslov je "zdravo" ovdje. Zapravo, oni imaju isti naslov, ali ja Obećavam da su različiti web Stranice ako gledamo na izvoru. A možete proći podataka koji je ušao u ovom tekstnom polju, što ga pošaljete na sljedeću stranice koja se zove gore, a zatim da se podaci u stanju biti tamo u sadašnjem obliku. Sada još nismo provode to se, što je ono što ćemo učiniti upravo sada sortirati dobili okus za koliko PHP radi, ali ključ ideja je da PHP-- možete vrsta mislim o tome kao funkciju. Nešto što PHP može pustiti nemojte se može uzeti parametre da unesete u HTML stranicu korištenjem PHP i oblika, i to može proći oni kao parametri na sljedeću stranicu koja se učitava gore. U ovom slučaju, mi smo se učitava ovo stranica sa "pozdraviti" gumb. Ali za sada, ja zapravo izbrisan dio tog koda u hello.php da je se pokrenuti koji je zapravo bio prikazivanja "Pozdrav, svijet "ili" Pozdrav, Sam ", ili "Hello", što god je samo ulaz. Dakle, za sada, mi smo će to učiniti, zapravo. Idemo ponovno to i također dodati neke više funkcionalnosti, učiniti malo više s njim, vidi ono PHP stvarno sposoban. Tako je prvi, pričajmo o Ova datoteka, hello.php. Dakle, ako smo povećali u Malo bit-- i sad sam vrsta pokušava pronaći sve način around-- tamo idemo. Vidjet ćete da se zove hello.php, ali sintaksa njega Izgleda kao HTML datoteku. To je zato što je Stvarni PHP u ovoj datoteci sve je zaglavi između njih Upitnik-znak za umetanje blokova. Sve ovdje smatra PHP kod. A vi ćete primijetiti da kad sam komentar, vidjet ćete poznati dvije kose crte. A ako ćete se sjetiti, u HTML, ako upišete komentar, to izgleda nešto bliže to, što je komentar u HTML. Pa stvarno je sve između ove dvije zgrade se Sada je PHP kod, koji se ogleda se u činjenici da je ovaj mali komentar simbol pretvara se u komentaru. Dakle, svaki put pišete PHP kod, čak ako nema HTML kod izvan njega, uvijek će biti zatvoren u tim kutnika s upitnicima. Možete vrsta razmišljati o tome kako sve it-- koda koji se protezao u C programa bio zatvoren u int main, prazninu, kovrčava braće, kraj kovrčava braće priopćenju. I vidjet ćete vitičastih zagrada u PHP, previše, ali to je vrsta kao glavne metode PHP. Tako sada, kako ćemo učiniti sve u PHP-u? Sada, PHP je programski jezik koji je vrlo C-poput, ali to djeluje na webu. Dakle, jedna stvar koja ćete immediately-- jedan od prvih stvari koje doista s C je li tiskan stvari van, zar ne? Tako je u C smo učinili s funkcijom printf. Dali smo niz, vjerojatno s novom linijom, a onda mi prestaje to sa zarezom. Dakle, način na koji ćemo to učiniti u PHP-- jer to nije sasvim printf. To je malo drugačiji sintakse. Način na koji smo ispisali stvari u PHP je možemo reći: "echo Hello" ili "echo" bilo riječ. I koji ima učinak radi printf s nizom "Halo." I dodaje novu liniju za njega. Tako ćemo sada napraviti sure-- Ja ću smanjivanje opet malo bit-- ćemo biti sigurni da da kod radi jer možda postoji vrlo dobro biti bug u ovom kodu da ćemo morati uhvatiti u koštac. Dakle poslužitelj već pokrenut. Dakle, ako mi pomaknite natrag dolje na dnu, Yup, poslužitelj još uvijek radi. Dakle, ako mi samo dodirnite ovu Malo pravo here-- welcome-- trebamo get-- super. Još uvijek smo s upoznati "pozdravi" dijalog, ali kad sam upisati "Bok", vidjet ćemo da je tekst "Hello" je doista ispisati, što je točno onako kako smo očekivali jer je jeka u PHP je baš kao i izjave printf. Dakle, natrag na kodu, kako u P postaviti 6 učinio raspodjela kôd koju pružaju čine ga tako da bi PHP Izlaz stvar koja vas upisali u na prethodni zaslon? I da nekako ispitati zašto se to dogodi, mi smo ići u index.html, koji je izvorna datoteka, datoteka koje prikazuje se na zaslonu s "pozdraviti" gumb. Možete primijetiti da postoji sve klasične stvari mi smo došli da očekujete od HTML takve kao tim stvarima, ove oznake u prilogu u zagrade, kao što su PHP ali bez upitnike, što ukazuje na posebnu stvar u HTML. Imamo naslov, što je "zdravo". A vi ćete primijetiti da kao što smo vidjeli, naslov je "Hello" u oba slučaja. Idemo promijeniti ovaj jedan da "reći" samo tako ćemo može se razlikovati gdje smo. Ali mi imamo tijelo. A onda je zanimljivo malo je malo da se prikazuje u HTML, je ovaj oblik elementa. I tako smo dobili oblik. I to je ključ. Ovo je način kako mi radimo s PHP. Djelovanje parametar Obrazac kaže da hello.php je ono što ćemo poslati vrijednosti u ovom obliku u. To je mjesto gdje smo prolazu parametri, da se tako izrazim. Primijetit ćete još jednu stvar ovdje je da je metoda "dobiti". Postoje dva primarna Način na koji će se biti koristeći PHP proći podataka između websites-- web stranicama, rather-- u ovom zadatku. I oni su metode "dobiti" i "dužnost". Postoje neke suptilne razlike između GET i POST da ćemo dobiti into-- smo će "dobiti" u, ako hoćete. No, za sve namjere i svrhe, dobili i post su samo načini na koje prođe parametre s malo različitim pogubljenja. Za sada ćemo koristiti dobiti jer dobiti je ono što se koristi izvorno u PHP datoteci P postaviti 6. A zapravo, ako ćemo ići i tražiti Prije nego što smo uredili ništa drugo, Idem pozdraviti to-- što je vaše ime? PUBLIKA: Elliot. SAM LEVATICH: O, Bože. Ne znam kako da čarolija da. Možete li čarolija koja za mene? PUBLIKA: E-L-L-I-O-T. SAM LEVATICH: I-O-T? PUBLIKA: Da. SAM LEVATICH: Savršeno. U REDU. Mislim da sam znao kako se pišu da je. Ispričavam se zbog toga. Ali ako kažemo "pozdraviti", to nije to neće pojaviti na zaslonu Još jer smo modificirati kod malo. Ali ako mi ne "Pozdravite" - U redu, tako da "Hello" je ovdje. Ali ako uzmemo bliže pogledajte samog URL, vidjet ćemo kako to završava s hello.php? name = Elliot. Dakle, to je način komuniciranje na sljedeću web stranicu parametri koje smo prolazili. Rekli smo name = Elliot. I to je u konačnici kako P postaviti 6 pristupiti varijablu koje smo prošli u putem obrasca. A to je nešto što je svojstven GET zahtjev. GET zahtjev čini parametre poznat u URL web stranice. A vi ćete se sjetiti, također, P set 6 da vas morao napisati funkciju koja se bavila time da ovaj niz upita može postojati nakon datoteku. Tu bi mogao biti upitnik slijedi strane u osnovi bilo koji broj znakova. A to je upravo ono što se ovdje događa. A razlog zbog kojeg je morao analizirati kako u svom provedbu server.c u P set 6 je tako da bi mogao reći PHP kod koji name = Elliot. Trebali ste biti u mogućnosti analizirati kako iz URL tako da je PHP datoteku u pitanju znao što je to bio bave. Dakle, nadamo se to daje motivacija za server.c sad da smo se kreće na izvan C u PHP. Tako ćemo se usredotočiti zapravo o pristupu stvari prošli kroz GET zahtjev sada u ovom trenutku. Idem spasiti ovo. Nismo ništa promijeniti. Izgleda da smo dobili polje za unos. Mi smo postavljanje neka svojstva, kao što možemo učiniti HTML. To su jednostavne stvari. Ne treba nam to. Ali mi imamo samodovršetak off, koji je u osnovi says-- znate, kad upišete stvari u webu, ponekad pokušava ispuniti da za vas. Dakle, to je lijepa stvar. Želimo isključiti tu svrhu. To je CS50 odluka. Tako možemo izbrisati, ako smo htjeli. Autofokus samo drži pokazivač u formi na početku. Opet, ne previše važno. No name = "ime" - to je malo lukav jer je to ime i ime. Ali mi je mogao mijenjati to nešto drugo. A u stvari, to je Što ćemo učiniti upravo sada. Mi ćemo reći "osobu", koja je vrsta kao što su ime ako osoba je definirana svojim imenom. Tako ćemo zatvoriti ovaj, ponovno našu web stranicu jer naš poslužitelj i dalje radi Apache 50, a mi ćemo reći hello, evo Elliot opet. Zašto ne? Bok. A ako ćemo ići ovdje, vidjet ćemo onda umjesto imena = Elliot, što kaže osoba = Elliot. I to je izravna posljedica činjenice da smo samo promijenili ime = "osobu." Tako je u ulazni element HTML oblik, polje imena je identifikator za parametar koji je se prošlo. To je kao da ste stvaranje funkciju "dodati" koji je u dva brojeva a ti rekao int A i int b. To bi bilo ime koje je, a ako ste htjeli drugi oblik koji možemo učiniti samo kopiranje i lijepljenje, onda bi naziv b. Dakle, sada ćemo imati dva parametra koji se prošli kroz doći do sljedeću website-- sljedeća web stranica, hello.php. A zapravo možemo vidjeti opet, ako želimo. Ovo je najlakši način da se bave web broj u IDE, zapravo. Možete pokrenuti poslužitelj, preuzmite ga trčanje, a zatim svaki put kad napraviti neke promjene, samo u blizini tu datoteku samo da bude siguran. Pritiskom na tipku natrag je malo lukav jer to može učitati ranije verzija, nije najnovija jedan. I onda samo kliknite Tipka jednom, pop pravo up-- oh, a sada postoje dva oblika. I tako, ako upišete jedno u svaku one-- "Jason Hirshhorn" za instance-- možemo pozdraviti. Gledamo se u našim parametrima. Izgleda da smo dobili, kao što je Očekuje se, a = b = Jason i Hirshhorn, što predstavlja dva parametra koje smo prošli na ovu funkciju. Dakle, sada ćemo zapravo dobiti provedbu tog funkcionalnosti koje smo imao u P set 6. Dakle, sada smo samo ponavljajući pozdrav. I to nije vrlo korisno. Želimo jeka neke varijable koji je prošao na nas. A znamo ime ove varijable. Imamo i mi smo b. Tako bismo mogli izabrati da odjekuju ni jedan. No, kako ćemo joj pristupiti? Pa, postoje određene globalne varijable u PHP. I ja ću napisati ih u komentarima ovdje. Dvije najvažnije su GET i post za naše potrebe sada. To su nizovi ili, Tehnički, rječnici gdje su naši varijable koje smo prolazi na sljedeću web stranicu žive. I mi ćemo uskoro vidjeti kako ih koristiti. Još jedna kratka napomena o PHP koda i neke specifičnosti it-- u C, proglasiti varijablu ili da koristite varijable, prvi put je morao ih objaviti. A ono što je morao učiniti kada proglasio ih je reći int a ili char b. Morao si proglasiti vrste tih varijable prije nego što ih je stvorio. PHP-- ne morate učiniti bilo što od toga. PHP ne traži tip varijable. A način na koji vas stvoriti variable-- a nego govori int, char, string-- što je stvarno char *, kao što smo know-- nego radi sve da, jer sve je istog tipa, typeless, možemo samo koristiti jedan znak, koji je znak za dolar. I vidjet ćete da je već iskakanje gore, malo samodovršetka stvari. I to govori da _GET i _POST dvije opcije koje sam na raspolaganju meni. Neke od tih stvari su ostale druge globalne varijable u PHP da ćete biti koristeći više tijek P set 7. Za sada ćemo usredotočiti na GET i POST. No, to je korisno Ono što je IDE radi gdje nakon što ste upisali u tom znak za dolar, to će početi punjenje u globalnim varijablama ili varijable koje ste već definirano. Dakle, ako ste htjeli definirati varijabla zove "niz" možete jednostavno podesiti da jednak "Bok." I to je u osnovi kao jednostavan kao taj. A onda smo mogli učiniti nešto poput "echo $ string." IDE treba bacati neke pogreške ako ja radim nešto krivo, pa nadam se da radim sve što je pravo. No, greške se uvijek ne javljaju. Još lukav stvar o PHP je da to nije sastavio. Tako je s C programa, što će učiniti dnevnu rutinu of-- osnovi, ti bi uređivati Vaš kod, ti bi ga spremiti, i onda bi čine ga, gdje je make korak koji se zove prevodilac, jeka, da bi svoj kod, ovaj tekst podnijeti, u izvršnu. PHP je C-kao, ali to je izvršiti u letu vašem web pregledniku. Dakle, ne postoji način da se zna. Napravite bi baciti one korisne pogreške, zar ne? To bi bilo kao, ne proglasi ovu varijablu prije nego što je pokušao da ga upotrijebite. Učinili ste sve ovo loše stuff-- segfault, segfault, sve to vrsta zabave puta koji je došao s make. PHP je dvosjekli mač jer nećete dobiti te pogreške, ali to također znači da nećete znati stvarno što nije u redu sa svojim programom ako samo ga pokrenuti, a to ne radi. Ali debugger treba istaknuti neki nadamo korisne sitnice sintaktički da možete popraviti. Pa sad, ako ćemo ići preko to-- kažu, neka je zatvoriti to. Ponovo otvoriti. I mi smo natrag ovdje. Dakle, imamo varijablu i varijabilnu b. A to neće u konačnici važno. Mi ćemo ih nazvati hi g bez posebnog razloga. A mi pozdravi. Sada to izgleda kao naš nizu "Bok" je doista tisak. Stvorili smo varijablu nazvanu "niz", postavljen je jednaka "Bok." Obavijest da nismo morate učiniti malloc ili napraviti znakova niz. U PHP, jer varijabli su typeless, niz je ista kao za char sve namjere i svrhe. To bi mogao biti "Bok." To može biti samo znak k. To može biti broj 1. I to ne brine. PHP ne brine o tip vaše varijable. Ili, to ne brine. To brine kada pokušate i činiti stvari s njom, ali to ne brine u deklaracija korak. I baš kao što možete u C, možete izjavljujem žice na hrpu kao što je ovaj iako kaže "hrpu" je malo Malo potencijalnog pogrešan naziv kada je govorimo o PHP. Ali ne moramo brinuti o tome. Tako smo dobili niz "Bok", a mi odjekuju string. Dakle, sada smo razgovarali varijable. Tako sada moramo razgovarati o get a objaviti i obaviti konačnu stvar koja je potrebno da se stvarno dobili ovaj kopiju na funkcionalnost P postavljen 6. Dakle, sada smo ponavljajući niz, ali mi nemam te varijable dobiti i post. I zato što smo pomoću način dobiti, to Čini se prirodnim da je naša varijabla koja mi smo zainteresirani, A i B, nalazit će se u nizu ili rječnik, tehnički dobiti. Dakle, ako smo postavili ovakav s groups-- sam pritisnuo ući i nije it-- sviđa ali ovdje imamo dobili. I tako dobili već postoji. Dakle, već možemo početi pristup neke od elemenata dobiti. Ako ne dobijete, to sintaksa za polja u PHP je vrlo C slično. Mi imamo dvije uglate zagrade. Dakle, ako kažemo doći u normalan niz, mogli bismo pristupiti indeks 0., prvi indeks. PHP je nula indeks. Mogli bismo reći nula, jedan, two-- stvari kao što je ovaj. A ja sam rekao da dobijete je tehnički rječnik. Pa što PHP radi ispod haube, što je malo ljepši od C, to je već dajući vam neke rječnik funkcionalnost, koja stvarno hash tablica, ili pokušava, navodno. Ili, tehnički mogao biti probati kao dobro. Ali PHP provodi hash tablicu, koji čini učinkovitu rječnika. I tako znamo ime naše varijable, zar ne? To se prošlo u upit niz PHP. Imamo = H i B = g gdje i b su imena varijabli. Dakle, način na koji možemo pristupiti Vrijednost koja odgovara ključu u našem rječniku je Samo rekavši _GET_GET ["a"]. Tako sada imamo _GET ["a"]. A ako smo samo zamijenite u naš odjek, ako echo _GET_GET ["a"] - pa ćemo vidjeti ako ispravljanje pogrešaka baca greške oko this-- ćemo spasiti i zatvoriti ovo. Otvorite ga. Dakle, mi samo radimo pravo sada, pa ne bi trebalo b važno. "njoj" i "njega" - "pjevušiti." "njoj" i "Hum". Zvuči dobro. I to ispisati "ju", što je suludo. Ali to je upravo ono se događa u P set 6. Uglavnom, ono P postaviti 6 Bio doing-- odjek Pozdrav, name-- gdje je imao ime varijable i to samo traži da upišete u tom malo teksta. Bilo je i nekih dodatni broj gdje je uključen ako izjave, što možemo učiniti upravo sada. Možemo reći, ako postoji, koji se je funkcija u PHP, _GET S crticom, "ime" - koji je u osnovi govoreći, "Ako je ime popunjena", jer mogli smo jednostavno kliknuli na gumb dostaviti obrazac, bez upisivati ​​ništa u tom području. A mi zamotajte da u našem prijateljski vitičastih zagrada. Možemo imati izjavu drugo. I to je sve u PHP kuta nosač, upitnik, kut zagrada, ako hoćete. A sada ćemo vidjeti ako to radi. Stalno čekati da debug i sranje na mene, u osnovi, ali to još nije. Možda će se sada jer razgovarao sam o tome. Da. To je, u stvari. Dakle, ništa se ne prikazuju. To je zato što nešto krivo koje sam napisao u PHP koda. I sam spomenuo ispravljanje pogrešaka je lukav jer u PHP-u, mi nije to sastaviti unaprijed a prevodilac ne sviđa, evo gdje vaše pogreške. No, ono što možemo učiniti is-- to ljudi pamte kako gledati na drugu mrežu zahtjevi koji PHP-- ili da web stranice poslati? [? Malin?] To učinio u predavanje jednom ili dvaput. Vi sjetiti gdje idemo naći različite dugovi i 200 Oks, svi ti kodovi koji se šalju putem HTTP od web stranice na web stranici? Se bilo tko sjetiti gdje smo ići na to? PUBLIKA: Izvor stranice. SAM LEVATICH: Izvor stranicu. Točno. Ako idete na stranicu Source-- Perfect. Dakle Stranica Izvor vuče inspektora. I ja sam koristeći Safari. Puno ćete vjerojatno se pomoću Chrome ili Firefox. No, koliko god da si u svakom modernom browser-- i slobodno slijedite zajedno, ako želite. Možete upisati ovaj kod ili pogledajte samo unutar P set 6 katalog za neke slične stvari. hello.php je ono što smo trenutno radi na oponašanje. Dakle, postoje razne karticama. Možemo pogledati sve resurse. Možemo vidjeti izvorni kod. Dakle, izgleda kao da nije otarasiti tijela na kraju. Utvrđeno je greška u PHP i njega zaustavljen učitavanja cijelu web stranicu. Mi čak ne imati kraj oznaka za HTML ili bilo što. A ako gledamo na mreži, možemo vidim da smo se uputili zahtjev. To je domena. Ovo je adresa. To je dokument. Mi smo se metodom dobiti. I to je crveno. Ili, da je crveno kad sam nije ga odaberete. Kako sam ga poništite odabir? Pa, bilo je crveno. Dopustite mi osvježiti. Tu je. Sada je crveno. Tako da je crveno, što znači što nije, što je loše. Tako ćemo ispitati zašto je uspjeti. Dakle, sve da je izvor stranice mogu zapravo reći da je vaša stvar ne rade, što već možemo vidjeti. Dakle, idealno bi bilo biti više koristan alat. A tu su i neke ekstenzije preglednik koje vam omogućuju ispravljanje PHP, ali mi se ne ide na pisati tonu PHP, tako da je vjerojatno samo najbolji gledati kroz kodu pažljivo i samo bi bili sigurni da ne radi ništa drugo. Dakle, neka je vidjeti ako je format ovo Ako je izjava gdje je problem. Želim da ponovno učitati ovdje. Zdravo bok. Dakle, postoji problem postoji. Dakle, za ispravne sintakse PHP, PHP će da se C-kao u koji ćete vidjeti petlje. Vidjet ćete, ako izjave. Vidjet ćete sve te prijatelje da ste upoznati s tijekom ove CS50 semestra. No, najbolji način za shvatiti kako učiniti nešto u PHP je da ga google ili pogledati neke primjere PHP koda jer znate funkcionalnost. Znaš što možeš učiniti s programom. Možete petlje. Možete petlje onoliko puta koliko želite. Možete petlja u sve vrste različitih načina. Možete stvoriti funkcije. Možete stvoriti funkcije koje pozvati druge funkcije, dužnosti koji sebe nazivaju. A imate imena za tih pojmova. Imaš rekurzija, petlje, ako je, drugi kontrola tijekova. I tako Google je tvoj najbolji prijatelj. Čak kažu, "ako PHP izjava "i bit biti tona postova s Odgovori na druge ljude koji su imali slična pitanja za vas, koji se tek počinje s PHP te su znatiželjni o sintakse stvar. Budući da imamo luksuz da bude mogućnosti, pogledajte u P kôd set 6, mi zapravo ga podići i vidjeti da OK, ovdje je nešto zanimljivo. Dakle, to je ono što ga zapravo Izgledalo je kao u P set 6. Dakle, ako ćemo ići kroz to, možemo vidjeti da imamo dobio nekoliko njih malo PHP-kao upitnik bita. I ne postoje vitičastih zagrada. Postoji dvotočke. A tu su i kovrčava aparatić u PHP-u, ali to je oblik i način obavljanja PHP koji dobro radi s HTML jer kao što ćete vidjeti, mi smo zatvaranja s tih PHP bits-- drukčije i IFS i sve that-- a zatim mi smo ispreplićući HTML unutar njih dok je još slijedeći Kontrola protoka krenuo PHP. Pa ja sam samo ide brza šetnja kroz to jer je puno isto koncepti koje smo radili prije. Moramo, ako ne i prazna, zagrade, _GET_GET ["ime"]. To je sve isto stvar. Mi smo pomoću _GET rječnik koji PHP šalje na zahtjev oblika, jer se parametri akcije, a metoda je dobiti. I onda da završi to. Debelo crijevo je označitelj samo učiniti ako je, ako izjava true. To je poput kovrčave braće. A u stvari, to je kovrčava braće u drugim jezicima kao što su Python, koje možete naići ako samo učiniti za svoj konačni projekt. A onda je to linija, zdravo. Zatim imamo čudan stvar. Imamo više zagrade. Nema HTTP there-- ili PHP, ispričavam se. Ali postoji znak jednakosti. I onda imamo funkciju, htmlspecialchars (_GEThtmlspecialchars (_GET ["ime"]). To je vrsta kao više napredna verzija odjek. Kao što smo odjekuju kao način ispisati stvari u PHP. Ova je funkcija koja je definirani u PHP da će se baviti još gadno likovi i byte vrijednosti da bi mogao proći. To je uvijek najsigurnije koristiti ovaj. No jeka će obaviti posao sasvim u redu ako nismo bave bilo previše gadno. I tako to ima isti Učinak osnovi, ove stvari između pitanje Oznake ocjenjuje PHP. htmlspecialchars vraća lijep HTML tiskani vrijednost _GET_GET ["ime"], tj sve što smo upisali u obliku. A onda ću pozdraviti, zarez prostor, a onda da. Ta cijela stvar između ove zgrade zamijenit će bilo htmlspecialchars stavlja van. Tako da je u biti slično na ono što radimo. A imamo još izjavu koja je Pozdrav svijetu, što ima smisla. Tako sada idemo natrag u naš broj i vidjeti exactly-- oh. Rekao sam postoji, što nije stvar da smo htjeli napraviti. Htjeli smo reći nije prazan. I tako to treba raditi malo malo bolje, a ne prazna _GET_GET ["ime"]. I to kovrčava braće odgovara da je kovrčavu braće. Imamo naše vitičastih zagrada ovdje. echo Pozdrav _GET ["ime"]. Idemo vidjeti ako to radi malo bolje. Još uvijek radi naš poslužitelj. Pozdrav Jason. Pozdrav Jason. I to je radio ovaj put. I tako to je dokaz da možete doista koristiti vitičastih zagrada koje znate i ljubavi u PHP koda u HTML-u. PHP koda pod uvjetom da ste u pset 6-- pset 6-- pruža još jedan način radi istu stvar. Tako sada imamo snagu. Imamo funkcionalnost za provedbu PHP kod koji smo vidjeli u pset 6 po sebi, zapravo. Prije nego što sam krenuti dalje, što su neki od pitanja koja imate u ovom trenutku? Da [nečujan]. PUBLIKA: Tako je u verziji u pset6, kada ga pokrenete, postoji prostor. I ja mogu vidjeti gdje je prostor iza zareza. [Nečujan] početak otvorenom nosač. Kako se uklopiti u prostor način na koji je napisao svoje kodove? SPEAKER: To je dobro pitanje. I tako ćemo shvatiti da je van. Dakle, to je stvarno dobro pitanje i jedan koji nisam u obzir. Ali neka to učiniti zajedno. Dakle, prije svega, što Radim sa odjekom je kad smo samo jeka Pozdrav, izlazi zdravo. Ako jeka sada to dobiti na poseban crta, neka je ispitati što se događa. Tako smo kliknite ovaj. Držimo govoreći, hi Jason. Pa opet, nemamo taj prostor. A to je zato što, u PHP, kad smo jeka, bez obzira koliko spaces-- Nope, ne V-- bez obzira koliko prostora smo stavili u here-- ako mi sad učitati da se opet, hi Jason. Da, vidiš, svi oni dobio prostori pojeli. I to je nešto što jeka funkcija radi. Dakle, da se brine o da je prostor, a to je jedan od razloga zašto ne koristiti odjek a vi koristite htmlspecialchars umjesto. Ja sam znatiželjan što bi dogoditi ako je to učinio gdje smo zatvara prostor u nizu. Ja iskreno ne znam što će se dogoditi kada sam to učiniti. Dakle, to je jedan od načina. To je jedan od načina da se brine o njemu. Ako zamotajte prostor u niz, onda prostor će biti izlaz lijepo od jeke. Najsigurnije stvar za učiniti je učiniti htmlspecialchars. To je uvijek siguran kladiti. Ali sada imamo način da to učinite to s jeka ako je potrebno. A na sličan način, možemo echo novih linija, sve vrsta stvari ste upoznati radi u PHP. Bilo tko drugi, što su više pitanja koja drugi ljudi imaju u ovom trenutku o PHP-u? Ako ljudi se pojavilo malo kasno, Ja sam sretan da ostanu nakon malo i razgovarati o nekim od početka. I to je također sve livestreamed, i arhiviran, što je suludo. U svakom slučaju, tako da sada učinimo neke više naprednih stvari s PHP. A jedan od prvih stvari koje uvedeni su u C je za petlje. A PHP ima snažniji za petlje zove foreach petlju. I to izgleda kao this-- za svaku prazna kao prazne, vitičastim zagradama, učinite nešto. Dakle, ovo je u osnovi stenogram. Vidi, za petlju u obliku sintaktička konstrukcija je smišljen u C i okupljanja jezik i stvari vole. Izmislili u C, upravo, kao stenogram za puno tipova petlji da će ljudi vidjeti. Kao kad je napisao petlju, postoji je često inicijalizacije korak izvršiti odmah na početku, a stanje u kojem se petlja bi stop-- i to je značajka to je samo u while petlji, ili da se, dok ima točno upravo to feature-- a zatim incrementation korak na kraju. I tako ćeš često pronaći sebe pisanje koda ovako. Idem izbrisati neke od ovoga. Ali, ako smo iterating kroz znakova u nizu, Na primjer, kao da smo dobio niz znakova. Žao nam je vratiti C. znam, ste mislili da su učinili. Ali to je samo u svrhu učenje PHP, obećavam. Dakle, ako imaš char str duljine 8, i neka je kažu da kaže Hellooo s prateći null. Veliki, tako da je naš niz. I onda smo imali for petlje. Imamo int ja jednak 0. I želimo izlaz kada STR od ja jednako nije jednak null, jer smo izašli kad je jednak nuli. I onda mi i ++ na svakoj točka u for petlji. Radiš nešto sa str od i. Dakle, osnovna formula, imali smo ovaj niz koji smo htio tretirati kao zasebne elemente. No, ono što smo morali učiniti je da smo morali osnovi stvoriti zaseban cijeli broj varijablu koja se računaju se svako Vrijeme smo išli kroz petlju. A onda ćemo morati nazovite strstr [i] kad ono što smo stvarno htjeli napraviti je samo ići karakter po karakteru, zar ne? Mi ne želimo povećajte broj, a zatim koristiti taj cijeli broj pristupiti svaki lik pojedinačno. Mi zaista znak po znak. I tako za svaku inteligentno izračunao da za nas. Ako imamo niz koji možemo proglasiti u PHP kao just-- ako imamo varijablu zove, nazovimo ga niz. Čuda bez tipkanja, to je baš kao i bilo koje druge varijable. To je samo niz. I mi smo malo [nečujan] kao 1, 2, 3, samo neka vrsta inicijalizacije polje. To je u redu, ne sviđa mi foreach. Ali ako mi ne foreach-- zapravo Ja upisali da malo krivo. Postoje dva načina da to učinite je foreach petlju. Tu je u sintaksu i kao sintaksa. I mi ćemo učiniti u sintaksi prvo, ne kao. To je moja pogreška. Tako foreach num u nizu, jeka num. PHP je vikao na mi iz nekog razloga. To je nalaz neočekivani u nešto, što je malo smetaju. No, mi ćemo shvatiti zašto je to u ovom trenutku. Tako se ne sviđa. Pokušajmo pomoću kao. Ona voli kao sintaksa je čini. Tako ćemo napraviti foreach lepezu kao num. Dakle, malo objašnjenje onoga što se upravo dogodilo je kao sintaksa saying-- dobro prvo, Pogledajmo što to ispisuje. Tako smo otvorili našu IDE. Idemo ovdje. Kažemo, Pozdrav Jason. I to učinio 123, koji su bili sadržaj od niza koje smo stvorili do vrha. Dakle, ronjenje u ovom foreach petlje, imamo varijablu naziva niz koji je niz od tri broja. A onda radimo foreach Niz kao num, jeka num. I to je više intuitivno nego za klempave. Mi tvrdimo, liječenje svakog od stvari u nizu kao NUM, Želim da mi date num. A to je upravo ono što se radi. PHP je izračun da kada kažeš foreach niz, a ti se bavi nizom, što ti si idući u ištanje to ponoviti više je likovi u tom nizu, je Ints u tom nizu, je elemenata u tom nizu. A to ste vi pohraniti one varijable num, i onda samo izlaz num Odmah umjesto govoreći, Imam varijablu Zvao sam te onda želim izlazne strstr [i]. I tako da omogućuje nam da napraviti cool stvari. Kao u osnovi ne moramo stvoriti ove varijable kao što sam je i učiniti sve ovo incrementation stvari na kraju. PHP brine sve to za vas. Dakle, sada ćemo govoriti o foreach kao to se odnosi na naš _GET rječnik. Tako ćemo komentirati ovo brzo. Dakle, mi imamo _GET niz. Imamo tu varijablu. I to je dobio neke stvari u njemu. Upravo sada, imamo samo jednu varijablu šalje se to, što je ime. Ali ako pritisnemo Enter, sada možemo imati dvije varijable. Možemo imati ime i dob, primjerice, ako želimo dobiti dob i ime osobe, funnily dovoljno. Tako sada _GET će biti rječnik s dva elementa, s dva ključna parova vrijednosti. I prvi key-- ću napisati ovaj jedan gore na brodu previše. Imamo naš rječnik je _GET. Nažalost, to je malo teško vidjeti. No, u našem rječniku smo ime, koje će biti nešto da smo dali. I mi ćemo imati starost, što je također će biti nešto što smo dobili. A to je cjelina naše rječnik. Dakle, to je dobio dva elementa u njoj. I zato foreach petlje su pametni, mi možda misle, i ispravno možda misle da foreach može ponoviti kroz to rječnik, ispis vrijednosti dao ime i dob. Tako ćemo u stvari učiniti upravo to. Ajmo izgraditi foreach petlju. I mi ćemo učiniti za _GET kao. I mi ćemo učiniti sljedeće. Tako ćemo vidjeti što će se dogoditi ako smo tip Samo riječ, a onda kažu echo riječ. Mi također će odjek novu liniju samo da bi ga malo jasnije, što se događa. Tako ćemo vidjeti. Nije da mi sve pogreške. A mi ćemo zatvoriti to. Na našoj web stranici, ti si idući u biti događaj puno toga tijekom pset7. Tako bismo mogli reći moje ime je Sam. Moja dob je 45. Nije. Ali to ispisuje, kako se i očekivalo, Sam 45. I tako ćete primijetiti da što foreach petlje did-- ovdje vratimo na to pa je na board-- smo dobili _GET kao riječ. A tu su četiri stvari _GET. Ali to je samo ispisati dvije stvari. foreach, kao svoju inteligenciju samouprave, Pretpostavlja se da je ono što smo htjeli je vrijednosti, a ne ključeve. Ali postoji način da bismo mogli ispisati iz tipki kao i, ako smo htjeli. Ako smo htjeli i znali što ove varijable su pozvani, postoji način da se mogu pristupiti to kao dobro. A način da nekako to, pa možemo reći, omogućuje stvarno Split je u ključnim parova vrijednosti. Tako ćemo vidjeti što će se sada dogoditi. Dakle, imamo ključ. Imamo vrijednost. Imamo još jedan novi linija za čitljivost. I da vidimo što se događa kad smo to učiniti sada. Ne znam koliko je stara Jason je. Jason je 15. Tako imamo ime je Jason, dob 15. Dakle, bili smo u mogućnosti pristupiti na tipku i vrijednost pari ovog rječniku Samo rekavši kako je ključnih točaka za vrijednosti. I to je foreach sintaktička šećer malo koja omogućuje pristup na stvari u rječniku. Dakle, nadamo se ova vrsta ističe moć foreach petlje. Možete ljepušan velik bacanje sve što iterable čini, kao i sve što ima više Elementi poput niza, poput dictionary-- to su dva primarne stvari koje ćete raditi sa kako u životu i pset 7. Tako možete baciti te stvari na to, a to će shvatiti ono što želite učiniti s njom. To će reći, u redu, ja ću doći te stvari iz podataka koje donesen na mene. A to je nešto što ste će se koristiti puno u pset 7. Idem brzo dođite dolje samo vidjeti gdje sam u. Nemojte ljudi imaju pitanja u ovom trenutku? Pitanja uopće? Da? PUBLIKA: Pa s ključem i vrijednosti, mogli nazvati ga bilo što drugo i to će i dalje raditi? SPEAKER: Ups. Wow, ja potpuno izbrisana cijelu liniju. Dobar posao. Dakle, a. Ključ i vrijednost je samo konvencija. To je korisno. Ti bi dobiti neki dizajn bodova, možda neki stil bodova za taj događaj, jer to stvarno prenosi namjeru. Ali mi kažu da je i yarp. PUBLIKA: Vi ne morate promijeniti ništa u HTML datoteku kako bi se odražavaju to? SPEAKER: Uopće ne. PUBLIKA: I to samo zna da jer je jednako veće than-- SPEAKER: Da. PUBLIKA: --that pokazatelj da that's-- SPEAKER: Da. To je foreach sintaksa, ali da. PUBLIKA: Ne postoje vrste. Pa što ako ste htjeli dob za samo jedan broj? Da li postoji način za to? SPEAKER: Postoje načini da biste provjerili varijable u skladu s određenim vrstama. Dakle, PHP pita malo više od ti, jer ne postoje tipovi u. Neki od načina da traži manje. Na neki način to traži više. Zato, ako imate samo nešto u varijablu, nemate pojma što tip je to. Ali, ako ste pametni o varijablama koji dodijelite vrste u i uvjerite se da je samo funkcija vam return-- Želite funkcije za samo povratak jedna vrsta vrijednosti tako da možete osnovi Očekujemo da će varijabla li dobiti natrag od funkcija će biti tipa da mislim da će biti, u osnovi. Ali postoje neke metode kojim možete provjeriti. Ja ih se ne sjećam off vrhu moje glave. Čekam da poplaviti. isint? isstr? Postoje metode izgrađen u PHP koji mogu provjeriti tip varijable za vas. Ali ako dodijelite varijabli pametno, da ne bi trebali morate to učiniti previše u pset 7. No, ne postoje te metode. I to je nešto što u samom jeziku. I ne sjećam se precizno sintaksu. Čak smo mogli pogledati. No, vrijeme je u sustini. ima li tko drugi imate još pitanja? Da. PUBLIKA: Imam samo još jedan. Dakle, spomenuti postupak bi, ali nisi spomenuo metodu POST. Jesmo vraća na to? Govornik: Da, mi ćemo se vraćati na to. To je upravo ono što sam tražio na moj telefon, a sada je pao u san, ali ja ću ga pronaći. Samo pazeći smo hit sve PHP bilješke. Da, nema debugging verzija. Da, imamo još nekoliko stvari koje želimo sada u ovom trenutku. Dakle, govorimo o POST, koje ste spomenuli, jedina razlika između GET i POST je da sjećam se kad smo pogledali na ovom URL i vidjeli smo, oh, Ime je jednako i dob jednako yarp su pravo u URL tu za nas. POST je malo više tajnovit sa donošenja informacija. Dakle, ako ne želite korisnika znati, na primjer, nije želio korisničko ime i lozinku osobe Trenutno prijavljeni kako se prikazuje u URL, što je razumna stvar ne želim u URL, jer netko može vidjeti. Ako se povezati nekoga na stranici, Ne žele da im URL ožbukani tamo, jer bi to omogućilo ljudima da prijavu samo s umjesto na lijepljenje na URL od stvari ispunjavanjem obrasca. POST je malo više tajnovit. A jedino što ćemo morati mijenjati su ova metoda, promjene iz dobiti za postavljanje. A onda unutar HTTP, umjesto pristupa polja _GET, ćemo pristupiti polja _POST. A mi ćemo primijetiti da, ako ćemo otvoriti ovo natrag gore opet, Jason polako opada u starosti. ime Jasona, godine 14. Ista stvar iskoči. No, idemo na URL i te varijable ne postoji. A način na koji POST passes-- pa ne zaboravite kako gledati na izvor stranice. Idemo na mrežu. Mi osvježiti. A to je još jedna stvar koja NAKON će vam dati upozorenja o. Možda ste vidjeli kutiju, tekst okvir kao što je ovaj u pregledniku. Jeste li sigurni da želite poslati obrazac opet? POST je što se slanje tih oblika. Jer u osnovi, ako ste poslali podatke o kreditnoj kartici za nekoga, to se neće pojaviti u URL. To će biti zahtjev POST. Dakle, kada osvježite stranicu, to je ponovno poslati toj dužnosti zahtjev. Dakle, sada smo želite poslati formirati ponovo jer to neće stvoriti bilo dvostruke kupnje. A mi ćemo primijetiti da ovdje, metoda mi koristimo je POST. I doista prenijeti bajtova. Ona prenosi 401 od njih. Program je prilično malen. No, tu je nigdje da možemo vidjeti vrijednosti koje su prolazili. Web stranice i sami možete vidjeti, ali mi kao korisnici nisu mogli vidjeti, ako nisi haker. Ako si dobar haker, možete pogledati. Ako znate osnovni Format HTML, vrijednosti će jave na stranicama. Vi ćete biti u mogućnosti vidjeti. Vrijednosti će biti tamo, oni su Samo malo manje očito za vas pristup, u osnovi. Imamo li više pitanja o GET, POST before-- što ćemo sljedeće učiniti je zapravo pogled na neke od koda da ste davanje u pset 7, govoriti o kako se koristi neki od tih pojmova, i razgovarati o stvari koje ćete morati napraviti malo u pset 7. Još pitanja prije toga? Više pitanja vi imate? Veliki. U redu, pogledajmo malo po pset 7, Nema sumnje da je ono što ste sve najviše uzbuđen o tome. Mislim, to je nešto što David prolazi kroz malo. No, mi ćemo imati tri direktorije na vrh, kao i konfiguracijske datoteke. To je za baze podataka, koje ćemo govoriti o oko pet minuta. Uključuje, nikada ne trebate gledati u ovaj direktorij ako ne želite, ali je lijepo znamo da su sve vrste pomagača. Pomagači je kao korisne funkcije. I onda imamo config, koji postavlja neke stvari gore. Postoje neke funkcije koje CS50 ima zapisano da su u pomagača i config. A neki od PHP koji već izlazi u datotekama će učiniti mnogo za više vrsta od tupe nogu raditi za vas. Kao, ako idemo u javnost login.php, što je ono pokazuje se u pravu kada odete u pset 7. Mi ćemo vidjeti da postoji to zahtijevaju izjavu. I to vrsta poput oštro su, hashtag su ako ste na noviju generaciju. No, to zapravo kaže da trebam pristup svim funkcijama u config.php. A ti bi mogao imati zahtijevaju za sve vrste drugih stvari. config zapravo zahtijeva pomagače. Dakle, kad god vam je potrebna config, ti si također uključujući i zahtijevaju pomagače, kao dobro. Tako da vam daje pristup svim kul funkcije koje ćemo se koristiti, stvari kao što čine. Ja sam zapravo ide za ublažavanje ovo dolje malo. Tako funkciji onda smo će prošetati Samo prije nego što smo prešli na SQL malo malo je funkcija login.php, samo jer se koristi neke od tema da smo samo razgovarali o u PHP. Vidite prva stvar je ako je $ _SERVER. Ovo je još jedna globalna varijabla koja ti si idući u biti bave. To je kao _GET i _POST, ali što poslužitelj sadrži se to može vas pustiti Znaš li metoda zahtjev bio GET ili POST. Kao što je ranije su radimo je samo u našem kodu da smo pisali, smo bili samo mijenjaju da bude GET i NAKON ovisno o tome što je HTML. No, postoje stranice koje mogu biti pristupiti s obje vrste zahtjeva. A možda želite učiniti različite stvari, ovisno o vrsti zahtjeva, baš kao prijavu radi. Tako možete provjeriti taj zahtjev Metoda kroz pristupaju tipki, putem pomoću ključa i dobivanje vrijednost nečega u rječniku _SERVER. Dakle, to je još jedna globalna varijabla kao _GET i _POST. Ako je dobiti, želimo uzvratiti obrazac za prijavu. Render je funkcija koja osnovi Samo postavlja odgovarajući HTML i prolazi ga neke parametre. Ovaj naslov je parametar koji je koristi u prikazivanje, začudo dosta, naslov stranice u Pitanje je stvar ovdje, reći ili pozdraviti u našem prethodnom primjeru. Sada imamo drugu stvar. Inače, ako je to POST smo učiniti neke druge stvari. Mi koristimo tu metodu prazna. Nije postoji, to je prazna. A vidjeli smo i prije, PHP ima dosta izgrađena u postupcima koje je David will-- ako postoji metode koje su korisne za vas, oni će biti upozoreni na vas u šetnji David daje na početku pregledu, i Zamyla a korisne bita. Vratila se svima. Mi svi možemo radovati. Ispričavamo je podesno zove funkcija da samo u osnovi ispisuje neke poruke o pogreškama, jer CS50 vrlo pristojno. A sada ovo, ovo je lukav malo, jer je ova gdje smo upite baze podataka. Sada nismo razgovarali o bazama podataka. I idemo u sljedeći pet minuta ili tako, maksimalno. No, to je funkcija da CS50 je napisao dobiti stol u osnovi iz baze podataka da radimo s u pset 7. Ja sam jako loše s mojim nula indeksiranje danas. Ali da, to je 7. Pa upita on će vraćati polje, u osnovi je bitni ključ. A budući da te stvari ne moraju tipkanje, pa redovima je niz polja. Jer kada smo razmišljati o stol, što ćemo učiniti je, kao što ste naučili u psets kao igra 15, svejedno gdje ste morali koristiti bračni polje, mi u osnovi ima niz drugih nizovi čini stol. A ti imaš retke i stupce. I onda možete im pristupiti kao [0] [1], dobivate [0] [1]. Osnovne stvari kao što je to. Dakle, ono što mi radimo ovdje u ovoj funkciji, tražimo baze podataka ako korisnik to Pokušavam se prijaviti na stranicu, to će biti Poslali metodom POST. Vidjet ćemo mi dobiti korisničko ime iz _POST. Oni će Poslali, korisniku ili će poslati vrijednost putem obrasca putem POST jer to je ime i lozinku stvari. Mi provjeru korisničko ime vidjeti, je li to u tablici? Jer ako je korisnik prijavite u, onda se korisničkim imenom treba čuvati u tablici Korisnici koji postoje za tu stranicu. Tako je u osnovi, ako je Korisnik je u bazi podataka, upit će vratiti to red, što je niz. No, lukav dio je da ako čak i ako dvostruki niz je samo jedan redak, čak i ako je jedan red array-- kao što imaš basically-- Ako imate veličine jedan niz koji drži drugi niz, ste stvarno bave jednom stupcu. Ali to je još uvijek liječi poput dvostrukog niza. I ovo je mjesto gdje se ponekad može dobiti lukav, jer imamo retke ovdje. Naš varijabla redaka. I onda mi stvaramo nova varijabla zove red i postavljanje jednak prvi red redova. A vi ćete primijetiti da komentar kaže da je to prvi i jedini redak. Dakle, ovo je lukav dio gdje sada djeluje može vratiti polja vrlo jednostavno. Nema mallocs. Nećete vidjeti mallocs. Tako nećete vidjeti SEG greške. No, funkcija i dalje će biti prolazi oko polja i podataka u skupinama. I morate biti oprezni što upravo vaši funkcije će se vratiti. A čak i ako je jedno Kolona ovako upit još će se vratiti dvostruku polje. Dakle, pristup koji column-- ili mogu misliti na sve to, kao obrnut jer govorimo o redovima. Ali za pristup taj jedan redak, ne možete samo reći redaka. Iako je jedan redak, morate Ne rowsrows [0] da biste vrsta eliminirati ovaj Vanjski malo polja i imaju samo svoj jedan red. Da li neke druge stvari. Postoji funkcija zove password_verify koji provjerava lozinku koja je objavljena. A onda ćemo vidjeti još jedan globalni varijabla ovdje _SESSION. Uglavnom ID sesije kako ste pratiti od ako netko prijavljen ili ne. Dakle, sada s login.php, mi smo prijavom korisnika u. Dakle, ono što želimo učiniti je želimo kažu ID sesije jednaka retka ID, koji je upravo zbog toga ima smisla svaki red će imati drugačiji id Broj sklopu tablice. Mi ćemo ući u SQL u drugo, tako da ako bilo koji od ova Čini se pomalo kao bla, onda će sve biti uklonjena. Ali ćemo postaviti id jednak pravu stvar, prijavite korisniku u. Ispričavam se ako nešto pođe po zlu. I to je svrha prijave života kao profesor Malan bi rekao. Tako da je login.php. I puno PHP koda pišete u pset 7, oni će biti malo. Ne zaboravite da chmod odgovarajuće dozvole. Tu će biti malo o da na početku spec. Ali PHP da ste pisanje će biti rade stvari koji je sličan ovome. Ti ćeš biti Pristupom neke stvari koje su tebi u globalne varijable PHP koji se bave struje prijavljeni korisnik, postoje li ima bili zahtjeve poslane na ovu stranica, različite stvari kao što je to. I to će također biti potencijalno iterating kroz redove ove stvari. U različita, upit ne vraća ovaj dvostruki niz. A ako postoji više od jednog reda u njemu, ako postoji are-- da, ako postoji više od jednog reda u njemu, onda će biti stol. A možda želite ponoviti kroz redove tog polja koriste foreach petlje koje smo opisali. Dakle, ako radite foreach na dvostruko niz, što će word-- ovdje Ja ću zapravo pisati. Ja ću ga pisati brzo ovdje. Ako imamo foreach redaka kao zaredom, što je vrsta reda? Zna li netko? Shvatio si? Dakle redaka je dvostruki niz. Dakle, ono što je foreach će zaključiti što želimo od ovog dvostrukog niza ako smo iterating preko nje? Mi u osnovi može pretpostaviti da to će biti ili elementi, ili redaka ili stupaca, u osnovi. I tako redaka i stupaca mi može tretirati kao isto. Uglavnom ono što je foreach petlje ide učiniti je da će se vratiti redaka. red će biti tipa zaredom, dok redaka je dvostruki niz. Dakle, ako vam dati foreach dvostruki niz, to je neće ponoviti više od jedne razine duboko. Što je zapravo reći ako postoji osam stanica u to table-- 1,2, 3. 4, 5, 6, 7, 8-- foreach petlje nije ići kroz svaki od tih stanica. Što foreach petlje će učiniti je da će ići kroz ovaj redak, dati vam cijeli ovaj redak. A onda će proći kroz taj red. Dakle, to je samo iterira jednu razinu duboko. Ako dodate ugniježđena foreach petlje, onda ste može liječiti svaki redak vratio iz redaka, vi foreach red kao element, recimo. A onda ste mogli odjek element. Tako da je kratak Malo podsjećanje na to kako možda koristite foreach petlje u kontekstu upita. Postoje li pitanja o PHP-u? Bilo što, prije nego što prešli na razgovor o SQL a zabava baze podataka? Osjećam se dobro? Osjećam se dobro. U redu. Prijeđimo na natrag na PowerPoint, što vjerojatno propustiti. SQL, Yay. Ljudi koji su u mom dijelu obično će znati da podnaslovi akronima uvijek samo prve riječi Mislim na toj utakmici koja algorithm-- tu kraticu. To nije algoritam. Dakle SQL je baza podataka. To je jezik koji radi sa bazama podataka. I sve baze podataka je stolovi, barem u načinu da SQL ih zastupa. Drugi način da mislite o bazama podataka je baze podataka komplet ključeva i vrijednosti u osnovi. Možete misliti o bazi podataka kao Rječnik i kao stol. Uglavnom to je način povezati različitih podataka s drugim podacima, Često kroz retke i stupce. I to je način to je SQL radi najbolje. Dakle, to je jedan primjer stola. Imam nekoliko primjera ljudi u mom dijelu, koji Nisam imao vremena za promjenu. Ali mi imamo stvari kao što su ID, ime, supersila, i rodni grad. Ne znam gdje je tko je od u mom dijelu, pa Samo ću pretpostaviti svatko je iz New Yorka Grad jer imam visok statistički Vjerojatnost da su točne. SQL automatski će potrajati briga o ID stupca za vas. Ako umetnuti novi redak u SQL bazu podataka, to će prirast koji ID broj i jednostavno osnovi držati kao pet imena, velesila, rodni grad, tko na kraju tog stola. Dakle, ID je stupac ćete nikad ne morate brinuti o tome. No, kao iu slučaju od login.php, kada smo su uzimajući ID sesije od stola i samo pomoću ID, ID je način da se jedinstveno identificiraju element baze podataka. Dakle, ako smo imali dva Sams, oba koji je učio CS50, a oba tko bili iz Milwaukeeja, koji bi još uvijek imaju različita identifikacijski broj i na taj način se razlikuje u kontekst stola. Dakle, to je ono što SQL bavi s, rad s na stražnjem kraju. Ovo su četiri naredbe da ćete morati raditi s SQL. I ja sam ih sve bacio se na jedan slajd. Ali ćemo proći ih sve pojedinačno. Prva naredba UPDATE koji čini ono što bi mogli očekivati. Recimo da imate neke podatke u stol koji je zastario. Kao, ako ste čuvanje Staza od ljudi imena i dobi, ako je netko dobi povećava, a zatim idete da želite ići na i ažurirati samo da je dob osobe. Na primjer da radi s našim prvim table-- ne brinite o pisanju sve ove naredbe u isto vrijeme. Ali ako imaš ažuriranje dolje, to će biti dobro za ovaj dio, jer ćemo natrag na stol. Dakle, ako ćemo se vratiti za stol, recimo nešto što se dogodilo je došlo do potresa ili crta kriva što podijeliti izravno kroz New Yorku. I željeli smo da ažurirate sve koji je živio u New Yorku. Svi su morali preseliti u Pennsylvaniji. To nije rodni grad. Svi su morali preseliti u New Havenu. Idemo tamo. Dakle, svatko u New Yorku seli u New Havenu. I tako to je nešto što je uređivanje tri reda u ovoj tablici. Ali u SQL, to možete učiniti da je u samo jednoj izjavi. Tako smo se vratiti ažurirati. Dopustite mi da brzo izbrisati ovaj forum opet. Kada govorimo o obnavljanje, postoje nekoliko dijelova sintakse koje su ključ. Pa, sve sintakse je ključ. No, stvari u zelenom je opcionalno. Bijeli su potrebne, kao predefinirani imena. I svjetlo plava stvari koji ovise na stolu. Dakle, to je ono što se događa s Boja ovdje, tamo gore. Dakle, ako želimo ažurirati samo one retke ljudi koji žive u New Yorku, Dakle, ono što će učiniti ako mi je rekao UPDATE? Dakle stol gdje smo stavili naziv našeg stola. Recimo samo ime našeg stola je stol jedan. Dakle, želimo ažurirati tablicu jednu. I želimo set-- Što želimo postaviti? Pa želimo reći, pa column-- PHP tretira retke kao jedinstvene identifikatore. A onda stupci različitim područjima tih elemenata baze podataka. Dakle, prvi element baze podataka ima ime Sam, supersila u CS50, i rodni grad Milwaukee. Dakle, ako smo rekli postavili, pogledajmo opet parametri koji skupa traje. Imamo stupcu jednaka vrijednosti. Dakle, želimo reći neke column-- koji sjećam je field-- želimo vidjeti Polje jednak nešto novo. Dakle, ako mi samo rekao ažuriranja Tablica 1, postavite naziv jednaka Elliot. Dobiti neke ljude iz novi odjeljak u ovo. Ali ako smo upravo učinio ažurirati tablicu 1 postavite naziv jednak Elliot, što bi stol izgledati nakon toga? Ljudi imaju bilo kakvu ideju? Da. PUBLIKA: Sve u koji red bi postali Elliot. SPEAKER: Sve u kojima redu? PUBLIKA: U prvom redu. Govornik: U prvom redu? Zašto prvi red? Ne mislim da se pokupiti na vas. PUBLIKA: Možda je sve u cijelom stolu? SPEAKER: Sve u cijeli stol, da. I to je upravo pravo because-- sam upravo vam pomaže malo there-- jer smo izostavili dodatni WHERE. Ako nemate gdje su klauzula, što ova naredba će učiniti je da će raditi sa svakim jednoredni u tablici. Ime Svatko će postati Elliott, u osnovi, što Elliot je vrlo sretan. Ili Yanni, jedan od njih dvojice. Ali svačije ime će se promijeniti. Dakle, način na koji koristimo GDJE clause-- a to se odnosi na sve WHEREs da su u svakom ove različite stvari. Tako ćete primijetiti da SET ima stupca jednake vrijednosti. I tako se GDJE. No, to su različiti vrste izvješća. Tako je kolona jednaka vrijednost U skupini je u zadatku. Kao da smo govoreći želimo postaviti ime jednak Elliot. No, u, gdje klauzula, to su izjave jednakosti. Dakle, recimo da smo samo htjeli promijeniti ime osobe Elliota ako im je ime bilo Ryan, recimo. Dakle, kada kažemo GDJE ime jednak Ryan, koji bi uspješno jedina promjena name-- to bi samo promijenite polje ime u redovima gdje je polje ime je jednaka Ryan. Dakle, ako smo imali više osoba imenu Ryan, sva njihova imena će promijeniti Elliot. To je slično primjeru odnosno ako linija pogreška dijeli New York City i svatko mora preseliti se u New Havenu, na način na koji možemo to u jednoj izjavi je UPDATE tablica1 SET rodni = New Haven gdje rodni jednaka New Yorku. To je moć izjava UPDATE. Možemo izabrati bilo koji broj Redovi putem istinitih tvrdnji o područjima u tim redovima. Ne možemo reći UPDATE tablica1 set name = Elliot GDJE red = 1, osim da možemo ako kažemo id = 1. Tako ćemo biti rad s spolova polja, jednakost stupaca. No, pomoću ID polje je način odabrati pojedinačne retke posebno, jer je ID polje je jedinstvena Oznaka u SQL bazu podataka. Dakle, kao što su ažuriranje red jedan, ID jednak 1. Ažuriranje retka dva, samo promijeniti taj identifikacijski broj. Ali sila GDJE izjava je da smo možete ažurirati stvari temelji na ono što su njihovi trenutne vrijednosti pojedinih stvari. Da Elliot? PUBLIKA: A što ako želite to-- opet, to je drugo pitanje. Ali moje prvo pitanje je, gdje se to događa? Gdje sam ja to ažuriranje? Je li to u PHP kodu? SPEAKER: Gdje ste ažurirali, da. Idemo razgovarati o tome gdje se sve to događa vrsta jednom idemo kroz sve naredbe. No, ono što trebate znam za sada je u osnovi da vaš SQL baze podataka postoji kao nešto treba pristupiti upit funkcija koja CS50 definira. Dakle, ako koristite funkciju upita, možete pristupiti ovoj tablici. Tako ćete biti slanje tih naredbe za svoj stol u PHP datoteke kroz funkciju upita. Također možete poigrati sa svojim stolom izravno. I to je najbolji način da se testiranje ove vrste naredbi. A mi ćemo proći kroz točno kako to učiniti u samo malo. Dakle, to je UPDATE naredbe. A ostatak naredbi će biti vrsta slična, radi na sličnim stvarima. Umetka u vjerojatno najviše razlikuje od UPDATE. Idem ostaviti da se tamo samo malo i raditi ovdje. Dakle umetnuti u, vidjet ćete da stol je uvijek isti. Želite umetnuti u. Kapitalizacije, SQL case sensitive. Tako da ne morate iskoristiti te stvari. Po dogovoru riječi u bijelom se kapitaliziraju. Ali također boja ih kodiran. Jedini razlog da kapitalizirati one kad ste ih upisivati je samo naglasiti da oni su konstante. I tako možete ili pogledajte kapitalizacija ili činjenica da sam ih boje različito. Dakle, imamo umetnuti u, ćemo napraviti tabelu 1 ponovno. To je sve na jednoj liniji. Ja sam samo to odvajanje od različite izjave. Dakle, ne brinite o tome da tablica1 ga napravili na drugoj liniji. Tako smo želite umetnuti NA tablica1 neke vrijednosti. A vi ćete primijetiti izborni malo, što ću se u sekundi. Dakle, imamo vrijednosti. Dakle, recimo da želimo dodati Andi na naš stol, jer mi nedostaje Andi. Andi je bolestan. Tako ćemo dodati Andi našem stolu. Sjeti se da je ID broj automatski se ažurira. Tako da je jedini poljima smo morati brinuti o su ime, velesila, i rodni grad. I tako je način na koji smo to učiniti, gledajući naše sintakse, je imamo pravedan je dobio zagrade, sa zarezom odvojene vrijednosti, od kojih je svaki je vrijednost. Dakle, ako smo htjeli umetnuti Andi u našu stol, sve što morate učiniti je pravo Andi. Što je Andi je velesila, ljudi u odjeljku Andi-a? Ona se sviđa let, ili vole Brzina, ili nešto. Što smo već tamo? Imamo CS50, let, Brzina i snaga. PUBLIKA: Vrijeme putovanja. SPEAKER: Vrijeme putovanja, nevjerojatna. Dakle, imamo Andi, vrijeme putovanja, i njezin rodni grad. To je stvarno dobro pitanje. New York City, osim ako netko ne zna. Svatko je od New York je Pouka oduzeti od danas. Dakle, ova izjava bi umetanje, kao peti zaredom, s vremenom putovanja supersile i rodni New Yorku. No izborno polje je u osnovi način odrediti točno koje stupce želite umetnuti stvari. Način na koji mi to radiš sada, Andi, putovanje kroz vrijeme, u New Yorku, ide u točnom redoslijedu naše table-- ime, velesila, rodni grad. A ako ste htjeli napraviti nešto drugo nego da, kao što kažu niste znali nečija supersila, kao i kako nisam znala Andi-a supersila na početku. Dakle, sve što sam znao je bio ime i njezin rodni grad. Što sam mogao učiniti je što sam mogao do-- ću izbrisati ovaj brzi. Želim samo ažurirati stupce. I ovo je mjesto gdje se izborni Popis stupcu dolazi u igru. Ja samo želim ažurirati ime i rodni grad. A onda ću reći vrijednosti. Učinit ću Andi i New Yorku. Ako sam izostavio popis stupaca i samo učiniti ove dvije stvari, gdje bi u New Yorku su otišli? Koji stupac bi New York Grad su smješteni u? Ljudi imaju bilo kakvu ideju? Velesila, točno. Dakle, to će samo ići u redu. I nakon što dosegne kraj Popis, to će samo prestati punjenje stvari. I vrijednosti da će staviti u svi stupci će samo biti NULL. Pa zato što je navedeno ime i rodni grad, ćemo imati ID 5, ime Andi, velesila NULL. Dakle supersila je nepokrenute vrijednost. Ne nužno dobiti Isti Valgrind pogreške ako pokušate i pristup to. Sve će biti lijepo na nulu van, jer je NULL vrijednost u SQL. To je konstanta. A onda rodni grad će biti u New Yorku. Dakle, to je INSERT INTO naredbe. Prije nego što smo premjestiti, postoji još dvije naredbe. Nemojte ljudi imaju bilo kakvih pitanja o UPDATE o umetnuti u, o SQL uglavnom prije nego što premjestiti na našim konačnim bita? Ljudi se osjećaju dobro, super. Volim to. Dakle, pričajmo o SELECT. Ide rova ​​UPDATE ovdje. I odaberite će biti vrlo slična. Cilj SELECT, Odaberite je svrha u životu je da vam hrpa stupaca koje zadovoljavaju određene uvjete. A kad kažem zadovoljiti određenim uvjetima vaš um odmah moglo povratak na koji WHERE koji je došao u ažuriranju. I to je klauzula upravo tamo u SELECT. Ako ne stavite u kojoj klauzula i kažemo SELECT ime, hometown-- precizirao da malo wrong-- naziv, rodni OD tablicu1. Ako mi samo reći da, ono SELECT će nam dati je da je će nam dati double-- stol, a. Dvostruki niz ako smo razmišljam o u PHP osjetila. Ali to je samo će nam dati dvostruka niz dva columns-- ime, i rodni grad. I to će ignorirati ID. I to će ignorirati velesila. I to samo će nam dati svaki jedan red od tog stola. Dakle, ako smo samo umetnuta Andi, imat ćemo Andi. I mi ćemo imati izvornu četiri. Ako ste bili ažurirani, koji će se ogleda, i tako dalje, i tako dalje. Dakle, to je zato što ne koristiti WHERE. No, možemo ga koristiti u točno Isto tako smo ga koristili u ažuriranju. Ako mi samo želimo tablicu imena i super moći ljudi žive u New Yorku, možemo izvršiti izjavu poput SELECT ime, superpower-- Samo ću ostaviti that-- IZ tablica1 GDJE rodni = New Yorku. Dakle, to pokazuje da možete dobiti potpuno različite stupce, a zatim staviti stupce koji niste čak i dobivanje natrag u WHERE klauzuli. Mi čak ne žele rodni svakoga. Ali mi želimo naziv i supersile ljudi čiji je rodni grad je u New Yorku. Dakle, to je nešto što može učiniti s GDJE klauzula možemo nositi sa stupcima da mi ne nužno žele natrag. Na isti način na UPDATE, možemo nositi sa stupovima koji mi ne nužno želite ažurirati. Možemo ažurirati grad svakoga koji je ime je Sam, na primjer. Možemo ažurirati grad svatko kome ID broj 2. Dakle, samo ažurirati Grad drugom redu gdje ne moraju nositi s Potrebno je zajednički pitanje. I brisanje je, kao što bih očekivati, izbrisati iz tablicu1. I onda imamo još jednu WHERE. Tako možemo reći gdje je id = 1. Izbrišite prvi red. I DELETE uvijek će izbrisati redak, ili će izbrisati neki broj redaka. Izbrisati iz stola gdje rodni = New Yorku će izbrisati sve u New Yorku. To je, ako je došlo do iznenadna tragična kuga a ti samo htjela ukloniti Svatko od stola koji je živjela u nekom gradu koja je pogodila kuga. Neka počiva u miru. To su četiri SQL naredbe da ćete morati koristiti. Vi možda čak i ne morate ih koristiti sve. No, to su četiri koja vas očekuje CS50 biti udoban s odlaskom u i kviz 1 i pset7 i pset8. Tu je samo da tablica opet. U ovoj jednoj, Roy je supersila ima je ažuriran na laserske zrake koje je primjer nisam koristio. Ne znam koje Roy voli, ali snaga. Roy ima velesilu snage. Katherine nije čine ga i danas. To je nesretna. No, ona ima super brzine. Pa to je PHP. Prije nego što smo razgovarati o MVC, ne tko ima pitanja o PHP-u? Sada SQL, PHP ili ako iznenada imate se s pitanjem o PHP-u? Veliki. U redu, svi smo postavili tada. Dakle, govorimo malo O prikazu modela kontrolera, idemo natrag u neki od stvari u pset7. Pa što Pogled modela Regulator is-- nisam će spremiti promjene za prijavu jer sam totalno ga kolju. No, u osnovi imamo dvije odvojene stvari događa. Imamo javnost katalog koji sadrži kod koje će se izvršiti i web stranice koje će posjetiti. I mi također imaju ovu pregleda imenik. I pogleda sadrži predloške. To je ono što je funkcija render-- smo vidjeli žbuke funkcija u hrpa PHP koda da CS50 je napisao već za tebe, koja se u određenim parametrima. Što da radi kod se to događa u pogledima, koji su skupovi poput prewritten HTML kod, i to je umetanje vrijednosti u nekim mjestima. Ovo je način kako kad vas ići u CS50 financija, isto zaglavlje se na svakoj stranici. Isto footer na svakoj stranici. To je zato što je način koji čine djela je da će automatski krpa u tom zaglavlju i preglednik koji možete naći u pogledima. Mi zapravo može ići u zaglavlju, i gledaj, to je HTML datoteku s glave. To je dobio neke stylesheet. Ne morate da pogledate CSS za pset7 ako ne želite. Ali možete mijenjati ih, ako želite, napravite Vaš financije izgleda malo drugačije. To je dobio neke PHP u zaglavlje malo vidjeti ako postoji drugi naslov to bi trebalo staviti u ovom napadača. No, samo neke druge skripte, i veze, i druge stvari. Voditelj završava, tijelo počinje i Ups, imamo čudan malo end malo. I tu je div, baš kao i bezobličan vrsta elementa da ima ideju sredini. I onda kad vidimo podnožje, imamo kraj div. Imamo dno, što je gdje je podnožje tekst. Kraj div, kraj tijela, kraj HTML. Pa što učiniti je radi se donijeti je vrsta od krpanje zaglavlje, A različite PHP datoteka koje će sadržavati stvarne stvari koje ćete vidjeti, kao što je vaš stol dionica ako kupujete ili prodaju dionica. A onda ćemo dodati u podnožje. A pogled modelu Regulator Ideja je da smo žele odvojiti kako stvari izgledaju iz koda. To želimo odvojiti krajnji i pozadina, gdje je sučelje je stvari koje korisnik vidi, lijepo visuals-- HTML, CSS, takve stvari, slike, i tako dalje. I pozadina je PHP. To je kod koji ste napisali. To je mjesto gdje se kod koji je radi stvarne operacije. To je kada dodajete dioničko na svoj stol, kada kupujete i prodaje, to je pozadina. I mi možemo, kao što ste vidjeli, uključujući PHP izravno u HTML. Dakle, ono što smo mogli učiniti za Ovaj zadatak je samo imao HTML datoteku za svaku stranicu, kao i prijava. A onda na toj stranici, jednostavno imao veliku blok PHP koda, uključujući sve koda koji koja stranica će posebno trebati. A onda smo mogli imati učinio za portfelj. Mogli smo učinili sve kupnje i prodaje unutar pojedinih stranica. Ali zato što smo renderiranje odvojeno od kuda pišemo u backend broj, lako možemo promijeniti kako stvari izgledaju bez mijenja svaki datoteku. Mi radimo stvari kao što samo dodati novi div na dno of-- Pozdrav sam izmijenio podnožje. Vi samo možete učiniti stvari kao što je to. Ali isto tako, možete promijeniti cijeli vizualni izgled bez utjecaja na ono što je ide u backend. A što može promijeniti Cijela pozadina i dalje ga izgledaju kao što je to prije. Ovaj Je li ideja pogled modela kontrolora. I to je zapravo nametnut paradigma u nekim od programskih jezika možda želite koristiti za konačne projekte. Ako to ne učinite iOS razvoj, imaju pogled, što je ono što vidite na iPhone, i onda pozadina kao kao zasebna stvar. Možete razmišljati o malo. Postoji mnogo binaries u informatika, što je smiješno, jer sve je u binarnom. Nisam planirao da. To je dosjetka nenamjeran. Da, dosjetka nije namijenjen. Ali kao .h datoteke i .c datoteka, postoji puno izlučivanja stvari koje smo možda trebati. Dakle, mi samo možemo urediti h datoteke, ili netko može samo vidjeti .h datoteku i znati točno funkcije koje su u .c datoteka bez nužno znajući njihovu provedbu. Ova ideja odvajanja dijelova koji ovise jedni o drugima ali vrsta može od pristupiti jedni druge kroz različite kanale, donošenje varijabli, samo su izjave, stvari kao što je to, to načelo pomaže u stvaranju aplikacija da se lakše uredio više osoba, može lakše mijenjati ili promjene na velikim razmjerima, i lakše debug na mnogo načina. Stvarno brzo, imam nekoliko savjeta za pset7, što ću cijeli zaslon, tako da ne samo gleda na the-- Savjet Savjet tippee. Tu se ne da mnogo savjeta. Ali sam spomenuo PHP je teško debug. Dvostruki i trostruki to provjeriti. Ako je vaš broj je samo ne prikazuje se na stranici, to je vjerojatno PHP greška, ispričavam se. Vi nikada ne morate pogledati CSS ako ne želite. Ali jednom kada ste završili, to može biti lijepo malo zabavna stvar samo ići u i zabrljati sa CSS parametrima. CSS i HTML su primjer modela Pogled kontroler stil je stvar, zar ne? Možete imati stila oznake unutar HTML elemenata. Ali, ako vas neka vrsta ih outsourcing CSS, oni su lakše uređivati ​​i igra okolo sa i zabavite se s. Priuštite CS50 pomagača djeluje kao crne kutije. Ne morate znati upravo ono što žbuka radi, ali vjerujte da to uvijek činiti pravo stvar, ovisno o tome što ste ga prođe, stvari kao što je ovaj. I ja bih preporučio gledajući Davida prohod, prolazi kroz sve stvarima, a ne samo todos, ali ti stvarno može liječiti ti kao crne kutije. Nemojte ići na to Funkcije potrazi za bugove. I dobrodošli povratak naše Overlord Zamyla. Veliki. Postoje li posljednja pitanja prije smo vrsta odskočiti za dan? Jesam li još uvijek žive? Veliki. Hi Livestream ljudi. Veliki. Ima li više pitanja? Ne? A onda mislim da smo dobar to ići za danas. Ja ću ostati ovdje malo nakon toga, ako su ljudi imali pitanja oni su se bojali pitati na potoku. Ali inače, imaju dobar dan.