[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. 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.