1 00:00:00,000 --> 00:00:11,470 2 00:00:11,470 --> 00:00:12,764 >> SPEAKER 1: Semua, kan selamat datang kembali. 3 00:00:12,764 --> 00:00:14,140 Ini adalah CS50. 4 00:00:14,140 --> 00:00:16,800 Dan ini adalah awal minggu sembilan. 5 00:00:16,800 --> 00:00:19,960 Dan ini adalah awal dari sisa waktu Anda di CS50, di mana kita 6 00:00:19,960 --> 00:00:23,170 transisi sekarang, akhirnya, ke web aspek saja, di mana Anda akan 7 00:00:23,170 --> 00:00:26,200 menemukan bahwa banyak dari dasar-dasar yang kami telah mengekspor selama berminggu-minggu 8 00:00:26,200 --> 00:00:29,270 masih datang kembali untuk mengunjungi, atau menghantui, kita. 9 00:00:29,270 --> 00:00:33,440 Tapi sekarang, Anda akan menemukan bahwa itu adalah urutan besarnya lebih mudah untuk 10 00:00:33,440 --> 00:00:36,540 menyelesaikan tugas-tugas tertentu dan memecahkan masalah tertentu - 11 00:00:36,540 --> 00:00:41,050 begitu banyak sehingga bahkan jika Anda berpikir set masalah tertentu yang menyenangkan di mereka 12 00:00:41,050 --> 00:00:44,200 caranya sendiri, saya berpikir bahwa Anda akan menemukan bahwa p set 7, p set 8, dan kemudian, 13 00:00:44,200 --> 00:00:47,990 akhirnya, proyek akhir akan semua lebih memuaskan karena Anda akan 14 00:00:47,990 --> 00:00:51,830 menemukan bahwa kita mulai mengambil untuk diberikan sekarang hal-hal seperti manajemen memori, dan 15 00:00:51,830 --> 00:00:54,190 pointer, dan apa yang terjadi di bawah tenda. 16 00:00:54,190 --> 00:00:57,310 Dan lagi, tematik, semua seluruh semester telah layering ini 17 00:00:57,310 --> 00:00:58,030 dan layering. 18 00:00:58,030 --> 00:01:00,530 Dan sekarang kita semacam up di sini, berdiri di 19 00:01:00,530 --> 00:01:01,930 bahu minggu terakhir. 20 00:01:01,930 --> 00:01:05,360 >> Sekarang, ingat dari terakhir kali kita berbicara tentang bagaimana internet bekerja. 21 00:01:05,360 --> 00:01:08,120 Dan ini mungkin merupakan terlalu menyederhanakan, tapi ingat bahwa 22 00:01:08,120 --> 00:01:12,960 setiap komputer di dunia memiliki IP alamat, walaupun itu sedikit 23 00:01:12,960 --> 00:01:14,570 penyederhanaan masih. 24 00:01:14,570 --> 00:01:18,180 Dan alamat tersebut digunakan untuk secara unik mengidentifikasi mesin sehingga 25 00:01:18,180 --> 00:01:22,010 ketika Anda mengirim informasi, atau paket, sehingga untuk berbicara, mereka dapat memiliki asal 26 00:01:22,010 --> 00:01:24,000 alamat dan alamat tujuan. 27 00:01:24,000 --> 00:01:27,830 Dan alamat IP yang sama dapat digunakan baik untuk yang baik dan juga untuk kejahatan, 28 00:01:27,830 --> 00:01:29,270 untuk melacak Anda, misalnya. 29 00:01:29,270 --> 00:01:32,200 Bahkan, setiap salah satu dari Anda dengan laptop terbuka sekarang, atau telepon di Anda 30 00:01:32,200 --> 00:01:35,070 saku, memiliki alamat IP pada jaringan Harvard. 31 00:01:35,070 --> 00:01:39,120 Dan itu tidak semua yang sulit untuk berkorelasi bahwa siapa dan di mana Anda 32 00:01:39,120 --> 00:01:40,180 adalah hari ini. 33 00:01:40,180 --> 00:01:42,090 Tapi lebih pada bahwa mungkin di masa depan. 34 00:01:42,090 --> 00:01:46,510 >> Sekarang saya pikir saya akan membawa kembali beberapa kenangan [? meningkatkan?] dan memberi Anda 35 00:01:46,510 --> 00:01:49,360 klip lain dari acara Anda mungkin menemukan akrab. 36 00:01:49,360 --> 00:01:52,710 Jika kita bisa meredupkan lampu hanya beberapa detik. 37 00:01:52,710 --> 00:01:53,960 Acara Numb3rs. 38 00:01:53,960 --> 00:01:57,510 39 00:01:57,510 --> 00:02:00,540 >> SPEAKER 2: Ini alamat IPP4 32-bit. 40 00:02:00,540 --> 00:02:01,610 >> SPEAKER 3: IPP, seperti di internet? 41 00:02:01,610 --> 00:02:02,968 >> SPEAKER 2: jaringan pribadi. 42 00:02:02,968 --> 00:02:04,960 Untuk jaringan pribadi Amita itu. 43 00:02:04,960 --> 00:02:16,930 44 00:02:16,930 --> 00:02:19,602 Dia begitu menakjubkan. 45 00:02:19,602 --> 00:02:21,030 >> SPEAKER 3: Ayo, Charlie. 46 00:02:21,030 --> 00:02:21,490 >> SPEAKER 2: Ini. 47 00:02:21,490 --> 00:02:22,470 Sebuah alamat IP cermin. 48 00:02:22,470 --> 00:02:27,680 Dia membiarkan kita menonton apa dia lakukan secara real time. 49 00:02:27,680 --> 00:02:30,930 >> SPEAKER 1: OK, jadi beberapa hal salah dengan gambar ini. 50 00:02:30,930 --> 00:02:32,920 Jadi satu, dan yang satu ini dapat diterima, ini sebenarnya 51 00:02:32,920 --> 00:02:34,400 bukan alamat IP yang valid. 52 00:02:34,400 --> 00:02:38,190 Sebuah alamat IP yang valid harus nomor dari bentuk w.x.y.z, di mana masing-masing 53 00:02:38,190 --> 00:02:40,000 surat-surat adalah 0 sampai 255. 54 00:02:40,000 --> 00:02:42,330 Tapi itu baik-baik saja karena seperti film di mana mereka nomor telepon palsu, 55 00:02:42,330 --> 00:02:43,520 mereka memalsukan alamat IP. 56 00:02:43,520 --> 00:02:45,230 Anda tidak benar-benar memukul server nyata. 57 00:02:45,230 --> 00:02:46,760 >> Tapi pikiran Anda, ini adalah browser. 58 00:02:46,760 --> 00:02:50,760 Dan browser tidak mulai keluaran kode komputer seperti ini. 59 00:02:50,760 --> 00:02:54,230 Dan jika kita melihat sedikit lebih dalam, perhatikan bahwa bahasa yang mereka lihat 60 00:02:54,230 --> 00:02:57,040 pada layar adalah bahasa yang disebut Objective C, yang merupakan bahasa di 61 00:02:57,040 --> 00:02:59,520 yang aplikasi iPhone ditulis, terutama yang melibatkan 62 00:02:59,520 --> 00:03:03,540 krayon, seperti yang Anda lihat dari kode sumber di sini. 63 00:03:03,540 --> 00:03:06,600 64 00:03:06,600 --> 00:03:07,560 >> OK, saya pikir ini lucu. 65 00:03:07,560 --> 00:03:12,240 Jadi potongan kode sama sekali tidak ada hubungannya dengan apa pun ini 66 00:03:12,240 --> 00:03:13,940 episode tertentu adalah tentang. 67 00:03:13,940 --> 00:03:17,590 Jadi lelucon adalah semacam pada orang-orang mengambil untuk ini diberikan. 68 00:03:17,590 --> 00:03:20,220 Tapi ini tidak terlalu sulit untuk mendapatkan ini rincian teknis benar. 69 00:03:20,220 --> 00:03:21,980 Dan saya akan mendorong Anda. 70 00:03:21,980 --> 00:03:25,530 Dan sebenarnya, 50 mungkin sangat baik merusak banyak acara TV dan film atau Anda 71 00:03:25,530 --> 00:03:27,320 karena Anda akan menemukan bahwa itu hanya tidak mungkin apa yang mereka 72 00:03:27,320 --> 00:03:28,630 lakukan pada layar. 73 00:03:28,630 --> 00:03:31,750 Tapi memang, ini adalah kode yang Anda mungkin melihatnya dalam aplikasi iPhone 74 00:03:31,750 --> 00:03:33,640 atau Mac OS aplikasi. 75 00:03:33,640 --> 00:03:35,685 Ini tidak ada sama sekali hubungannya dengan keamanan. 76 00:03:35,685 --> 00:03:38,610 Sehingga mengawasi keluar untuk lebih hal menyenangkan seperti seperti itu. 77 00:03:38,610 --> 00:03:42,720 >> Tapi hari ini kita mulai menyelam benar-benar mendalam untuk berbagai macam bahasa. 78 00:03:42,720 --> 00:03:45,410 Sebuah memang, salah satu menyeluruh takeaways dari ini bagian dari 79 00:03:45,410 --> 00:03:51,815 Tentu saja bukan untuk mempelajari bagaimana program dalam PHP, bukan untuk belajar SQL per se, tidak 80 00:03:51,815 --> 00:03:58,100 untuk belajar JavaScript per se, melainkan untuk mengajar diri sendiri bagaimana untuk mengajar 81 00:03:58,100 --> 00:04:02,030 diri bahasa baru karena, memang, kita mulai untuk mengambil sekarang 82 00:04:02,030 --> 00:04:06,020 pelatihan roda off sehingga setelah end saja, Anda tidak mengharapkan 20 83 00:04:06,020 --> 00:04:08,890 Halaman spesifikasi untuk memberitahu Anda bagaimana untuk mengimplementasikan beberapa program yang. 84 00:04:08,890 --> 00:04:12,970 Anda memiliki bahan-bahan yang cukup dalam Anda pikiran, dan alat-alat yang cukup dalam perangkat Anda 85 00:04:12,970 --> 00:04:15,750 kit, yang dapat digunakan untuk mulai membangun solusi untuk masalah yang menarik bagi 86 00:04:15,750 --> 00:04:19,130 Anda untuk beberapa kelompok siswa, untuk beberapa proyek penelitian, atau benar-benar sesuatu 87 00:04:19,130 --> 00:04:20,140 menarik bagi Anda. 88 00:04:20,140 --> 00:04:24,150 >> Jadi untuk mencapai tujuan itu, ingat bahwa ini adalah gambar kita menarik itu terakhir kali. 89 00:04:24,150 --> 00:04:27,620 Dan ini adalah dua komputer, klien dan memutuskan, berbicara satu sama lain. 90 00:04:27,620 --> 00:04:31,130 Dan protokol, bahasa, sehingga untuk berbicara, bahwa kedua komputer terjadi 91 00:04:31,130 --> 00:04:33,220 untuk berbicara disebut HTTP. 92 00:04:33,220 --> 00:04:37,730 Dan itu hanya protokol yang digunakan oleh komputer untuk mentransfer informasi melalui 93 00:04:37,730 --> 00:04:38,710 world wide web. 94 00:04:38,710 --> 00:04:41,770 Web, tentu saja, adalah salah satu layanan yang berjalan di atas 95 00:04:41,770 --> 00:04:43,000 disebut internet. 96 00:04:43,000 --> 00:04:48,660 Apa layanan lain yang tersedia di atas internet hari ini? 97 00:04:48,660 --> 00:04:51,600 Beberapa protokol lain atau - apa itu? 98 00:04:51,600 --> 00:04:52,300 >> AUDIENCE: FTP. 99 00:04:52,300 --> 00:04:52,790 >> SPEAKER 1: FTP. 100 00:04:52,790 --> 00:04:54,630 Jadi File Transfer Protocol adalah hal lain. 101 00:04:54,630 --> 00:04:56,050 Sebagian besar dari Anda mungkin belum menggunakannya. 102 00:04:56,050 --> 00:04:58,830 Tetapi sebagian besar dari Anda mungkin telah menggunakan hal-hal seperti Gchat, atau instant 103 00:04:58,830 --> 00:05:00,970 pesan lebih umum, tentu email. 104 00:05:00,970 --> 00:05:04,470 Dan orang-orang juga, adalah layanan yang berjalan pada atas internet karena, di 105 00:05:04,470 --> 00:05:08,180 akhir hari, internet itu sendiri benar-benar hanya mendapatkan data dari titik A ke 106 00:05:08,180 --> 00:05:12,480 titik B. Dan itu menggunakan sejumlah partikel itu sendiri, salah satunya atau dua 107 00:05:12,480 --> 00:05:17,340 dari mereka yang paling umum disebut TCP / IP, yang mengatakan bahwa salah satu komputer di 108 00:05:17,340 --> 00:05:19,960 internet benar-benar dapat melakukan hal yang berbeda, email, 109 00:05:19,960 --> 00:05:20,980 dan web, dan sebagainya. 110 00:05:20,980 --> 00:05:22,220 Google melakukan banyak ini. 111 00:05:22,220 --> 00:05:26,310 Jadi bagaimana layanan tersebut unik diidentifikasi, yang kita katakan, pada komputer 112 00:05:26,310 --> 00:05:29,080 yang mungkin benar-benar akan melakukan beberapa hal? 113 00:05:29,080 --> 00:05:29,860 >> Nomor port. 114 00:05:29,860 --> 00:05:34,180 Dan ini hanya sewenang-wenang manusia konvensi seperti 80 adalah web, 443 adalah 115 00:05:34,180 --> 00:05:36,580 web dienkripsi, 25 adalah email. 116 00:05:36,580 --> 00:05:38,230 Dan ada tandan lain. 117 00:05:38,230 --> 00:05:41,860 Dan angka-angka hanya termasuk dalam paket-paket informasi, mereka 118 00:05:41,860 --> 00:05:46,230 amplop virtual, yang benar-benar berisi permintaan atau tanggapan. 119 00:05:46,230 --> 00:05:51,300 >> Jadi ketika Anda mendapatkan kembali respon dari web, biasanya, Anda tidak melihat 120 00:05:51,300 --> 00:05:54,780 nomor apapun dalam hal kode status respon. 121 00:05:54,780 --> 00:05:56,770 Anda tidak benar-benar melihat inner dari 122 00:05:56,770 --> 00:05:58,090 paket yang datang kembali. 123 00:05:58,090 --> 00:05:59,860 Tapi 200 memang berarti OK. 124 00:05:59,860 --> 00:06:01,530 Dan itu berarti semua adalah baik. 125 00:06:01,530 --> 00:06:02,870 Anda mungkin telah melihat banyak ini. 126 00:06:02,870 --> 00:06:05,710 Yang mungkin yang paling umum Anda pernah melihat di web? 127 00:06:05,710 --> 00:06:05,980 >> 404. 128 00:06:05,980 --> 00:06:07,330 Ini hanya berarti file tidak ditemukan. 129 00:06:07,330 --> 00:06:08,270 Ini berarti seseorang mengacaukan. 130 00:06:08,270 --> 00:06:11,450 Anda lakukan dengan salah ketik URL, atau seseorang lain lakukan dengan memberi Anda sebuah 131 00:06:11,450 --> 00:06:15,100 URL tidak valid, atau mereka dihapus File dan URL masih 132 00:06:15,100 --> 00:06:16,130 yang digunakan oleh orang-orang. 133 00:06:16,130 --> 00:06:19,670 Jadi sejumlah alasan yang dapat menjelaskan mengapa file tidak ditemukan. 134 00:06:19,670 --> 00:06:22,990 Dan Anda akan melihat, dalam minggu-minggu yang akan datang, kode kesalahan lainnya, dan Anda akan 135 00:06:22,990 --> 00:06:24,195 mengambil keuntungan dari beberapa dari mereka. 136 00:06:24,195 --> 00:06:25,760 Yang terburuk adalah 500. 137 00:06:25,760 --> 00:06:29,820 Jika Anda mendapatkan error 500 dalam kode Anda sudah tertulis, menganggap hal itu sebagai semacam dari 138 00:06:29,820 --> 00:06:33,290 analog seg kesalahan dalam dunia pemrograman web. 139 00:06:33,290 --> 00:06:34,560 Ini tidak cukup sama beratnya. 140 00:06:34,560 --> 00:06:36,660 Tapi itu hanya berarti bahwa, di suatu tempat, Anda kacau. 141 00:06:36,660 --> 00:06:38,260 Jadi berharap untuk mereka. 142 00:06:38,260 --> 00:06:39,910 >> Tapi mari kita lihat apakah kita bisa melihat ini dalam konteks. 143 00:06:39,910 --> 00:06:43,460 Biarkan aku pergi ke browser di sini dan lakukan langkah berikut. 144 00:06:43,460 --> 00:06:45,710 Jadi ini adalah Chrome, yang kebetulan dipasang di alat. 145 00:06:45,710 --> 00:06:49,410 Tapi kebanyakan setiap browser hari ini memiliki beberapa fungsi setara. 146 00:06:49,410 --> 00:06:52,610 Aku akan naik menu Chrome, dan pergi ke Tools, dan aku akan pergi 147 00:06:52,610 --> 00:06:53,990 untuk Developer Tools. 148 00:06:53,990 --> 00:06:57,040 Dan Anda akan melihat bahwa panel ini sedikit terbuka di bawah jendela. 149 00:06:57,040 --> 00:07:00,190 Shortcut lain, harus jujur, bahwa saya biasanya menggunakan sendiri adalah dengan mengklik kanan 150 00:07:00,190 --> 00:07:04,370 atau Control klik di mana saja di web halaman dan hanya pergi ke Inspect Element. 151 00:07:04,370 --> 00:07:07,440 Dan itu tidak hanya akan membuka ini bagi Anda. 152 00:07:07,440 --> 00:07:10,230 Ini juga akan membuka, khususnya, bagian Elemen di 153 00:07:10,230 --> 00:07:11,430 sisi kiri. 154 00:07:11,430 --> 00:07:12,460 >> Jadi kita tentu melihat Google. 155 00:07:12,460 --> 00:07:13,930 Mereka mengubah logo mereka hari ini. 156 00:07:13,930 --> 00:07:20,200 Tapi jika saya gulir ke bawah di sini, perhatikan bahwa di bawah Elements, Anda lihat 157 00:07:20,200 --> 00:07:23,460 apa yang disebut HTML, HyperText Markup Bahasa, dan ini adalah bahasa 158 00:07:23,460 --> 00:07:26,000 bahwa ini dan semua halaman web, benar-benar, ditulis masuk 159 00:07:26,000 --> 00:07:28,950 Tapi itu benar-benar diformat untuk kita jauh lebih readably 160 00:07:28,950 --> 00:07:29,970 daripada biasanya. 161 00:07:29,970 --> 00:07:34,810 Bahkan, jika saya zoom out, dan aku bukan klik atau Kontrol Klik Kanan 162 00:07:34,810 --> 00:07:39,630 klik pada halaman, dan kemudian pergi ke Lihat Page Source, ini secara harfiah apa 163 00:07:39,630 --> 00:07:42,150 Google mengirim ke browser saya. 164 00:07:42,150 --> 00:07:46,480 >> Jadi seseorang atau beberapa orang menulis Google.com menggunakan kode sumber. 165 00:07:46,480 --> 00:07:47,790 Sebagian besar hal ini tidak HTML. 166 00:07:47,790 --> 00:07:49,340 Ini sebenarnya bahasa yang disebut JavaScript, yang 167 00:07:49,340 --> 00:07:50,880 kami akan datang ke Rabu. 168 00:07:50,880 --> 00:07:55,580 Tapi apa Chrome, dan apa setiap browser dapat lakukan untuk kita, adalah jenis melihat 169 00:07:55,580 --> 00:07:59,610 melewati semua gangguan dari sintaks gila, dan pasang kembali ruang putih 170 00:07:59,610 --> 00:08:02,940 bagi kita, dan bahkan sintaks sorot, atau mewarnai hal bagi kita. 171 00:08:02,940 --> 00:08:06,470 Jadi, Anda akan menemukan bahwa apa yang disebut alat pengembang dibangun ke browser 172 00:08:06,470 --> 00:08:10,830 akan membuat hidup Anda begitu, jadi lebih mudah karena Anda dapat menjelajahi, melalui menu ini 173 00:08:10,830 --> 00:08:13,940 antarmuka, apa yang mendasari kode sumber untuk 174 00:08:13,940 --> 00:08:15,750 halaman manapun di internet. 175 00:08:15,750 --> 00:08:19,070 Dan memang, ini adalah salah satu yang paling cara yang efektif untuk belajar bagaimana melakukan 176 00:08:19,070 --> 00:08:22,860 sesuatu yang baru, setidaknya jika halaman tidak begitu kompleks untuk membanjiri, adalah 177 00:08:22,860 --> 00:08:26,700 mulai mengaduk-aduk itu HTML, lihat pada yang disebut CSS, yang kami akan datang 178 00:08:26,700 --> 00:08:30,310 untuk sedikit juga, untuk mendapatkan pemahaman tentang bagaimana programmer yang 179 00:08:30,310 --> 00:08:33,480 menerapkan beberapa tertentu fitur halaman. 180 00:08:33,480 --> 00:08:36,530 >> Tapi yang lebih menarik secara teknis benar sekarang itu akan menjadi ini. 181 00:08:36,530 --> 00:08:39,429 Jika saya pergi ke tab Network, mari kita membersihkan ini. 182 00:08:39,429 --> 00:08:43,429 Aku akan mengklik sedikit menyeberangi simbol di sini, dan kemudian 183 00:08:43,429 --> 00:08:45,630 pergi ke situs web lain. 184 00:08:45,630 --> 00:08:48,430 Dan aku hanya akan mengetik di Facebook.com. 185 00:08:48,430 --> 00:08:51,940 Tidak ada HTTP, HTTPS tidak ada, tidak ada WWW. 186 00:08:51,940 --> 00:08:53,850 Mari kita benar-benar melihat apa yang terjadi di sini. 187 00:08:53,850 --> 00:08:55,030 >> Enter. 188 00:08:55,030 --> 00:08:58,480 Sekarang melihat sejumlah besar barang hanya muncul di bawah panel ini, di 189 00:08:58,480 --> 00:09:00,285 Selain halaman web muncul di atas. 190 00:09:00,285 --> 00:09:04,890 Aku akan gulir kembali ke Jaringan tab di sini, dan aku akan 191 00:09:04,890 --> 00:09:06,080 klik pada baris pertama. 192 00:09:06,080 --> 00:09:10,580 Apa alat ini akan mengungkapkan kepada kita adalah setiap salah satu permintaan HTTP 193 00:09:10,580 --> 00:09:13,550 yang cepat hanya kembali dan balik antara browser saya 194 00:09:13,550 --> 00:09:14,930 dan Server Facebook. 195 00:09:14,930 --> 00:09:17,830 Dan setiap salah satu baris merupakan salah satu permintaan tersebut atau 196 00:09:17,830 --> 00:09:20,970 respon, satu atau lebih dari orang maya amplop. 197 00:09:20,970 --> 00:09:24,080 Atau lebih santai, itu seperti orang seperti orang, seorang pelanggan dalam 198 00:09:24,080 --> 00:09:26,710 restoran, meminta sesuatu lagi, dan lagi, dan lagi. 199 00:09:26,710 --> 00:09:29,400 Dan pelayan terus membawa kembali satu per satu. 200 00:09:29,400 --> 00:09:33,850 >> Jadi sekarang, jika saya zoom in ini, perhatikan dan ini akan menjadi semacam hal 201 00:09:33,850 --> 00:09:36,600 bahwa Anda dipersilakan untuk mendorong dan untuk bermain dengan Anda sendiri, karena kita 202 00:09:36,600 --> 00:09:38,150 tidak akan pergi melalui segala sesuatu dengan sangat rinci. 203 00:09:38,150 --> 00:09:40,070 Tapi perhatikan ada beberapa sub tab di sini - 204 00:09:40,070 --> 00:09:43,700 Header, Preview, Respon, Cookies, dan waktu. 205 00:09:43,700 --> 00:09:48,280 Aku hanya akan melihat header untuk saat ini karena ini adalah sedikit 206 00:09:48,280 --> 00:09:53,600 bahan dalam amplop yang Data membantu mendapatkan ke dan dari tempat. 207 00:09:53,600 --> 00:09:57,590 >> Jadi pertama, biarkan aku mengklik ini, Lihat Sumber sebelah Header Permintaan. 208 00:09:57,590 --> 00:10:01,910 Ada permintaan bahwa browser saya, Chrome, dalam hal ini, dikirim dalam 209 00:10:01,910 --> 00:10:02,910 bahwa amplop virtual. 210 00:10:02,910 --> 00:10:04,800 Anda akan ingat minggu lalu saya diketik sementara manual 211 00:10:04,800 --> 00:10:06,380 berpura-pura menjadi browser. 212 00:10:06,380 --> 00:10:09,980 Kemudian mengingatkan server bahwa itu mencari host disebut 213 00:10:09,980 --> 00:10:10,835 Facebook.com. 214 00:10:10,835 --> 00:10:13,630 Dan kemudian ada sedikit lebih misterius informasi yang kita akan gelombang 215 00:10:13,630 --> 00:10:14,830 tangan kami untuk saat ini. 216 00:10:14,830 --> 00:10:18,640 >> Tapi kalau aku mulai gulir ke bawah sekarang jendela ini, biar sampai ke 217 00:10:18,640 --> 00:10:19,980 header respon. 218 00:10:19,980 --> 00:10:23,270 Ini adalah apa yang ada di virtual amplop yang kembali dari 219 00:10:23,270 --> 00:10:24,095 Facebook.com. 220 00:10:24,095 --> 00:10:27,390 Dan jika saya klik View Source hanya untuk melihat teks baku itu, 221 00:10:27,390 --> 00:10:28,400 memperhatikan beberapa hal. 222 00:10:28,400 --> 00:10:32,130 Satu, Facebook juga berbicara sama protokol, versi 1.1 tersebut. 223 00:10:32,130 --> 00:10:33,390 Jadi itu bagus. 224 00:10:33,390 --> 00:10:36,820 Tapi kode status 301, pindah secara permanen. 225 00:10:36,820 --> 00:10:38,880 >> Nah, mana sih yang Facebook pergi? 226 00:10:38,880 --> 00:10:40,430 Apa ini mencoba untuk menyampaikan kepada kami? 227 00:10:40,430 --> 00:10:44,310 Nah, perhatikan di sini ada lagi header yang disebut Location. 228 00:10:44,310 --> 00:10:51,050 Jadi mengapa Facebook mengatakan bahwa mereka pindah secara permanen ke URL yang 229 00:10:51,050 --> 00:10:53,580 Lokasi samping? 230 00:10:53,580 --> 00:10:54,962 Aku lupa www. 231 00:10:54,962 --> 00:10:56,250 >> Jadi itu pilihan saya. 232 00:10:56,250 --> 00:11:00,450 Bahkan, sebagian besar dari kita jarang, mungkin, ketik www.whatever.com hari ini. 233 00:11:00,450 --> 00:11:03,390 Tapi ternyata seorang administrator sistem, seperti Facebook, bisa 234 00:11:03,390 --> 00:11:06,800 mengkonfigurasi server mereka sedemikian rupa bahwa baik Facebook.com bekerja, atau 235 00:11:06,800 --> 00:11:12,450 www.Facebook.com bekerja, atau, benar-benar, awalan seperti di depan mereka 236 00:11:12,450 --> 00:11:13,210 nama domain. 237 00:11:13,210 --> 00:11:14,500 Jadi mereka telah melakukan itu untuk kita. 238 00:11:14,500 --> 00:11:16,910 Dan mereka mengarahkan kita, mungkin untuk beberapa teknis, 239 00:11:16,910 --> 00:11:18,100 beberapa alasan pemasaran. 240 00:11:18,100 --> 00:11:21,570 Mereka hanya ingin canonicalize pada www.Facebook.com. 241 00:11:21,570 --> 00:11:24,040 >> Tapi itu tidak cukup itu. 242 00:11:24,040 --> 00:11:28,560 Jika saya gulir ke bawah sini, mari kita melihat apa yang terjadi. 243 00:11:28,560 --> 00:11:30,810 Hal ini bilang kita pindah secara permanen ke 244 00:11:30,810 --> 00:11:33,450 http://www.Facebook.com. 245 00:11:33,450 --> 00:11:36,620 Jadi mari kita lihat permintaan kedua bahwa browser saya mengirim. 246 00:11:36,620 --> 00:11:40,070 Sayangnya, sepertinya Facebook telah bergerak lagi karena kedua 247 00:11:40,070 --> 00:11:44,420 permintaan, dengan memilih URL yang sebaliknya, mengatakan bahwa, juga, pindah 248 00:11:44,420 --> 00:11:45,010 permanen. 249 00:11:45,010 --> 00:11:48,140 Dan biarkan aku gulir ke bawah sini dengan header respon. 250 00:11:48,140 --> 00:11:51,530 Dimana Facebook pergi sekarang? 251 00:11:51,530 --> 00:11:52,680 >> Jadi HTTPS. 252 00:11:52,680 --> 00:11:56,130 Jadi sekarang Facebook telah dimulai, terutama mengingat saat ini 253 00:11:56,130 --> 00:11:59,750 peristiwa dalam beberapa bulan terakhir, khususnya dan juga dalam beberapa tahun terakhir 254 00:11:59,750 --> 00:12:03,670 untuk memaksa semua pengguna mereka, baik cara, menggunakan HTTPS, yang lebih 255 00:12:03,670 --> 00:12:06,210 mengamankan, meskipun tidak sepenuhnya aman. 256 00:12:06,210 --> 00:12:10,000 Dan jadi sekarang halaman saya, browser saya adalah akan meminta URL ini ketiga. 257 00:12:10,000 --> 00:12:14,710 Dan sekarang, akhirnya, kita mendapatkan dinyatakan tak terlihat 200 OK. 258 00:12:14,710 --> 00:12:18,830 >> Jadi apa yang di dunia atau semua ini baris lainnya di sini. 259 00:12:18,830 --> 00:12:22,630 Aku benar-benar mengetik satu hal, dan saya Browser tampaknya telah diminta seperti 260 00:12:22,630 --> 00:12:23,840 20 beberapa hal yang aneh. 261 00:12:23,840 --> 00:12:24,640 Apa itu? 262 00:12:24,640 --> 00:12:25,810 >> AUDIENCE: Script? 263 00:12:25,810 --> 00:12:28,460 >> SPEAKER 1: Script, file sehingga lainnya ditulis dalam bahasa yang disebut 264 00:12:28,460 --> 00:12:30,780 JavaScript, yang, sekali lagi, kita akan melihat sedikit pada hari Rabu. 265 00:12:30,780 --> 00:12:32,760 Apa lagi? 266 00:12:32,760 --> 00:12:33,390 Style sheet. 267 00:12:33,390 --> 00:12:36,350 Jadi sesuatu dalam bahasa yang disebut CSS, yang akan kita lihat dalam sedikit. 268 00:12:36,350 --> 00:12:40,690 Gifs, dan JPEG, dan pngs, dan gambar, dan file film - apa pun halaman web 269 00:12:40,690 --> 00:12:43,280 telah kemungkinan besar di bentuk file. 270 00:12:43,280 --> 00:12:46,750 Dan apa yang kita lihat di sebelah kiri sisi ada semua file 271 00:12:46,750 --> 00:12:50,280 bahwa Chrome harus men-download, rekursif, jika Anda mau, untuk 272 00:12:50,280 --> 00:12:52,430 menyusun keseluruhan halaman. 273 00:12:52,430 --> 00:12:56,210 >> Jadi apa yang kita lihat sejenak lalu dengan Google, jika saya klik pada Elemen 274 00:12:56,210 --> 00:13:00,470 tab, ini, tentu saja, adalah HTML, bahasa yang menyusun halaman ini. 275 00:13:00,470 --> 00:13:01,890 Tapi ada hal lain tandan. 276 00:13:01,890 --> 00:13:02,640 Ada logo. 277 00:13:02,640 --> 00:13:04,680 Ada yang biru-ish ikon di sana. 278 00:13:04,680 --> 00:13:07,610 Dan ada unsur-unsur lain masih halaman yang mereka mungkin 279 00:13:07,610 --> 00:13:08,610 file terpisah. 280 00:13:08,610 --> 00:13:11,860 >> Jadi apa yang bagus tentang browser adalah bahwa terlihat pada bahasa kita akan 281 00:13:11,860 --> 00:13:14,690 untuk mulai menulis, atau Anda sudah sudah menulis dimulai di P set 7, angka 282 00:13:14,690 --> 00:13:17,970 tahu di mana file-file hidup, dan pergi dan meraih mereka juga. 283 00:13:17,970 --> 00:13:21,010 Dan aku tidak bisa cukup menekankan, bahkan meskipun beberapa ini mungkin terlihat sedikit 284 00:13:21,010 --> 00:13:24,820 misterius atau luar biasa pada pandangan pertama, belajar bagaimana program 285 00:13:24,820 --> 00:13:28,500 aplikasi untuk web, itu berharga untuk memahami bagaimana 286 00:13:28,500 --> 00:13:29,410 alat kecil bekerja. 287 00:13:29,410 --> 00:13:33,830 Ini adalah semacam seperti GDB seperti alat-alat, tapi jauh lebih sederhana, pada akhirnya, untuk menggunakan - 288 00:13:33,830 --> 00:13:37,690 dan benar-benar memberi Anda mata ke dalam apa kita telah mengambil untuk diberikan untuk 289 00:13:37,690 --> 00:13:39,170 beberapa waktu sekarang. 290 00:13:39,170 --> 00:13:42,270 >> Jadi apa yang bisa kita lakukan sekarang dengan informasi ini? 291 00:13:42,270 --> 00:13:44,875 Nah, mari kita benar-benar melihat pada konsep yang mendasari HTML. 292 00:13:44,875 --> 00:13:49,025 Dan kami akan menunda, seperti yang sudah kita miliki, untuk bagian minggu ini, untuk masalah ini 293 00:13:49,025 --> 00:13:53,260 set 7 spesifikasi, untuk beberapa yang lebih ihwal bahasa tersebut. 294 00:13:53,260 --> 00:13:57,020 Tapi mari kita lihat apakah kita tidak bisa melukis gambaran apa yang harus Anda mengerti 295 00:13:57,020 --> 00:13:57,940 keseluruhan di sini. 296 00:13:57,940 --> 00:14:02,280 >> Jadi HTML, HyperText Markup Language, bukan bahasa pemrograman. 297 00:14:02,280 --> 00:14:03,520 Apa yang benar-benar berarti? 298 00:14:03,520 --> 00:14:05,690 Jadi HTML terlihat seperti ini. 299 00:14:05,690 --> 00:14:06,810 Dan beberapa dari Anda sudah mengetahui hal ini. 300 00:14:06,810 --> 00:14:08,130 Beberapa dari Anda telah melakukan ini untuk beberapa waktu. 301 00:14:08,130 --> 00:14:10,270 Tapi mari kita lihat apakah kita tidak dapat mengisi beberapa kekosongan juga. 302 00:14:10,270 --> 00:14:11,760 Jadi perhatikan beberapa hal di sini. 303 00:14:11,760 --> 00:14:13,030 Satu, itu hanya teks. 304 00:14:13,030 --> 00:14:15,960 Jadi itu hanya seperti kode sumber dalam C, atau bahasa lainnya. 305 00:14:15,960 --> 00:14:17,750 >> Perhatikan bahwa tampaknya ada menjadi pola di sini. 306 00:14:17,750 --> 00:14:20,870 Ada lekukan, namun secara teknis indentasi hanya manusia 307 00:14:20,870 --> 00:14:21,205 konvensi. 308 00:14:21,205 --> 00:14:24,980 Sebuah browser tidak peduli jika ada yang baru baris dan tab seperti yang kita lihat di sana. 309 00:14:24,980 --> 00:14:27,410 Tapi perhatikan bahwa ada simetri sini. 310 00:14:27,410 --> 00:14:31,180 Ada apa yang saya akan menelepon, di bagian atas file ini, tag terbuka, atau awal 311 00:14:31,180 --> 00:14:33,030 tag, disebut HTML. 312 00:14:33,030 --> 00:14:36,800 Dan kemudian, di bawah, sempurna berjajar up, seperti yang kita lakukan dengan kurung kurawal, 313 00:14:36,800 --> 00:14:40,910 kita melihat braket terbuka, ke depan slash, HTML, braket dekat. 314 00:14:40,910 --> 00:14:44,610 Jadi itulah penutupan yang sesuai tag, atau akhir tag, untuk hal itu. 315 00:14:44,610 --> 00:14:47,990 >> Bersama-sama, segala sesuatu dalam dari disebut tag terbuka dan tag dekat 316 00:14:47,990 --> 00:14:50,440 menulis apa yang akan kita sebut elemen. 317 00:14:50,440 --> 00:14:53,910 Dan kita akan lihat, hanya dalam beberapa saat, itu benar-benar seperti sebuah node dalam pohon. 318 00:14:53,910 --> 00:14:57,470 Karena jika Anda berpikir tentang sekarang lekukan yang tersirat di sini, Anda 319 00:14:57,470 --> 00:15:00,780 jenis memiliki, seperti, kakek simpul disebut HTML. 320 00:15:00,780 --> 00:15:06,870 Berapa banyak anak Anda mungkin mengatakan, berdasarkan pada gambar ini, elemen HTML memiliki? 321 00:15:06,870 --> 00:15:07,720 >> Jadi mungkin dua. 322 00:15:07,720 --> 00:15:10,240 Salah satunya adalah elemen head, rupanya. 323 00:15:10,240 --> 00:15:11,710 Dan satu elemen body. 324 00:15:11,710 --> 00:15:12,555 Dan mengapa dua anak? 325 00:15:12,555 --> 00:15:15,840 Yah, aku hanya semacam menyimpulkan bahwa jika Saya memiliki tag kepala terbuka dan kemudian 326 00:15:15,840 --> 00:15:17,820 tag kepala dekat, itu sebuah elemen. 327 00:15:17,820 --> 00:15:21,200 Dan kemudian, jika ada tubuh lain yang terbuka tag dan tag tubuh dekat, itu seperti 328 00:15:21,200 --> 00:15:22,340 unsur lain. 329 00:15:22,340 --> 00:15:26,000 Jadi dalam arti bahwa jika aku agak memutar gambar pada sisinya, itu 330 00:15:26,000 --> 00:15:29,910 seperti memiliki tag HTML, dan kemudian Kepala tag, dan kemudian tag tubuh, dan 331 00:15:29,910 --> 00:15:34,290 maka beberapa teks, dunia halo, menggantung off dari tubuh tag itu sendiri. 332 00:15:34,290 --> 00:15:36,620 >> Jadi kita bisa menggambar gambar yang mungkin terlihat seperti ini. 333 00:15:36,620 --> 00:15:38,020 Bentuk yang sewenang-wenang. 334 00:15:38,020 --> 00:15:40,870 Tapi perhatikan bahwa saya telah menggunakan semacam sebuah elips di bagian atas untuk mewakili 335 00:15:40,870 --> 00:15:41,860 dokumen itu sendiri. 336 00:15:41,860 --> 00:15:45,980 Ternyata bisa ada hal-hal lain dalam sebuah halaman web yang saya sudah tidak 337 00:15:45,980 --> 00:15:46,940 ditarik di sini. 338 00:15:46,940 --> 00:15:50,800 Jadi kita akan bahkan menggantung HTML simpul dari sebuah simpul dokumen yang disebut. 339 00:15:50,800 --> 00:15:53,730 Dan kemudian kita memiliki kepala dan tubuh dan judul, pemberitahuan, 340 00:15:53,730 --> 00:15:55,360 yang bersarang lanjut. 341 00:15:55,360 --> 00:15:58,650 Aku tidak repot-repot menempatkan baris tambahan istirahat dalam tag judul. 342 00:15:58,650 --> 00:16:02,710 Itu hanya merasa seperti itu semakin terlalu sedikit verbose. 343 00:16:02,710 --> 00:16:07,000 Jadi aku meninggalkannya di satu baris di sana, dengan judul terbuka, hello world, judul dekat. 344 00:16:07,000 --> 00:16:09,380 Dan kemudian kita memiliki beberapa teks menggantung off dari sini. 345 00:16:09,380 --> 00:16:12,200 >> Jadi gambar ini akan kembali ke kita ketika kita menyelam ke dalam JavaScript. 346 00:16:12,200 --> 00:16:15,110 Dan pemahaman bahwa ketika Anda menulis HTML seperti ini, apa 347 00:16:15,110 --> 00:16:16,250 adalah browser lakukan? 348 00:16:16,250 --> 00:16:19,290 Yah, kita tidak perlu khawatir tentang bagaimana melakukan ini, atau dengan apa yang 349 00:16:19,290 --> 00:16:23,090 algoritma, tapi pada akhir hari, ketika browser menerima HTML seperti 350 00:16:23,090 --> 00:16:27,510 itu, dari Facebook atau Google, mem-parsing itu, sehingga untuk berbicara, itu membacanya, 351 00:16:27,510 --> 00:16:31,160 dengan sesuatu seperti fread, atas ke bawah, kiri ke kanan, dan karena 352 00:16:31,160 --> 00:16:36,300 menyadari, oh, tag terbuka, kemudian tutup tag, itu mulai malloc, sehingga untuk berbicara, 353 00:16:36,300 --> 00:16:37,800 simpul di pohon. 354 00:16:37,800 --> 00:16:41,130 Dan ketika bertemu, seperti yang kita telah tersirat sini dengan lekukan, sebuah 355 00:16:41,130 --> 00:16:45,400 node anak, itu mallocs node untuk itu dan melekat bahwa untuk pohon. 356 00:16:45,400 --> 00:16:49,150 >> Jadi struktur pohon, pohon biner, pohon terner, dan pohon besar, yang 357 00:16:49,150 --> 00:16:53,380 kami melirik satu atau dua minggu yang lalu, pemberitahuan bahwa prinsip yang sama 358 00:16:53,380 --> 00:16:54,220 datang kembali kepada kami. 359 00:16:54,220 --> 00:16:57,590 Dan siapapun yang dilaksanakan, Chrome apapun Tim melakukan itu, diduga memiliki 360 00:16:57,590 --> 00:17:00,800 untuk menerapkan semacam struktur pohon bawah tenda. 361 00:17:00,800 --> 00:17:05,329 Dan itu sendiri mungkin dalam bahasa seperti C, atau C + +, atau lebih rendah 362 00:17:05,329 --> 00:17:08,540 bahasa tingkat yang kita akan sekarang menggunakan atas web. 363 00:17:08,540 --> 00:17:11,200 >> Jadi sekarang, mungkin, hal ini akan lebih masuk akal. 364 00:17:11,200 --> 00:17:15,420 Tato yang sebenarnya dari beberapa orang yang mungkin menyesal pada akhirnya, jenis. 365 00:17:15,420 --> 00:17:17,359 OK, baiklah, sehingga banyak humor web. 366 00:17:17,359 --> 00:17:18,599 Ini tidak benar-benar akan lebih begitu baik hari ini. 367 00:17:18,599 --> 00:17:19,560 Jadi kita akan melanjutkan. 368 00:17:19,560 --> 00:17:20,180 Baik. 369 00:17:20,180 --> 00:17:22,760 >> Jadi mari kita lihat sekarang beberapa contoh. 370 00:17:22,760 --> 00:17:24,660 Yang paling sederhana hal ini mungkin. 371 00:17:24,660 --> 00:17:29,170 Aku akan pergi ke depan dan terbuka di Gedit file bernama hello.php. 372 00:17:29,170 --> 00:17:31,730 373 00:17:31,730 --> 00:17:36,330 Dan dalam sini, aku akan cepat hanya melakukan ini, printf, mengutip 374 00:17:36,330 --> 00:17:38,590 tanda kutip, "hello world." 375 00:17:38,590 --> 00:17:42,460 >> Jadi pemberitahuan, dan aku akan melakukan yang backslash n, Aku sudah tidak peduli untuk mendeklarasikan utama. 376 00:17:42,460 --> 00:17:45,310 Ternyata, di php, dan banyak bahasa, Anda tidak perlu utama 377 00:17:45,310 --> 00:17:46,090 fungsi per se. 378 00:17:46,090 --> 00:17:47,720 Anda hanya dapat mulai menulis program anda. 379 00:17:47,720 --> 00:17:51,210 Sekarang, ketika saya menyimpan file ini, perhatikan aku akan harus melakukan hal berikut. 380 00:17:51,210 --> 00:17:55,360 Aku tidak akan menggunakan make, dan aku tidak akan menggunakan dentang karena PHP, seperti 381 00:17:55,360 --> 00:17:57,400 C, bukan bahasa dikompilasi. 382 00:17:57,400 --> 00:18:01,400 Ini apa yang disebut ditafsirkan bahasa, yang berarti bahwa Anda menjalankannya 383 00:18:01,400 --> 00:18:04,650 sebagai masukan melalui program lain disebut seorang penerjemah. 384 00:18:04,650 --> 00:18:08,150 Dan program yang membacanya, atas ke bawah, kiri ke kanan, dan melakukan 385 00:18:08,150 --> 00:18:09,290 apa pun yang Anda kirim ke lakukan. 386 00:18:09,290 --> 00:18:12,920 >> Jadi dalam hal ini di sini saya punya satu baris yang mengatakan printf. 387 00:18:12,920 --> 00:18:17,990 Jadi ketika saya menjalankan kode sumber ini, hello.php, meskipun program yang 388 00:18:17,990 --> 00:18:22,830 terjadi, mudah, untuk disebut PHP, bahwa PHP program akan membaca 389 00:18:22,830 --> 00:18:26,120 file ini, atas ke bawah, kiri ke kanan, dan itu akan melakukan apa yang saya 390 00:18:26,120 --> 00:18:30,110 kirim ke lakukan - mengeksekusi kode, dan jika tidak mengakui sesuatu, hanya 391 00:18:30,110 --> 00:18:31,320 meludahkannya. 392 00:18:31,320 --> 00:18:34,940 Jadi aku akan pergi ke depan dan menjalankan PHP hello.php. 393 00:18:34,940 --> 00:18:37,110 Enter. 394 00:18:37,110 --> 00:18:39,690 >> Dan itu tidak cukup apa yang saya inginkan. 395 00:18:39,690 --> 00:18:40,530 Nah, kenapa begitu? 396 00:18:40,530 --> 00:18:43,910 Nah, PHP adalah bahasa yang sebenarnya dirancang untuk menjadi cukup 397 00:18:43,910 --> 00:18:46,150 terkait dengan web. 398 00:18:46,150 --> 00:18:50,460 Ketika membuat halaman web dengan bahasa ini PHP, seperti yang kita akan segera melihat, kita akan 399 00:18:50,460 --> 00:18:54,560 ingin melakukan sesuatu seperti cetak garis-garis seperti ini. 400 00:18:54,560 --> 00:18:55,940 >> Jadi aku akan melakukan hal ini. 401 00:18:55,940 --> 00:19:00,810 Buka braket, tanda tanya, PHP, dan sekarang aku hanya akan indent hanya untuk menjaga 402 00:19:00,810 --> 00:19:01,960 hal-hal baik. 403 00:19:01,960 --> 00:19:04,910 Dan sekarang aku akan melakukan pertanyaan menandai braket dekat. 404 00:19:04,910 --> 00:19:06,270 Jadi ada sedikit asimetri sini. 405 00:19:06,270 --> 00:19:07,490 Anda tidak melakukan hal ini. 406 00:19:07,490 --> 00:19:10,530 Dan Anda tidak melakukan garis miring, sehingga PHP adalah sedikit berbeda. 407 00:19:10,530 --> 00:19:14,610 >> Tapi sekarang, jika saya jalankan program ini, PHP hello.php, sekarang saya 408 00:19:14,610 --> 00:19:16,090 benar-benar mendapatkan Hello World. 409 00:19:16,090 --> 00:19:17,750 Dan kita akan melihat mengapa ini sangat berharga. 410 00:19:17,750 --> 00:19:20,960 Satu, itu memungkinkan saya untuk menentukan, Super eksplisit, ini 411 00:19:20,960 --> 00:19:22,480 kode, melaksanakan ini. 412 00:19:22,480 --> 00:19:25,480 Dan itu memang apa ini tag khusus menyiratkan sini. 413 00:19:25,480 --> 00:19:30,330 >> Tapi itu juga berarti bahwa jika saya hanya melakukan sesuatu seperti saya bertujuan di sini, bahwa 414 00:19:30,330 --> 00:19:34,000 berarti, secara harfiah, itu hanya akan dicetak tanpa perlu 415 00:19:34,000 --> 00:19:36,850 benar-benar memanggil printf, atau cetak, atau fungsi yang sama. 416 00:19:36,850 --> 00:19:39,445 Jadi kami akan datang kembali ke hanya dalam beberapa saat. 417 00:19:39,445 --> 00:19:40,470 >> Pertama, mari kita lakukan ini. 418 00:19:40,470 --> 00:19:43,950 Dalam alat, kita memiliki direktori bernama vhosts, untuk virtual 419 00:19:43,950 --> 00:19:47,000 host, slash host lokal, slash publik. 420 00:19:47,000 --> 00:19:50,240 Jadi itu adalah verbose bit, tapi cerita panjang Singkatnya, alat ini dirancang untuk tidak 421 00:19:50,240 --> 00:19:53,770 hanya untuk mendukung C. Ini juga dirancang untuk mendukung PHP. 422 00:19:53,770 --> 00:19:57,440 Tapi itu juga dirancang untuk menjadi web Server, dan server database. 423 00:19:57,440 --> 00:20:00,230 Dan itu dirancang, dan benar-benar dikonfigurasi, untuk mengingatkan setiap 424 00:20:00,230 --> 00:20:04,230 web hosting komersial perusahaan yang Anda mungkin membayar $ 5 per bulan untuk, 425 00:20:04,230 --> 00:20:05,040 $ 100 per bulan untuk. 426 00:20:05,040 --> 00:20:08,200 Apapun layanan ini, itu dikonfigurasi menjadi sangat mirip dengan 427 00:20:08,200 --> 00:20:10,170 nyata server produksi dunia. 428 00:20:10,170 --> 00:20:13,485 >> Dan apa itu artinya bahwa berjalan pada alat adalah perangkat lunak server web. 429 00:20:13,485 --> 00:20:15,060 Hal ini terjadi untuk disebut Apache. 430 00:20:15,060 --> 00:20:17,790 Ini hanya gratis, dan open source, dan sangat populer. 431 00:20:17,790 --> 00:20:23,260 Dan kita mengkonfigurasi Apache untuk mengetahui bahwa jika saya mengunjungi URL tertentu, dengan 432 00:20:23,260 --> 00:20:28,060 Chrome atau browser dalam dari alat, untuk melihat ke dalam direktori ini 433 00:20:28,060 --> 00:20:31,030 untuk file yang pengguna meminta. 434 00:20:31,030 --> 00:20:32,790 >> Dengan kata lain, biarkan aku pergi ke depan dan melakukan hal ini. 435 00:20:32,790 --> 00:20:36,890 Di dalam direktori publik saya, saya akan untuk terus maju dan membuat file 436 00:20:36,890 --> 00:20:39,580 disebut index.html. 437 00:20:39,580 --> 00:20:41,000 Itu memberi saya tab di sini. 438 00:20:41,000 --> 00:20:44,210 Dan aku akan pergi sangat cepat dan pergi ke depan dan bang keluar 439 00:20:44,210 --> 00:20:45,010 program ini di sini. 440 00:20:45,010 --> 00:20:48,410 Doctype HTML, yang untuk saat ini, hanya asumsikan Anda harus mengetik. 441 00:20:48,410 --> 00:20:53,490 Ini hanya sebuah tag misterius, itu tidak benar-benar sebuah tag HTML, yang menentukan bahwa 442 00:20:53,490 --> 00:20:55,050 di sini datang beberapa HTML. 443 00:20:55,050 --> 00:20:57,400 >> Aku akan pergi ke depan dan menciptakan apa yang kita lihat saat yang lalu. 444 00:20:57,400 --> 00:20:58,650 Berikut kepala halaman. 445 00:20:58,650 --> 00:21:01,170 Di dalam kepala adalah - 446 00:21:01,170 --> 00:21:01,890 jadi judul. 447 00:21:01,890 --> 00:21:04,340 Jadi kita akan menyapa, dunia. 448 00:21:04,340 --> 00:21:06,570 Dan kemudian di sini adalah tag tubuh. 449 00:21:06,570 --> 00:21:08,580 Biarkan aku menutup tag tubuh. 450 00:21:08,580 --> 00:21:12,280 Dan kemudian di sini saya juga akan mengatakan, hanya untuk kejelasan, hello world. 451 00:21:12,280 --> 00:21:14,770 >> Jadi ini adalah, bisa dibilang, yang paling sederhana halaman web yang mungkin Anda 452 00:21:14,770 --> 00:21:15,770 dapat membuat itu berlaku. 453 00:21:15,770 --> 00:21:17,030 Ini sintaksis valid. 454 00:21:17,030 --> 00:21:18,620 Segala sesuatu yang dibuka ditutup. 455 00:21:18,620 --> 00:21:20,910 Semuanya baik di gaya dan indentasi. 456 00:21:20,910 --> 00:21:23,600 Jadi mari kita lihat sekarang bagaimana saya dapat mengakses file ini. 457 00:21:23,600 --> 00:21:25,540 >> Nah, biarkan aku pergi ke Chrome di sini. 458 00:21:25,540 --> 00:21:35,050 Dan biarkan aku pergi ke http://localhost/index.html. 459 00:21:35,050 --> 00:21:36,200 Jadi apa host lokal? 460 00:21:36,200 --> 00:21:39,400 Nah, kebanyakan komputer manapun di dunia, Linux, Mac OS, Windows, memiliki julukan 461 00:21:39,400 --> 00:21:40,680 disebut host lokal. 462 00:21:40,680 --> 00:21:42,900 Jadi jika Anda pernah ingin berbicara ke komputer Anda sendiri - 463 00:21:42,900 --> 00:21:45,140 meskipun, anehnya refleks - 464 00:21:45,140 --> 00:21:47,080 Anda menyebut diri host lokal. 465 00:21:47,080 --> 00:21:50,390 Tidak peduli apa komputer Anda yang sebenarnya adalah disebut, apakah itu Daud MacBook 466 00:21:50,390 --> 00:21:52,490 Air, atau sesuatu yang lebih verbose seperti itu. 467 00:21:52,490 --> 00:21:57,760 >> Jadi URL ini tampaknya akan menggunakan HTTP untuk berbicara dengan host lokal, 468 00:21:57,760 --> 00:22:00,800 komputer yang sama, alat, dan itu akan meminta, hanya mengambil 469 00:22:00,800 --> 00:22:02,570 menebak, file apa? 470 00:22:02,570 --> 00:22:04,460 Index.html. 471 00:22:04,460 --> 00:22:08,650 Jadi alat telah dikonfigurasi dalam maju untuk mengetahui bahwa jika aku bertanya 472 00:22:08,650 --> 00:22:13,460 untuk sesuatu seperti index.html, mencari dalam folder bernama vhosts, dalam 473 00:22:13,460 --> 00:22:17,950 folder bernama localhost, dalam folder didalamnya disebut publik. 474 00:22:17,950 --> 00:22:20,400 Di situlah semua publik saya file akan menjadi. 475 00:22:20,400 --> 00:22:22,610 Jadi aku sekarang akan tekan Enter. 476 00:22:22,610 --> 00:22:27,100 >> Dan sialan, ada yang terlarang pesan, atau dikenal sebagai 403, yang 477 00:22:27,100 --> 00:22:28,490 kode angka untuk itu. 478 00:22:28,490 --> 00:22:30,130 Jadi apa yang salah di sini? 479 00:22:30,130 --> 00:22:33,210 Yah, itu tidak cukup untuk hanya menempatkan file dalam folder saya. 480 00:22:33,210 --> 00:22:35,790 Saya harus benar-benar melakukan hal berikut. 481 00:22:35,790 --> 00:22:40,210 >> Biarkan aku pergi ke direktori vhosts saya, menjadi localhost, ke publik, dan membiarkan 482 00:22:40,210 --> 00:22:41,680 saya melakukan ls dasbor l. 483 00:22:41,680 --> 00:22:44,510 Dan ada beberapa hal lainnya di sini untuk tujuan hari ini. 484 00:22:44,510 --> 00:22:50,540 Tapi perhatikan di sisi kiri, selanjutnya ke index.html, kita hanya melihat satu RW. 485 00:22:50,540 --> 00:22:53,560 Dan di masa lalu, apa yang telah RW berdiri? 486 00:22:53,560 --> 00:22:54,240 >> Hanya membaca atau menulis. 487 00:22:54,240 --> 00:22:58,000 Fakta bahwa ia mengatakan rw di sebelah kiri berarti saya, pemilik file ini, bisa 488 00:22:58,000 --> 00:22:59,020 membaca atau menulis. 489 00:22:59,020 --> 00:23:05,010 Tapi aku harus membiarkan semua orang di dunia membaca ini, meskipun tidak menulis itu. 490 00:23:05,010 --> 00:23:09,650 Jadi aku akan mengubah modus dari berkas, chmod, semua plus r untuk memberikan 491 00:23:09,650 --> 00:23:13,910 semua orang membaca izin pada file yang bernama index.html. 492 00:23:13,910 --> 00:23:18,040 >> Dan jika sekarang saya ketik ulang ls dasbor l, pemberitahuan itu, di sini, lagi 493 00:23:18,040 --> 00:23:19,160 R ini telah muncul. 494 00:23:19,160 --> 00:23:21,090 Dan untuk saat ini, spec pergi ke lebih rinci. 495 00:23:21,090 --> 00:23:24,450 Untuk P set 7, itu hanya berarti orang sekarang dapat membaca file ini. 496 00:23:24,450 --> 00:23:27,790 Jika saya kembali ke browser saya sekarang dan kembali, voila. 497 00:23:27,790 --> 00:23:28,750 Halo dunia. 498 00:23:28,750 --> 00:23:32,260 >> Dan aku bahkan bisa membuka alat Chrome saya dan melihat, seperti dengan Google dan 499 00:23:32,260 --> 00:23:34,590 Facebook bahwa ada HTML saya, diformat sedikit 500 00:23:34,590 --> 00:23:35,930 berbeda dan berwarna. 501 00:23:35,930 --> 00:23:40,450 Jika saya pergi ke tab jaringan dan kembali halaman, melihat bahwa ada mendapatkan 502 00:23:40,450 --> 00:23:42,900 meminta agar Chrome mengirimkan pada alat. 503 00:23:42,900 --> 00:23:46,020 Ada 200 untuk itu file tertentu. 504 00:23:46,020 --> 00:23:49,340 Jadi singkatnya, ini adalah bagaimana semua ini berbagai potongan yang datang bersama-sama. 505 00:23:49,340 --> 00:23:53,530 Kebetulan bahwa server web kita gunakan sekarang tidak jauh, 506 00:23:53,530 --> 00:23:54,210 seperti Facebook. 507 00:23:54,210 --> 00:23:58,330 Ini benar-benar di komputer yang sama, yang sangat OK. 508 00:23:58,330 --> 00:24:00,590 >> Jadi apa lagi yang bisa kita lakukan dalam sebuah halaman web? 509 00:24:00,590 --> 00:24:03,110 Yah, hanya, mari angin melalui beberapa hal-hal ini. 510 00:24:03,110 --> 00:24:07,860 Tapi biarkan aku pergi ke depan dan membuka kembali Gedit dengan index.html. 511 00:24:07,860 --> 00:24:13,980 Dan biarkan aku pergi ke depan dan menyapa CS50, menyimpan file ini, kembali ke 512 00:24:13,980 --> 00:24:16,260 Browser, benar-benar underwhelming perubahan. 513 00:24:16,260 --> 00:24:19,130 >> Tapi bagaimana kalau kita ingin benar-benar link ke sesuatu sekarang? 514 00:24:19,130 --> 00:24:23,480 Jadi ternyata bahwa kita dapat memiliki Link dalam HTML yang hanya tag 515 00:24:23,480 --> 00:24:24,140 sendiri. 516 00:24:24,140 --> 00:24:27,320 Hal ini terjadi untuk disebut tag anchor. href sama 517 00:24:27,320 --> 00:24:33,190 https://www.cs50.net, www.cs50.net kutipan dekat, braket dekat. 518 00:24:33,190 --> 00:24:35,230 Dan sekarang mari kita lihat apa lain datang berikutnya. 519 00:24:35,230 --> 00:24:36,500 >> Aku telah membuka tag. 520 00:24:36,500 --> 00:24:38,990 Saya sekarang perlu untuk memberikan frase seperti CS50. 521 00:24:38,990 --> 00:24:40,600 Biarkan aku menutup tag. 522 00:24:40,600 --> 00:24:42,010 Dan perhatikan beberapa hal. 523 00:24:42,010 --> 00:24:45,270 Meskipun ada hal ini samar di sini, saya tidak terulang ketika Anda 524 00:24:45,270 --> 00:24:46,010 menutup tag. 525 00:24:46,010 --> 00:24:48,230 Anda hanya menutup tag dengan namanya sendiri. 526 00:24:48,230 --> 00:24:50,940 Dan ini adalah apa yang dikenal sebagai atribut dengan nilai. 527 00:24:50,940 --> 00:24:56,070 Atribut hanya memodifikasi perilaku beberapa tag dalam halaman. 528 00:24:56,070 --> 00:24:59,150 >> Jadi ini menetapkan bahwa hiper referensi, cara mewah untuk mengatakan 529 00:24:59,150 --> 00:25:03,660 URL untuk jangkar ini, untuk ini link, harus CS50.net. 530 00:25:03,660 --> 00:25:07,440 Dan teks yang kita ingin menunjukkan pengguna tidak bahwa URL mentah, melainkan 531 00:25:07,440 --> 00:25:08,730 yang CS50 kata. 532 00:25:08,730 --> 00:25:13,710 >> Jadi jika sekarang saya reload, biarkan aku zoom in untuk kejelasan, biarkan aku kembali halaman tersebut, 533 00:25:13,710 --> 00:25:16,460 melihat bahwa kita memiliki sekolah tua ini biru digarisbawahi link. 534 00:25:16,460 --> 00:25:20,000 Dan jika saya membawa lebih dari itu, dan itu akan menjadi sulit untuk melihat, di bagian bawah kiri 535 00:25:20,000 --> 00:25:23,690 pojok layar, perhatikan bahwa ia mengatakan URL yang 536 00:25:23,690 --> 00:25:24,430 Aku akan pergi. 537 00:25:24,430 --> 00:25:27,940 Dan jika saya klik sana, voila, sekarang saya sedang membuat halaman web. 538 00:25:27,940 --> 00:25:30,140 Dan kami telah dipimpin diri ke halaman rumah. 539 00:25:30,140 --> 00:25:32,670 >> Tapi perhatikan apa potensi ini menawarkan kita. 540 00:25:32,670 --> 00:25:34,890 Keamanan sangat banyak dalam mode ini. 541 00:25:34,890 --> 00:25:41,210 Bagaimana jika saya malah mengatakan sesuatu seperti ini, dan saya malah pergi ke, katakanlah, mari kita 542 00:25:41,210 --> 00:25:42,460 lihat, fakeCS50.net. 543 00:25:42,460 --> 00:25:44,660 544 00:25:44,660 --> 00:25:46,360 Reload halaman ini. 545 00:25:46,360 --> 00:25:50,180 >> OK, jadi melihat itu masih terlihat seperti aku akan CS50, kecuali mata yang cerdik 546 00:25:50,180 --> 00:25:51,560 akan melihat Aku akan CS50 palsu. 547 00:25:51,560 --> 00:25:54,550 Saya menduga domain ini tidak diambil. 548 00:25:54,550 --> 00:25:55,960 OK, jadi tidak tersedia. 549 00:25:55,960 --> 00:25:56,600 Jadi itu bagus. 550 00:25:56,600 --> 00:25:57,900 Tidak ada yang benar-benar memiliki domain tersebut. 551 00:25:57,900 --> 00:26:00,380 >> Tapi mari kita menjadi sedikit lebih berbahaya karena itulah agak bodoh. 552 00:26:00,380 --> 00:26:02,240 Bagaimana jika kita mengubahnya ke Paypal. 553 00:26:02,240 --> 00:26:09,960 Dan bagaimana jika kita sebut ini, seperti, www.paypal.badguy.com, 554 00:26:09,960 --> 00:26:12,070 apa domain adalah. 555 00:26:12,070 --> 00:26:13,700 Yang mungkin ada. 556 00:26:13,700 --> 00:26:16,260 Jadi sekarang biarkan aku kembali halaman tersebut. 557 00:26:16,260 --> 00:26:22,890 Dan di sini kita memiliki semacam phishing serangan, P-H-I-S-H-I-N-G, yang merupakan 558 00:26:22,890 --> 00:26:26,760 kata konyol diberikan untuk serangan yang mencoba untuk informasi ikan, atau, lebih baik 559 00:26:26,760 --> 00:26:30,450 Namun, uang, dari orang-orang dengan menipu mereka dalam menyediakan informasi yang 560 00:26:30,450 --> 00:26:31,990 mereka tidak mungkin sebaliknya dilakukan. 561 00:26:31,990 --> 00:26:33,500 Hal ini terlihat benar-benar legit, kan? 562 00:26:33,500 --> 00:26:34,930 Saya harus memiliki link di sini untuk Paypal.com. 563 00:26:34,930 --> 00:26:37,700 564 00:26:37,700 --> 00:26:40,430 Dalam keadilan, jika saya bergender itu dengan beberapa grafis, kita bisa membuatnya terlihat 565 00:26:40,430 --> 00:26:41,310 lebih seperti PayPal. 566 00:26:41,310 --> 00:26:41,510 Benar? 567 00:26:41,510 --> 00:26:43,815 Karena aku bisa, sebagai samping, Aku bisa pergi ke Paypal.com. 568 00:26:43,815 --> 00:26:47,110 Dan baru saja kita lihat bagaimana saya bisa melihat semua HTML mereka. 569 00:26:47,110 --> 00:26:50,560 Aku hanya bisa menyalinnya dan menciptakan estetika Paypal daripada pergi 570 00:26:50,560 --> 00:26:51,490 sekolah tua di sini. 571 00:26:51,490 --> 00:26:55,010 Tapi perhatikan, tentu saja, dan itu sedikit kecil masih, hanya bagian bawah 572 00:26:55,010 --> 00:26:59,190 pojok kiri, seperti di 10 titik font, apakah Anda melihat apa URL Anda 573 00:26:59,190 --> 00:27:01,310 benar-benar akan menyebabkan. 574 00:27:01,310 --> 00:27:06,580 >> Dan jadi jika Anda pernah mendapatkan spam yang mengatakan pergi ke depan, dan Anda akun 575 00:27:06,580 --> 00:27:07,420 telah diganggu. 576 00:27:07,420 --> 00:27:10,615 Silahkan klik link ini dan biarkan kami tahu sandi Anda sehingga kami dapat memastikan Anda 577 00:27:10,615 --> 00:27:13,010 Anda, jangan pernah melakukan itu. 578 00:27:13,010 --> 00:27:14,180 Hal-hal ini harus pergi tanpa berkata. 579 00:27:14,180 --> 00:27:17,670 Tapi itu sangat lucu, dan tragis, bagaimana setiap tahun ini tampaknya 580 00:27:17,670 --> 00:27:19,660 terjadi pada beberapa non-nol jumlah orang. 581 00:27:19,660 --> 00:27:21,400 >> Dan itulah keindahan dari serangan phishing. 582 00:27:21,400 --> 00:27:23,160 Anda dapat mengirimkan satu juta email. 583 00:27:23,160 --> 00:27:27,720 Dan bahkan jika 0,01% dari orang benar-benar klik di Paypal dan memberikan Anda 584 00:27:27,720 --> 00:27:31,040 password, itu masih nomor non-nol orang-orang yang baru saja memberikan 585 00:27:31,040 --> 00:27:32,200 Anda uang mereka. 586 00:27:32,200 --> 00:27:36,170 Dan mengirim email, tentu saja, cukup mudah dan, pada dasarnya, gratis 587 00:27:36,170 --> 00:27:36,970 hari ini. 588 00:27:36,970 --> 00:27:40,410 >> Jadi cerita panjang pendek, luar biasa ide yang indah, kan? 589 00:27:40,410 --> 00:27:44,620 Tahun lalu, ini adalah awal web, memungkinkan web 590 00:27:44,620 --> 00:27:46,330 hyperlink antara sumber daya. 591 00:27:46,330 --> 00:27:49,520 Tapi begitu cepat bisa itu digunakan untuk tujuan sakit. 592 00:27:49,520 --> 00:27:54,100 Dan email, cukup untuk mengatakan, ini hari, telah tertanam di dalam HTML. 593 00:27:54,100 --> 00:27:55,410 >> Nah, biarkan aku hanya satu hal lain. 594 00:27:55,410 --> 00:27:58,640 Dan kami akan menunda sebagian besar bagian dalam permasalahan yang tujuh untuk memungkinkan Anda untuk 595 00:27:58,640 --> 00:28:00,000 menjelajahi khusus. 596 00:28:00,000 --> 00:28:01,990 Tapi biarkan aku pergi ke depan dan melakukan beberapa hal di sini. 597 00:28:01,990 --> 00:28:04,840 Aku akan pergi dan menyatakan apa yang disebut div, atau 598 00:28:04,840 --> 00:28:06,080 divisi, halaman. 599 00:28:06,080 --> 00:28:07,770 Biarkan aku dekat bahwa tag div. 600 00:28:07,770 --> 00:28:11,460 >> Dan aku akan mengatakan sampai di sini atas halaman. 601 00:28:11,460 --> 00:28:14,940 Dan kemudian di bawah ini, saya akan melakukan sesuatu seperti div lain, tutup ini 602 00:28:14,940 --> 00:28:17,800 tag, dan melakukan bagian bawah halaman. 603 00:28:17,800 --> 00:28:18,840 Dan mari kita simpan. 604 00:28:18,840 --> 00:28:21,040 >> Jadi sekarang mari kita kembali ke file saya. 605 00:28:21,040 --> 00:28:22,120 Sangat underwhelming. 606 00:28:22,120 --> 00:28:25,520 Tapi apa divisi digunakan untuk, bawah tenda, itu sebenarnya 607 00:28:25,520 --> 00:28:26,920 elemen struktur yang bagus. 608 00:28:26,920 --> 00:28:30,300 Ia tidak memiliki estetika sejauh kita bisa melihat, selain, tampaknya, 609 00:28:30,300 --> 00:28:31,890 meletakkan sesuatu pada baris baru. 610 00:28:31,890 --> 00:28:36,290 >> Tapi perhatikan, sebagai samping, hanya memukul Masukkan tidak dipotong dalam HTML seperti itu 611 00:28:36,290 --> 00:28:39,840 tidak di C. Anda mungkin berpikir bahwa itu akan menempatkan kesenjangan yang besar antara yang bagus 612 00:28:39,840 --> 00:28:41,300 bagian atas dan bawah halaman. 613 00:28:41,300 --> 00:28:43,420 Tapi itu diabaikan. 614 00:28:43,420 --> 00:28:48,040 Ruang putih pada dasarnya diabaikan dalam halaman web selain pertama 615 00:28:48,040 --> 00:28:51,530 spasi karakter, atau carriage return, bahwa Anda menekan pada keyboard. 616 00:28:51,530 --> 00:28:55,370 Jika Anda ingin istirahat baris lebih, Anda harus menentukan sendiri. 617 00:28:55,370 --> 00:28:59,080 >> Jadi aku akan melakukan beberapa hal di sini untuk menunjukkan apa yang terjadi. 618 00:28:59,080 --> 00:29:02,700 Aku akan menambahkan sebuah atribut yang ada Dan lagi, cara Anda belajar 619 00:29:02,700 --> 00:29:07,110 apa atribut yang ada, apa ada tag, benar-benar, adalah referensi online. 620 00:29:07,110 --> 00:29:09,750 HTML adalah semacam bahasa - itu bukan bahasa pemrograman. 621 00:29:09,750 --> 00:29:12,460 Ini adalah bahasa markup - bahwa setelah setengah jam, mungkin, satu jam dengan 622 00:29:12,460 --> 00:29:15,930 , Anda akan pasti memahami, paling Kemungkinan besar, ide dasar. 623 00:29:15,930 --> 00:29:20,350 Dan kemudian pencarian Google pergi adalah semua tag kemungkinan bahwa Anda mungkin 624 00:29:20,350 --> 00:29:21,170 tertarik 625 00:29:21,170 --> 00:29:24,290 Dan per spec, yang cukup menyambut dan didorong di sini. 626 00:29:24,290 --> 00:29:26,120 >> Jadi sekarang biarkan aku pergi ke depan dan melakukan sesuatu seperti ini. 627 00:29:26,120 --> 00:29:28,690 Background-color. 628 00:29:28,690 --> 00:29:32,060 Dan sekarang, aku akan melakukan sesuatu seperti merah, titik koma. 629 00:29:32,060 --> 00:29:33,970 Dan Anda dapat melakukan hal ini dalam beberapa cara yang berbeda. 630 00:29:33,970 --> 00:29:36,770 Aku hanya jenis mengetik sebagai super eksplisit mungkin. 631 00:29:36,770 --> 00:29:41,960 >> Tapi ternyata bahwa nilai ini di sini adalah apa yang disebut CSS, Cascading Style 632 00:29:41,960 --> 00:29:43,700 Lembar, yang lain bahasa sama sekali. 633 00:29:43,700 --> 00:29:46,770 CSS tidak ada hubungannya dengan membuka tag dan tag dekat. 634 00:29:46,770 --> 00:29:48,230 Ini ada hubungannya dengan sifat. 635 00:29:48,230 --> 00:29:52,660 >> Dan sifat yang nilai cukup kunci pasang, yang hanya berarti beberapa kata, 636 00:29:52,660 --> 00:29:54,680 usus, dan kemudian beberapa kata lain. 637 00:29:54,680 --> 00:29:57,940 Dan jika Anda memiliki beberapa orang, atau hanya satu di sini, Anda dapat mengakhirinya dengan 638 00:29:57,940 --> 00:29:59,390 koma, hanya untuk kejelasan. 639 00:29:59,390 --> 00:30:01,370 Tapi itu juga akan bekerja di sini. 640 00:30:01,370 --> 00:30:02,500 >> Sekarang apa ini lakukan? 641 00:30:02,500 --> 00:30:03,610 Anda mungkin bisa menebak. 642 00:30:03,610 --> 00:30:05,930 Biarkan aku pergi ke depan dan muat ulang halaman ini. 643 00:30:05,930 --> 00:30:07,300 Dan sekarang itu benar-benar datang bersama-sama. 644 00:30:07,300 --> 00:30:09,150 Jadi atas halaman saya berwarna merah. 645 00:30:09,150 --> 00:30:12,380 Tapi apa kunci di sini adalah bahwa, saya sebutkan sebelumnya, div yang memberikan 646 00:30:12,380 --> 00:30:13,220 sebuah divisi dari halaman. 647 00:30:13,220 --> 00:30:14,410 Dan itu memang apa yang dilakukannya. 648 00:30:14,410 --> 00:30:17,920 Ini pada dasarnya membagi halaman ke dalam persegi panjang yang Anda kemudian dapat 649 00:30:17,920 --> 00:30:18,720 memanipulasi. 650 00:30:18,720 --> 00:30:22,330 >> Dan gagasan ini persegi panjang adalah jenis menarik dalam hal itu, jika Anda berpikir dari 651 00:30:22,330 --> 00:30:26,410 kebanyakan situs web apapun, mungkin ada beberapa struktur untuk itu. 652 00:30:26,410 --> 00:30:29,620 Sebagian besar dari Anda mungkin jarang terlihat Homepage Facebook jika Anda login 653 00:30:29,620 --> 00:30:30,440 di sepanjang waktu. 654 00:30:30,440 --> 00:30:33,920 >> Tapi di halaman rumah Facebook, ada semacam div di bagian atas. 655 00:30:33,920 --> 00:30:36,140 Dan itu mungkin tidak sesederhana sebagai salah satu div, tapi ada 656 00:30:36,140 --> 00:30:37,560 wilayah persegi panjang di sana. 657 00:30:37,560 --> 00:30:40,290 Sisa halaman seperti div besar, seperti banyak 658 00:30:40,290 --> 00:30:41,910 wilayah persegi panjang yang lebih besar. 659 00:30:41,910 --> 00:30:44,540 Jadi cerita panjang pendek, hanya dengan memiliki blok-blok bangunan kecil, yang 660 00:30:44,540 --> 00:30:49,250 kemampuan untuk model yang hal-hal seperti persegi panjang, apakah lebar atau sempit, Anda juga dapat 661 00:30:49,250 --> 00:30:53,680 membuat kolom berpotensi, memungkinkan Anda untuk lay out halaman, benar-benar, namun Anda 662 00:30:53,680 --> 00:30:54,100 mau. 663 00:30:54,100 --> 00:30:56,170 Kami benar-benar hanya menggaruk permukaan di sini. 664 00:30:56,170 --> 00:30:59,820 >> Memang, jika saya melakukan satu yang lain, biarkan aku pergi ke depan dan melakukan gaya, 665 00:30:59,820 --> 00:31:05,410 background-color, kami akan melakukan sesuatu seperti biru, kutipan dekat. 666 00:31:05,410 --> 00:31:06,620 Mari kita ulang ini. 667 00:31:06,620 --> 00:31:08,260 Jadi sekarang itu semakin bahkan lebih buruk. 668 00:31:08,260 --> 00:31:11,520 Tapi sekarang aku bisa jenis memamerkan P saya set lima keterampilan, kan? 669 00:31:11,520 --> 00:31:12,690 Red. 670 00:31:12,690 --> 00:31:15,640 Ini mengingatkan saya RGB, Red Green Blue tiga kali lipat. 671 00:31:15,640 --> 00:31:19,330 Nah, ternyata dalam pemrograman web, atau desain web, yang ini, kita sudah 672 00:31:19,330 --> 00:31:21,650 belum diprogram apa-apa per se, Anda dapat benar-benar 673 00:31:21,650 --> 00:31:22,880 memiliki kode heksadesimal. 674 00:31:22,880 --> 00:31:26,480 Jadi sesuatu sesuatu, sesuatu sesuatu, sesuatu sesuatu. 675 00:31:26,480 --> 00:31:30,650 Sehingga Anda dapat memiliki enam heksadesimal karakter, atau tiga, dalam beberapa kasus, 676 00:31:30,650 --> 00:31:33,480 dan masing-masing tanda tanya harus menjadi digit heksadesimal, 677 00:31:33,480 --> 00:31:34,985 nol sampai f. 678 00:31:34,985 --> 00:31:41,000 >> Jika saya ingin memiliki banyak merah, dan ada hijau, dan biru tidak ada, apa 679 00:31:41,000 --> 00:31:43,740 kebalikan dari nol ketika menggunakan hex? 680 00:31:43,740 --> 00:31:44,480 Ini f. 681 00:31:44,480 --> 00:31:51,130 Jadi yang bisa saya lakukan ff, nol nol, nol nol, simpan ini, dan sekarang datang ke sini. 682 00:31:51,130 --> 00:31:52,700 Dan aku tidak benar-benar melihat perubahan. 683 00:31:52,700 --> 00:31:56,230 Jadi kutipan tanda kutip "merah" ini rupanya identik untuk semua merah, 684 00:31:56,230 --> 00:31:57,610 ada hijau, ada biru. 685 00:31:57,610 --> 00:31:59,960 Sementara itu, mari kita sengaja mengubah satu ini menjadi sesuatu 686 00:31:59,960 --> 00:32:01,210 acak, seperti ABCDF. 687 00:32:01,210 --> 00:32:03,790 688 00:32:03,790 --> 00:32:05,860 >> Mari kita lihat apa itu. 689 00:32:05,860 --> 00:32:08,530 Ini adalah biru benar-benar baik, sebenarnya, biru bayi. 690 00:32:08,530 --> 00:32:11,820 Baiklah, jadi ini hanya sekarang kombinasi yang agak acak 691 00:32:11,820 --> 00:32:12,210 karakter. 692 00:32:12,210 --> 00:32:13,410 Jadi kita tidak akan terjebak disini. 693 00:32:13,410 --> 00:32:15,930 Tapi sekali lagi, ini berbicara kepada presisi bahwa Anda dapat mulai 694 00:32:15,930 --> 00:32:19,090 berlaku - bahkan jika Anda sangat kewalahan oleh estetika. 695 00:32:19,090 --> 00:32:21,750 Bahkan, jika Anda benar-benar ingin menjadi terkesan, biarkan aku pergi ke depan dan mengubah 696 00:32:21,750 --> 00:32:23,500 ukuran font, misalnya. 697 00:32:23,500 --> 00:32:25,960 Dan perhatikan titik koma, yang perlu ada. 698 00:32:25,960 --> 00:32:29,570 >> Ukuran font, kita bisa hanya konyol di sini, 96 poin. 699 00:32:29,570 --> 00:32:31,280 Simpan itu. 700 00:32:31,280 --> 00:32:33,670 Wow, itu adalah ukuran font besar. 701 00:32:33,670 --> 00:32:35,490 Baiklah, jadi itu sangat mudah. 702 00:32:35,490 --> 00:32:38,260 Dan sebenarnya, Anda pada dasarnya melihat halaman web pertama saya membuat 703 00:32:38,260 --> 00:32:40,060 tahun yang lalu, ketika saya pertama kali belajar hal-hal ini. 704 00:32:40,060 --> 00:32:42,190 Ini sangat mudah untuk membuat sangat hal mengerikan cepat. 705 00:32:42,190 --> 00:32:46,115 >> Dan jika Anda terbiasa dengan Wayback Mesin di archive.org, Anda 706 00:32:46,115 --> 00:32:48,210 dapat menemukan semua mengerikan saya halaman web undergrad. 707 00:32:48,210 --> 00:32:50,090 Salah satu memiliki Kermit si Katak di bagian depan. 708 00:32:50,090 --> 00:32:53,150 Aku melewati fase di mana saya pikir itu keren untuk mengambil latar belakang 709 00:32:53,150 --> 00:32:56,320 tirai merah, ketika saya belajar bagaimana Anda bisa gambar genteng lagi, dan lagi, dan 710 00:32:56,320 --> 00:32:59,540 lagi, untuk mengisi halaman dengan tirai merah norak besar. 711 00:32:59,540 --> 00:33:03,120 Dan kemudian, di atas ini, adalah sebuah ikon bahwa Anda harus mengklik untuk masuk ke rumah saya 712 00:33:03,120 --> 00:33:04,960 halaman karena itu sangat banyak dalam mode. 713 00:33:04,960 --> 00:33:08,870 >> Dan maka program pertama saya, saya pernah menulis tidak di PHP, tetapi dalam bahasa 714 00:33:08,870 --> 00:33:12,260 disebut Pearl, menulis sebuah buku tamu, yang adalah hal yang benar-benar keren bahwa 715 00:33:12,260 --> 00:33:14,250 Banyak orang mengharapkan Anda untuk ada di halaman rumah. 716 00:33:14,250 --> 00:33:17,510 Ketika Anda sampai ke halaman, mereka ingin Anda masuk, dan mengatakan siapa Anda, 717 00:33:17,510 --> 00:33:18,720 dan mengapa Anda berada di sana. 718 00:33:18,720 --> 00:33:21,320 Hal ini sangat 1990 gaya desain web. 719 00:33:21,320 --> 00:33:24,130 >> Tapi hari ini, pasti, kita sudah datang jauh jauh. 720 00:33:24,130 --> 00:33:27,560 Dan Anda akan melihat, dalam bagian, dan bahkan dalam masalah menetapkan tujuh, dengan 721 00:33:27,560 --> 00:33:31,570 memanfaatkan perpustakaan hari ini, itu jauh lebih mudah untuk membuat 722 00:33:31,570 --> 00:33:33,400 hal cantik cepat. 723 00:33:33,400 --> 00:33:36,550 Benar-benar di sini, kita hanya menggaruk permukaan apa yang dapat Anda lakukan 724 00:33:36,550 --> 00:33:37,400 Gaya. 725 00:33:37,400 --> 00:33:41,660 >> Dan pada kenyataannya, sudah, saya tekankan bahwa ini sudah semakin jelek, tidak 726 00:33:41,660 --> 00:33:46,030 hanya estetis, tetapi dalam hal gaya kode saya, atau 727 00:33:46,030 --> 00:33:47,260 desain kode saya. 728 00:33:47,260 --> 00:33:52,350 Saya saat ini comingled HTML, yang adalah tag terbuka kehijauan di sana, dengan 729 00:33:52,350 --> 00:33:55,160 Properti CSS, yang benar-benar legit. 730 00:33:55,160 --> 00:33:57,200 Ini benar-benar di mana bahasa memiliki asal-usulnya. 731 00:33:57,200 --> 00:34:01,030 >> Tapi dalam kepentingan desain yang bersih, seperti kita mulai hal anjak 732 00:34:01,030 --> 00:34:05,370 keluar dari file ke file C h., biarkan saya benar-benar mempraktekkan semacam itu 733 00:34:05,370 --> 00:34:07,990 Prinsip dan mulai melakukan ini sebagai gantinya. 734 00:34:07,990 --> 00:34:13,280 Biar tag gaya di sini, yang juga ada di HTML, dan biarkan aku 735 00:34:13,280 --> 00:34:15,330 tentukan berikut. 736 00:34:15,330 --> 00:34:16,360 Biarkan aku menghapus ini. 737 00:34:16,360 --> 00:34:18,110 Warna latar belakang akan menjadi merah. 738 00:34:18,110 --> 00:34:19,800 Aku akan menghapus ini sepenuhnya. 739 00:34:19,800 --> 00:34:22,580 Aku akan menyingkirkan gaya atribut, dan aku akan unik 740 00:34:22,580 --> 00:34:24,620 mengidentifikasi div ini dengan kata - 741 00:34:24,620 --> 00:34:28,750 sewenang-wenang, tetapi cukup, kutipan tanda kutip "atas." Dan id adalah khusus 742 00:34:28,750 --> 00:34:32,530 atribut yang unik mendefinisikan elemen HTML tertentu 743 00:34:32,530 --> 00:34:33,850 sebagai memiliki id itu. 744 00:34:33,850 --> 00:34:37,969 >> Jika saya sekarang ingin bergaya itu, di sini di kepala halaman saya, bagian dalam 745 00:34:37,969 --> 00:34:41,730 tag gaya, perhatikan bahwa Aku bisa melakukan hash atas. 746 00:34:41,730 --> 00:34:45,300 Dan kemudian saya dapat menempatkan beberapa keriting kawat gigi, mengingatkan C, dan kemudian membiarkan 747 00:34:45,300 --> 00:34:47,130 saya paste di stilisasi itu. 748 00:34:47,130 --> 00:34:49,929 Dan biarkan aku pergi ke depan di sini dan mengantisipasi mana aku pergi dengan ini. 749 00:34:49,929 --> 00:34:53,380 Biarkan saya juga membuat satu untuk div bawah. 750 00:34:53,380 --> 00:34:58,010 Mari saya ambil kode ini mengerikan dari bawah sini, menyimpannya di sini, dan saya akan 751 00:34:58,010 --> 00:35:00,770 sedikit lebih anal sekarang dan bergaya itu dengan hanya menempatkan hal-hal pada mereka sendiri 752 00:35:00,770 --> 00:35:02,540 garis, diakhiri dengan titik koma. 753 00:35:02,540 --> 00:35:04,430 Mari saya menyingkirkan tag gaya. 754 00:35:04,430 --> 00:35:05,320 >> Tapi aku belum dilakukan. 755 00:35:05,320 --> 00:35:07,406 Aku perlu melakukan satu hal lain. 756 00:35:07,406 --> 00:35:10,070 Ya, id sama dengan tanda kutip kutipan, "bawah," atau id apapun yang saya ingin 757 00:35:10,070 --> 00:35:11,740 memberikan elemen tersebut. 758 00:35:11,740 --> 00:35:13,420 Sekarang, biarkan aku kembali ke sini. 759 00:35:13,420 --> 00:35:14,360 Dan ini adalah mengerikan. 760 00:35:14,360 --> 00:35:15,805 Aku tidak bisa berurusan dengan 96 poin. 761 00:35:15,805 --> 00:35:16,960 Mari kita lakukan 24 poin. 762 00:35:16,960 --> 00:35:18,320 Atau Anda bisa lebih tepat. 763 00:35:18,320 --> 00:35:21,800 Anda benar-benar dapat menggunakan piksel, px, sehingga bahwa Anda benar-benar mendapatkan lebih halus gandum 764 00:35:21,800 --> 00:35:23,220 kontrol atas halaman Anda. 765 00:35:23,220 --> 00:35:26,860 >> Sebagai samping, itu belum tentu hal terbaik jika pengguna, untuk 766 00:35:26,860 --> 00:35:29,650 alasan aksesibilitas, ingin dapat meningkatkan ukuran. 767 00:35:29,650 --> 00:35:32,650 Jadi menyadari bahwa ada cara untuk melakukannya hal-hal yang tidak selalu 768 00:35:32,650 --> 00:35:34,230 kode keras semuanya. 769 00:35:34,230 --> 00:35:37,220 >> Baiklah, jadi lebih besar, 24 poin, daripada apa pun standarnya. 770 00:35:37,220 --> 00:35:38,630 Tapi sekarang sedikit lebih bersih. 771 00:35:38,630 --> 00:35:40,230 Dan biarkan aku mengambil satu langkah lebih jauh. 772 00:35:40,230 --> 00:35:47,220 Sama seperti gagasan file header, perhatikan kita satu langkah lebih dekat untuk itu. 773 00:35:47,220 --> 00:35:52,000 Saya memiliki faktor, tapi masih tersisa, dalam halaman saya, aturan-aturan CSS. 774 00:35:52,000 --> 00:35:56,200 Mengapa saya ingin mengambil satu langkah lanjut, menghapus sama sekali, dan 775 00:35:56,200 --> 00:35:59,860 memasukkannya ke dalam file terpisah? 776 00:35:59,860 --> 00:36:01,070 >> Jadi saya bisa menggunakannya kembali, kan? 777 00:36:01,070 --> 00:36:03,155 Ini hanya semacam intuisi sekarang. 778 00:36:03,155 --> 00:36:06,340 Sebelumnya, saya menyatakan bahwa itu hanya mendapatkan jelek memiliki gaya 779 00:36:06,340 --> 00:36:08,480 atribut dalam dari divs sendiri. 780 00:36:08,480 --> 00:36:09,750 Tapi hanya jenis berpikir bahwa melalui. 781 00:36:09,750 --> 00:36:13,560 Sebagai halaman Anda mendapatkan lebih lama dan lebih lama, jika Anda meletakkan di sini, dan di sini, dan 782 00:36:13,560 --> 00:36:18,350 di sini, dan di sini, semua ini berbeda warna, dan ukuran font, dan lainnya seperti 783 00:36:18,350 --> 00:36:22,550 atribut, halaman Anda sangat cepat akan menjadi tidak terkendali untuk Anda. 784 00:36:22,550 --> 00:36:24,570 >> Jika seseorang mendatangi Anda dan mengatakan, oh, kau tahu apa? 785 00:36:24,570 --> 00:36:28,070 Aku benar-benar ingin mengubah ukuran font oleh dua poin tambahan, Anda 786 00:36:28,070 --> 00:36:31,275 mungkin harus pergi dan mencari dan mengganti sejumlah besar baris kode. 787 00:36:31,275 --> 00:36:35,170 Ini jauh lebih menarik untuk memusatkan semua estetika seperti di sini. 788 00:36:35,170 --> 00:36:38,850 Tetapi jika Anda ingin menggunakan kembali mereka estetika dalam beberapa halaman web, semua 789 00:36:38,850 --> 00:36:41,100 yang lebih menarik untuk, Misalnya, membuat file 790 00:36:41,100 --> 00:36:45,290 disebut dengan mereka isi. 791 00:36:45,290 --> 00:36:46,680 >> Dan biarkan aku melakukan ini. 792 00:36:46,680 --> 00:36:51,150 793 00:36:51,150 --> 00:36:51,920 Simpan file ini. 794 00:36:51,920 --> 00:36:55,580 Saya katakan styles.css, sewenang-wenang, tapi konvensional. 795 00:36:55,580 --> 00:36:58,770 Aku akan memasukkannya ke dalam rumah John Harvard direktori dari sekarang untuk kesederhanaan. 796 00:36:58,770 --> 00:37:03,880 Dan apa yang dapat saya lakukan di halaman web saya adalah mendapatkan menyingkirkan dari tag gaya sama sekali, 797 00:37:03,880 --> 00:37:08,270 dan agak unintuitively, gunakan link tag, yang tidak memberikan Anda sebuah link di 798 00:37:08,270 --> 00:37:13,140 hyperlink, pengertian diklik, tapi di mana saya mengatakan link, href sama 799 00:37:13,140 --> 00:37:15,120 styles.css. 800 00:37:15,120 --> 00:37:20,050 Dan hubungan unsur ini telah dengan halaman web adalah untuk melayani sebagai 801 00:37:20,050 --> 00:37:21,280 style sheet nya. 802 00:37:21,280 --> 00:37:22,670 >> Jadi bagaimana saya tahu ini? 803 00:37:22,670 --> 00:37:25,950 Satu, Anda hanya membaca manual, atau Anda Google sekitar, dan Anda 804 00:37:25,950 --> 00:37:27,000 melihat berbagai sumber daya. 805 00:37:27,000 --> 00:37:30,520 Maksudku, yang benar-benar adalah bagaimana Anda mengambil teknik seperti ini, dan, konsisten 806 00:37:30,520 --> 00:37:34,720 dengan ide ini mengajarkan seseorang baru bahasa, sekali lagi, Anda akan menemukan bahwa 807 00:37:34,720 --> 00:37:38,830 hanya ada sejumlah terbatas hal untuk bahasa apapun itu, setelah Anda mendapatkan 808 00:37:38,830 --> 00:37:41,310 mereka, Anda akan menemukan bahwa hal itu akan lebih cepat dan lebih cepat untuk menulis. 809 00:37:41,310 --> 00:37:44,180 Memang, belajar pemrograman baru bahasa jauh lebih cepat daripada yang baru 810 00:37:44,180 --> 00:37:47,380 bahasa lisan karena hal-hal jauh lebih kecil dan banyak lagi 811 00:37:47,380 --> 00:37:48,820 tepat didefinisikan. 812 00:37:48,820 --> 00:37:51,590 >> Tapi aku sudah disorot sedikit dari anomali sini. 813 00:37:51,590 --> 00:37:57,750 Mengapa saya telah menyoroti ini garis miring di sini? 814 00:37:57,750 --> 00:37:59,420 Karena aku harus menutup tag. 815 00:37:59,420 --> 00:38:00,530 Saya harus menutup tag. 816 00:38:00,530 --> 00:38:02,750 Dan Anda akan menemukan sumber daya yang tak terhitung banyaknya online yang tidak 817 00:38:02,750 --> 00:38:04,080 tentu tag dekat. 818 00:38:04,080 --> 00:38:08,770 Dan realistis, itu tidak benar-benar diperlukan untuk teknis dan ada 819 00:38:08,770 --> 00:38:11,950 alasan realitas, browser hanya cukup toleran terhadap kesalahan dalam web 820 00:38:11,950 --> 00:38:14,360 halaman, untuk lebih baik atau lebih buruk, tapi kebanyakan buruk. 821 00:38:14,360 --> 00:38:18,830 >> Jadi ini di sini adalah cara lebih bersih mengatakan sesuatu yang bodoh seperti ini, 822 00:38:18,830 --> 00:38:22,330 di mana jika Anda ingin membuka link tag tapi dekat itu, benar-benar ada gagasan 823 00:38:22,330 --> 00:38:23,720 konten untuk tag link. 824 00:38:23,720 --> 00:38:26,000 Ini hanya berarti memuat ini file dan taruh di sini. 825 00:38:26,000 --> 00:38:30,610 Ini seperti termasuk tajam C. Anda dapat membuka dan menutup tag sekaligus 826 00:38:30,610 --> 00:38:31,660 dalam tag yang sama. 827 00:38:31,660 --> 00:38:33,520 Dan ada contoh lain dari ini. 828 00:38:33,520 --> 00:38:37,280 Ini bukan cara untuk melakukan ini, tapi tag br, untuk jeda baris, jika saya 829 00:38:37,280 --> 00:38:41,780 benar-benar ingin untuk mencapai apa yang saya mencoba sebelumnya dengan menekan Enter, jika 830 00:38:41,780 --> 00:38:45,380 Saya secara eksplisit mengatakan garis istirahat, garis istirahat, garis istirahat, garis istirahat, dan 831 00:38:45,380 --> 00:38:49,100 kemudian reload halaman ini, sekarang Anda akan melihat yang bawah halaman ini, 832 00:38:49,100 --> 00:38:51,940 memang, lebih jauh turun bagian bawah halaman. 833 00:38:51,940 --> 00:38:55,840 Tetapi bahkan yang bisa dilakukan jauh lebih bersih dengan CSS, dan dengan margin, 834 00:38:55,840 --> 00:38:58,120 dan dengan estetika seperti lainnya teknik. 835 00:38:58,120 --> 00:38:59,940 >> Jadi untuk saat ini, adalah takeaways ini. 836 00:38:59,940 --> 00:39:02,320 Dalam HTML, kita memiliki hal yang disebut tag. 837 00:39:02,320 --> 00:39:04,830 Dalam CSS, kita memiliki hal-hal disebut properti. 838 00:39:04,830 --> 00:39:08,700 Kita bisa comingle kedua bahasa, baik dengan menggunakan atribut style, 839 00:39:08,700 --> 00:39:14,240 atau tag gaya, atau terbaik namun, anjak itu sama sekali, seperti yang kita lakukan 840 00:39:14,240 --> 00:39:17,270 dalam masalah set 7. 841 00:39:17,270 --> 00:39:23,820 Pertanyaan, kemudian, tentang dasar-dasar konseptual di sini? 842 00:39:23,820 --> 00:39:24,740 >> AUDIENCE: Saya punya pertanyaan. 843 00:39:24,740 --> 00:39:25,630 >> SPEAKER 1: Oh, maaf. 844 00:39:25,630 --> 00:39:28,880 >> AUDIENCE: Mengapa bukan berwarna - 845 00:39:28,880 --> 00:39:31,410 >> SPEAKER 1: Oh, di tab lain? 846 00:39:31,410 --> 00:39:32,232 Ini di sini? 847 00:39:32,232 --> 00:39:33,482 >> AUDIENCE: Tidak, itu seperti - 848 00:39:33,482 --> 00:39:35,330 849 00:39:35,330 --> 00:39:39,480 >> SPEAKER 1: Oh, itu karena Aku sedang ceroboh. 850 00:39:39,480 --> 00:39:41,350 Aku meletakkan file di tempat yang salah. 851 00:39:41,350 --> 00:39:47,840 Jadi jika saya benar-benar taruh di sini, dan saya chmod itu, semua + r untuk styles.css, dan 852 00:39:47,840 --> 00:39:52,050 sekarang kembali halaman tersebut, sekarang kita mendapatkan stilisasi kembali. 853 00:39:52,050 --> 00:39:54,530 Dan karena ukuran font yang berbeda, kita tidak melihat cukup banyak 854 00:39:54,530 --> 00:39:55,010 spasi. 855 00:39:55,010 --> 00:39:58,240 Kami bukan melihat apa default sebagai gantinya. 856 00:39:58,240 --> 00:40:00,050 Pertanyaan yang bagus. 857 00:40:00,050 --> 00:40:00,846 Ya? 858 00:40:00,846 --> 00:40:02,630 >> AUDIENCE: Mengapa link tag dalam header? 859 00:40:02,630 --> 00:40:06,270 >> SPEAKER 1: Mengapa link tag dalam header - 860 00:40:06,270 --> 00:40:07,650 jawaban singkat, hanya karena. 861 00:40:07,650 --> 00:40:08,930 Itulah yang diputuskan. 862 00:40:08,930 --> 00:40:10,720 Di situlah tag link pergi ketika Anda memiliki apa yang disebut 863 00:40:10,720 --> 00:40:13,650 style sheet eksternal. 864 00:40:13,650 --> 00:40:16,430 Pertanyaan lain? 865 00:40:16,430 --> 00:40:17,770 >> Baiklah mari kita lakukan ini. 866 00:40:17,770 --> 00:40:20,500 Kami memiliki begitu menyenangkan di depan kita hari ini. 867 00:40:20,500 --> 00:40:22,480 Itu hanya menggaruk permukaan CSS. 868 00:40:22,480 --> 00:40:23,010 Mari kita melakukan ini. 869 00:40:23,010 --> 00:40:25,980 Mari kita istirahat lima menit di sini karena, per email saya, mari kita menggantung di 870 00:40:25,980 --> 00:40:27,200 ada sampai 2:30-ish hari ini. 871 00:40:27,200 --> 00:40:28,540 Tapi jika Anda harus pergi, itu bagus. 872 00:40:28,540 --> 00:40:30,380 Tapi kita akan terus maju setelah lima menit istirahat. 873 00:40:30,380 --> 00:40:35,930 Dan kita akan belajar sedikit sesuatu tentang PHP, MySQL, dan banyak lagi. 874 00:40:35,930 --> 00:40:44,520 >> Baiklah, jadi mari kita coba, sekarang, untuk mengikat beberapa ide-ide ini bersama-sama dan membuat, 875 00:40:44,520 --> 00:40:46,180 mengatakan, mesin pencari kami sendiri. 876 00:40:46,180 --> 00:40:48,570 Aku melihat, agak aneh, berikut. 877 00:40:48,570 --> 00:40:52,610 Ketika Anda berada di Google.com, Anda biasanya pada URL seperti ini di sini 878 00:40:52,610 --> 00:40:54,870 dengan apa-apa setelah dot com. 879 00:40:54,870 --> 00:40:59,760 Tapi kalau aku mencari sesuatu yang bodoh seperti kucing, dan tekan Enter, kita akan mendapatkan - tidak 880 00:40:59,760 --> 00:41:01,300 bodoh, tapi kau tahu. 881 00:41:01,300 --> 00:41:05,410 >> OK, jadi perhatikan, di bagian atas halaman, sekarang, URL telah, tentu saja, berubah. 882 00:41:05,410 --> 00:41:07,190 Dan ini bukan apa-apa baru untuk salah satu dari kami. 883 00:41:07,190 --> 00:41:09,290 Anda klik link dan hal-hal terjadi di web. 884 00:41:09,290 --> 00:41:11,420 Tapi apa yang menarik di sini adalah sebagai berikut. 885 00:41:11,420 --> 00:41:14,500 Ada banyak seluruh kekacauan, tapi biarkan saya membuang hal-hal yang saya tidak 886 00:41:14,500 --> 00:41:16,600 cukup mengerti atau tidak benar-benar terlihat relevan. 887 00:41:16,600 --> 00:41:18,490 >> Biarkan aku menyingkirkan ini. 888 00:41:18,490 --> 00:41:20,030 Biarkan aku menyingkirkan ini. 889 00:41:20,030 --> 00:41:22,630 Dan biarkan aku hanya menyingkirkan dari semua ini. 890 00:41:22,630 --> 00:41:28,840 Dan sekarang melihat bahwa kucing dalam URL, diikuti dengan q, maka sama 891 00:41:28,840 --> 00:41:29,710 masuk depannya. 892 00:41:29,710 --> 00:41:32,110 Jadi ternyata ini adalah bagaimana cara kerjanya ketika datang 893 00:41:32,110 --> 00:41:33,360 untuk input dan output. 894 00:41:33,360 --> 00:41:37,510 >> Kami sudah lama membicarakan kotak hitam, kan? 895 00:41:37,510 --> 00:41:41,650 Jadi jika ini adalah fungsi diimplementasikan sini sebagai kotak hitam, dibutuhkan masukan 896 00:41:41,650 --> 00:41:45,290 dan menghasilkan output, baik, berarti dengan mana Anda memberikan masukan untuk 897 00:41:45,290 --> 00:41:49,270 website dengan cara, sering, URL-nya. 898 00:41:49,270 --> 00:41:52,850 Anda hanya menempatkan tanda tanya dan kemudian kunci sama nilai. 899 00:41:52,850 --> 00:41:56,740 Dan kemudian mungkin ampersand, dan kemudian kunci lain sama nilai, maka mungkin 900 00:41:56,740 --> 00:41:58,810 ampersand lain, kunci sama dengan nilai. 901 00:41:58,810 --> 00:42:03,030 Itulah cara Anda lulus dalam kunci dan nilai-nilai, pasang input. 902 00:42:03,030 --> 00:42:07,050 >> Jadi jika saya tekan Enter sekarang, apa menarik tentang Google adalah bahwa semua 903 00:42:07,050 --> 00:42:10,420 bahwa kekacauan saya dihapus tidak muncul untuk menjadi benar-benar diperlukan. 904 00:42:10,420 --> 00:42:15,120 Semua yang harus saya kirim ke Google adalah pertanyaan mark q sama dengan kucing untuk mendapatkan 905 00:42:15,120 --> 00:42:16,160 kembali beberapa kucing. 906 00:42:16,160 --> 00:42:20,160 Nah, implikasi dari itu, maka, adalah jika saya menarik gedit, saya sudah mulai 907 00:42:20,160 --> 00:42:24,360 membuat mesin pencari saya sendiri di sini dalam file yang disebut seach0.html. 908 00:42:24,360 --> 00:42:26,750 >> Dan biarkan aku pergi ke depan dan menghapus satu baris lagi yang Anda 909 00:42:26,750 --> 00:42:27,910 tidak seharusnya melihat. 910 00:42:27,910 --> 00:42:31,070 Dan sekarang, biarkan aku pergi ke browser saya sendiri, jadi tidak ke Google, dan pergi ke 911 00:42:31,070 --> 00:42:34,900 http://localhost. 912 00:42:34,900 --> 00:42:36,220 Dan itu akan mendapatkan di jalan. 913 00:42:36,220 --> 00:42:43,240 Jadi kita akan harus mengucapkan selamat tinggal bahwa untuk saat ini, bergerak ini di sini, 914 00:42:43,240 --> 00:42:46,270 oh, sekarang kita akan harus mengucapkan selamat tinggal pada file tersebut. 915 00:42:46,270 --> 00:42:51,700 >> Kapanpun Anda memiliki sebuah file yang bernama index.html atau index.php dalam 916 00:42:51,700 --> 00:42:54,980 direktori, jika server web dikonfigurasi dengan cara ini, apa yang Anda akan 917 00:42:54,980 --> 00:42:59,600 lihat, secara default, adalah isi dari File bukan daftar dari 918 00:42:59,600 --> 00:43:02,330 direktori, seperti yang saya inginkan di sini. 919 00:43:02,330 --> 00:43:03,750 Lebih lanjut tentang ini di spec. 920 00:43:03,750 --> 00:43:04,610 Kau tidak melihat itu. 921 00:43:04,610 --> 00:43:06,360 >> Jadi ini adalah apa yang sebenarnya saya inginkan. 922 00:43:06,360 --> 00:43:08,810 Tapi beberapa saat yang lalu, ada seorang file dalam folder ini disebut 923 00:43:08,810 --> 00:43:11,290 index.html dan index.php. 924 00:43:11,290 --> 00:43:13,380 Dan sehingga server web adalah menampilkan file-file saya. 925 00:43:13,380 --> 00:43:15,900 Sebaliknya, saya ingin direktori ini daftar di sini. 926 00:43:15,900 --> 00:43:18,340 >> Jadi aku akan pergi ke CSS dan pergi ke search0. 927 00:43:18,340 --> 00:43:21,770 Dan saya menyatakan bahwa ini adalah itu akan menjadi awal kompetitif saya sendiri 928 00:43:21,770 --> 00:43:22,490 mesin pencari. 929 00:43:22,490 --> 00:43:27,630 Dan untuk melakukan hal ini, aku akan pergi sini, ke CSS, dan membuka dengan 930 00:43:27,630 --> 00:43:30,190 gedit, cari 0. 931 00:43:30,190 --> 00:43:32,280 Tapi sayangnya, ada tidak banyak terjadi di sini. 932 00:43:32,280 --> 00:43:35,690 Yang saya lakukan adalah menggunakan tag heading, yang terjadi untuk disebut h1, yang 933 00:43:35,690 --> 00:43:38,180 dasarnya berarti besar dan berani, dan hanya itu. 934 00:43:38,180 --> 00:43:40,810 Tapi cara-cara yang kita bisa memberikan input melalui ini 935 00:43:40,810 --> 00:43:42,180 hal yang disebut bentuk. 936 00:43:42,180 --> 00:43:46,040 >> Jadi biarkan aku pergi ke depan dan membuka dan menutup, Terlebih Dahulu, bentuk tag sana. 937 00:43:46,040 --> 00:43:48,060 Dan biarkan aku pergi ke depan dan melakukan sesuatu seperti ini. 938 00:43:48,060 --> 00:43:51,430 Input, jenis sama dengan teks. 939 00:43:51,430 --> 00:43:56,320 Dan kemudian mari kita menutup tag dalam kurung sendiri. 940 00:43:56,320 --> 00:43:58,800 Saya tidak perlu untuk memulai kolom teks dan menghentikan kolom teks. 941 00:43:58,800 --> 00:44:01,080 Itu hanya akan berada di sana atau tidak. 942 00:44:01,080 --> 00:44:06,210 >> Dan kemudian di bawah itu, mari kita lakukan jenis input sama kirimkan. 943 00:44:06,210 --> 00:44:06,870 Simpan ini. 944 00:44:06,870 --> 00:44:08,630 Dan sekarang mari kita hanya melakukan kewarasan cepat memeriksa. 945 00:44:08,630 --> 00:44:09,820 Mari kita reload. 946 00:44:09,820 --> 00:44:10,890 >> OK, jadi itu tidak buruk. 947 00:44:10,890 --> 00:44:13,260 Ini bukan gaya Google, tapi itu cukup dekat. 948 00:44:13,260 --> 00:44:13,920 Ada kolom teks. 949 00:44:13,920 --> 00:44:17,190 Saya dapat mengetikkan beberapa hal di, tekan Enter, tapi tidak ada yang belum terjadi. 950 00:44:17,190 --> 00:44:21,090 Dan itu karena aku belum ditentukan tindakan untuk formulir ini, sehingga untuk berbicara. 951 00:44:21,090 --> 00:44:23,860 Jadi jika saya kembali ke bentuk elemen, ternyata, dan saya tahu ini hanya 952 00:44:23,860 --> 00:44:27,460 dari karena tidak membaca dokumentasi, yang tag form mengambil atribut 953 00:44:27,460 --> 00:44:31,880 disebut tindakan yang URL dari situs web yang Anda 954 00:44:31,880 --> 00:44:34,790 ingin mengirim formulir. 955 00:44:34,790 --> 00:44:37,610 >> Saya tidak benar-benar berpikir kita punya waktu untuk melaksanakan back end keseluruhan untuk 956 00:44:37,610 --> 00:44:38,570 mesin pencari hari ini. 957 00:44:38,570 --> 00:44:41,900 Jadi kita hanya akan mengatakan, eh, pergi ke google.com / search. 958 00:44:41,900 --> 00:44:43,450 Dan sekarang biarkan saya menutup kutipan saya. 959 00:44:43,450 --> 00:44:46,070 Dan biarkan aku lebih menentukan bahwa metode untuk menggunakan akan 960 00:44:46,070 --> 00:44:47,120 untuk dipanggil dapatkan. 961 00:44:47,120 --> 00:44:50,650 >> Singkat cerita, ada dua cara, di Setidaknya, bahwa Anda dapat mengirimkan informasi 962 00:44:50,650 --> 00:44:51,880 dari browser ke server. 963 00:44:51,880 --> 00:44:55,340 Salah satunya adalah mendapatkan, dan, untuk tujuan hari ini, itu hanya berarti dalam URL. 964 00:44:55,340 --> 00:44:58,730 Anda lihat persis tanda tanya, yang tanda sama dengan, dan ampersands yang 965 00:44:58,730 --> 00:44:59,780 kita lihat sebelumnya. 966 00:44:59,780 --> 00:45:02,890 Atau ada sebuah alternatif yang disebut pos. 967 00:45:02,890 --> 00:45:06,490 Untuk saat ini, tahu bahwa pos sering digunakan ketika Anda ingin meng-upload file, seperti 968 00:45:06,490 --> 00:45:09,820 gambar dan sebagainya, atau ketika Anda ingin mengirimkan informasi kartu kredit, atau 969 00:45:09,820 --> 00:45:13,810 password, apa yang tidak benar-benar masuk akal, konseptual, atau 970 00:45:13,810 --> 00:45:18,020 keamanan bijaksana, berakhir di URL browser Anda, di mana mengintip orang tua, 971 00:45:18,020 --> 00:45:21,520 atau teman sekamar, atau siapa pun dengan akses ke komputer Anda mungkin akan melihat. 972 00:45:21,520 --> 00:45:23,110 >> Jadi mari kita simpan itu di sini. 973 00:45:23,110 --> 00:45:24,480 Dan aku harus melakukan satu hal lainnya. 974 00:45:24,480 --> 00:45:27,250 Ini tidak cukup hanya untuk mengatakan memberi saya kolom teks. 975 00:45:27,250 --> 00:45:29,850 Saya harus memberikan lapangan itulah menghargai nama. 976 00:45:29,850 --> 00:45:34,500 Jadi biarkan aku meminjam pilihan Google nama, q, dan menentukan bahwa kedua 977 00:45:34,500 --> 00:45:38,150 atribut Aku tidak benar-benar peduli nama tombol Submit. 978 00:45:38,150 --> 00:45:40,890 Yang saya pedulikan adalah mengirimkan jenis pengguna masuk 979 00:45:40,890 --> 00:45:41,940 >> Dan sekarang ini adalah jenis jelek. 980 00:45:41,940 --> 00:45:42,820 Itu hanya mengatakan kirimkan. 981 00:45:42,820 --> 00:45:46,350 Ternyata, dan aku tahu ini dari dokumentasi, saya benar-benar bisa mengatakan 982 00:45:46,350 --> 00:45:51,710 nilai sama dengan kutipan tanda kutip "CS50 seach, "kutipan dekat. 983 00:45:51,710 --> 00:45:53,030 Kemudian mari kita ulang lagi. 984 00:45:53,030 --> 00:45:57,020 Jadi saya terus menekan Command-R, atau Control-R pada keyboard saya untuk reload. 985 00:45:57,020 --> 00:45:58,605 >> Sekarang kita memiliki lebih menarik mesin pencari. 986 00:45:58,605 --> 00:46:00,340 Itu tidak cukup terlihat seperti Google belum, meskipun. 987 00:46:00,340 --> 00:46:04,100 Jadi mari kita lanjutkan di sini dan melakukan istirahat garis kecil. 988 00:46:04,100 --> 00:46:06,066 >> OK, jadi sekarang kita memiliki Google. 989 00:46:06,066 --> 00:46:08,260 Kami benar-benar hampir punya Google. 990 00:46:08,260 --> 00:46:10,460 Jadi sekarang apa yang akan terjadi? 991 00:46:10,460 --> 00:46:12,220 Aku akan mengetikkan sesuatu seperti Kucing. 992 00:46:12,220 --> 00:46:16,570 Dan browser akan mengurai bahwa bentuk yang saya didefinisikan. 993 00:46:16,570 --> 00:46:19,470 Dan itu akan mengirim pengguna ke URL tersebut. 994 00:46:19,470 --> 00:46:23,420 Jadi saat ini, untuk beberapa alasan penasaran, Saya mendapat informasi lebih lanjut tentang saham 995 00:46:23,420 --> 00:46:24,410 dari sekitar kucing yang sebenarnya. 996 00:46:24,410 --> 00:46:30,580 Tapi itu baik-baik saja karena kami masih melihat berakhir di sini, q sama dengan kucing. 997 00:46:30,580 --> 00:46:35,200 >> Jadi cerita panjang pendek, tampaknya cukup sepele untuk mendapatkan input dari user. 998 00:46:35,200 --> 00:46:38,190 Dan untuk menjadi adil, ada tandan jenis lain dari kolom formulir. 999 00:46:38,190 --> 00:46:41,510 Ada kotak centang, dan sedikit saling tombol radio eksklusif, dan 1000 00:46:41,510 --> 00:46:42,960 drop down menu, dan banyak lagi. 1001 00:46:42,960 --> 00:46:46,160 Tapi semua dari mereka adalah sebagai relatif mudah diimplementasikan sebagai 1002 00:46:46,160 --> 00:46:48,040 bidang ini adalah teks. 1003 00:46:48,040 --> 00:46:52,050 Dan pada akhirnya, kita hanya perlu membuat yakin seseorang yang mendengarkan di sisi lain 1004 00:46:52,050 --> 00:46:56,490 akhir baris dalam rangka untuk mendapatkan Informasi diproses, entah bagaimana, dan 1005 00:46:56,490 --> 00:46:58,440 memberi kita kembali kucing kami. 1006 00:46:58,440 --> 00:47:00,840 >> Mari kita lihat sedikit lebih terlibat misalnya. 1007 00:47:00,840 --> 00:47:06,020 Biarkan aku pergi ke direktori vhost saya, ke host lokal, masyarakat, dan di mana saya 1008 00:47:06,020 --> 00:47:06,980 menempatkan kode sumber saat ini. 1009 00:47:06,980 --> 00:47:09,800 Semua ini akan berada di jalur yang ini situs web untuk Anda untuk bermain-main dengan. 1010 00:47:09,800 --> 00:47:15,420 Dan jika aku pergi ke froshims, biarkan aku membuka up file ini sekarang, froshim0.php. 1011 00:47:15,420 --> 00:47:18,460 Yang ini sedikit lebih verbose, sehingga kita tidak akan menulis ini dari awal. 1012 00:47:18,460 --> 00:47:21,970 Tapi perhatikan sekarang beberapa agak karakteristik akrab. 1013 00:47:21,970 --> 00:47:24,550 >> Satu, tag form, tindakan yang berbeda. 1014 00:47:24,550 --> 00:47:25,670 Ini bukan URL lengkap. 1015 00:47:25,670 --> 00:47:29,930 Sekarang, itu tampaknya untuk mengajukan disebut register0.php karena, dalam sekejap, 1016 00:47:29,930 --> 00:47:32,660 Aku akan mengajar diri sendiri sedikit sesuatu tentang PHP, pemrograman 1017 00:47:32,660 --> 00:47:37,360 bahasa, karena PHP dapat digunakan untuk menerapkan apa yang Google diimplementasikan sebagai 1018 00:47:37,360 --> 00:47:39,650 bagian belakang mesin pencari mereka. 1019 00:47:39,650 --> 00:47:42,890 >> Google, pada kenyataannya, mungkin menggunakan beberapa Python, beberapa C + +, dan 1020 00:47:42,890 --> 00:47:44,230 tandan bahasa lain. 1021 00:47:44,230 --> 00:47:48,230 Tetapi, kita pasti bisa menerapkan pencarian Hasil menggunakan PHP jika kita ingin. 1022 00:47:48,230 --> 00:47:49,610 Tetapi untuk sekarang, kita akan tetap sederhana. 1023 00:47:49,610 --> 00:47:53,320 Dan ini sebenarnya mengingatkan satu dari situs pertama yang saya 1024 00:47:53,320 --> 00:47:54,490 dibuat tahun yang lalu. 1025 00:47:54,490 --> 00:47:58,160 >> Kembali pada hari saya, Anda terdaftar untuk olahraga intramural sebagai mahasiswa dengan 1026 00:47:58,160 --> 00:48:00,880 mengisi selembar kertas, berjalan melintasi halaman, dan menjatuhkannya di 1027 00:48:00,880 --> 00:48:04,890 kotak surat dari Proctor di Wigglesworth, dan itu bagaimana Anda 1028 00:48:04,890 --> 00:48:05,460 terdaftar. 1029 00:48:05,460 --> 00:48:09,650 Dan proyek saya tak lama setelah CS50, adalah untuk menempatkan itu, yang membuat sempurna 1030 00:48:09,650 --> 00:48:13,460 akal, ke web, yang tidak sebagai bagian dari mode maka seperti sekarang. 1031 00:48:13,460 --> 00:48:17,510 Tapi semua kita harus lakukan adalah membuat, dasarnya, bentuk HTML. 1032 00:48:17,510 --> 00:48:19,640 >> Dan bentuk yang tampak kira-kira seperti ini. 1033 00:48:19,640 --> 00:48:22,480 Aku punya masukan untuk Nama mahasiswa itu. 1034 00:48:22,480 --> 00:48:27,780 Aku punya kotak centang lain untuk apakah atau tidak mereka ingin menjadi kapten, apa 1035 00:48:27,780 --> 00:48:30,400 jender mereka, dan apa asrama mereka. 1036 00:48:30,400 --> 00:48:33,370 Dan kemudian saya sulit dikodekan dalam hal seperti Apley Court, dan Canaday, 1037 00:48:33,370 --> 00:48:34,880 Abu-abu, dan sebagainya. 1038 00:48:34,880 --> 00:48:36,300 >> Jadi sekali lagi, tag baru. 1039 00:48:36,300 --> 00:48:39,820 Belum melihat ini sebelumnya, baru atribut, tapi cukup diakses. 1040 00:48:39,820 --> 00:48:42,360 Setelah Anda melihat contoh, Anda dapat jenis dari meminjam ide itu dan membuat penurunan 1041 00:48:42,360 --> 00:48:43,820 Menu untuk sebagian besar apa pun. 1042 00:48:43,820 --> 00:48:46,350 Tapi apa kuncinya adalah bahwa masing-masing hal-hal ini memiliki nama. 1043 00:48:46,350 --> 00:48:49,720 Dan di bagian bawah formulir ini, ada tombol kirim yang label, 1044 00:48:49,720 --> 00:48:51,510 atau nilai, adalah mendaftar. 1045 00:48:51,510 --> 00:48:52,670 >> Jadi mari kita pergi ke halaman ini. 1046 00:48:52,670 --> 00:48:55,050 Biarkan aku pergi kembali ke daftar direktori. 1047 00:48:55,050 --> 00:48:59,410 Biarkan aku pergi ke froshims, dan pergi ke froshim0.php. 1048 00:48:59,410 --> 00:49:01,150 Jadi mengerikan, untuk menjadi adil. 1049 00:49:01,150 --> 00:49:03,950 Jadi saya pasti bisa menyesuaikan dgn mode ini dengan beberapa CSS, saya bisa membuat beberapa 1050 00:49:03,950 --> 00:49:06,890 grafis, mungkin menambahkan beberapa warna, dan membuat lebih cantik. 1051 00:49:06,890 --> 00:49:10,530 Tetapi secara fungsional, saya akan berpendapat bahwa ini sebenarnya cukup lengkap. 1052 00:49:10,530 --> 00:49:15,190 >> Sayangnya, ketika saya mengisi formulir ini, David, Kapten, Laki-laki, kita akan memilih, 1053 00:49:15,190 --> 00:49:20,510 katakanlah Matthews, Register, semua yang terjadi adalah ini. 1054 00:49:20,510 --> 00:49:21,910 Tapi perhatikan beberapa takeaways. 1055 00:49:21,910 --> 00:49:27,130 Satu, file apa kembali mereka hasil, rupanya? 1056 00:49:27,130 --> 00:49:29,470 Jadi, memang, register0.php. 1057 00:49:29,470 --> 00:49:34,570 Jadi fakta bahwa kita melihat tindakan yang Nilai saat yang lalu untuk register0, ini 1058 00:49:34,570 --> 00:49:37,500 menguatkan bahwa kita memang berakhir up pada file tertentu. 1059 00:49:37,500 --> 00:49:39,040 >> Sekarang ini hanya teks jelek. 1060 00:49:39,040 --> 00:49:42,810 Tapi perhatikan bahwa teks ini berasal dari host lokal, 1061 00:49:42,810 --> 00:49:44,170 yang berasal dari alat. 1062 00:49:44,170 --> 00:49:46,350 Pikirkan alat sekarang hanya sebagai web server yang bisa di 1063 00:49:46,350 --> 00:49:46,910 Science Center. 1064 00:49:46,910 --> 00:49:48,060 Bisa jadi pada web yang sebenarnya. 1065 00:49:48,060 --> 00:49:49,850 Jadi dapat diakses publik. 1066 00:49:49,850 --> 00:49:55,480 >> Jadi jelas, ada beberapa cara untuk melewati membentuk masukan lapangan untuk server 1067 00:49:55,480 --> 00:49:56,840 sehingga dapat melakukan sesuatu dengan mereka. 1068 00:49:56,840 --> 00:49:59,020 Sayangnya, register0 sangat bodoh. 1069 00:49:59,020 --> 00:50:01,870 Semua hal ini adalah mencetak array yang terlihat seperti ini. 1070 00:50:01,870 --> 00:50:04,790 Dan itu bukan sebuah array dalam arti bahwa kita tahu itu. 1071 00:50:04,790 --> 00:50:08,760 Ternyata bahwa PHP, dan banyak bahasa, tidak hanya numerik 1072 00:50:08,760 --> 00:50:12,350 array diindeks yang indeks pertama adalah nol, lalu satu, lalu dua, lalu titik, 1073 00:50:12,350 --> 00:50:13,780 dot, dot, n dikurangi 1. 1074 00:50:13,780 --> 00:50:16,400 >> Ini adalah apa yang disebut array asosiatif. 1075 00:50:16,400 --> 00:50:21,150 Array asosiatif adalah satu di mana Anda dapat menyimpan pasangan nilai kunci mana 1076 00:50:21,150 --> 00:50:23,160 kuncinya belum tentu nomor. 1077 00:50:23,160 --> 00:50:25,580 Ini sebenarnya bisa string, kata. 1078 00:50:25,580 --> 00:50:28,230 Dan jadi ini dapat diimplementasikan, bawah tenda, ternyata, 1079 00:50:28,230 --> 00:50:31,896 menggunakan struktur data yang dikenal sebagai? 1080 00:50:31,896 --> 00:50:33,600 Pemikiran sesuatu yang dramatis akan terjadi - 1081 00:50:33,600 --> 00:50:34,840 tabel hash. 1082 00:50:34,840 --> 00:50:38,955 >> Jadi tabel hash, ingat, bagi Anda yang melakukannya untuk P set 6, atau bahkan mengingat 1083 00:50:38,955 --> 00:50:44,110 , setidaknya bahkan jika Anda melakukan percobaan, sebuah tabel hash, dalam penggunaan kami, digunakan untuk 1084 00:50:44,110 --> 00:50:45,090 hanya menyimpan kata-kata. 1085 00:50:45,090 --> 00:50:47,980 Tapi sungguh, Anda menyimpan kunci dan nilai. 1086 00:50:47,980 --> 00:50:51,940 Jika Anda menerapkan tabel hash untuk P set 6 kamus, tombol adalah 1087 00:50:51,940 --> 00:50:56,890 kata-kata sendiri, dan nilai-nilai secara efektif benar atau salah. 1088 00:50:56,890 --> 00:51:00,190 Ya, di sini, atau implisit, tidak, tidak di sini. 1089 00:51:00,190 --> 00:51:02,140 >> Nah, kita bisa menggeneralisasi gagasan itu. 1090 00:51:02,140 --> 00:51:06,230 Dan kita bisa menggunakan data yang sangat mirip struktur untuk menyimpan string tidak 1091 00:51:06,230 --> 00:51:10,180 sendiri sendirian di tabel hash Anda, tapi anggaplah bahwa dalam setiap satu dari hash Anda 1092 00:51:10,180 --> 00:51:11,130 node tabel. 1093 00:51:11,130 --> 00:51:14,210 Dan Anda bahkan bisa melakukan ini dalam mencoba bukan hanya memiliki bool. 1094 00:51:14,210 --> 00:51:15,350 Anda bisa memiliki sesuatu yang lain. 1095 00:51:15,350 --> 00:51:19,590 Bagaimana jika kunci tidak Maxwell, untuk Misalnya, tapi kutipan tanda kutip "nama," atau 1096 00:51:19,590 --> 00:51:22,900 mengutip tanda kutip "Kapten." Dan dalam struktur data C, Anda menempatkan 1097 00:51:22,900 --> 00:51:26,170 nilai, bukan hanya Boolean, tetapi nilai kutipan seperti tanda kutip "David," atau 1098 00:51:26,170 --> 00:51:28,690 "M," atau "Matthews," dan sebagainya. 1099 00:51:28,690 --> 00:51:33,170 >> Jadi struktur data yang sama kita gunakan ternyata ada dalam bahasa lain. 1100 00:51:33,170 --> 00:51:37,650 Dan aku berpendapat mereka benar-benar banyak, jauh lebih mudah untuk akses di sini. 1101 00:51:37,650 --> 00:51:40,300 Mari pada kenyataannya kita lihat sekarang di beberapa sintaks tersebut. 1102 00:51:40,300 --> 00:51:43,120 >> Aku akan pergi ke direktori PHP. 1103 00:51:43,120 --> 00:51:48,390 Dan aku akan membuka lebih baik versi hello-0 dari sebelumnya. 1104 00:51:48,390 --> 00:51:50,270 Perhatikan bahwa semua yang saya lakukan adalah menambahkan beberapa komentar. 1105 00:51:50,270 --> 00:51:52,530 Jadi kita bisa menyingkirkan gangguan tersebut. 1106 00:51:52,530 --> 00:51:57,610 >> Dan program ini sih memang mencetak halo karena saya sudah ditentukan antara 1107 00:51:57,610 --> 00:52:01,420 tag yang saya ingin mengeksekusi kode tersebut. 1108 00:52:01,420 --> 00:52:03,380 Sekarang, kita akan lihat sebentar lagi mengapa hal ini berguna. 1109 00:52:03,380 --> 00:52:05,630 Tapi mari kita buka satu contoh lain di sini. 1110 00:52:05,630 --> 00:52:10,430 Biarkan aku pergi ke depan dan membuka mengatakan, gedit kondisi satu. 1111 00:52:10,430 --> 00:52:12,970 >> Ini adalah cara kembali ke masa sekarang. 1112 00:52:12,970 --> 00:52:16,320 Tapi minggu lalu, saya pikir, dalam seminggu satu atau dua minggu, kami memiliki contoh yang disebut 1113 00:52:16,320 --> 00:52:18,470 conditions1.c. 1114 00:52:18,470 --> 00:52:22,050 Dan saya memutuskan untuk reimplement dalam PHP, hanya untuk jenis menekankan bahwa 1115 00:52:22,050 --> 00:52:26,500 PHP, sintaksis, hampir identik ke C. Ini bukan sebuah lompatan besar 1116 00:52:26,500 --> 00:52:27,840 dari minggu lalu ini. 1117 00:52:27,840 --> 00:52:31,230 >> Perhatikan di bagian atas program ini, yang dimulai, seperti sebelumnya, dengan beberapa 1118 00:52:31,230 --> 00:52:34,260 komentar, yang saya akan menyingkirkan sebagai pengalih perhatian. 1119 00:52:34,260 --> 00:52:37,410 Perhatikan bahwa aku di PHP Modus dalam file ini. 1120 00:52:37,410 --> 00:52:40,160 Jadi kode ini, kita akan melihat, akan dieksekusi. 1121 00:52:40,160 --> 00:52:42,670 Perhatikan bahwa ada readline, yang mungkin merupakan 1122 00:52:42,670 --> 00:52:46,230 analog di PHP GetString. 1123 00:52:46,230 --> 00:52:47,390 Perhatikan itu sedikit berbeda. 1124 00:52:47,390 --> 00:52:51,410 Anda benar-benar menentukan prompt untuk fungsi yang disebut baris dibaca, dan itu 1125 00:52:51,410 --> 00:52:52,180 apa yang pengguna melihat. 1126 00:52:52,180 --> 00:52:53,520 Jadi Anda tidak perlu printf manual. 1127 00:52:53,520 --> 00:52:54,860 Tapi itu bukan masalah besar. 1128 00:52:54,860 --> 00:52:59,150 Aku akan menyimpan, dalam $ n, yang mengembalikan nilai ini, sehingga apa pun 1129 00:52:59,150 --> 00:53:00,490 pengguna jenis adalah int mereka. 1130 00:53:00,490 --> 00:53:01,660 Dan inilah rasa ingin tahu yang lain. 1131 00:53:01,660 --> 00:53:05,810 Ternyata, di PHP, setiap variabel hanya harus diawali 1132 00:53:05,810 --> 00:53:06,970 dengan tanda dolar. 1133 00:53:06,970 --> 00:53:08,110 Ini sedikit mengganggu. 1134 00:53:08,110 --> 00:53:10,870 Tapi perhatikan apa yang saya tidak dilakukan dalam PHP. 1135 00:53:10,870 --> 00:53:13,980 Apa yang hilang dari tangan kiri sisi tanda sama? 1136 00:53:13,980 --> 00:53:15,430 >> Tidak disebutkan jenis. 1137 00:53:15,430 --> 00:53:19,400 Jadi ini berbeda dengan C. Untuk lebih baik atau buruk, PHP adalah longgar 1138 00:53:19,400 --> 00:53:20,550 bahasa diketik. 1139 00:53:20,550 --> 00:53:22,010 Itu memiliki nomor. 1140 00:53:22,010 --> 00:53:23,240 Itu memiliki string. 1141 00:53:23,240 --> 00:53:24,015 Itu memang memiliki Booleans. 1142 00:53:24,015 --> 00:53:26,220 Dan itu memang memiliki beberapa tipe data lainnya. 1143 00:53:26,220 --> 00:53:30,570 Tapi Anda, programmer, biasanya tidak harus peduli tentang mereka. 1144 00:53:30,570 --> 00:53:34,010 Sisi positif dari ini adalah bahwa hal itu membuat sedikit lebih mudah untuk program ini. 1145 00:53:34,010 --> 00:53:35,380 Anda bisa berpikir sedikit kurang. 1146 00:53:35,380 --> 00:53:39,840 Kelemahan ini juga terbuka Anda sampai bug potensial jika Anda tidak sengaja 1147 00:53:39,840 --> 00:53:43,080 memperlakukan nomor sebagai string, string sebagai angka, berpotensi, tapi bahkan 1148 00:53:43,080 --> 00:53:46,150 kemudian, PHP, dan banyak bahasa, cukup toleran. 1149 00:53:46,150 --> 00:53:49,050 Mereka akan menggunakan apa yang disebut implisit casting. 1150 00:53:49,050 --> 00:53:55,220 Dan jika Anda mencoba untuk menggunakan n dalam konteks dari situasi numerik, itu akan 1151 00:53:55,220 --> 00:53:58,040 mengkonversi apa yang di sini akan menjadi String, karena jika jenis pengguna 1152 00:53:58,040 --> 00:54:01,570 sesuatu, dan Anda mendapatkan hasilnya, seperti dengan readline, atau mendapatkan tali, 1153 00:54:01,570 --> 00:54:02,910 itu akan kembali string. 1154 00:54:02,910 --> 00:54:07,360 >> Tapi perhatikan, beberapa baris kemudian, saya memeriksa apakah n lebih besar dari nol. 1155 00:54:07,360 --> 00:54:13,370 Jadi PHP akan implisit dilemparkan saya "String" 123, atau apa pun pengguna 1156 00:54:13,370 --> 00:54:14,860 jenis dalam, menjadi sebuah int. 1157 00:54:14,860 --> 00:54:18,730 Jadi singkatnya, hal-hal hanya bekerja banyak lebih intuitif. 1158 00:54:18,730 --> 00:54:23,410 Jadi sekarang kita mulai beberapa rileks hal-hal yang kita lakukan di masa lalu. 1159 00:54:23,410 --> 00:54:24,780 >> Banyak hal ini sama, meskipun. 1160 00:54:24,780 --> 00:54:26,340 Masih sama sama. 1161 00:54:26,340 --> 00:54:30,350 Sebagai samping PHP juga sama sama sama, tetapi lebih pada, mungkin, dalam 1162 00:54:30,350 --> 00:54:30,850 masa depan. 1163 00:54:30,850 --> 00:54:31,150 Itu. 1164 00:54:31,150 --> 00:54:35,660 Typo tapi dua tanda sama berarti sama hal seperti sebelumnya, untuk perbandingan. 1165 00:54:35,660 --> 00:54:37,060 printf berarti hal yang sama seperti sebelumnya. 1166 00:54:37,060 --> 00:54:39,160 Backslash n berarti sama hal seperti sebelumnya. 1167 00:54:39,160 --> 00:54:40,390 >> Jadi bagaimana saya menjalankan program ini? 1168 00:54:40,390 --> 00:54:44,400 Yah, seperti sebelumnya, jika saya lakukan PHP, conditions1.php, dan ketik 1169 00:54:44,400 --> 00:54:46,560 nomor seperti 123. 1170 00:54:46,560 --> 00:54:47,720 Itu angka positif. 1171 00:54:47,720 --> 00:54:49,510 Jika saya mengetik 0, saya memilih 0. 1172 00:54:49,510 --> 00:54:53,700 Dan jika saya mengetik 123 negatif, saya mendapatkan kembali angka negatif, yang hanya 1173 00:54:53,700 --> 00:54:59,050 mengatakan, sintaksis, PHP super, super serupa. 1174 00:54:59,050 --> 00:55:03,250 >> Lalu mengapa ini sekarang berguna dalam konteks web? 1175 00:55:03,250 --> 00:55:06,710 Nah, mari kita kembali ke froshims ini Misalnya, yang tampak, 1176 00:55:06,710 --> 00:55:08,600 lagi, seperti ini di sini. 1177 00:55:08,600 --> 00:55:11,580 Dan mari kita benar-benar menarik halaman web lagi, yang tampak seperti ini. 1178 00:55:11,580 --> 00:55:14,930 Apa yang bisa kita lakukan dengan Data yang dikirim? 1179 00:55:14,930 --> 00:55:18,770 >> Nah, biarkan aku membuka baru versi ini. 1180 00:55:18,770 --> 00:55:20,920 Dan Anda akan melihat bahwa masalah spesifikasi set menuntun Anda 1181 00:55:20,920 --> 00:55:22,850 melalui beberapa ini. 1182 00:55:22,850 --> 00:55:29,610 Daripada mulai dengan nol, mari kita lihat froshims3, 1183 00:55:29,610 --> 00:55:31,410 yang melakukan sedikit lebih. 1184 00:55:31,410 --> 00:55:34,780 >> Perhatikan pertama, sebenarnya, mari kita buka up apa 0 adalah, sehingga Anda melihat 1185 00:55:34,780 --> 00:55:37,170 apa yang mendaftar adalah 0. 1186 00:55:37,170 --> 00:55:40,040 Perhatikan apa yang mendaftar 0 lakukan. 1187 00:55:40,040 --> 00:55:41,730 Satu, saya memiliki komentar di atas. 1188 00:55:41,730 --> 00:55:43,900 Hapus mereka dan fokus hanya pada hal ini. 1189 00:55:43,900 --> 00:55:48,730 Sebagian besar isi register0.php , jelas, bahasa apa? 1190 00:55:48,730 --> 00:55:49,980 Hanya baku PHP. 1191 00:55:49,980 --> 00:55:53,430 >> Jadi pemberitahuan, file ini tidak dimulai dengan, pada saat, terbuka braket, 1192 00:55:53,430 --> 00:55:54,970 tanda tanya, PHP. 1193 00:55:54,970 --> 00:55:59,800 PHP tidak memungkinkan Anda untuk berbaur Kode PHP dengan tag HTML. 1194 00:55:59,800 --> 00:56:04,130 Tapi aku sudah melakukan itu di sini dalam dari halaman di sini. 1195 00:56:04,130 --> 00:56:08,180 >> Sekarang, sekali lagi, Anda akan hanya tahu ini dari setelah melihat manual. print_r, 1196 00:56:08,180 --> 00:56:13,410 ternyata, adalah print_recursive. _recursive Dan ini hanya berguna 1197 00:56:13,410 --> 00:56:16,780 fungsi utilitas yang hanya mencetak, rekursif, apa pun yang Anda serahkan. 1198 00:56:16,780 --> 00:56:18,760 Jika Anda serahkan array, itu akan mencetak array. 1199 00:56:18,760 --> 00:56:20,180 Jika Anda serahkan nomor, itu akan mencetak angka. 1200 00:56:20,180 --> 00:56:21,570 Menyerahkannya string, itu akan mencetak string. 1201 00:56:21,570 --> 00:56:24,500 Jika Anda menyerahkannya tabel hash, itu akan mencetak tabel hash. 1202 00:56:24,500 --> 00:56:26,730 Anda tidak harus menulis semua kode yang sendiri. 1203 00:56:26,730 --> 00:56:29,490 >> Sekarang perhatikan bahwa aku memasuki Mode PHP di sini. 1204 00:56:29,490 --> 00:56:32,070 Aku keluar mode PHP di sini. 1205 00:56:32,070 --> 00:56:35,950 Jadi ketika server web membaca file ini atas ke bawah, kiri ke kanan, karena 1206 00:56:35,950 --> 00:56:40,750 itu berakhir di nama file yang disebut. php, apa pun tidak di dalam tag PHP 1207 00:56:40,750 --> 00:56:42,820 hanya akan menjadi meludah keluar, seperti HTML mentah. 1208 00:56:42,820 --> 00:56:43,630 Tidak ada masalah besar. 1209 00:56:43,630 --> 00:56:49,280 Tapi segera setelah server web pemberitahuan ini, itu akan mengatakan, saya tidak boleh 1210 00:56:49,280 --> 00:56:51,850 dimuntahkan, secara harfiah, print_r pos. 1211 00:56:51,850 --> 00:56:54,910 Aku harus menjalankan berikut baris kode. 1212 00:56:54,910 --> 00:56:59,850 >> Jadi pertanyaan terakhir, maka, file ini adalah, baik, apa sih ini? 1213 00:56:59,850 --> 00:57:00,530 Mengambil menebak. 1214 00:57:00,530 --> 00:57:04,230 Apa $ _POST, mungkin? 1215 00:57:04,230 --> 00:57:07,070 >> AUDIENCE: [Tak terdengar] 1216 00:57:07,070 --> 00:57:08,830 >> SPEAKER 1: Ya, data yang diposting. 1217 00:57:08,830 --> 00:57:11,350 Ingat, mari kita gulir kembali waktu untuk sesaat. 1218 00:57:11,350 --> 00:57:13,165 froshim0, sekali lagi, tampak seperti ini. 1219 00:57:13,165 --> 00:57:15,640 Mayoritas super ini hanya HTML. 1220 00:57:15,640 --> 00:57:18,410 Sekali lagi, beberapa tag Anda belum melihat belum, atau di mana 1221 00:57:18,410 --> 00:57:19,360 Anda sudah akrab. 1222 00:57:19,360 --> 00:57:21,990 Tapi yang menarik adalah ini. 1223 00:57:21,990 --> 00:57:27,270 Satu baris ini adalah apa yang benar-benar link ke file register0.php kami. 1224 00:57:27,270 --> 00:57:29,200 Saya mengirimkan melalui metode pos. 1225 00:57:29,200 --> 00:57:33,130 Dan itu berarti bahwa parameter user mengetik tidak 1226 00:57:33,130 --> 00:57:35,150 akan berakhir di mana. 1227 00:57:35,150 --> 00:57:36,175 >> Mereka tidak akan muncul dalam URL. 1228 00:57:36,175 --> 00:57:39,020 Mereka masih akan dikirim dari klien, dari browser, untuk 1229 00:57:39,020 --> 00:57:42,080 server, tetapi hanya melalui beberapa lainnya mekanisme yang kita akan membebaskan tangan kita 1230 00:57:42,080 --> 00:57:44,330 pada hari ini, tapi tidak dalam URL. 1231 00:57:44,330 --> 00:57:47,630 Tapi perhatikan hubungan sekarang dengan pos, yang, dengan konvensi, adalah 1232 00:57:47,630 --> 00:57:49,160 huruf kecil di sini. 1233 00:57:49,160 --> 00:57:54,090 >> Tapi kalau aku membuka register0.php, Saya rupanya mencetak ini. 1234 00:57:54,090 --> 00:57:56,450 Jadi ini adalah jenis aneh konvensi penamaan. 1235 00:57:56,450 --> 00:58:01,430 Tapi apa yang bagus di PHP adalah bahwa ketika menggunakan PHP dalam konteks web, bukan pada 1236 00:58:01,430 --> 00:58:04,480 baris perintah seperti yang saya lakukan beberapa saat yang lalu, ketika Anda benar-benar menggunakannya dalam web 1237 00:58:04,480 --> 00:58:10,580 halaman, dalam sebuah direktori vhost seperti kita, otomatis akan mengisi PHP ini 1238 00:58:10,580 --> 00:58:15,560 hal, yang merupakan array asosiatif, sehingga untuk berbicara, tabel hash, dengan 1239 00:58:15,560 --> 00:58:17,290 semua pengguna diketik masuk 1240 00:58:17,290 --> 00:58:22,000 >> Singkatnya, $ _POST dalam semua topi adalah variabel global yang PHP hanya 1241 00:58:22,000 --> 00:58:25,050 ajaib menciptakan untuk Anda ketika menggunakan PHP dalam konteks web. 1242 00:58:25,050 --> 00:58:29,160 Dan menempatkan di dalamnya semua nama-nama parameter dalam bentuk yang 1243 00:58:29,160 --> 00:58:33,200 diserahkan ke file ini dan semua nilai-nilai bahwa pengguna diketik masuk 1244 00:58:33,200 --> 00:58:37,790 Jadi itu tangan kepada Anda apa yang user diketik untuk bentuk itu. 1245 00:58:37,790 --> 00:58:42,210 >> Jadi sebelumnya, kami mendapat output yang benar-benar bodoh hanya melihat ini karena semua yang saya lakukan 1246 00:58:42,210 --> 00:58:44,400 itu rekursif mencetak array ini. 1247 00:58:44,400 --> 00:58:46,060 Kuncinya adalah nama, nilai adalah David. 1248 00:58:46,060 --> 00:58:46,980 Kuncinya adalah Kapten. 1249 00:58:46,980 --> 00:58:47,970 Nilai adalah pada. 1250 00:58:47,970 --> 00:58:52,300 Dan panah ganda dan sudut braket ada, ini hanya sewenang-wenang. 1251 00:58:52,300 --> 00:58:53,270 Ini bukan kode. 1252 00:58:53,270 --> 00:58:57,690 Ini hanya cara PHP untuk menunjukkan Anda apa nilai dari beberapa kunci. 1253 00:58:57,690 --> 00:59:03,000 >> Tapi sekarang saya mengusulkan bahwa dalam froshIMs3, itu hampir identik 1254 00:59:03,000 --> 00:59:04,950 kecuali itu menyerahkan ke berkas ini. 1255 00:59:04,950 --> 00:59:08,570 Dan lagi, kita akan jenis hanya melirik ini, hanya untuk melihat beberapa 1256 00:59:08,570 --> 00:59:12,040 sintaks, namun perhatikan apa file ini tidak. 1257 00:59:12,040 --> 00:59:14,930 Ambil kira hanya berdasarkan garis kode, yang mungkin tidak terlihat seperti 1258 00:59:14,930 --> 00:59:17,410 Yunani, sampai batas tertentu, rupanya lakukan. 1259 00:59:17,410 --> 00:59:20,580 1260 00:59:20,580 --> 00:59:23,110 >> File ini entah bagaimana berhubungan surat, email. 1261 00:59:23,110 --> 00:59:24,770 Jadi apa program ini lakukan? 1262 00:59:24,770 --> 00:59:28,740 Dalam versi ini, jika saya harus benar-benar mengisi formulir ini - dan biarkan aku pergi ke 1263 00:59:28,740 --> 00:59:30,760 froshIMs3, tidak froshIMs0 - 1264 00:59:30,760 --> 00:59:33,280 1265 00:59:33,280 --> 00:59:34,540 bentuk tampak sama. 1266 00:59:34,540 --> 00:59:37,980 David, kapten, laki-laki, asrama, Matthews. 1267 00:59:37,980 --> 00:59:42,980 Tapi kalau aku menyerahkan ini, file ini akan pergi ke register3.php. 1268 00:59:42,980 --> 00:59:46,330 >> Dan saya menyatakan, dengan melihat itu kode sumber, itu akan 1269 00:59:46,330 --> 00:59:47,650 entah bagaimana melibatkan email. 1270 00:59:47,650 --> 00:59:49,620 Biarkan aku pergi ke depan dan membuka ini di jendela yang lebih besar, jadi kami 1271 00:59:49,620 --> 00:59:51,030 bisa melihatnya lebih bersih. 1272 00:59:51,030 --> 00:59:57,220 Kami berada di vhosts, host lokal, publik, froshims. 1273 00:59:57,220 --> 00:59:58,680 Aku akan membuka berbeda Program, hanya supaya kita 1274 00:59:58,680 --> 01:00:00,160 dapat melihat lebih banyak sekaligus. 1275 01:00:00,160 --> 01:00:03,100 >> Jadi sekarang di sini, perhatikan beberapa hal. 1276 01:00:03,100 --> 01:00:06,530 Di bagian atas file terbuka braket, tanda tanya, PHP. 1277 01:00:06,530 --> 01:00:08,920 Lalu ada sekelompok komentar, yang bisa kita abaikan, adalah 1278 01:00:08,920 --> 01:00:10,450 menarik untuk saat ini. 1279 01:00:10,450 --> 01:00:11,300 >> Sekarang ada ini. 1280 01:00:11,300 --> 01:00:14,200 Ternyata PHP memiliki banyak kode yang disebut membutuhkan. 1281 01:00:14,200 --> 01:00:19,110 Ini sangat semangat yang sama C termasuk, termasuk hash, yang 1282 01:00:19,110 --> 01:00:21,980 dasarnya meraih isi dari beberapa file lain dan hanya menjatuhkan mereka di sini, 1283 01:00:21,980 --> 01:00:22,930 sehingga Anda dapat menggunakannya. 1284 01:00:22,930 --> 01:00:27,060 Dalam hal ini, alat memiliki, pra-instal, perpustakaan, bebas dan 1285 01:00:27,060 --> 01:00:29,900 perpustakaan open source yang disebut PHP mailer bahwa siapa pun dapat 1286 01:00:29,900 --> 01:00:30,770 download dari internet. 1287 01:00:30,770 --> 01:00:32,000 Kami hanya melakukannya untuk Anda. 1288 01:00:32,000 --> 01:00:36,130 Dan ini berarti saya sekarang memiliki email fungsi di pembuangan saya. 1289 01:00:36,130 --> 01:00:38,170 >> Sekarang, perhatikan beberapa hal. 1290 01:00:38,170 --> 01:00:41,120 Aku akan memvalidasi pengiriman formulir itu. 1291 01:00:41,120 --> 01:00:45,980 Ternyata PHP, satu, memiliki seru poin untuk tidak operator, seperti 1292 01:00:45,980 --> 01:00:49,810 C. Namun PHP juga memiliki fungsi disebut kosong. 1293 01:00:49,810 --> 01:00:53,920 >> Kosong hanya mengembalikan true jika nilai hal yang Anda serahkan 1294 01:00:53,920 --> 01:00:57,190 kurung kosong, seperti pengguna tidak mengetikkan apapun masuk 1295 01:00:57,190 --> 01:01:02,680 Jadi ini mengatakan, dan perhatikan sintaks, sangat mengingatkan C, jika 1296 01:01:02,680 --> 01:01:07,730 kunci nama, sehingga kolom nama dalam bentuk, yang disampaikan melalui pos, 1297 01:01:07,730 --> 01:01:13,010 pengguna, bukan untuk mengosongkan, dan mereka jender tidak kosong dalam formulir sebagaimana 1298 01:01:13,010 --> 01:01:15,980 baik, dan asrama mereka tidak kosong - 1299 01:01:15,980 --> 01:01:19,980 tapi perhatikan bahwa saya tidak peduli tentang Kapten, maka apa yang akan kita lakukan? 1300 01:01:19,980 --> 01:01:21,990 >> Aku akan mengeksekusi baris kode. 1301 01:01:21,990 --> 01:01:24,100 Dan Anda bisa memikirkan semacam ini seperti malloc, tapi itu sedikit 1302 01:01:24,100 --> 01:01:24,800 lebih menarik daripada itu. 1303 01:01:24,800 --> 01:01:29,200 Tapi untuk sekarang ini memberi saya khusus struct tipe PHP mailer. 1304 01:01:29,200 --> 01:01:31,410 Tetapi mengabaikan kata kunci baru untuk hari ini. 1305 01:01:31,410 --> 01:01:35,670 >> Sekarang aku akan memanggil fungsi yang disebut IsSMTP, yang mengatakan, menggunakan SMTP. 1306 01:01:35,670 --> 01:01:39,380 Ini adalah port 25, sama seperti video pekan lalu, ketika hal itu melemparkan 1307 01:01:39,380 --> 01:01:40,710 email ke firewall. 1308 01:01:40,710 --> 01:01:42,440 Port 25 adalah SMTP. 1309 01:01:42,440 --> 01:01:44,410 SMTP berarti menggunakan server mail. 1310 01:01:44,410 --> 01:01:46,215 Yang mana, kita dapat menggunakan Harvard SMTP.fas.harvard.edu. 1311 01:01:46,215 --> 01:01:48,850 1312 01:01:48,850 --> 01:01:51,590 >> Kita dapat mengatur dari alamat menjadi John Harvard. 1313 01:01:51,590 --> 01:01:55,090 Jika saya gulir ke bawah lebih lanjut, saya dapat mengatur alamat penerima, hanya 1314 01:01:55,090 --> 01:01:56,840 sewenang-wenang, menjadi John Harvard itu juga. 1315 01:01:56,840 --> 01:01:59,210 Jadi dia akan mengirim email sendiri. 1316 01:01:59,210 --> 01:02:01,600 >> Sekarang saya dapat mengatur subjek menjadi pendaftaran. 1317 01:02:01,600 --> 01:02:03,700 Dan saya dapat mengatur tubuh email sebagai berikut. 1318 01:02:03,700 --> 01:02:06,500 Baris ini terlihat sedikit lebih samar, tapi itu hanya karena ada banyak 1319 01:02:06,500 --> 01:02:07,450 informasi di dalamnya. 1320 01:02:07,450 --> 01:02:10,670 Satu, ada dot operator. 1321 01:02:10,670 --> 01:02:14,510 Seseorang harus tahu apa yang sudah dot operator tidak. 1322 01:02:14,510 --> 01:02:15,436 Ini Rangkaian. 1323 01:02:15,436 --> 01:02:19,240 Jadi jika Anda ingin mengambil string di PHP, dan menambahkan, atau tambahkan, untuk 1324 01:02:19,240 --> 01:02:23,500 string lain di PHP, terima Allah Anda tidak harus menggunakan strcopy dan malloc, 1325 01:02:23,500 --> 01:02:25,490 dan semua itu lagi. 1326 01:02:25,490 --> 01:02:28,765 >> Jika Anda ingin menggabungkan dua string, yang peduli tentang memori. 1327 01:02:28,765 --> 01:02:30,850 Biarkan tokoh PHP yang keluar untuk Anda. 1328 01:02:30,850 --> 01:02:35,200 Apa PHP akan lakukan dengan operator dot di sini hanya membuat kalimat besar keluar 1329 01:02:35,200 --> 01:02:37,900 baris ini, baris ini, baris ini, baris ini. 1330 01:02:37,900 --> 01:02:40,460 Dan sekarang pemberitahuan, itu akan untuk memasukkan nilai. 1331 01:02:40,460 --> 01:02:43,680 Jadi email yang John Harvard akan untuk menerima secara harfiah akan mengatakan 1332 01:02:43,680 --> 01:02:49,450 nama, usus besar, sesuatu, bukan, maka kita menutup string dan menggabungkannya pada 1333 01:02:49,450 --> 01:02:52,220 apa pun pengguna mengetik dalam, maka baris baru. 1334 01:02:52,220 --> 01:02:54,570 >> Kemudian, pada baris berikutnya dari John Harvard email, itu akan mengatakan 1335 01:02:54,570 --> 01:02:55,910 Kapten, Aktif atau Tidak. 1336 01:02:55,910 --> 01:02:57,810 Ini akan mengatakan jenis kelamin, laki-laki atau perempuan. 1337 01:02:57,810 --> 01:02:59,680 Asrama akan menjadi Matthews dalam kasus saya. 1338 01:02:59,680 --> 01:03:03,400 Dan kemudian melihat titik koma akrab di akhir. 1339 01:03:03,400 --> 01:03:07,830 Dan kemudian, di bawah sini, pemberitahuan, agak samar masih, tapi sekali lagi, setelah 1340 01:03:07,830 --> 01:03:12,730 pola yang akan menjadi lebih akrab setelah P set 7, jika mengirim surat 1341 01:03:12,730 --> 01:03:16,610 mengembalikan false, kemudian pergi ke depan dan mati. 1342 01:03:16,610 --> 01:03:19,610 >> Jadi PHP memiliki fungsi yang disebut mati, yang, secara harfiah, hanya membunuh 1343 01:03:19,610 --> 01:03:22,830 website dan hanya mencetak apapun Anda mengatakan itu - yang sedang sekarat 1344 01:03:22,830 --> 01:03:24,280 kata-kata, sehingga untuk berbicara. 1345 01:03:24,280 --> 01:03:28,310 Dan itu, dalam kasus ini, akan mencetak tahu apa kesalahan info adalah untuk 1346 01:03:28,310 --> 01:03:29,860 apa yang terjadi dengan salah. 1347 01:03:29,860 --> 01:03:34,490 Jadi cerita panjang pendek di sini, apa yang kita miliki adalah contoh di mana ketika pengguna 1348 01:03:34,490 --> 01:03:39,150 menyerahkan formulir, froshim0, froshims3.php, ia pergi ke 1349 01:03:39,150 --> 01:03:40,760 register3.php. 1350 01:03:40,760 --> 01:03:45,290 Tapi register3.php kemudian hasil untuk menjalankan semua lini ini. 1351 01:03:45,290 --> 01:03:46,620 >> Jadi ada beberapa mengambil aways di sini. 1352 01:03:46,620 --> 01:03:50,380 Satu, itu tampaknya cukup mudah, pemrograman, untuk mengirim email, 1353 01:03:50,380 --> 01:03:50,830 yang baik. 1354 01:03:50,830 --> 01:03:53,500 Ketika pengguna mendaftar untuk situs Anda, di kasus ini, ketika mereka mendaftar untuk Anda 1355 01:03:53,500 --> 01:03:56,220 olahraga, Anda dapat email mahasiswa baru Proctor, atau John 1356 01:03:56,220 --> 01:03:57,650 Harvard, dalam kasus ini. 1357 01:03:57,650 --> 01:04:01,630 >> Tapi itu juga berarti Anda bisa melakukan apa? 1358 01:04:01,630 --> 01:04:03,970 Kirim email dari siapa pun kepada siapa pun. 1359 01:04:03,970 --> 01:04:05,430 Dan ini sangat benar. 1360 01:04:05,430 --> 01:04:08,580 Hal ini tidak mudah dilakukan jika Anda terbiasa menggunakan Gmail. 1361 01:04:08,580 --> 01:04:11,310 Tetapi jika Anda pernah menggunakan Eudora atau Outlook, Anda dapat cukup banyak memberitahu 1362 01:04:11,310 --> 01:04:13,720 server mail yang Anda siapapun yang Anda inginkan. 1363 01:04:13,720 --> 01:04:16,450 Dan ini adalah di mana saya harus menempatkan pada topi dan berkata, jangan lakukan ini. 1364 01:04:16,450 --> 01:04:21,140 Tapi ini adalah bukti betapa mudahnya itu adalah untuk melakukan serangan phishing, dan 1365 01:04:21,140 --> 01:04:24,310 mengirim email anonim, dan spam, lebih umum. 1366 01:04:24,310 --> 01:04:27,330 Dan itu benar-benar bermuara pada Kenyataan bahwa semua yang Anda butuhkan adalah beberapa 1367 01:04:27,330 --> 01:04:28,500 akses program. 1368 01:04:28,500 --> 01:04:31,940 >> Sebagai samping, pertemuan terdekat saya dengan papan iklan, tahun pertama saya sendiri, 1369 01:04:31,940 --> 01:04:34,320 adalah ketika saya menemukan ini keren trik itu, wow, Anda dapat 1370 01:04:34,320 --> 01:04:36,850 mengirim email dari siapa pun. 1371 01:04:36,850 --> 01:04:39,770 Dan jadi kami memiliki beberapa bodoh argumen, secara harfiah, di Matthews, 1372 01:04:39,770 --> 01:04:40,790 antara kelompok Proctor saya. 1373 01:04:40,790 --> 01:04:42,470 Aku bahkan tidak ingat apa masalah. 1374 01:04:42,470 --> 01:04:44,970 Tapi aku ingin mencoba untuk menempatkan mengakhiri perdebatan ini bodoh. 1375 01:04:44,970 --> 01:04:48,580 >> Jadi aku memutuskan aku akan mengirim email ke grup Proctor saya, berpura-pura menjadi 1376 01:04:48,580 --> 01:04:52,000 orang lain, dengan yang pendapatnya saya tidak setuju, dan minta dia untuk menyetujui 1377 01:04:52,000 --> 01:04:54,680 apapun pendapat saya berada di debat khusus ini. 1378 01:04:54,680 --> 01:04:59,320 Dan jadi saya ditempa email ini menggunakan Teknik semangat yang sama ini. 1379 01:04:59,320 --> 01:05:01,256 Tapi itu sebenarnya lebih mudah pada saat itu. 1380 01:05:01,256 --> 01:05:02,435 Tekan kirim. 1381 01:05:02,435 --> 01:05:06,660 Dia tidak senang, dan tidak akan telah menjadi papan iklan. 1382 01:05:06,660 --> 01:05:10,280 >> Dan aku sangat cepat tertangkap dalam detik karena, seperti yang Anda tahu, saya mendaftar 1383 01:05:10,280 --> 01:05:11,420 email-email saya dengan cara tertentu. 1384 01:05:11,420 --> 01:05:14,200 Dan meskipun saya melakukannya secara manual, dalam jumlah besar bagian, 15 tahun kemudian karena aku 1385 01:05:14,200 --> 01:05:15,080 trauma dengan itu. 1386 01:05:15,080 --> 01:05:16,960 Saya tidak memiliki tanda tangan di email saya sekarang. 1387 01:05:16,960 --> 01:05:20,440 Namun pada tahun 1995, saya hanya punya sig, tanda tangan di email saya. 1388 01:05:20,440 --> 01:05:24,630 Jadi ada catatan ini mengatakan, Sayang Kelompok Proctor, saya menyetujui pendapat saya 1389 01:05:24,630 --> 01:05:31,240 dan setuju dengan David, dan ditandatangani sehingga jadi, baris baru, baris baru, DJM. 1390 01:05:31,240 --> 01:05:36,220 >> Jadi jangan lakukan itu atau, secara umum, mengambil keuntungan dari teknik ini. 1391 01:05:36,220 --> 01:05:39,950 Tapi ketika membuat sebuah website, seperti untuk proyek akhir Anda, ketika membuat 1392 01:05:39,950 --> 01:05:43,460 website untuk sesuatu kewirausahaan, ini adalah bagaimana, pragmatis, Anda dapat 1393 01:05:43,460 --> 01:05:47,000 memanfaatkan layanan lain di internet seperti email dan kemudian benar-benar 1394 01:05:47,000 --> 01:05:49,440 mengirim hal-hal menggunakan kode. 1395 01:05:49,440 --> 01:05:51,240 >> Jadi bagaimana kita bisa memperbaiki ini? 1396 01:05:51,240 --> 01:05:54,370 Yah, pertama mari kita tur singkat beberapa hal yang Anda akan melihat, 1397 01:05:54,370 --> 01:05:56,170 dan kemudian lihatlah beberapa contoh. 1398 01:05:56,170 --> 01:05:59,500 Jadi satu, untuk meyakinkan, karena kita terbang melalui PHP. 1399 01:05:59,500 --> 01:06:02,470 Dan aku tahu, di beberapa titik, Anda akan memiliki untuk benar-benar mulai menulis ini jika Anda 1400 01:06:02,470 --> 01:06:03,460 belum. 1401 01:06:03,460 --> 01:06:06,220 Sadarilah bahwa, satu, utama adalah jenis keluar jendela dengan PHP. 1402 01:06:06,220 --> 01:06:09,420 Jika Anda ingin menulis kode yang mendapat dieksekusi, Anda hanya mulai menulis dalam 1403 01:06:09,420 --> 01:06:13,970 sebuah file bernama. php asalkan Anda memiliki braket terbuka 1404 01:06:13,970 --> 01:06:15,620 tanda tanya PHP tag. 1405 01:06:15,620 --> 01:06:19,730 >> Tapi perhatikan ini kondisi di php. 1406 01:06:19,730 --> 01:06:22,610 Perhatikan, ini adalah slide yang sama persis kami punya di satu minggu ketika kami memiliki 1407 01:06:22,610 --> 01:06:25,670 kondisi Kondisi C dalam PHP secara struktural dan 1408 01:06:25,670 --> 01:06:27,140 sintaksis yang sama. 1409 01:06:27,140 --> 01:06:30,290 Satunya perbedaan yang nyata adalah jika Anda punya variabel yang terlibat, Anda memiliki orang-orang 1410 01:06:30,290 --> 01:06:31,600 tanda dolar. 1411 01:06:31,600 --> 01:06:33,970 >> Sementara itu, ekspresi Boolean terlihat seperti ini 1412 01:06:33,970 --> 01:06:35,725 atau-ing atau dan-ing bersama-sama. 1413 01:06:35,725 --> 01:06:37,780 Switch terlihat persis sama. 1414 01:06:37,780 --> 01:06:42,180 Apa yang baik di PHP, sedangkan di C, switch harus kasus pada 1415 01:06:42,180 --> 01:06:46,380 primitif seperti int atau karakter, di PHP laporan kasus Anda sebenarnya dapat 1416 01:06:46,380 --> 01:06:48,430 pada seluruh string, yaitu sebenarnya jenis yang baik. 1417 01:06:48,430 --> 01:06:49,480 Menghemat beberapa waktu. 1418 01:06:49,480 --> 01:06:50,820 Tidak bisa melakukan itu di C. 1419 01:06:50,820 --> 01:06:52,880 >> Berikut adalah lingkaran dalam PHP. 1420 01:06:52,880 --> 01:06:53,740 Ini identik. 1421 01:06:53,740 --> 01:06:55,400 Mungkin memiliki beberapa tanda-tanda dolar untuk variabel. 1422 01:06:55,400 --> 01:06:57,530 Anda tidak harus menyebutkan bahwa sesuatu adalah int. 1423 01:06:57,530 --> 01:07:00,580 Anda hanya mendeklarasikan dengan tanda dolar dan nama variabel. 1424 01:07:00,580 --> 01:07:01,430 Tapi untuk loop adalah sama. 1425 01:07:01,430 --> 01:07:02,760 Sebuah loop sementara adalah sama. 1426 01:07:02,760 --> 01:07:04,870 Sebuah lakukan saat lingkaran adalah sama. 1427 01:07:04,870 --> 01:07:06,170 >> Ini adalah sedikit berbeda. 1428 01:07:06,170 --> 01:07:12,410 Jadi dengan PHP, dengan array, Anda dapat statis mendeklarasikan array, seperti di C, 1429 01:07:12,410 --> 01:07:14,420 tapi Anda menggunakan tanda kurung siku. 1430 01:07:14,420 --> 01:07:17,060 Dalam C, Anda akan menggunakan kurung kurawal, jika Anda bahkan tahu itu. 1431 01:07:17,060 --> 01:07:20,910 Tapi ini sebenarnya sangat umum di PHP untuk mendeklarasikan array, dalam kasus ini, 1432 01:07:20,910 --> 01:07:23,640 angka, dan memanggil jumlah variabel. 1433 01:07:23,640 --> 01:07:25,300 >> Variabel sendiri terlihat seperti ini. 1434 01:07:25,300 --> 01:07:28,710 Berikut adalah string, mengutip tanda kutip "halo dunia. "Anda bisa memiliki backslash n. 1435 01:07:28,710 --> 01:07:30,950 Aku hanya tidak dalam kasus ini. 1436 01:07:30,950 --> 01:07:32,640 >> Sekarang ini adalah membangun menarik. 1437 01:07:32,640 --> 01:07:33,700 C tidak memiliki ini. 1438 01:07:33,700 --> 01:07:34,700 Tapi ini super membantu. 1439 01:07:34,700 --> 01:07:38,160 Dan Anda akan melihat ini di P set 7 spesifikasi - untuk setiap membangun. 1440 01:07:38,160 --> 01:07:41,800 Jika Anda ingin menegaskan kembali atas semua elemen array, Anda tidak perlu 1441 01:07:41,800 --> 01:07:45,500 untuk menangani $ i dan $ n, dan + +, dan semua itu. 1442 01:07:45,500 --> 01:07:47,640 Anda benar-benar dapat mengatakan, di PHP, ini - 1443 01:07:47,640 --> 01:07:51,890 untuk setiap nomor sebagai nomor, sehingga Aku menduga bahwa angka $ 1444 01:07:51,890 --> 01:07:53,380 adalah array dari angka. 1445 01:07:53,380 --> 01:07:56,460 Dan ketika saya mengatakan untuk setiap nomor sebagai nomor, ini akan 1446 01:07:56,460 --> 01:08:00,505 otomatis, sebagai loop saya mengeksekusi, memperbarui, pada setiap iterasi, nilai 1447 01:08:00,505 --> 01:08:03,260 dalam jumlah tanda dolar - 1448 01:08:03,260 --> 01:08:07,730 lagi, dan lagi, dan lagi berjalan bagi saya lebih dari array. 1449 01:08:07,730 --> 01:08:08,735 Jadi itu hanya menyelamatkan kita kode. 1450 01:08:08,735 --> 01:08:12,250 Tidak ada titik koma, tidak ada + + 's, tidak ada i itu, ada n, itu hanya bagus. 1451 01:08:12,250 --> 01:08:13,700 >> Namun PHP juga memiliki ini. 1452 01:08:13,700 --> 01:08:14,830 Dan ini super kuat. 1453 01:08:14,830 --> 01:08:17,410 Dan Anda akan menggunakan ini, tangan pada, di P set 7. 1454 01:08:17,410 --> 01:08:21,990 Dan array asosiatif juga dinyatakan dengan tanda kurung siku. 1455 01:08:21,990 --> 01:08:23,569 Tapi perhatikan sintaks sekarang. 1456 01:08:23,569 --> 01:08:26,880 Ini mengingatkan pada apa yang kita lihat dengan print_r beberapa saat yang lalu. 1457 01:08:26,880 --> 01:08:31,810 Berapa banyak kunci, sebagai cek kewarasan sedikit, apakah array ini tampaknya memiliki. 1458 01:08:31,810 --> 01:08:32,689 >> Sehingga memiliki dua. 1459 01:08:32,689 --> 01:08:33,830 Dan saya menyebutnya sebuah array. 1460 01:08:33,830 --> 01:08:36,760 Tetapi jika itu membantu, Anda bisa memikirkan tabel ini sebagai hash, atau sebagai 1461 01:08:36,760 --> 01:08:37,930 array asosiatif. 1462 01:08:37,930 --> 01:08:39,580 Tapi itu hanya berbeda jenis array. 1463 01:08:39,580 --> 01:08:41,080 Dan lagi, bahasa yang berbeda memiliki ini. 1464 01:08:41,080 --> 01:08:43,810 Kita akan melihat sesuatu yang mirip dalam JavaScript juga. 1465 01:08:43,810 --> 01:08:44,609 Ada dua kunci. 1466 01:08:44,609 --> 01:08:48,390 Salah satunya adalah kutipan tanda kutip, "simbol," satu mengutip tanda kutip "harga." Dan orang-orang kunci 1467 01:08:48,390 --> 01:08:49,250 masing-masing memiliki nilai. 1468 01:08:49,250 --> 01:08:54,420 Dalam hal ini nilai simbol adalah FB, untuk Nilai Facebook, dan harga adalah 49, 26, 1469 01:08:54,420 --> 01:08:56,899 yang saham Facebook Harga sampai pagi ini. 1470 01:08:56,899 --> 01:09:00,170 >> Jadi apa yang berguna tentang array asosiatif. 1471 01:09:00,170 --> 01:09:02,620 Aku bisa memiliki numerik diindeks array dengan hanya 1472 01:09:02,620 --> 01:09:04,120 sederhana kurung persegi. 1473 01:09:04,120 --> 01:09:09,380 Dan saya bisa memiliki tanda dolar kutipan sama ini saja. 1474 01:09:09,380 --> 01:09:10,529 Biarkan aku benar-benar melakukannya. 1475 01:09:10,529 --> 01:09:14,796 Misalkan saya malah menyatakan array ini seperti itu. 1476 01:09:14,796 --> 01:09:17,590 Itu adalah hal yang sah, sintaksis. 1477 01:09:17,590 --> 01:09:20,569 Ini tidak kehilangan informasi apapun, per se. 1478 01:09:20,569 --> 01:09:24,760 Saya masih melihat bahwa simbol adalah fb, dan bahwa harga adalah 49, 26. 1479 01:09:24,760 --> 01:09:28,939 Jadi mengapa asosiatif array menarik? 1480 01:09:28,939 --> 01:09:30,189 >> AUDIENCE: Anda tidak harus ingat di mana Anda meletakkan barang-barang. 1481 01:09:30,189 --> 01:09:32,050 1482 01:09:32,050 --> 01:09:34,130 >> SPEAKER 1: Tepat, Anda tidak perlu mengingat di mana Anda meletakkan barang-barang. 1483 01:09:34,130 --> 01:09:37,670 Anda tidak harus ingat sewenang-wenang bahwa simbol saham di braket nol, 1484 01:09:37,670 --> 01:09:41,479 dan harga saham di braket satu, yang sangat berbahaya jika Anda 1485 01:09:41,479 --> 01:09:43,220 mengubah keadaan, akhirnya. 1486 01:09:43,220 --> 01:09:46,399 Ini jauh lebih baik untuk mengasosiasikan apa yang akan kita sebut metadata 1487 01:09:46,399 --> 01:09:48,340 dengan data Anda yang sebenarnya. 1488 01:09:48,340 --> 01:09:52,399 Aku berpendapat bahwa apa yang kita benar-benar peduli di sini adalah fb dan 49, 26. 1489 01:09:52,399 --> 01:09:57,020 Simbol dan harga metadata yang menggambarkan data yang kita 1490 01:09:57,020 --> 01:09:58,180 benar-benar peduli. 1491 01:09:58,180 --> 01:10:01,910 Tapi ini begitu banyak lebih mudah untuk mengakses. 1492 01:10:01,910 --> 01:10:04,090 >> Sekarang, sebagai samping apa harga yang kita bayar? 1493 01:10:04,090 --> 01:10:06,600 Kami sudah melakukan ini di CS50 selama berminggu-minggu. 1494 01:10:06,600 --> 01:10:10,740 Fitur ini harus datang dengan tarif tertentu. 1495 01:10:10,740 --> 01:10:11,350 Memori. 1496 01:10:11,350 --> 01:10:13,830 Jadi Anda tidak hanya menyimpan 32-bit integer, misalnya. 1497 01:10:13,830 --> 01:10:17,980 Anda menyimpan simbol / 0, mungkin. 1498 01:10:17,980 --> 01:10:19,160 Jadi Anda menggunakan lebih banyak memori. 1499 01:10:19,160 --> 01:10:22,540 >> Dan apa kinerja mencari sesuatu dalam 1500 01:10:22,540 --> 01:10:24,822 array asosiatif, mungkin? 1501 01:10:24,822 --> 01:10:26,590 Ini mungkin lebih lambat. 1502 01:10:26,590 --> 01:10:29,670 Random access baik, terutama ketika Anda dapat melakukan pencarian biner. 1503 01:10:29,670 --> 01:10:33,380 Tapi jika Anda benar-benar sekarang melihat tidak untuk angka, tetapi untuk string, ini 1504 01:10:33,380 --> 01:10:37,630 benar-benar diimplementasikan di bawah hood, mungkin sebagai tabel hash, di mana 1505 01:10:37,630 --> 01:10:42,950 Anda menggunakan salah satu tabel hash dengan chaining terpisah. 1506 01:10:42,950 --> 01:10:46,040 Atau Anda menggunakan mencoba untuk benar-benar menyimpan nilai-nilai. 1507 01:10:46,040 --> 01:10:50,550 Jadi mungkin Anda dapat melakukan waktu yang konstan, tetapi Anda masih harus melihat S-Y-M-B-O-L, 1508 01:10:50,550 --> 01:10:54,510 berpotensi, bukan hanya 32 bit untuk mencari sesuatu. 1509 01:10:54,510 --> 01:10:58,430 Jadi sekali lagi, ide-ide yang sama datang kembali kambuh dalam konteks ini. 1510 01:10:58,430 --> 01:11:02,120 >> Tapi sekali lagi, PHP sekarang memiliki beberapa super globals itu, ternyata, adalah 1511 01:11:02,120 --> 01:11:02,900 array asosiatif. 1512 01:11:02,900 --> 01:11:05,590 Kami melihat satu saat yang lalu, $ _POST. 1513 01:11:05,590 --> 01:11:08,400 Dan bahwa Super global yang memiliki kunci dan nilai. 1514 01:11:08,400 --> 01:11:10,550 Secara khusus, tombol berbaris dengan apa? 1515 01:11:10,550 --> 01:11:14,520 Di mana kunci dalam $ _POST berasal? 1516 01:11:14,520 --> 01:11:15,380 Hanya untuk rekap? 1517 01:11:15,380 --> 01:11:16,480 >> AUDIENCE: Nama. 1518 01:11:16,480 --> 01:11:17,900 >> SPEAKER 1: Nama, di mana? 1519 01:11:17,900 --> 01:11:19,860 >> AUDIENCE: [Tak terdengar] 1520 01:11:19,860 --> 01:11:20,750 >> SPEAKER 1: Nama adalah atribut. 1521 01:11:20,750 --> 01:11:23,480 Nah di mana, di mana mereka melakukan berasal dari? 1522 01:11:23,480 --> 01:11:24,120 Bentuk. 1523 01:11:24,120 --> 01:11:30,140 Jadi, jika sebuah halaman HTML memiliki tag form, dalam yang beberapa masukan, seperti 1524 01:11:30,140 --> 01:11:34,760 kotak cek, kotak teks, drop-down menu, yang masing-masing memiliki nama, mereka 1525 01:11:34,760 --> 01:11:40,260 nama berakhir sebagai kunci dalam $ _POST, dan, terus terang, dalam hal ini, $ _GET. 1526 01:11:40,260 --> 01:11:42,130 Jika metode ini get, ide yang sama. 1527 01:11:42,130 --> 01:11:43,830 Hanya saja di super yang berbeda global. 1528 01:11:43,830 --> 01:11:47,620 Dan nilai-nilai, tentu saja, datang dari apa pun pengguna mengetik di nya atau 1529 01:11:47,620 --> 01:11:48,890 browser-nya. 1530 01:11:48,890 --> 01:11:49,830 >> Tapi ada beberapa orang lain. 1531 01:11:49,830 --> 01:11:52,140 Ada kue, yang kita akan kembali ke akhirnya. 1532 01:11:52,140 --> 01:11:56,050 Tetapi mereka adalah hal-hal yang Anda tahu web menggunakan untuk beberapa baik atau jahat. 1533 01:11:56,050 --> 01:11:57,420 Tapi kita akan kembali ke itu. 1534 01:11:57,420 --> 01:12:01,720 Server dan sesi, dan dua memiliki beberapa utilitas khusus. 1535 01:12:01,720 --> 01:12:03,940 >> Tapi mari kita lihat ini. 1536 01:12:03,940 --> 01:12:13,330 Biarkan aku pergi ke depan dan membuka sebuah contoh disebut mvc0.php Jadi MVC 1537 01:12:13,330 --> 01:12:14,900 singkatan berikut. 1538 01:12:14,900 --> 01:12:19,390 Dan kami memperkenalkan ini lebih awal dari yang khas, benar-benar, untuk mendapatkan Anda merancang 1539 01:12:19,390 --> 01:12:22,180 Soal set 7, dan juga proyek akhir, dalam semacam industri 1540 01:12:22,180 --> 01:12:23,670 cara standar, dan cara yang bersih. 1541 01:12:23,670 --> 01:12:24,820 Ini desain yang baik. 1542 01:12:24,820 --> 01:12:29,090 >> Jadi Anda akan melihat, dan Anda akan Pengalaman, di P set 7, paradigma, semacam 1543 01:12:29,090 --> 01:12:32,260 pola pikir pemrograman, yang terlihat sedikit sesuatu seperti ini. 1544 01:12:32,260 --> 01:12:35,570 M untuk Model, C untuk Controller, V untuk View. 1545 01:12:35,570 --> 01:12:39,690 Singkat cerita, MVC adalah hanya jenis dari metodologi, cara untuk membuat 1546 01:12:39,690 --> 01:12:43,360 situs, khususnya, dimana Anda menempatkan semua, frase bodoh Anda - 1547 01:12:43,360 --> 01:12:44,970 logika bisnis - 1548 01:12:44,970 --> 01:12:49,710 semua Anda kekayaan intelektual di apa yang disebut controller, file 1549 01:12:49,710 --> 01:12:54,840 seperti index.php, atau kita akan melihat, quote.php, atau buy.php. 1550 01:12:54,840 --> 01:12:59,570 >> Dalam konteks Soal set 7, Anda Model biasanya berisi data Anda, 1551 01:12:59,570 --> 01:13:03,860 apapun yang berhubungan dengan database, seperti yang kita akan akhirnya melihat, dan pandangan Anda 1552 01:13:03,860 --> 01:13:07,510 mengandung estetika Anda situs, HTML, CSS. 1553 01:13:07,510 --> 01:13:10,420 Jadi kita sudah melihat ini dalam C sedikit bit dengan menggunakan file h.. 1554 01:13:10,420 --> 01:13:15,010 Kami benar-benar melihat itu beberapa saat yang lalu dengan CSS, oleh anjak stilisasi CSS 1555 01:13:15,010 --> 01:13:16,520 barang dari HTML kita. 1556 01:13:16,520 --> 01:13:20,730 >> Jadi MVC benar-benar hanya tentang menggambar garis di pasir dan berkata, yang 1557 01:13:20,730 --> 01:13:25,400 pemrograman menarik kode untuk Anda situs termasuk dalam apa yang akan kita sebut 1558 01:13:25,400 --> 01:13:26,400 kontroler. 1559 01:13:26,400 --> 01:13:29,280 Hal-hal yang berhubungan ke database biasanya berakhir di model. 1560 01:13:29,280 --> 01:13:33,070 Tapi Anda akan melihat, pada Soal set 7, kami menggabungkan C dan M untuk tetap sederhana. 1561 01:13:33,070 --> 01:13:37,630 Tapi pandangan adalah di mana semua HTML Anda dan estetika biasanya pergi. 1562 01:13:37,630 --> 01:13:39,160 >> Jadi apa artinya ini secara riil? 1563 01:13:39,160 --> 01:13:45,980 Nah, biarkan aku pergi ke MVC kami direktori sebagai berikut. 1564 01:13:45,980 --> 01:13:48,880 Dan Anda akan melihat lebih dari ini tur melalui di spec. 1565 01:13:48,880 --> 01:13:53,200 Jadi dalam mvc0, saya menyatakan bahwa ini adalah, seperti, versi 0 website CS50 itu. 1566 01:13:53,200 --> 01:13:56,670 >> Semua yang kita miliki adalah beberapa HTML, seperti tag h1 besar, rupanya. 1567 01:13:56,670 --> 01:13:57,800 Dan kemudian daftar bullet. 1568 01:13:57,800 --> 01:13:59,860 Aku belum pernah melihat daftar bullet sebelumnya, tapi bukan masalah besar. 1569 01:13:59,860 --> 01:14:01,590 Mari kita cepat-cepat melihat kode sumber. 1570 01:14:01,590 --> 01:14:06,610 Ternyata daftar unordered dengan peluru terbuka braket ul dengan satu atau 1571 01:14:06,610 --> 01:14:09,065 Daftar item lebih, li. 1572 01:14:09,065 --> 01:14:10,650 Jadi pemberitahuan di sini adalah sebuah tag anchor. 1573 01:14:10,650 --> 01:14:12,130 Kami melihat bahwa beberapa saat yang lalu. 1574 01:14:12,130 --> 01:14:13,810 >> Jadi ini adalah bagaimana saya menerapkan halaman ini. 1575 01:14:13,810 --> 01:14:18,460 Aku punya dua link, dua item daftar, satu ul untuk unordered list, dan akhirnya 1576 01:14:18,460 --> 01:14:22,700 Hasilnya, estetis, apakah ini sangat situs cantik, versi 0 sini. 1577 01:14:22,700 --> 01:14:26,840 Tapi yang menarik sekarang adalah bagaimana ini diimplementasikan di bawah tenda. 1578 01:14:26,840 --> 01:14:33,590 >> Biarkan aku pergi ke gedit dan membuka ini Contoh pertama untuk melukis gambar. 1579 01:14:33,590 --> 01:14:37,070 Dan kita akan melihat apa yang cacat, berpotensi, di sini. 1580 01:14:37,070 --> 01:14:43,260 Sekarang jika saya pergi ke localhost, masyarakat, MVC, perhatikan beberapa file. 1581 01:14:43,260 --> 01:14:45,780 Aku akan menyebutnya, untuk saat, semua kontroler. 1582 01:14:45,780 --> 01:14:48,640 Tapi itu sedikit pelecehan karena Anda akan melihat semuanya campur aduk 1583 01:14:48,640 --> 01:14:49,620 dalam diri mereka. 1584 01:14:49,620 --> 01:14:52,330 >> Dan biarkan aku pergi dalam index.php. 1585 01:14:52,330 --> 01:14:54,700 Dan kita lihat, secara harfiah, HTML yang sama. 1586 01:14:54,700 --> 01:14:57,970 Jadi meskipun file ini berakhir di . Php, Ini tidak berarti itu harus 1587 01:14:57,970 --> 01:14:59,500 memiliki kode PHP. 1588 01:14:59,500 --> 01:15:02,290 Itu hanya dapat HTML mentah, meskipun itu konyol. 1589 01:15:02,290 --> 01:15:07,650 Tapi perhatikan tidak ada terbuka braket PHP tag, kecuali untuk ini, yang, terus terang, 1590 01:15:07,650 --> 01:15:09,160 hanya ada untuk melayani sebagai komentar. 1591 01:15:09,160 --> 01:15:12,080 Tapi itu tidak fungsional bahkan menarik. 1592 01:15:12,080 --> 01:15:12,960 >> Tapi perhatikan ini. 1593 01:15:12,960 --> 01:15:15,400 Yang menarik sekarang adalah apa perubahan di halaman ini. 1594 01:15:15,400 --> 01:15:16,650 Mari saya klik Kuliah. 1595 01:15:16,650 --> 01:15:18,560 Dan perhatikan URL akan berubah. 1596 01:15:18,560 --> 01:15:20,930 Sekarang aku di lectures.php. 1597 01:15:20,930 --> 01:15:22,630 Mari saya klik nol. 1598 01:15:22,630 --> 01:15:27,200 Sekarang aku di week0.php Dan sekarang mari saya membuka file-file di gedit. 1599 01:15:27,200 --> 01:15:30,120 Bukan hanya indeks, tapi biarkan saya membuka kuliah. 1600 01:15:30,120 --> 01:15:33,900 Dan biarkan aku menyingkirkan komentar untuk fokus pada bagian ini saja. 1601 01:15:33,900 --> 01:15:37,680 >> Dan sekarang biarkan aku membuka satu lagi, week0.php, membuang komentar, 1602 01:15:37,680 --> 01:15:39,910 hanya untuk membersihkan ini. 1603 01:15:39,910 --> 01:15:41,720 Dan sekarang perhatikan berikut ini. 1604 01:15:41,720 --> 01:15:47,340 Berpikir benar-benar semacam hati-hati tentang desain, dan mari kita membuat garis 1605 01:15:47,340 --> 01:15:52,013 up sama, apa yang bisa dilakukan lebih baik di sini, menurut Anda? 1606 01:15:52,013 --> 01:15:56,450 1607 01:15:56,450 --> 01:15:57,780 >> Bagaimana saya membuat satu minggu? 1608 01:15:57,780 --> 01:15:58,480 Bagaimana tentang hal ini. 1609 01:15:58,480 --> 01:16:00,450 Jadi ini adalah bagaimana saya membuat satu minggu. 1610 01:16:00,450 --> 01:16:08,290 Aku pergi ke File, New, Tempel, Simpan, week1.php, dan kemudian saya pergi di sini. 1611 01:16:08,290 --> 01:16:09,875 Dan aku berubah satu - 1612 01:16:09,875 --> 01:16:11,646 apa ini, satu sampai Jumat. 1613 01:16:11,646 --> 01:16:14,430 1614 01:16:14,430 --> 01:16:15,810 Saya mengubah nol satu. 1615 01:16:15,810 --> 01:16:17,150 Saya mengubah ini ke salah satu. 1616 01:16:17,150 --> 01:16:20,350 >> OK, jadi sekarang melihat file saya. 1617 01:16:20,350 --> 01:16:22,100 Apa yang bisa dilakukan secara berbeda? 1618 01:16:22,100 --> 01:16:25,310 Dimana kesempatan, mungkin? 1619 01:16:25,310 --> 01:16:28,330 Jadi ada kesempatan untuk memulai anjak tentang hal ini. 1620 01:16:28,330 --> 01:16:32,950 Mari saya membuka, sebagai spoiler, untuk apa yang akan Anda lihat dalam P set 7. 1621 01:16:32,950 --> 01:16:38,750 Jika saya membuka, sekarang, index.php dalam versi lima ini, tampaknya cara 1622 01:16:38,750 --> 01:16:40,730 lebih samar, diakui. 1623 01:16:40,730 --> 01:16:43,710 >> Tapi ini, sekarang, adalah apa yang saya akan menelepon pengontrol yang mengendalikan 1624 01:16:43,710 --> 01:16:44,770 logika halaman saya. 1625 01:16:44,770 --> 01:16:48,510 Dan Anda dapat jenis merekonstruksi, intuitif, mungkin, apa yang terjadi. 1626 01:16:48,510 --> 01:16:50,630 Pada baris pertama, itu sedikit samar. 1627 01:16:50,630 --> 01:16:54,040 Tapi perhatikan aku membutuhkan, seperti dengan termasuk tajam, file bernama 1628 01:16:54,040 --> 01:16:55,930 helpers.php. 1629 01:16:55,930 --> 01:16:59,980 Dan kemudian aku menelepon, tampaknya, fungsi, yang disebut render, lewat di 1630 01:16:59,980 --> 01:17:00,850 dua argumen. 1631 01:17:00,850 --> 01:17:02,440 >> Salah satunya adalah kutipan tanda kutip, sundulan. 1632 01:17:02,440 --> 01:17:04,800 Dan yang lainnya adalah, apa tipe data ini, berbasis 1633 01:17:04,800 --> 01:17:07,180 pada sintaks kami sebelumnya? 1634 01:17:07,180 --> 01:17:08,160 Ini sebuah array terkait. 1635 01:17:08,160 --> 01:17:11,730 Secara khusus, itu lewat di judul dengan beberapa metadata yang mengingatkan 1636 01:17:11,730 --> 01:17:13,430 saya apa itu dan nilainya. 1637 01:17:13,430 --> 01:17:16,340 Lalu aku melihat keras kode ul, sehingga beberapa HTML mentah. 1638 01:17:16,340 --> 01:17:20,020 Tapi kemudian aku kembali ke mode PHP memanggil render fungsi. 1639 01:17:20,020 --> 01:17:24,390 Jadi bahkan jika Anda belum pernah menggunakan HTML atau PHP sebelumnya, dan meskipun ini terlihat 1640 01:17:24,390 --> 01:17:27,480 menakutkan, mengapa ini mungkin desain yang lebih baik? 1641 01:17:27,480 --> 01:17:31,310 Apa yang lebih baik tentang hal itu, berdasarkan kesimpulan? 1642 01:17:31,310 --> 01:17:32,130 >> AUDIENCE: [Tak terdengar] 1643 01:17:32,130 --> 01:17:35,750 >> SPEAKER 1: Kurang berlebihan dalam tidak ada tag HTML lebih, tidak lebih 1644 01:17:35,750 --> 01:17:38,410 kepala tag, tag tubuh tidak lebih di setiap file sialan. 1645 01:17:38,410 --> 01:17:41,860 Sebaliknya, aku sudah diperhitungkan keluar kesamaan dan mungkin menempatkan mereka 1646 01:17:41,860 --> 01:17:45,150 ke dalam sebuah file entah bagaimana terkait untuk header. 1647 01:17:45,150 --> 01:17:48,500 Dan hal yang sama untuk tubuh dekat tag, tag HTML dekat. 1648 01:17:48,500 --> 01:17:52,165 Itu mungkin di sini di dalam dari suatu tempat footer. 1649 01:17:52,165 --> 01:17:57,050 Dan Anda akan melihat, pada Soal set 7, sedikit tur melalui ini. 1650 01:17:57,050 --> 01:17:58,070 >> Jadi apa yang ada di depan? 1651 01:17:58,070 --> 01:18:03,390 Satu hal yang kita belum kemampuan namun untuk sebenarnya adalah untuk menyimpan data. 1652 01:18:03,390 --> 01:18:06,110 Dan apa yang kita akan mulai melihat Rabu, misalnya, adalah bahwa Anda 1653 01:18:06,110 --> 01:18:08,450 teman lama Excel, atau angka, memungkinkan Anda untuk menyimpan banyak 1654 01:18:08,450 --> 01:18:10,060 data dalam baris dan kolom. 1655 01:18:10,060 --> 01:18:12,570 Ternyata Anda bisa melakukan itu dalam apa yang disebut database, pemrograman. 1656 01:18:12,570 --> 01:18:16,620 manik Dan ternyata, setelah itu, kita akan dapat menyimpan hal-hal seperti 1657 01:18:16,620 --> 01:18:20,550 ini, yang Anda akan melihat lagi dalam set P 7, sejumlah besar nama pengguna dan 1658 01:18:20,550 --> 01:18:23,690 password, yang terakhir yang sebenarnya dienkripsi, seperti yang mereka 1659 01:18:23,690 --> 01:18:25,550 berada dalam edisi hacker P set 2 itu. 1660 01:18:25,550 --> 01:18:29,600 Dan akhirnya, Anda akan menerapkan ini, website Anda sendiri Etrade-seperti itu 1661 01:18:29,600 --> 01:18:32,220 mengimplementasikan kolektif CS50 keuangan. 1662 01:18:32,220 --> 01:18:36,000 >> Terakhir, karena Anda tinggal di sini begitu terlambat hari ini, jika Anda kembali ke bagian ini 1663 01:18:36,000 --> 01:18:41,120 kampus, di 04:00 hari ini, kami akan memberikan tidak hanya saran, di SCES 1664 01:18:41,120 --> 01:18:44,200 Advising Adil, di 16:00 di Maxwell-Dworkin, kami akan memberikan beberapa 1665 01:18:44,200 --> 01:18:47,470 Americone Dream, Cherry Garcia, Chocolate Fudge Brownie, Chocolate 1666 01:18:47,470 --> 01:18:50,840 Chip Cookie Dough, dan, ketika Anda Google Chunky Monkey, Anda mendapatkan ini. 1667 01:18:50,840 --> 01:18:53,620 Jadi semua yang menanti di 04:00 PM di Maxwell-Dworkin. 1668 01:18:53,620 --> 01:18:56,736 Sampai jumpa pada hari Rabu juga. 1669 01:18:56,736 --> 01:18:59,960 >> SPEAKER 2: Pada berikutnya CS50, RJ tidur masuk 1670 01:18:59,960 --> 01:19:03,656 1671 01:19:03,656 --> 01:19:04,906 >> RJ: bagian saya! 1672 01:19:04,906 --> 01:19:07,727 1673 01:19:07,727 --> 01:19:08,977 Ha! 1674 01:19:08,977 --> 01:19:12,056 1675 01:19:12,056 --> 01:19:13,306 Oh, 1676 01:19:13,306 --> 01:19:16,374