>> [MUSIC PLAYING]
DAVID J. MALAN: Bütün sağ.
Geri gəlmisiniz.
Bu CS50 edir.
Bu həftə 8 sonu.
Bildiyiniz kimi, biz olduqca var bir neçə müntəzəm ofis saat
yemək məşğul, Annenberg o cümlədən.
Və komandanın bəzi xahiş son vaxtlar bəzi photos etdi.
Və şərəfinə Halloween, biz istədiyiniz düşündüm
daha bizə tutdu ki, bir pay sürpriz burada Annenberg Salonunda yalnız
digər gecə.
Sizin sinif yoldaşı Yaqub çəkdirdi Bu şəkil, lakin daha əyləncəli idi
Facebook idi, gələn sonra nə baş verdi ki, söhbət.
>> Cavab Onun ilk post Onun foto bu idi.
Bir neçə dəqiqə sonra, o qərar Bu özü qədər bir.
Bu, bu getmək sonra getdi və sonra, daha gülməli
Onun anası chimed zaman.
Və sonra nəhayət, bu yalnız idi görünür
bir gözəl hiylə olur ki oynayır.
>> Belə ki, siz istəyirsinizsə Yaqub və başqaları görmək,
Onların arasında Cynthia Meng, kim CS50 zona heyəti pərdə arxasında,
bu URL burada bu oyun giderim.
Belə ki, daha ADO olmadan, biz bu gün , web proqramlaşdırma bu göz davam
və proqramları faktiki yaradılması ki, command line çalışır deyil
lakin əvəzinə bir browser daxilində axır.
>> Ehtimal indi və ya çox qısa, siz olacaq
həyata ortasında olmaq Öz web server olan
web proqramlaşdırma fərqlidir.
Pset6 web server bütün haqqında bilir ki, proqram yazılı etmək
Bir brauzer HTTP istekleri, və ya hətta siz, bir insan,
bir proqram ilə Telnet adlanır və sonra da həmin müraciətlərə cavab
HTML faylı həyata spitting, və ya bir jpeg, və ya gif, və ya hətta bir Php fayl.
>> Lakin bir web server ilə, bu deyil Yalnız bir PHP fayl açmaq üçün ehtimal,
php bitən bir şey, və sonra məzmunu tüpürmək.
Bunu ehtimal nə ilk fayl?
Belə danışmaq.
Tərtib deyil, biz bazar ertəsi bildirib lakin rather-- Belə ki, şərh.
>> PHP bir şərh dil var, və Sizin web əsas xüsusiyyətlərindən biridir
server, həyata keçirdiyimiz olsa, web server üçün bu qabiliyyəti
oh, qeyd etmək.
Bu php bitən bir fayl.
Mənə yalnız göndərmək edək bu kimi istifadəçi, statik content var
əksinə mənə onu line oxumaq line, sağ, və şərh.
>> Və bunu, siz ki, uşaqlar mahiyyətcə edəcək
cihaz bir proqram ayaqla zərbə, və kompüter sistemləri bir çox,
yalnız PHP çağırıb.
PHP nın adı dil öz tərcüməçi.
Belə ki, parça biz həyata Siz və nə üçün tərk edir
nəticədə, bir sıra ədəd, arasında
dəstək həyata keçirir statik məzmun üçün.
>> Amma indi, və problem istəyirik, yeddi müəyyən
keçid başlamaq niyyətindədir həqiqətən PHP kodu yazmaq
ki, şərh olur geri sonuna söhbət
məlumat saklar verilənlər bazası.
Belə ki, ilk daha yaxşı anlamaq edək Bu superglobals bir neçə
və yalnız nə qədər güc Pulsuz üçün qutusu çıxmaq
PHP kimi bir dil ilə.
Siz yoxdur Things özünüzü həyata keçirilməsi.
>> Belə ki, biz, Bazar ertəsi $ _GET gördüm bir superglobal,
PHP qlobal hansı danışmaq yalnız edir istədiyiniz yerdə daxil ola bilərsiniz dəyişən.
Və _GET dollar daxilində nə var?
Bu daxilində nedir görürük ki superglobal?
Şübhəsiz ki, statistik at ən azı bir şəxs bilir.
Nə _GET dollar daxilində var?
Bəli?
>> Auditoriya: Bu dəyişənlər var Siz sorğu simli qoydu.
>> DAVID J. MALAN: Perfect.
Bu dəyişənlərin var sorğu simli qoydu.
Belə ki, bizim yaşlı nümunə biz zaman Google reimplementing
bir URL, sonra sual işarəsi, olan HTTP start ayırır
parametrləri, sonra biz bərabər q idi bir şey, q pişik bərabərdir kimi,
avtomatik daxilində nə getmək olardı Sizin üçün super qlobal ki, $ _GET ki,
PHP, çünki Q bir əsas və pişik onların dəyərinin.
>> Başqa sözlə, $ _GET və bütün bunlar assosiativ seriallarda,
növ hash masalar ki, mağaza düymələri və dəyərlər.
İndi geri pset5, bu hash masa həyata ola bilər,
və ya siz ola bilər cəhd Həqiqətən, həyata
səmərəli assosiativ idi array data quruluşu
qovuşdurmağımız şərik bilər dəyərləri ilə düymələri.
>> Amma pset5, dəyərlərimizin mənasız idi.
Dəyəri mahiyyətcə doğru və ya yalan idi.
Lüğətə söz?
Belə ki, zaman alma kimi bir söz hashed alma lüğət görmek üçün,
Sizin çek funksiyası ehtimalla doğru və ya yalan döndü.
Belə ki, səmərəli deyil dəyəri biz geri alırıq.
>> Amma biz bazar ertəsi gördüm qısa, əlbəttə bilərsiniz
daha maraqlı şərik yalnız doğru və ya yalan çox dəyərləri
alma kimi düymələri ilə.
Siz, həqiqətən, bir qayıtmaq bilər ixtiyari simli, həqiqətən,
nə $ _GET və bu var digər dəyişənlərin nə bildirin.
>> Belə ki $ _POST, ruhu oxşar ancaq poçt vasitəsilə formada təqdim əgər,
ki, fərqli bir HTTP metodu kredit kartları kimi şeylər üçün istifadə,
və özəl informasiya, və hətta photos kimi binar informasiya,
o şeyi $ _POST daxilində son.
Və həqiqətən fayllar üçün jpegs və etajer kimi,
belə ki, başqa var burada həmçinin $ _FILES çağırıb.
>> Belə ki, server biz də dayanmaq deyil çox, lakin bu imkanı verir
haqqında aşağı səviyyəli məlumat və düzmək üçün istifadə etdiyiniz server özü.
Cookie və sessiya olsa da, biz səmərəli indi görürsünüz.
Son biz həyata keçirmək üçün istifadə nə bir alış-veriş sepeti anlayışı.
A super sadə bir, lakin geri ki, burada bu nümunə idi
Neçə dəfə hesablanması əvvəl bu səhifəni ziyarət etmişdi.
>> Amma bu gün deyil, yalnız baxmaq çox Bu təsiri qədər açmaq
Chrome inspektor, siz adətən bilərsiniz
sağ tıklayarak və ya nəzarət edə hər hansı bir web page tıklayarak,
və sonra element yoxlamaq download.
Yoxsa menyular ilə getmək olar biz pset6 nin Spec təsvir edir.
Mən Network nişanı gedirəm burada, və bir an izləmək imkan
ki, HTTP trafik geri və irəli gedir.
>> Mənə ilk davam edək və aydın Chrome cache.
Belə ki, bəzi tanış ola bilər artıq bu texnika ilə,
və biz bunu istifadə etmək olacaq burada ayıklama məqsədləri üçün.
İndi biz kompüter elm başlamaq üçün gedir
ayıklama üçün bunu məqsədləri, vasitəsi
biz cache aydın olacaq, adətən, belə ki, biz
cookies adlanan şeyi xilas edə bilərsiniz.
Beləliklə, siz yəqin ki, ümumiyyətlə tanış edirik nə ilə cookies ən azı, və ya
ki, onlar var, lakin nə Onların sizin anlaşma,
yalnız bir istifadəçi kimi kompüter, bir cookie nədir?
Bəli.
>> Auditoriya: Bu, kontormerinin Təfərrüatlar də bir az deyil kompüter müddətinə bit.
Bu data parça var ki, bir veb üçün sizə göndərir
sizə statistika yazmaq etmək.
DAVID J. MALAN: OK, yaxşı.
Belə ki, məlumatların bir parça var ki, bir server, kompüter üzərində qoyur
və bunu hətta ümumiləşdirmək edək daha çox, əsas dəyər yaxşı var,
daha dəqiq əldə edir.
Bu bir parça məlumat məlumatların bir parça,
bir server edə bilər ki, Bilgisayarınızda qoymaq üçün
və çox tez-tez server yoxdur bu kim yadda kimi.
Məsələn, bahis Belə ki, Siz yəqin edirik var
Facebook kimi saytlar daxil, və ya Gmail, və ya digər əvvəl
və ilə daxil olun istifadəçi adı və parol,
və sonra, bir sıra üçün dəqiqə və ya saat və ya hətta gün,
server ki, xatırlayır Siz, əslində, daxil.
İndi, necə həqiqətən baş ki?
Siz əlbəttə ki, retyping deyilik, çünki istifadəçi adı və parol hər zaman
Bir gedin Facebook müxtəlif səhifə.
Belə çıxır cookies cavab verir.
>> Kimi hesab edə bilər bir cookie, sort, bir digital əl istəyirəm
Bir əyləncə almaq bilər ki, möhürü park və ya bir klub olduğunu mahiyyətcə
Burada olmuşdur göstərir əvvəl, və siz artıq var
üçün, martaval üçün ID göstərilir instansiya ki, klub və ya park
İndi ki, siz götürməlidir artıq təsdiq edilmişdir.
Siz artıq tərəfindən müəyyən edilmişdir.
>> Nəzərə Belə ki, burada counter açmaq bildirin.
Mən yalnız, mənə irəli gedək, və cookies bütün sil.
İndi mən nə gedirəm yalnız yaxşı tədbir üçün, Shift keçirilməsi,
və zorla səhifə yeniden.
Yalnız əmin Shift heç bir şey cached olur.
Və burada tələbi var geri və irəli getdi.
Belə ki, burada biz bir sorğu var, qoy Mənə burada aşağı zoom, və bu bir çox
üçün sort maraqsız ətraflı edir brauzer avtomatik indi ki,
göndərdik, amma View basın edək Mənbə xammal başlıqlarını görürük.
>> Və artıq pset6 daldıq olsanız, Siz əlbəttə ki, hər şeyi tanımaq lazımdır
bu kimi və bəlkə bəzi Burada digər xətlərin,
lakin nə bu gün üçün daha maraqlıdır Mən deyil, tələbi aşağı diyirləyin əgər
lakin sözdə cavab, Bu xətt yəqin ki, tanış görünür.
Yaxşı bir şey var Siz 200 OK görəndə.
Yəqin bu deyil server tarixi və vaxtı
və stuff bir dəstə var.
Oh, bu maraqlı deyil.
>> Siz istifadə zaman çıxır Ən azı bu server PHP,
server spits nə PHP versiyası istifadə edirik.
Təhlükəsizlik həqiqətən olan, məqsədləri, yaxşı bir şey deyil.
Amma, biz geri gəlmək lazımdır bəlkə başqa vaxt.
Amma indi bu, şirəli line gün və biz qısa bu bəzi gördüm
Biz poked zaman Facebook ilə düşünmək o zaman inspektor ətrafında,
set cookie əkin nə məlumat ki, kiçik bir parça
bilgisayarınıza.
>> Bu HTTP header edir ki, səmərəli deyil
Brauzerinizin izah, Chrome, IE, nə olursa olsun,
istifadəçi haqqında hey browser mağazası sabit, və ya istifadəçi RAM,
bir olan PHPSESSID adlı əsas, sessiya ID stenoqrafiya notation,
və bu dəyər vermək 0vlk8t, nöqtə, nöqtə, nöqtə.
A həqiqətən uzun yalançı təsadüfi alfasayısal string.
Bu, yalnız bir həqiqətən böyük sayı, lakin Bu məktublar və nömrələr ilə kodlanmış edir
belə ki, ölçüsü ola bilər ki, tək başına daha böyük.
Və sonra, yolu ilə, Path = / ki, bu cookie olmalıdır o deməkdir ki,
ilə bağlı saytın bütövlükdə,
yalnız xüsusi deyil səhifə bütün şey.
Belə ki, bu virtual əl möhürü edir.
Bu, server, Facebook sanki var və ya bizim halda cihaz da,
sözün yazılı 0vlk8t var və s, sizin tərəfdən.
Nə serverin edək bunu deyil deyil deyil
əlbəttə, mənim istifadəçi adı saxlanılması Şifrəni saxlanılması deyil.
>> Bunun əvəzinə, o görünür yalançı təsadüfi saxlanılması məlumat
heç bir tahmin edə bilər ki, Mənim əl möhürü nə.
Server tərəfində, eyni zamanda, server
yəqin ki, unutmayın gedir bir verilənlər bazası və ya bir şey,
istifadəçi, gələcəkdə edən 0vlk8t bir əl möhürü təqdim, dot
dot, bu ilə bağlı olmalıdır dot Xüsusilə alış-veriş araba, belə danışmaq.
Başqa sözlə, mən indi getmək əgər burada geri və bu səhifəni yenidən,
server bilir necə Mən bir dəfə ziyarət?
>> Mən bir daha bunu əgər və ya, necə server yoxdur Mən iki dəfə ziyarət etdik ki, bilirik?
Yaxşı mən bu aşağı getmək əgər Ən son istəyi olan
Mən göndərdik ki, indi üçüncü cəmi, indi mənim tələbi bilərsiniz.
Hələ bu var Burada, eyni up tələb
əvvəl, hələ bir dəstə var biz əvvəlki kimi rədd etdik ki, məhsulları,
lakin son header, bu vaxt, Mən əvvəl burada olduğunuz çünki,
bir təqdimat Bu virtual əl möhürü.
>> Vasitəsi bu xətt burada, müəyyən cookie lakin cookie colon PHPSESSI = 0vlk8t,
ki, yalnız mənim browser avtomatik var belə ki, bu əl möhürü təqdimatı
İndi server, bu, həyata kimi tezliklə, ooh bu istifadəçi 0vlk8t nöqtə, nöqtə, nöqtə,
İndi o olan xatırlayıram bilər ki, istifadəçi ilə reassociate nə
məlumat istəyirəm, və bütün informasiya, siz saxlanıla bilər
$ _SESSION proqramçı.
>> Mən real tez açmaq əgər Belə ki, aydın olmaq gedit ki, faktiki fayl, counter.php,
Yerli host ictimai kataloq əvvəlki kimi, həqiqətən, fark,
Mən sonda saxlanılması alıram $ _SESSION Quote dırnağı bağlamaq "əks"
əvvəlki counter dəyəri olan Mən burada ki, biz bu xətləri almaq
son dəfə plus bir baxdı.
Başlıq altında, belə ki, bütün cookies var.
Bu digital yalnız sort var əl möhürü geri və irəli gedən
və səmimi Chrome Agentliyi açmaq əgər Hər hansı bir web Inspector
Siz, bu gün ziyarət super ehtimalı yüksək,
Siz bəlkə bir görmək olacaq bəlkə yarım bir çox cookies
sizin xatırlanır.
>> Və pis hələ, əgər o veb etdiyiniz
bütün reklam, olan , əlbəttə, bu gün olduqca ümumi
və həmin reklam gəlir əgər bəzi mərkəzi partiya, kimsə
Google və ya AdWords kimi onlar onların məhsullarının bir zəng
və ya digər satıcılar ki, reklam satmaq, maraqlı nə,
və bir az nə səmimi worrisome, HTTP işləri necə haqqında,
Siz əgər bir reklam əlaqədar ki, Facebook.com, və Google.com in,
və Harvard.edu, hər hansı bir sayı web, belə ki, var
xidmət edən bir orta insan var ki, bu web bütün üç reklam up,
ki çıxır cookies alanı başına var.
>> Siz əgər belə bir reklam gələn müxtəlif saytlarda eyni şirkət,
ki, şirkət səmərəli kim takip edə bilərsiniz bu web bütün arasında var.
Harvard bilmirəm bilər Facebook ziyarət edirik.
Facebook bilmirəm bilər və Siz Harvard ziyarət edirik.
Amma nə olursa olsun ad xidmət ki, domen, əgər onlar istifadə etdiyiniz
həm Harvard.edu web mövcuddur pages və Facebook.com web pages,
Bu orta insan şübhəsiz ki, kim bilir Bu cookies paylaşılan alaraq
arasında, daha doğrusu, üçün ki komisyoncu sözdə.
>> Beləliklə, biz bu qayıda bilərsiniz onların təhlükəsizlik nəticələri,
lakin məlumat bir çox var heç bir zaman haqqında saxlanılır siz
ən hər hansı bir web səhifəsini ziyarət internet və həqiqətən
Bu çox sadə mexanizm azaldır.
Nə əgər, sonra, olur Siz super paranoid etdiyiniz
və Chrome və ya IE daxil qərar və ya hər hansı və cookies söndürmək?
Nə olur?
Bəli?
Siz bu hüququ etdik, həqiqətən?
OK.
Xeyr, irəli getmək.
>> Auditoriya: Bəzi saytlarda yoxdur bu bir funksiyası Facebook kimi.
DAVID J. MALAN: Bəli!
Belə ki, müəyyən saytları yalnız iş dayanacaq.
Və ən web bu gün əsaslı, cookies etibar
onlar daxil var, xüsusilə də əgər , onlar yalnız qırmaq olacaq.
Nəzərdən Çünki alternativ, əgər veb
, kim xatırlayaraq heç bir yol var və buna görə də sizin web browser deyil
hər HTTP ilə təmsil Bu əl Markanın tələbi,
səmərəli web Facebook gedən kimi
təklif etmək hər darn dəfə daxil
Siz pages dəyişdirmək, və ya bir link basın olan xüsusilə yaxşı user mütləq deyil
təcrübə.
>> Orada da belə ticarət off arasında.
Daha ADO olmadan Belə ki, götürək web proqramlaşdırma ilə verilən,
PHP kimi dillərdə, siz yadda bilər problem kimi məlumat set
Öz həyata zaman yeddi Almaq üçün olan E * Trade kimi website
və səhmlərinin satmaq, siz dəqiq xatırlamaq lazımdır Hansı istifadəçi alınıb satılan
və o olan Bu sessiya yolu ilə.
Amma biz lazım olacaq e-poçt daha meraklısı yol
ətrafında informasiya saxlanılması başlamaq üçün.
Right?
>> Bazar ertəsi, biz Frosh Ani danışdıq və necə web versiyasını bir,
il əvvəl, biz bütün idi olan var Proctor e-poçt
Bu intramural idman məsul proqramı adı və gender,
və onlar kapitan olsanız və ya, və kimsə yurt kim
bir intramural idman üçün qeydiyyatdan.
Belə ki, pis deyil, lakin o, sonra o e-poçt vasitəsilə cüce idi,
Bir elektron tablo və ya bir şey kimi etmək ki, hər şeyi təşkil saxlamaq üçün.
Belə ki, şübhəsiz ki, biz proqramçılar kimi ki, Proctor üçün bunu edə bilərsiniz.
Və SQL daxil, Yapılandırılmış Query Language,
olduqca baxmaq niyyətində olan C və PHP həm də müxtəlif,
və daha çox əlləri dalış lazımdır PHP və problem də yeddi lakin SQL müəyyən
və ya SQL, bu dil ki, bir verilənlər bazası danışmaq üçün istifadə edin.
>> Amma bir verilənlər bazası var?
Yaxşı bir hesab verilənlər bazası, ən azı indi üçün,
yalnız bir Excel fayl kimi olan, və ya Mac istifadəçi bir ədəd fayl əgər,
və ya Google Apps əgər istifadəçi Google tablo,
səmərəli bir verilənlər bazası var, və ya, həqiqətən, xüsusi bir relational verilənlər bazası.
A relational verilənlər bazası yalnız satır və sütun var ki, bir şey,
və siz hər cür saxlaya bilərsiniz Bu satır və ya sütun məlumat.
>> Lakin, SQL haqqında gözəl nə var və faktiki bazaları, yalnız
tablolar və ya Google tablolar, Bir dil istifadə edə bilərsiniz ki,
həqiqətən sorğu icra data, data aradan qaldırılması üçün daxil,
hətta data axtarmaq üçün ən əsası, və
kifayət qədər özünüz istifadə etmək yoxdur, Siz adətən Google güc kimi
bu kimi elektron tablo.
>> SQL Belə ki, bir dəstə var fundamental hesabatları və ya ədəd
funksionallıq inşa.
Bu daha çox var, ancaq bir böyük məsafə getmək bilər
yalnız bilerek adlanan bu dil
SQL azı dörd var Siz leverage bilər hesabatları.
>> Data aradan qaldırılması üçün, Sil, Satır əlavə etmək üçün, daxil edin,
Update, dəyişdirilməsi üçün satır, və seçilməsi,
satır geri almaq üçün və həqiqətən SQL nə var.
Bu belə satırlar tamamilə fəaliyyət Siz daxil, və ya aradan qaldırılması zaman,
və ya yeniləmə, və ya etdiyiniz nə seçin qondarma nəticə dəsti geri almaq,
satır bir sıra kimi.
Bir masa satır bir dəstə.
>> Belə ki, gün geri, və hətta bu gün,
Siz ilə qarşılıqlı bilər bir command line istifadə edərək verilənlər bazası,
lakin istifadə etmək xüsusilə əyləncə deyil bu qara və ağ stil pəncərə
və həqiqətən əmrləri yerinə və verilənlər bazası ətrafında soxmaq.
A qrafik istifadəçi interfeys, və ya GUI, , arguably daha çox üstünlük
və biz gəlir alət və cihaz sizin üçün əvvəlcədən qurulan
phpMyAdmin adlanır.
Bu ki, bir ümumi təsadüf deyil Bu şey adı, bu PHP var
yalnız insanlar o deməkdir ki, özlərini bu proqram yazıb
PHP bunu yazdı.
>> Amma bu idarə haqqında nəticədə var bir MySQL server kimi bir verilənlər bazası server,
Siz ola bilər ki, siz kimi CS50 cihaz, yoxdur.
Belə ki, daha ətraflı çox var burada Biz bu gün qayğı lazımdır
lakin nə əsas var sol ki, tərəfdən bazaları siyahısı
sizin kompüter var ki, Sizin CS50 cihaz,
və ya final layihələr gəlib ki, güc üçüncü, bir şirkətin var
haqqinda və ya web server ki, Siz yer üçün ödənilməsi bilər.
Belə ki, sol deyil verilənlər bazası, biri
Mən növbəti borc olan pset7 edir üst, sonra həftə pset, və
bir var orada qeyd Nişanlar dəstə olan bir
verilənlər bazası, SQL, status edir s istifadəçilər ixrac və.
Belə ki, uzun bilərsiniz yolu yalnız həyata keçirilməsi
ki, istifadəçi interfeysi ən Sol üst sütun
və sağ orada üstünde.
Belə ki, biz, həqiqətən, bu ilə nə edə bilər?
Yaxşı, bir yaratmaq başlamaq edək məlumat bit aşağıdakı.
>> Aşağıdakı belədir düşünək, Yalnız bir neçə gün olacaq,
Bir həyata istəyirəm CS50 Maliyyə deyilən haqqinda,
və bu veb siz almaq imkan verir dırnağı bağlamaq sitat və səhmlərinin satmaq.
Və anlamaq üçün olacaq həmin səhmlər qiyməti,
nəticədə görəcəksiniz kimi, Yahoo Maliyyə söhbət.
Hansı, gözəl, bir pulsuz xidmət var Bir fond ticker keçə bilər qovuşdurmağımız
Google GOOG, və bu kimi olacaq Google cari fond geri vermək
Keçmişdə ərzində qiymət neçə dəqiqə ən azı.
>> Belə ki, son nəticədə ki, istifadə edəcəyik, istifadəçi üçün iddia
almaq və faktiki satmaq virtual pul istifadə ehtiyatları,
lakin çox ilk şey istifadəçi görmək olacaq
onlara soruşur bu giriş ekran öz istifadəçi adı və şifrə üçün.
Və belə ki, bir ilk pset7 sizin üçün problemlər
geri sonuna həyata olacaq verilənlər bazası, tablo siz əgər,
ki, saxlamaq olacaq istifadəçilər adları və parol
və nəticədə onlar öz nə səhmlər, və neçə, və nə qədər pul onlar var,
digər şeyi bir dəstə digər masalar, və ya elektron tablolar.
>> Belə ki, necə bu nəzər edək ilk baxışda görünür bilər.
Mən geri getmək üçün gedirəm Mən və cihaz
burada bu URL getmək niyyətində phpMyAdmin localhost / phpmyadmin
və bunu ki, görürsünüz bir interface mənə edir
tam biz gördüm kimi ekran shot, və burada mən
əlavə bazası var Bu gün çağırışı mühazirə
və mənə irəli gedək ilk və pset7 basın.
>> Mən variantları bir neçə var görünür, yeni bir yeni masa yaratmaq üçün,
istifadəçilər və bir link olan Mən artıq yaradılmış bir masa.
Belə ki, bir masa var?
Excel istifadə əgər Belə ki, əvvəl və siz var əgər
istifadə nömrələri və ya Google Spreadsheets, bir pəncərə açmaq
və bütün dəstə almaq satır və sütun,
lakin sonra adətən iş var alt, ya ayrı-ayrı Nişanlar boyunca.
Siz hər hesab edə bilər bir masa kimi iş
belə ki, verilənlər bazası, nəticədə, bir bir və ya daha çox masalar birləşməsi, bir
və ya daha çox worksheets da bir normal tablo dünya.
Mənə irəli getmək və Bu iş basın
Mən premade ki, deyilən istifadəçilər, a.k.a.
Database masa.
Mən burada aşağı diyirləyin əgər, Mənə bir az zoom imkan,
Bu phpMyAdmin izah nə Bizə indi bu masa daxilində.
Bu ilk bir az confusing var nəzər UI deyil
Dünyanın ən prettiest şey, lakin nə maraqlı burada bu hissəsidir.
ID, istifadəçi adı və hash.
>> Əvvəlcədən, və siz əlli olacaq Bu problem, yeddi müəyyən
biz bir super olan bir fayl vermək kiçik bir verilənlər bazası masa, həqiqətən borc
hacker nəşr problemi iki set
olan daxili altı satır var.
Bütün Belinda üçün One yol aşağı Zamyla üçün bir,
və o sol bildiriş istifadəçi adı, bir kimi unikal kimlikleri var
iki, üç, dörd, beş, altı, integers, və sonra sağ hashes var.
>> Və odds, əgər, siz etmədi hacker nəşr problem, iki set
lakin hash şifreli kimi yalnız bir neçə caveats ilə parol.
Belə ki, siz burada nə görmək bütün altı şifreli versiyası
problem bizim parol iki nin hacker nəşr seçin.
İndi sol yalnız bir GUI stuff deyil, Bu sıra redaktə bu sıraya çıxarmaq,
Bu sıra silmə.
>> Amma nə maraqlı İndi belədir.
Mən, həqiqətən, başlaya bilərsiniz Bu cədvələ ilə eksperiment.
Mən getmək və SQL basın əgər nişanı, mən bu böyük mətn qutusuna almaq.
Bu biz olacaq necə deyil həqiqətən kodu yazılı zaman bunu.
Aydın olmaq üçün, phpMyAdmin ki, bir vasitədir
Bizə bazası ətrafında soxmaq imkan gedir və bizə sorğu ilə sınağa imkan verir.
>> Belə ki, məsələn, güman Mən məhz bu icra.
O biri olan seçin, açar sözlər, mən əvvəllər, ulduz qeyd
bütün təmsil bir masa sütunları.
Nə masa From?
Yaxşı, users.
Və bildiriş bu var SQL qəribə konqres
burada həqiqətən istifadə geri, adətən, ticks
tək quotes və ikiqat quotes Siz masalar adları haqqında danışmaq zaman,
belə ki, geri quote haqqında şey klaviatura üst sol ən
ehtimal.
>> Belə ki, mənə indi davam edək və yalnız tək tərk
və ya aşağı diyirləyin və basın Go, və biz əslində eyni şey görmək olacaq.
Biz yalnız bir SQL sorğu icra seçin hər şey ulduz deyərək
olan masa istifadəçilər adlanır və nə geri almaq bu.
Nəticədə, biz edə bilərsiniz kod ki, eyni şey,
lakin indi bütün I istədi mənim brauzerinizin görmək idi yoxdur.
Yaxşı bir şey edək bir az fərqli.
, Mənə SQL nişanı geri gedək və yalnız nə deyək?
Zamyla onun bütün itirdi pul, və buna görə də bu
bizim üçün vaxt bir istifadəçi kimi silmək üçün.
O, artıq giriş var.
>> Mən from-- silmək demək gedirəm yaxşı, kapitallaşma saxlamaq
ardıcıllıq üçün, silin harada istifadəçilər.
Və belə ki, biz bu ola bilər predicates, və ya bu
Mənim şərhdə sonunda seçmələri, harada və necə Zamyla silmək bilər?
Onun adı Zamyla tərəfindən, belə sütun, sütun biri
adlı, belə ki, burada name = "Zamyla" idi.
Və burada mən ikiqat istifadə quotes və ya bir quotes,
yalnız zaman geri gənə istifadə Məsələn, adları haqqında söhbət,
masalar və ya sahələrində.
Və mənə burada getmək basın bildirin.
Və indi, web səhifə bir az sinirli olan.
>> Və ya, həqiqətən, silmək icra etmək istəyirəm name Zamyla bərabərdir istifadəçilər?
Bəli.
Belə ki, indi mənim masa geri getmək əgər tıklayarak istifadəçilər tərəfindən, HM ki, görürsünüz.
Mən goofed.
Və əslində, mən növ belə sürətli üz tıklayan
Siz hətta görmədim bəlkə qırmızı səhv mesajı.
Mən yanlış nə idi?
Auditoriya: Siz lazım deyil onun adı kapitallaşdırmaq.
DAVID J. MALAN: Bəli mən , onun adı kapitallaşdırılmış
lakin onun Mən, həqiqətən, username-- sağ, bir neçə səhvlər etdi?
One, onun istifadəçi adı ZAMYLA, kiçik Z,
və sütun adı adınız, deyil adı, belə ki, yenə bunu bildirin.
Mənə davam edək və istifadəçilər yerdən silmək
istifadəçi adı quote dırnağı bağlamaq "Zamyla" bərabərdir.
Bütün hüquqlar?
Belə ki, bu bir az daha yaxşı görünür, qoy Mənə aşağı diyirləyin getmək və Go basın.
Bu hələ olacaq əmin olmaq üçün mənə fəğan.
Mən Bəli basın və indi biz görürük səmimi bu, həqiqətən, baş
sürətli, az bir İkinci əlbəttə ki, bu
tam icra oldu ki, sorğu edir.
Təsdiq etmək üçün, mənə istifadəçilər basın izlə və həqiqətən indi Zamyla getdi.
İndi qarşı nə edək.
Gabe istəyir ki, düşünək haqqinda üçün qeydiyyatdan keçin.
SQL sorğu nə, nə var Mən Gabe əlavə etmək yazın bilər command?
Yaxşı olduqca sadə var.
Istifadəçilər daxil, və indi bir az sirli olur.
Mən server, müəyyən etmək lazımdır nə mən təyin etmək istəyirəm sahələri.
Mən, həqiqətən, qayğı yoxdur nə Gabe ID sayı, belə ki, keçmək gedirəm.
Mən əvəzinə demək gedirəm istifadəçi adı, hash, və sonra
dəyərləri I qoymaq istəyirəm Gabe var gedir.
Və sonra onun hash, mən bilmirəm.
Beləliklə, mən gedirəm etmək üçün bir böyük kimi tərk.
Biz geri gəlmək lazımdır Problem set ki,
Siz, həqiqətən, bunu necə spec.
>> Belə ki, yenə sintaksis, görürsünüz.
Masa adı daxil, sonra daxil edin sahələrində parenthesized siyahısı
sütun əlavə etmək istədiyiniz dəyərləri, və sonra yalnız
eyni dəqiq sifariş üçün sol Əlavə etmək istədiyiniz dəyərlərin sağ,
və yalnız çünki wrapping edir Mətn bir az uzun.
Belə ki, indi mənə Go basın bildirin.
Bir sıra daxil.
Və indi geri getmək əgər istifadəçilər nə maraqlı
yalnız Gabe də artıq deyil ki, verilənlər bazası, onun ID yəqin nədir?
>> Yaxşı yeddi var.
Niyə mən bunu əlavə etməyib yeddi zaman?
Bu belə də biridir xüsusiyyətləri bazası almaq.
Bir çox funksionallığı inşa.
Bu zaman çıxır ki, Bu masa yaradıb,
Mən avtomatik olaraq var önceden belə bir şəkildə ID təyin
Bu əlavələr.
Beləliklə, siz heç ətrafında poked olsanız və nə Facebook ID baxdı
sayı, həqiqətən deyil bu gün bir şey, bir API, lakin Facebook etmək
Application Programming Interface, qovuşdurmağımız geri ala bilərsiniz
məlumatların bütün dəstə haqqında Özünüz, dostlarınız haqqında,
və əlaqələri.
Və nə istifadə cür sərin, geri gün,
axtarmaq üçün nə sizin Facebook ID sayı.
Mark Zuckerberg-in, Məsələn, üç
O saytın müəllifi idi.
Hekayə gedir kimi, onun yaratdığı iki test hesabları, istifadəçilər bir və iki,
o sonra silindi.
Və belə ki, Zuck, onun istifadəçi adı Facebook, ID sayı üçdür
və hamımız çox nömrələri var daha böyük üç bu gün.
Əslində, bir nöqtədə Facebook üz köçürülüb
hətta bir int istifadə hansı 32-bit dəyər istifadə edir
Növbəti addım, mahiyyətcə uzun uzun belə
Onlar yerləşdirmək bilər ki, Qeydiyyatdan daha users.
Belə ki, bir fun az tarixi fakt.
>> Belə ki, yalnız əsas sintaksis olan
biz bir neçə icra bilər queries, lakin biz həqiqətən bilərsiniz
SQL ilə bir dəstə daha çox şeyə.
Və nəhayət, görəcəksiniz problemi yeddi müəyyən
Bir etmək lazımdır ki, dizayn qərarları sayı,
Onların arasında olacaq nə məlumat növləri istifadə etmək.
Belə ki, yalnız C kimi, data var bir verilənlər bazası növləri, MySQL kimi,
və məlumat növləri seçmək lazımdır burada bu sahələri daxildir.
Char, VARCHAR, Int, big int, decimal və tarixi zaman, və bir çox başqaları.
Belə nin əslində bunu edək.
Biz deyil ki, iddia edək əl bu istifadəçi masa
və mənim üçün, irəli getmək və yaratmaq imkan özüm mühazirələr bazasında
həqiqətən mənə irəli getmək və silmək imkan Mən artıq burada var masa
belə ki, biz, həqiqətən, bu yarada bilərsiniz.
Whoops.
Mən bu düşmək gedirəm masa, və indi mən
Bu yenidən getmək olacaq burada bazası mühazirə,
Mən bir masa yaratmaq üçün gedirəm adlı istifadəçiləri və edək
Yalnız üç sütun etmək ilkin və Go basın.
>> İndi, çox hissəsi üçün, yenidən, bu yalnız
adlanan bu qrafik aracı istifadə edərək phpMyAdmin və biz indi nə edirik
bir masa yaradır.
Belə ki, bu Fayl gedən kimi, New, və yeni Excel fayl yaratmaq.
Belə ki, mənə bir neçə xahiş suallar, olan, sol sağ
ilk sütun adı nə var, və sonra ikinci sütun adı,
və üçüncü adı.
Belə ki, bu yeniden bildirin.
ID, sonra istifadəçi adı, biri idi və sonra hash başqa idi.
Belə ki, nə data növü olmalıdır ID kimi bir sahədə artıq ola bilərmi?
>> Burada data növləri bütün siyahısı Bir verilənlər bazası sizin üçün,
və indi yalnız int ilə gedək.
32-bit dəyəri, mən deyil Mən real düşünmək
daha 4 milyard gedir Mənim hesabına istifadəçilər, mənim xidmət,
Mən hərəkət saxlamaq üçün gedirəm növbəti sual üçün.
Mən müəyyən etmək fikrində deyiləm bir uzunluğu və ya dəyərlər,
Bu tətbiq deyil burada int, özlüyündə.
Və indi, belirtebilirsiniz yəqin, bir-u mənim
Mən müəyyən etmək fikrində deyiləm olan dəyər.
A üzləşdirilməsi, mən nə bilmirəm.
Bir atributu.
İndi biz, həqiqətən, bir dizayn qərar var.
Belə ki, bütün burada bir neçə sahələri var olan tətbiq, lakin imzasız var
yalnız nə deməkdir?
Bu int olmalıdır?
Yalnız qeyri-mənfi.
Belə ki, up 0 olmalıdır.
Xeyr, çünki yoxlamaq fikrində deyiləm Mən hər bir istifadəçi ID etmək istəyirsinizsə,
Bu null ola bilməz.
Və sonra, biz bir daha almaq bu kimi maraqlı dizayn qərarları.
Biz, bir anda bu qayıda bilərsiniz verilənlər bazası, lakin nə bir xüsusiyyət
, siz deyə bilərsiniz ki, verilənlər bazası server davam
və özünüzü optimize, sizin RAM və sabit disk space,
ki seçir, və edər və belə silir və yenilikləri həqiqətən sürətli.
Pset5 bu fərqli.
>> Əgər bir şey axtarmaq istəyirdi əgər Sizin hash masa, olan
Bir bazası kimi hesab bütün etmək olan
Sizin hash table sürətli edilməsi üçün çalışırıq.
Bu, açıq-aydın, kimi var.
Right?
Siz bütün vaxt cərimə qoymaq idi bir hash funksiyası əldə şeyi tuning
sağ, həyata necə figuring çox buketler var.
>> Amma, yenə də, gözəl nə var haqqında məlumat bazasıdır
Yalnız bütün ayaqla zərbə digər insanların bu
bu fikir nə üçün vasitəsilə və
Mən bura demək gedirəm index mənim ID sahədə ki
əsas yol olacaq Bu bazasında istifadəçilər müəyyən.
Mən hesab edirəm fikrində deyiləm Zamyla kimi Zamyla ki,
Mən hesab edirəm gedirəm onun sayı 6.
>> Niyə, bəlkə də, daha yaxşı edir daxilən və model hesab
istifadə edərək, fərdi satır əvəzinə bir şey bir sıra
Bu Zamyla kimi bir string kimi Gabe və ya hələ uzun string və ya?
Bəli?
>> Auditoriya: bir ID nadir?
DAVID J. MALAN: yenə De?
Auditoriya: bir ID nadir?
DAVID J. MALAN: An ID unikal, lakin suppose--
Ümumi halda istifadəçi adı ilə, güman
Mən də yalnız ola bilər bir Dünyada Zamyla, və yalnız bir Gabe.
Mən unikallığı tətbiq edə bilər Mən istəyirdim, çox strings sıxıntı.
Belə ki, bir pis fikir.
>> Auditoriya: Daha təhlükəsiz.
>> DAVID J. MALAN: Daha təhlükəsiz, niyə?
Auditoriya: Siz deyə bilməz istifadəçi kimi olan.
DAVID J. MALAN: OK, siz istifadəçi deyə bilməz
belə bir var olan bu gizlilik aspekt,
xüsusilə də əgər kimlikleri bəlkə URL görünen.
Belə ki, əmin ki, iş cür ola bilər çox.
Digər fikir?
Bəli?
>> Auditoriya: Bu asan bir int əməliyyatları yerinə yetirmək.
DAVID J. MALAN: Bu real soncuqlayan var.
Bu, yalnız daha səmərəli və ya kompüter üçün asan,
tam əməliyyatları yerinə yetirmək üçün.
Right?
Bir int təmin olunur 32-bit ola Zamyla isə
, Gabriel bir neçə simvol uzun , bir neçə simvol uzun
Davenport həqiqətən uzun, və belə ki, istifadə etmək, xüsusilə səmərəli deyil
strings dəyərləri müqayisə və baxmaq sahələri, və yeniləmə sahələri üçün,
Əgər üz əldə edə bilərsiniz yalnız bir tam olan.
Just 32 bit.
Istifadəçi Belə ki, çox, bu yolla, unikal yoxdur,
Onlar yəqin ki, olmalıdır, baxmayaraq ki, və hətta bu şəkildə çox
istifadəçi icazə bilər onun adı dəyişir.
>> Belə ki, indi kimi bu tərk edək istifadəçi müəyyən əsas vasitədir.
Bu verilənlər bazası danışanlardan irəli getmək və özünüzü optimize
belə ID ki look up super sürətli.
AI, horribly yalnız adına Auto artım deməkdir,
və bu çek edir biz yoxlamaq lazımdır qutusu
üçün ID sahəsində ki, müəyyən etmək avtomatik mənim üçün satıcı tərəfindən aydınlıq olmalıdır,
və sonra mən gedirəm burada sağa diyirləyin
və səmimi Mən, həqiqətən maraqlı deyiləm Bu sahələrdə hər hansı bir daha.
Əlbəttə bu gün.
>> Mən burada geri getmək üçün gedirəm, ilk sütun, harada
Mən istifadəçi adı daxil lazımdır və hash, və edək
üzrə ən mərkəzində İndi ikinci.
Int yəqin ki, doğru zəng deyil, belə ki, nə, bəlkə daha çox əhəmiyyət kəsb edir?
>> Auditoriya: Text.
DAVID J. MALAN: yenə De?
Auditoriya: Text.
DAVID J. MALAN: Text?
OK, Mən mətn eşitdim.
Nə?
Biz növ seçim bir dəstə var təbiət mətn var.
Belə ki, və nə, nə Bu bəzi istifadə?
Char Yaxşı, əksinə nə bilər hesab edirəm ki, bir xarakter deyil.
Bu simvol bir xüsusi sayı var.
Biz bilirik ki, bütün istifadəçi adı ki səkkiz simvol kimi olmalıdır,
older ümumi olmaq üçün istifadə kimi kompüter sistemləri, mən char demək bilər
və sonra mən burada 8 deyə bilər.
Üçüncü sütun olur zaman var tətbiq bir masa yaratmaq zaman.
>> Amma ki, annoying cür bəzi insanlar ola bilər, çünki
uzun adı var istəyirəm səkkiz simvol çox,
bəzi insanlar istəyirəm bilər qısa adı var,
niyə özümü törətmək müəyyən bir sıra?
Niyə bir dəyişən var chars sayı və yalnız
demək ki, bir adı maksimum uzunluğu , mən 64 simvol kimi, bilmirəm.
Mən heç bir dostları hesab edə bilməyən 64 simvol çox adları artıq var,
çox qısa belə və siz əlbəttə özbaşına onu qabar.
>> Belə ki, VARCHAR dəyişən deyil chars sayı.
Mətn pis instinkt deyil, və səmimi ki, sort deyir nə,
lakin mətn sahəsində ola bilər ən azı 65,000 bytes kimi.
Ki, bir yəqin overkill sahəsində və əslində, yup, 65.535.
Ki, bir yəqin overkill adı, belə ki, biz adətən, qalmaq lazımdır,
Mətn varchars ilə çox sahə və hash.
Hash, bu çıxır, biz nə edə bilər VARCHAR həmçinin ya kimi bir şey,
lakin biz bu gün diqqət deyil orada kriptoqrafiya və nömrələr
biz, həqiqətən bilər ki, uzunluğu üçün istifadə etmək istəyirik.
>> Amma mənə sağ üçün aşağı diyirləyin bildirin.
Siz yalnız bir ola bilər bir masa üçün əsas indeksi,
amma bu hər hansı müraciət etmək istəyirəm, İndi, istifadəçi adı, siz deyəcəksiniz?
Nə istifadəçi adı lazımdır anlaşılmaz əsasında Bu dörd variantları verir?
Məhz onların adları?
>> Auditoriya: Unique.
>> DAVID J. MALAN: Belə unikal, sağ?
Belə ki, yalnız bilər çıxır ki, Siz əvvəlcədən, bir verilənlər bazası demək
Bu əsas yoldur sahələri müəyyən.
Siz həmçinin bu demək olar unikal sahə olacaq.
Bu olmaq niyyətində deyil Mən etibar şey,
amma bazası istəyirəm mahiyyətcə ki, əgər vəziyyət belə var
Mən heç qeydiyyatdan cəhd əgər Eyni adı ilə iki users,
Verilənlər bazası düz Mənə imkan niyyətində deyil.
Mən bəzi əlavə kodu ola bilər qədər qarşısını PHP,
lakin verilənlər bazası, çox, təmin edə bilər heç vaxt baş verəcək ki.
>> İndi bir kənara, xüsusilə kimi Siz final layihələr haqqında düşünmək,
mind indeksi və tam saxlamaq mətn əslində olduqca faydalıdır.
Bir böyük verilənlər bazası, deyil varsa, onlarla, lakin yüzlərlə və ya minlərlə
sahələrində və ya hətta milyonlarla Siz də əvvəlcədən məlumat bazası demək
mən gedirəm bir sahədir bir çox axtarış üçün.
Bəlkə onun adı, değilseniz bəlkə bio var
Facebook kimi veb edilməsi istifadəçi icazə bəndlərə var
Əgər istəyirsinizsə saxlamaq, və əvvəlcədən məlumat bazası demək
Mən bu sahədə axtarış gedirəm bir çox, lakin bu, mütləq unikal deyil
Mənə bir index yaratmaq belirtebilirsiniz.
Və ya, siz də demək mənə imkan bilər Komandirliyi kimi ixtiyari axtarış sort
və ya Control F, sizin kimi bir Word Processor bilər,
belə ki, ixtiyari strings baxmaq bilər Bu sahədə və ya substrings.
Başqa sözlə, biz əldə edirik dövr baxımından
siz narahat yoxdur necə səmərəli şeyi həyata keçirmək.
Siz yalnız haqqında bilmək lazımdır nə dizayn qərarları belə edirik ki etmək
Bu üçün doğru araçları istifadə xüsusiyyətləri leverage üçün ticarət
digər insanlar üçün tikilib.
Belə ki recap, əsas yalnız olmalıdır bir var, yalnız, bir ola bilər
və bu törətməkdə etdiyiniz şey benzersiz sahələri müəyyən etmək üçün istifadə.
Unikal, ruhu yalnız oxşar, lakin Siz yalnız bəzən istifadə edə bilər,
ancaq bazası onu tətbiq etmək istəyirəm.
Index yalnız preemptively deməkdir Gələcəkdə şeyi sürətləndirmək
Mən üçün axtarış edə bilərsiniz, belə ki, Bu sahədə şeylər.
Və sonra tam mətn üçün adətən ci maddələrdə və ya oçerklər, və ya böyük orqanları
harada mətn həmçinin isteyebilirsiniz
ulduz ekvivalent kimi vəhşi kartları.
Right.
>> Belə ki cür idi bir dəfə bütün bir çox.
Biz çəkmək mümkün olmadıqda nin görək Bu xüsusiyyətləri bir neçə
və sonra bir şey qurmaq kifayət qədər sadə, lakin güclü.
Digər arasında belə dizayn qərarları sen
nəticədə boyunca var gedir storage motorları xətləri.
Və mənə yalnız bu qeyd edək son layihələr ərəfəsində,
və gözləyiş edək demək heç bunu edək.
Bu kiçik inşa edək ilk proqram.
Mən terminal getmək üçün gedirəm pəncərə və burada deyil
yalnız counter.php, indi biz olacaq olan kimi artıq ilgili qurtarmaq üçün,
lakin biz bütün dəstə var rehberler və bu
ruhunda çox oxşardır olacaq Əgər problem görmək lazımdır nə üçün yeddi seçin.
>> Beləliklə, biz üç rehberler var ictimai və şablonları daxildir
dəqiq biz off sol Bizim bütün MVC paradiqma ilə Bazar ertəsi.
Və recap, ictimai getmək gedir Mən istifadəçilər istəyirəm ki, hər hansı bir fayl, həqiqətən
v ziyarət edə biləcəklər URL vasitəsilə browser.
Şablon.
Biz şablonları nə qoymaq idi?
Stuff hansı?
Yox idi çox, lakin bir neçə bazar ertəsi azı faylları.
Bəli.
>> Auditoriya: Header və Footer?
>> DAVID J. MALAN: Header və Footer.
Beləliklə, biz bu gün də oxşar bir şey var.
Biz bir neçə faylları var, lakin Footer Mən görürəm Mövzu görmək
və sonra digər faylları bir dəstə.
Belə ki, bu bərabərdir olan V MVC baxımından, bu,
yenə olacaq bir az daha problem aydın, yeddi müəyyən
lakin bu mən yalnız bir qovluq Mənim estetik bir çox qoyaraq.
Mənim HTML, mənim formaları bir çox var.
Eyni zamanda, daxildir, başqa Bu üç faylları var ki, kataloq
və-nin bu bir sürətli nəzər salaq.
>> Mən irəli getmək üçün gedirəm və config.php açmaq.
Bu, çox çıxır kimi müddəti əvvəlki kimi,
Siz kəskin daxil Pset7 ilə CS50 dot h.
Bugünkü Məsələn, siz olacaq ki, bərabər etmək
bir tələb bəyanat ki, səmərəli
Bu bir neçə xətləri daxildir.
Belə ki, aydın olmaq, bu bir fayl config.php çağırıb.
Və bunu nə görürsünüz.
Bu yəqin bir şey edir sirli, dönüş səhv messages
Siz browser onlara görə bilərsiniz ki.
Bu yəqin, sonra var digər iki faylları tələb
bu, C # daxil kimi və sonra biz gördünüz bu,
və biz istinad etdiyiniz bu çevrilir funksionallığı kimi ki, alış-veriş sepeti.
>> Bu cookie deməkdir geri və irəli göndərilir.
Belə ki, niyə bu maraqlı deyil?
Bəli, biz bu geri getmək əgər kataloq və məsələn, açmaq,
constance.php.
Qeyd edək PHP dəstək sabitləri ki, kifayət qədər C. # müəyyən kimi deyil
Əksinə, siz sözün müəyyən deyirəm, və bildiriş
Mən əvvəlcədən saxlanılır etdik ki, Bu fayl dörd sabitləri.
Bugünkü verilənlər bazası üçün bir üçün Mənim parol, mənim istifadəçi adı üçün,
və server adı.
Belə ki, bu əslində olacaq problem olduqca oxşar yeddi seçin.
Və nəhayət, bu mən harada bəzi gözəl funksionallığı almaq üçün gedir
heyəti, functions.php biz yazdıq kodu bir dəstə edir
Mən bu bəzi çaldı problem yeddi müəyyən olan
Bu gün üçün, ki, hər şeyi bir dəstə edir və yalnız onlardan biri baxaq
xüsusilə.
Burada bu funksiya, sorğu, olacaq
biz deyirik PHP funksiyası SQL icra etmək üçün.
Bir an əvvəl istifadə edirdilər phpMyAdmin, lakin ki, yalnız var
tədris məqsədləri növ üçün və diaqnostik məqsədlər
və verilənlər bazası set unutma.
Zaman həqiqətən istifadə edin verilənlər bazası, siz insan,
açıq-aydın niyyətində deyil Bir web çəkərək olunacaq
səhifə hər dəfə kimsə qeydə.
Siz kod yazmaq olacaq ki, edər və tələb istifadəçilər silir,
və biz bunu olacaq sorğu funksiyası yolu ilə.
İndi aşağı diyirləyin əgər var bir neçə xüsusiyyətləri olacaq.
Yönləndirmə gedir biz yazdığı bir funksiyası olacaq
sizin üçün imkan verir Başqa URL istifadəçi göndərmək,
və göstərmək olduqca kimi, bir funksiyası biz, həqiqətən göstərir ki, bazar ertəsi gördüm
şablon, lakin daha bu barədə vasitəsilə pset7 öz gəzmək forması.
Indi üçün, irəli getmək və bunu bildirin.
>> Mənim mühazirələr masa daxil edək və Hal-hazırda heç bir şey yoxdur ki, görəcəksiniz
burada yalnız hələ, və mənə də gedək Mənim ictimai kataloq, harada
Yalnız bir fayl index.php var.
Bu fayl super sadə görünür hazırda, yalnız bu kimi görünür.
Çox necə kimi biz bazar ertəsi off sol.
Mən bu fayl tələb edirəm olan config.php,
bir kataloq daxildir dot dot, mənim valideynlər,
və sonra yalnız bu fayl göstərilməsi oldu.
Belə ki, bu fayl nədir?
>> Mənim şablonları açmaq edək form.php, və biz bu görəcəksiniz.
Super sadə, yəqin bu forması Bir $ _GET və ya $ _POST tərəfindən təqdim gedir.
Tez ağlı başında olma çek.
Sanki vizual fayl axtarış.
Metod post bərabərdir.
Belə ki, kimi, URL istifadə etmək niyyətində deyil Google saxla sort olacaq, yoxdur
arxasında məlumat pərdə və bu
bir təqdim etmək niyyətindədir register.php adlı fayl,
ki, fayl biz hələ yazılı deyil
lakin nə bu gedir bu kimi baxmaq.
>> Mən ayrıca səhifə getmək Əgər bu nə localhost / index.php kimi görünür.
Və yenə, serverin yalnız index.php fərz.
Daxil edin.
Biz olduğunuz Belə ki, at, və mən nə istəyirəm
şeyi yazın edə olunur Davud kimi, və sonra
Mənim telefon nömrəsi, buyuracaqdır İndi 617-555-1212, qeydiyyatdan
və indi register.php tapılmadı.
Mən bu həyata lazımdır.
Belə ki, tez qızışdırmaq bildirin Bu up kimi bir şey.
Mənim ictimai kataloq daxil edək və register.php və gedit etmək,
və indi irəli getmək üçün gedirəm və Biz bazar ertəsi olduğu kimi, PHP rejimi başlamaq,
və yaxın PHP tag, və nin şeyi bir neçə nə edək.
>> Belə ki, bir, mən bilirəm, formada yazılı,
Mən aşağıdakı kontrol etmək istəyirəm ki.
Bu boş, nə istifadəçi sonra adı sahəsində tipli
Mən bir şey demək gedirəm kimi ad itkin üzr.
Eyni zamanda, bu, üzr deyil PHP şey inşa,
biz yazırdı bir funksiyası var pset7 üçün functions.php
ki, bunu etmək imkanı var.
Digər sahə əgər Else boş, sayı, sonra mən
Bu üzr gedir istifadəçi və itkin sayı deyirlər.
Bu fayl saxla.
>> İndi mənim brauzerinizin geri gedək, daha cəhd geri forum getmək.
Qeydiyyat.
OK.
Heç yaxşı olan oldu.
Mən bir səhv mesajı almaq etməyib.
Ancaq əvəzinə, əgər bu yenidən bildirin səhifə və bir şey təmin.
Bu Lanet olsun.
Bunu.
Qeydiyyat.
Mən yanlış nə idi?
Boş varsa, $ _POST adı.
Daha demək?
>> Oh, əlbəttə.
Mən ən mühüm hissəsi, unuttum olan ("../ / config.php daxildir.") tələb edir.
Mən daxil olmaq lazımdır , funksiyası üzr diləyirəm
heç bir şey baş nə.
Funksiyası faktiki olaraq mövcud deyil.
Belə ki, yenə bu cəhd edək.
Nin səhifəni edək, Qeydiyyat basın.
OK.
Orada deyil.
Belə ki, çıxış deyilik burada görən nəticə
bir üzr bir zəng funksiyası, super sadə,
və yalnız çap hər hansı Mən bir arqument kimi verir.
>> Bütün hüquqlar, belə ki, əməkdaşlıq edək.
Mənim ad təmin edək Davud kimi, qeydiyyatdan,
sayı OK edək itkin də ki, təmin edir.
617-555-1212.
Qeydiyyat.
OK.
Belə ki, bütün, indi də yalnız bir şey deyil maraqlı olur.
Belə ki, indi daha çox şey edək maraqlı bu kimi baş verir.
Mənə phpMyAdmin daxil edək və edək həqiqətən, istifadəçilər adlı bir masa yaratmaq
Mən üç vermək gedirəm sütun, və mən tez lazımdır
sonra ID yaratmaq və adı, və sonra sayı,
və şəxsiyyət sahə Ben bir int kimi tərk etmək niyyətindədir.
Mən gedirəm adı sahə bir varchar kimi tərk etmək,
və biz bir qədər özbaşına, 64 demək lazımdır.
Mən gedirəm sayı etmək üçün, siz nə bilirik?
Biz daxil olacaq burada ABŞ nömrələri dəstək,
mən bir şey gedirəm char kimi və sonra 10 simvol
bir sahə kodunu max sonra yeddi rəqəm.
Və sonra burada, mən gedirəm avtomatik artım bu sahədə müəyyən
Bu ilkin əsas, və Mən irəli və getmək üçün gedirəm
digər qutuları hər hansı bir kontrol.
>> Mən indi nəhayət Saxla basın zaman, və mən istifadəçilər masa geri
Bu əgər kimi görünür nə mən İndi Yeni Tab strukturu basın.
Belə ki, bu, aydın olmaq yalnız phpMyAdmin yoludur
verilənlər bazası masa deyərək ID, adı, və bir sıra
xüsusilə konfiqurasiyaları ilə və biz sahələrində qalan ignore bilərsiniz
orada indi.
>> Belə ki, indi mən nə istəyirəm?
Mən daxil indi getmək əgər Belə ki, mənim mənbə kodu, bütün yaxşı, əgər
Mən aşağıdakı sorğu icra etmək istəyirik.
Daxil, və mən yalnız bilərsiniz Istifadəçilər ciddi deyil demək
bu həmin geri ticks lazımdır istifadəçilər kimi bir təhlükəli söz.
Mən adını demək gedirəm, sayı, və sonra burada Ben
ağır kodu niyyətində deyil hələ dəyərlərin rəqəmli.
Mən iki sual işarələri qoymaq üçün gedirəm.
Və bu konvensiya çox dillərdə
qovuşdurmağımız etmək istəyirsinizsə bir string üçün tutucu
Siz sual istifadə etmək olacaq nişanları, səbəblərə görə biz will
haqqında söhbət geri gəlmək təhlükəsizlik və burada
Mən o keçmək gedirəm iki sahələri adı göndərmək,
və sonra, sıra göndərmək və indi faylı qeyd edin.
>> Və indi mən gedirəm super burada enmək
sadəcə rendersuccess.php, demək olan başqa bir şablon olacaq.
Mən, həqiqətən, sürətli yaratmaq üçün gedirəm.
Geditsuccess.php və mən yalnız gedirəm ki, fayl H1 müvəffəqiyyəti demək.
Bütün hüquqlar.
Belə ki, indi də geri gedək Mən əvvəl ziyarət etdi browser.
Nin irəli getmək və mən yazıb təsdiq Davud, mən, bir telefon nömrəsi yazdı
qeydiyyatdan keçməlisiniz.
Bu Lanet olsun.
Mən yanlış nə idi?
Mən, burada bir səhv görən deyiləm Sizin SQL syntax bir səhv var.
Mənə geri gedit jump edək, qoy Mənə register.php geri
və mən ki, nə buraxmaq idi mühüm son dəfə idi?
Mən bu lazımdır.
Siz çox digər bilmək istəyirəm olan əvvəl qeyd, amma bu lazımdır.
>> Belə ki, indi geri gedək, və bu brauzerinizin görmək üçün faydalı oldu
və niyə config.php var biz səhvlər tüpürmək.
Nin irəli getmək və yenidən bildirin Davam uğur basın.
Belə ki, indi mənə üzərində gedək mənim burada bazası və istifadəçi basın
və göz və indi mən qeyd burada mənim bazasında David var.
İndi texniki bu haqqinda hələ ictimai internet,
mən başqa ola bilməz burada qoyaraq insanlar,
amma indi üçün, istəyirdi instansiya, özümü mətn mesajı göndər.
Burada bir əza üzərində getmək edək Bu həqiqətən işləyir görmek.
Mən irəli getmək üçün gedirəm və bu sıra silmək
və biz bu blur lazımdır video həyata sonra
belə ki, biz yoxdur Bütün internet məni texting
və indi qədər davam edəcək browser və biz mühazirə artıq getmək lazımdır
və biz müxtəlif yazın lazımdır sayı, burada, uğur qeydiyyatdan keçin.
>> Belə ki, indi, öz nömrəsi ehtimalla var verilənlər bazası, və indi əyləncə hissəsi.
Nin həqiqətən nə PHP istifadə edək bir şey program,
ya komanda line və ya başqa bir yerdə,
və indi mən yalnız deyiləm sadə saxlamaq niyyətindədir
və mən getmək üçün gedirəm mənim burada kataloq və aşağıdakı.
Gedit script biz will, deyək , mətn, #! / user / bin / env PHP zəng
kimi biz sonuncu dəfə gördüm.
PHP.
>> İndi tələb yoxdur gedirəm config.php daxildir,
hətta bu gücü olsa yüngül səhv bişirmək.
Və indi mən irəli getmək və demək gedirəm istifadəçilər satır, sorğu, seçin star,
və indi burada bir texnika gedirəm sıra kimi hər satır üçün son dəfə.
Mən sadə bir şey üçün gedirəm.
Adı bu deyək printf, və sayı bu backslash n.
İndi keçmək gedirəm sıra, dırnağı bağlamaq adı sitat
və sıra quote dırnağı bağlamaq sayı, və indi-nin irəli gedək
və mənim terminal pəncərə chmod bu + x etmək
Mətn yürütülebilir adlanan bu script.
İndi mətn run bildirin.
>> OK, belə ki, tərəqqi.
Mən indi yazdıq command line script,
ki, PHP adlı dilində, ona görə ki, xətti tələb
bütün konfiqurasiya çıxışı var Mən ifadə sabitləri.
Verilənlər bazası və s adı.
Əslində, yalnız aydın olmaq bu bir fluke deyil ki,
Mənə davam və qeydiyyatdan imkan Rob kimi başqa həqiqətən sürətli, kimsə
və ona 555-1212 sayı verəcək.
>> İndi, mən script run əgər yenə güc hiss
biz bazası ilə işle.
İndi dərhal gördüm nə Digər iki satır mənim bazası var.
Belə ki, indi bir şey edək daxilində daha meraklısı,
bu biz hissəsidir əvvəlcədən test deyil,
belə ki, son dəfə bunu şeylər, horribly əyri getdi
ki, təsiri video var.
>> Əslində, yeah, funny kənara.
Sonuncu dəfə belə bir iki il əvvəl kimi mühazirə,
olmaq, mən qərar, qərar bütün bu böyük bir fikir olardı
dinamik e-poçt yaratmaq üçün sinif, bütün verilənlər bazası CS50 istifadə
Bizə onların verdiyi tələbələr, və onların telefon daşıyıcıları olan sizə
pset0 xatırlayıram bilər, bu çıxır, səbəb necə
Mən proqram kiçik bir səhv var idi və 2012-ci ildə bir neçə səhvlər etdi, mən hesab edirəm.
>> Vasitəsi, mən loop üçün ki, şey məhz bu cür etdi
verilənlər bazası üzərində iterating, bazasında bir ad almaq,
hər sonra verilənlər bazası adı, və ki, loop iteration bir e-poçt göndərdik.
Amma əvəzinə bir e-poçt göndərmək, I bir e-poçt ilk iteration göndərdi,
iki e-poçt ikinci iteration göndərdi üç e-poçt ikinci iteration olan
Siz geri bilər bizim asimptotik notation müzakirə
n kimi pis bu böyük O, kvadrat Mən göndərdi necə çox mesaj var
lakin hətta e-poçt deyil Bu mətn mesajları idi.
>> Bildiyiniz kimi, olmayıb deyil sonunda semestr doğru super yüksək
və mən bu cute olacağını düşündüm zaman "Niyə siz sinif deyil?" demək
Mətn mesajı I bütün sinif göndərilən,
və 50% kimi gülməli idi sinif, lakin digər 50%, onlardan bəziləri
çıldırdı, i inanılmaz göndərdi üzr şirin notlar
heyəti üçün üzr üçün mühazirə buraxılmış edərək yalnız
bu dəfə, sağ?
>> Belə ki, horribly əyri edirik.
Ki, ruhunda Belə ki, bu cəhd edək yenə lakin yalnız mənim sıra.
Öncə functions.php, Mən burada bu funksiyanı yazdıq.
Bu mətn adlanır və bu oldu üç dəlilləri edir.
Bir sıra daşıyıcı, və bir mesaj.
>> Mən bir keçid şərh kullanıyorum hansı gözəl PHP, yalnız strings almaq
integers, və mən həyata etməyib hələ bu üçün bütün dəstəyi,
Mən yalnız AT & T və Verizon etdik.
Bu çıxır, çünki Bu daşıyıcıları ilə
onlar SMS şlüzlər e-poçt qovuşdurmağımız həqiqətən bilərsiniz
bir ünvana e-poçt göndərmək vtext.com da telefon nömrəsi kimi
və istifadəçi blok əgər mesajları, onun vasitəsilə getmək lazımdır
mətn mesajı.
>> İndi bunu, mən əlavə etmək üçün gedirəm Mənim bazasında həqiqətən sürətli bir sahə.
Mən getmək üçün gedirəm Mənim strukturu və mən
irəli getmək və bir əlavə etmək üçün gedir Cədvəlin sonunda sahəsində.
Nin Go basın edək və mən bu daşıyıcısı zəng gedir
və indi mən gedirəm Bir bar mətn kimi bu tərk,
lakin biz gələcəkdə meraklısı ola bilər.
Mən tez getmək üçün gedirəm mənim stolüstü, və mən
Rob qurtarmaq üçün gedir, ki, bir saxta çünki,
Mən burada redaktə getmək üçün gedirəm və mən əl mənim daşıyıcısı dəyişdirmək üçün gedir
Verizon, olmaq üçün onu və indi burada bitdi.
>> Tez ağlı başında olma çek edək.
Bizim mətn script, açmaq imkan olan bu kimi görünür, daşıyıcı% s.
Biz daha çox səhv edirik Mən 2012-ci ildə daşıyıcısı daha yoxlanılması.
Və indi mən getmək üçün gedirəm irəli və script yenidən axır.
OK.
Carrier deməkdir Verizon edir İndi ümid edirəm ki, yalnız bu edə bilərsiniz.
Düzgün bu il, ümid edirəm ki, burada biz gedin.
>> Belə ki, loop üçün bu daxilində, mən bu printf üçün yalnız gedir,
Mən də mətn zəng etmək üçün gedirəm və bu funksiya geri istifadə
idi bir, bir sıra edir daşıyıcı, və bir mesaj.
Belə ki, görək, sayı gedir sıra quote dırnağı bağlamaq olacaq "sayı"
sıra quote dırnağı bağlamaq "gəmisi" və son bir mesaj idi.
Bu il nöqtəli vergül qıymaq etməyin.
>> OK.
Fingers keçdi.
Bu işləri nin görək.
Bütün hüquqlar, belə.
Burada biz gedin.
Nin Telefonun kilidini açmaq edək, Sizin barmaqlarını keçməyə, Lanet olsun.
Undefined dəyişən may-- oh real sürətli, gözləyin, gözləyin.
Real sürətli, real sürətli.
Bu, tamamilə bu dəyər.
Mənə uh-oh, işğalçı qoy, məni qapmaq edək.
Mətnlər var, təşəkkür edirəm başqası başladı.
Mənə irəli getmək və real açmaq edək Burada sürətli, dropbox.php / mail.
Adi.
Tamamilə bu dəyər.
Downloads.
OK, mənbə src8m.
OK.
>> Burada daha bir xətt lazımdır.
Oh orada bu Frosh var ki, Ani, bu üç reyestrinə var.
Salam Oh, Margo, çox təşəkkür edirəm.
OK, mən burada bu xətt itkin edilmişdir.
Mənə tez işğalçı izlə kodu bu xətt,
olan poçt və ya kitabxana daxildir Mən, həqiqətən, istifadə etmək istəyirəm ki,
Mən tez gedirəm funksiyaları geri getmək,
Bu üst getmək üçün gedirəm fayl və həmçinin bu faylı tələb,
və indi mən, həqiqətən keçməyə gedirəm mənim Mən komanda geri getmək zaman barmaqları
daxilində olan line script, Bu gün yerli host directory.
Run mətn.
Daxil edin.
Mail.
Adi.
Mail.
OK, Oh.
Burada biz gedin.
>> Mail yeni PHP bir poçt alır.
Mən bu hüququ mi?
Bu Lanet olsun.
Gözləyin, gözləyin, gözləyin, oh To--.
Tərəfindən seçilir.
Mən bu söz belə dəyər olacaq.
Ünvan.
Mən etmək niyə bu Sağ sinif əvvəl nümunələri.
Uf.
Aşağıdakı alanlar bilmədi.
Son bir şey cəhd edək.
Ünvanı əlavə set SMTP, Ünvan həqiqətən edir.
Ünvanı bu son hissəsini cəhd edək.
Aw, mən indi həqiqətən kədərli deyiləm.
Təşəkkür edirəm.
Amma həqiqətən bütün təşəkkür mətnlər göndərilməsi etdik.
Bu David var.
Siz əsən edirik.
Orada onu tərk edək və Biz bazar ertəsi düzeltmek edəcək.
Sonra baxın.
>> Daven FARNHAM: İndi Deep Daven Farnham tərəfindən düşüncələr.
Ikili ağac meşə düşür varsa və heç bir C it-- [chuckling] ətrafında.