[Powered by Google Translate] [Week 8, Folytatás]
[David J. Malan] [Harvard Egyetem]
[Ez a CS50.] [CS50.TV]
>> Ez CS50, így ez a vége a 8. héten itt.
Meg persze volt egy kis hurrikán korábban ezen a héten,
így most ez tényleg csak te és én ebben előadóterem,
de ma folytatjuk a beszélgetést a PHP-ről
és a webes programozás általában, és mi is bevezetni az ötletet
adatbázisok, különösen egy úgynevezett MySQL, ami nagyon népszerű manapság,
nagy részben, mert a skálázhatóság, valamint mert a szabad és nyílt forráskódú.
>> De először egy pillantást, ahol abbahagytuk a múltkor.
Emlékezzünk vissza, hogy kerestük a több Frosh PM példák,
és ez volt az ocsmány formában, hogy én találtam ki néhány 15 + éve
annak érdekében, hogy a diákok az egyetemen nyilvántartást gólya intramurális sport
anélkül, hogy ténylegesen kelljen trek már az egész udvar, hogy Wigglesworth
, hogy csúszik a fizikai darab papírt alá néhány Proctor ajtaján.
Ehelyett költözött mindent online, de erre mi szükség van, hogy használják ki
néhány technológiák, így az egyik, mi szükség HTML, Hypertext Markup Language,
ami megint ez a leíró nyelv, amellyel csinál weboldalakat szerkezetileg.
>> Egy kis CSS ezekben a napokban, stíluslapokat,
ahol használjuk stylizations a weboldal segítségével egy kicsit más szintaxist,
mivel a HTML volt, ami a szerkezet cikke.
Azt is meg kell, hogy vezessenek be egy webes programozási nyelv.
Ebben az esetben fogjuk használni a PHP és a PHP fog lehetővé teszi számunkra,
dinamikusan kimeneti tartalom, valamint a nem programozott dolgokat, mint a
e-mail küldése, mint volt a helyzet a jegyzet elindultunk a múlt héten.
>> Emlékezzünk arra, hogy a kód a volt 2 részből áll.
Az egyik, mi volt froshims3.php,
és ez nagyrészt markup egy HTML form belsejébe,
egy apró kis CSS ide a stílusban attribútumok
annak érdekében, hogy az űrlap maga lenne az oldal közepére, de azon túl, hogy a
volt néhány reprezentatív formában bemenet, egy szöveges mező, egy jelölőnégyzet,
Néhány rádió gombok, egy választó menü, és egy submit gomb.
És ebben a formában, akkor be egy fájlba, amit látszólag nevezett register3.php,
amely maga is nézett egy kicsit valami ilyesmi.
Nos, a legtöbb kód register3.php, visszahívás, szólt e-mailt.
Ez volt egy kicsit érvényesítése a formában, hogy benyújtották, hogy győződjön meg arról,
hogy a mezők ténylegesen, feltéve, hogy várható volt.
Aztán hívott néhány PHP funkciókat kissé új szintaxist,
annak ellenére, hogy kölcsönvett C.
>> Ez a nyíl operátor lehetővé teszi számunkra, hogy használja valami úgynevezett objektum-orientált programozás.
Mi nem megyünk bele, hogy minden részletesen itt, de tudom, most
ez egy módja annak, funkciók kapcsolódó tárgyakkal,
amelyek a speciális szerkezet, mint láttuk C.
De most, csak hogy a hit, hogy ez a helyes szintaxisa
használata a könyvtár, mint ez PHPMailer könyvtár.
És akkor a végén a fájl voltunk dinamikusan generált e-mail
hogy van küldött my jharvard@cs50.net számla
az én jharvard@cs50.net számla,
és mi ennek megfelelően tájékoztatja a felhasználót, hogy a már nyilvántartásba ezt a sportot.
Ez elég sok, amit a Frosh PM helyén volt annyi évvel ezelőtt
amikor végre azt, megadták, más nyelven,
de ez azt mutatja, talán a hatalom, hogy van
most, hogy ki tudja fejezni magát nem csak algoritmikusan
alacsony szinten nyelven, mint a C, de sokkal magasabb szinten
ezekkel a nagyon valós alkalmazások, mint például e-mail, hogy ténylegesen megoldani
néhány valódi világ problémáira.
>> Most, persze, bár én ezt a szkriptet generálni
e dinamikusan jharvard@cs50.net, ami valóban egy felhasználói fiókot
hogy férnek hozzá, ne legyen nagyon óvatos, hogy küldjön
postázni csak a számlákat, hogy valóban a saját,
nehogy dolgok neked egy kis forró víz az életben.
Ezzel azt mondta, menjünk most átmenet megoldása egy másik probléma teljesen,
hogy megtartsák államok.
Nos, mit jelent ez valójában?
HTTP, ez a Hypertext Transfer Protocol,
valójában egy hontalan protokollt, és hogy ez mit jelent az, hogy a
ha húzza fel ilyesmit Google.com, majd nyomd meg az Entert
általában a böngésző valamilyen forgó ikont, majd
eredmények néhány weboldal letöltés alatt,
majd a kis ikon nem fonási, illetve, hogy valóban azt sugallja,
hogy a HTTP befejezte valamilyen kapcsolat a szerver és ennyi.
HTTP hontalan abban az értelemben, hogy nem tart fenn
egy állandó kapcsolatot a szerver ugyanúgy Skype nem
vagy Gchat nem azért, mert a HTTP
A feltételezés az, hogy ha egyszer már letöltött egy weboldalt ennyi.
>> Nos, a valóságban ezek a napok oldalak, mint a Facebook és a Google Maps
és a Twitter és hasonló van egy sokkal több dinamizmust, amellyel
még azután is, hogy az ikon nem forog akkor valójában még több frissítés
a szerver, több tweet, több státusz frissítéseket a Facebook-on és hasonlók.
De még, hogy használja a technikát, hogy fogunk beszélni, egy hét vagy két
nevei Ajax egy nyelvet nevű JavaScript,
de a végén a nap, HTTP még hontalan.
És mégis, ha azt szeretné, hogy valahogy emlékezni dolgokat a felhasználó
még azután is, hogy már le a szerver
PHP nem engedheti meg magának egy eszköz ezt
mert, mint láttuk utoljára, PHP számos szuperglobális,
és egy szuperglobális van, ismét egy különleges globális változót
ez adta neked a webszerver és a PHP is.
>> Nem kell semmit tenni az értékeket is,
és az egyik szuperglobális láttuk eddig is kap, és írjon,
ott, ahol az űrlapmezőket kerülnek automatikusan az Ön számára,
valamint egy pár mások, hogy nem láttuk még.
Belül $ _SERVER néhány speciális változót kapcsolódó szerver is.
Mi az IP-címet, milyen protokoll, HTTP vagy HTTPS nem használja,
mit kérés módszer nem használja, és a hasonló, így van néhány érdekes,
szaftos részleteket a szerver, és valójában a felhasználó ott is.
Van $ _COOKIE, ott, ahol ezek a dolgok úgynevezett cookie-kat tárolja.
Nem fogunk több időt a cookie-k maguk ma,
de tudom, most, hogy a cookie-k csak egy kis darab információ
hogy a web szerver növény a böngésző
és ezáltal a RAM vagy a számítógép merevlemezére
, hogy információt tároljon gyűjt a felhasználó, például, a felhasználói név
úgy, hogy nem kell, hogy írja, hogy minden alkalommal, amikor jelentkezzen be, vagy valamilyen
egyedi száma vagy azonosítója, hogy a felhasználói
így nem kell zaklat őket az azonos típusú kérdések
preferenciák a jövőben, de a legtöbb látványosság
most az $ _SESSION.
>> Ez szuperglobális, amely, mint a többiek, adják Önnek automatikusan PHP
amikor írsz PHP-alapú weboldalak
tárolhatja, amit akarsz, vonósok, egészek,
lebegő pontok, értékek, tömbök, objektumok,
tényleg bármit, amit akar, és ez lehetővé teszi, hogy tárolja olyan módon
hogy még ha a felhasználó látogatja most majd
jön vissza egy perc múlva vagy 5 perc múlva, mert
veszik az időt, mielőtt rákattint néhány egyéb linkre
PHP biztosítani fogja, hogy bármit is tesz az említett ülésen szuperglobális
egy perc vagy 5 perc ott lesz, amikor a felhasználó visszatér.
És a motorháztető alatt a szuperglobális hajtják végre útján
ezek a dolgok úgynevezett cookie-kat, de most, ez csak egy absztrakció
ahol ez a fajta a programszerű egyenértékű a bevásárló kosárba.
Bármit, a programozó, tedd, hogy
szuperglobális asszociatív tömb lesz ott bizonyos számú perccel később
amíg nem törli, vagy addig, amíg a felhasználó be nem zárja a böngészőjét összesen.
>> Vessünk egy pillantást egy példát, hogy ez a dolog valóban használják.
A counter.php napjaink darab kód
mi a következő sort.
Elején a fájl van egy csomó kék észrevételek, amelyek érdektelen most.
De a 13-as vonal van egy új vonal,
session_start, és hogy valóban pontosan mit mond.
Úgy kezdődik ülés.
Ez lehetővé teszi, hogy a nagy szuperglobális $ _SESSION, és ez ennyire egyszerű.
Na most, ha haladunk, hogy nézd meg a 16 vezetéken, próbáljuk meg kitalálni, mi ez a weblap fog tenni.
If (isset ($ _SESSION ["counter"]), akkor megy előre
és tárolja a számláló változó, kisbetűk számláló,
$ _SESSION ["Számláló"].
Ez úgy tűnik, hogy nyilvánító helyi változó nevű számláló
belsejében, amely ez üzembe másolatát bármilyen belsejében a szuperglobális
nevezett ülés helyét "számlálót".
Else, úgy tűnik, ez a kis helyi változó számláló inicializálása 0-ra.
>> De aztán néhány sort később 26 észre, hogy az ülés példánya számláló,
a legfontosabb, egy új érték célhoz kötött, amely az aktuális érték plusz 1.
Röviden, ezt a fájlt úgy tűnik frissítjük
egy számlálót, ami tárolt ülésszak szuperglobális
növelésével azt 1, de először egy példányát megtartja a korábbi érték
tárolja azt egy helyi változó neve $ számláló,
majd itt lent lássuk, mi marad.
Kiderült, hogy elég sok csak HTML.
A lap alján látunk a 37. sor, hogy én felkereste ezt a webhelyet
számláló hogy hányszor, így van egy pár érdekes funkciók itt.
Egy, ez egyértelműen egy változó, de ez nem elegendő az imént
$ Számláló a szervezetben a HTML-mert persze
ha ez csak ott among HTML PHP fogja feltételezni, hogy ez csak HTML.
Ha szó szerint szeretnénk $ számlálót kell nyomtatni a képernyőn.
>> De ahelyett, hogy a csepegés a PHP módba
e darab szintaxis tudunk dinamikusan be egy értéket ide
nagyon hasonló szellemben, hogy mit csináltunk utoljára a
behelyezése értékeket szálakat.
Tény, hogy ez csak egy összevont írásmód mond valami ilyesmit szó,
print ($ counter), vagy akár valami hasonló printf (% s, számláló),
sőt, mint azt láttuk online, vagy a tankönyvekben,
van egy függvény a PHP-ben az úgynevezett echo
amely nem ugyanaz a dolog, és minden ezek csak hosszabb lélegzetű módon
a mondás <? =.
Ebben az egy esetben nem kell tenni
a szó PHP a kérdőjel után.
Ez az összevont írásmód újra, amit csak látott egy perccel ezelőtt
amely visszhangot némi értéket.
>> Lássuk, mi a végeredmény ennek valójában.
Hadd menjek át a mi counter.php fájl,
és majd meglátjuk, hogy David csak hibát követett el azzal játszik a kód is.
Menjünk fix bármit is elcseszte,
és a hiba úgy tűnik, hogy ott, elment, a 37. sor.
Az oldal elejére már felkereste ezt a webhelyet 0 alkalommal.
Nos, menjünk előre, és most a tetején a böngésző, kattintson a
reload ikonra, és én kattintson újratölteni,
és most jártam a helyszínen 1 alkalommal, 2, 3, 4, 5, 6, 7, 8.
És valóban, ha megnézzük a forrása ennek az oldalnak az aktuális forráskód változik,
, és vegyük észre a teljes hiányában PHP, és ez azért van, mert
PHP kód értékelik vagy értelmezik szerver oldalon,
és így azt jelenti, hogy a kimenet a PHP szkript, mi végül küldeni a böngésző,
amely ebben az esetben némi nyers HTML és néhány nyers szöveget.
Mi folyik itt?
>> Nos, viszonylag kevés sornyi kódot vagyok képes tárolni
tartósan folyamán néhány másodpercig, vagy ha vártunk elég hosszú,
perc, még óra, bizonyos értéket oly módon, ami a HTTP
Úgy tűnik, mintha állapottartó általunk tartott
Ebben az összefüggésben a szerverre, és ez csak emlékezni, mit mondtam a múlt idő,
de a valóságban van egy csomó bonyolult folyik a motorháztető alatt
érintő cookie ez lehetővé teszi a PHP, hogy adjon nekem ez az illúzió
E Bevásárlókocsi-szerű funkciót.
Most, egy triviális példát, ahol mi csak tárolja egész szám,
de ez a funkció vissza fog térni, hogy nagy értékű
amikor elkezdünk beszélni összetettebb projektek,
köztük probléma készlet 7.
Ez az utolsó problémája meghatározott CS50.
Tudom, ez nagyon szomorú, de amit talál, hogy fogunk kötni
ez a része a félév által ténylegesen átállás
a jobb egérgomb a C meghatározásában a keretében PHP
de a használata közben néhány ugyanazon alapvető
beszéltünk egy ideig.
>> A célkitűzés Pset a 7 végrehajtása CS50 Finance,
amely a saját verzióját Yahoo Finance vagy Google Finance
vagy akár Etrade.com ahol megvan a képessége, hogy
felnéz tőzsdei árfolyamok az adott szimbólumokat, de még inkább, mint a
megvan a képessége, hogy "vásárolni" és "eladni" készletek
amelyek kereskednek a különböző tőzsdéken, mert ez kezdőlapom
Itt arra utal, ami valóban az, hogy milyen mértékben általunk megkezdett
A probléma meg az Ön számára, van egy bejelentkezési űrlapot, ami kér egy felhasználónevet és egy jelszót.
Ez egy submit gombot, de ezt követően, mivel mi végül látni,
semmi sem folyik valójában a motorháztető alatt még nem, mert
marad, hogy hajtsák végre a képességét, hogy regisztráljon az új felhasználók számára,
a képesség, hogy részvényeket vásároljanak, eladni készletek,
hogy valóban felnéznek aktuális tőzsdei árakat.
>> És valóban, ez lesz, mint a valódi világban, amennyire csak lehetséges, mert tettük
közé tartozik a kis kód, amely lehetővé teszi, hogy egyetlen funkcióval
lekérdezés Yahoo Finance, ami csodálatosan elérhetővé teszi ingyenes adatok
keresi fel a részvényárfolyamok alapján tőzsdei szimbólum vagy ticker szimbólum,
és akkor kap vissza az aktuális tőzsdei árat a nap.
Az adatok, amit valójában lát ebben a konkrét Pset lesz
körülbelül olyan valós, mint ez is kap úgy, hogy te tényleg interfész
A valós készletek valós árak,
és látni fogjuk, hogy mennyi pénzt lehet, hogy talán
Az elkövetkező néhány nap játszani a saját problémája set.
>> De nézzük először a színpadon, hogy hogyan tervezzen valamit, ami biztosan sokkal bonyolultabb
mint counter.php, ez bonyolultabb, mint bármely Frosh PM példák eddig,
és próbáljuk meg bemutatni néhány paradigmákat itt, hogy lehetővé teszik számunkra,
mind Pset 7 és talán a végleges projekt, ha teszel valamit web alapú
, hogy a kódot jól szervezett, hogy tartsa magát a józan,
és tegyen egy lépést felé együttműködő, akár CS50 végleges projekt
vagy azon túl, ha továbbra is programozni valamit a jövőben.
Van ez általános tervezési paradigma
A számítógép-tudomány és a szoftverfejlesztés általában
nevei MVC, modell nézet vezérlő,
és ez egy buta betűszó, amely leírja egy nagyon kedves ötlet,
amely az elkülönítése különböző aspektusait a program,
kifejezetten elkülönült a logikai vagy az üzleti logika egy honlap
annak érdekében, hogy bármi, ami magában foglalja a dolgok, mint például
hívásfunkciók és adatbázisok lekérdezése és hasonlók
történik, nem tartoznak a HTML
hanem külön fájlokban, és valóban, itt van ez egy fájl
általában, hogy már az úgynevezett vezérlő
ez tényleg az agy mögött a műveletet, és majd meglátjuk egy példát
erről csak egy pillanatra.
>> Van egy modellt, amely programozási kód
amely nem a beszél az adatbázisokat, hogy beszél a Yahoo Finance és hasonlók,
és akkor ott van a V MVC, a nézetek,
az összes cucc, ami kapcsolatos az esztétika, a fájlokat, amelyeket ténylegesen tartalmazó
a HTML, talán a CSS és hasonlók.
Az ötlet itt, mivel ezt a képet mutatja, az, hogy a szabályozó
a fájlt, ahogy hamarosan látni és akkor különösen látni Pset 7,
hogy a világ beszél keresztül böngészők.
Ez a fájl lesz látogatott a nyilvános interneten,
de a vezérlőt beszél potenciálisan egy modell,
amely egy vagy több egyéb fájlokat tartalmazó kódot összefüggő adatok,
kód kapcsolatos adatbázisok és a hasonlók, és azután azt beszél
A vezérlő egy vagy több más fájlokat ismert nézetek,
amelyek az esztétika egy weboldal, sablonok a fajta,
hogy eltart bizonyos adatokat bemenő, de a végén a nap
az egyetlen logika belsejében tekintettel kell lennie a fajtája, hogy az adatok,
iterációjával egy hurkot, és ténylegesen köpködés ki néhány
HTML-alapú kiadatását ezek, vagy akár valami, mint egy PDF.
>> Mi a jó erről MVC, hogy meg lehet különböző nézeteket
típusa alapján a készülék típusa alapján a fájlformátum, hogy ténylegesen
meg akarom mutatni a felhasználónak.
Vessünk egy pillantást néhány egyre összetettebb és jól megtervezett példák
kiindulva először 0-s verzió itt.
Hadd menjek előre, és nyissa meg a mi MVC könyvtárban ma
nevű fájlt index.php könyvtárban 0.
Figyeljük meg ez egy szuper egyszerű és nagyon underwhelming website
ez a fajta 0-s verzió a honlap CS50,
, és vegyük észre, hogy van egy linket Előadások, van egy linket tematikája,
és ha követi a linket Előadások figyelje meg, hogy az URL-címet
up top meg fog változni a lectures.php.
Ha majd kövesse a linket hét 1 figyelje meg, hogy az URL-címet változások week1.php.
Úgy tűnik, hogy egy viszonylag egyszerű hierarchikus szerkezete van.
>> Vessünk egy gyors pillantást a motorháztető alatt, hogy milyen ez a megállapított,
és valóban, ha nézem index.php ez elég egyszerű.
Sőt, bár én nevezte ezt a PHP fájl nincs tényleges programkód.
Van egy megjegyzést, hogy én írtam itt a PHP-ben csak így a felhasználó nem a végén látják.
Természetesen, mint korábban, bármi, ami a kettő között PHP címkék
gets értelmezni, akkor is, ha ez egy megjegyzést, és értelmezni kommentezni
pontosan azt jelenti, hogy dobja el a végén a nap, és valójában nem
küldje el a böngésző, így minden itt csak esztétika.
Ha megnyitni lectures.php hasonlóan ez is csak egy kemény kódolt fájlt.
Ez történik lehet nevezni valamit. Php,
de ez tényleg csak. html, és week1.php, week2.php
hasonlóan csak jelölés, így van egy csomó hiányossága ez a design.
Az egyik, hogy ez egy hatalmas copy / paste.
Annak ellenére, hogy az egyetlen dolog, ami a változó közül ezeket a fájlokat a rendezetlen lista,
A li tag, én ennek ellenére vannak doc típusú, HTML, fej,
cím, szoros test, közeli HTML és több
minden egyes fájl, ami azt jelenti, hogy ha valaha is szeretne szerkezetátalakításra
ezt a web oldalt, vagy restylize azt kell mennem, és módosíthatja
az összes ezeket a fájlokat kézzel vagy valamilyen masszív keresés és csere.
>> Vessünk egy lépés egy intelligensebb, hosszabb gondolkodás design verzió 1 ide
amely, mint egy a read me, hogy már foglalt, így játszhat együtt
Ezen kényelmesebb otthon észre, hogy mi van itt
egy összefoglaló a fájlokat 1-es verzióját ezen az oldalon,
, és úgy tűnik, hogy vettem azt magamra, hogy ki faktor
bizonyos közös kódot, header.php és footer.php.
Nos, vessünk egy pillantást, mi van benne az első ilyen.
Header.php ismerősnek tűnik,
de észre, ha nem is kap vágva?
Rögtön azután a 19, tehát ez minden, ami volt, a közös
A fájlok index.php, lectures.php,
week1 és week2.php alapján az előző példában.
Amit tett, másolási és vágott mindent, ami közös az összes ezeket a fájlokat,
tedd egy külön header fájlt, és hasonlóképpen footer.php
tettem alkalmazza ugyanazt az elvet, amellyel az egyetlen érdekes sorokat
A footer.php ez a két, szoros test és szoros HTML.
>> De mit jelent ez most, hogy az új verzió
Az index.php észre, hogy sokkal egyszerűbb is kaphat.
Nyújtott, egy kicsit rejtélyes látszó, egy kicsit kevésbé intuitív
követni fentről lefelé, hanem az én Istenem, az összes, hogy redundanciát most elment.
Elvárjuk egy PHP függvény szó hívják igényel up top,
ami nagyon emlékeztet, emlékszem, a C a # include mechanizmus.
Elvárjuk header.php a tetején.
Elvárjuk footer.php az alján, és az egyetlen dolog, ami a különböző
vagy külön a fájl a tartalom, ami azt jelentette, hogy egyedi is.
Ha akkor megy bele, mondjuk lectures.php, ugyanez az elv vonatkozik.
Ismét néhány megjegyzést up top, de aztán szükség fejléc, lábléc igényelnek,
és a kettő között, hogy csak a tartalom, ami ténylegesen megváltozott.
És ha belenézett, és hét 1 hét 2 mi lenne látni
hogy ugyanez az elv alkalmazták volna ott.
Nos, mi nem igazán csinálni.
>> Vessünk egy pillantást a 2-es verziója, amely egy hasonló szerkezetű,
de észre most már be valami mást.
A 10-es vonal, amit be helpers.php,
amely nyilvánvalóan tartalmaz segítő funkciókat.
A segítő funkció általában viszonylag rövid függvény
hogy írsz, hogy segítsen ki különböző helyeken,
és lássuk, mi van benne a helpers.php.
Ebben az esetben, úgy néz ki, hogy már 2 funkciókat.
Emlékezzünk vissza, a többi napot a kocka példa
megadhatja saját függvények PHP-ben, és mit tettem most Nekem
függvények úgynevezett teszik footer és megfosztaná élőfej,
az első vevő egy nevezett paraméter adat,
amelynek alapértelmezett érték egy üres tömb, ahogy azt ott,
és mi is valójában írni ezt még tömören a legfrissebb PHP
azzal nyitott szögletes zárójel, zárt szögletes zárójel.
Ez azt jelenti, egy üres tömb mérete 0, de mégis egy tömb.
>> Ez a kivonat a funkció egy kicsit különleges, mert
mit csinál ez veszi az érvelését egy asszociatív tömbben
amely 0 vagy több kulcs érték párokat, és ha van egy kulcsa foo
és értéke bar a kivonat funkció
olyan helyzetet teremt, amely most már, mint a line 11,
van egy helyi változó neve $ foo melynek értéke bar.
És ha több volt a kulcsokat és értékeket az adatok tömb,
hasonlóképpen lennének extraháljuk a helyi körét
vagy név hely, hogy footer.php és
ugyanezt a gondolatot le ide, hogy header.php
férhetnek hozzá azokat a változókat.
Tény, hogy hadd nyit újra header.php
és felhívni a figyelmet, hogy most hogyan néz ki ez a verzió.
>> Ahelyett, hogy keményen kódolás CS50 a cím minden egyes oldal
észre a dinamizmus, ami lehetséges, most.
Az 5. sor Én visszhangzik a title változó,
de először vagyok tompított ezt a címet változó egy függvény neve htmlspecialchars.
A hülye név egy funkció, amíg ez, de ez tényleg azt teszi, amit mond.
Ez biztosítja, hogy a speciális karaktereket
a húr, hogy a már átadott megfelelő megszökött HTML.
Ez valójában egy módja, hogy elkerüljék egy úgynevezett cross site scripting támadás
ahol valaki rosszindulatúan vagy véletlenül
injekciót saját HTML be weboldalára
által beillesztés valamilyen formában, például,
valamit, amit nem is számítasz rá, különösen a JavaScript kód,
mivel fogunk beszélni, egy-két hét múlva.
>> Ez most header.php, ez a nézet
abban az értelemben, hogy lehetővé teszi, hogy esztétikailag tartalmának egyes adathalmaz.
De konkrétan, ez egy sablont.
Ez egyfajta terv most az, amit mi szeretnénk, a fejléc minden oldalon, hogy néz ki,
de van némi dinamizmus, hogy szeretnénk a címet, hogy dinamikusan ki
alapján a cím szerinti változó
hogy extraháljuk, amikor hívtuk újra,
A render header funkciót.
Most, ha nézte render lábléc, ott valójában nem sok haszna van e most
mert footer.php nincs dinamizmus nélkül.
Lehetne, de abban a pillanatban, hogy ez egy nehéz kódolt listát 2-címkék,
de ugyanez a gondolat vonatkozik, annak érdekében, hogy valóban azt sugallja, hogy miért
tettünk vesztegeti az idejét, amelynek render fejléc és a lábléc render függvény?
Hadd menjek, hanem most már a 3-as verziójú,
valamint a 3-as verzió a segítők úgy döntött, hogy egyszerűsíti, hogy még.
>> Hadd egy render funkcióval.
Hadd van ez újabb érv, ezúttal az úgynevezett sablon,
ami azt jelentette, hogy a neve a sablon,
és akkor én összefűzni elbizakodottságában. php e változó értékét,
majd ha létezik foo.php, bar.php vagy header.php és footer.php,
akkor én megyek előre, és csomagolja ki a változó adatok
majd megköveteli, hogy utat.
Más szóval, hogy ezt most, ha én nyit index.php
észre, hogy nem szükséges render fejléc többé.
Én csak hívni tehetik, de én át a jegyzett érték fejléc
világossá tenni, hogy melyik sablon Igazából szeretnék tölteni.
>> Aztán ide észre, hogy mit csinálok.
Én halad a dinamikusan kulcsfontosságú cím,
értéke CS50, és ez is, mint láttuk korábban,
lehetne tömörebb a legfrissebb PHP
ahol tudok cserélni a tömb funkció szögletes zárójelben
általam javasolt még olvasható, és minden bizonnyal
egy kicsit könnyebb gépelni.
És persze, a render footer hívást az alján,
nem zavarja halad a második érv egyáltalán nem asszociatív tömb,
mert semmi dinamikus belső e lábléc.
Ez csak néhány közeli címke HTML.
Jó, mi felé történő lépések valóban takarítás dolgokat itt,
de hadd megnyitására 2 döntő példákat.
Ez az egy, 4-es szám, azt tapasztaljuk, hogy Csináltam egy tudatos döntés most
hogy javít az előző például véglegesen segítségével néhány hierarchia a fájlokat.
>> Figyeljük meg, hogy ebben az összefoglaló, ebben olvasott nekem, már bevezetett
egy részét könyvtár és a sablonok könyvtár
amelynek tartalma lesznek a dolgokat akarok fel
és a sablonokat, hogy szeretnék tenni, ill.
Ez tényleg engem, hogy anális és próbálják tartani a dolgokat rendezett,
tartani kapcsolódó fájlok együtt, de a végeredmény
az, hogy most már van egy kissé tidier a telepítést, de meg kell emlékezni most
be, például, index.php
amikor szükséges a fájl helpers.php
van, hogy most már követeli meg via includes / helpers.php
ahelyett, hogy csak azt mondja helpers.php, mert most ez valójában egy al könyvtárban.
Most, mint egy félre, akkor látni ezeket a példákat és mások
funkciókat, mint például előírják, megkövetelik egyszer.
Van valójában egy függvény maga szólította magában, és mindegyik egy kicsit különböző viselkedést.
Itt mondom előírják egyszer, hogy győződjön meg szuper világos, hogy csak azt akarom, azok
segítők szerepel a projektben egyszer.
De ha én vagyok óvatos, és ha én valóban gondolok az én logikai megfelelően
Elég is csak azt követelik meg top
amíg én magam nem véletlenül követeli meg, hogy ugyanazt a fájlt máshol.
Tény, hogy ez egy kicsit hatékonyabb módja a dolgok, akkor a
igényelnek egyszer, úgyhogy vágja le, hogy csak szükség.
>> Vessünk egy lépéssel tovább.
Ez utóbbi példa most, 5-ös verzió, van egy még tisztább mappa hierarchia.
Figyeljük meg, mit tettem ide a per a read me ebben a végső változat
most ott van a HTML könyvtárba, amely már volt egész idő alatt,
de belül ott most csak index.php, lectures.php,
week1.php és week2.php.
Az tartalmazza a könyvtár most él együtt a HTML könyvtárba,
így ugyanazon a szinten, mint a testvére, hogy úgy mondjam.
Így működik a Sablonok mappába.
A legfontosabb elvihető itt voltam bevezetni egy kicsit szerkezet,
de a legfontosabb jellemzője az, hogy most már csak azokat a fájlokat
hogy kell interneten hozzáférhető, nyilvánosan címezhető
egy URL-t a nyilvános interneten az én HTML könyvtárban.
>> Eközben más fájlokat, helpers.php, footer.php,
header.php, amelyek vitathatatlanul talán érzékenyebbek,
talán segítők valóban van néhány felhasználói neveket és jelszavakat, vagy valamilyen szellemi
tulajdonát enyém, működő én tényleg nem akarja, hogy a világ lássa, még ha véletlenül.
Ez jó gyakorlat, hogy ki a nyilvánosság HTML könyvtár
a fájlokat, hogy nem kell magukat nyilvános.
Mindössze annyit kell tennie, ebben az esetben, ha ránézünk, például
A HTML könyvtár index.php fájlt,
észre, már csak egy kicsit óvatos igénylő
vagy előírhatják egyszer ezt a fájlt.
Azt kell, hogy először csinálni .. hogy megy a szülő könyvtárba,
akkor ne / includes / helpers.php
merülni vissza le, hogy a fájl törődöm.
>> Van még kérdése majd MVC
vagy ez a viszonylag egyszerű megtestesülés cikkére?
És hadd tegyem világossá, hogy mi elsősorban egy kicsit a
V itt, a nézetek és a faktoring ki ezeket a sablonokat.
Már nem igazán különböztethető M C csak még.
Tény, hogy valóban nincs M itt van, és még a C,
vezérlő, nem igazán mindent megtesz, hogy sok, de akkor kap sokkal több
ismeri e két 2 leveleket MVC,
vagy inkább, kapsz sokkal jobban ismerik a C
az MVC a probléma szett 7, úgyhogy van még ezen a horizonton.
Kérdései vannak?
Itt valójában itt senki.
>> Oké, most már lépni a második és egyben utolsó téma ma.
Hogy a bevezetése az adatbázis.
Egészen ezen a ponton már volt egy pár módon adattárolásra.
Már használt változókat.
Vissza a C fájl, I / O vitát kezdtünk a szöveges fájlok
és használata fájlokat, mint fprintf, és aztán sem kezdődött
beszél CSV fájlokat egy kicsit, vesszővel elválasztott értékek,
ezért az összes ilyen lehetővé tette számunkra, hogy a tárolt adatok
vagy nem tartósan, vagy tartósan.
De még CSVs nem igazán kedvez a keresést
és beillesztése és törlése.
Ez tényleg csak egy hülye szövegfájl vesszővel elválasztva
sorral szerint soronként, ezért ha azt szeretnénk, hogy
keresés a fájlban a legjobb, amit tehetünk, valóban lineáris keresés.
Meg kell kezdeni a tetején a fájl, olvassa el az egészet,
és keresse meg néhány érték érdekében.
Ha szeretné illeszteni ez már nem ugyanaz a dolog,
iterációjával rajta és beillesztése egy adott helyen,
és valóban, meg kell tennie az összes keresési logika magad.
>> Ezt nem teheted okos mintaillesztés egy CSV-fájlt, ha te magad is írni a kódot.
Ezt nem teheted kiszűrjük a CSV-fájl
hacsak nem te magad írni a kódot.
Nem lenne jó, ha valaki betesz minden erőfeszítés
hogy ténylegesen, hogy keres egyszerű és beillesztés egyszerű
és törlésére, és frissítése, és így tovább?
Pontosan ez az, amit egy adatbázis.
SQL strukturált lekérdező nyelv, még egy másik nyelvet
hogy mi bevezetése ma itt, de ez is elég hozzáférhető,
és amit mi valójában csinálunk éppen vájd ki belőle néhány legáltalánosabb
jellemzői ezt hogy Pset 7, és ha csinálsz valamit web alapú,
a végleges projekt, megvan a képessége, hogy kifejezze magát
tekintve az adatok lekérdezések.
Megvan a képessége, hogy tárolja a kevés vagy sok adatot
egy sokkal strukturáltabb módon, amely a végén a nap
hogy az élet könnyebb, mert az SQL tudod kifejezni magad
sokkal pontosabban, sokkal inkább azért, hogy módszeresen
menj vissza néhány részhalmazát adatok egy nagyobb corpus adat.
>> Azt hiszem egy adatbázis, ebben az esetben egy SQL adatbázisba, igazán szeret Excel
vagy számok ha ez egy táblázatkezelő,
vagy talán több táblázatok, és egy táblázatkezelő, persze,
van sorok és oszlopok, és ez azért van, mert
SQL relációs adatbázisok, relációs abban az értelemben,
hogy azok az adatok tárolására tekintetében ezek a táblák,
sorok és oszlopok.
Ezek a nagyobb teljesítményű, mint olyasmi, mint egy táblázatkezelő,
, és egy táblázatot azt jelentette, hogy kell használni egy emberi.
Az adatbázis célja, hogy használja a programozó
kód írása ellen, így a megtestesülése egy adatbázis
lesz sem parancssorban.
>> Az egyik legnépszerűbb relációs adatbázisok odakint van, megint, MySQL,
amely csodálatosan mentes, nagyon magas teljesítményű, és ez az, ami
Facebook használt nagyon korán, és bizonyos mértékben még ma is
tárolni egy csomó az adatokat, és majd meglátjuk, egy pillanat alatt
hogy segítségével viszonylag egyszerű parancsokkal
akkor válasszuk az adatokat, betét adatok, frissítési adatok,
adatok törléséhez és hasonlók, de szerencsére van egy még inkább felhasználóbarát felület
mint gépelés egy fekete-fehér gyors itt.
Fogjuk használni Pset 7 és azon túl egy ingyenes eszköz nevű phpMyAdmin.
A név a véletlen.
A szerszám történik végrehajtandó PHP,
de ez alapvetően lényegtelen.
Mi hasznos erről phpMyAdmin, hogy ez a web-alapú segédprogram.
Már előre telepített, hogy a készülék az Ön számára,
és vele együtt hozhat létre táblákat az adatbázisban,
szúrhat be adatokat, az adatok törlésére, és általában lásd
adatait egy meglehetősen felhasználóbarát környezetben.
A felhasználók nem fognak használni phpMyAdmin.
>> Ez tényleg csak egy közigazgatási vagy fejlesztő eszköze
amellyel látni, és piszkálni körül adatait és kitalálni, hogyan szervezheti meg,
ugyanúgy, mint te magad is az Excel vagy a számok,
de ez lesz egy nagyszerű módja annak megjelenítését, mi folyik a motorháztető alatt
így összpontosítani érdekes problémamegoldó és nem annyira
A misztikus parancsokat.
Vessünk egy pillantást egy példát az adatok tárolhatók tabularly
egy relációs adatbázis.
Itt van egy ilyen példa.
Nos, sajnos, phpMyAdmin tévesen oldalán dobás túl sok szót
és Grafikák rád, de ha élesíteni csupán a
ID oszlop, a felhasználó nevét oszlopot, és a hash oszlop,
ez gyakorlatilag egy táblázatot, de előfordul, hogy egy részlet
A táblázat a készülék belsejét
használatával egy fájlt, hogy mi az Ön számára a problémás set 7.
>> Különösen, kapsz egy fájlt jelent
a felhasználó tábla, így a táblázatot, amely a felhasználók számára 3 oszlopot,
amelyek közül az egyik egy egyedi azonosító, 1-től kezdve és akit eggyel növekszik azt követően.
A második oszlop egy felhasználói nevet, és azoknak, akik nem Hacker,
A Hacker Edition Pset 2, esetleg ismeri ezek közül néhány felhasználó neve legalább.
A jobb oldalon a jelszavak, de nem szó jelszavakat.
Ők hash bekezdésére, így kiderül,
hogy tárolja a jelszavakat egy adatbázis egy nagyon rossz ötlet.
Már minden bizonnyal olvasni egy bizonyos ponton néhány weboldal
vagy néhány cég adatbázisában sérül, és akkor kell
változtassa meg a jelszavát, meg kell, hogy visszatérítés dolgokat
mert néhány rosszfiú valóban betörtek fiókjába emiatt.
>> Tárolása jelszavak egyszerű szöveg, kódolatlan az adatbázisban
teljesen ostoba, és mégis ez nagyon mulatságos
majd olvasni néhány nagyon jól ismert cégek
néha a sajtó, amelynek adatbázisok sérül,
azt a részét, nem vicces, de az tény, hogy az adatbázisok tartalmazzák titkosítatlan
jelszavak nevetséges, mert a szó szoros értelmében egy sor kódot
akkor véd, hogy különös fenyegetést jelent, és ez az, amit tettünk itt.
Még a mi kis fake CS50 Finance változat
mi titkosítja a jelszavakat, csak a jó intézkedés, valamint az a tény, hogy a
Mindezen jelszavak kezdeni $ 1 $ csak egy ilyen egyezmény.
Ez csak azt jelenti, ők titkosított vagy nagyon kivonatos,
amely olyan, mint egy egyirányú titkosítási függvény
amely nem lehet visszafordítani hatásai valami úgynevezett MD5.
>> Az a tény, hogy az 50 későbbi, azt jelenti, hogy egy só érték
50 használták kivonatoló mindezen jelszavak kivéve egyet.
Az enyém, persze, mint látod ott, HA,
volt egy másik só, így azok, akit kicsit megbotlott up
talán Hacker 2, azaz lehetett volna az eredménye a használó
egy másik hash, mint a többiek, mert a jelszót tulajdonképpen ugyanaz
mint néhány másik felhasználó odafent.
Valójában, ha vártál ezeket hetekben, hogy megtudja,
amit ezek a jelszavak is itt volt a jelszó, hogy megtámadták
feltörni a Hacker kiadásában probléma set 2, így nem túl bonyolult.
Valójában, a Malan ugyanaz volt mint jharvard,
de ha visszamegyünk néztek más.
>> Fókuszban a jharvard a vörös, mivel azokat sózzák másképp.
Az algoritmust perturbált-ban oly módon, hogy az
hash érték, a titkosított érték néz ki egy kicsit más
mert a bemenetek kissé eltérő, de a jelszó a motorháztető alatt
még végül bíbor.
Nos, ki törődik ezzel?
Nos, mi az Ön számára a mintát a felhasználók, a minta felhasználói nevek
és kivonatainak a jelszavak, így valóban van némi
ügyfelek CS50 pénzügyminiszter, amikor először szálljon le a földre a kódot.
Itt van, hogy végre több tábla belsejében MySQL, belsejében az adatbázisban.
Itt van, hogy több táblázatokat, hatékonyan, de úgy döntöttünk, hogy neked ez egy
a kezdéshez, és látni fogod, hogy a probléma halmaz specifikáció
végigvezeti a folyamat importáló e táblázat
és azt is elmagyarázza, mit egyes tulajdonságok,
és akkor is látni, hogy mi az Ön számára a kódot
kezelni a kivonatoló vagy a titkosítás e jelszavak,
így nem kell aggódni túl sokat arról, hogy mi MD5 vagy hasonló valójában szól.
>> Szóval, SQL, strukturált lekérdező nyelv.
Ez egészen egyszerűen, a nyelvi vagyunk az indulásra használ Pset 7
és talán túl kérjenek adatokat az adatbázis.
Az adatok ismét tárolt tabularly e relációs táblák, oszlopok és sorok
de a néhány viszonylag egyszerű szintaktikai, mint a törlés,
beszúrását, aktualizálását és válasszuk tehetünk, hogy pontosan.
Mi lehet törölni az adatbázisból, helyezze,
az adatok frissítésére, valamint a választás, vagyis az adatok lekérése az adatbázisból.
Hogyan megy körülbelül ezt?
Hadd menjek előre a készülékbe.
Hadd húzza fel http://localhost,
amely ismét csak a helyi készülék is.
Ez az alapértelmezett felhasználónév.
És hadd menjen a / phpmyadmin.
Ez történik, hogy egy speciális URL-t, hogy a készülék úgy van beállítva, hogy megértsük
hogy azonnal kéri meg egy felhasználói nevet és a jelszót.
>> Mint mindig, megyek írja jharvard és bíbor,
de rájönnek, hogy ez a rendszergazdai fiókot a számítógépen.
Ez csak egy véletlen egybeesés, hogy van még egy jharvard regisztrált CS50 pénzügyminiszter.
Jharvard, bíbor, enter ad nekem a felhasználói felület, hogy láttuk
egy pillanatra egy pillanattal ezelőtt, és ez egy kicsit nyomasztó az első,
de biztos lehetsz benne, te soha nem kell majd kattintsunk a legtöbb kapcsolatok ezt az eszközt.
Majd a végén egy kis részét, hogy a szuper hasznosnak
amelyek közül az első az adatbázisok itt.
Ha felmegy az adatbázisokhoz, észre, hogy én vagyok kéri, hogy hozzon létre egy adatbázist.
Ez olyan, mint egy új Excel-fájlt, hatékonyan.
Én megyek előre, és hívja ez az előadás, és én csak megy, hogy figyelmen kívül hagyja a területen van, egyeztetése.
Meg kell csinálni a képviselete az adatok abban
és megyek kattintva létrehozhat, és most észre, ahogy elengedte létre
a bal oldali, ha azt mondja, nem adatbázisok
Én hamarosan látni az előadás adatbázisban.
>> Ha most kattints a bal oldali, az előadás adatbázis,
észre a kották változik egy kicsit.
Megvan szerkezet, SQL, export, import és néhány más dolog.
Szerkezete nagyjából üres.
Nem táblák találhatók adatbázisban, ahogy azt itt,
így hozzunk létre egy táblázatot, és menjünk előre, és hozzon létre egy táblázatot
mint a diákok, és hány oszlopot akarunk?
Tartsuk ezt az egyszerű, és menjünk eredménye minden hallgató
azonosító számot, egy nevet és egy e-mail címet.
>> Majd tartsa egyszerű, mint, hogy így 3 oszlopos, menj.
A forma, amit látsz itt most egy kicsit zavaros és nyomasztó,
de már csak, hogy menjen át rajta soronként, így nagyon gyorsan adjunk
az első oszlop az adatbázisban egy neve azonosítóját az egyedi azonosító.
Lesz egy egész szám. Én tulajdonképpen figyelmen kívül hossza és értékeket.
Egy int lesz 32 bit nem számít, mit írjon oda, így hagyjuk üresen.
Alapértelmezett érték tudtam tenni null meghatározott.
Fogom hagyni, hogy egyedül. Ne aggódj alapértelmezett értékeket.
Nézzük lapozzunk ide jobbra, attribútumokat.
Ez érdekes.
Menjünk előre, és némileg önkényesen azt mondják, hogy azonosítókat kell aláírva.
Ne pazarolja negatív számok.
>> Menjünk 0-4000000000, adjon vagy vegyen,
aztán ne érintse meg ezeken a területeken csak még ott,
de aztán hadd írja be a nevét itt lenn,
majd a másik e-mailt, így a fogás email
és név, nyilvánvalóan nem egészek, úgyhogy módosítsa ezeket egy másik területen.
Kiderült varchar, változó hosszúságú char,
olyan, mint egy karakterlánc egy SQL adatbázis
de a változó hosszúságú, és valóban el kell mondani, hogy előre
maximális hossza a húr, így fogok némileg önkényesen
megegyezés típus 255 karakter.
Tudnám mondani, teljesen 32. Mondhatnám, 1000.
Azt a fajta igény dönteni magának alapuló demográfiai mi
a leghosszabb hallgató nevét, és megy ez a szám, vagy egy kicsit nagyobb,
de mi a szép egy varchar ez nem fog hulladék
255 bájt minden diák nevét.
Ha ez DAVID ez nem fog használni a teljes 255 bájt,
de ez a felső határértéknek, úgyhogy megyek 255 csak a konvenció,
de azt is megvitatni, hogy kell néhány kisebb érték, és e-mail cím
Csak hogy konzisztens legyen 255, de a lényeg, tudtuk van egyforma vitát.
De fogok csinálni egy másik dolog ide a jobb oldali.
>> Mi erős egy adatbázist, hogy sokat tehetnek a nehéz emelés
vagy komplex munka az Ön számára.
Különösen, én tényleg nem érdekel, mi a hallgatói azonosító száma.
Ez csak azt jelentette, hogy egy egyedi azonosítót az adatbázisban
így van egy 32-bites tömör ábrázolása, hogy a diákok
úgy, hogy van valamilyen módon egyedileg azonosítja őket
nehogy van-e 2 Davids, például, egy osztályban.
Sőt, megyek, hogy ellenőrizze e AI doboz, auto növekmény,
annak érdekében, hogy az adatbázis, MySQL, kitalálja,
amit minden újonnan felvett hallgató azonosítója lesz.
Azt nem is kell törődni, hogy az én-kódot,
és én is lesz választani valamit az index menüben.
Az index legördülő itt is elsődleges, egyedi,
index és a teljes szöveg.
Akkor talán kitalálni, mi egy pár ezek a dolgok,
de kiderül, a relációs adatbázisok
Ön a programozó vagy az adatbázis-kezelő kap megelőző jellegű
give tippeket, hogy az adatbázis, hogy milyen területeken
táblázatban egy kicsit különleges.
>> Például ebben az esetben fogom mondani, hogy azonosító
lesz elsődleges index, más néven elsődleges kulcs.
Mi ez azt jelenti, hogy a definíció azonosítója ezentúl
will egyedi módon azonosítják a diákok ebben a táblázatban.
Nincs hallgató van egyforma ID, mert én ezt a korlátozást kiszabó vagy ezt index.
Sőt, mi ez fog tenni nekem ez fog mondani
MySQL az ID különleges.
Érdekel előnyösebben körülbelül ID, így megy előre, és nem a képzelet adatszerkezet a mágia,
kiépítése valamilyen fa.
Jellemzően ez valami az úgynevezett B-fa, amit nem nézett héttel ezelőtt,
de ez egy másik ilyen adatok szerkezete hasonló szellemében a bináris fák
és megpróbálja azt néztük meg, de ez fog mondani
az adatbázis ezen a területen olyan fontos, hogy én valószínűleg
szeretnénk, hogy képes legyen megtalálni rá, megy előre, és felépíteni valami puccos
adatstruktúra a memóriában, hogy felgyorsítsa kereséseket, így ideális
ők konstans idő vagy legalábbis olyan közel, hogy a lehetséges
úgy, hogy ne áthárít bele lineáris keresés, amely nem lesz
a legtöbb nagy teljesítményű megközelítés.
Ezzel szemben, e-mail címe lehetett volna elsődleges kulcs.
>> Elméletben mindenki e-mail címe egyedülálló, hacsak nem valamilyen megosztás venni,
de ez általában nem jó használni, olyasmi, mint egy húr
elsődleges kulcs, mert ha annak célja az életben, hogy egyértelmű azonosítására
sorok a tábla nincs ok arra, hogy használja a 255 bájtot maximálisan
amely egyedileg azonosítja valakit, ha lehet megúszni mindössze 4 byte
vagy egy 32-bites int.
Általában egy elsődleges kulcs legyen rövid és tömör
és ideális esetben valami, mint egy egész, vagy egy nagy int, amely történetesen a 64 bit.
De egy e-mail címet egyedinek kell lennie, és az egyik jellemzője az adatbázis is
, hogy megerősítse egyediségét nekem.
Kiválasztásával egyedi itt a következő e-mail, bár feladni magát
görgetése ki a képernyőn, azt mondom, hogy az adatbázis
nem bízol bennem.
Ne hagyd, hogy helyezze be az adatbázisba
ugyanazon e-mail címet kétszer, akkor is, ha egy idióta vagyok, és nem vagyok
nagyon jó az én IFS és IFS mást és aktuális PHP kód
és én véletlenül hagyja, hogy a felhasználó regisztrációja egy meglévő e-mail címet
Az adatbázis újabb szintje védelmi helyességét
annak biztosítása érdekében, hogy ez a duplikált e-mail cím nem ér véget fel a táblázatban.
>> Nos, ezzel szemben, a neve valószínűleg nem szeretne, hogy az egyedi
mert akkor soha nem lehet 2 Davids vagy 2 Mike Smiths, például,
az adatbázisban, így egy akkor csak hagyjuk békén.
Én megyek előre, és kattintson a Mentés gombra a jobb alsó sarokban,
és minden, ami jól néz ki, de észre ide
ez egy olyan rész, ami most nem fogunk túl sok időt töltenek a
mert a szintaxis egy kicsit bonyolult, és nem kell, hogy hozzon létre táblákat
minden, ami gyakran, de SQL maga a nyelv,
a szintaxis, amely itt, hogy én már kiemelve.
Mit phpMyAdmin tényleg ez létrehoz egy web-alapú GUI Önnek
mellyel időt takaríthat meg, és nem kell kézzel írja ki
Egy meglehetősen hosszú SQL query ilyesmi.
>> Más szóval, ha akarod manuálisan létrehozni ezt a táblázatot,
akár, hogy a fekete-fehér, azonnali vagy akár phpMyAdmin
segítségével ez a másik lapon, ezt az SQL fület, ahol beírhatja bármilyen SQL lekérdezések
akar, őszintén szólva, ez volna nekem egy percet
hogy valóban emlékszik a teljes szintaxist, és még akkor talán volna
néhány helyesírási, így ez az eszköz hasznos dolgok, mint, hogy, és ez is tanulságos.
Akkor kezdődik következtetni mi a szintaxis
Csak a szép színkódolás amelyre a phpMyAdmin hozzáadása
a mi vizuális kényelem.
De most nézzük ezt helyette.
Hadd menjen a Beszúrás lap tetején, és hadd menjen előre, és helyezze például
Az azonosító mondjuk, valójában nem érdekel.
Ez lesz az automatikus növekmény. Én hagyom, hogy az adatbázis foglalkozik ezzel.
De kell lennie David, és az én e-mail kell malan@harvard.edu.
>> Menjünk előre, itt és bevezetni Mike Smith, mint egy másik.
Adok magamnak egy utolsó nevet is,
és mi is vele lesz smith@example.com,
aztán hol a következő?
Nos, úgy néz ki, tovább a gombra kattintva, és íme.
Figyeljük meg a felső 2 sor egészül ki.
Ez a tényleges SQL lekérdezést.
Ez a phpMyAdmin eszköz működése nekem,
de a végeredmény, értesítés, ha most megy a böngészés fülre,
jelentése, hogy 2 sor ebben a táblázatban, nagyon emlékeztet esztétikailag
Az asztal korábban láttuk a mi felhasználók Pset 7,
akik közül az egyik David Malan, akik közül az egyik most Mike Smith.
De csak hogy világos legyen, nem kell használni a phpMyAdmin,
és valóban, fogsz hamarosan kódot írni Pset 7
hogy automatizálja a felhelyezési menetét sorok, törlés sorok, frissítése sorok és a hasonló,
hadd inkább menjen a SQL fülre ide
és írja be a select * from diákok, ahol
email = "malan@harvard.edu".
>> Más szóval tegyük fel, most van
egyes HTML formában, és a felhasználó beírja a saját e-mail címét, többek között más területeken,
és a cél most a PHP-ben a háttérben kód
hogy ténylegesen nézni, hogy a felhasználó más adatait.
Mi a teljes neve? Mi az azonosító?
Lehet írni egy SQL lekérdezést, mint ez, select * from diákok
ahol email = "malan@harvard.edu".
És ha majd kattintsunk menni, észre, hogy kéne, sőt tudom, hogy újra csak egy sorban.
Mike kihagyták ezt az eredményt meg, az adatgyűjtés a sorok
általában nevezik, mert nem azonos e-mail címet, mint én.
>> Most ismét itt a Pset 7 fogja használni phpMyAdmin mint egy felügyeleti eszköz
és egy pedagógiai eszköz tanulni az utat
Világszerte SQL, de a végén a nap
fogsz írni ezeket a lekérdezéseket belül a tényleges PHP kódot,
és így Maradjanak velünk Zamyla a walkthrough különösen
ahol kapsz egy túra a forgalmazási kód probléma set
ahol kaptál nem csak az esztétikum a bejelentkezési oldal
és a szép szexi embléma, amely azt mondja CS50 Finance, de már azt is adtam nektek
egy csomó funkciók teszik életed egy kicsit könnyebb.
Már is írt része a Pset az Ön számára,
bejelentkezési részét is, különösen, hogy az Ön egyfajta reprezentatív tervezés
hogy valójában használ egy vezérlő, például, index.php,
login.php és hasonlók, és akkor meglátja a Pset is van sablonok könyvtár
, amely az összes nézetek, az összes esztétika.
És így a teljes munkafolyamat Pset 7 lesz, hogy a
a felhasználók meglátogatnak egy vezérlő segítségével egy URL-t a böngészőben.
Ez a vezérlő tartalmaz PHP kódot, amit írt, és ezen belül a PHP kód
Lehet, hogy néhány sornyi SQL beágyazott dupla idézőjelek közé
és átadta a függvény írtunk nevű lekérdezés
amely segít beszélni az adatbázis használata nélkül valami ilyesmit
adminisztratív eszközzel, mint a phpMyAdmin.
>> Ön képes lesz arra, hogy írjon SQL utasítások PHP kód
, és menj vissza a PHP tömb az eredményhalmaz,
a sorok, amelyek ténylegesen egyezik lekérdezést.
És hasonlóképpen leszel képes megtenni lapkák vagy törlése
vagy frissítések vagy a hasonló, a szintaxis amelyek meglehetősen hasonló,
és meglátja, néhány internetes hivatkozásokat, az elosztó-kód
és a Pset csomagolja magát, hogy pontosan hogyan kezdjen csinálja.
Ismerd végül mi tényleg csak vakarja a felületet, SQL
és a MySQL, de a hatalom valóban az, hogy megszabadít
hogy összpontosítson a problémákat szeretnénk megoldani, a használati esetek szeretne végrehajtani
anélkül, hogy aggódnia annyira sok, legalábbis korán,
arról, hol és hogyan kell tárolni, és keressen az adatbázist,
és ez a szó szoros értelmében, ahol a Facebook maga kapta a kezdő
MySQL, és ezután több MySQL szerver majd több MySQL szerver
nemsokára amíg aztán tényleg kezdeni gondolkodni nehéz arról, hogy hogyan
adatok tárolására, hogyan kell tárolni a dolgokat még hatékonyabban,
így bár mi magától értetődőnek, hogy az indexek és az egyedi korlátok
és így tovább, csak munka van egy nagyon érdekes beszélgetés
hogy ez minden vezethetnek, úgyhogy észre, hogy mi csak vakarja a felületet
A mi végül az Ön vagy projekt válik egy kicsit a nagy adatok.
>> Ezzel azt mondta, menjünk ér itt véget, és találkozunk jövő héten.
[CS50.TV]