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