[Zenelejátszó] DAVID J. MALAN: Rendben. Üdvözöljük. Ez CS50. Ez a hét végén 8. És mint tudjuk, van elég rendes munkaidőn néhány Az étkezőben, beleértve Annenberg. És néhány kedves csapat fotózni mostanában. És tiszteletére Halloween, azt hittük, egy közös, hogy inkább elkapott minket meglepetés itt Annenberg terem csak a múltkor. Az osztálytárs Jacob pózolt ezt a fotót, de inkább szórakoztató volt a Facebook-on, a következő beszélgetés történt utána. Az első post válaszként ő volt az a fénykép. Néhány perccel később, úgy döntött, az egyik fel magát ezzel. Ez ment majd megy ez, és akkor, még inkább szórakoztatóan az, amikor az anyja szólt közbe. És akkor végül, úgy tűnik, ez csak csodálatos csel egy játszani, ami folyik. Tehát, ha azt szeretné, hogy Jacob és mások, köztük Cynthia Meng, aki a színfalak mögött a CS50 zóna személyzet, fej erre az URL, és ez a játék itt. Tehát minden további nélkül, ma továbbra is ezt a pillantást web programozás, és a tényleges programokat hoztak létre, hogy nem futnak a parancssorban, de ahelyett, fuss belsejében egy böngésző. Feltehetően most, vagy nagyon röviden, mész hogy a közepén végrehajtási saját web-szerver, amely eltér a webes programozás. A web szerver pset6 szól írás szoftver, amely tudja, hogyan kell HTTP kérések a böngészőből, vagy akár te, ember, a program neve Telnet, és majd válaszol a kérelmekre sem által kiköpte egy HTML fájlt, vagy a jpeg vagy gif, vagy akár egy .php fájlt. De egy webszerver, ez nem állítólag csak megnyitni a PHP fájlt, valami végződő .php, és majd köpje ki a tartalmát. Ez kéne csinálni mi az, hogy a fájl első? Hogy úgy mondjam. Nem fordíthatod, azt mondta hétfőn, de rather-- Szóval értelmezni. A PHP egy értelmezett nyelv, és így egyik fő jellemzője a web szerver, de végre nekünk, ez a képesség a web szerver észre, oh. Ez a fájl végződő .php. Hadd ne csak küldje el a felhasználó, mint ez a statikus tartalom, hanem inkább hadd olvassa el a sort sor, balról jobbra, és értelmezni azt. És nem, hogy srácok alapvetően punt a program a készülék, és egy csomó számítógépes rendszerek, most hívott PHP. Ez a neve a PHP nyelv saját tolmácsa. Tehát, hogy a darab azt végrehajtani te, és mi marad neked, végül, egy szám darab, amelyek közül végrehajtja támogatás statikus tartalom. De most, és a probléma állítva hét, te fog kezdeni az átmenet valójában írni a PHP kódot hogy lesz értelmezhető beszél, hogy a back end adatbázis, amely tárolja az információkat. Szóval jobban ért az első egy pár ilyen szuperglobális és, hogy mennyi energiára van kijutni a doboz ingyen a nyelv, mint a PHP. A dolgok nem rendelkezik végrehajtására magad. Így láttuk hétfőn $ _GET, amely egy szuperglobális, ami csak a PHP beszélni a globális változó Bárhonnan elérhető. És mi van benne a $ _GET? Mi benne az e szuperglobális hogy látunk? Bizonyára statisztikailag Legalább egy ember tudja. Mi van a $ _GET? Igen? KÖZÖNSÉG: Ez a változó teszel a query string. DAVID J. MALAN: Tökéletes. Ez a változók tedd a query string. Tehát a régebbi példát reimplementing Google, amikor már egy URL-t, majd a kérdőjel, amely kijelölte kezdete HTTP paramétereket, akkor mi volt q egyenlő valami, mint a q értéke macskák, mi automatikusan bemenni Az, hogy a $ _GET szuper globális neked, mert a PHP, kulcsfontosságú a Q, és értékét, a macskák. Más szóval, $ _GET és az összes ezek a dolgok asszociatív tömböt, hash táblák a fajta, hogy bolt kulcsokat és értékeket. Most vissza pset5, a hash tábla lehet, hogy végre, vagy az lehet, hogy megpróbál végrehajtotta, tényleg volt gyakorlatilag egy asszociációs tömb, egy adatstruktúra amely lehet társítani kulcsokat értékekkel. De pset5, az értékek triviális. Az érték lényegében igaz, vagy hamis. A szó a szótárban? Tehát, ha egy kivonatos szót, mint alma hogy ha alma van a szótárban, az ellenőrzés funkció feltehetően vissza igaz vagy hamis. Szóval, hogy ez ténylegesen a érték vagyunk kapok vissza. De láttam a hétfő Röviden, akkor biztosan társult érdekesebb értékek, mint true vagy false A kulcs, mint az Apple. Lehet tényleg vissza egy tetszőleges string, sőt, ez az, amit $ _GET és ezek Más változók segítségével csinálni. Tehát $ _POST hasonló szellemben, de ha be egy űrlapot postai úton, más HTTP módszer, ami használt dolgok, mint a hitelkártyák, és személyes adatokat, és még bináris adatokat, mint a képek, ezek a dolgok a végén belsejében $ _POST. És tulajdonképpen fájlok mint JPEG-ek és miegymás, van még egy másik, hogy ez nem itt az úgynevezett $ _FILES is. Szóval, a szerver nem fogunk lakni túl sok, de ez ad hozzáférést rendezni az alacsonyabb szintű részletek a szerver is, amit használ. Cookie és ülés, bár, fogjuk látni most hatékonyan. Az utolsó, amit arra használunk, hogy végre fogalma a kosár. Egy szuper egyszerű, de visszahívás hogy mi volt ez a példa itt, számlálás hányszor járt ezt a lapot. De ma, nem csak nézni a hatása az, nyissuk fel Chrome Inspector, amelyek segítségével általában ezt a jobb egérgombbal vagy a Control kattintson bárhol a weboldal, majd válassza vizsgálja elem. Vagy mehetsz a menükben hogy leírjuk a pset6 a spec. És megyek a Network fül itt, és nézzük meg egy pillanatra a HTTP forgalmat, ami oda-vissza. Először is hadd menjen előre és tiszta Chrome cache. Így néhány ismerős lehet ezzel a technikával már, és fogunk használni hibakeresés itt. Most például a számítógép tudósok fognak kezdeni ezt a hibakeresés célokra, amelynek során akkor törölje a cache, jellemzően, hogy mi megszabadulni dolgokat az úgynevezett cookie-kat. Szóval valószínűleg általánosan ismert milyen a cookie-k, vagy legalábbis hogy léteznek, de mi a megértést őket, mivel csak egy felhasználó számítógépek, mi az a cookie? Igen. KÖZÖNSÉG: Ez egy kicsit of-- is, nem bit a kifejezés a számítógép-tudomány. Ez egy adat, hogy a weboldal küld az Ön érdekében hogy képes legyen felvenni statisztikák téged. DAVID J. MALAN: OK, jó. Tehát ez egy adat, hogy a szerver, hozza a számítógépre, és hadd általánosítani még több, ez egy kulcs value-- is, hogy egyre pontosabb. Ez egy darab információk, adat, hogy a szerver képes , hogy a számítógépen és nagyon gyakran, a szerver nem ezt úgy, hogy ne feledje, hogy kik vagytok. Így például, esély vannak akkor valószínűleg bejelentkezett oldalak, mint a Facebook, vagy Gmail, vagy mások előtt, és jelentkezzen be felhasználónév és jelszó, majd azt követően, hogy az egyes szám perc vagy óra vagy akár nap, A szerver emlékszik, hogy van, sőt, belépve. Most, hogy az, hogy valójában történik? Mert te biztosan nem beírni felhasználónevét és jelszavát minden alkalommal Ön navigálhat a másik oldal a Facebook-on. Így kiderül, a sütik a válasz. A cookie tudsz gondolni, mint, Valahogy úgy, mint egy digitális kéz bélyeg, hogy lehet, hogy egy szórakoztató park vagy egy klub, amely lényegében azt jelzi, hogy már itt előtt, és akkor már látható az azonosító a kidobóember, az Például, hogy a klub és a park vagy most azt feltételezik, hogy bizonylatokat már. Már azonosította azt. Így ezt szem előtt tartva, nyissuk fel számláló itt. Hadd menjek előre, én csináltam, és tiszta minden a cookie-kat. És most mit fogok csinálni az tartsa lenyomva a Shift, csak a jó intézkedés, és erőszakkal az oldal újratöltődik. Shift csak arról, hogy semmi sem lesz a gyorsítótárba. És itt van a kérelem ment oda-vissza. Tehát itt van egy kérés, és hagyja, hogy nekem nagyítás le itt, és sok ez egyfajta érdektelen adatai most, hogy a böngésző automatikusan küldött, de most kattintson a Nézet Source, hogy a nyers fejléceket. És ha már beugrott pset6 már, akkor biztosan ismeri a dolgokat mint ez, és talán néhány ezen egyéb vonalak itt, de ami még érdekesebb a mai napra ha én lapozzunk lefelé, nem a kérelem de az úgynevezett válasz, ezt a sort valószínűleg ismerős. Ez egy jó dolog ha látsz egy 200 OK. Úgy látszik, ez a dátum és idő a szerveren és van egy csomó dolgot. Ó, ez érdekes. Kiderült, hogy amikor használja PHP, legalábbis ezen a szerveren, a szerver kiköpi mi verzió PHP használ. Ami, tulajdonképpen, a biztonsági célokra, nem egy jó dolog. De, akkor gyere vissza, hogy a máskor talán. De most ez a lédús vonal ma, és láttuk röviden néhány ilyen, Azt hiszem, a Facebook, amikor kidugta körül a felügyelő abban az időben, set cookie mi ültetési ez a kis darab információ a számítógépre. Ez egy HTTP header ez hatékonyan mondja a böngésző, Chrome, IE, bármi, hey böngésző tárolja a felhasználó merevlemez, vagy a felhasználó RAM, kulcsfontosságú nevű PHPSESSID, amely egy rövidített jelölése munkamenet azonosítót, és adja meg a értéket 0vlk8t, pont, pont, pont. Egy nagyon hosszú pszeudo véletlenszerű alfanumerikus karaktersor. Ez csak egy nagyon nagy szám, de ez kódolt betűk és számok úgy, hogy a mérete is lehet még nagyobb, mint a számok önmagukban. És akkor, mellesleg, Path = /, hogy csak azt jelenti, hogy ez a süti legyen kapcsolódó teljes egészében a honlapon, nem csak egy konkrét oldal az egész dolog. Tehát ez az, hogy a virtuális kéz bélyegző. Mintha a szerver, Facebook, vagy a mi esetünkben a készülék, van szó írott 0vlk8t és így tovább, a kezét. Figyeljük meg, milyen a szerver, nem csinál, ez nem tárolása a felhasználóneveddel, biztosan nem tárolja a jelszót. Ehelyett, úgy tűnik, hogy tárolására pszeudo random információ annak érdekében, hogy senki sem tudja kitalálni mit kezem bélyegző. A szerver oldalon, eközben a szerver fog emlékezni, valószínűleg egy adatbázis vagy valami, hogy a felhasználó, aki a jövőben bemutatja a kéz pecsétje 0vlk8t, pont, pont, pont, kell ezzel kapcsolatos különösen a bevásárlókocsi, hogy úgy mondjam. Más szóval, ha most megy vissza, és töltse be újra ezt az oldalt, hogyan működik a szerver tudja hogy jártam egyszer? Vagy ha újra meg újra, hogyan működik a szerver tudom, hogy jártam, hogy kétszer? Nos, ha én megyek le, hogy ez legutóbbi kérelem, amely most a harmadik, hogy én küldtem összesen észre kérésemet most. Van még mindig ez a kérheti fel itt, ugyanaz mint korábban, még mindig van egy csomó A dolog, hogy már figyelmen kívül, mint korábban, de a legutolsó fejléc, ez idő, mert én már jártam itt, a bemutatása a virtuális kéz bélyegző. Amely szerint ezt a sort itt, nincs beállítva süti de süti vastagbél PHPSESSI = 0vlk8t, hogy csak a böngésző automatikus bemutatása a kézi bélyegző, hogy a most a szerver, amint rájön, ó, ez a felhasználó 0vlk8t pont, pont, pont, Most már emlékszem, hogy ki ő, vagy ő és újratársításához az a felhasználó bármilyen információ akarok, és az összes hogy az információ tárolható az Ön által, a programozó, a $ _SESSION. Tehát egyértelmű, ha kinyitom tényleg gyorsan A gedit, hogy a tényleges fájl counter.php, én helyi fogadó nyilvános könyvtár mint korábban, észre, hogy valóban, Én végül tároló $ _SESSION Idézet idézet vége "ellen," az érték az előző számláló, amely Kapok e sorokat ide, hogy mi nézett utoljára plusz egy. Így a motorháztető alatt, hogy minden cookie-k. Ez csak az a fajta digitális kézi bélyegző megy oda-vissza, és őszintén szólva, ha nyitott Chrome Felügyelő bármely weboldalon meglátogatott ma, szuper nagy valószínűséggel, fogsz látni talán egy, talán fél tucat cookie-k hogy emlékezni rád. És ami még rosszabb, ha ezek a meglátogatott webhely mind reklámok, ami minden bizonnyal elég gyakori ma, és ha ezek a reklámok jönnek néhány központi party, valaki mint a Google AdWords vagy ahogy hívja az egyik termék vagy más olyan gyártók, eladó hirdetések, ami érdekes, és őszintén szólva, mi egy kicsit aggasztó, hogyan működik a HTTP, az, hogy ha van egy hirdetés beágyazott A Facebook.com, és Google.com, és Harvard.edu, tetszőleges számú honlapok, így az ilyen hogy van egy középső ember, aki szolgál up hirdetések mindhárom említett honlapok, kiderül, hogy a cookie-k egy domain. Tehát, ha van egy hirdetés érkező Ugyanez a vállalat a különböző honlapokon, a társaság hatékonyan nyomon követni, aki akkor minden ilyen honlapok. Harvard esetleg nem tudja, Ön látogató Facebook. Facebook lehet, hogy nem tudja, és Ön látogató Harvard. De bármilyen hirdetési szolgáltatás ők használ, ha a tartomány Jelenleg mindkét Harvard.edu web lapok és weboldalak Facebook.com, ez középső ember biztosan tudja, hogy ki vagy mert ezek a cookie-k megosztott keresztül, vagy inkább az, hogy az úgynevezett közvetítő. Szóval vissza fog jönni, hogy ez a biztonsági vonatkozásairól, de van egy csomó információt tárolnak rólad bármikor látogasson el a legtöbb olyan internetes oldal Az internet és tényleg csökkenti ezt a nagyon egyszerű mechanizmus. Mi történik, akkor, ha te szuper paranoiás és úgy dönt, hogy menjen be a Chrome vagy IE vagy bármi, és kapcsolja ki a cookie-kat? Mi történik? Igen? Te really-- tettél ezt a jogot? OK. No, megy előre. KÖZÖNSÉG: Egyes weboldalak nem funkció nélkül, mint a Facebook. DAVID J. MALAN: Igen! Tehát bizonyos honlapok majd csak leáll. És a legtöbb honlapok manapság hogy alapvetően támaszkodnak a cookie-kat, különösen ha bejelentkezik az, ők csak úgy megtörni. Mivel úgy a alternatíva, ha a honlap nincs módja az emlékezés, hogy ki vagy, és ezért a böngésző nem képviselő minden HTTP kérésére ez a kéz bélyegző, gyakorlatilag egy weboldal mint a Facebook, folyamatban lévő hogy meg kell kérni, hogy belépés minden rohadt alkalommal megváltoztatja oldalakat, vagy kattintson egy linkre, amely biztosan nem egy különösen jó felhasználó tapasztalat. Annak érdekében, hogy ott is van között a kompromisszumokra. Tehát minden további nélkül, vessünk Feltételezve, hogy a webes programozás, a nyelvek, mint a PHP, akkor emlékezni információk, mint például, hogy a probléma beállítása hét, amikor végre a saját E * Trade-szerű weboldal, ahol vásárolni és eladni készletek, akkor emlékszik pontosan amit a felhasználó vásárolt és eladott és ki ő a útján ezen az ülésen. De szükségünk lesz Egy szakértő módon mint az e-mail kezdeni az információk körül. Jobb? Hétfőn beszéltünk Frosh PM és hogyan verzió egyik a weboldalon, évvel ezelőtt, minden, amit tett, e-mailt a Proctor, aki felelős bels sport program, a nevét, és a nemek közötti egyenlőség, és függetlenül attól, hogy ők a kapitány, és a kollégiumi valaki, aki regisztráció egy intramurális sport. Szóval ez nem rossz, de ő akkor kellett troll keresztül az e-mail, egy táblázatot vagy valami hasonló hogy, hogy minden szervezett. Így biztosan mi, programozók megteheti ezt, hogy a megbízott. És így meg az SQL, Structured Query Language, ami lesz, hogy nézel eltérő mind a C és a PHP, és akkor merülés sokkal kezét PHP és a probléma meghatározott hét, hanem SQL, vagy az SQL, ez egy olyan nyelv, használt beszélgetni az adatbázissal. De mi az az adatbázis? Nos, gondolom, egy adatbázis, legalábbis most, mint csak úgy, mint egy Excel fájlt, vagy ha a Mac felhasználók a számok fájl vagy ha a Google Apps felhasználó Google táblázat, ez gyakorlatilag egy adatbázis, vagy tényleg különösen a relációs adatbázis. A relációs adatbázis csak olyasmit, ami a sorok és oszlopok és tárolhat bármilyen információ ezen sorok vagy oszlopok. De mi a szép az SQL, és körülbelül aktuális adatbázisokon, nem csak táblázatok vagy a Google táblázatok, az, hogy tudod használni a nyelvet hogy ténylegesen végre lekérdezések helyezze az adatokat, hogy távolítsa el az adatok, keresni az adatok, még a legfontosabb, és nem kell használni meglehetősen kézzel ahogy lehet, hogy általában a Google táblázatkezelő, mint ez. Így SQL, van egy csomó alapvető nyilatkozatok vagy darabok A funkcionalitást beépítve. Van több, mint ezek, de lehet menni a hatalmas távolság Csak az tudja, hogy ezen a nyelven úgynevezett SQL legalább négy nyilatkozatok akkor a tőkeáttétel. Törlés, eltávolítására adatok Helyezze be, hozzátéve sorok, Update, mert a változó sorok, és kiválasztása, az, hogy újra a sorok és ez az, amit valóban SQL csinál. Úgy működik, így teljes mértékben a sorok hogy amikor behelyezi, vagy távolítsa el, vagy frissítés, vagy válassza ki, mit te kapok vissza, mint egy úgynevezett set eredmény, mint egy sor sorok. Egy csomó sorok a táblázatban. Így hát a nap, és még a mai napig, kölcsönhatásba léphet a adatbázis parancssor segítségével, de ez nem különösebben szórakoztató használni a fekete-fehér stílus ablak és ténylegesen végre parancsokat és piszkálni körül az adatbázist. A grafikus felhasználói felület, vagy GUI, sokkal előnyösebb, vitathatatlanul, és így a szerszám ajánljuk és telepítve az Ön számára a készülék hívják phpMyAdmin. Ez egy totális véletlen, hogy a neve ez a dolog a PHP benne, ez csak azt jelenti, hogy az emberek aki írta ezt a programot magát írta PHP. De végső soron beadását adatbázis szerver, mint a MYSQL szerver hogy lehet, hogy, ahogy igen, a CS50 készülék. Szóval van itt, mint több részletet kell törődnünk ma, de mi a legfontosabb az, hogy a bal oldalon oldalon van egy lista az adatbázisok hogy van a számítógépen, a CS50 készülék, vagy jön a végső projektek lehet, hogy Van egy harmadik fél, a vállalat honlap vagy webszerver, hogy lehet, hogy fizet helyet. Így a bal oldalon van a adatbázisok, amelyek közül az egyik az pset7 amit kölcsön következő hét PSET, majd a felső ott észre van egy csomó lapok, amelyek közül az egyik az adatbázisok, SQL, állapot, felhasználók, az export és így tovább. Szóval lehet menni egy hosszú Így csak a megvalósításában hogy a legtöbb felhasználói felület van a felső bal oldali oszlopban és az egész tetején egészen ott. Szóval mit tehetünk valójában ezzel? Nos, kezdjük létrehozása kis információ az alábbiak szerint. Tegyük fel, hogy a következő esetek, ahogy lesz, csak néhány nap, szeretnénk, hogy végre egy website, úgynevezett CS50 Finance, és ez a honlap lehetővé teszi, hogy vásárolni idézet idézet vége és eladni készletek. És ez meg fog kitalálni az ár az említett állományok, végül, mint látni fogod, beszél a Yahoo Finance. Ami, csodálatosan, egy ingyenes szolgáltatás amely akkor át a árfolyamkijelző mint GOOG a Google, és ez lesz adja vissza a Google jelenlegi állomány ár az elmúlt Néhány perc, legalább. Szóval fogjuk használni, hogy végső soron úgy tesz, mintha a felhasználó vásárolni és eladni a tényleges készletek virtuális pénz, de a legelső dolog, a felhasználó fog látni ez a bejelentkező képernyő, amely arra kéri őket, azok felhasználónevét és jelszavát. És így, az egyik az első kihívást az Ön számára pset7 lesz végrehajtani a háttérben adatbázis, a táblázatkezelő ha úgy tetszik, hogy fog tárolni felhasználói neveket és jelszavakat és végül milyen készletek az övék, és mennyi, és mennyi készpénz van, így egy csomó más dolog a egyéb táblák, vagy táblázatok. Szóval vessünk egy pillantást, hogy ez tűnhet első pillantásra. Én megyek vissza a készülék és én fog menni erre az URL-itt phpMyAdmin localhost / phpmyadmin és látni fogod, hogy ez elvisz egy interfész pontosan úgy, ahogy láttuk a képernyő lövés, és én itt van egy további adatbázis hívott előadás ma és hadd menjen előre első és kattintson a pset7. Úgy tűnik, hogy van egy pár lehetőség, egy új, az létrehoz egy új tábla, és egy linket a felhasználók számára, amely egy asztal már létrehozott. Tehát mi az a tábla? Tehát, ha használt Excel előtt, és ha már használt számok vagy a Google Táblázatok, megnyit egy ablakot és kapsz egy csomó A sorok és oszlopok, de akkor általában munkalapot alján, vagy külön lapon. Ön szerint az egyes munkalap, mint egy asztal annak érdekében, hogy az adatbázis, végső soron, a kombinációja egy vagy több táblából, egy vagy több munkalapot, a világ egy normális táblázatot. Szóval hadd menjen előre, és kattintson erre a munkalapra hogy én előre elkészített, úgynevezett felhasználók, más néven Adatbázis tábla. És ha én lépjünk le itt, hadd kicsinyítés egy kicsit, ez az, amit mond phpMyAdmin Számunkra belül a táblázat most. Ez egy kicsit zavaró az első pillantásra, mert a felhasználói felület nem a legszebb dolog a világon, de mi az az érdekes, ez a rész itt. ID, felhasználónév, és hash. Előre, és máris kézzel Ezt a problémát állítva hét, kapsz egy fájl, amely egy szuper kis adatbázis tábla, kölcsönzött valójában A hacker kiadás A probléma meg két, amelynek belsejében vannak hat sor. One Belinda összes lement az egyik Zamyla, és vegyük észre, hogy a bal oldalon az említett felhasználónevek egyediek azonosítók, mint egy, két, három, négy, öt, hat, egész szám, majd jobbra a hash-eket. És ha esély, hogy nem tesz a hacker kiadás probléma meg két, de a hash olyan, mint egy titkosított jelszó néhány kikötéssel. És igen, mit látsz itt a titkosított változatai mind a hat mi a jelszavak probléma meg két hacker kiadás. Most a bal oldalon csak néhány GUI dolgot, szerkeszti ezt a sort, másolás ebben a sorban, törlése ezt a sort. De mi az érdekes most a következő. Én ténylegesen elindulhasson kísérletezni a táblázat. Tehát, ha elmegyek, majd kattintson az SQL fül, kapok ez a nagy mezőbe. És ez nem így fogunk csinálni, ha valóban kódot írni. Ahhoz, hogy tiszta, phpMyAdmin csak egy eszköz, amely fog hadd piszkálni körül az adatbázisban és hadd kísérletezni lekérdezések. Így például, tegyük fel, Én pontosan ezt végre. Válassza ki, melyik az egyik olyan kulcsszavak korábban említettem, csillag, amely minden az oszlopok a táblázatban. Abból, amit tábla? Nos, a felhasználók. És itt van ez a nyilatkozat furcsa egyezmény az SQL ahol ténylegesen használni vissza kullancsok jellemzően Nem szimpla idézőjelet és nem dupla idézőjelek ha beszélni táblák nevét, így a hátsó idézet a dolog a bal felső a billentyűzet a legtöbb valószínű. Hadd menjek előre most és hagyd, hogy egyedül és lapozzunk lefelé, és kattintson az Indítás gombra, és vagyunk tényleg fog látni ugyanazt a dolgot. Épp most végre egy SQL lekérdezés mondván, válassza minden csillag táblázatból nevű felhasználó, és mit kap vissza ez. Végül, leszünk képesek Ehhez ugyanezt kódot, de most csak azt akartam, hogy nem volt látom a böngészőben. Hát csináljunk valamit egy kicsit más. Hadd menjek vissza az SQL fülre, és mondjuk, hogy mi? Zamyla elvesztette az összes lány pénz, és ezért ez ideje, hogy töröljük őt, mint egy felhasználó. Ő már bejelentkezni. Így fogok mondani törölni from-- nos, fenntartása kapitalizáció A következetesség, törlése ahol a felhasználóktól. És így, mi lehet ezek predikátumok, vagy ezek selejtezők, a végén én nyilatkozat hol és hogyan tudnám törölni Zamyla? A nevét Zamyla, így a oszlop, az egyik az oszlopok nevezték, tehát ahol name = "Zamyla". És itt kétszeres idézetek vagy aposztrófot, Ön csak a hátsó kullancsok amikor beszél a nevét, például, A táblák vagy mezők. És hadd kattintson az Ugrás ide. És most, a weboldal hogy egy kicsit feszült. Vagy nem akarja végrehajtani törölni A felhasználóktól ahol név egyenlő Zamyla? Igen. Tehát most, ha megyünk vissza az asztalra kattintva a felhasználók észre, hogy Hm. Ezt elrontottam. És valóban, valahogy csattant el olyan gyorsan még csak nem is látja a piros hibaüzenet, talán. Mit csináltam rosszul? KÖZÖNSÉG: Nem kell kihasználni a nevét. DAVID J. MALAN: Igen én nagybetűvel a nevét, de a username-- valójában én tett egy pár hibát, igaz? Egy, az ő felhasználóneve zamyla, kisbetűs Z, és az oszlop neve username, nem nevet, úgyhogy ezt újra. Hadd menjek előre, és törölni, ha a felhasználók felhasználónév egyenlő idézet idézet vége "Zamyla". Minden rendben? Tehát ez úgy néz ki, egy kicsit jobban, legyen menjek lapozzunk lefelé, és kattintson a Go. Még mindig megy kiabálni velem, hogy biztos. Rákattintok Igen, és most látjuk, őszintén szólva ez történt, nagyon gyors, kevesebb mint egy második biztosan, ez pontosan a lekérdezést, hogy van végre. Annak igazolására, hadd kattintson felhasználók sőt most Zamyla elment. Most az ellenkezőjét. Tegyük fel, hogy Gabe akar regisztrálni a honlapon. Mi az SQL lekérdezést, mi a parancs tudtam írja hozzá Gabe? Nos, ez elég egyszerű. Helyezze a felhasználók számára, és most ez egy kicsit rejtélyes. Meg kell határozni, hogy a szerver, mely területeken akarok rendelni. Nem igazán érdekel, hogy mit Gabe azonosító szám, úgyhogy megyek kihagyom. Én inkább akartam mondani username, hash, majd Az értékek azt szeretnénk, hogy ott lesz Gabe. És aztán a hash, nem tudom. Tehát most, megyek hagyjuk, hogy, mint egy nagy, hogy nem. Majd gyere vissza hogy a probléma beállítása spec, hogy hogyan, hogy tényleg csinálni. Szóval észre, megint, a szintaxis. Helyezze a tábla nevét, majd a zárójeles listát a mezők, Az oszlopokat szeretne hozzáadni értékek, és majd csak pontosan ugyanolyan maradt rendelés jobbra kívánt értékeket felvenni, és ez csak azért, mert csomagolás A szöveg egy kicsit hosszú. Tehát most hadd kattintson az Ugrás gombra. Egy sor ki. És most, ha megyek vissza a felhasználók, milyen érdekes az, hogy nem csak az Gabe most a adatbázis, amit nyilvánvalóan az igazolványát? Hát ez a hét. Miért van az, hét, amikor én nem hozzá? Így ez is az egyik funkciókat kap az adatbázis. Sok beépített funkciót. Kiderül, hogy ha létrehozta ezt a táblázatot, Azt beállította az automatikus rendelni egy azonosítót olyan módon hogy az növeli. Tehát, ha valaha is kidugta körül, és megnézték, hogy mi Facebook azonosítóddal szám, manapság ez nem igazán egy dolog, de a Facebook, mint egy API, Application Programming Interface, amely akkor kap vissza egy csomó adat magát, a barátai, és a kapcsolatok. És mi szokott lenni kedves A hűvös, vissza a nap, volt, hogy néz ki, milyen a Facebook azonosító szám volt. Mark Zuckerberg, például, három mivel ő volt a szerzője az oldalon. És ahogy a történet halad, ő teremtett két vizsgálati beszámoló, a felhasználók egy-két, amelyet aztán el kell hagyni. És így, Zuck, mivel az ő felhasználónév a Facebook-on, az azonosító szám három, és mindannyian számok sok nagyobb, mint három ezekben a napokban. Sőt, egy bizonyos ponton Facebook elköltözött a páros segítségével int, amely egy 32 bites érték, hogy a A következő lépés, lényegében egy hosszú, hosszú, így hogy meg tudják befogadni még több felhasználó regisztráció. Szóval egy jó kis történelmi tény. Szóval ez csak a alapvető szintaxis, amellyel talán végre egy pár lekérdezések, de mi valójában csinálni egy csomó dolgot jobban SQL. És látni fogod, végül, A probléma meghatározott hét hogy van, hogy a számú tervezési döntéseket, köztük lesz milyen adattípusok használható. Szóval, mint a C-ben van adat típusok egy adatbázis, mint a MySQL, és az adattípusok meg kell választani származó bevonni e területeket itt. Char, varchar, Int, nagy int, tizedes és dátum-idő, és még sokan mások. Úgyhogy tulajdonképpen ezt. Tegyük fel, hogy mi nem kéz felhasználó asztalára és hadd menjen előre, és hozzon létre, a magam, az előadások database-- tényleg hadd menjen előre, és törölje Az asztal van itt már azért, hogy mi is valójában létre ezt. Hoppá. Fogom dobni ezt asztal, és most én vagyok majd megint a előadás adatbázis ide, Megyek, hogy hozzon létre egy táblázatot nevű felhasználó és menjünk csak nem három oszlop kezdetben, majd kattintson a Go. Most, a legtöbb esetben, ismét, ez csak Ezzel a grafikus eszköz az úgynevezett phpMyAdmin, és mit csinálunk most teremt a tábla. Tehát ez olyan, mintha a Fájl, Új, és hozzon létre új Excel fájlt. Szóval ez kérdezi néhány kérdéseket, balról jobbra, mi a neve az első oszlop, majd a nevét, a második oszlop, és a neve a harmadik. Szóval újra ezt. Azonosítót, majd felhasználónevet volt, majd hash egy másik. Tehát mi kell az adattípus lehet most egy területen, mint a azonosítót? Itt a teljes lista adattípusok áll az Ön rendelkezésére egy adatbázisban, és most menjünk és int. 32 bites érték, én nem hiszem reálisan vagyok megy, hogy több mint 4 milliárd felhasználói fiókomban, az én szolgáltatás, így fogok mozogni tovább a következő kérdésre. Nem fogom megadni hossza vagy értékek, ez nem alkalmazható itt egy int, önmagában. És most már tudom megadni, úgy tűnik, az alapértelmezett érték, amelyet én nem fogom megadni. A leválogatás, én nem tudom, mi az. Egy attribútum. Most valójában Van egy tervezési döntés. Szóval van néhány olyan terület van, nem minden amelyek közül alkalmazható, de unsigned csak azt jelenti, hogy mi? Hogy az int kell lennie? Csak nem-negatív. Így kell lennie 0-ig. Nem, én nem fogom ellenőrizni, mert Azt akarom, hogy minden felhasználónak van egy azonosítója, nem lehet null. Aztán eljutunk néhány érdekes tervezési döntéseket, mint ez. Vissza fogunk térni erre a pillanatra, de mi egy másik jellemzője az adatbázis az, hogy meg tudja mondani Az adatbázis szerver megy előre és optimalizálja magát, a RAM és a merevlemez-terület, annak érdekében, hogy kiválasztja, és betétek, valamint törli, és a frissítések nagyon gyors. Ezzel ellentétben pset5. Ha akarta, hogy néz ki valami a hash tábla, amely úgy gondolja, mint egy adatbázis, aki, hogy minden a dolgoznak így a hash tábla gyorsan. Olyan, mint nyilvánvalóan, te. Jobb? Meg kellett, hogy minden alkalommal szép tuning dolgok, kapok egy hash függvény jobb, kitalálni, hogy sok kanalak van. De mi kedves, megint, egy adatbázis csak punt összes ezt a többi ember akik ezt gondolták keresztül az Ön számára, és milyen Fogok mondani itt a index, hogy az én ID mező lesz az elsődleges módja azonosító felhasználó az adatbázisban. Nem fogok gondolni A Zamyla mint Zamyla, Fogok gondolni őt, mint a 6-os szám. Miért van az, talán jobb ösztönösen gondolni és modell minden egyéni sorok segítségével Számos helyett valami mint a húr, mint a Zamyla vagy Gabe vagy hosszabb szöveg még? Igen? KÖZÖNSÉG: Az azonosító egyedi? DAVID J. MALAN: Mondd még egyszer? KÖZÖNSÉG: Az azonosító egyedi? DAVID J. MALAN: Egy azonosító egyedi, de suppose-- az esettől általában A felhasználónevek, tegyük fel, Azt is mondta, csak az egyik Zamyla a világban, és csak egy Gabe. Tudtam szabhat az egyediség kényszer a húrok is, ha akarnám. Tehát nem egy rossz gondolat. KÖZÖNSÉG: Biztonságosabb. DAVID J. MALAN: Biztonságosabb, miért? KÖZÖNSÉG: Nem lehet megmondani, melyik van, amely, mint a felhasználó. DAVID J. MALAN: OK, akkor nem tudja megmondani, hogy melyik felhasználó melyik tehát van egy adatvédelmi szempontból rá, különösen, ha az azonosítók talán megjelenő URL-eket. Tehát biztos, hogy tudott a fajta munka is. Más gondolatok? Igen? KÖZÖNSÉG: Könnyebb műveletek végrehajtásához egy int. DAVID J. MALAN: Ez az igazi kicker. Ez csak hatékonyabb, vagy könnyebb a számítógép, a műveletek végrehajtásához egy egész szám. Jobb? Egy int garantáltan legyen 32 bites, míg a Zamyla pár karakter hosszú, Gabriel van még néhány karakter hosszú, Davenport nagyon hosszú, és így nem különösebben hatékony használata húrok értékeket összehasonlítani, és nézd A mezők és frissítés mezők, ha lehet megúszni csak egy egész. Csak 32 bit. Szóval felhasználónevek is, így, Nem kell egyedi, bár valószínűleg meg lehet, és még így is Felhasználói lehetne tenni, hogy változtatni saját felhasználónevét. Szóval most hagyjuk ezt a elsődleges eszköze a felhasználó azonosítására. Ezt mondja az adatbázisban megy előre, és optimalizálja magát így néz up ID szuper gyors. AI, rettenetesen nevezni, csak azt Auto növekmény, és ez az ellenőrzés doboz kell ellenőrizni pontosítani, hogy az ID mező automatikusan frissül nekem, aztán megyek lapozzunk jobbra itt és őszintén szólva nem vagyok igazán érdekel bármelyik több ilyen területeken. Természetesen nem ma. Szóval megyek vissza, az első oszlopba, ahol Meg kell határozni felhasználónév és hash, és hagyja, hogy a legalábbis elsősorban a másik a most. Int valószínűleg nem a megfelelő hívás, így mi több értelme van talán? KÖZÖNSÉG: Szöveg. DAVID J. MALAN: Mondd még egyszer? KÖZÖNSÉG: Szöveg. DAVID J. MALAN: szöveg? OK, hallottam a szöveget. Mi más? Azt a fajta van egy csomó választási amelyek szöveges jellegű. Szóval mikor és miért, nem használja néhány ilyen? Nos char, ellentétben azzal, amit lehet, hogy gondolom, nem egy karaktert. Ez egy adott számú karaktert. Tehát, ha tudjuk, hogy az összes felhasználónevet kell, hogy legyen, mint a nyolc karakter, mint régen gyakori az idősebb számítógépes rendszerek, mondhatnám char és akkor azt lehetne mondani, 8 itt. Ez az, amikor a harmadik oszlop lesz alkalmazható létrehozásakor tábla. De ez a fajta idegesítő mert néhány ember talán szeretnénk, hogy egy hosszabb felhasználónév mint nyolc karakter, egyesek érdemes rövidebb felhasználóneveddel, miért elkötelezem magam egy adott szám? Miért nincs egy változó karaktereinek számát, és csak azt mondják, hogy a maximális hossza a név az, hogy nem tudom, mint 64 karakter. Nem tudok mondani olyan barátok, akik van neve hosszabb mint 64 karakter, és még ha ez túl rövid, amit lehetett biztosan bump fel önkényesen. Tehát varchar egy változó karaktereinek számát. A szöveg nem rossz ösztön, és őszintén, hogy a fajta teszi, amit mond, de a szöveges mező is mint 65000 bytes legalább. Ez talán túlzás egy mező, és valóban, Ja, 65.535. Ez talán túlzás egy név, így maradok, jellemzően, A varchars szöveges mező és hash is. Hash, kiderül, amit tehetünk a varchar is, vagy valami ilyesmi, de nem fogunk összpontosítani a mai napon kriptográfia ott és a számok hogy talán tényleg szeretné használni annak hosszát. De hadd görgessen le a jobb oldalon. Egyszerre csak egy elsődleges index egy tábla, de azt akarom, hogy alkalmazzák ezek közül bármelyik, most, a felhasználónevet, mit mondana? Mit kell username kell alapulnia homályos megértése e négy lehetőség? Csak a nevük? KÖZÖNSÉG: Egyedi. DAVID J. MALAN: Szóval egyedi, ugye? Így kiderül, hogy nemcsak mondani egy adatbázis, előre, ez az elsődleges módja Az azonosító mezők. Azt is mondják, hogy ez lesz egy egyedi területen. Ez nem lesz a dolog, amit támaszkodnak, de szeretném, hogy az adatbázis lényegében van, hogy ha a feltétel, így hogy ha valaha is próbált regisztrálni két felhasználó az azonos nevű, Az adatbázis lakás ki Nem hagyom, hogy velem. Talán van némi kiegészítő kód PHP, amely megakadályozza a sok, de az adatbázis is biztosítani tudja hogy ez soha nem fog megtörténni. Most, mint egy félre, különösen gondol végső projektek szem előtt tartani, hogy index és a teljes szöveg valójában nagyon hasznos. Ha van egy nagyobb adatbázis, nem több tucat, de több száz, vagy több ezer vagy akár több millió területen, akkor is mondani az adatbázis előre ez egy olyan terület, megyek hogy keres egy csomó. Talán a felhasználónév, lehet, hogy bio, ha hogy egy Facebook-szerű honlap, olyan pontokban, hogy a felhasználó engedélyezett menteni, és ha azt akarjuk, hogy mondja az adatbázist előre Megyek is keres ezen a területen sokat, de ez nem feltétlenül egyedi, megadhat létre nekem egy index. Vagy mondhatjuk azt is lehetővé teszi, hogy tegyek fajta önkényes keresések mint Command illetve a Control F, mint te talán egy Word Processor, így lehet nézni tetszőleges húrok vagy részkarakterláncokat ezen a területen. Más szóval, mi vagyunk egyre A pont a félév ahol nem kell aggódnia hogyan hajtsák végre a dolgokat hatékonyan. Csak azt kell tudni, hogy mi tervezési döntéseket, hogy azért, hogy te vagy használja a megfelelő eszközöket a kereskedelem érdekében, hogy felerősítse funkciók hogy más emberek építettek az Ön számára. Tehát bedugni, csak az elsődleges egy, akkor csak egy, és ez a dolog, amit az elkövető a mezők egyedi azonosítása. Egyedülálló csak hasonló szellemben, de lehet, hogy csak alkalmanként használja, de azt szeretné, hogy az adatbázis előírni azt. Index csak azt jelenti, megelőző jellegű gyorsítsák fel a dolgokat a jövőben így én is keresni dolgok ezen a téren. És akkor teljes szövege általában bekezdések, vagy esszét, vagy nagy szervezetek A szöveg hol azt is szeretné, hogy joker, mint az egyenértékű csillag. Right. Szóval ez a fajta sokat egyszerre. Lássuk, ha nem tudjuk csöpögtet egy pár ilyen funkciók majd építeni valami meglehetősen egyszerű, de hatásos. Így a többi között tervezési döntéseket te végül megy, hogy mostantól együtt a vonalak tárolási motorok. És hadd nevezni ezt előre a végső projektek és várakozás nézzük say-- nem csináljuk. Építsünk ez a kis alkalmazás első. Én megyek az én terminál ablak, és itt nem Csak counter.php, amelyet mi most megy hogy megszabaduljon a nem germán, de van egy csomó A könyvtárak és ez lesz nagyon hasonló szellemben hogy mit fog látni a probléma beállított hét. Tehát három katalógus magában foglalja a nyilvános és sablonokat, amelyek pontosan, ahol abbahagyta Hétfőn egész MVC paradigma. És bedugni, nyilvánosan fog menni minden fájlt, amit a felhasználóknak, hogy valóban v képes, hogy látogassa meg a böngésző URL-en keresztül. Sablon. Mit teszünk sablonok? Miféle dolog? Nem volt sok, de egy-két Fájlok legalább hétfőn. Igen. KÖZÖNSÉG: Fejléc és lábléc? DAVID J. MALAN: Élőfej és élőláb. Tehát valami hasonlót ma is. Van még néhány fájlt, de Footer Értem Header látom, majd egy csomó más fájlokat. Tehát ez az egyenértékű A V MVC nézet, amely, megint lesz egy kicsit világosan meghatározott probléma hét, de ez csak egy mappa vagyok amivel sok az én esztétika. Sok a HTML, sok a formában. Eközben magában, a másik könyvtár, amely ezt a három fájlt és vessünk egy gyors pillantást ezeket. Én megyek előre és nyissa fel config.php. Mint kiderült, sok mint korábban a kifejezést, Ön éles tartalmazza CS50 pont h pset7. A mai példa, mész hogy nem felel meg, hogy a a szükség nyilatkozat hogy hatékonyan tartalmazza ezeket több vonalon. Tehát egyértelmű, ez nevű fájlt config.php. És észre, mit csinál. Ez látszólag csinál valamit rejtélyes, bekapcsolás hibaüzenetek így látni őket a böngészőben. Ez tehát, látszólag igénylő két másik fájl így ez olyan, mint #include C, és akkor ez mi volt látni, és mi már hivatkozott, ez bekapcsolja hogy kosár, mint a funkcionalitás. Ez azt jelenti, süti kell küldeni oda-vissza. Akkor miért is érdekes ez? Nos, ha visszamegyünk erre könyvtárat, és nyissa fel, például, constance.php. Figyeljük meg, hogy a PHP nem támogatás állandók, ez nem egészen olyan, mint #define C. Ehelyett a szó szoros értelmében mondjuk meghatározott, és értesítés hogy már tárolt előre négy konstans ebben a fájlban. Egy a mai adatbázis, az a jelszót, mert a nevem, valamint a kiszolgáló nevét. Tehát ezek ténylegesen lesz nagyon hasonló probléma beállított hét. És végül, és ez az, ahol én vagyok fog kapni néhány szép funkciók a személyzet, a functions.php van egy csomó kód, amit írt, és én elloptam néhány ilyen a problémás meghatározott hét ma, hogy csinál egy csomó dolgot és nézzük csak nézd meg az egyiket különösen. Ez a funkció itt, lekérdezés, lesz A PHP függvény hívunk annak érdekében, hogy hajtsa végre az SQL. Egy pillanattal ezelőtt voltunk a phpMyAdmin, de ez csak A fajta tanulási célú és diagnosztikai célokra és felejtés az adatbázis készlet. Ha tényleg használja adatbázisban, akkor, az ember, nyilvánvalóan nem megy hogy húzza fel a web oldal minden alkalommal, amikor valaki regisztrál. Fogsz írni a kódot, hogy az beszúrások és törlések felhasználók igény, és fogjuk ezt útján a lekérdezés funkció. Ha én most lépjünk le, ott van lesz még néhány funkciók. Redirect fog egy függvény írtunk az Ön számára, amely lehetővé teszi, hogy elküldi a felhasználót egy másik címre, és teszi egy olyan funkció, nagyon tetszett láttuk hétfőn, hogy valójában teszi a sablon, de ezeken a forma pset7 saját séta. Most menjünk előre, és csinálni. Hadd menjek be az előadások és asztal látni, hogy ott jelenleg semmi itt csak még, és hadd menjen az én nyilvános könyvtár, ahol ott csak egy fájl, index.php. Ez a fájl úgy tűnik, hogy szuper egyszerű abban a pillanatban, úgy néz ki, mint ez. Nagyon hasonlít hogyan abbahagyta hétfőn. Én igénylő ezt a fájlt, config.php, amely egy magában könyvtár, amely van dot dot, a szüleim, és akkor ez csak teszi a fájl. Szóval mi ez a fájl? Nyissuk fel az én sablonok form.php, és majd meglátjuk ezt. Szuper egyszerű, nyilvánvalóan ez a forma fog benyújtani egy $ _GET vagy $ _POST. Gyors ellenőrzés józanság. Szó vizuálisan keresni a fájlt. Módszer egyenlő post. Szóval ez nem fogja használni az URL, mint A Google nem, ez lesz rendezni a hide az adatok mögött a jelenetek, és ez majd, hogy nyújtson be a nevű fájlt register.php, és ez a fájl még nem írt de mi ez megy úgy néz ki mint ez. Ha elmegyek egy külön oldalon ez amit localhost / index.php néz ki. És ismét, a szerver Csak feltételezve index.php. Az Enter billentyűt. Szóval, ez az, ahol vagyunk A, és mit szeretnék csinálni van tudni, hogy írja a dolgokat mint David, és majd a telefonszámát, amely azt fogja mondani 617-555-1212 most, regisztráljon és most register.php nem található. Szóval kell végrehajtani ezt. Úgyhogy gyorsan felkap valami ilyesmi fel. Hadd menjek be a nyilvános könyvtár és nem a gedit register.php, és most én megyek előre, és indul PHP mód, mint mi hétfőn, és közeli PHP tag, és lássuk egy-két dolgot. Tehát az egyik, tudom, honnan megírta, hogy a forma, hogy meg akarom nézni a következő. Ha üres, függetlenül a felhasználó gépelt be a név mezőbe, majd Fogok mondani valamit mint bocsánatot kérni hiányzó név. Kérj bocsánatot, eközben nem beépített PHP dolog, ez egy függvény írtunk A functions.php a pset7 úgy, hogy hozzáférést. Különben, ha a többi területen üres, szám, akkor én vagyok fog bocsánatot kérni a felhasználó, és azt mondják a hiányzó szám. Mentse el ezt a fájlt. Most menjünk vissza a böngésző, vissza a fórum próbálja újra. Regisztráció. OK. Semmi sem történt, ami jó. Nem kap hibaüzenetet. De ha ehelyett, hadd töltse be újra ezt oldal, és nem ad semmit. A fene egye meg. Tedd azt. Regisztráció. Mit csináltam rosszul? Ha üres, akkor a $ _POST nevét. Mondja megint? Ó, persze. Elfelejtettem a legfontosabb része, amely van szükség ("../ includes / config.php."). Azt kell, hogy van, hogy a bocsánatot kér funkció, amely Ezért semmi sem történik. A funkció valójában nem létezik. Így próbáljuk meg újra. Nézzük újra az oldalt, kattintson a Register. OK. Itt is van. Szóval, a kimenet vagyunk látva itt az eredménye A hívás egy bocsánatot kérni funkció, szuper egyszerű, és ez csak kiírja bármi Adok meg azt. Rendben, szóval együtt. Nézzük nyújtanak a nevem mint David, regisztrálja, hiányzó szám OK nézzük rendelkezhet úgy, is. 617-555-1212. Regisztráció. OK. Tehát minden rendben van most, csak semmi érdekes történik. Tehát most tegyük valami érdekes történik, mint ez. Hadd menjek be phpMyAdmin, és hagyja, hogy a valójában egy asztal nevű felhasználó, Megyek, hogy ez a három oszlopok, és én gyorsan létre azonosítót, majd nevet, majd a szám, és az ID mező vagyok elhagyják, mint egy int. A név mező fogok a szabadságot, varchar, és mi mondjuk 64, némileg önkényesen. A szám megyek hogy, tudod, mit? Bemegyünk támogatja az amerikai számok itt, így fogom csinálni valamit mint char majd 10 karakter max egy körzetszám majd a hét számjegyből áll. És akkor itt, megyek adja auto növekedés ezen a területen, hogy ez egy elsődleges kulcsot, és Én megyek előre, és nem ellenőrizze az esetleges egyéb dobozokat. Tehát, ha most végre kattintson a Mentés gombra, és megyek vissza a felhasználók tábla, ez az, amit úgy néz ki, mint ha én most kattintson a New Tab szerkezet. Tehát ez, hogy világos, csak phpMyAdmin útja mondván, az adatbázis tábla van egy azonosítója, a nevét, és a szám e különös konfigurációk és mi figyelmen kívül hagyja a többi mezőt ott most. Szóval most mit akarok csinálni? Tehát, ha most megyek az én forráskód, ha minden rendben van Azt akarom, hogy végre a következő lekérdezést. Helyezze be, és én is csak mondjuk én a felhasználók nem feltétlenül szükség hátulról kullancs, ha ez Nem veszélyes szót, mint a felhasználók. Fogok mondani nevét, számot, és aztán itt vagyok nem fog kemény kódot a számjegye az értékek még. Megyek, hogy két kérdőjel. És ez egy egyezmény több nyelven ahol, ha azt szeretné, hogy jelöli a karakterlánc fogsz használni a kérdés jelek okokból fogunk gyere vissza beszélgetni biztonság, és itt Megyek át az e két mező utáni nevét, majd tegye szám, és most menteni a fájlt. És most megyek menj le itt egy szuper egyszerűen azt mondják rendersuccess.php, amely lesz egy sablon. Megyek létrehozásához nagyon gyorsan. Geditsuccess.php és én csak megy mondani H1 siker a fájlban. Rendben van. Szóval most, menjünk vissza a böngésző, ahol korábban jártam. Menjünk előre, és erősítse meg írtam David, írtam egy telefonszámot, regisztrálj. A fene egye meg. Mit csináltam rosszul? Szóval látok hibát, itt van egy hiba az SQL szintaxis. Hadd ugrik vissza a gedit, legyen menjek vissza register.php, és mit tettem, hogy kihagyja Fontos volt utoljára? Szükségem van erre. Azt akarom tudni, hogy más, mint a következőtől miután észre, de szükségem van ez. Tehát most menjünk vissza, és ez sokat segített, hogy a böngészőben és ezért a config.php mi kiköp hibákat. Menjünk előre, és helyezze vissza, kattintson a Tovább gombra, siker. Tehát most hadd menjen át az én adatbázis itt és kattintson a Felhasználók, és böngészhet, és észre most David van az én adatbázisban itt. Most technikailag ez a weboldal még nem a nyilvános internet, így nem tudok más emberek abban, hogy itt, de ha én most akartam, mert Például, küldjön magamnak egy szöveges üzenetet. Menjünk ki a végtag itt és ha ez tényleg működik. Én megyek előre és törölni a sort és mi ez a blur ki a videó későbbi így nem rendelkezik a egész internet sms nekem, és mi most megy fel a böngésző és mi megy át az előadás és mi a különböző típusú szám itt, regisztrálj, siker. Tehát most, a saját szám van feltételezhetően az adatbázis, és most a móka része. Nézzük ténylegesen használható PHP csinálni valami programból, akár a parancs vonal vagy valahol máshol, és most én vagyok csak fog tartani, hogy egyszerű és én megyek az én könyvtár itt és tegye a következőket. Gedit script mondjuk, fogunk hívják szöveg, #! / user / bin / env PHP, mint azt a múlt alkalommal. PHP. Most megyek igényelnek magában foglalja a config.php, annak ellenére, hogy ez a hatalom indukál egy kis hiba. És most én megyek előre, és azt mondják, sorok, lekérdezés, válassza ki a csillag a felhasználóktól, és most itt fogok csinálni egy technika a múlt idő az egyes sorok a sor. És én fogom csinálni valami egyszerű. Printf mondjuk neve ez, és ez a szám, backslash n. És most megyek át sorban idézet idézet vége nevét, és sor idézet idézet vége szám, és most menjünk előre és a terminál ablak chmod + x ezt tenni ez a script hívott szöveg végrehajtható. És most fussunk szöveget. OK, így folyamatban van. Szóval most írt egy parancssori script, a nyelv nevű PHP, azt, mert az igénylő vonal, hozzáféréssel rendelkezik az összes ezeket a beállítási konstans, én meg. A neve az adatbázisban, és így tovább. Sőt, csak hogy egyértelmű hogy ez nem véletlen, hadd menjen előre, és regisztráljon, nagyon gyorsan, valaki mást, mint Rob és megadja neki a 555-1212 számot. És most, ha futok a forgatókönyvet megint, észre a teljesítmény hogy mit csinálunk az adatbázisban. Most már rögtön láttam, amit a másik két sor van az adatbázis. Tehát most próbáljuk tenni valamit még szakértő belsejében, és ez az a rész, amit ve nem tesztelt előre, így az utolsó alkalommal csináltam ezt dolgok rettenetesen fonák, van video ebben az értelemben. Valójában, igen, vicces félre. Így az utolsó alkalom, hogy a előadás, mint két évvel ezelőtt, úgy döntöttünk, úgy döntöttem, hogy mindez egy nagy ötlet dinamikusan generálni e-mailek osztály, a teljes adatbázis CS50 diákok, akik adott nekünk a számokat és mobiltelefon fuvarozók amit Lehet, visszahívja a pset0, hogyan érvelni, kiderül, Volt egy kisebb hiba a programban, és volt egy pár hibát 2012-ben, azt hiszem. Amely szerint az egyik volt az, hogy a hurok nem pontosan ez a fajta dolog, iterációjával át az adatbázis, kapok egy nevet az adatbázisból, nevét az adatbázisból, és majd minden iterációs hurok küldtem egy e-mailt. De ahelyett, hogy küld egy e-mailt, én küldött egy e-mail az első iteráció, és két e-mailt a második iteráció küldött három e-mailt a második iteráció, amely ahogy azt felidézni a mi vita aszimptotikus jelölés ez a nagy O a rossz, mint a négyzetes n hány üzenetet küldtem, de nem volt még e-maileket volt szöveges üzeneteket. És mint tudjuk, a részvétel nem szuper a vége felé a félév és így azt gondoltam, nem lenne helyes a az idő, hogy azt mondják: "Miért nem osztály?" A szöveges üzenet I küldött az egész osztály, és vicces volt, hogy, mint 50% -a osztály, de a másik 50%, akik közül néhányan kiakadt, én küldött hihetetlenül apologetikus édes jegyzetek a személyzet bocsánatot mivel hiányzott az előadás csak ez egyszer, ugye? Annak érdekében, hogy lenne rettenetesen fonák. Tehát ebben a szellemben, próbáljuk meg de megint csak az én szám. Előre, functions.php, Azért írtam ezt a funkciót itt. Úgy hívják a szöveget, és azt vesz három érvet. Számos, a hordozó, és egy üzenetet. Én egy switch, ami csodálatosan PHP veszi húrok, nem csak egész, és én nem hajtotta végre a támogatás e még, Most történik az AT & T és a Verizon. Mert kiderül, hogy ezekkel a fuvarozók van e-mail SMS gateway, amely akkor valójában küldjön egy e-mailt a címre mint telefonszámra vtext.com és ha a felhasználó nem blokkolt Az üzenetek, akkor az megy át egy szöveges üzenetet. Most, hogy ezt, én megyek is hozzá egy mező nagyon gyorsan az adatbázis. Fogok menni a szerkezet, és én vagyok menni előre, és adjunk hozzá egy mező végén az asztalra. Nézzük kattintson az Indítás gombra, és én vagyok fog hívni a fuvarozó és most megyek hagyjuk ezt, mint egy bár szöveg, de mi lehet a szakértő a jövőben. Megyek gyorsan menni az én asztal, és én vagyok fog megszabadulni a Rob, mert ez egy hamis számot, Én megyek a szerkesztési és itt vagyok fogja megváltoztatni a hordozó kézi hogy a Verizon, amely azt van, és most itt van. Csináljunk egy gyors ellenőrzést józan eszét. Nyissuk fel a szöveg script, ami úgy néz ki, mint ez, hordozó% s. Csinálunk még sok más hiba ellenőrzése, mint én 2012-ben, hordozó. És most, én megyek előre, és újra futtatni a szkriptet. OK. Carrier Verizon, ami azt jelenti, most remélhetőleg meg tudom csinálni, csak ezt. Helyesen ebben az évben, remélhetőleg, itt vagyunk. Tehát belsejében ez a for ciklus, én vagyok majd, hogy nem csak ez a printf, Én is fog hívni a szöveg és a használata ennek a funkciónak visszahívás volt egy számot, a hordozó, és egy üzenetet. Tehát lássuk, szám fog legyen sor idézet idézet vége "szám", sor idézet idézet vége "szállító", és az utolsó volt az üzenet. Ne csavarja fel ebben az évben, pontosvessző. OK. Ujjak keresztbe. Lássuk, hogy ez működik. Rendben, szóval. Itt vagyunk. Nézzük kinyit a telefont, szurkoljon, a fenébe is. Meghatározatlan változó may-- ó várj, várj, várj, nagyon gyorsan. Valódi gyors, nagyon gyorsan. Ez teljesen megéri. Hadd megragad, hadd fogd, uh-oh. Köszönöm, a szövegnek van indult valaki mást. Hadd menjek előre, és nyissa meg a valódi gyors, dropbox.php / mail itt. Készenlét. Teljesen megéri. Letöltések. OK, forrás src8m. OK. Szüksége van még egy sor itt. Ó, ott van, hogy a Frosh PM, ez a nyilvántartás három. Oh hello, Margo, köszönöm szépen. OK, és én is ezt a vonalat itt hiányzott. Hadd gyorsan megragad ezt a kódsort, amely magában foglalja az e-mail vagy a könyvtár hogy én tényleg szeretnék használni, Megyek gyorsan menj vissza a funkciókat, Fogok menni a tetejére fájlt, és ilyen fájlt is, és most fogom igazán át a ujjak mikor megyek vissza a parancs vonal script, ami belül van a A mai helyi host könyvtárba. Fuss szöveget. Az Enter billentyűt. Mail. Készenlét. Készenlét. Mail. Oh, OK. Itt vagyunk. Mail kap új PHP Mailer. Csináltam ezt a jogot? A fene egye meg. To-- ó, várj, várj, várj. Készenlét. Ígérem, ez lesz, így megéri. Cím. Ezért nem teszi a példák jobb osztály előtt. Huh. A következő címzettek sikertelen. Próbáljunk egy utolsó dolog. SMTP beállítani, add cím, A cím valóban azt. Próbáljuk ki ezt az utolsó részt a címét. Ó, én nagyon szomorú most. Köszönöm. De én nagyon értékelem minden A szövegeket, amit küldtem. Megvan a David. Te fújja. Hagyjuk ott és akkor javítsd hétfőn. Viszlát akkor. Daven FARNHAM És most mély Gondolatok a Daven Farnham. Ha egy bináris fa kidől az erdőben, és senki körül a C it-- [kuncog].