[MÜZİK OYUN] DAVID MALAN: Bu CS 50, ve bir Bu haftanın dokuz başlangıcıdır. Ve ne bugün ne düşündüm değil Sadece geçen hafta en bölümüne yakın Biz sunucu üzerinde duruldu malzeme PHP ve SQL ile yan web programlama, bazı veritabanı şeyler. Biz biraz bahsedeceğiz Güvenlik bugün ve sonra Bir istemci tarafı programlama geçiş JavaScript olarak bilinen dil. Ama önce, bazı itfa. Siz bu konuda hatırlayamaz Çarşamba, ben yola Bir web sitesi yazmak için bu Kullanıcının girişi aldı Bir HTML ile o zaman saklanan formu bu kullanıcı giriş adları, telefon sayılar, ve cep telefonu Veri taşıyıcısı. Ve sonra ben biraz komut vardı çizgi PHP ile yazılmış Bu yineleme gerekiyordu veritabanında satır üzerinde ve metin mesajları göndermek. Birkaç birkaç girişimlerine rağmen, biz sonuna kadar bu çalışma alamadım. Yani çalışan tüm bu hafta geçirdi Bu kodu noktadan bizi almak için Biz bıraktığımız yerden, bu sayede tüm Ben Çarşamba sonunda aldım Bu metin mesajı oldu Ben mücadele gibi Margo gelen Başka bir metin mesajı ve ardından sınıf arkadaşı, bu David var. Bu birin izlediği, harika cesaret verici. Gidiş devam etti, çok yüreklendirici. Neredeyse zaten-- kadar var ve biz Çarşamba günü sona eren bir not. Ve sonra, aslında belki de benim en sevdiğim, Bir an sonra, bu geldi. Lanet Akışı Canlı. Yani bugün biz bu hızlı ile düzeltmek Ben beri yaptığına bak. Yani bu kod tüm kullanılabilir Online Geçen haftaki hafta sekiz itibaren, kaynak kodu. Ve sen, ben geçti görürsünüz ve ben aslında biraz şeyleri temizlenmelidir. Ben birkaç diğer tanıttı Bir SQL veritabanı özellikleri. Örneğin, yerine sadece var char taşıyıcı yapmak Bence ben geçen hafta anında yaptım. Ben bunun yerine olarak tanımlanır ne bir enum denir. Ve bazılarınız bu görmüş olabilir biz keşfedilmeyi C. Enum aslında C özelliği yapabilirsiniz sabitler bir sürü numaralandırmak ve otomatik değerler atamak, bir, iki, üç, dört gibi Sert kod numaraları gerek kalmadan. Yani SQL suretle eğer aynı destekler Eğer bir veritabanı alanı var sadece sonlu birinde almak istiyorum değerler, tam anlamıyla bunu belirtebilirsiniz Ben dört orada yapmış gibi popüler ABD cep telefonu taşıyıcıları. Ben yaptım. Ve ben bir dizi değişiklik yaptı iyi, en önemli olan E-posta hatırlama nedeniyle çalışma almak oldu, Bu programın hangi dayanıyordu genellikle bir e-posta çağırdı Sadece bir SMS ağ geçidi, Bu Verizon söyleyerek bir fantezi yolu, ve AT & T, ve diğer millet, bir sunucu desteği bu sayede o alırsa E-posta, SMS onu dönüştürür ve bir metin gönderir Birinin telefonuna mesaj. Ben doğru yaptım Yani, Burada, yeni ve geliştirilmiş bir şeklidir Bu konuşmaya gidiyor yeni ve geliştirilmiş bir kod, hangi Eğer çevrimiçi oynayabilirsiniz. Ve umarım yapacak benim Sadece bir an telefon bip. Yani ilk ben ismimi yazmak için gidiyorum. İkincisi, ben gitmiyorum bu sefer yapmak için. Ben Elemanı kontrol edin yapmak için gidiyorum. Ve bu sadece bir olduğunu küçük şey bu yüzden yok post prodüksiyon saat oluşturmak Ben son kez yaptığı gibi çalışır. Şimdi benim telefon numaram var. Ben Verizon seçersiniz. Ve burada, en bu mikrofonu dönelim Burada, ve burada benim telefon bu hedefliyoruz. Ben, Kayıt tıklayın gidiyorum hangi gerekir umarım veritabanına koydu. Şimdi ben gidiyorum komut satırı programı, hangi hatırlama nokta çizgi çağrıldı Metin ve parmaklarınızı çapraz. İşte başlıyoruz. [TELEFON Dings] [Alkış] DAVID MALAN: paha daha Yani daha eğlenceli Ben içine almak eğer, tabii ki, eğlenceli. Ama eğer, ben düşündüm, daha eğlenceli biz Bu film anlardan biri yarattı nerede bir şey gibi gerçekten Kötü, dünyada oldu ve tüm NSA insanlar yıllardan gibi cep telefonları bip başlar metin mesajları ile Bu gerçeği onları uyaran. Yani biz denemek istiyorum düşündüm Burada aynı yeniden, Bir veritabanı kullanarak değil sayede, Bunun yerine önceden Bu gibi görünen bir program yazdı. Bu index.php-- olan ve ben çevrimiçi bu kodu koymak eee edilene görünüşte Sadece, geçip işler MVC tarzı paradigması kullanarak biz Sorun sette daha ayrıntılı konuşmak yedi. Bu formu oldukça basittir. Bir göndermek için gidiyor Posta yoluyla here.php adlı dosya. Ve görünüşe göre sormak için gidiyor Bir isim ve bir telefon numarası için, ve bundan sonra da ile sözde Seç menüsü, bu kadar size en az dört vereceğim popüler ABD cep telefonu taşıyıcıları, ve sonra etkili izin Buraya tıklayarak katılım almak. Ve burada, bu arada, gidiyor son kez kod bazı ödünç. Ve sadece bu yağsız eğer, Eğer var olduğunu göreceksiniz Hata denetimi bir sürü. Ama sonunda güzellik olduğunu Bugün bir veritabanına yazma değiliz. Biz basit tutuyorlar ve Sadece umarım gönderiyor fonksiyonu I yoluyla bir metin mesajı Son birkaç gündür çağrı üzerine yazdı Fonksiyonlar olan Metin,. php, hangi çevrimiçi tekrar kullanılabilir. Bu katılmak istiyorum Yani eğer. Biz bir şey saklamak için gitmiyoruz. Gerçek zamanlı olarak burada bu URL'ye gidin. Henüz gönderin, ama diyelim vermeyin bu filmin birine sahip görmek anlar nerede herkesin cep telefonu başlar umarım sadece bip Bu yılda bir kez farklı 2011 yılında nerede bu korkunç ters gitti. Ve o adrese gitmek kez, Eğer bir süper basit bir form görmelisiniz Bu size bir isim varsa, bir cep telefonu sayısı ve bir cep telefonu taşıyıcının Orada listeyi maçları, go önde ve formu doldurun. Ama basmayın henüz gönderin. Formu bu gibi bakmak için gidiyor. Devam edin ve yazın adınız, telefon numaranız. Oop, birileri ilerisini gidiyor. Tamam. Tamam, herkes formu dolu. Bu çalışması gerekir telefon, istediğiniz de, eğer. Pekala, set olsun senin işaretleri, gidin. Merhaba. Ne? Hayır. Yemin ederim, ben test Bu birden çok kez bugün. Sen var? [SESLER interposing] DAVID MALAN: Tamam, kullanıcı hatası belki de. Bu iki. Bu bir dışarı iki çalıştı yüz, üç, dört birkaçıdır. Tamam, bu iyi. Beş üzerinden dört için nasıl doğruluğunu. Peki ne oldu? Yani muhtemelen, görmeden senin ekranlar, neden Hatalı olabilir? Biz sadece olduğunu muhtemelen Çok sayıda bağlantı yapmaya çalışıyorum tüm Harvard'ın posta sunucusuna bir zamanlar aynı IP adresinden gelen. Ben yaptım çünkü ben sadece tahmin ediyorum test lüksüne sahip Bazı bu kod Peşin 300 kişi ama şimdi fark en azından gerektiği olduğunu Bu defa işi aldık. Pekala, öyleyse neden bu hepsi Neler daha germane? Peki ilk, hızlı duyurular çift. Yani bir, sen Chang katılmak isterseniz, ve Öğle yemeğinde Nick, ve diğerleri bu Cuma, Orada her zamanki URL'den RSVP yapmak. Eğer konsantre düşünüyorsun veya CS ikincil yapıyor, Eğer bir ikinci sınıf öğrencisi olsanız, ya da birinci, hatta küçük ya da bu noktada kıdemli ve hala kurslara sıkmak olabilir, fark mühendislik okulu olduğunu ücretsiz Ben için topluyor ve Jerry'nin dondurma ve danışmanlık Bu Çarşamba kısa bir süre sonra sınıf CS binada 04:00 de Maxwell Dworkin de. Bu çok hızlı olursa Ekranda, sadece gitmek Bir için cs50.harvard.edu için Facebook olayı link nerede daha fazla ayrıntı görebilirsiniz. Bu arada, ben düzeltmek düşündüm bir başka şey Çarşamba günü goofed. Mark'ın kimliği çıkıyor Facebookda üç değildi. Dört oldu. Çıkıyor o daha testi vardı hesapları Hatırladığım daha. Ama bu bir fırsat gibi hissettim yapmak için bu gibi bir URL yukarı çekmek. Yani Facebook, bir sahip çıkıyor API, Application Programming Interface, hangi bir mekanizma sayede sensin programlı veri talep edebilir ve Facebook makineyi geri almak okunabilir bilgiler değil, web sayfaları ama sadece ham metin, bir şey JavaScript Object Gösterimi denir. Ve aslında, eğer ben bu ziyaret URL, ve, varsayılan olarak, yakınlaştırmak Bu halka Mark olduğunu erişilebilir bilgi. Ve ilginç detay Burada sadece onun kimliğidir gerçekten sayı dört, hangi ben en kısa sürede ben bunu olarak gerçekleşmiştir. Eğer biliyorsanız kendiniz yapabilirsiniz Facebook kullanıcı adınız eğer varsa. Sadece orada üst onu yazın. Ve bunların hiçbiri özel olduğunu. Ben sadece bu bile yapıyorum Gizli modda. Yani ben bile giriş değilim. Ve o I görüyorsanız görünüşe göre kullanıcı sayısı 6454 oldu değildir Facebook hakkında bu gün çok kötü. Yani nasıl olsa, sen de görürsünüz Orada ek bilgi. Ve yararlı bir özelliği Bunun sen misin Kendi yazılımı yazabilirsiniz nasılsa bu gibi verilerin entegre Kendi uygulama içine. Kullanıcıların yetkisi olabilir web oturum, kendi özel kullanıcı adı kullanarak değil ve Şifre ama belki kendi Facebook giriş ve hatta bilgi almak onların arkadaşları hakkında, böyle veya benzeri onaylaması durumunda. Yani, çok, o CS50 unutmayın kendi API'leri bazı vardır Tabii katalog verileri için bir, yemek yer sarılmalar menüler için bazı salonları, tüm binalar ve yerler Kampüste biz de bir API var Eğer benzer sorgulamak ve alabilirsiniz Eğer entegre edebilirsiniz arka metinsel veri PHP, JavaScript veya içine, hatta, daha az sıklıkta, bir C nihai proje tabanlı. Aslında öncesinde nihai için Proje bir kaç kilometre taşları vardır. Diğer gün bize bir e-posta aldım. Teklifin fark Bu önümüzdeki Pazartesi kaynaklanmaktadır. Mutlaka bağlama, ama sen değil öğretme arkadaşlarının almak gerekiyor Onay yapmadan önce sonra herhangi bir değişiklik. Ve sonra öndedir bir Diğer kilometre taşları sayısı. Bu yüzden de, seni kızdırmak için, Bazı olanakları ile, biz bir grup var Bu renk ampuller. Ve bazı çocuklar şimdi bazı var senin yurt odasında bu yanı. Ve onlar da bir API var. Yani bu ikili ampuller hafta hatırlama önce Dan Bradley ve Ansel Duff bizim için yarattı. Onlar için bir yazılım arayüzü kullanılmış Bu ampul, şu anda hangi elektrik takılı ve ardından kablosuz aracılığıyla küçük bir şey bağlanır , buraya Köprüsü denilen Küçük bir yönlendirici ANLAMINDA gibi Bu özel cihaz için. Ben nasıl biliyorum Ama çıkıyor Hepimizin şimdi yaptığım gibi, HTTP mesajları göndermek, Ben böyle bir mesaj göndermek Bu ampul veya kapatmak için veya herhangi bir sayı yapmak Bunun üzerine diğer işlemler. O olsun değil ki, o deftere değil dikkat edin. Koymak denilen bir tane daha var. Aslında birkaç diğer tür fiiller var. Ama, bir yol orada olduğunu fark API çizgi yeni bir geliştirici çizgi, devlet çizgi, bir çizgi, ışık çizgi. Bu görünüşe göre sadece var yol bu şirket, Philips, Eğer vurmak zorunda karar verdi HTTP isteği ile Eğer durumunu değiştirmek istiyorsanız HTTP 1.1 kullanılarak ampul. Sonra boş bir satır fark. Ve sonra son olarak ne gibi görünüyor çeşit bir dizi çeşit Bu tekrar çağırdı olacak JavaScript Object Notation, ya da Jason. Ve ne burada görmek olduğunu Üç anahtar değer çiftleri vardır. Bir anahtar denir. Ve onun değerini görünüşte Gerçek olacak. Parlaklık 128, hangi int çeşit. Sonra geçiş zamanı Görünüşe göre, sıfır, o gidiyor ne kadar Bu şeyi açmak için alır. Peki şimdi bu ampul söner. Ben tam olarak yapmak Ama eğer izin bu-- Bana biraz hile sayfasına gidin Dan kurmak olduğunu advance-- ve ben gidiyorum go ahead ve kopyalamak için Aşağıdaki komut. Curl, bazılarınız gibi CS50 üzerinde toplanan olabilir Tartışın Telnet gibi gibi bir yardımcı programdır HTTP isteklerini taklit edebilirsiniz ki, Özellikle koyar. Ben bu veri gönderebilirsiniz, özellikle ne biz sadece önce özel bir an gördüm Burada bu URL'ye. Ve sonra Curl işlemek için gidiyor Gerekli başlıkların hepsi ve orada ayrıştırma. Yani yapmam gereken içine kopyalayın olduğunu Daha sonra bir terminal penceresi ve Enter tuşuna basın. Ve ampul yanar. Ve bu tüm geçiyor Benim bilgisayar kablosuz nasılsa köprü, aşağı hangi Daha sonra bu ampul konuşuyor. Ben başka bir şey yapabilirim. Ben bu şeyi yapabilir Örneğin kırmızı gidin. Örneğin ben yapabilirim Bu şey yeşil gitmek. Ben mavi gitmek yapabilirsiniz. Ve bunların her biri fark örnekleri, ben değiştireceğim tüm Sözde renk değeri için Aslında o biraz renk ver. Bu yüzden bana hem de bu bir yapıştırın verelim. Şimdi mavi. Ve hatta meraklısı yapabilirsiniz şeyler yeşil gidelim Nere. Ve ben bu yapabileceğini Kendi koduyla ders. Ama bile API kendisi korkak operasyonları destekler Bu gibi şimdi hangi rahatsız edecek Önümüzdeki 30 saniye için bize. Yani bir tat ne olabilir var bir API ile yapmak, bu bir içeren ampuller. CS50 bir çift olduğunu unutmayın Google Glass çiftleri şimdi etsen eğer boyunca bir şey mücadele gibi Bu çizgiler Arduino Unos, burada küçük küçük bilgisayarlar, aslında biraz devre kartı üzerinde Bağlanmak ki teller ve diğer şeyler ve aslında kontrol Gerçek dünya çevre. Ve sonra bir çift vardır biz yeni oyuncaklar. Bu bir anlamıyla sadece geldi posta ile diğer gün bir Myo Armband. Ve ben bunun için bir yol olduğunu düşündüm Eğer projeler hakkında heyecan olsun Eğer kullanmak olabilir Bu donanım olur Bu kısa klibi oynatmak için olacak Onlar millet alay için kullandığınız Şimdi gelecekte yaşıyoruz. [MÜZİK OYUN] DAVID MALAN: sadece bir kaç hafta içinde Yani Çok CS50 fuarda bu serin olabilir. Başka bir cihaz ki Biz konum bir grup var projeler için dışarı kredi için mutlu Bir hareket kontrolörü denir. Bu küçük USB aygıtı Bir bilgisayara bağlanmak olduğunu Eğer etkileşim sağlar dizüstü, Mac veya PC, Eğer bir Xbox Kinect gibi oldu sanki ve aslında çok fiziksel hareketleri yapmak gibi biz bu gördüğünüz geleceğin vizyonu. [MÜZİK OYUN] DAVID MALAN: Yani olsa bile hiçbir fikri nasıl böyle bir şey muhtemelen icat veya iş olabilir Bir donanım seviyesinde, hiçbir konuda. Hatta CS50 sadece birkaç ay sonra, ve programlama bir anlayış daha genel ve web programlama daha Son zamanlarda, ve sonra da API'ler, ve HTTP, Eğer üzerinden erişebilirsiniz yazılım API'leri eğer Bunlardan birini ödünç istiyorum cihazlar aslında konuşmak ve endişelenmenize gerek yok altında yatan uygulama tamamen bilgilerini tabakaların bu kavramı ile tutarlı biz ettik bir soyutlama dönem boyunca görülen. Bu yüzden de hafta sonu, haber bir kaç adet gördüm. Seminerlere gidin, ilk git eğer bir şey öğrenmek istiyorum konularda herhangi bir sayı daha. Orada URL'yi bakın. Ve bu gönderildi Bildiğiniz Chang tarafından bana, kim filler ordumuzu baskı var. Aşağıdaki gibi Ve bir başlık oldu. Ben yeni TV korkuyorum. Ben korkuyorum Neden bu açmak için ve size bir şey de olur. Yani biz şimdi konum dönem işaret, çok, nerede olsa bile anlayış ufak Web nasıl çalıştığını ve HTTP, ve bu gibi güvenlik, şeyler göz yakalamak için başlamalıdır. Ama aynı zamanda, anlayacaksınız Bu şeyler olup olmadığını Gerçek tehditler. Yani bir kaç alıntılar aldı Burada bu yazıdan. Aşağıdaki gibi Ve hikaye. Ben şimdi sahibi değilim Yeni bir akıllı televizyon, hangi akışı sağlamak için söz multimedya içeriği, oyunlar, uygulama, sosyal medya ve internet tarama, çok ah ve TV. Tek sorun ben şimdi olduğum Bunu kullanmak için korkuyor, yazar diyor. Eğer üzerinden okursanız, çok olurdu TV'niz için 46 sayfa gizlilik politikası. veri bu miktarı şey toplar şaşırtıcı olduğunu. Bu oturum nerede, ne zaman, nasıl ve için ne kadar TV kullanın. Bu, çerezleri izleme setleri Konuştuğumuz gibi, ve işaretleri tasarlanmış Eğer varsa algılamak için inceledi belirli içerik veya Belirli bir e-posta mesajı Eğer TV'nizde e-posta kontrol etmek istiyorsanız. Bu uygulamalar kaydeder sen kullanmak, ziyaret ettiğiniz web sitelerinin, ve içerik ile nasıl etkileşim, Akıllı TV üzerinden bütün bunlar yapıyor. Ayrıca bu, creepier yet-- bu benim addition-- var Bir kamera inşa etti yüz tanıma ile. Amacı sağlamaktır TV jest kontrolü ve oturum sağlayacak Yüzünü kullanarak hesabınızı kişiselleştirilmiş. Baş, görüntüler TV'de kaydedilen yerine yüklendi kurumsal sunucu. Olumsuz internet Bağlantı tüm TV yapar korsanlara karşı savunmasız kim yeteneği göstermiştir Makinenin tam kontrol altına almak için. Daha rahatsız, o değildi sanki Yeterince zeki, mikrofon. TV sesini sahiptir tanıma özelliği Bu izleyiciler kontrol etmenizi sağlar Sesli komutları ile ekran. Ama hizmet ile geliyor oldukça uğursuz bir uyarı. Farkında olun eğer senin konuşulan kelimeler şunlardır kişisel veya hassas diğer bilgi, bu bilgiler Yakalanan veriler arasında olacak ve üçüncü bir tarafa iletilir. O var mı? Kişisel veya hassas deme TV'nizin önünde şeyler. Peki bu gerçek aslında. Ve çok zor eğer görmek için Best Buy gitmek veya TV'ler için benzeri bugünlerde. Onlar bir şekilde tüm akıllı değilsin. Ve onlar alıyoruz akıllı ve creepier. Ve onlar sadece veri topluyorsunuz Biz konuştuk yollarla ve sonra HTTP veya üzerinden yükleyerek Bazı sunucuya başka bir protokol. Yani bu eğlenceli makalenin oldu bu online web sitesinde Burada, hangi bir konuştuk Özellikle hata veya yanlış kod biz aslında kravat olabilir Geçen haftaki tartışma içine. Yani bu başlık olarak oldu , aşağıdaki hikaye burada gider Josh Breckman bir çalıştı Bir sözleşme indi şirket Bir içerik yönetimi geliştirmek için Sistem, ya da denilen konum olarak CMS, oldukça büyük bir devlet web sitesi için. Ilgili projenin Çok Bir içerik yönetim sistemi geliştirilmesi çalışanlar olacağını, böylece inşa etmek ve korumak mümkün değişen kendi sitesi için içerik. Şeyler için de oldukça gitti Canlı gittikten sonra bir kaç gün. Ama günün altıncı, işler çok iyi değildi gitti. Içerik Tüm Web sitesi tamamen yok olmuştu. Ve tüm sayfaları varsayılan yol açtı, içerik web sayfasını girin. Whoops. Josh için çağrıldı araştırmak ve fark özellikle problemli olduğu bir dış IP adresi vardı gitmiş ve tüm silinmiş sistemde içeriği. IP adresi ait değil Bazı yurtdışı korsan eğilerek yararlı yok etmek Hükümet bilgi. Bu, googlebot.com karar Google'ın çok kendi web tarama örümcek. Whoops. Araştırma ve çabalıyorlar biraz sonra etrafında bir noncorrupt yedekleme bulmak için, Josh sorun bulundu. Bir kullanıcı kopyalanmış ve vardı birinden bazı içerikler yapıştırılan başka bir sayfa dahil olmak üzere Bir Köprü Düzenle sayfadaki içeriği düzenlemek için. Normalde bu olmaz bir bir dış kullanıcı beri sorunu olur Bir adı ve şifre girmeniz gerekir, ama CMS kimlik doğrulama sistemi, giriş sistemi, dikkate almadı sofistike hack Google Spider teknikleri. Whoops. Olarak çıkıyor, Google Örümcek kullanmak değildir it can demektir çerezler, Kolayca bir çek atlamak Çerez sette kaydedilir yanlış olduğunu. Aynı zamanda dikkat etmez JavaScript, normalde olur istemi ve kullanıcıları yönlendirme kim yapmadınız. Ancak her takip eder bulduğu her sayfadaki köprüyü, olanlar da dahil olmak üzere Başlığında Sayfa silin. Whoops. Peki bu daha ne anlama geliyor Teknik ama oldukça erişilebilir terimler? Sadece demektir kendi web sitesinde, bu bir farklı URL'ler yoktu ki Sorun yedi set sen görebilirsiniz. Sorunu hatırlayın yedi set veya sorun biliyorum yedi set Eğer meydan olduğunuzu, Diğer şeylerin yanı sıra, kullanıcılar adına stokları satmak için. Ama bu arada bu özelliği uygulama sizin kullanıcı köprüler vasıtasıyla olsun arayüzü, muhtemelen değil akıllı bir fikir Siteniz bir şekilde çünkü eğer ulaşılabilir ya da bir insan tarafından kim etrafında tıklayarak veya satın oluyor Google'ın veya Spider gibi bot dedikleri gibi bu sadece endeks çalışıyor web tarama Bir arama motoru olarak, web, onlar çok kolay olabilir URL bu tür almak yoluyla çarptı. Ve işlevsel olarak bu denk, bu durumda, Google tüm hisselerini satan. Şimdi açıkçası, tamamen bulunuyor ahmakça olduğunu CMS Kullanılmış JavaScript ve çerezleri onun giriş sistemi uygulamak için gibi, bu sunucu tarafı yapmıyor Siz PSET yapmak ve olacak 7-- Bir login.php var her file--, her zaman Her zaman güvenlik olmalı Sunucu tarafında yapılan, değil, istemci tarafında, çünkü bu gibi makalede önerir ve kendinizi olabilir o, bir noktada görmek Bir kullanıcı için önemsiz, iyi ya da kötü, Sadece JavaScript kapatmak için çerezleri söz değil. Yani günlük WTF olduğunu. Tane daha var, hangi , sadece tür korkutucu bu yüzden eğer söz edeceğiz Sadece bir hayat dersi olarak. Eğer bir uygulama kullandığınızda zaman Snapchat veya benzeri gibi adlandırılan Bu, bu fotoğrafları sadece son söylüyor Beş saniye, on saniye veya etajer. Onlar Yani geçici konum Kesinlikle değil durumda. Dijital, yolu yoktur gibi, Video çeşit uygulamak, veya görüntü, ya da metinsel gibi paylaşım diğer ucunda bir alıcı şekilde verileri kaydetmek olamaz. En naif şekilde, birisi kendi telefon alabilir. Ve onlar 10 saniye pencere var Bazı çırpıda bakarken sadece bazı diğer telefon almak ve tabii ki, onu fotoğraf. Yani koruyabilirsiniz dijital bir şey bu şekilde. Bazılarınız almak için biliyorum Telefonunuzda ekran. Aslında, bu bilmiyorsanız, fark, en az Snapchat olduğu, ve diğer düşünüyorum uygulamalar bu gün, en azından eğer size Alıcı aslında var Görüntünün bir ekran görüntüsü alınır. Ama daha kötüsü, bu snappening oldu Birisi son zamanlarda icat gibi, Nerede 100.000 enstantane serbest olmuştu Bir torrent dosyası denir ne Çeşitli web sitelerinde sonuçta. Ve bunlar bir sürü yer Özel mesaj ve mesajların. Bu, çoğu iyi huylu çıkıyor böylece beklediğiniz değil ne. Ama insanlar vardı çünkü Üçüncü şahıs web sitesine kullanılır, onların Snapchat ile giriş kullanıcı adı ve şifre ve daha sonra onların enstantane tüm tasarruf Bu üçüncü taraf web sitesinde. Ve o üçüncü parti oldu hacklenmiş web sitesinin, hangi sadece anlamına birisi anladım nasıl Bu görüntülerin hepsi 100.000 artı almak için kendi sabit sürücüye sonraki paylaşım için. Açıkçası, burada da, bu tür var ve ahmakça olduğunu Snapchat Böyle bir şekilde uygulanmasını Üçüncü taraf kesişim sıralayabilirsiniz Veri ve bağlı değil ki senin telefonda çalışan kendi uygulama. Ama burada da, bu fark şeyler, sürpriz sizi yakalamak değil ya da en azından orada olmalıdır Burada bir hayat dersi olacak. Teknik isterseniz detaylar, orada o URL'ye gitmek Bugünün slaytlar var. Pekala, herhangi bir soru CS bugünün hayat dersleri? Bu kapatın. Hiç bir şey? Hiç bir şey? Ben kontrol bir sürü insan var Şimdi onların Snapchat falan. Pekala, SQL nedenle, Structured Query Language. Şimdi bu sarın edelim. Ayrıca, her ne kadar biz sadece kaşıma ediyoruz Bu yüzey dil, size vereceğim Dilin yeterli pset 7 şeklinde böylece bazı üstesinden gelebilirsiniz ki oldukça yaygın işlevsellik. Ama bir çift vardır farkındalar seninle gerekmez şeyler, ama onlar için gidiyoruz Önemli nihai projeler geliyor ve kesinlikle gerçek hale gelmek Gerçek kullanıcılarla web siteleri Bu tasarım kararıdır. Bu o çıkıyor MySQL veritabanı, sen gibi seçenekler demet var senin sütunlar için veri türleri ve diğer şeyler, ama aynı zamanda var adlandırılan depolama seçimi tüm verilerinizi için motor, Dosya sistemi sıralama, Eğer bilginiz varsa, tüm verilerinizi için. Ne biçim sonuçta saklanır? Ve en yaygın, belki de, olmuştur MyISAM ve InnoDB, teknik terimler biz sadece umurumda edeceğiz ölçüde bu bir yer alır ve bir yok Aşağıdaki özellik. Var olduğunu varsayalım Biraz yurt buzdolabı. Ve seni ve varsayalım sizin Bu buzdolabı paylaşan oda arkadaşı, diyelim ki süt gerçekten düşkün. Ve bu aslında, nasıl Hikaye yolu bana geri söylendi gün ben bir ders aldı CS 161 İşletim Sistemleri, denir ki benzer şekilde bu konuyu araştırıyor. Yani bu buzdolabı var. Sen süt bitti. Ve sen oda arkadaşı en, eve gel hala sınıfta ya da her neyse de, ve ben gidiyorum karar dışarı çıkmak ve biraz süt olsun. Eğer buzdolabı kapatmak Yani, tıkanabilir Öğrenci yurdunda, sokak gidin CVS veya yerde ve almak için doğrultusunda bazı süt satın almak. Bu arada, senin oda arkadaşı eve alır sınıf, yurt odasına alır Ayrıca anlar, buzdolabı açılır ooph, biz süt bitti. Yani o kapatır buzdolabı ve sonra olur Diğer CVS gitmek için, hangi olur bir blok uzaklıkta başka CVS kare ve çizgi alır Bazı süt oraya. Şimdi, tabii ki, bir kaç dakika Daha sonra, her iki geri almak, ve mümkün olan en kötü sonuçlar oldu. İkiniz de süt var. Ve gerçekten yok süt gibi o kadar. Yani bunlardan sadece biridir bir noktada ekşi olacak. Yani şimdi aşırı miktarda var süt buzdolabında tüm niye çünkü? [Duyulamaz] DAVID MALAN: Evet, değil mi şekilde birbirleri ile iletişim Bu Süt elde edildi. Basit Yani İnsan dünyada yolları, Bu aptal önlemek nasıl Böyle oluyor senaryo Bu sadece bir ile sona. Onları Metin, evet iyi. Ama başka nasıl? Post-it notlar. DAVID MALAN: Bir Post-it notu. Iletişim Herhangi bir şekilde Bu oda arkadaşını söyler süt için buzdolabı girmeyiz. Kendi başıma eksikleri gidiyorum. Yani bir şekilde ihtiyaç Bu kaynak kilitlemek için. Bu yüzden bu-- yapabilirsiniz biz tür can hikaye berbat ve CS hikayenin içine çevirmek böylece tıpkı bir benzeri bu düşün bazı değer saklamak değişken. Ve şimdi, Süt değeri sıfırdır Eğer sizin istemediğiniz Oda arkadaşım bu değişken kontrol etmek ve sonra karar Kendisini yapmak Bu değişkenin durumuna göre Eğer sürecinde iseniz Bu değişkenin durumunu değiştirme. SQL hatlarının Yani bir ki PSET 7 şartnamede size Burada bu biridir. Ve biz büyük harcamak yok süre bu konu hakkında konuşuyorduk. Eğer çalışıyorsanız Ama, çıkıyor CS50 finans bazı hisse senedi satın almak için Zaten var Size, bazı hisseler Bir numara yapabilmek istiyorum anında bir araya şeyler. Sen edebilmek olmak istiyorum etkin bir şekilde, yüksek bir seviyede, Ben istiyorum, tamam kontrol Free fazla hisse satın almak için, kuruş stok biz spec hakkında konuşmak, Ben ilk kontrol istiyorum kaç hisse ben. Ve beş varsayalım. Ve ben istiyorum varsayalım Ben sonuçta, 10 daha fazla satın Stokta 15 hisse istiyorum. Yani iki soru sormak zorunda. Değişkenin durumu nedir? Satır durumu nedir? Şu anda kaç hisse var mı? Sonra devam edin ve bunu güncellemek istiyorum. Yani analog için var Eğer satır kontrol etmenizi süt, ve daha sonra bunu güncellemek istiyorum 10 hisse satın almak istiyorum çünkü eğer, Değiştirmek istemiyorum 10 satır, sen 5 bunu değiştirmek istiyorum ilave olarak, 10 ya da, tabii ki, 15. Bu kod satırı sağlar Bu iki kavramsal fikirler birlikte veya değil hiç olur. Bazı başka bir kullanıcı da dahil olmak üzere hiç kimse, kim, aynı web sitesi oturum oluyor şekilde kesebilirsiniz Satırın kontrolü ve satır güncellenmesi, seçin ve güncelleme eğer sen. Ve sözdizimi, süper açık değil ama bu bir satır, uzun zamandır, mesafesindedir o iki işlemleri sağlar değişkeni kontrol etmek veya satır kontrol ve satır atomik olur güncelleyin. Ah burada tekrar gitmek. Benim telefonda Metin mesajı. Yani bu a yapalım Biraz daha somut. Sen değilsin varsayalım Bir buzdolabı uygulanması, ve uygulama değil PSET 7 ama gerçek bir banka, ya da ATM, bir Automated Teller Makine, bu sayede sizi bir şekilde güçlendirmek mümkün olmak istiyorum Kullanıcıların para transferi bir hesaptan diğerine. Tamam, bekle. Ben şimdi bu susturmak için gidiyorum, teşekkür ederim. Bu yüzden parayı taşımak istiyoruz bir hesap numarasından Farklı bir hesaba sayı, özellikle de 100 $. Yani bu keyfi tür örnek, bu sayede siz, ATM, İki SQL yürütmek isteyebilirsiniz sorgular, bir hesaptan çıkarma ve diğer hesaba ekleyin. Ama bu sağlamak istiyoruz iki satır olur ya da hiç hem de. Bir şey istemiyorum kesintiye alıyorum. Bazı akıllı kötü adam yok nasılsa Bank of America ayakta önünde iki ATM ile Onu ve bir şekilde tür yazarak Aynı zamanda komutları, umarım yerine 200 $ kesinti çalışıyor 100 $ ve yatırılır sadece sahip 100 $. Kısacası, bu istediğiniz Beklediğiniz tam olarak davranır. Ve bunu yolu Bu SQL veritabanı Eğer ne sarın Bir işlem denir. Kelimenin tam anlamıyla SQL, sen CS50 en arayabilirsiniz Gönder unquote start sorgu fonksiyonu işlem. Sonra herhangi bir sayı yürütebilirsiniz sonraki SQL sorguları, ama bunların hiçbiri almak veritabanı üzerinde etkisi Sorgu alıntı unquote çağırana kadar Yine PHP kullanıyorsanız, taahhüt. Ve bu şekilde, bunu sağlayabilirsiniz Eğer varsa bile 1,000 kullanıcıların tüm veritabanı isabet Aynı zamanda, bir SQL Bu söz edecek iki sorgu olacak birbiri ardına hakkı uyguladı. Yani aşan ile bitmiyor Süt ya da yanlış miktar, sonuçta, para. Peki bunu göz önünde bulundurun, PSET 7 için o kadar çok ancak son projeler için aslında iseniz etrafında veri taşımak için çalışıyoruz tablolar genelinde olduğu gibi burada olabilir. Ama belki daha basit ve daha Bir örnek ile anlamaya açık Burada bu biridir. Ve birisi bize e-postayla Bu sadece diğer gün O benzer bir şey online görünce. Benim gördüğüm kadarıyla, pim sistemi yüzden Bu saldırıya karşı savunmasız değildir. Ve ben hiçbir fikrim varsa bile kullandığı Kaputun altında SQL veritabanı. Ama bunu kullanmasına izin tartışma uğruna. İşte ekran olduğunu Harvard millet eğilimindedir ile giriş yaparken görmek için onların Harvard kimlik numarası ve pin. Ve pin sistem olduğunu varsayalım PHP ve MySQL ile bir uygulamaya Veritabanı, kod birileri yazılı olabilir yıl önce Bu gibi görünebilir. İlk olarak, bir beyan değişken denir adı. Ve sadece o olsun POST süper küresel. Sonra başka bir değişken olsun Şifre denilen ve aynı şeyi. Ve sonra sadece yürütmek Burada bu uzun sorgu, kullanıcılar nerede seçin yıldız Kullanıcı adınızı filanca eşittir ve şifre filanca eşittir. Kıvırcık dikkat edin parantezi burada kullandım Sadece PHP anlamına gitmek Önümüzdeki ve yedek bu iki değeri Orada değişkenler. Onlar kesinlikle gerekli değil, ama Onlar ince sözdizimi hatalarını önlemek eğilimindedir. Yani bu tamamen görünüyor İlk bakışta doğru. Ve öyle. Sen uygulamak bu şekilde iğne sistemi. Ama süper olduğunu varsayalım akıllı ve kötü niyetli öğrenci onun pin olarak girdi bu. Yani mermi kaldırdık Sahte kadar burada işaretler, ve aslında ortaya ettik ne o yazarak olabilir. Ve biraz garip. Ama ne potansiyel size dışarı atlar Kullanıcının girişi hakkında endişe verici, Eğer hiçbir fikrim yok olsa bile ne Bir SQL Injection saldırısı anlamına gelir. Neden bu biraz balık görünüyor? Bu da ne? [Duyulamaz] DAVID MALAN: ya da Biraz şüpheli. Aslında, bu SQL bir kelime var. Yani iyiye işaret değil. var olması Tüm bu tek tırnak orada-- Aslında, en kolay biri Bazı veritabanları kırmak için yolları O'Reilly gibi bir isim yazarak olduğunu Bu onun bir kesme işareti vardır İnsan kim yazdı çünkü eğer perde arkasında kod dikkate almaz orada bir kullanıcının tek tırnak olabilir giriş, o kullanan ve kendi kod tek tırnak, Kötü şeyler olabilir. Aslında, daha kötüsü, bu düşünün. Bu yine kod olsaydı Bu Harvard yıllar birisi önce pimi için yazdı Sistem, ne fark hakkında ikame almak için kullanıcı adı ve şifre kullanıcı türleri ise tekrar kendi kullanıcı adı olarak Skroob ve daha sonra, bir, iki, üç, dört, beş, bir eşittir unquote alıntı veya alıntı bir alıntı. Ve ne anahtar fark Burada kullanıcı henüz değildir başladı şifrelerini veya Bir alıntı ile pim. Ve onlar bunu sona değil bir alıntı ile çünkü o varsayarak halinde Programcı, yani keskin değildi onlar bu yaşayacaksın kendi kod tek tırnak. İşte kod. Ve ikame o Şimdi ne olabilir bu. Ve ben altını kadarıyla kullanıcının yazdığı. Yani önce, sonra. Ve şimdi hafif endişe verici ne fark Bu SQL kodu sağ yarısı? Bu, kuşkusuz, biraz daha karmaşık olduğunu sorguları daha gördük. Ama bu muhtemelen yapamam sen eğer iyi bir şey seçmektir seçin yıldızı, diyerek Kullanıcının tablodan her şeyi nerede adınızı Skroob eşittir ve Şifre ise bir, iki, üç, dört, beş veya bir eşittir. Mantıksal çıkarım nedir muhtemelen son fıkrasının? Sadece zaman doğrudur. Ve biz çeşit tahmin çünkü veya deneme ve yanılma yoluyla anladım Bu programcı kim yazdı bu kod vermedi Bir insan ya da kötü kişiyi tahmin hem de tek tırnak yazarak, Biz sözdizimsel olabilir SQL sorgusu tamamlamak saçma bir şey ama bir şey bu sözdizimsel yanlış Bu her zaman doğru değerlendirir. Yani bu kod cevaplamak için kullanılıyorsa Soru doğru ya da yanlış olmalı Bu kullanıcı, geçmek için izin Cevap her zaman görünüşte gidiyor bu her zaman oluyor çünkü gerçek olamayacak kadar veritabanından bir şey seçmek için Elbette bir zaman birini eşittir çünkü. Peki çözüm ne? Peki PSET 7, aslında hep birlikte bunu önlemek. Size bir sorgu işlevini verir, ve biz Soru işaretleri kullanmanızı öneririz yer tutucu olarak, benzer printf en% s ruhu içinde, ama soru işaretleri hakkında önemli ne aslında aracılığıyla okursanız burada functions.php, nerede bizim Sorgu fonksiyonu, uygulanır Bu soru işaretleri kaçtı, böylece potansiyel olarak tehlikeli bir şey Bir tek tırnak açıldığında gibi kaçan bir tek alıntı içine. Peki bu ne olduğunu Gerçekten eğer oluyor CS50 sorgu işlevini veya herhangi bir sayı kullanın Üçüncü şahıs serbest kütüphanelerin bu aynı şeyi. Bu durumda Farketmez, yeşil, Kullanıcı, tek bir alıntı yazdığınız ise sorguda nedeniyle Biz yazdı işlevi önce tersbölüleri eklemek için gidiyoruz Bu tür tehlikeli alıntı. Yani bu, değil Aslında, okunaklı olacak. Bu seyir, bir deli yazarak gibi Elbette, gitmiyor, değil şifre Skroob gerçek şifre için. Böylece CS50 için paket, bir tanesidir Kesinlikle her zaman bir şey kullanmak CS50 sorgu işlevi gibi ya da altta yatan bir kütüphane, hangi PDO adı olur. Ama asla, asla, Bu gibi bir kod asla kaçan veya ovma olmadan onlar senin girişleri söylüyorlar. Ve olacak bir noktada muhtemelen Bu gibi bazı web sitesinde rastlamak. Aslında, bu durumda olduğu görülmektedir yerlerde havaalanlarında ve otellerde gibi Onlar ücretsiz Wi-Fi var burada Eğer giriş zorunda erişim, Bu web siteleri her zaman korkunç uyguladı. Ve böylece evde egzersiz eğlenceli bir tür, değil kötü amaçlı veya daha fazla Yolda bir eğlence egzersiz, sadece yazın ise bir kesme işareti, bir tek tırnak, Bazı web sitesinde bir forma ve ne olduğunu görün. Ve sunucu çöküyor ya da verirse Eğer hata mesajı çeşit, çok iyi olabilir Birisi bu beklenen değil. Ve sonra düzgün uyarmalıdır yetkililer ve daha fazla devam. Peki şimdi siz umarım gerekir Burada biraz daha inek mizah anlamak. [KAHKAHA] DAVID MALAN: Sen bir inek olduğunu biliyorum. Önümüzdeki birkaç İçin yaş, sizi hatırlar kim küçük Bobby Masaları olduğunu Burada bu karikatür yüzünden. Yani olarak akılda tutmak biz bağlam anahtarı son bir kez JavaScript bugün. Biz nispeten daha az geçirdim PHP sözdizimi zamanı aslında çünkü C süper benzer Ve güzel yeterli, JavaScript da C sözdizimi süper benzer biz görürsünüz yanı sıra Sadece bir an ve biz olacak gibi Özellikle daha sonra bu hafta bakın. Eğer bu dil ile neler yapabilirsiniz?, olsa, daha güçlü Özellikle API'leri ile. Ama önce hızlı bir tur. Yani bir, JavaScript, orada güzel hiçbir ana işlevi,. PHP ile olduğu gibi, sadece kod yazabilirsiniz. Koşullar bu gibi görünüyorsun. Ve Boole ifadeleri olabilir Bu benzeri veya bu gibi görünüyorsun. Anahtarlar var, ve onlar Bu gibi görünebilir. Dört döngüler bu gibi görünüyorsun. Döngüler bu gibi bakmak iken. Do whiles bu gibi görünüyorsun. Ve sonra diziler gibi bakmak Bu, PHP çok benzer. Ama, JavaScript sen fark Bir dolar değil bir değişken bildirmek bir veri türüyle ama tam anlamıyla, oturum daha önce değişken için Var söyleyerek. Çok gevşek yazdığınız ki bu türleri vardır, ama bunları açıkça beyan yok. Ve sonra bir dize için Örneğin, görünebilir Bu gibi bu dize Bu durumda, s adlandırılır. Sonra bir amacı. Ve bu uzun önce daha fazla görürsünüz. Ve bir nesne, belki biridir En yaygın veri yapıları görülmektedir Bir JavaScript tabanlı Program sağlar çünkü Eğer keyfi ilişkilendirmek anahtar değeri çiftleri sadece PHP'nin ilişkisel diziler gibi ve sadece kendi karma tablo gibi biz hayata veya deneyin Bir kaç hafta. Yani aslında görelim ne Biz JavaScript ile yapabilirsiniz. Ve özellikle de, bu özellikleri bir çamaşır listesi tarayıcılar bu sahip olduğu Bize JavaScript kanca izin Aşağıdaki şekilde bir web sitesi haline. JavaScript genellikle bir olarak kullanılan istemci tarafı komut dosyası dili. Bu derlenmiş değil. Çok yorumlanır. Ama PHP aksine, hangi yürütüyor sunucu üzerinde, web sunucusu, veya derin iç müşteriler, JavaScript that farklıdır genellikle tarayıcıda çalışır. Yani herhangi bir JavaScript kodu yazmaya başlayın PSET 8, ya da son proje için, ya da gerçek dünyada genellikle oluyor Kesinlikle, sunucu üzerinde kaydedilecek Bir nokta HTML veya nokta olarak JavaScript dosyası için JS. Ama tarayıcı gidiyor JavaScript ki indirmek için Chrome kendi örneğine kod, IE veya Firefox, ya da her neyse ya. Ve kodu aslında almak için gidiyor Kendi tarayıcı içinde idam. Sadece bu daha gerçek hale getirmek için, en somut biçimde bu görelim. Bu kod ne hiçbir fikrim yok Gerçekten bu kadar okumadan. Ama beni Facebook.com gidelim giriş yapmadan. Bana Elemanı kontrol edin ve gidin gidelim, diyelim, Ağ ve Sayfaya güncelle. Ve biz see-- edeceğiz bana Reload vardiya izin Sayfa yeni tüm isteklerini almak için. Ve ilk Gördüğüm dosya CSS, CSS. İşte ilk var JavaScript dosyası, ve ben hayır bu ne fikir, ama burada JavaScript kodu bazı olduğunu Bu Facebook sürücüler. Hatta gerçekten değil Büyütmek için ortaya. Hala gibi saçma değil. Ama orada bile aşağı aşağıda göreceksiniz Bu JavaScript dosyaları daha. Whoops. Bu bir ping var. Hadi biraz aşağı gidelim ayrıca bundan başka, daha. Bir tane var. Bir tane var. Bir tane var. Bu yüzden bile olsa Facebook, arkasında sahneleri, PHP kısmen yazılmış ve Facebook'un kendi sürüm bunların, JavaScript büyük bir miktar var. Aslında, herhangi bir Facebook'ta yapmak sohbet, inline zaman çizelgesi güncellemeleri herhangi O, gerçek zamanlı olarak bütün bunlar olur JavaScript tarafından tahrik edilir. Evet? İZLEYİCİ: Ben emin değilim Bu Facebook'tan ise, ama ben Facebook geliştirdi düşündüm Kendi içi kod dili? DAVID MALAN: Onlar yaptı. Ben bir varyans demek yüzden de bu PHP bu aslında Hip Hop denir Böyle eklenen özellikler zaman ki Marka, ilk Facebook uygulanan PHP yazılmış. Ve bu tür kalmıştır Ön uç dili sıralama onlar çok için kullandıkları kendi kodlama, ama bunun bu bir dil olmamıştır milyarlarca özellikle de ölçekler insanlar. Ve böylece kendi eklediğiniz perde arkasında gelişmeler. Ve herhangi bir numarayı kullanın Diğer dillerin Çeşitli parçalar için kendi altyapı. Yani evet, bu bir sapma var şimdi PHP olarak bildiklerini. Yani bir göz atalım örnek bir çift biz burada JavaScript kullanmak nasıl. Bugünün kaynak kodunda, biz bir Dosyaların demet, hangi ilk, DOM sıfır denilen sağlar. Aşağıdaki gibi Yani DOM sıfır görünüyor. Beni bu dizine gidelim ve domzero.html açmak, üst bir doc türü vardır beyanı, burada söyleyerek HTML 5 geliyor. Ve şimdi burada bir HTML etiketi. İşte kafa etiketi. Ve bugün burada yeni ne var. Şimdi bir script etiketi var Sayfanın kafasının içinde. Ve bu görünüşte yapar çok az, ama haber Ben tanımladığınız bir script bir JavaScript. Ve bir kenara, bu yana olduğu gibi ortak bir yanılgıdır, JavaScript kesinlikle ilgisi yoktur Java, dil ile yapmak Size bazı might ki APCs öğrendim. Bir pazarlama fazla oldu bir şey daha bir şey, önce Java yıl coattails sürme. Ama JavaScript, hiçbir şey yapmak Java, sadece benzer ve rahatsız edici, iltibas atadı. Eğer bir işlev bildirmek nasıl Yani burada JavaScript, kelimenin tam anlamıyla işlevini demek, Daha sonra işlevin adı, sonra herhangi bir sürer olabilir argümanlar, PHP sadece seviyorum. JavaScript, en birinde çıkıyor mevcut can sıkıcı fonksiyonlar Uyarı olduğunu. Bu küçük bir pencere olduğunu açılır ve sizi uyaracaktır bazı bilgilerin parçası. Genellikle üzerine kaşlarını çattı oluyor. Ama biz bunu olarak kullanacağız bizim Burada ilk egzersiz. JavaScript birkaç özellikleri dikkat edin. Tek tırnak ve çift tırnak Aslında artık önemi yok. Tek tırnak ve çift tırnak değiştirilebilen olabilir, C ise, kullanmak zorunda dizeleri için çift tırnak, ve tek iki var karakter için tırnak. JavaScript dünyada, birçok kişi, çoğu kişi dizeleri tek tırnak kullanmak sadece bir üslup şey çünkü. Ama artı operatörü, burada ne hangi daha önce görmedim? İZLEYİCİ: Birleştirme. DAVID MALAN: Birleştirme. Yani C bile bu yoktur. PHP nokta operatörünü vardır, hangi yapar. JavaScript artı operatörü vardır, hangi kafa karıştırıcı sadece Java gibi. Şimdi ne olacak burada oluyor? Yani burada nerede temel var Bu resmin anlayışı Biz bir çift attı gün önce devreye giriyor. Biz basit vardı hatırlıyor Bir sürümü HTML page-- sadece merhaba dünya, dedi. Ve sonra bir ağaç çekti sağa doğru olan dikdörtgenler ve çizgilerden oluşan bir demet vardı Bir aile ağacı gibi onları bağlayan. Yani sözde DOM var veya Belge Nesne Modeli. Ve erişebilirsiniz çıkıyor sözdizimi ile bu ağaç dikdörtgenler Aşağıdaki gibi. Kelimenin tam anlamıyla bir olan belgeyi demek Bir JavaScript özel global değişken Bir işlevi vardır programı Eğer erişebilirsiniz onunla ilişkili Bir yapı benzer, ancak sadece , nokta ve ardından işlevin adını söylemek No elemanı olsun. Ben almak istiyorum unsurdur görünüşte unquote adını alıntı. Ve sonra ben onun değerini almak istiyorum. Şimdi önümüzde kendimizi alıyoruz. Ben bile emin değilim ne Bütün bu ilgili. HTML diyelim hızlı ileri üzerinde Süper basit sayfa. Ben tanımladığınız Bildirimi Bir Buraya oluştururlar. Ben bunu bir benzersiz verdik Fark Kullandığımız ettik bile kimliği, Bu özellik daha önce. Ama bu HTML var. Sen benzersiz bazı öbek belirleyebilir Böyle bir tanımlayıcı ile HTML. Bildirimi artık paha çıkıyor HTML Bu çamaşır liste başı destekler Bir an önce, bir bütün olay işleyicileri demet. Ve bu olay işleyicisi teslim diyor. Bu kullanıcı sunulmasına ilişkin Form, aşağıdaki kodu arayın. Ve bu kodu gidiyor denir ya idam edilecek tam olarak bu, Yunan Fonksiyon return false ile izledi. Her şey olması gerektiği Oldukça tanıdık. İşte olan tipi metin bir giriş, bir Kimlik, bu durumda, isim olacak. Biz gerçek adı özniteliği yok Bu seferinde-- ve bir gönderme düğmesi. Yani ortaya çıkan sayfa bu gibi görünüyor. Ve elde edilen davranışı, Eğer bu gibi görünüyor, göreceksiniz. sayfa yerel ana merhaba diyor Estetik pek david, Bir kullanıcıyı selamlamak için bir yol. Ama gerçekte ne oluyor? Peki, bu ne düşünün. Bu metin alanıdır. Ve göre olan Burada HTML, bunu verdim benzersiz bir tanımlayıcı denilen alıntı unquote isim. Bu arada, ne zaman söyledim Kullanıcı, bu formu gönderir Enter vurarak ya tıklayarak Gönder düğmesi, Greet denilen işlev çağrısı ve daha sonra yanlış dönmek. En ters olanlar düşünelim. Ben, Gönder'i tıklayın zaman dikkat Bu sayfanın URL'sini değişmez. Tarayıcının simgesi dönmeye başlar vermedi. Ben her yerde gitmedi, ve işte kelimenin tam anlamıyla ben yanlış dönmek dedi çünkü. Yanlış kısa devre veya durur dön Bir formun varsayılan davranış. Sonra bizi bırakır So Bu son bir soru. Greet ne yapar? Peki, görünüşe göre Greet adında bir işlevi çağırır Uyarı, biri geçer var uzun argüman Birlikte bir bitiştirmek sonucu altdizgelerin demet, virgül boşluk merhaba, Daha sonra bu döner ne olursa olsun. Yani belge küresel gibi Bu ağacın kökü bu değişken, özel bir işlevi çağrılırken, aksi takdirde şu anda bir yöntem olarak da bilinir. Var bir işlev bir değişken içinde Bir yöntem yerine bir işlevi çağrılır. Yani KODU elemanı olsun. Ne eleman do you kendi kimliği ile almak istiyorum? Unquote adını alıntı ve sonra özellikle değer. Bu yüzden, diğer bir deyişle, bu kodun kimin Kimlik adı metin alanı bulur ve daha sonra onun değerini alır. Yani eğer ben bunu değiştirmek için vardı ve, Davin yerine David demek ve şimdi, Gönder'i tıklayın Davin için bir tebrik var. Nedenle tüm ince ve iyi Pekala,. Ama biz yapabilir bakalım Sadece beri temizleyici bu biraz Bu gibi kod yazma genellikle üzerine kaşlarını çattı olacak. Bu korkunç bakmak için gidiyor. Ama önce ne Burada dikkat fark yanında bu sürümde DOM birine değişen isim? Ne yapısal olarak farklı görünüyor Diğer karşı bu konuda? Evet? HEDEF KİTLE: Form üzerine mi Şimdi komut üst? David MALAN: Evet şekilde üstte Bazı meraklı bir nedenle senaryo. Yani ilk şey Bu da, bana dışarı atlar. Ve şükür ki, en azından, bu parça aynıdır. Yani görünüyor tek şey farklı olmak budur. Yani burada düzgün ne var JavaScript 2 hakkında. Ve zorlaştırır İlk bakışta anlamak, Özellikle son projeler eğer için Eğer online örnek kod bakıyoruz ancak bazı aşağı kaynar Temel sözdizimsel özellikleri. Burada da olmasıdır global değişken belge. Burada da bu yöntem ya da işlevi Bu ID ile eleman olsun diyor. Ben istiyorum bu sefer Demo olarak adlandırılan kimliği almak. Nerede bu? Bu görünüşte doğru Burada, formun kendisi. Ve şimdi fark olduğunu görünüşte ben ağaçtan bu düğümü geri almak biçimini temsil etmektedir kendisi değil, bir metin alanı, o, bu formu çıkıyor ağaçtan düğüm veya dikdörtgen, Biz bir özellik ararım ne var çok, çok, çok benzer C. bir yapı ruhu içinde sadece var Bu dikdörtgenin içinde bir veri üyesi. Yani formu var Burada, ve ben takılarak ediyorum, onun Açık Gönder veya ben, atama ediyorum işleyici ya da daha doğrusu Açık özelliği Gönder Aşağıdaki fonksiyon. Ve bu kadar, çılgın, bir şey bugüne kadar sözdizimsel. Bu JavaScript ve dışarı çıkıyor PHP ve açıkçası C bu konuda, biz bunu bile bile yapabilirsiniz isimsiz, anonim veya AKA lambda ekleyin Bir isim yok işlevleri ama yine de çağrılabilir. Peki ben burada yapıyorum ben atıyorum olduğunu Bu günü, özelliği Gönder olan Bir, benim DOM ağacının bu düğümün içinde olduğunu fonksiyonu, fonksiyon işaretçisi eğer olacak. Bu işlev hiçbir vardır isim, ama bu değil göreceğiz, çünkü önemli Bir an onu aramak için nasıl. Bu işlev çağrıldığında, Bu kod, sonra idam alır sahte hemen önce böyle döndürülür. Ama ben ne yaptık dikkat edin. Bu noktada Hikaye, ben bir form var. Bu demo olarak adlandırılan benzersiz bir kimliği var. Burada aşağı, ben bir script etiketini var Bu Aşağıdaki kodu çalıştırır. O düğüm bağlanır Bunun için ağaç On Gönder var özellik burada bu işlev. Ve sadece tarayıcılar nasıl doğası gereği, Ben şimdi gönderin veya Enter tuşuna basın tıkladığınızda, Bu işlev denir gidecek. Çünkü bir isim gerekmez halt ne denir umurunda. hiç almak için gidiyor sadece zaman Ben formu göndermek zaman denir. Benim için gerek yok, İnsan geliştirici, aslında başka bir yerde aramak. Şimdi sadece bir teaser olarak, bu gibi Yeterince bükme zihin değil, biz bile bu yapabilirsiniz daha şifreli kullanarak bakmak Bir süper popüler kütüphane jQuery denir. Aslında jQuery ve JavaScript genellikle conflated edilir. Ve ne Çarşamba günü yapacağız başlangıç Bu dil ve bu kütüphaneleri kullanarak giderek asenkron inşa etmek ve dinamik uygulamalar harita gibi oluyor uygulama, uygulamalar Bu gerçek web sayfasını güncellemek Zaman, çok Facebook ya da Gchat gibi yapmak, ve artık kendimizi sınırlandırmak bir olsun ya da sadece posta ile gönderin isabet yalnız. Yani Çarşamba günü görecek. [MÜZİK OYUN]