1 00:00:00,000 --> 00:00:01,940 >> [MÜZİK OYUN] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID MALAN: Bu CS 50, ve bir Bu haftanın dokuz başlangıcıdır. 4 00:00:14,620 --> 00:00:18,240 Ve ne bugün ne düşündüm değil Sadece geçen hafta en bölümüne yakın 5 00:00:18,240 --> 00:00:22,670 Biz sunucu üzerinde duruldu malzeme PHP ve SQL ile yan web programlama, 6 00:00:22,670 --> 00:00:23,549 bazı veritabanı şeyler. 7 00:00:23,549 --> 00:00:25,590 Biz biraz bahsedeceğiz Güvenlik bugün ve sonra 8 00:00:25,590 --> 00:00:29,590 Bir istemci tarafı programlama geçiş JavaScript olarak bilinen dil. 9 00:00:29,590 --> 00:00:31,330 Ama önce, bazı itfa. 10 00:00:31,330 --> 00:00:35,030 >> Siz bu konuda hatırlayamaz Çarşamba, ben yola 11 00:00:35,030 --> 00:00:37,550 Bir web sitesi yazmak için bu Kullanıcının girişi aldı 12 00:00:37,550 --> 00:00:41,120 Bir HTML ile o zaman saklanan formu bu kullanıcı giriş adları, telefon 13 00:00:41,120 --> 00:00:43,124 sayılar, ve cep telefonu Veri taşıyıcısı. 14 00:00:43,124 --> 00:00:45,540 Ve sonra ben biraz komut vardı çizgi PHP ile yazılmış 15 00:00:45,540 --> 00:00:47,956 Bu yineleme gerekiyordu veritabanında satır üzerinde 16 00:00:47,956 --> 00:00:49,400 ve metin mesajları göndermek. 17 00:00:49,400 --> 00:00:53,870 Birkaç birkaç girişimlerine rağmen, biz sonuna kadar bu çalışma alamadım. 18 00:00:53,870 --> 00:00:57,820 >> Yani çalışan tüm bu hafta geçirdi Bu kodu noktadan bizi almak için 19 00:00:57,820 --> 00:01:01,220 Biz bıraktığımız yerden, bu sayede tüm Ben Çarşamba sonunda aldım 20 00:01:01,220 --> 00:01:05,500 Bu metin mesajı oldu Ben mücadele gibi Margo gelen 21 00:01:05,500 --> 00:01:09,940 Başka bir metin mesajı ve ardından sınıf arkadaşı, bu David var. 22 00:01:09,940 --> 00:01:14,030 Bu birin izlediği, harika cesaret verici. 23 00:01:14,030 --> 00:01:15,840 Gidiş devam etti, çok yüreklendirici. 24 00:01:15,840 --> 00:01:20,960 Neredeyse zaten-- kadar var ve biz Çarşamba günü sona eren bir not. 25 00:01:20,960 --> 00:01:25,850 Ve sonra, aslında belki de benim en sevdiğim, Bir an sonra, bu geldi. 26 00:01:25,850 --> 00:01:27,000 Lanet Akışı Canlı. 27 00:01:27,000 --> 00:01:31,080 >> Yani bugün biz bu hızlı ile düzeltmek Ben beri yaptığına bak. 28 00:01:31,080 --> 00:01:35,440 Yani bu kod tüm kullanılabilir Online Geçen haftaki hafta sekiz itibaren, 29 00:01:35,440 --> 00:01:36,300 kaynak kodu. 30 00:01:36,300 --> 00:01:39,425 Ve sen, ben geçti görürsünüz ve ben aslında biraz şeyleri temizlenmelidir. 31 00:01:39,425 --> 00:01:42,080 Ben birkaç diğer tanıttı Bir SQL veritabanı özellikleri. 32 00:01:42,080 --> 00:01:45,300 Örneğin, yerine sadece var char taşıyıcı yapmak 33 00:01:45,300 --> 00:01:47,310 Bence ben geçen hafta anında yaptım. 34 00:01:47,310 --> 00:01:49,820 Ben bunun yerine olarak tanımlanır ne bir enum denir. 35 00:01:49,820 --> 00:01:53,310 >> Ve bazılarınız bu görmüş olabilir biz keşfedilmeyi C. Enum aslında 36 00:01:53,310 --> 00:01:56,820 C özelliği yapabilirsiniz sabitler bir sürü numaralandırmak 37 00:01:56,820 --> 00:01:59,640 ve otomatik değerler atamak, bir, iki, üç, dört gibi 38 00:01:59,640 --> 00:02:01,330 Sert kod numaraları gerek kalmadan. 39 00:02:01,330 --> 00:02:04,780 Yani SQL suretle eğer aynı destekler Eğer bir veritabanı alanı var sadece 40 00:02:04,780 --> 00:02:09,389 sonlu birinde almak istiyorum değerler, tam anlamıyla bunu belirtebilirsiniz 41 00:02:09,389 --> 00:02:13,120 Ben dört orada yapmış gibi popüler ABD cep telefonu taşıyıcıları. 42 00:02:13,120 --> 00:02:13,819 >> Ben yaptım. 43 00:02:13,819 --> 00:02:16,610 Ve ben bir dizi değişiklik yaptı iyi, en önemli olan 44 00:02:16,610 --> 00:02:20,090 E-posta hatırlama nedeniyle çalışma almak oldu, Bu programın hangi dayanıyordu 45 00:02:20,090 --> 00:02:23,470 genellikle bir e-posta çağırdı Sadece bir SMS ağ geçidi, 46 00:02:23,470 --> 00:02:27,670 Bu Verizon söyleyerek bir fantezi yolu, ve AT & T, ve diğer millet, bir sunucu desteği 47 00:02:27,670 --> 00:02:30,740 bu sayede o alırsa E-posta, SMS onu dönüştürür 48 00:02:30,740 --> 00:02:33,290 ve bir metin gönderir Birinin telefonuna mesaj. 49 00:02:33,290 --> 00:02:37,010 Ben doğru yaptım Yani, Burada, yeni ve geliştirilmiş bir şeklidir 50 00:02:37,010 --> 00:02:39,259 Bu konuşmaya gidiyor yeni ve geliştirilmiş bir kod, hangi 51 00:02:39,259 --> 00:02:40,300 Eğer çevrimiçi oynayabilirsiniz. 52 00:02:40,300 --> 00:02:44,140 Ve umarım yapacak benim Sadece bir an telefon bip. 53 00:02:44,140 --> 00:02:47,240 >> Yani ilk ben ismimi yazmak için gidiyorum. 54 00:02:47,240 --> 00:02:51,400 İkincisi, ben gitmiyorum bu sefer yapmak için. 55 00:02:51,400 --> 00:02:53,920 Ben Elemanı kontrol edin yapmak için gidiyorum. 56 00:02:53,920 --> 00:02:56,710 Ve bu sadece bir olduğunu küçük şey bu yüzden yok 57 00:02:56,710 --> 00:02:59,250 post prodüksiyon saat oluşturmak Ben son kez yaptığı gibi çalışır. 58 00:02:59,250 --> 00:03:02,300 Şimdi benim telefon numaram var. 59 00:03:02,300 --> 00:03:03,560 >> Ben Verizon seçersiniz. 60 00:03:03,560 --> 00:03:10,260 Ve burada, en bu mikrofonu dönelim Burada, ve burada benim telefon bu hedefliyoruz. 61 00:03:10,260 --> 00:03:13,130 Ben, Kayıt tıklayın gidiyorum hangi gerekir umarım 62 00:03:13,130 --> 00:03:14,530 veritabanına koydu. 63 00:03:14,530 --> 00:03:16,780 Şimdi ben gidiyorum komut satırı programı, hangi 64 00:03:16,780 --> 00:03:20,825 hatırlama nokta çizgi çağrıldı Metin ve parmaklarınızı çapraz. 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 İşte başlıyoruz. 67 00:03:26,527 --> 00:03:27,501 >> [TELEFON Dings] 68 00:03:27,501 --> 00:03:28,962 >> [Alkış] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID MALAN: paha daha Yani daha eğlenceli Ben içine almak eğer, tabii ki, eğlenceli. 71 00:03:34,940 --> 00:03:38,004 Ama eğer, ben düşündüm, daha eğlenceli biz Bu film anlardan biri yarattı 72 00:03:38,004 --> 00:03:40,420 nerede bir şey gibi gerçekten Kötü, dünyada oldu 73 00:03:40,420 --> 00:03:42,860 ve tüm NSA insanlar yıllardan gibi cep telefonları bip başlar 74 00:03:42,860 --> 00:03:44,860 metin mesajları ile Bu gerçeği onları uyaran. 75 00:03:44,860 --> 00:03:47,026 Yani biz denemek istiyorum düşündüm Burada aynı yeniden, 76 00:03:47,026 --> 00:03:49,610 Bir veritabanı kullanarak değil sayede, Bunun yerine önceden 77 00:03:49,610 --> 00:03:51,490 Bu gibi görünen bir program yazdı. 78 00:03:51,490 --> 00:03:53,660 >> Bu index.php-- olan ve ben çevrimiçi bu kodu koymak 79 00:03:53,660 --> 00:03:56,710 eee edilene görünüşte Sadece, geçip işler 80 00:03:56,710 --> 00:04:00,990 MVC tarzı paradigması kullanarak biz Sorun sette daha ayrıntılı konuşmak 81 00:04:00,990 --> 00:04:01,650 yedi. 82 00:04:01,650 --> 00:04:02,910 Bu formu oldukça basittir. 83 00:04:02,910 --> 00:04:06,634 Bir göndermek için gidiyor Posta yoluyla here.php adlı dosya. 84 00:04:06,634 --> 00:04:09,300 Ve görünüşe göre sormak için gidiyor Bir isim ve bir telefon numarası için, 85 00:04:09,300 --> 00:04:11,400 ve bundan sonra da ile sözde Seç menüsü, bu kadar 86 00:04:11,400 --> 00:04:14,250 size en az dört vereceğim popüler ABD cep telefonu taşıyıcıları, 87 00:04:14,250 --> 00:04:17,470 ve sonra etkili izin Buraya tıklayarak katılım almak. 88 00:04:17,470 --> 00:04:20,471 >> Ve burada, bu arada, gidiyor son kez kod bazı ödünç. 89 00:04:20,471 --> 00:04:22,553 Ve sadece bu yağsız eğer, Eğer var olduğunu göreceksiniz 90 00:04:22,553 --> 00:04:23,900 Hata denetimi bir sürü. 91 00:04:23,900 --> 00:04:26,640 Ama sonunda güzellik olduğunu Bugün bir veritabanına yazma değiliz. 92 00:04:26,640 --> 00:04:29,130 Biz basit tutuyorlar ve Sadece umarım gönderiyor 93 00:04:29,130 --> 00:04:32,190 fonksiyonu I yoluyla bir metin mesajı Son birkaç gündür çağrı üzerine yazdı 94 00:04:32,190 --> 00:04:36,270 Fonksiyonlar olan Metin,. php, hangi çevrimiçi tekrar kullanılabilir. 95 00:04:36,270 --> 00:04:38,210 >> Bu katılmak istiyorum Yani eğer. 96 00:04:38,210 --> 00:04:40,190 Biz bir şey saklamak için gitmiyoruz. 97 00:04:40,190 --> 00:04:43,809 Gerçek zamanlı olarak burada bu URL'ye gidin. 98 00:04:43,809 --> 00:04:46,850 Henüz gönderin, ama diyelim vermeyin bu filmin birine sahip görmek 99 00:04:46,850 --> 00:04:49,830 anlar nerede herkesin cep telefonu başlar umarım sadece bip 100 00:04:49,830 --> 00:04:53,580 Bu yılda bir kez farklı 2011 yılında nerede bu korkunç ters gitti. 101 00:04:53,580 --> 00:04:58,910 Ve o adrese gitmek kez, Eğer bir süper basit bir form görmelisiniz 102 00:04:58,910 --> 00:05:03,884 Bu size bir isim varsa, bir cep telefonu sayısı ve bir cep telefonu taşıyıcının 103 00:05:03,884 --> 00:05:06,175 Orada listeyi maçları, go önde ve formu doldurun. 104 00:05:06,175 --> 00:05:07,880 Ama basmayın henüz gönderin. 105 00:05:07,880 --> 00:05:10,850 >> Formu bu gibi bakmak için gidiyor. 106 00:05:10,850 --> 00:05:13,660 Devam edin ve yazın adınız, telefon numaranız. 107 00:05:13,660 --> 00:05:17,670 Oop, birileri ilerisini gidiyor. 108 00:05:17,670 --> 00:05:18,170 Tamam. 109 00:05:18,170 --> 00:05:19,340 Tamam, herkes formu dolu. 110 00:05:19,340 --> 00:05:21,400 Bu çalışması gerekir telefon, istediğiniz de, eğer. 111 00:05:21,400 --> 00:05:23,695 Pekala, set olsun senin işaretleri, gidin. 112 00:05:23,695 --> 00:05:24,195 Merhaba. 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 Ne? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 Hayır. 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 Yemin ederim, ben test Bu birden çok kez bugün. 119 00:05:40,250 --> 00:05:41,720 Sen var? 120 00:05:41,720 --> 00:05:43,145 >> [SESLER interposing] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID MALAN: Tamam, kullanıcı hatası belki de. 123 00:05:49,560 --> 00:05:50,550 Bu iki. 124 00:05:50,550 --> 00:05:53,300 Bu bir dışarı iki çalıştı yüz, üç, dört birkaçıdır. 125 00:05:53,300 --> 00:05:55,940 Tamam, bu iyi. 126 00:05:55,940 --> 00:05:58,520 Beş üzerinden dört için nasıl doğruluğunu. 127 00:05:58,520 --> 00:05:59,810 >> Peki ne oldu? 128 00:05:59,810 --> 00:06:02,727 Yani muhtemelen, görmeden senin ekranlar, neden Hatalı olabilir? 129 00:06:02,727 --> 00:06:05,518 Biz sadece olduğunu muhtemelen Çok sayıda bağlantı yapmaya çalışıyorum 130 00:06:05,518 --> 00:06:08,110 tüm Harvard'ın posta sunucusuna bir zamanlar aynı IP adresinden gelen. 131 00:06:08,110 --> 00:06:10,740 Ben yaptım çünkü ben sadece tahmin ediyorum test lüksüne sahip 132 00:06:10,740 --> 00:06:13,220 Bazı bu kod Peşin 300 kişi 133 00:06:13,220 --> 00:06:16,040 ama şimdi fark en azından gerektiği olduğunu 134 00:06:16,040 --> 00:06:18,250 Bu defa işi aldık. 135 00:06:18,250 --> 00:06:22,880 >> Pekala, öyleyse neden bu hepsi Neler daha germane? 136 00:06:22,880 --> 00:06:24,900 Peki ilk, hızlı duyurular çift. 137 00:06:24,900 --> 00:06:29,350 Yani bir, sen Chang katılmak isterseniz, ve Öğle yemeğinde Nick, ve diğerleri bu Cuma, 138 00:06:29,350 --> 00:06:32,400 Orada her zamanki URL'den RSVP yapmak. 139 00:06:32,400 --> 00:06:35,650 Eğer konsantre düşünüyorsun veya CS ikincil yapıyor, 140 00:06:35,650 --> 00:06:38,941 Eğer bir ikinci sınıf öğrencisi olsanız, ya da birinci, hatta küçük ya da bu noktada kıdemli 141 00:06:38,941 --> 00:06:42,490 ve hala kurslara sıkmak olabilir, fark mühendislik okulu olduğunu 142 00:06:42,490 --> 00:06:45,620 ücretsiz Ben için topluyor ve Jerry'nin dondurma ve danışmanlık 143 00:06:45,620 --> 00:06:48,910 Bu Çarşamba kısa bir süre sonra sınıf CS binada 04:00 de 144 00:06:48,910 --> 00:06:49,771 Maxwell Dworkin de. 145 00:06:49,771 --> 00:06:51,520 Bu çok hızlı olursa Ekranda, sadece gitmek 146 00:06:51,520 --> 00:06:55,260 Bir için cs50.harvard.edu için Facebook olayı link 147 00:06:55,260 --> 00:06:57,140 nerede daha fazla ayrıntı görebilirsiniz. 148 00:06:57,140 --> 00:07:01,390 >> Bu arada, ben düzeltmek düşündüm bir başka şey Çarşamba günü goofed. 149 00:07:01,390 --> 00:07:04,400 Mark'ın kimliği çıkıyor Facebookda üç değildi. 150 00:07:04,400 --> 00:07:05,230 Dört oldu. 151 00:07:05,230 --> 00:07:08,330 Çıkıyor o daha testi vardı hesapları Hatırladığım daha. 152 00:07:08,330 --> 00:07:12,400 Ama bu bir fırsat gibi hissettim yapmak için bu gibi bir URL yukarı çekmek. 153 00:07:12,400 --> 00:07:16,680 >> Yani Facebook, bir sahip çıkıyor API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 hangi bir mekanizma sayede sensin programlı veri talep edebilir 155 00:07:20,070 --> 00:07:24,480 ve Facebook makineyi geri almak okunabilir bilgiler değil, web sayfaları 156 00:07:24,480 --> 00:07:28,690 ama sadece ham metin, bir şey JavaScript Object Gösterimi denir. 157 00:07:28,690 --> 00:07:32,150 Ve aslında, eğer ben bu ziyaret URL, ve, varsayılan olarak, yakınlaştırmak 158 00:07:32,150 --> 00:07:34,960 Bu halka Mark olduğunu erişilebilir bilgi. 159 00:07:34,960 --> 00:07:37,430 >> Ve ilginç detay Burada sadece onun kimliğidir 160 00:07:37,430 --> 00:07:40,670 gerçekten sayı dört, hangi ben en kısa sürede ben bunu olarak gerçekleşmiştir. 161 00:07:40,670 --> 00:07:44,260 Eğer biliyorsanız kendiniz yapabilirsiniz Facebook kullanıcı adınız eğer varsa. 162 00:07:44,260 --> 00:07:45,440 Sadece orada üst onu yazın. 163 00:07:45,440 --> 00:07:46,640 Ve bunların hiçbiri özel olduğunu. 164 00:07:46,640 --> 00:07:48,670 Ben sadece bu bile yapıyorum Gizli modda. 165 00:07:48,670 --> 00:07:49,900 Yani ben bile giriş değilim. 166 00:07:49,900 --> 00:07:54,440 Ve o I görüyorsanız görünüşe göre kullanıcı sayısı 6454 oldu 167 00:07:54,440 --> 00:07:56,480 değildir Facebook hakkında bu gün çok kötü. 168 00:07:56,480 --> 00:07:59,900 Yani nasıl olsa, sen de görürsünüz Orada ek bilgi. 169 00:07:59,900 --> 00:08:02,150 >> Ve yararlı bir özelliği Bunun sen misin 170 00:08:02,150 --> 00:08:06,890 Kendi yazılımı yazabilirsiniz nasılsa bu gibi verilerin entegre 171 00:08:06,890 --> 00:08:08,170 Kendi uygulama içine. 172 00:08:08,170 --> 00:08:10,650 Kullanıcıların yetkisi olabilir web oturum, 173 00:08:10,650 --> 00:08:14,190 kendi özel kullanıcı adı kullanarak değil ve Şifre ama belki kendi Facebook giriş 174 00:08:14,190 --> 00:08:16,170 ve hatta bilgi almak onların arkadaşları hakkında, 175 00:08:16,170 --> 00:08:18,740 böyle veya benzeri onaylaması durumunda. 176 00:08:18,740 --> 00:08:21,430 Yani, çok, o CS50 unutmayın kendi API'leri bazı vardır 177 00:08:21,430 --> 00:08:24,620 Tabii katalog verileri için bir, yemek yer sarılmalar menüler için bazı 178 00:08:24,620 --> 00:08:26,730 salonları, tüm binalar ve yerler 179 00:08:26,730 --> 00:08:30,930 Kampüste biz de bir API var Eğer benzer sorgulamak ve alabilirsiniz 180 00:08:30,930 --> 00:08:35,520 Eğer entegre edebilirsiniz arka metinsel veri PHP, JavaScript veya içine, hatta, 181 00:08:35,520 --> 00:08:38,320 daha az sıklıkta, bir C nihai proje tabanlı. 182 00:08:38,320 --> 00:08:41,190 >> Aslında öncesinde nihai için Proje bir kaç kilometre taşları vardır. 183 00:08:41,190 --> 00:08:42,980 Diğer gün bize bir e-posta aldım. 184 00:08:42,980 --> 00:08:45,761 Teklifin fark Bu önümüzdeki Pazartesi kaynaklanmaktadır. 185 00:08:45,761 --> 00:08:49,010 Mutlaka bağlama, ama sen değil öğretme arkadaşlarının almak gerekiyor 186 00:08:49,010 --> 00:08:51,260 Onay yapmadan önce sonra herhangi bir değişiklik. 187 00:08:51,260 --> 00:08:54,280 Ve sonra öndedir bir Diğer kilometre taşları sayısı. 188 00:08:54,280 --> 00:08:56,542 >> Bu yüzden de, seni kızdırmak için, Bazı olanakları ile, 189 00:08:56,542 --> 00:08:58,250 biz bir grup var Bu renk ampuller. 190 00:08:58,250 --> 00:09:01,190 Ve bazı çocuklar şimdi bazı var senin yurt odasında bu yanı. 191 00:09:01,190 --> 00:09:02,920 Ve onlar da bir API var. 192 00:09:02,920 --> 00:09:07,300 Yani bu ikili ampuller hafta hatırlama önce Dan Bradley ve Ansel 193 00:09:07,300 --> 00:09:08,780 Duff bizim için yarattı. 194 00:09:08,780 --> 00:09:12,560 Onlar için bir yazılım arayüzü kullanılmış Bu ampul, şu anda hangi 195 00:09:12,560 --> 00:09:15,232 elektrik takılı ve ardından kablosuz aracılığıyla 196 00:09:15,232 --> 00:09:17,690 küçük bir şey bağlanır , buraya Köprüsü denilen 197 00:09:17,690 --> 00:09:21,280 Küçük bir yönlendirici ANLAMINDA gibi Bu özel cihaz için. 198 00:09:21,280 --> 00:09:26,540 Ben nasıl biliyorum >> Ama çıkıyor Hepimizin şimdi yaptığım gibi, HTTP mesajları göndermek, 199 00:09:26,540 --> 00:09:31,670 Ben böyle bir mesaj göndermek Bu ampul veya kapatmak için 200 00:09:31,670 --> 00:09:34,000 veya herhangi bir sayı yapmak Bunun üzerine diğer işlemler. 201 00:09:34,000 --> 00:09:36,110 O olsun değil ki, o deftere değil dikkat edin. 202 00:09:36,110 --> 00:09:37,760 Koymak denilen bir tane daha var. 203 00:09:37,760 --> 00:09:39,630 Aslında birkaç diğer tür fiiller var. 204 00:09:39,630 --> 00:09:42,920 Ama, bir yol orada olduğunu fark API çizgi yeni bir geliştirici çizgi, 205 00:09:42,920 --> 00:09:44,990 devlet çizgi, bir çizgi, ışık çizgi. 206 00:09:44,990 --> 00:09:49,060 >> Bu görünüşe göre sadece var yol bu şirket, Philips, 207 00:09:49,060 --> 00:09:51,640 Eğer vurmak zorunda karar verdi HTTP isteği ile 208 00:09:51,640 --> 00:09:55,010 Eğer durumunu değiştirmek istiyorsanız HTTP 1.1 kullanılarak ampul. 209 00:09:55,010 --> 00:09:56,380 Sonra boş bir satır fark. 210 00:09:56,380 --> 00:10:00,170 Ve sonra son olarak ne gibi görünüyor çeşit bir dizi çeşit 211 00:10:00,170 --> 00:10:04,730 Bu tekrar çağırdı olacak JavaScript Object Notation, ya da Jason. 212 00:10:04,730 --> 00:10:08,000 Ve ne burada görmek olduğunu Üç anahtar değer çiftleri vardır. 213 00:10:08,000 --> 00:10:09,115 >> Bir anahtar denir. 214 00:10:09,115 --> 00:10:10,990 Ve onun değerini görünüşte Gerçek olacak. 215 00:10:10,990 --> 00:10:13,612 Parlaklık 128, hangi int çeşit. 216 00:10:13,612 --> 00:10:15,820 Sonra geçiş zamanı Görünüşe göre, sıfır, 217 00:10:15,820 --> 00:10:17,970 o gidiyor ne kadar Bu şeyi açmak için alır. 218 00:10:17,970 --> 00:10:19,890 >> Peki şimdi bu ampul söner. 219 00:10:19,890 --> 00:10:22,880 Ben tam olarak yapmak Ama eğer izin bu-- Bana biraz hile sayfasına gidin 220 00:10:22,880 --> 00:10:25,200 Dan kurmak olduğunu advance-- ve ben gidiyorum 221 00:10:25,200 --> 00:10:27,920 go ahead ve kopyalamak için Aşağıdaki komut. 222 00:10:27,920 --> 00:10:30,200 Curl, bazılarınız gibi CS50 üzerinde toplanan olabilir 223 00:10:30,200 --> 00:10:35,080 Tartışın Telnet gibi gibi bir yardımcı programdır HTTP isteklerini taklit edebilirsiniz ki, 224 00:10:35,080 --> 00:10:36,360 Özellikle koyar. 225 00:10:36,360 --> 00:10:39,710 Ben bu veri gönderebilirsiniz, özellikle ne biz sadece 226 00:10:39,710 --> 00:10:43,430 önce özel bir an gördüm Burada bu URL'ye. 227 00:10:43,430 --> 00:10:46,310 Ve sonra Curl işlemek için gidiyor Gerekli başlıkların hepsi 228 00:10:46,310 --> 00:10:47,600 ve orada ayrıştırma. 229 00:10:47,600 --> 00:10:54,700 >> Yani yapmam gereken içine kopyalayın olduğunu Daha sonra bir terminal penceresi ve Enter tuşuna basın. 230 00:10:54,700 --> 00:10:56,000 Ve ampul yanar. 231 00:10:56,000 --> 00:10:59,060 Ve bu tüm geçiyor Benim bilgisayar kablosuz 232 00:10:59,060 --> 00:11:01,960 nasılsa köprü, aşağı hangi Daha sonra bu ampul konuşuyor. 233 00:11:01,960 --> 00:11:02,960 Ben başka bir şey yapabilirim. 234 00:11:02,960 --> 00:11:07,050 Ben bu şeyi yapabilir Örneğin kırmızı gidin. 235 00:11:07,050 --> 00:11:11,040 Örneğin ben yapabilirim Bu şey yeşil gitmek. 236 00:11:11,040 --> 00:11:12,220 Ben mavi gitmek yapabilirsiniz. 237 00:11:12,220 --> 00:11:14,760 >> Ve bunların her biri fark örnekleri, ben değiştireceğim tüm 238 00:11:14,760 --> 00:11:18,540 Sözde renk değeri için Aslında o biraz renk ver. 239 00:11:18,540 --> 00:11:20,320 Bu yüzden bana hem de bu bir yapıştırın verelim. 240 00:11:20,320 --> 00:11:21,000 Şimdi mavi. 241 00:11:21,000 --> 00:11:24,672 >> Ve hatta meraklısı yapabilirsiniz şeyler yeşil gidelim Nere. 242 00:11:24,672 --> 00:11:26,630 Ve ben bu yapabileceğini Kendi koduyla ders. 243 00:11:26,630 --> 00:11:30,670 Ama bile API kendisi korkak operasyonları destekler 244 00:11:30,670 --> 00:11:35,510 Bu gibi şimdi hangi rahatsız edecek Önümüzdeki 30 saniye için bize. 245 00:11:35,510 --> 00:11:39,170 >> Yani bir tat ne olabilir var bir API ile yapmak, bu bir içeren 246 00:11:39,170 --> 00:11:40,010 ampuller. 247 00:11:40,010 --> 00:11:42,510 CS50 bir çift olduğunu unutmayın Google Glass çiftleri şimdi etsen eğer 248 00:11:42,510 --> 00:11:45,380 boyunca bir şey mücadele gibi Bu çizgiler Arduino Unos, burada 249 00:11:45,380 --> 00:11:48,670 küçük küçük bilgisayarlar, aslında biraz devre kartı üzerinde 250 00:11:48,670 --> 00:11:50,470 Bağlanmak ki teller ve diğer şeyler 251 00:11:50,470 --> 00:11:52,732 ve aslında kontrol Gerçek dünya çevre. 252 00:11:52,732 --> 00:11:54,940 Ve sonra bir çift vardır biz yeni oyuncaklar. 253 00:11:54,940 --> 00:11:59,294 Bu bir anlamıyla sadece geldi posta ile diğer gün bir Myo Armband. 254 00:11:59,294 --> 00:12:01,710 Ve ben bunun için bir yol olduğunu düşündüm Eğer projeler hakkında heyecan olsun 255 00:12:01,710 --> 00:12:03,720 Eğer kullanmak olabilir Bu donanım olur 256 00:12:03,720 --> 00:12:08,900 Bu kısa klibi oynatmak için olacak Onlar millet alay için kullandığınız 257 00:12:08,900 --> 00:12:10,500 Şimdi gelecekte yaşıyoruz. 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [MÜZİK OYUN] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID MALAN: sadece bir kaç hafta içinde Yani Çok CS50 fuarda bu serin olabilir. 262 00:13:37,109 --> 00:13:39,150 Başka bir cihaz ki Biz konum bir grup var 263 00:13:39,150 --> 00:13:42,090 projeler için dışarı kredi için mutlu Bir hareket kontrolörü denir. 264 00:13:42,090 --> 00:13:45,030 Bu küçük USB aygıtı Bir bilgisayara bağlanmak olduğunu 265 00:13:45,030 --> 00:13:47,520 Eğer etkileşim sağlar dizüstü, Mac veya PC, 266 00:13:47,520 --> 00:13:51,570 Eğer bir Xbox Kinect gibi oldu sanki ve aslında çok fiziksel hareketleri yapmak 267 00:13:51,570 --> 00:13:54,509 gibi biz bu gördüğünüz geleceğin vizyonu. 268 00:13:54,509 --> 00:13:56,505 >> [MÜZİK OYUN] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID MALAN: Yani olsa bile hiçbir fikri nasıl böyle bir şey 271 00:15:06,260 --> 00:15:10,050 muhtemelen icat veya iş olabilir Bir donanım seviyesinde, hiçbir konuda. 272 00:15:10,050 --> 00:15:13,520 Hatta CS50 sadece birkaç ay sonra, ve programlama bir anlayış 273 00:15:13,520 --> 00:15:19,460 daha genel ve web programlama daha Son zamanlarda, ve sonra da API'ler, ve HTTP, 274 00:15:19,460 --> 00:15:21,830 Eğer üzerinden erişebilirsiniz yazılım API'leri eğer 275 00:15:21,830 --> 00:15:24,680 Bunlardan birini ödünç istiyorum cihazlar aslında konuşmak 276 00:15:24,680 --> 00:15:27,180 ve endişelenmenize gerek yok altında yatan uygulama 277 00:15:27,180 --> 00:15:30,220 tamamen bilgilerini tabakaların bu kavramı ile tutarlı 278 00:15:30,220 --> 00:15:33,610 biz ettik bir soyutlama dönem boyunca görülen. 279 00:15:33,610 --> 00:15:37,990 >> Bu yüzden de hafta sonu, haber bir kaç adet gördüm. 280 00:15:37,990 --> 00:15:40,640 Seminerlere gidin, ilk git eğer bir şey öğrenmek istiyorum 281 00:15:40,640 --> 00:15:42,160 konularda herhangi bir sayı daha. 282 00:15:42,160 --> 00:15:43,340 Orada URL'yi bakın. 283 00:15:43,340 --> 00:15:45,890 Ve bu gönderildi Bildiğiniz Chang tarafından bana, 284 00:15:45,890 --> 00:15:47,850 kim filler ordumuzu baskı var. 285 00:15:47,850 --> 00:15:49,910 Aşağıdaki gibi Ve bir başlık oldu. 286 00:15:49,910 --> 00:15:51,280 Ben yeni TV korkuyorum. 287 00:15:51,280 --> 00:15:54,301 Ben korkuyorum Neden bu açmak için ve size bir şey de olur. 288 00:15:54,301 --> 00:15:56,050 Yani biz şimdi konum dönem işaret, 289 00:15:56,050 --> 00:15:58,860 çok, nerede olsa bile anlayış ufak 290 00:15:58,860 --> 00:16:02,620 Web nasıl çalıştığını ve HTTP, ve bu gibi güvenlik, şeyler 291 00:16:02,620 --> 00:16:03,980 göz yakalamak için başlamalıdır. 292 00:16:03,980 --> 00:16:07,450 Ama aynı zamanda, anlayacaksınız Bu şeyler olup olmadığını 293 00:16:07,450 --> 00:16:08,430 Gerçek tehditler. 294 00:16:08,430 --> 00:16:10,940 >> Yani bir kaç alıntılar aldı Burada bu yazıdan. 295 00:16:10,940 --> 00:16:12,540 Aşağıdaki gibi Ve hikaye. 296 00:16:12,540 --> 00:16:14,300 Ben şimdi sahibi değilim Yeni bir akıllı televizyon, hangi 297 00:16:14,300 --> 00:16:18,470 akışı sağlamak için söz multimedya içeriği, oyunlar, uygulama, 298 00:16:18,470 --> 00:16:21,450 sosyal medya ve internet tarama, çok ah ve TV. 299 00:16:21,450 --> 00:16:24,410 Tek sorun ben şimdi olduğum Bunu kullanmak için korkuyor, yazar diyor. 300 00:16:24,410 --> 00:16:29,592 Eğer üzerinden okursanız, çok olurdu TV'niz için 46 sayfa gizlilik politikası. 301 00:16:29,592 --> 00:16:31,800 veri bu miktarı şey toplar şaşırtıcı olduğunu. 302 00:16:31,800 --> 00:16:35,710 Bu oturum nerede, ne zaman, nasıl ve için ne kadar TV kullanın. 303 00:16:35,710 --> 00:16:38,190 Bu, çerezleri izleme setleri Konuştuğumuz gibi, 304 00:16:38,190 --> 00:16:40,560 ve işaretleri tasarlanmış Eğer varsa algılamak için 305 00:16:40,560 --> 00:16:43,185 inceledi belirli içerik veya Belirli bir e-posta mesajı 306 00:16:43,185 --> 00:16:45,230 Eğer TV'nizde e-posta kontrol etmek istiyorsanız. 307 00:16:45,230 --> 00:16:48,430 Bu uygulamalar kaydeder sen kullanmak, ziyaret ettiğiniz web sitelerinin, 308 00:16:48,430 --> 00:16:52,280 ve içerik ile nasıl etkileşim, Akıllı TV üzerinden bütün bunlar yapıyor. 309 00:16:52,280 --> 00:16:55,470 Ayrıca bu, creepier yet-- bu benim addition-- var 310 00:16:55,470 --> 00:16:58,140 Bir kamera inşa etti yüz tanıma ile. 311 00:16:58,140 --> 00:17:01,010 >> Amacı sağlamaktır TV jest kontrolü 312 00:17:01,010 --> 00:17:05,490 ve oturum sağlayacak Yüzünü kullanarak hesabınızı kişiselleştirilmiş. 313 00:17:05,490 --> 00:17:08,940 Baş, görüntüler TV'de kaydedilen yerine yüklendi 314 00:17:08,940 --> 00:17:09,940 kurumsal sunucu. 315 00:17:09,940 --> 00:17:12,520 Olumsuz internet Bağlantı tüm TV yapar 316 00:17:12,520 --> 00:17:14,811 korsanlara karşı savunmasız kim yeteneği göstermiştir 317 00:17:14,811 --> 00:17:16,700 Makinenin tam kontrol altına almak için. 318 00:17:16,700 --> 00:17:20,880 >> Daha rahatsız, o değildi sanki Yeterince zeki, mikrofon. 319 00:17:20,880 --> 00:17:23,599 TV sesini sahiptir tanıma özelliği 320 00:17:23,599 --> 00:17:26,859 Bu izleyiciler kontrol etmenizi sağlar Sesli komutları ile ekran. 321 00:17:26,859 --> 00:17:30,290 Ama hizmet ile geliyor oldukça uğursuz bir uyarı. 322 00:17:30,290 --> 00:17:33,030 Farkında olun eğer senin konuşulan kelimeler şunlardır 323 00:17:33,030 --> 00:17:36,210 kişisel veya hassas diğer bilgi, bu bilgiler 324 00:17:36,210 --> 00:17:40,310 Yakalanan veriler arasında olacak ve üçüncü bir tarafa iletilir. 325 00:17:40,310 --> 00:17:40,870 O var mı? 326 00:17:40,870 --> 00:17:45,860 Kişisel veya hassas deme TV'nizin önünde şeyler. 327 00:17:45,860 --> 00:17:47,280 >> Peki bu gerçek aslında. 328 00:17:47,280 --> 00:17:50,530 Ve çok zor eğer görmek için Best Buy gitmek veya TV'ler için benzeri 329 00:17:50,530 --> 00:17:51,030 bugünlerde. 330 00:17:51,030 --> 00:17:52,540 Onlar bir şekilde tüm akıllı değilsin. 331 00:17:52,540 --> 00:17:54,740 Ve onlar alıyoruz akıllı ve creepier. 332 00:17:54,740 --> 00:17:57,490 Ve onlar sadece veri topluyorsunuz Biz konuştuk yollarla 333 00:17:57,490 --> 00:18:01,840 ve sonra HTTP veya üzerinden yükleyerek Bazı sunucuya başka bir protokol. 334 00:18:01,840 --> 00:18:05,720 >> Yani bu eğlenceli makalenin oldu bu online web sitesinde 335 00:18:05,720 --> 00:18:08,940 Burada, hangi bir konuştuk Özellikle hata veya yanlış kod 336 00:18:08,940 --> 00:18:11,340 biz aslında kravat olabilir Geçen haftaki tartışma içine. 337 00:18:11,340 --> 00:18:15,730 Yani bu başlık olarak oldu , aşağıdaki hikaye burada gider 338 00:18:15,730 --> 00:18:18,720 Josh Breckman bir çalıştı Bir sözleşme indi şirket 339 00:18:18,720 --> 00:18:22,390 Bir içerik yönetimi geliştirmek için Sistem, ya da denilen konum olarak CMS, 340 00:18:22,390 --> 00:18:24,380 oldukça büyük bir devlet web sitesi için. 341 00:18:24,380 --> 00:18:27,300 Ilgili projenin Çok Bir içerik yönetim sistemi geliştirilmesi 342 00:18:27,300 --> 00:18:29,840 çalışanlar olacağını, böylece inşa etmek ve korumak mümkün 343 00:18:29,840 --> 00:18:31,877 değişen kendi sitesi için içerik. 344 00:18:31,877 --> 00:18:34,210 Şeyler için de oldukça gitti Canlı gittikten sonra bir kaç gün. 345 00:18:34,210 --> 00:18:37,020 Ama günün altıncı, işler çok iyi değildi gitti. 346 00:18:37,020 --> 00:18:39,500 Içerik Tüm Web sitesi tamamen yok olmuştu. 347 00:18:39,500 --> 00:18:42,950 Ve tüm sayfaları varsayılan yol açtı, içerik web sayfasını girin. 348 00:18:42,950 --> 00:18:43,810 Whoops. 349 00:18:43,810 --> 00:18:46,080 Josh için çağrıldı araştırmak ve fark 350 00:18:46,080 --> 00:18:49,390 özellikle problemli olduğu bir dış IP adresi vardı 351 00:18:49,390 --> 00:18:53,380 gitmiş ve tüm silinmiş sistemde içeriği. 352 00:18:53,380 --> 00:18:56,290 >> IP adresi ait değil Bazı yurtdışı korsan eğilerek 353 00:18:56,290 --> 00:18:58,340 yararlı yok etmek Hükümet bilgi. 354 00:18:58,340 --> 00:19:05,190 Bu, googlebot.com karar Google'ın çok kendi web tarama örümcek. 355 00:19:05,190 --> 00:19:06,010 Whoops. 356 00:19:06,010 --> 00:19:09,150 Araştırma ve çabalıyorlar biraz sonra etrafında bir noncorrupt yedekleme bulmak için, 357 00:19:09,150 --> 00:19:10,180 Josh sorun bulundu. 358 00:19:10,180 --> 00:19:12,700 >> Bir kullanıcı kopyalanmış ve vardı birinden bazı içerikler yapıştırılan 359 00:19:12,700 --> 00:19:15,670 başka bir sayfa dahil olmak üzere Bir Köprü Düzenle 360 00:19:15,670 --> 00:19:17,577 sayfadaki içeriği düzenlemek için. 361 00:19:17,577 --> 00:19:20,160 Normalde bu olmaz bir bir dış kullanıcı beri sorunu olur 362 00:19:20,160 --> 00:19:24,320 Bir adı ve şifre girmeniz gerekir, ama CMS kimlik doğrulama sistemi, 363 00:19:24,320 --> 00:19:27,520 giriş sistemi, dikkate almadı 364 00:19:27,520 --> 00:19:30,980 sofistike hack Google Spider teknikleri. 365 00:19:30,980 --> 00:19:31,700 Whoops. 366 00:19:31,700 --> 00:19:33,610 >> Olarak çıkıyor, Google Örümcek kullanmak değildir 367 00:19:33,610 --> 00:19:36,950 it can demektir çerezler, Kolayca bir çek atlamak 368 00:19:36,950 --> 00:19:39,840 Çerez sette kaydedilir yanlış olduğunu. 369 00:19:39,840 --> 00:19:42,620 Aynı zamanda dikkat etmez JavaScript, normalde olur 370 00:19:42,620 --> 00:19:45,170 istemi ve kullanıcıları yönlendirme kim yapmadınız. 371 00:19:45,170 --> 00:19:48,610 Ancak her takip eder bulduğu her sayfadaki köprüyü, 372 00:19:48,610 --> 00:19:51,700 olanlar da dahil olmak üzere Başlığında Sayfa silin. 373 00:19:51,700 --> 00:19:52,650 Whoops. 374 00:19:52,650 --> 00:19:56,070 >> Peki bu daha ne anlama geliyor Teknik ama oldukça erişilebilir terimler? 375 00:19:56,070 --> 00:19:58,340 Sadece demektir kendi web sitesinde, 376 00:19:58,340 --> 00:20:02,287 bu bir farklı URL'ler yoktu ki Sorun yedi set sen görebilirsiniz. 377 00:20:02,287 --> 00:20:04,620 Sorunu hatırlayın yedi set veya sorun biliyorum yedi set 378 00:20:04,620 --> 00:20:06,411 Eğer meydan olduğunuzu, Diğer şeylerin yanı sıra, 379 00:20:06,411 --> 00:20:08,570 kullanıcılar adına stokları satmak için. 380 00:20:08,570 --> 00:20:14,010 Ama bu arada bu özelliği uygulama sizin kullanıcı köprüler vasıtasıyla olsun 381 00:20:14,010 --> 00:20:16,880 arayüzü, muhtemelen değil akıllı bir fikir 382 00:20:16,880 --> 00:20:20,300 Siteniz bir şekilde çünkü eğer ulaşılabilir ya da bir insan tarafından 383 00:20:20,300 --> 00:20:23,577 kim etrafında tıklayarak veya satın oluyor Google'ın veya Spider gibi bot 384 00:20:23,577 --> 00:20:26,160 dedikleri gibi bu sadece endeks çalışıyor web tarama 385 00:20:26,160 --> 00:20:29,060 Bir arama motoru olarak, web, onlar çok kolay olabilir 386 00:20:29,060 --> 00:20:31,340 URL bu tür almak yoluyla çarptı. 387 00:20:31,340 --> 00:20:33,770 Ve işlevsel olarak bu denk, bu durumda, 388 00:20:33,770 --> 00:20:37,000 Google tüm hisselerini satan. 389 00:20:37,000 --> 00:20:40,030 >> Şimdi açıkçası, tamamen bulunuyor ahmakça olduğunu CMS 390 00:20:40,030 --> 00:20:43,240 Kullanılmış JavaScript ve çerezleri onun giriş sistemi uygulamak için 391 00:20:43,240 --> 00:20:47,100 gibi, bu sunucu tarafı yapmıyor Siz PSET yapmak ve olacak 7-- 392 00:20:47,100 --> 00:20:49,940 Bir login.php var her file--, her zaman 393 00:20:49,940 --> 00:20:52,789 Her zaman güvenlik olmalı Sunucu tarafında yapılan, 394 00:20:52,789 --> 00:20:56,080 değil, istemci tarafında, çünkü bu gibi makalede önerir ve kendinizi olabilir 395 00:20:56,080 --> 00:20:59,600 o, bir noktada görmek Bir kullanıcı için önemsiz, iyi ya da kötü, 396 00:20:59,600 --> 00:21:02,860 Sadece JavaScript kapatmak için çerezleri söz değil. 397 00:21:02,860 --> 00:21:06,020 Yani günlük WTF olduğunu. 398 00:21:06,020 --> 00:21:07,970 >> Tane daha var, hangi , sadece tür korkutucu 399 00:21:07,970 --> 00:21:11,360 bu yüzden eğer söz edeceğiz Sadece bir hayat dersi olarak. 400 00:21:11,360 --> 00:21:14,850 Eğer bir uygulama kullandığınızda zaman Snapchat veya benzeri gibi adlandırılan 401 00:21:14,850 --> 00:21:19,380 Bu, bu fotoğrafları sadece son söylüyor Beş saniye, on saniye veya etajer. 402 00:21:19,380 --> 00:21:21,680 Onlar Yani geçici konum Kesinlikle değil durumda. 403 00:21:21,680 --> 00:21:25,670 Dijital, yolu yoktur gibi, Video çeşit uygulamak, 404 00:21:25,670 --> 00:21:30,150 veya görüntü, ya da metinsel gibi paylaşım diğer ucunda bir alıcı 405 00:21:30,150 --> 00:21:31,660 şekilde verileri kaydetmek olamaz. 406 00:21:31,660 --> 00:21:34,300 >> En naif şekilde, birisi kendi telefon alabilir. 407 00:21:34,300 --> 00:21:36,850 Ve onlar 10 saniye pencere var Bazı çırpıda bakarken 408 00:21:36,850 --> 00:21:39,410 sadece bazı diğer telefon almak ve tabii ki, onu fotoğraf. 409 00:21:39,410 --> 00:21:41,660 Yani koruyabilirsiniz dijital bir şey bu şekilde. 410 00:21:41,660 --> 00:21:44,620 Bazılarınız almak için biliyorum Telefonunuzda ekran. 411 00:21:44,620 --> 00:21:49,290 Aslında, bu bilmiyorsanız, fark, en az Snapchat olduğu, 412 00:21:49,290 --> 00:21:51,040 ve diğer düşünüyorum uygulamalar bu gün, 413 00:21:51,040 --> 00:21:53,720 en azından eğer size Alıcı aslında var 414 00:21:53,720 --> 00:21:55,310 Görüntünün bir ekran görüntüsü alınır. 415 00:21:55,310 --> 00:22:00,870 >> Ama daha kötüsü, bu snappening oldu Birisi son zamanlarda icat gibi, 416 00:22:00,870 --> 00:22:04,680 Nerede 100.000 enstantane serbest olmuştu 417 00:22:04,680 --> 00:22:09,310 Bir torrent dosyası denir ne Çeşitli web sitelerinde sonuçta. 418 00:22:09,310 --> 00:22:12,000 Ve bunlar bir sürü yer Özel mesaj ve mesajların. 419 00:22:12,000 --> 00:22:15,210 Bu, çoğu iyi huylu çıkıyor böylece beklediğiniz değil ne. 420 00:22:15,210 --> 00:22:17,580 Ama insanlar vardı çünkü Üçüncü şahıs web sitesine kullanılır, 421 00:22:17,580 --> 00:22:20,270 onların Snapchat ile giriş kullanıcı adı ve şifre ve daha sonra 422 00:22:20,270 --> 00:22:23,470 onların enstantane tüm tasarruf Bu üçüncü taraf web sitesinde. 423 00:22:23,470 --> 00:22:26,130 Ve o üçüncü parti oldu hacklenmiş web sitesinin, 424 00:22:26,130 --> 00:22:30,710 hangi sadece anlamına birisi anladım nasıl Bu görüntülerin hepsi 100.000 artı almak için 425 00:22:30,710 --> 00:22:33,822 kendi sabit sürücüye sonraki paylaşım için. 426 00:22:33,822 --> 00:22:36,030 Açıkçası, burada da, bu tür var ve ahmakça olduğunu Snapchat 427 00:22:36,030 --> 00:22:39,360 Böyle bir şekilde uygulanmasını Üçüncü taraf kesişim sıralayabilirsiniz 428 00:22:39,360 --> 00:22:43,310 Veri ve bağlı değil ki senin telefonda çalışan kendi uygulama. 429 00:22:43,310 --> 00:22:46,947 Ama burada da, bu fark şeyler, sürpriz sizi yakalamak değil 430 00:22:46,947 --> 00:22:49,030 ya da en azından orada olmalıdır Burada bir hayat dersi olacak. 431 00:22:49,030 --> 00:22:52,220 Teknik isterseniz detaylar, orada o URL'ye gitmek 432 00:22:52,220 --> 00:22:53,570 Bugünün slaytlar var. 433 00:22:53,570 --> 00:23:00,960 Pekala, herhangi bir soru CS bugünün hayat dersleri? 434 00:23:00,960 --> 00:23:02,710 Bu kapatın. 435 00:23:02,710 --> 00:23:04,970 Hiç bir şey? 436 00:23:04,970 --> 00:23:06,301 Hiç bir şey? 437 00:23:06,301 --> 00:23:09,050 Ben kontrol bir sürü insan var Şimdi onların Snapchat falan. 438 00:23:09,050 --> 00:23:11,690 >> Pekala, SQL nedenle, Structured Query Language. 439 00:23:11,690 --> 00:23:12,509 Şimdi bu sarın edelim. 440 00:23:12,509 --> 00:23:14,300 Ayrıca, her ne kadar biz sadece kaşıma ediyoruz 441 00:23:14,300 --> 00:23:16,310 Bu yüzey dil, size vereceğim 442 00:23:16,310 --> 00:23:18,930 Dilin yeterli pset 7 şeklinde 443 00:23:18,930 --> 00:23:22,140 böylece bazı üstesinden gelebilirsiniz ki oldukça yaygın işlevsellik. 444 00:23:22,140 --> 00:23:24,912 Ama bir çift vardır farkındalar seninle gerekmez şeyler, 445 00:23:24,912 --> 00:23:27,120 ama onlar için gidiyoruz Önemli nihai projeler geliyor 446 00:23:27,120 --> 00:23:30,760 ve kesinlikle gerçek hale gelmek Gerçek kullanıcılarla web siteleri 447 00:23:30,760 --> 00:23:32,040 Bu tasarım kararıdır. 448 00:23:32,040 --> 00:23:34,460 >> Bu o çıkıyor MySQL veritabanı, sen 449 00:23:34,460 --> 00:23:37,460 gibi seçenekler demet var senin sütunlar için veri türleri 450 00:23:37,460 --> 00:23:41,670 ve diğer şeyler, ama aynı zamanda var adlandırılan depolama seçimi 451 00:23:41,670 --> 00:23:44,570 tüm verilerinizi için motor, Dosya sistemi sıralama, 452 00:23:44,570 --> 00:23:46,700 Eğer bilginiz varsa, tüm verilerinizi için. 453 00:23:46,700 --> 00:23:48,830 Ne biçim sonuçta saklanır? 454 00:23:48,830 --> 00:23:53,300 Ve en yaygın, belki de, olmuştur MyISAM ve InnoDB, teknik terimler 455 00:23:53,300 --> 00:23:56,060 biz sadece umurumda edeceğiz ölçüde bu bir yer alır 456 00:23:56,060 --> 00:23:58,500 ve bir yok Aşağıdaki özellik. 457 00:23:58,500 --> 00:24:00,390 >> Var olduğunu varsayalım Biraz yurt buzdolabı. 458 00:24:00,390 --> 00:24:03,030 Ve seni ve varsayalım sizin Bu buzdolabı paylaşan oda arkadaşı, 459 00:24:03,030 --> 00:24:04,682 diyelim ki süt gerçekten düşkün. 460 00:24:04,682 --> 00:24:07,140 Ve bu aslında, nasıl Hikaye yolu bana geri söylendi 461 00:24:07,140 --> 00:24:10,890 gün ben bir ders aldı CS 161 İşletim Sistemleri, denir ki 462 00:24:10,890 --> 00:24:12,580 benzer şekilde bu konuyu araştırıyor. 463 00:24:12,580 --> 00:24:13,760 Yani bu buzdolabı var. 464 00:24:13,760 --> 00:24:14,630 Sen süt bitti. 465 00:24:14,630 --> 00:24:17,000 Ve sen oda arkadaşı en, eve gel hala sınıfta ya da her neyse de, 466 00:24:17,000 --> 00:24:19,208 ve ben gidiyorum karar dışarı çıkmak ve biraz süt olsun. 467 00:24:19,208 --> 00:24:22,630 Eğer buzdolabı kapatmak Yani, tıkanabilir Öğrenci yurdunda, sokak gidin 468 00:24:22,630 --> 00:24:25,330 CVS veya yerde ve almak için doğrultusunda bazı süt satın almak. 469 00:24:25,330 --> 00:24:28,960 >> Bu arada, senin oda arkadaşı eve alır sınıf, yurt odasına alır 470 00:24:28,960 --> 00:24:31,802 Ayrıca anlar, buzdolabı açılır ooph, biz süt bitti. 471 00:24:31,802 --> 00:24:33,760 Yani o kapatır buzdolabı ve sonra olur 472 00:24:33,760 --> 00:24:35,610 Diğer CVS gitmek için, hangi olur 473 00:24:35,610 --> 00:24:38,470 bir blok uzaklıkta başka CVS kare ve çizgi alır 474 00:24:38,470 --> 00:24:40,230 Bazı süt oraya. 475 00:24:40,230 --> 00:24:42,524 Şimdi, tabii ki, bir kaç dakika Daha sonra, her iki geri almak, 476 00:24:42,524 --> 00:24:44,690 ve mümkün olan en kötü sonuçlar oldu. 477 00:24:44,690 --> 00:24:45,792 İkiniz de süt var. 478 00:24:45,792 --> 00:24:47,500 Ve gerçekten yok süt gibi o kadar. 479 00:24:47,500 --> 00:24:49,625 Yani bunlardan sadece biridir bir noktada ekşi olacak. 480 00:24:49,625 --> 00:24:55,941 Yani şimdi aşırı miktarda var süt buzdolabında tüm niye çünkü? 481 00:24:55,941 --> 00:24:57,072 >> [Duyulamaz] 482 00:24:57,072 --> 00:24:59,780 DAVID MALAN: Evet, değil mi şekilde birbirleri ile iletişim 483 00:24:59,780 --> 00:25:00,904 Bu Süt elde edildi. 484 00:25:00,904 --> 00:25:04,320 Basit Yani İnsan dünyada yolları, 485 00:25:04,320 --> 00:25:08,390 Bu aptal önlemek nasıl Böyle oluyor senaryo 486 00:25:08,390 --> 00:25:09,750 Bu sadece bir ile sona. 487 00:25:09,750 --> 00:25:10,840 Onları Metin, evet iyi. 488 00:25:10,840 --> 00:25:12,877 Ama başka nasıl? 489 00:25:12,877 --> 00:25:13,460 Post-it notlar. 490 00:25:13,460 --> 00:25:14,626 DAVID MALAN: Bir Post-it notu. 491 00:25:14,626 --> 00:25:17,150 Iletişim Herhangi bir şekilde Bu oda arkadaşını söyler 492 00:25:17,150 --> 00:25:18,670 süt için buzdolabı girmeyiz. 493 00:25:18,670 --> 00:25:20,440 Kendi başıma eksikleri gidiyorum. 494 00:25:20,440 --> 00:25:22,770 Yani bir şekilde ihtiyaç Bu kaynak kilitlemek için. 495 00:25:22,770 --> 00:25:27,180 Bu yüzden bu-- yapabilirsiniz biz tür can hikaye berbat ve CS hikayenin içine çevirmek 496 00:25:27,180 --> 00:25:30,360 böylece tıpkı bir benzeri bu düşün bazı değer saklamak değişken. 497 00:25:30,360 --> 00:25:32,570 Ve şimdi, Süt değeri sıfırdır 498 00:25:32,570 --> 00:25:35,410 Eğer sizin istemediğiniz Oda arkadaşım bu değişken kontrol etmek 499 00:25:35,410 --> 00:25:38,730 ve sonra karar Kendisini yapmak Bu değişkenin durumuna göre 500 00:25:38,730 --> 00:25:42,430 Eğer sürecinde iseniz Bu değişkenin durumunu değiştirme. 501 00:25:42,430 --> 00:25:46,140 SQL hatlarının >> Yani bir ki PSET 7 şartnamede size 502 00:25:46,140 --> 00:25:47,310 Burada bu biridir. 503 00:25:47,310 --> 00:25:49,740 Ve biz büyük harcamak yok süre bu konu hakkında konuşuyorduk. 504 00:25:49,740 --> 00:25:55,100 Eğer çalışıyorsanız Ama, çıkıyor CS50 finans bazı hisse senedi satın almak için 505 00:25:55,100 --> 00:25:58,000 Zaten var Size, bazı hisseler 506 00:25:58,000 --> 00:26:01,750 Bir numara yapabilmek istiyorum anında bir araya şeyler. 507 00:26:01,750 --> 00:26:04,360 Sen edebilmek olmak istiyorum etkin bir şekilde, yüksek bir seviyede, 508 00:26:04,360 --> 00:26:06,700 Ben istiyorum, tamam kontrol Free fazla hisse satın almak için, 509 00:26:06,700 --> 00:26:08,780 kuruş stok biz spec hakkında konuşmak, 510 00:26:08,780 --> 00:26:10,660 Ben ilk kontrol istiyorum kaç hisse ben. 511 00:26:10,660 --> 00:26:11,810 Ve beş varsayalım. 512 00:26:11,810 --> 00:26:14,600 Ve ben istiyorum varsayalım Ben sonuçta, 10 daha fazla satın 513 00:26:14,600 --> 00:26:17,069 Stokta 15 hisse istiyorum. 514 00:26:17,069 --> 00:26:18,360 Yani iki soru sormak zorunda. 515 00:26:18,360 --> 00:26:20,230 Değişkenin durumu nedir? 516 00:26:20,230 --> 00:26:21,470 Satır durumu nedir? 517 00:26:21,470 --> 00:26:22,970 Şu anda kaç hisse var mı? 518 00:26:22,970 --> 00:26:24,636 Sonra devam edin ve bunu güncellemek istiyorum. 519 00:26:24,636 --> 00:26:27,720 Yani analog için var Eğer satır kontrol etmenizi süt, 520 00:26:27,720 --> 00:26:30,730 ve daha sonra bunu güncellemek istiyorum 10 hisse satın almak istiyorum çünkü eğer, 521 00:26:30,730 --> 00:26:32,521 Değiştirmek istemiyorum 10 satır, sen 522 00:26:32,521 --> 00:26:35,300 5 bunu değiştirmek istiyorum ilave olarak, 10 ya da, tabii ki, 15. 523 00:26:35,300 --> 00:26:40,030 >> Bu kod satırı sağlar Bu iki kavramsal fikirler 524 00:26:40,030 --> 00:26:42,810 birlikte veya değil hiç olur. 525 00:26:42,810 --> 00:26:46,920 Bazı başka bir kullanıcı da dahil olmak üzere hiç kimse, kim, aynı web sitesi oturum oluyor 526 00:26:46,920 --> 00:26:49,900 şekilde kesebilirsiniz Satırın kontrolü 527 00:26:49,900 --> 00:26:52,960 ve satır güncellenmesi, seçin ve güncelleme eğer sen. 528 00:26:52,960 --> 00:26:57,360 Ve sözdizimi, süper açık değil ama bu bir satır, uzun zamandır, mesafesindedir 529 00:26:57,360 --> 00:27:01,150 o iki işlemleri sağlar değişkeni kontrol etmek veya satır kontrol 530 00:27:01,150 --> 00:27:04,660 ve satır atomik olur güncelleyin. 531 00:27:04,660 --> 00:27:06,849 >> Ah burada tekrar gitmek. 532 00:27:06,849 --> 00:27:07,890 Benim telefonda Metin mesajı. 533 00:27:07,890 --> 00:27:09,954 Yani bu a yapalım Biraz daha somut. 534 00:27:09,954 --> 00:27:12,120 Sen değilsin varsayalım Bir buzdolabı uygulanması, 535 00:27:12,120 --> 00:27:16,400 ve uygulama değil PSET 7 ama gerçek bir banka, 536 00:27:16,400 --> 00:27:20,000 ya da ATM, bir Automated Teller Makine, bu sayede sizi bir şekilde 537 00:27:20,000 --> 00:27:22,960 güçlendirmek mümkün olmak istiyorum Kullanıcıların para transferi 538 00:27:22,960 --> 00:27:24,500 bir hesaptan diğerine. 539 00:27:24,500 --> 00:27:25,100 Tamam, bekle. 540 00:27:25,100 --> 00:27:26,683 Ben şimdi bu susturmak için gidiyorum, teşekkür ederim. 541 00:27:26,683 --> 00:27:30,450 Bu yüzden parayı taşımak istiyoruz bir hesap numarasından 542 00:27:30,450 --> 00:27:33,600 Farklı bir hesaba sayı, özellikle de 100 $. 543 00:27:33,600 --> 00:27:37,690 Yani bu keyfi tür örnek, bu sayede siz, ATM, 544 00:27:37,690 --> 00:27:41,060 İki SQL yürütmek isteyebilirsiniz sorgular, bir hesaptan çıkarma 545 00:27:41,060 --> 00:27:42,430 ve diğer hesaba ekleyin. 546 00:27:42,430 --> 00:27:46,766 Ama bu sağlamak istiyoruz iki satır olur ya da hiç hem de. 547 00:27:46,766 --> 00:27:48,640 Bir şey istemiyorum kesintiye alıyorum. 548 00:27:48,640 --> 00:27:51,440 Bazı akıllı kötü adam yok nasılsa Bank of America ayakta 549 00:27:51,440 --> 00:27:53,270 önünde iki ATM ile Onu ve bir şekilde 550 00:27:53,270 --> 00:27:55,270 tür yazarak Aynı zamanda komutları, 551 00:27:55,270 --> 00:28:01,230 umarım yerine 200 $ kesinti çalışıyor 100 $ ve yatırılır sadece sahip 100 $. 552 00:28:01,230 --> 00:28:04,450 Kısacası, bu istediğiniz Beklediğiniz tam olarak davranır. 553 00:28:04,450 --> 00:28:06,540 >> Ve bunu yolu Bu SQL veritabanı 554 00:28:06,540 --> 00:28:09,350 Eğer ne sarın Bir işlem denir. 555 00:28:09,350 --> 00:28:14,290 Kelimenin tam anlamıyla SQL, sen CS50 en arayabilirsiniz Gönder unquote start sorgu fonksiyonu 556 00:28:14,290 --> 00:28:15,370 işlem. 557 00:28:15,370 --> 00:28:18,640 Sonra herhangi bir sayı yürütebilirsiniz sonraki SQL sorguları, 558 00:28:18,640 --> 00:28:20,870 ama bunların hiçbiri almak veritabanı üzerinde etkisi 559 00:28:20,870 --> 00:28:25,880 Sorgu alıntı unquote çağırana kadar Yine PHP kullanıyorsanız, taahhüt. 560 00:28:25,880 --> 00:28:29,810 Ve bu şekilde, bunu sağlayabilirsiniz Eğer varsa bile 1,000 kullanıcıların tüm 561 00:28:29,810 --> 00:28:32,080 veritabanı isabet Aynı zamanda, bir SQL 562 00:28:32,080 --> 00:28:34,540 Bu söz edecek iki sorgu olacak 563 00:28:34,540 --> 00:28:36,740 birbiri ardına hakkı uyguladı. 564 00:28:36,740 --> 00:28:40,330 Yani aşan ile bitmiyor Süt ya da yanlış miktar, sonuçta, 565 00:28:40,330 --> 00:28:40,830 para. 566 00:28:40,830 --> 00:28:43,110 >> Peki bunu göz önünde bulundurun, PSET 7 için o kadar çok 567 00:28:43,110 --> 00:28:45,250 ancak son projeler için aslında iseniz 568 00:28:45,250 --> 00:28:49,690 etrafında veri taşımak için çalışıyoruz tablolar genelinde olduğu gibi burada olabilir. 569 00:28:49,690 --> 00:28:53,980 Ama belki daha basit ve daha Bir örnek ile anlamaya açık 570 00:28:53,980 --> 00:28:54,860 Burada bu biridir. 571 00:28:54,860 --> 00:28:57,760 Ve birisi bize e-postayla Bu sadece diğer gün 572 00:28:57,760 --> 00:28:59,600 O benzer bir şey online görünce. 573 00:28:59,600 --> 00:29:03,480 >> Benim gördüğüm kadarıyla, pim sistemi yüzden Bu saldırıya karşı savunmasız değildir. 574 00:29:03,480 --> 00:29:06,637 Ve ben hiçbir fikrim varsa bile kullandığı Kaputun altında SQL veritabanı. 575 00:29:06,637 --> 00:29:08,470 Ama bunu kullanmasına izin tartışma uğruna. 576 00:29:08,470 --> 00:29:10,178 İşte ekran olduğunu Harvard millet eğilimindedir 577 00:29:10,178 --> 00:29:13,620 ile giriş yaparken görmek için onların Harvard kimlik numarası ve pin. 578 00:29:13,620 --> 00:29:19,020 Ve pin sistem olduğunu varsayalım PHP ve MySQL ile bir uygulamaya 579 00:29:19,020 --> 00:29:22,000 Veritabanı, kod birileri yazılı olabilir yıl önce 580 00:29:22,000 --> 00:29:23,270 Bu gibi görünebilir. 581 00:29:23,270 --> 00:29:25,230 İlk olarak, bir beyan değişken denir adı. 582 00:29:25,230 --> 00:29:27,560 Ve sadece o olsun POST süper küresel. 583 00:29:27,560 --> 00:29:30,140 Sonra başka bir değişken olsun Şifre denilen ve aynı şeyi. 584 00:29:30,140 --> 00:29:33,080 Ve sonra sadece yürütmek Burada bu uzun sorgu, 585 00:29:33,080 --> 00:29:36,690 kullanıcılar nerede seçin yıldız Kullanıcı adınızı filanca eşittir 586 00:29:36,690 --> 00:29:38,510 ve şifre filanca eşittir. 587 00:29:38,510 --> 00:29:40,660 >> Kıvırcık dikkat edin parantezi burada kullandım 588 00:29:40,660 --> 00:29:42,880 Sadece PHP anlamına gitmek Önümüzdeki ve yedek 589 00:29:42,880 --> 00:29:45,400 bu iki değeri Orada değişkenler. 590 00:29:45,400 --> 00:29:50,090 Onlar kesinlikle gerekli değil, ama Onlar ince sözdizimi hatalarını önlemek eğilimindedir. 591 00:29:50,090 --> 00:29:53,650 Yani bu tamamen görünüyor İlk bakışta doğru. 592 00:29:53,650 --> 00:29:54,240 Ve öyle. 593 00:29:54,240 --> 00:29:56,680 Sen uygulamak bu şekilde iğne sistemi. 594 00:29:56,680 --> 00:30:00,460 >> Ama süper olduğunu varsayalım akıllı ve kötü niyetli öğrenci 595 00:30:00,460 --> 00:30:03,020 onun pin olarak girdi bu. 596 00:30:03,020 --> 00:30:05,550 Yani mermi kaldırdık Sahte kadar burada işaretler, 597 00:30:05,550 --> 00:30:08,760 ve aslında ortaya ettik ne o yazarak olabilir. 598 00:30:08,760 --> 00:30:10,350 Ve biraz garip. 599 00:30:10,350 --> 00:30:13,850 Ama ne potansiyel size dışarı atlar Kullanıcının girişi hakkında endişe verici, 600 00:30:13,850 --> 00:30:16,450 Eğer hiçbir fikrim yok olsa bile ne Bir SQL Injection saldırısı anlamına gelir. 601 00:30:16,450 --> 00:30:20,300 Neden bu biraz balık görünüyor? 602 00:30:20,300 --> 00:30:21,050 Bu da ne? 603 00:30:21,050 --> 00:30:21,550 [Duyulamaz] 604 00:30:21,550 --> 00:30:24,260 DAVID MALAN: ya da Biraz şüpheli. 605 00:30:24,260 --> 00:30:26,310 Aslında, bu SQL bir kelime var. 606 00:30:26,310 --> 00:30:28,105 Yani iyiye işaret değil. 607 00:30:28,105 --> 00:30:29,980 var olması Tüm bu tek tırnak 608 00:30:29,980 --> 00:30:32,646 orada-- Aslında, en kolay biri Bazı veritabanları kırmak için yolları 609 00:30:32,646 --> 00:30:35,880 O'Reilly gibi bir isim yazarak olduğunu Bu onun bir kesme işareti vardır 610 00:30:35,880 --> 00:30:38,600 İnsan kim yazdı çünkü eğer perde arkasında kod 611 00:30:38,600 --> 00:30:41,570 dikkate almaz orada bir kullanıcının tek tırnak olabilir 612 00:30:41,570 --> 00:30:45,060 giriş, o kullanan ve kendi kod tek tırnak, 613 00:30:45,060 --> 00:30:46,040 Kötü şeyler olabilir. 614 00:30:46,040 --> 00:30:47,870 >> Aslında, daha kötüsü, bu düşünün. 615 00:30:47,870 --> 00:30:50,600 Bu yine kod olsaydı Bu Harvard yıllar birisi 616 00:30:50,600 --> 00:30:53,100 önce pimi için yazdı Sistem, ne fark 617 00:30:53,100 --> 00:30:56,220 hakkında ikame almak için kullanıcı adı ve şifre 618 00:30:56,220 --> 00:30:59,780 kullanıcı türleri ise tekrar kendi kullanıcı adı olarak Skroob 619 00:30:59,780 --> 00:31:03,960 ve daha sonra, bir, iki, üç, dört, beş, bir eşittir unquote alıntı veya alıntı 620 00:31:03,960 --> 00:31:04,660 bir alıntı. 621 00:31:04,660 --> 00:31:07,220 Ve ne anahtar fark Burada kullanıcı henüz değildir 622 00:31:07,220 --> 00:31:09,900 başladı şifrelerini veya Bir alıntı ile pim. 623 00:31:09,900 --> 00:31:12,610 Ve onlar bunu sona değil bir alıntı ile çünkü o 624 00:31:12,610 --> 00:31:16,315 varsayarak halinde Programcı, yani keskin değildi 625 00:31:16,315 --> 00:31:18,690 onlar bu yaşayacaksın kendi kod tek tırnak. 626 00:31:18,690 --> 00:31:19,860 >> İşte kod. 627 00:31:19,860 --> 00:31:23,820 Ve ikame o Şimdi ne olabilir bu. 628 00:31:23,820 --> 00:31:26,350 Ve ben altını kadarıyla kullanıcının yazdığı. 629 00:31:26,350 --> 00:31:28,480 Yani önce, sonra. 630 00:31:28,480 --> 00:31:33,330 Ve şimdi hafif endişe verici ne fark Bu SQL kodu sağ yarısı? 631 00:31:33,330 --> 00:31:36,300 Bu, kuşkusuz, biraz daha karmaşık olduğunu sorguları daha gördük. 632 00:31:36,300 --> 00:31:38,550 Ama bu muhtemelen yapamam sen eğer iyi bir şey 633 00:31:38,550 --> 00:31:42,240 seçmektir seçin yıldızı, diyerek Kullanıcının tablodan her şeyi 634 00:31:42,240 --> 00:31:46,630 nerede adınızı Skroob eşittir ve Şifre ise bir, iki, üç, dört, 635 00:31:46,630 --> 00:31:49,610 beş veya bir eşittir. 636 00:31:49,610 --> 00:31:53,860 Mantıksal çıkarım nedir muhtemelen son fıkrasının? 637 00:31:53,860 --> 00:31:55,650 Sadece zaman doğrudur. 638 00:31:55,650 --> 00:31:59,930 >> Ve biz çeşit tahmin çünkü veya deneme ve yanılma yoluyla anladım 639 00:31:59,930 --> 00:32:02,760 Bu programcı kim yazdı bu kod vermedi 640 00:32:02,760 --> 00:32:07,250 Bir insan ya da kötü kişiyi tahmin hem de tek tırnak yazarak, 641 00:32:07,250 --> 00:32:10,350 Biz sözdizimsel olabilir SQL sorgusu tamamlamak 642 00:32:10,350 --> 00:32:12,260 saçma bir şey ama bir şey bu 643 00:32:12,260 --> 00:32:15,930 sözdizimsel yanlış Bu her zaman doğru değerlendirir. 644 00:32:15,930 --> 00:32:19,130 Yani bu kod cevaplamak için kullanılıyorsa Soru doğru ya da yanlış olmalı 645 00:32:19,130 --> 00:32:22,930 Bu kullanıcı, geçmek için izin Cevap her zaman görünüşte gidiyor 646 00:32:22,930 --> 00:32:26,930 bu her zaman oluyor çünkü gerçek olamayacak kadar veritabanından bir şey seçmek için 647 00:32:26,930 --> 00:32:29,280 Elbette bir zaman birini eşittir çünkü. 648 00:32:29,280 --> 00:32:30,360 >> Peki çözüm ne? 649 00:32:30,360 --> 00:32:33,290 Peki PSET 7, aslında hep birlikte bunu önlemek. 650 00:32:33,290 --> 00:32:37,360 Size bir sorgu işlevini verir, ve biz Soru işaretleri kullanmanızı öneririz 651 00:32:37,360 --> 00:32:40,430 yer tutucu olarak, benzer printf en% s ruhu içinde, 652 00:32:40,430 --> 00:32:43,710 ama soru işaretleri hakkında önemli ne aslında aracılığıyla okursanız burada 653 00:32:43,710 --> 00:32:46,950 functions.php, nerede bizim Sorgu fonksiyonu, uygulanır 654 00:32:46,950 --> 00:32:52,780 Bu soru işaretleri kaçtı, böylece potansiyel olarak tehlikeli bir şey 655 00:32:52,780 --> 00:32:58,210 Bir tek tırnak açıldığında gibi kaçan bir tek alıntı içine. 656 00:32:58,210 --> 00:33:00,590 >> Peki bu ne olduğunu Gerçekten eğer oluyor 657 00:33:00,590 --> 00:33:04,850 CS50 sorgu işlevini veya herhangi bir sayı kullanın Üçüncü şahıs serbest kütüphanelerin bu 658 00:33:04,850 --> 00:33:06,000 aynı şeyi. 659 00:33:06,000 --> 00:33:09,850 Bu durumda Farketmez, yeşil, Kullanıcı, tek bir alıntı yazdığınız ise 660 00:33:09,850 --> 00:33:12,070 sorguda nedeniyle Biz yazdı işlevi 661 00:33:12,070 --> 00:33:15,120 önce tersbölüleri eklemek için gidiyoruz Bu tür tehlikeli alıntı. 662 00:33:15,120 --> 00:33:17,360 Yani bu, değil Aslında, okunaklı olacak. 663 00:33:17,360 --> 00:33:20,910 Bu seyir, bir deli yazarak gibi Elbette, gitmiyor, değil şifre 664 00:33:20,910 --> 00:33:23,490 Skroob gerçek şifre için. 665 00:33:23,490 --> 00:33:28,260 >> Böylece CS50 için paket, bir tanesidir Kesinlikle her zaman bir şey kullanmak 666 00:33:28,260 --> 00:33:30,860 CS50 sorgu işlevi gibi ya da altta yatan bir kütüphane, 667 00:33:30,860 --> 00:33:32,560 hangi PDO adı olur. 668 00:33:32,560 --> 00:33:35,880 Ama asla, asla, Bu gibi bir kod asla 669 00:33:35,880 --> 00:33:39,472 kaçan veya ovma olmadan onlar senin girişleri söylüyorlar. 670 00:33:39,472 --> 00:33:42,430 Ve olacak bir noktada muhtemelen Bu gibi bazı web sitesinde rastlamak. 671 00:33:42,430 --> 00:33:46,060 Aslında, bu durumda olduğu görülmektedir yerlerde havaalanlarında ve otellerde gibi 672 00:33:46,060 --> 00:33:48,880 Onlar ücretsiz Wi-Fi var burada Eğer giriş zorunda erişim, 673 00:33:48,880 --> 00:33:51,010 Bu web siteleri her zaman korkunç uyguladı. 674 00:33:51,010 --> 00:33:55,680 Ve böylece evde egzersiz eğlenceli bir tür, değil kötü amaçlı veya daha fazla 675 00:33:55,680 --> 00:33:59,170 Yolda bir eğlence egzersiz, sadece yazın ise 676 00:33:59,170 --> 00:34:02,850 bir kesme işareti, bir tek tırnak, Bazı web sitesinde bir forma 677 00:34:02,850 --> 00:34:03,810 ve ne olduğunu görün. 678 00:34:03,810 --> 00:34:06,660 Ve sunucu çöküyor ya da verirse Eğer hata mesajı çeşit, 679 00:34:06,660 --> 00:34:09,690 çok iyi olabilir Birisi bu beklenen değil. 680 00:34:09,690 --> 00:34:15,239 Ve sonra düzgün uyarmalıdır yetkililer ve daha fazla devam. 681 00:34:15,239 --> 00:34:20,843 >> Peki şimdi siz umarım gerekir Burada biraz daha inek mizah anlamak. 682 00:34:20,843 --> 00:34:24,120 >> [KAHKAHA] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID MALAN: Sen bir inek olduğunu biliyorum. 685 00:34:29,070 --> 00:34:30,944 Önümüzdeki birkaç İçin yaş, sizi hatırlar 686 00:34:30,944 --> 00:34:33,520 kim küçük Bobby Masaları olduğunu Burada bu karikatür yüzünden. 687 00:34:33,520 --> 00:34:36,760 Yani olarak akılda tutmak biz bağlam anahtarı son bir kez 688 00:34:36,760 --> 00:34:38,770 JavaScript bugün. 689 00:34:38,770 --> 00:34:41,600 Biz nispeten daha az geçirdim PHP sözdizimi zamanı 690 00:34:41,600 --> 00:34:43,440 aslında çünkü C süper benzer 691 00:34:43,440 --> 00:34:47,300 Ve güzel yeterli, JavaScript da C sözdizimi süper benzer 692 00:34:47,300 --> 00:34:49,639 biz görürsünüz yanı sıra Sadece bir an ve biz olacak gibi 693 00:34:49,639 --> 00:34:51,205 Özellikle daha sonra bu hafta bakın. 694 00:34:51,205 --> 00:34:54,080 Eğer bu dil ile neler yapabilirsiniz?, olsa, daha güçlü 695 00:34:54,080 --> 00:34:55,790 Özellikle API'leri ile. 696 00:34:55,790 --> 00:34:56,960 >> Ama önce hızlı bir tur. 697 00:34:56,960 --> 00:35:00,450 Yani bir, JavaScript, orada güzel hiçbir ana işlevi,. 698 00:35:00,450 --> 00:35:02,650 PHP ile olduğu gibi, sadece kod yazabilirsiniz. 699 00:35:02,650 --> 00:35:04,310 Koşullar bu gibi görünüyorsun. 700 00:35:04,310 --> 00:35:07,100 Ve Boole ifadeleri olabilir Bu benzeri veya bu gibi görünüyorsun. 701 00:35:07,100 --> 00:35:09,530 Anahtarlar var, ve onlar Bu gibi görünebilir. 702 00:35:09,530 --> 00:35:10,970 Dört döngüler bu gibi görünüyorsun. 703 00:35:10,970 --> 00:35:12,390 Döngüler bu gibi bakmak iken. 704 00:35:12,390 --> 00:35:14,160 Do whiles bu gibi görünüyorsun. 705 00:35:14,160 --> 00:35:16,850 Ve sonra diziler gibi bakmak Bu, PHP çok benzer. 706 00:35:16,850 --> 00:35:20,740 Ama, JavaScript sen fark Bir dolar değil bir değişken bildirmek 707 00:35:20,740 --> 00:35:25,190 bir veri türüyle ama tam anlamıyla, oturum daha önce değişken için Var söyleyerek. 708 00:35:25,190 --> 00:35:27,900 Çok gevşek yazdığınız ki bu türleri vardır, 709 00:35:27,900 --> 00:35:29,729 ama bunları açıkça beyan yok. 710 00:35:29,729 --> 00:35:31,520 Ve sonra bir dize için Örneğin, görünebilir 711 00:35:31,520 --> 00:35:34,350 Bu gibi bu dize Bu durumda, s adlandırılır. 712 00:35:34,350 --> 00:35:35,410 Sonra bir amacı. 713 00:35:35,410 --> 00:35:37,010 Ve bu uzun önce daha fazla görürsünüz. 714 00:35:37,010 --> 00:35:41,470 Ve bir nesne, belki biridir En yaygın veri yapıları görülmektedir 715 00:35:41,470 --> 00:35:44,050 Bir JavaScript tabanlı Program sağlar çünkü 716 00:35:44,050 --> 00:35:46,680 Eğer keyfi ilişkilendirmek anahtar değeri çiftleri sadece 717 00:35:46,680 --> 00:35:51,240 PHP'nin ilişkisel diziler gibi ve sadece kendi karma tablo gibi 718 00:35:51,240 --> 00:35:54,042 biz hayata veya deneyin Bir kaç hafta. 719 00:35:54,042 --> 00:35:56,250 Yani aslında görelim ne Biz JavaScript ile yapabilirsiniz. 720 00:35:56,250 --> 00:35:59,410 Ve özellikle de, bu özellikleri bir çamaşır listesi 721 00:35:59,410 --> 00:36:02,300 tarayıcılar bu sahip olduğu Bize JavaScript kanca izin 722 00:36:02,300 --> 00:36:05,470 Aşağıdaki şekilde bir web sitesi haline. 723 00:36:05,470 --> 00:36:09,340 JavaScript genellikle bir olarak kullanılan istemci tarafı komut dosyası dili. 724 00:36:09,340 --> 00:36:10,130 Bu derlenmiş değil. 725 00:36:10,130 --> 00:36:11,370 Çok yorumlanır. 726 00:36:11,370 --> 00:36:15,740 Ama PHP aksine, hangi yürütüyor sunucu üzerinde, web sunucusu, 727 00:36:15,740 --> 00:36:18,220 veya derin iç müşteriler, JavaScript 728 00:36:18,220 --> 00:36:22,190 that farklıdır genellikle tarayıcıda çalışır. 729 00:36:22,190 --> 00:36:26,060 >> Yani herhangi bir JavaScript kodu yazmaya başlayın PSET 8, ya da son proje için, 730 00:36:26,060 --> 00:36:29,890 ya da gerçek dünyada genellikle oluyor Kesinlikle, sunucu üzerinde kaydedilecek 731 00:36:29,890 --> 00:36:33,110 Bir nokta HTML veya nokta olarak JavaScript dosyası için JS. 732 00:36:33,110 --> 00:36:35,770 Ama tarayıcı gidiyor JavaScript ki indirmek için 733 00:36:35,770 --> 00:36:39,530 Chrome kendi örneğine kod, IE veya Firefox, ya da her neyse ya. 734 00:36:39,530 --> 00:36:43,870 Ve kodu aslında almak için gidiyor Kendi tarayıcı içinde idam. 735 00:36:43,870 --> 00:36:46,560 Sadece bu daha gerçek hale getirmek için, en somut biçimde bu görelim. 736 00:36:46,560 --> 00:36:50,120 >> Bu kod ne hiçbir fikrim yok Gerçekten bu kadar okumadan. 737 00:36:50,120 --> 00:36:52,670 Ama beni Facebook.com gidelim giriş yapmadan. 738 00:36:52,670 --> 00:37:00,440 Bana Elemanı kontrol edin ve gidin gidelim, diyelim, Ağ ve Sayfaya güncelle. 739 00:37:00,440 --> 00:37:04,150 Ve biz see-- edeceğiz bana Reload vardiya izin Sayfa yeni tüm isteklerini almak için. 740 00:37:04,150 --> 00:37:08,850 Ve ilk Gördüğüm dosya CSS, CSS. 741 00:37:08,850 --> 00:37:10,880 İşte ilk var JavaScript dosyası, ve ben 742 00:37:10,880 --> 00:37:14,600 hayır bu ne fikir, ama burada JavaScript kodu bazı olduğunu 743 00:37:14,600 --> 00:37:16,180 Bu Facebook sürücüler. 744 00:37:16,180 --> 00:37:18,400 Hatta gerçekten değil Büyütmek için ortaya. 745 00:37:18,400 --> 00:37:20,260 Hala gibi saçma değil. 746 00:37:20,260 --> 00:37:24,341 >> Ama orada bile aşağı aşağıda göreceksiniz Bu JavaScript dosyaları daha. 747 00:37:24,341 --> 00:37:24,840 Whoops. 748 00:37:24,840 --> 00:37:25,440 Bu bir ping var. 749 00:37:25,440 --> 00:37:28,550 Hadi biraz aşağı gidelim ayrıca bundan başka, daha. 750 00:37:28,550 --> 00:37:29,894 Bir tane var. 751 00:37:29,894 --> 00:37:31,238 Bir tane var. 752 00:37:31,238 --> 00:37:31,880 Bir tane var. 753 00:37:31,880 --> 00:37:35,820 >> Bu yüzden bile olsa Facebook, arkasında sahneleri, PHP kısmen yazılmış 754 00:37:35,820 --> 00:37:39,100 ve Facebook'un kendi sürüm bunların, JavaScript büyük bir miktar var. 755 00:37:39,100 --> 00:37:41,330 Aslında, herhangi bir Facebook'ta yapmak sohbet, 756 00:37:41,330 --> 00:37:45,520 inline zaman çizelgesi güncellemeleri herhangi O, gerçek zamanlı olarak bütün bunlar olur 757 00:37:45,520 --> 00:37:47,944 JavaScript tarafından tahrik edilir. 758 00:37:47,944 --> 00:37:48,444 Evet? 759 00:37:48,444 --> 00:37:50,235 >> İZLEYİCİ: Ben emin değilim Bu Facebook'tan ise, 760 00:37:50,235 --> 00:37:53,624 ama ben Facebook geliştirdi düşündüm Kendi içi kod dili? 761 00:37:53,624 --> 00:37:54,540 DAVID MALAN: Onlar yaptı. 762 00:37:54,540 --> 00:37:58,110 Ben bir varyans demek yüzden de bu PHP bu aslında Hip Hop denir 763 00:37:58,110 --> 00:38:03,440 Böyle eklenen özellikler zaman ki Marka, ilk Facebook uygulanan 764 00:38:03,440 --> 00:38:04,710 PHP yazılmış. 765 00:38:04,710 --> 00:38:07,370 Ve bu tür kalmıştır Ön uç dili sıralama 766 00:38:07,370 --> 00:38:09,030 onlar çok için kullandıkları kendi kodlama, ama bunun 767 00:38:09,030 --> 00:38:11,870 bu bir dil olmamıştır milyarlarca özellikle de ölçekler 768 00:38:11,870 --> 00:38:12,630 insanlar. 769 00:38:12,630 --> 00:38:15,300 Ve böylece kendi eklediğiniz perde arkasında gelişmeler. 770 00:38:15,300 --> 00:38:17,049 Ve herhangi bir numarayı kullanın Diğer dillerin 771 00:38:17,049 --> 00:38:19,170 Çeşitli parçalar için kendi altyapı. 772 00:38:19,170 --> 00:38:24,080 Yani evet, bu bir sapma var şimdi PHP olarak bildiklerini. 773 00:38:24,080 --> 00:38:26,610 >> Yani bir göz atalım örnek bir çift 774 00:38:26,610 --> 00:38:28,890 biz burada JavaScript kullanmak nasıl. 775 00:38:28,890 --> 00:38:32,530 Bugünün kaynak kodunda, biz bir Dosyaların demet, hangi ilk, 776 00:38:32,530 --> 00:38:34,090 DOM sıfır denilen sağlar. 777 00:38:34,090 --> 00:38:36,770 Aşağıdaki gibi Yani DOM sıfır görünüyor. 778 00:38:36,770 --> 00:38:40,730 Beni bu dizine gidelim ve domzero.html açmak, 779 00:38:40,730 --> 00:38:44,970 üst bir doc türü vardır beyanı, burada söyleyerek HTML 5 geliyor. 780 00:38:44,970 --> 00:38:46,440 Ve şimdi burada bir HTML etiketi. 781 00:38:46,440 --> 00:38:47,540 İşte kafa etiketi. 782 00:38:47,540 --> 00:38:49,210 Ve bugün burada yeni ne var. 783 00:38:49,210 --> 00:38:52,620 >> Şimdi bir script etiketi var Sayfanın kafasının içinde. 784 00:38:52,620 --> 00:38:55,290 Ve bu görünüşte yapar çok az, ama haber 785 00:38:55,290 --> 00:38:58,410 Ben tanımladığınız bir script bir JavaScript. 786 00:38:58,410 --> 00:39:01,050 Ve bir kenara, bu yana olduğu gibi ortak bir yanılgıdır, 787 00:39:01,050 --> 00:39:05,220 JavaScript kesinlikle ilgisi yoktur Java, dil ile yapmak 788 00:39:05,220 --> 00:39:08,010 Size bazı might ki APCs öğrendim. 789 00:39:08,010 --> 00:39:10,480 Bir pazarlama fazla oldu bir şey daha bir şey, 790 00:39:10,480 --> 00:39:12,980 önce Java yıl coattails sürme. 791 00:39:12,980 --> 00:39:17,300 Ama JavaScript, hiçbir şey yapmak Java, sadece benzer ve rahatsız edici, 792 00:39:17,300 --> 00:39:18,480 iltibas atadı. 793 00:39:18,480 --> 00:39:21,890 Eğer bir işlev bildirmek nasıl >> Yani burada JavaScript, kelimenin tam anlamıyla işlevini demek, 794 00:39:21,890 --> 00:39:24,556 Daha sonra işlevin adı, sonra herhangi bir sürer olabilir argümanlar, 795 00:39:24,556 --> 00:39:25,530 PHP sadece seviyorum. 796 00:39:25,530 --> 00:39:28,990 JavaScript, en birinde çıkıyor mevcut can sıkıcı fonksiyonlar Uyarı olduğunu. 797 00:39:28,990 --> 00:39:31,392 Bu küçük bir pencere olduğunu açılır ve sizi uyaracaktır 798 00:39:31,392 --> 00:39:32,600 bazı bilgilerin parçası. 799 00:39:32,600 --> 00:39:33,766 Genellikle üzerine kaşlarını çattı oluyor. 800 00:39:33,766 --> 00:39:35,980 Ama biz bunu olarak kullanacağız bizim Burada ilk egzersiz. 801 00:39:35,980 --> 00:39:37,900 >> JavaScript birkaç özellikleri dikkat edin. 802 00:39:37,900 --> 00:39:41,524 Tek tırnak ve çift tırnak Aslında artık önemi yok. 803 00:39:41,524 --> 00:39:43,690 Tek tırnak ve çift tırnak değiştirilebilen olabilir, 804 00:39:43,690 --> 00:39:46,220 C ise, kullanmak zorunda dizeleri için çift tırnak, 805 00:39:46,220 --> 00:39:48,150 ve tek iki var karakter için tırnak. 806 00:39:48,150 --> 00:39:51,150 JavaScript dünyada, birçok kişi, çoğu kişi 807 00:39:51,150 --> 00:39:54,970 dizeleri tek tırnak kullanmak sadece bir üslup şey çünkü. 808 00:39:54,970 --> 00:39:58,330 Ama artı operatörü, burada ne hangi daha önce görmedim? 809 00:39:58,330 --> 00:39:59,836 >> İZLEYİCİ: Birleştirme. 810 00:39:59,836 --> 00:40:00,960 DAVID MALAN: Birleştirme. 811 00:40:00,960 --> 00:40:02,450 Yani C bile bu yoktur. 812 00:40:02,450 --> 00:40:04,820 PHP nokta operatörünü vardır, hangi yapar. 813 00:40:04,820 --> 00:40:09,710 JavaScript artı operatörü vardır, hangi kafa karıştırıcı sadece Java gibi. 814 00:40:09,710 --> 00:40:11,440 Şimdi ne olacak burada oluyor? 815 00:40:11,440 --> 00:40:14,260 >> Yani burada nerede temel var Bu resmin anlayışı 816 00:40:14,260 --> 00:40:17,010 Biz bir çift attı gün önce devreye giriyor. 817 00:40:17,010 --> 00:40:19,620 Biz basit vardı hatırlıyor Bir sürümü HTML page-- 818 00:40:19,620 --> 00:40:20,830 sadece merhaba dünya, dedi. 819 00:40:20,830 --> 00:40:22,770 Ve sonra bir ağaç çekti sağa doğru olan 820 00:40:22,770 --> 00:40:27,320 dikdörtgenler ve çizgilerden oluşan bir demet vardı Bir aile ağacı gibi onları bağlayan. 821 00:40:27,320 --> 00:40:30,820 Yani sözde DOM var veya Belge Nesne Modeli. 822 00:40:30,820 --> 00:40:36,759 Ve erişebilirsiniz çıkıyor sözdizimi ile bu ağaç dikdörtgenler 823 00:40:36,759 --> 00:40:37,550 Aşağıdaki gibi. 824 00:40:37,550 --> 00:40:41,370 Kelimenin tam anlamıyla bir olan belgeyi demek Bir JavaScript özel global değişken 825 00:40:41,370 --> 00:40:45,890 Bir işlevi vardır programı Eğer erişebilirsiniz onunla ilişkili 826 00:40:45,890 --> 00:40:50,280 Bir yapı benzer, ancak sadece , nokta ve ardından işlevin adını söylemek 827 00:40:50,280 --> 00:40:52,390 No elemanı olsun. 828 00:40:52,390 --> 00:40:55,460 >> Ben almak istiyorum unsurdur görünüşte unquote adını alıntı. 829 00:40:55,460 --> 00:40:57,150 Ve sonra ben onun değerini almak istiyorum. 830 00:40:57,150 --> 00:40:58,330 Şimdi önümüzde kendimizi alıyoruz. 831 00:40:58,330 --> 00:41:00,038 Ben bile emin değilim ne Bütün bu ilgili. 832 00:41:00,038 --> 00:41:03,000 HTML diyelim hızlı ileri üzerinde Süper basit sayfa. 833 00:41:03,000 --> 00:41:05,370 Ben tanımladığınız >> Bildirimi Bir Buraya oluştururlar. 834 00:41:05,370 --> 00:41:07,940 Ben bunu bir benzersiz verdik Fark Kullandığımız ettik bile kimliği, 835 00:41:07,940 --> 00:41:08,870 Bu özellik daha önce. 836 00:41:08,870 --> 00:41:11,300 Ama bu HTML var. 837 00:41:11,300 --> 00:41:15,570 Sen benzersiz bazı öbek belirleyebilir Böyle bir tanımlayıcı ile HTML. 838 00:41:15,570 --> 00:41:19,880 >> Bildirimi artık paha çıkıyor HTML Bu çamaşır liste başı destekler 839 00:41:19,880 --> 00:41:22,490 Bir an önce, bir bütün olay işleyicileri demet. 840 00:41:22,490 --> 00:41:25,060 Ve bu olay işleyicisi teslim diyor. 841 00:41:25,060 --> 00:41:28,730 Bu kullanıcı sunulmasına ilişkin Form, aşağıdaki kodu arayın. 842 00:41:28,730 --> 00:41:31,360 Ve bu kodu gidiyor denir ya idam edilecek 843 00:41:31,360 --> 00:41:35,260 tam olarak bu, Yunan Fonksiyon return false ile izledi. 844 00:41:35,260 --> 00:41:37,360 Her şey olması gerektiği Oldukça tanıdık. 845 00:41:37,360 --> 00:41:42,050 >> İşte olan tipi metin bir giriş, bir Kimlik, bu durumda, isim olacak. 846 00:41:42,050 --> 00:41:45,430 Biz gerçek adı özniteliği yok Bu seferinde-- ve bir gönderme düğmesi. 847 00:41:45,430 --> 00:41:48,330 Yani ortaya çıkan sayfa bu gibi görünüyor. 848 00:41:48,330 --> 00:41:52,890 Ve elde edilen davranışı, Eğer bu gibi görünüyor, göreceksiniz. 849 00:41:52,890 --> 00:41:56,940 sayfa yerel ana merhaba diyor Estetik pek david, 850 00:41:56,940 --> 00:41:58,340 Bir kullanıcıyı selamlamak için bir yol. 851 00:41:58,340 --> 00:41:59,950 Ama gerçekte ne oluyor? 852 00:41:59,950 --> 00:42:01,360 >> Peki, bu ne düşünün. 853 00:42:01,360 --> 00:42:02,310 Bu metin alanıdır. 854 00:42:02,310 --> 00:42:04,635 Ve göre olan Burada HTML, bunu verdim 855 00:42:04,635 --> 00:42:07,350 benzersiz bir tanımlayıcı denilen alıntı unquote isim. 856 00:42:07,350 --> 00:42:09,770 Bu arada, ne zaman söyledim Kullanıcı, bu formu gönderir 857 00:42:09,770 --> 00:42:13,820 Enter vurarak ya tıklayarak Gönder düğmesi, Greet denilen işlev çağrısı 858 00:42:13,820 --> 00:42:15,410 ve daha sonra yanlış dönmek. 859 00:42:15,410 --> 00:42:16,870 En ters olanlar düşünelim. 860 00:42:16,870 --> 00:42:20,590 Ben, Gönder'i tıklayın zaman dikkat Bu sayfanın URL'sini değişmez. 861 00:42:20,590 --> 00:42:22,420 Tarayıcının simgesi dönmeye başlar vermedi. 862 00:42:22,420 --> 00:42:27,050 Ben her yerde gitmedi, ve işte kelimenin tam anlamıyla ben yanlış dönmek dedi çünkü. 863 00:42:27,050 --> 00:42:31,534 Yanlış kısa devre veya durur dön Bir formun varsayılan davranış. 864 00:42:31,534 --> 00:42:33,700 Sonra bizi bırakır So Bu son bir soru. 865 00:42:33,700 --> 00:42:34,764 Greet ne yapar? 866 00:42:34,764 --> 00:42:36,680 Peki, görünüşe göre Greet adında bir işlevi çağırır 867 00:42:36,680 --> 00:42:39,250 Uyarı, biri geçer var uzun argüman 868 00:42:39,250 --> 00:42:43,950 Birlikte bir bitiştirmek sonucu altdizgelerin demet, virgül boşluk merhaba, 869 00:42:43,950 --> 00:42:45,810 Daha sonra bu döner ne olursa olsun. 870 00:42:45,810 --> 00:42:51,490 Yani belge küresel gibi Bu ağacın kökü bu değişken, 871 00:42:51,490 --> 00:42:55,560 özel bir işlevi çağrılırken, aksi takdirde şu anda bir yöntem olarak da bilinir. 872 00:42:55,560 --> 00:42:57,650 Var bir işlev bir değişken içinde 873 00:42:57,650 --> 00:42:59,640 Bir yöntem yerine bir işlevi çağrılır. 874 00:42:59,640 --> 00:43:01,570 >> Yani KODU elemanı olsun. 875 00:43:01,570 --> 00:43:03,940 Ne eleman do you kendi kimliği ile almak istiyorum? 876 00:43:03,940 --> 00:43:06,970 Unquote adını alıntı ve sonra özellikle değer. 877 00:43:06,970 --> 00:43:12,000 Bu yüzden, diğer bir deyişle, bu kodun kimin Kimlik adı metin alanı bulur 878 00:43:12,000 --> 00:43:13,380 ve daha sonra onun değerini alır. 879 00:43:13,380 --> 00:43:16,460 Yani eğer ben bunu değiştirmek için vardı ve, Davin yerine David demek 880 00:43:16,460 --> 00:43:20,670 ve şimdi, Gönder'i tıklayın Davin için bir tebrik var. 881 00:43:20,670 --> 00:43:22,890 >> Nedenle tüm ince ve iyi Pekala,. 882 00:43:22,890 --> 00:43:25,480 Ama biz yapabilir bakalım Sadece beri temizleyici bu biraz 883 00:43:25,480 --> 00:43:28,190 Bu gibi kod yazma genellikle üzerine kaşlarını çattı olacak. 884 00:43:28,190 --> 00:43:30,060 Bu korkunç bakmak için gidiyor. 885 00:43:30,060 --> 00:43:32,330 Ama önce ne Burada dikkat fark 886 00:43:32,330 --> 00:43:35,970 yanında bu sürümde DOM birine değişen isim? 887 00:43:35,970 --> 00:43:41,110 Ne yapısal olarak farklı görünüyor Diğer karşı bu konuda? 888 00:43:41,110 --> 00:43:41,932 Evet? 889 00:43:41,932 --> 00:43:43,890 HEDEF KİTLE: Form üzerine mi Şimdi komut üst? 890 00:43:43,890 --> 00:43:46,570 David MALAN: Evet şekilde üstte Bazı meraklı bir nedenle senaryo. 891 00:43:46,570 --> 00:43:48,736 Yani ilk şey Bu da, bana dışarı atlar. 892 00:43:48,736 --> 00:43:50,990 Ve şükür ki, en azından, bu parça aynıdır. 893 00:43:50,990 --> 00:43:53,470 Yani görünüyor tek şey farklı olmak budur. 894 00:43:53,470 --> 00:43:55,296 >> Yani burada düzgün ne var JavaScript 2 hakkında. 895 00:43:55,296 --> 00:43:57,420 Ve zorlaştırır İlk bakışta anlamak, 896 00:43:57,420 --> 00:44:00,670 Özellikle son projeler eğer için Eğer online örnek kod bakıyoruz 897 00:44:00,670 --> 00:44:04,200 ancak bazı aşağı kaynar Temel sözdizimsel özellikleri. 898 00:44:04,200 --> 00:44:06,230 Burada da olmasıdır global değişken belge. 899 00:44:06,230 --> 00:44:09,540 Burada da bu yöntem ya da işlevi Bu ID ile eleman olsun diyor. 900 00:44:09,540 --> 00:44:11,570 Ben istiyorum bu sefer Demo olarak adlandırılan kimliği almak. 901 00:44:11,570 --> 00:44:12,490 Nerede bu? 902 00:44:12,490 --> 00:44:15,400 Bu görünüşte doğru Burada, formun kendisi. 903 00:44:15,400 --> 00:44:20,010 >> Ve şimdi fark olduğunu görünüşte ben ağaçtan bu düğümü geri almak 904 00:44:20,010 --> 00:44:22,940 biçimini temsil etmektedir kendisi değil, bir metin alanı, 905 00:44:22,940 --> 00:44:26,970 o, bu formu çıkıyor ağaçtan düğüm veya dikdörtgen, 906 00:44:26,970 --> 00:44:30,450 Biz bir özellik ararım ne var çok, çok, çok benzer 907 00:44:30,450 --> 00:44:35,390 C. bir yapı ruhu içinde sadece var Bu dikdörtgenin içinde bir veri üyesi. 908 00:44:35,390 --> 00:44:38,300 >> Yani formu var Burada, ve ben takılarak ediyorum, 909 00:44:38,300 --> 00:44:44,650 onun Açık Gönder veya ben, atama ediyorum işleyici ya da daha doğrusu Açık özelliği Gönder 910 00:44:44,650 --> 00:44:45,740 Aşağıdaki fonksiyon. 911 00:44:45,740 --> 00:44:49,000 Ve bu kadar, çılgın, bir şey bugüne kadar sözdizimsel. 912 00:44:49,000 --> 00:44:53,610 Bu JavaScript ve dışarı çıkıyor PHP ve açıkçası C bu konuda, 913 00:44:53,610 --> 00:44:58,990 biz bunu bile bile yapabilirsiniz isimsiz, anonim veya AKA lambda ekleyin 914 00:44:58,990 --> 00:45:03,000 Bir isim yok işlevleri ama yine de çağrılabilir. 915 00:45:03,000 --> 00:45:07,050 >> Peki ben burada yapıyorum ben atıyorum olduğunu Bu günü, özelliği Gönder olan 916 00:45:07,050 --> 00:45:14,330 Bir, benim DOM ağacının bu düğümün içinde olduğunu fonksiyonu, fonksiyon işaretçisi eğer olacak. 917 00:45:14,330 --> 00:45:16,310 Bu işlev hiçbir vardır isim, ama bu değil 918 00:45:16,310 --> 00:45:19,110 göreceğiz, çünkü önemli Bir an onu aramak için nasıl. 919 00:45:19,110 --> 00:45:21,780 Bu işlev çağrıldığında, Bu kod, sonra idam alır 920 00:45:21,780 --> 00:45:24,210 sahte hemen önce böyle döndürülür. 921 00:45:24,210 --> 00:45:25,800 >> Ama ben ne yaptık dikkat edin. 922 00:45:25,800 --> 00:45:27,830 Bu noktada Hikaye, ben bir form var. 923 00:45:27,830 --> 00:45:30,190 Bu demo olarak adlandırılan benzersiz bir kimliği var. 924 00:45:30,190 --> 00:45:33,740 Burada aşağı, ben bir script etiketini var Bu Aşağıdaki kodu çalıştırır. 925 00:45:33,740 --> 00:45:37,720 O düğüm bağlanır Bunun için ağaç On Gönder var 926 00:45:37,720 --> 00:45:40,260 özellik burada bu işlev. 927 00:45:40,260 --> 00:45:44,310 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, 928 00:45:44,310 --> 00:45:45,889 Bu işlev denir gidecek. 929 00:45:45,889 --> 00:45:48,680 Çünkü bir isim gerekmez halt ne denir umurunda. 930 00:45:48,680 --> 00:45:52,540 hiç almak için gidiyor sadece zaman Ben formu göndermek zaman denir. 931 00:45:52,540 --> 00:45:55,130 Benim için gerek yok, İnsan geliştirici, 932 00:45:55,130 --> 00:45:57,330 aslında başka bir yerde aramak. 933 00:45:57,330 --> 00:46:00,720 >> Şimdi sadece bir teaser olarak, bu gibi Yeterince bükme zihin değil, 934 00:46:00,720 --> 00:46:03,330 biz bile bu yapabilirsiniz daha şifreli kullanarak bakmak 935 00:46:03,330 --> 00:46:05,850 Bir süper popüler kütüphane jQuery denir. 936 00:46:05,850 --> 00:46:08,760 Aslında jQuery ve JavaScript genellikle conflated edilir. 937 00:46:08,760 --> 00:46:12,790 Ve ne Çarşamba günü yapacağız başlangıç Bu dil ve bu kütüphaneleri kullanarak 938 00:46:12,790 --> 00:46:16,030 giderek asenkron inşa etmek ve dinamik uygulamalar 939 00:46:16,030 --> 00:46:18,950 harita gibi oluyor uygulama, uygulamalar 940 00:46:18,950 --> 00:46:22,360 Bu gerçek web sayfasını güncellemek Zaman, çok Facebook ya da Gchat gibi 941 00:46:22,360 --> 00:46:27,130 yapmak, ve artık kendimizi sınırlandırmak bir olsun ya da sadece posta ile gönderin isabet 942 00:46:27,130 --> 00:46:27,630 yalnız. 943 00:46:27,630 --> 00:46:29,055 Yani Çarşamba günü görecek. 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [MÜZİK OYUN] 946 00:46:35,550 --> 00:48:09,728