1 00:00:00,000 --> 00:00:01,940 >> [เล่นเพลง] 2 00:00:01,940 --> 00:00:11,130 3 00:00:11,130 --> 00:00:14,620 >> DAVID ลัน: นี่คือ CS 50, และ นี่คือจุดเริ่มต้นของสัปดาห์ที่เก้า 4 00:00:14,620 --> 00:00:18,240 และสิ่งที่เราคิดว่าเราจะทำในวันนี้ไม่ได้ เพียงปิดบทในสัปดาห์ที่ผ่านมา 5 00:00:18,240 --> 00:00:22,670 วัสดุที่เรามุ่งเน้นไปที่เซิร์ฟเวอร์ การเขียนโปรแกรมเว็บด้านกับ PHP และ SQL, 6 00:00:22,670 --> 00:00:23,549 สิ่งที่ฐานข้อมูลบางส่วน 7 00:00:23,549 --> 00:00:25,590 เราจะพูดคุยเกี่ยวกับบิตของ วันนี้การรักษาความปลอดภัยแล้ว 8 00:00:25,590 --> 00:00:29,590 การเปลี่ยนแปลงที่จะเขียนโปรแกรมฝั่งไคลเอ็นต์ ภาษาที่รู้จักกันเป็น JavaScript 9 00:00:29,590 --> 00:00:31,330 แต่ก่อนการไถ่ถอนบางส่วน 10 00:00:31,330 --> 00:00:35,030 >> คุณอาจจะจำได้ว่าเมื่อวันที่ วันพุธที่ฉันออก 11 00:00:35,030 --> 00:00:37,550 ในการเขียนเว็บไซต์ที่ เอาในการป้อนข้อมูลของผู้ใช้ 12 00:00:37,550 --> 00:00:41,120 โดยรูปแบบ HTML ที่เก็บไว้แล้ว ว่าชื่อผู้ใช้ป้อนข้อมูลโทรศัพท์ 13 00:00:41,120 --> 00:00:43,124 ตัวเลขและโทรศัพท์มือถือ ผู้ให้บริการในฐานข้อมูล 14 00:00:43,124 --> 00:00:45,540 แล้วผมก็มีคำสั่งเล็ก ๆ น้อย ๆ สคริปต์เส้นเขียนใน PHP 15 00:00:45,540 --> 00:00:47,956 ที่ควรจะย้ำ กว่าแถวในฐานข้อมูล 16 00:00:47,956 --> 00:00:49,400 และส่งออกข้อความ 17 00:00:49,400 --> 00:00:53,870 แม้จะมีหลายหลายครั้งเรา ไม่ได้รับการทำงานว่าภายในสิ้น 18 00:00:53,870 --> 00:00:57,820 >> ดังนั้นผมจึงใช้เวลาทั้งสัปดาห์ทำงานนี้ ในรหัสที่ได้รับเราผ่านจุด 19 00:00:57,820 --> 00:01:01,220 ที่เราออกมาโดยทั้งหมด ผมได้รับในตอนท้ายของวันพุธ 20 00:01:01,220 --> 00:01:05,500 เป็นข้อความนี้ จาก Margo ที่ฉันพยายาม, 21 00:01:05,500 --> 00:01:09,940 ตามมาด้วยการส่งข้อความจากที่อื่น เพื่อนร่วมชั้นของคุณได้มีดาวิด 22 00:01:09,940 --> 00:01:14,030 ตามมาด้วยคนนี้ ให้กำลังใจอย่างน่าพิศวง 23 00:01:14,030 --> 00:01:15,840 เก็บไว้บนไปกำลังใจมาก 24 00:01:15,840 --> 00:01:20,960 ฉันเกือบจะได้มันจนกว่า then-- และ ที่ทราบเราสิ้นสุดในวันพุธที่ 25 00:01:20,960 --> 00:01:25,850 แล้วจริงอาจจะเป็นที่ชื่นชอบ สักครู่ต่อมานี้เดินเข้ามาใน 26 00:01:25,850 --> 00:01:27,000 สตรีมสดแช่ง 27 00:01:27,000 --> 00:01:31,080 >> ดังนั้นวันนี้เราจะแก้ไขปัญหานี้ด้วยความรวดเร็ว มองไปที่สิ่งที่ฉันได้ทำมาตั้งแต่ 28 00:01:31,080 --> 00:01:35,440 ดังนั้นทั้งหมดของรหัสนี้สามารถใช้ได้ ออนไลน์จากสัปดาห์สุดท้ายของสัปดาห์ที่แปด 29 00:01:35,440 --> 00:01:36,300 รหัสแหล่งที่มา 30 00:01:36,300 --> 00:01:39,425 และคุณจะเห็นว่าผมผ่านไป และฉันทำความสะอาดขึ้นจริงสิ่งเล็กน้อย 31 00:01:39,425 --> 00:01:42,080 ผมแนะนำคู่อื่น ๆ คุณสมบัติของฐานข้อมูล SQL 32 00:01:42,080 --> 00:01:45,300 ยกตัวอย่างเช่นมากกว่า เพียงแค่ให้บริการของ var ถ่าน 33 00:01:45,300 --> 00:01:47,310 ที่ฉันคิดว่าฉันไม่ได้ทันทีในสัปดาห์ที่ผ่านมา 34 00:01:47,310 --> 00:01:49,820 ฉันแทนกำหนดไว้ว่าเป็น สิ่งที่เรียกว่า enum 35 00:01:49,820 --> 00:01:53,310 >> และบางส่วนของคุณอาจจะได้เห็นนี้ ในขณะที่เราสำรวจ C. Enum เป็นจริง 36 00:01:53,310 --> 00:01:56,820 คุณลักษณะของ C ที่คุณสามารถ ระบุทั้งกลุ่มของค่าคงที่ 37 00:01:56,820 --> 00:01:59,640 และกำหนดให้ค่าอัตโนมัติ เช่นหนึ่งสองสามสี่ 38 00:01:59,640 --> 00:02:01,330 โดยไม่ต้องหมายเลขรหัสที่ยาก 39 00:02:01,330 --> 00:02:04,780 ดังนั้น SQL สนับสนุนเดียวกันด้วยเหตุนี้ถ้า คุณมีข้อมูลฐานข้อมูลที่คุณเท่านั้น 40 00:02:04,780 --> 00:02:09,389 ต้องการที่จะใช้ในหนึ่งแน่นอน ค่าคุณอักษรสามารถระบุว่า 41 00:02:09,389 --> 00:02:13,120 เป็นฉันได้ทำที่นั่นสี่ เป็นที่นิยมของสหรัฐผู้ให้บริการโทรศัพท์มือถือ 42 00:02:13,120 --> 00:02:13,819 >> ดังนั้นฉันไม่ว่า 43 00:02:13,819 --> 00:02:16,610 และฉันทำให้จำนวนของการเปลี่ยนแปลงเป็น ดีที่สำคัญที่สุดที่ 44 00:02:16,610 --> 00:02:20,090 คือการได้รับอีเมลการทำงานเพราะการเรียกคืน ว่าโปรแกรมนี้เป็นที่พึ่งที่ 45 00:02:20,090 --> 00:02:23,470 เรียกว่าอีเมลไปยัง เกตเวย์ SMS ซึ่งเป็นเพียง 46 00:02:23,470 --> 00:02:27,670 วิธีแฟนซีที่บอกว่า Verizon, และ AT & T และคนอื่น ๆ ที่สนับสนุนเซิร์ฟเวอร์ 47 00:02:27,670 --> 00:02:30,740 โดยหากได้รับ อีเมลจะแปลงมันเป็น SMS 48 00:02:30,740 --> 00:02:33,290 และส่งออกข้อความ ข้อความไปยังโทรศัพท์ของใครบางคน 49 00:02:33,290 --> 00:02:37,010 ดังนั้นถ้าผมทำอย่างนี้อย่างถูกต้อง ที่นี่เป็นรูปแบบใหม่และปรับปรุง 50 00:02:37,010 --> 00:02:39,259 ที่จะพูดคุยกับ ใหม่และปรับปรุงรหัสที่ 51 00:02:39,259 --> 00:02:40,300 คุณสามารถเล่นกับออนไลน์ 52 00:02:40,300 --> 00:02:44,140 และก็หวังว่าจะทำให้ฉัน เสียงโทรศัพท์ในเวลาเพียงสักครู่ 53 00:02:44,140 --> 00:02:47,240 >> ดังนั้นครั้งแรกที่ผมจะพิมพ์ในนามของเรา 54 00:02:47,240 --> 00:02:51,400 ประการที่สองฉันจะไม่ การทำเช่นนี้ในเวลานี้ 55 00:02:51,400 --> 00:02:53,920 ฉันจะไม่ตรวจสอบธาตุ 56 00:02:53,920 --> 00:02:56,710 และนี่เป็นเพียง สิ่งเล็ก ๆ น้อย ๆ ที่ผมทำไม่ได้ 57 00:02:56,710 --> 00:02:59,250 สร้างชั่วโมงของการผลิตโพสต์ ทำงานเป็นที่ผมทำครั้งสุดท้าย 58 00:02:59,250 --> 00:03:02,300 ขณะนี้เป็นหมายเลขโทรศัพท์ของฉัน 59 00:03:02,300 --> 00:03:03,560 >> ฉันจะเลือก Verizon 60 00:03:03,560 --> 00:03:10,260 และที่นี่ให้เปิดไมโครโฟนนี้ ที่นี่และมีจุดมุ่งหมายที่นี้ไปที่โทรศัพท์ของฉันที่นี่ 61 00:03:10,260 --> 00:03:13,130 ฉันจะคลิกลงทะเบียน ซึ่งควรจะหวังว่า 62 00:03:13,130 --> 00:03:14,530 ใส่ลงในฐานข้อมูล 63 00:03:14,530 --> 00:03:16,780 ตอนนี้ผมกำลังจะไป โปรแกรมบรรทัดคำสั่งที่ 64 00:03:16,780 --> 00:03:20,825 จำถูกเรียกว่าจุดเฉือน ข้อความและข้ามนิ้วมือข​​องคุณ 65 00:03:20,825 --> 00:03:24,092 66 00:03:24,092 --> 00:03:26,527 ไปเลย 67 00:03:26,527 --> 00:03:27,501 >> [DINGS โทรศัพท์] 68 00:03:27,501 --> 00:03:28,962 >> [APPLAUSE] 69 00:03:28,962 --> 00:03:31,815 70 00:03:31,815 --> 00:03:34,940 DAVID ลันดังนั้นความสนุกสนานมากขึ้นกว่าที่เจ้านี่ มันสนุกแน่นอนถ้าฉันได้รับเป็นมัน 71 00:03:34,940 --> 00:03:38,004 แต่มันก็สนุกมากขึ้นผมคิดว่าถ้าเรา สร้างหนึ่งในบรรดาช่วงเวลาที่ภาพยนตร์ 72 00:03:38,004 --> 00:03:40,420 ที่สิ่งที่ต้องการจริงๆ ที่ไม่ดีที่เกิดขึ้นในโลก 73 00:03:40,420 --> 00:03:42,860 และเช่นเดียวกับเอ็นเอสเอของผู้คน โทรศัพท์มือถือเริ่มต้น beeping 74 00:03:42,860 --> 00:03:44,860 ที่มีข้อความ การแจ้งเตือนให้พวกเขาความจริงนี้ 75 00:03:44,860 --> 00:03:47,026 ดังนั้นผมคิดว่าเราจะพยายาม เพื่อสร้างเดียวกันที่นี่ 76 00:03:47,026 --> 00:03:49,610 โดยไม่ได้ใช้ฐานข้อมูล ฉันแทนล่วงหน้า 77 00:03:49,610 --> 00:03:51,490 เขียนโปรแกรมที่มีลักษณะเช่นนี้ 78 00:03:51,490 --> 00:03:53,660 >> นี้เป็น index.php-- และฉันใส่รหัสนี้ออนไลน์ 79 00:03:53,660 --> 00:03:56,710 เป็นที่เห็นได้ชัดสวยหน่อย เพียงแค่วาทกรรม form.php, 80 00:03:56,710 --> 00:04:00,990 โดยใช้กระบวนทัศน์แบบ MVC ที่เรา พูดถึงในรายละเอียดในการตั้งปัญหา 81 00:04:00,990 --> 00:04:01,650 เจ็ด 82 00:04:01,650 --> 00:04:02,910 รูปแบบที่สวยเรียบง่าย 83 00:04:02,910 --> 00:04:06,634 มันจะส่งไปยัง แฟ้มที่เรียกว่า here.php ผ่านโพสต์ 84 00:04:06,634 --> 00:04:09,300 และมันก็เห็นได้ชัดว่าจะถาม สำหรับชื่อและหมายเลขโทรศัพท์ 85 00:04:09,300 --> 00:04:11,400 แล้วผ่านที่เรียกว่า เลือกเมนูก็ 86 00:04:11,400 --> 00:04:14,250 จะให้คุณอย่างน้อยสี่ เป็นที่นิยมของสหรัฐผู้ให้บริการโทรศัพท์มือถือ, 87 00:04:14,250 --> 00:04:17,470 แล้วช่วยให้คุณได้อย่างมีประสิทธิภาพ จะเข้าร่วมประชุมโดยคลิกที่นี่ 88 00:04:17,470 --> 00:04:20,471 >> และที่นี่ในขณะเดียวกันเป็นไปได้ ยืมบางส่วนของรหัสจากครั้งล่าสุด 89 00:04:20,471 --> 00:04:22,553 และถ้าคุณเพียงแค่หางนี้ คุณจะเห็นว่ามี 90 00:04:22,553 --> 00:04:23,900 ทั้งกลุ่มของการตรวจสอบข้อผิดพลาด 91 00:04:23,900 --> 00:04:26,640 แต่ความงามในตอนท้ายว่า เราไม่ได้เขียนไปยังฐานข้อมูลวันนี้ 92 00:04:26,640 --> 00:04:29,130 เรากำลังทำให้มันง่ายและ เพียงแค่การส่งออกหวังว่า 93 00:04:29,130 --> 00:04:32,190 ข้อความที่ผ่านการทำงานของผม เขียนในช่วงสายไม่กี่วันที่ผ่านมา 94 00:04:32,190 --> 00:04:36,270 ข้อความที่อยู่ในฟังก์ชั่น PHP, ที่สามารถใช้ได้ออนไลน์อีกครั้ง 95 00:04:36,270 --> 00:04:38,210 >> ดังนั้นถ้าคุณต้องการที่จะมีส่วนร่วมในครั้งนี้ 96 00:04:38,210 --> 00:04:40,190 เราไม่ได้จะได้รับการจัดเก็บอะไร 97 00:04:40,190 --> 00:04:43,809 ไปที่ URL นี้ที่นี่ในเวลาจริง 98 00:04:43,809 --> 00:04:46,850 อย่าส่งมันก็ยัง แต่ขอ ดูว่าเราสามารถมีหนึ่งของภาพยนตร์เหล่านี้ 99 00:04:46,850 --> 00:04:49,830 ช่วงเวลาที่โทรศัพท์มือถือของทุกคน เริ่ม beeping หวังเพียง 100 00:04:49,830 --> 00:04:53,580 ครั้งเดียวในปีนี้แตกต่างจากในปี 2011 ที่นี้ไปเป๋อย่างน่ากลัว 101 00:04:53,580 --> 00:04:58,910 และเมื่อคุณไปที่ที่อยู่นั้น คุณจะเห็นรูปแบบที่ง่ายสุด 102 00:04:58,910 --> 00:05:03,884 ว่าถ้าคุณมีชื่อโทรศัพท์มือถือ จำนวนและผู้ให้บริการโทรศัพท์มือถือที่ 103 00:05:03,884 --> 00:05:06,175 ตรงกับรายชื่อที่นั่นไป ข้างหน้าและกรอกแบบฟอร์ม 104 00:05:06,175 --> 00:05:07,880 แต่ไม่ได้ตีส่งเพียง แต่ 105 00:05:07,880 --> 00:05:10,850 >> รูปแบบจะมีลักษณะเช่นนี้ 106 00:05:10,850 --> 00:05:13,660 ไปข้างหน้าและพิมพ์ ชื่อหมายเลขโทรศัพท์ของคุณ 107 00:05:13,660 --> 00:05:17,670 oop, ใครบางคนจะไปข้างหน้าของเส้นโค้ง 108 00:05:17,670 --> 00:05:18,170 ก็ OK 109 00:05:18,170 --> 00:05:19,340 ตกลงทุกคนกรอกแบบฟอร์ม 110 00:05:19,340 --> 00:05:21,400 นี้ควรจะทำงานใน โทรศัพท์เกินไปถ้าคุณต้องการ 111 00:05:21,400 --> 00:05:23,695 สิทธิทั้งหมดในเครื่องหมายของคุณได้รับการตั้งค่าไป 112 00:05:23,695 --> 00:05:24,195 ตีที่นี่ 113 00:05:24,195 --> 00:05:27,275 114 00:05:27,275 --> 00:05:27,775 อะไร? 115 00:05:27,775 --> 00:05:31,140 116 00:05:31,140 --> 00:05:31,640 เลขที่ 117 00:05:31,640 --> 00:05:34,410 118 00:05:34,410 --> 00:05:40,250 ฉันสาบานกับพระเจ้าที่ผมทดสอบ นี้หลายครั้งวันนี้ 119 00:05:40,250 --> 00:05:41,720 ที่คุณได้รับมันได้หรือไม่ 120 00:05:41,720 --> 00:05:43,145 >> [interposing VOICES] 121 00:05:43,145 --> 00:05:46,470 122 00:05:46,470 --> 00:05:49,560 >> DAVID ลัน: ตกลงข้อผิดพลาดของผู้ใช้อาจจะ 123 00:05:49,560 --> 00:05:50,550 นั่นเป็นสอง 124 00:05:50,550 --> 00:05:53,300 จะทำงานให้ทั้งสองออกจาก ไม่กี่ร้อยสามสี่ 125 00:05:53,300 --> 00:05:55,940 ตกลงที่ดี 126 00:05:55,940 --> 00:05:58,520 สี่ห้าสำหรับ วิธีการเกี่ยวกับความถูกต้อง 127 00:05:58,520 --> 00:05:59,810 >> ดังนั้นสิ่งที่เพิ่งเกิดขึ้น? 128 00:05:59,810 --> 00:06:02,727 ดังนั้นน่าจะไม่เห็นคุณ หน้าจอทำไมมันอาจได้ errored? 129 00:06:02,727 --> 00:06:05,518 มันอาจจะเป็นว่าเราเป็นเพียงแค่ พยายามที่จะทำให้การเชื่อมต่อมากเกินไป 130 00:06:05,518 --> 00:06:08,110 ไปยังเซิร์ฟเวอร์อีเมลฮาร์วาร์ทั้งหมดใน ครั้งเดียวจากที่อยู่เดียวกัน 131 00:06:08,110 --> 00:06:10,740 ฉันแค่คาดเดาตั้งแต่ฉันไม่ได้ มีความหรูหราของการทดสอบ 132 00:06:10,740 --> 00:06:13,220 รหัสนี้กับบาง 300 คนล่วงหน้า 133 00:06:13,220 --> 00:06:16,040 แต่ตอนนี้รู้ว่า ว่าอย่างน้อยควร 134 00:06:16,040 --> 00:06:18,250 มีอากาศงานที่ทำได้ในเวลานี้ 135 00:06:18,250 --> 00:06:22,880 >> สิทธิทั้งหมดดังนั้นทำไมเป็นแบบนี้ทั้งหมด เพิ่มเติมชิดกับสิ่งที่เกิดขึ้น? 136 00:06:22,880 --> 00:06:24,900 อย่างแรกอย่างรวดเร็ว คู่ของประกาศ 137 00:06:24,900 --> 00:06:29,350 ดังนั้นหนึ่งถ้าคุณต้องการที่จะเข้าร่วมช้างและ นิคและอื่น ๆ ที่รับประทานอาหารกลางวันวันศุกร์นี้, 138 00:06:29,350 --> 00:06:32,400 ทำ RSVP ที่ URL ปกติมี 139 00:06:32,400 --> 00:06:35,650 ถ้าคุณกำลังคิดที่จะมุ่งเน้น หรือทำในมัธยมใน CS, 140 00:06:35,650 --> 00:06:38,941 ไม่ว่าคุณจะปีหรือน้อง หรือแม้กระทั่งจูเนียร์หรืออาวุโสที่จุดนี้ 141 00:06:38,941 --> 00:06:42,490 และยังสามารถบีบในหลักสูตร ตระหนักดีว่าโรงเรียนวิศวกรรม 142 00:06:42,490 --> 00:06:45,620 จะรวบรวมฟรีเบนและ ไอศครีมเจอร์และคำแนะนำ 143 00:06:45,620 --> 00:06:48,910 วันพุธนี้ไม่นานหลังเลิกเรียน ที่ 04:00 ในอาคาร CS 144 00:06:48,910 --> 00:06:49,771 ที่แมกซ์เวลดวอร์คิ 145 00:06:49,771 --> 00:06:51,520 ถ้าเป็นการเร็วเกินไป บนหน้าจอเพียงแค่ไป 146 00:06:51,520 --> 00:06:55,260 เพื่อ cs50.harvard.edu สำหรับ เชื่อมโยงไปยังเหตุการณ์ที่ Facebook 147 00:06:55,260 --> 00:06:57,140 ที่คุณสามารถดูรายละเอียดเพิ่มเติม 148 00:06:57,140 --> 00:07:01,390 >> ในขณะที่ฉันคิดว่าฉันจะแก้ไขให้ถูกต้อง สิ่งอื่น ๆ หนึ่งที่ผม goofed ในวันพุธที่ 149 00:07:01,390 --> 00:07:04,400 ปรากฎว่า ID มาร์ค บน Facebook ก็ไม่สาม 150 00:07:04,400 --> 00:07:05,230 มันเป็นสี่ 151 00:07:05,230 --> 00:07:08,330 กลับกลายเป็นว่าเขามีการทดสอบมากขึ้น บัญชีกว่าที่ฉันจำ 152 00:07:08,330 --> 00:07:12,400 แต่สิ่งนี้รู้สึกเหมือนโอกาส จะทำคือการดึง URL เช่นนี้ 153 00:07:12,400 --> 00:07:16,680 >> ดังนั้นจึงปรากฎว่า Facebook มี API, Application Programming Interface, 154 00:07:16,680 --> 00:07:20,070 ซึ่งเป็นกลไก whereby คุณ สามารถขอข้อมูลโปรแกรม 155 00:07:20,070 --> 00:07:24,480 ที่ Facebook และรับกลับเครื่อง ข้อมูลที่อ่านได้ไม่หน้าเว็บ 156 00:07:24,480 --> 00:07:28,690 แต่ข้อความดิบเพียงแค่บางสิ่งบางอย่าง เรียกว่า Object สัญลักษณ์ JavaScript 157 00:07:28,690 --> 00:07:32,150 และในความเป็นจริงถ้าฉันไปนี้ URL, และซูมเข้าโดยค่าเริ่มต้น 158 00:07:32,150 --> 00:07:34,960 นี่คือมาร์คสาธารณชน เข้าถึงข้อมูล 159 00:07:34,960 --> 00:07:37,430 >> และรายละเอียดที่น่าสนใจ นี่เป็นเพียงว่า ID ของเขา 160 00:07:37,430 --> 00:07:40,670 เป็นที่แน่นอน, บ้านเลขที่สี่ซึ่งผม รู้ทันทีที่ฉันทำอย่างนี้ 161 00:07:40,670 --> 00:07:44,260 คุณสามารถทำได้ด้วยตัวคุณเองถ้าคุณรู้ว่า ชื่อผู้ใช้ Facebook ของคุณถ้าคุณมีหนึ่ง 162 00:07:44,260 --> 00:07:45,440 เพียงแค่พิมพ์มันขึ้นมาด้านบนมี 163 00:07:45,440 --> 00:07:46,640 และไม่มีการนี​​้มีความเป็นส่วนตัว 164 00:07:46,640 --> 00:07:48,670 ฉันแค่ทำเช่นนี้ได้ ในโหมดไม่ระบุตัวตน 165 00:07:48,670 --> 00:07:49,900 ดังนั้นฉันไม่ได้เข้าสู่แม้ใน 166 00:07:49,900 --> 00:07:54,440 และคุณเห็นฉันว่า เห็นได้ชัดว่าจำนวนผู้ใช้ 6,454 167 00:07:54,440 --> 00:07:56,480 บน Facebook ซึ่งไม่ เลวร้ายเกินไปวันนี้ 168 00:07:56,480 --> 00:07:59,900 ดังนั้น แต่อย่างใดนอกจากนี้คุณยังจะเห็น ข้อมูลเพิ่มเติมมี 169 00:07:59,900 --> 00:08:02,150 >> และด้านที่มีประโยชน์ ของที่มีอยู่ที่คุณ 170 00:08:02,150 --> 00:08:06,890 สามารถเขียนซอฟแวร์ของคุณเองที่ อย่างใดรวมข้อมูลเช่นนี้ 171 00:08:06,890 --> 00:08:08,170 ลงในใบสมัครของคุณเอง 172 00:08:08,170 --> 00:08:10,650 คุณสามารถช่วยให้ผู้ใช้สามารถ เข้าสู่เว็บไซต์ของคุณ 173 00:08:10,650 --> 00:08:14,190 ไม่ได้ใช้ชื่อผู้ใช้ที่กำหนดเองของตัวเองและ รหัสผ่าน แต่อาจจะเข้าสู่ระบบของพวกเขา Facebook 174 00:08:14,190 --> 00:08:16,170 และได้รับข้อมูลได้ เกี่ยวกับเพื่อนของพวกเขา 175 00:08:16,170 --> 00:08:18,740 หากพวกเขาอนุมัติดังกล่าวหรือที่คล้ายกัน 176 00:08:18,740 --> 00:08:21,430 ดังนั้น CS50 ทราบว่าเกินไป มีบางส่วนของ API ของตัวเอง 177 00:08:21,430 --> 00:08:24,620 หนึ่งสำหรับข้อมูลแคตตาล็อกแน่นอน บางอย่างสำหรับเมนูกอดในการรับประทานอาหาร 178 00:08:24,620 --> 00:08:26,730 ห้องโถงทั้งหมด อาคารและสถานที่ 179 00:08:26,730 --> 00:08:30,930 ในมหาวิทยาลัยเรามี API สำหรับเช่นกัน ที่คุณสามารถสอบถามในทำนองเดียวกันและได้รับ 180 00:08:30,930 --> 00:08:35,520 ข้อมูลต้นฉบับกลับที่คุณสามารถบูรณาการ เป็น PHP หรือ JavaScript หรือแม้กระทั่ง 181 00:08:35,520 --> 00:08:38,320 แม้ว่าจะน้อยกว่าปกติ, โครงการสุดท้าย C ตาม 182 00:08:38,320 --> 00:08:41,190 >> อันที่จริงก่อนสุดท้าย โครงการมีความคืบหน้าเพียงไม่กี่ 183 00:08:41,190 --> 00:08:42,980 คุณได้รับอีเมลจากเราไปวัน ๆ 184 00:08:42,980 --> 00:08:45,761 ตระหนักดีว่าข้อเสนอของ เนื่องจากมาจันทร์นี้ 185 00:08:45,761 --> 00:08:49,010 มันไม่จำเป็นต้องมีผลผูกพัน แต่คุณ จะต้องได้รับการเรียนการสอนเพื่อนของคุณ 186 00:08:49,010 --> 00:08:51,260 ได้รับการอนุมัติก่อนที่จะทำ การเปลี่ยนแปลงใด ๆ นั้นไม่นาน 187 00:08:51,260 --> 00:08:54,280 แล้วข้างหน้าเป็น จำนวนของเหตุการณ์สำคัญอื่น ๆ 188 00:08:54,280 --> 00:08:56,542 >> เพื่อที่จะแซวคุณเกินไป กับความเป็นไปบางอย่าง 189 00:08:56,542 --> 00:08:58,250 เรามีพวงของ เหล่านี้หลอดไฟสี 190 00:08:58,250 --> 00:09:01,190 และบางส่วนของพวกคุณตอนนี้มีบางส่วน เหล่านี้ในห้องพักหอพักของคุณได้เป็นอย่างดี 191 00:09:01,190 --> 00:09:02,920 และพวกเขาก็มี API 192 00:09:02,920 --> 00:09:07,300 ดังนั้นจำเหล่านั้นสัปดาห์ที่หลอดไฟไบนารี ที่ผ่านมาว่าแดนแบรดลีย์และธานเซล 193 00:09:07,300 --> 00:09:08,780 ดัฟฟ์สร้างขึ้นสำหรับเรา 194 00:09:08,780 --> 00:09:12,560 พวกเขาใช้อินเตอร์เฟซซอฟแวร์ที่จะ หลอดไฟนี้ซึ่งในขณะนี้ 195 00:09:12,560 --> 00:09:15,232 เสียบเข้ากับกระแสไฟฟ้า แล้วผ่านแบบไร้สาย 196 00:09:15,232 --> 00:09:17,690 เชื่อมต่อกับสิ่งเล็ก ๆ น้อย ๆ เรียกว่าสะพานลงที่นี่ 197 00:09:17,690 --> 00:09:21,280 เหมือนเป็นกรรมสิทธิ์ของเราเตอร์เล็ก ๆ น้อย ๆ ไปยังอุปกรณ์นี้โดยเฉพาะ 198 00:09:21,280 --> 00:09:26,540 >> แต่มันกลับกลายเป็นว่าฉันรู้วิธีการ ส่งข้อความ HTTP, ที่เราทุกคนตอนนี้ทำ 199 00:09:26,540 --> 00:09:31,670 ฉันสามารถส่งข้อความเช่นนี้จะ หลอดไฟนี้จะเปิดหรือปิด 200 00:09:31,670 --> 00:09:34,000 หรือทำจำนวนใด ๆ ดำเนินการอื่น ๆ เกี่ยวกับมัน 201 00:09:34,000 --> 00:09:36,110 ขอให้สังเกตว่ามันไม่ได้รับก็ไม่ได้โพสต์ 202 00:09:36,110 --> 00:09:37,760 มีอีกใส่หนึ่งที่เรียกว่าเป็น 203 00:09:37,760 --> 00:09:39,630 มีจริงไม่กี่คำกริยาอื่น ๆ เช่นเป็น 204 00:09:39,630 --> 00:09:42,920 แต่สังเกตเห็นว่ามีเส้นทางที่นั่น เฉือน API, เฉือนพัฒนาใหม่ 205 00:09:42,920 --> 00:09:44,990 เฉือนเบาเฉือนหนึ่งเฉือนรัฐ 206 00:09:44,990 --> 00:09:49,060 >> ที่เห็นได้ชัดเพียง เส้นทางที่ บริษัท ฟิลิปส์ 207 00:09:49,060 --> 00:09:51,640 ตัดสินใจที่คุณต้องตี ที่มีการร้องขอ HTTP 208 00:09:51,640 --> 00:09:55,010 ถ้าคุณต้องการที่จะเปลี่ยนสถานะ หลอดไฟใช้ HTTP 1.1 209 00:09:55,010 --> 00:09:56,380 จากนั้นสังเกตเห็นบรรทัดว่าง 210 00:09:56,380 --> 00:10:00,170 และแล้วในที่สุดสิ่งที่ดูเหมือนว่า ชนิดของอาร์เรย์ของการจัดเรียงบาง, 211 00:10:00,170 --> 00:10:04,730 นี้อีกครั้งเป็นไปได้เรียกว่า JavaScript Object สัญลักษณ์หรือเจสัน 212 00:10:04,730 --> 00:10:08,000 และสิ่งที่คุณเห็นว่านี่คือ มีสามคู่ค่าที่สำคัญ 213 00:10:08,000 --> 00:10:09,115 >> หนึ่งที่สำคัญคือการเรียกร้องให้ 214 00:10:09,115 --> 00:10:10,990 และค่าของมันเห็นได้ชัด เป็นไปได้จริง 215 00:10:10,990 --> 00:10:13,612 ความสว่างเท่ากับ 128 ซึ่ง เป็นชนิดของ int บาง 216 00:10:13,612 --> 00:10:15,820 และแล้วเวลาการเปลี่ยนแปลงเป็น ศูนย์ซึ่งเป็นที่เห็นได้ชัด 217 00:10:15,820 --> 00:10:17,970 นานแค่ไหนก็จะ ใช้เวลาในการเปิดสิ่งนี้ 218 00:10:17,970 --> 00:10:19,890 >> ดังนั้นตอนนี้หลอดไฟนี้จะปิด 219 00:10:19,890 --> 00:10:22,880 แต่ถ้าผมทำตรงเจ้านี่ให้ ฉันไปที่แผ่นโกงเล็ก ๆ น้อย ๆ 220 00:10:22,880 --> 00:10:25,200 ว่าแดนจัดตั้งขึ้นใน advance-- และฉันจะ 221 00:10:25,200 --> 00:10:27,920 ไปข้างหน้าและคัดลอก คำสั่งต่อไป 222 00:10:27,920 --> 00:10:30,200 ขดเป็นบางส่วนของคุณ อาจจะมีการรวบรวมใน CS50 223 00:10:30,200 --> 00:10:35,080 พูดคุยเป็นสาธารณูปโภคเช่น Telnet ดังกล่าว ที่คุณสามารถจำลองการร้องขอ HTTP, 224 00:10:35,080 --> 00:10:36,360 โดยเฉพาะทำให้ 225 00:10:36,360 --> 00:10:39,710 ฉันสามารถส่งข้อมูลนี้ โดยเฉพาะสิ่งที่เราเพียงแค่ 226 00:10:39,710 --> 00:10:43,430 เห็นช่วงเวลาที่ผ่านมาโดยเฉพาะ ไปยัง URL นี้ไปที่นี่ 227 00:10:43,430 --> 00:10:46,310 แล้ว Curl จะไปจัดการ ทั้งหมดของส่วนหัวที่จำเป็น 228 00:10:46,310 --> 00:10:47,600 และมีการแยกของ 229 00:10:47,600 --> 00:10:54,700 >> ดังนั้นทั้งหมดที่ฉันต้องทำคือการคัดลอกนี้ใน หน้าต่าง terminal แล้วกด Enter 230 00:10:54,700 --> 00:10:56,000 และหลอดไฟไปที่ 231 00:10:56,000 --> 00:10:59,060 และนี่คือทั้งหมดจะผ่าน คอมพิวเตอร์ของฉันแบบไร้สาย 232 00:10:59,060 --> 00:11:01,960 อย่างใดลงไปที่สะพานซึ่ง จากนั้นมีการพูดคุยกับหลอดไฟนี้ 233 00:11:01,960 --> 00:11:02,960 ฉันจะทำอย่างอื่น 234 00:11:02,960 --> 00:11:07,050 ฉันจะทำให้สิ่งนี้ ไปสีแดงเช่น 235 00:11:07,050 --> 00:11:11,040 ฉันสามารถทำเช่น สิ่งที่ไปสีเขียวนี้ 236 00:11:11,040 --> 00:11:12,220 ฉันจะทำให้มันไปสีฟ้า 237 00:11:12,220 --> 00:11:14,760 >> และแจ้งให้ทราบในแต่ละเหล่านี้ กรณีทั้งหมดที่ฉันเปลี่ยน 238 00:11:14,760 --> 00:11:18,540 เป็นค่าสีที่เรียกว่าการ จริงให้มันบางสี 239 00:11:18,540 --> 00:11:20,320 เพื่อให้ฉันวางอันนี้เป็นอย่างดี 240 00:11:20,320 --> 00:11:21,000 ตอนนี้มันเป็นสีฟ้า 241 00:11:21,000 --> 00:11:24,672 >> และคุณสามารถทำแม้แต่นักเล่น สิ่ง where-- ขอไปเป็นสีเขียว 242 00:11:24,672 --> 00:11:26,630 และฉันจะทำเช่นนี้ของ แน่นอนด้วยรหัสของตัวเอง 243 00:11:26,630 --> 00:11:30,670 แต่แม้ API ตัวเอง สนับสนุนการดำเนินงานขี้ขลาด 244 00:11:30,670 --> 00:11:35,510 เช่นนี้ซึ่งขณะนี้จะรำคาญ เราต่อไปอีก 30 วินาที 245 00:11:35,510 --> 00:11:39,170 >> เพื่อให้เป็นหนึ่งในรสชาติของสิ่งที่คุณอาจ ทำอย่างไรกับ API หนึ่งนี้ที่เกี่ยวข้องกับ 246 00:11:39,170 --> 00:11:40,010 หลอดไฟ 247 00:11:40,010 --> 00:11:42,510 โปรดทราบว่า CS50 มีคู่ คู่ของ Google แก้วหากคุณต้องการ 248 00:11:42,510 --> 00:11:45,380 ชอบที่จะแก้ไขปัญหาสิ่งที่ตาม เส้นเหล่านั้น Arduino Unos ซึ่ง 249 00:11:45,380 --> 00:11:48,670 เป็นคอมพิวเตอร์เล็ก ๆ น้อย ๆ เล็ก ๆ เป็นหลักในแผงวงจรเล็ก ๆ น้อย ๆ 250 00:11:48,670 --> 00:11:50,470 ที่คุณสามารถเชื่อมต่อ สายไฟและสิ่งอื่น ๆ 251 00:11:50,470 --> 00:11:52,732 และการควบคุมจริง สภาพแวดล้อมของโลกที่แท้จริง 252 00:11:52,732 --> 00:11:54,940 แล้วมีคู่ ของเล่นใหม่ที่เรามี 253 00:11:54,940 --> 00:11:59,294 หนึ่งนี้อย่างแท้จริงเพิ่งมาถึง วันอื่น ๆ ทางไปรษณีย์ Myo สายรัดแขน 254 00:11:59,294 --> 00:12:01,710 และฉันคิดว่าเป็นวิธีที่จะ ได้รับคุณตื่นเต้นเกี่ยวกับโครงการ 255 00:12:01,710 --> 00:12:03,720 ที่คุณอาจใช้กับ ฮาร์ดแวร์นี้จะ 256 00:12:03,720 --> 00:12:08,900 จะมีการเล่นคลิปสั้น ๆ นี้ ที่พวกเขาใช้ในการแซวคน 257 00:12:08,900 --> 00:12:10,500 ว่าตอนนี้เราอยู่ในอนาคต 258 00:12:10,500 --> 00:12:13,494 259 00:12:13,494 --> 00:12:15,490 >> [เล่นเพลง] 260 00:12:15,490 --> 00:13:33,410 261 00:13:33,410 --> 00:13:37,109 >> DAVID ลัน: ดังนั้นในเวลาเพียงไม่กี่สัปดาห์คุณ ก็สามารถจะเย็นที่เป็นธรรม CS50 ว่า 262 00:13:37,109 --> 00:13:39,150 อุปกรณ์อื่นที่เรา มีพวงของการที่เราเป็น 263 00:13:39,150 --> 00:13:42,090 ความสุขที่จะกู้เงินจากโครงการ เรียกว่าการควบคุมการเคลื่อนไหว 264 00:13:42,090 --> 00:13:45,030 นี่คืออุปกรณ์ USB เล็ก ๆ น้อย ๆ คุณเชื่อมต่อกับคอมพิวเตอร์ที่ 265 00:13:45,030 --> 00:13:47,520 ช่วยให้คุณสามารถโต้ตอบกับ แล็ปท็อปของคุณ, Mac หรือ PC, 266 00:13:47,520 --> 00:13:51,570 ราวกับว่าคุณมีเช่น Xbox Kinect และจริงทำให้การเคลื่อนไหวร่างกายมาก 267 00:13:51,570 --> 00:13:54,509 เหมือนที่เราเห็นในนี้ วิสัยทัศน์ของอนาคต 268 00:13:54,509 --> 00:13:56,505 >> [เล่นเพลง] 269 00:13:56,505 --> 00:15:03,380 270 00:15:03,380 --> 00:15:06,260 >> DAVID ลัน: ดังนั้นแม้ว่าคุณจะมี คิดไม่ออกว่าสิ่งที่ต้องการที่ 271 00:15:06,260 --> 00:15:10,050 อาจจะคิดค้นหรือทำงาน ในระดับฮาร์ดแวร์ไม่ว่า 272 00:15:10,050 --> 00:15:13,520 แม้หลังจากที่เพียงไม่กี่เดือนของ CS50, และความเข้าใจในการเขียนโปรแกรม 273 00:15:13,520 --> 00:15:19,460 โดยทั่วไปและการเขียนโปรแกรมเว็บมากขึ้น เมื่อเร็ว ๆ นี้และจากนั้นยัง APIs และ HTTP, 274 00:15:19,460 --> 00:15:21,830 คุณจะสามารถเข้าถึงได้ผ่านทาง API สำหรับซอฟแวร์ถ้าคุณ 275 00:15:21,830 --> 00:15:24,680 ไม่ต้องการที่จะยืมหนึ่งในจำนวนนี้ อุปกรณ์จริงพูดคุยกับมัน 276 00:15:24,680 --> 00:15:27,180 และไม่ต้องกังวลเกี่ยวกับ การใช้งานพื้นฐาน 277 00:15:27,180 --> 00:15:30,220 รายละเอียดที่สมบูรณ์ สอดคล้องกับความคิดของชั้นนี้ 278 00:15:30,220 --> 00:15:33,610 นามธรรมที่เราได้ เห็นตลอดภาคการศึกษา 279 00:15:33,610 --> 00:15:37,990 >> ดังนั้นยังสัปดาห์ที่ผ่านมา เห็นชิ้นคู่ของข่าว 280 00:15:37,990 --> 00:15:40,640 ไปครั้งแรกไปสัมมนาถ้าคุณ ต้องการที่จะเรียนรู้บางสิ่งบางอย่าง 281 00:15:40,640 --> 00:15:42,160 ขึ้นอยู่กับจำนวนของหัวข้อใด ๆ 282 00:15:42,160 --> 00:15:43,340 ดู URL ที่มี 283 00:15:43,340 --> 00:15:45,890 และหนึ่งนี้ถูกส่งไป ฉันโดยช้างที่คุณรู้ว่า 284 00:15:45,890 --> 00:15:47,850 ผู้ที่พิมพ์กองทัพของเราของช้าง 285 00:15:47,850 --> 00:15:49,910 และมันก็เป็นหัวข้อดังต่อไปนี้ 286 00:15:49,910 --> 00:15:51,280 ฉันกลัวทีวีใหม่ของฉัน 287 00:15:51,280 --> 00:15:54,301 ทำไมฉันกลัวที่จะเปิดการทำงานนี้ สิ่งที่คุณต้องการและจะเกินไป 288 00:15:54,301 --> 00:15:56,050 ดังนั้นเราตอนนี้ ชี้ไปในภาคการศึกษา 289 00:15:56,050 --> 00:15:58,860 เกินไปที่แม้ว่าคุณจะมี น้อยที่สุดของความเข้าใจ 290 00:15:58,860 --> 00:16:02,620 ของวิธีเว็บทำงานและ HTTP, และการรักษาความปลอดภัยสิ่งเช่นนี้ 291 00:16:02,620 --> 00:16:03,980 ควรเริ่มต้นที่จะจับสายตาของคุณ 292 00:16:03,980 --> 00:16:07,450 แต่ยังคุณจะเข้าใจ ไม่ว่าสิ่งเหล่านี้หรือไม่ 293 00:16:07,450 --> 00:16:08,430 ภัยคุกคามที่เกิดขึ้นจริง 294 00:16:08,430 --> 00:16:10,940 >> ดังนั้นฉันเอาตัดตอนไม่กี่ จากบทความนี้ที่นี่ 295 00:16:10,940 --> 00:16:12,540 และเรื่องดังต่อไปนี้ 296 00:16:12,540 --> 00:16:14,300 ฉันตอนนี้เจ้าของ ทีวีสมาร์ทใหม่ซึ่ง 297 00:16:14,300 --> 00:16:18,470 สัญญาส่งมอบสตรีมมิ่ง เนื้อหามัลติมีเดีย, เกมส์, แอพพลิเค, 298 00:16:18,470 --> 00:16:21,450 สื่อสังคมและอินเทอร์เน็ต เรียกดูโอ้และทีวีเกินไป 299 00:16:21,450 --> 00:16:24,410 ปัญหาเดียวก็คือฉันตอนนี้ กลัวที่จะใช้มัน, ผู้เขียนกล่าวว่า 300 00:16:24,410 --> 00:16:29,592 คุณจะเหมือนกันถ้าคุณอ่านผ่านทาง นโยบายความเป็นส่วนตัว 46 หน้าสำหรับโทรทัศน์ของคุณ 301 00:16:29,592 --> 00:16:31,800 ปริมาณของข้อมูลนี้ เก็บรวบรวมสิ่งที่จะส่าย 302 00:16:31,800 --> 00:16:35,710 มันล็อกที่ไหนเมื่อใดอย่างไรและ สำหรับวิธีการระยะเวลาที่คุณใช้ TV 303 00:16:35,710 --> 00:16:38,190 มันทำให้การติดตามคุกกี้ ที่เราได้พูดคุย 304 00:16:38,190 --> 00:16:40,560 และสัญญาณการออกแบบ ในการตรวจสอบเมื่อคุณมี 305 00:16:40,560 --> 00:16:43,185 โดยเฉพาะอย่างยิ่งเนื้อหาดูหรือ ข้อความอีเมลโดยเฉพาะอย่างยิ่ง 306 00:16:43,185 --> 00:16:45,230 ถ้าคุณต้องการที่จะตรวจสอบอีเมลบนทีวีของคุณ 307 00:16:45,230 --> 00:16:48,430 มันบันทึกปพลิเคชันที่คุณ ใช้เว็บไซต์ที่คุณเยี่ยมชม 308 00:16:48,430 --> 00:16:52,280 และวิธีการที่คุณโต้ตอบกับเนื้อหา ทำทุกที่ผ่านทางสมาร์ททีวีของคุณ 309 00:16:52,280 --> 00:16:55,470 นอกจากนี้ยัง, yet-- ปล่อยเอ็มวี ที่ addition-- ของฉัน 310 00:16:55,470 --> 00:16:58,140 ได้ในตัวกล้อง ด้วยการจดจำใบหน้า 311 00:16:58,140 --> 00:17:01,010 >> มีวัตถุประสงค์เพื่อให้ การควบคุมด้วยท่าทางโทรทัศน์ 312 00:17:01,010 --> 00:17:05,490 และช่วยให้คุณสามารถเข้าสู่ระบบ บัญชีส่วนบุคคลโดยใช้ใบหน้าของคุณ 313 00:17:05,490 --> 00:17:08,940 กลับหัวกลับหาง, ภาพที่มี บันทึกไว้ในทีวีแทนการอัปโหลด 314 00:17:08,940 --> 00:17:09,940 ไปยังเซิร์ฟเวอร์ของ บริษัท 315 00:17:09,940 --> 00:17:12,520 ใน downside, อินเทอร์เน็ต การเชื่อมต่อที่ทำให้ทีวีทั้ง 316 00:17:12,520 --> 00:17:14,811 ช่องโหว่ให้แฮกเกอร์ที่ ได้แสดงให้เห็นความสามารถในการ 317 00:17:14,811 --> 00:17:16,700 ที่จะใช้การควบคุมที่สมบูรณ์ของเครื่อง 318 00:17:16,700 --> 00:17:20,880 >> หนักใจมากขึ้นเช่นหากที่ไม่ สมาร์ทพอเป็นไมโครโฟน 319 00:17:20,880 --> 00:17:23,599 ทีวีแห่งเสียง คุณสมบัติการจดจำ 320 00:17:23,599 --> 00:17:26,859 ที่ช่วยให้ผู้ชมที่จะควบคุม หน้าจอที่มีคำสั่งเสียง 321 00:17:26,859 --> 00:17:30,290 แต่บริการที่มาพร้อมกับ คำเตือนเป็นลางไม่ดี 322 00:17:30,290 --> 00:17:33,030 โปรดทราบว่าถ้า คำพูดของคุณรวมถึง 323 00:17:33,030 --> 00:17:36,210 ส่วนบุคคลหรืออื่น ๆ ที่มีความสำคัญ ข้อมูลว่าข้อมูล 324 00:17:36,210 --> 00:17:40,310 จะอยู่ในหมู่ข้อมูลที่ถูกจับ และส่งไปยังบุคคลที่สาม 325 00:17:40,310 --> 00:17:40,870 ได้ที่? 326 00:17:40,870 --> 00:17:45,860 อย่าพูดว่าส่วนบุคคลหรือไว สิ่งที่อยู่หน้าทีวีของคุณ 327 00:17:45,860 --> 00:17:47,280 >> ดังนั้นนี้เป็นจริงจริง 328 00:17:47,280 --> 00:17:50,530 และมันยากที่จะไม่ดูว่าคุณ ไปที่ Best Buy หรือเช่นสำหรับทีวี 329 00:17:50,530 --> 00:17:51,030 วันนี้ 330 00:17:51,030 --> 00:17:52,540 พวกเขากำลังทั้งหมดมาร์ทในทางใดทางหนึ่ง 331 00:17:52,540 --> 00:17:54,740 และพวกเขาจะได้รับ อย่างชาญฉลาดและปล่อยเอ็มวี 332 00:17:54,740 --> 00:17:57,490 และพวกเขากำลังเพียงแค่การเก็บรวบรวมข้อมูล ในรูปแบบที่เราได้พูดคุยเกี่ยวกับ 333 00:17:57,490 --> 00:18:01,840 แล้วอัปโหลดผ่านทาง HTTP หรือ บางโปรโตคอลอื่น ๆ ไปยังเซิร์ฟเวอร์บาง 334 00:18:01,840 --> 00:18:05,720 >> ดังนั้นนี่เป็นบทความที่สนุก ในเว็บไซต์ออนไลน์นี้ 335 00:18:05,720 --> 00:18:08,940 ที่นี่ซึ่งพูดคุยเกี่ยวกับ โดยเฉพาะอย่างยิ่งข้อผิดพลาดหรือรหัสผิด 336 00:18:08,940 --> 00:18:11,340 ที่จริงเราสามารถผูก ในการอภิปรายเมื่อสัปดาห์ที่แล้ว 337 00:18:11,340 --> 00:18:15,730 ดังนั้นพาดหัวนี้เป็น ต่อไปนี้เรื่องที่จะไปที่นี่ 338 00:18:15,730 --> 00:18:18,720 จอช Breckman ทำงาน บริษัท ที่เป็นเจ้าของที่ดินในสัญญา 339 00:18:18,720 --> 00:18:22,390 ในการพัฒนาการจัดการเนื้อหา ระบบหรือ CMS ที่พวกเขากำลังเรียกว่า 340 00:18:22,390 --> 00:18:24,380 สำหรับเว็บไซต์ของรัฐบาลที่ค่อนข้างใหญ่ 341 00:18:24,380 --> 00:18:27,300 มากของโครงการที่เกี่ยวข้อง การพัฒนาระบบการจัดการเนื้อหา 342 00:18:27,300 --> 00:18:29,840 เพื่อให้พนักงานที่จะเป็น สามารถที่จะสร้างและรักษา 343 00:18:29,840 --> 00:18:31,877 เคยเปลี่ยน เนื้อหาสำหรับเว็บไซต์ของพวกเขา 344 00:18:31,877 --> 00:18:34,210 สิ่งที่ไปสวยดีสำหรับ ไม่กี่วันหลังจากนั้นจะมีชีวิตอยู่ 345 00:18:34,210 --> 00:18:37,020 แต่ในวันที่หก, สิ่งที่ไม่ได้ไปให้ดี 346 00:18:37,020 --> 00:18:39,500 เนื้อหาทั้งหมดที่เกี่ยวกับ เว็บไซต์ก็หายไปอย่างสมบูรณ์ 347 00:18:39,500 --> 00:18:42,950 และทุกหน้านำไปสู่​​การเริ่มต้น กรุณาใส่หน้าเว็บเนื้อหา 348 00:18:42,950 --> 00:18:43,810 ขออภัย 349 00:18:43,810 --> 00:18:46,080 จอชได้รับการเรียกตัวไป ตรวจสอบและสังเกตเห็น 350 00:18:46,080 --> 00:18:49,390 ว่าหนึ่งลำบากโดยเฉพาะอย่างยิ่ง ที่อยู่ IP ภายนอกได้ 351 00:18:49,390 --> 00:18:53,380 หายไปและถูกลบออกทั้งหมด เนื้อหาในระบบ 352 00:18:53,380 --> 00:18:56,290 >> ที่อยู่ IP ไม่ได้เป็น บางงอของแฮ็กเกอร์ต่างประเทศ 353 00:18:56,290 --> 00:18:58,340 ทำลายประโยชน์ ข้อมูลรัฐบาล 354 00:18:58,340 --> 00:19:05,190 มีมติ googlebot.com, การรวบรวมข้อมูลเว็บของตัวเองมากไปเดอร์ของ Google 355 00:19:05,190 --> 00:19:06,010 ขออภัย 356 00:19:06,010 --> 00:19:09,150 หลังจากที่บิตของการวิจัยและ scrambling รอบ ๆ เพื่อหาสำรอง noncorrupt, 357 00:19:09,150 --> 00:19:10,180 จอชพบปัญหา 358 00:19:10,180 --> 00:19:12,700 >> ผู้ใช้ที่ได้คัดลอกและ วางเนื้อหาบางส่วนจากที่หนึ่ง 359 00:19:12,700 --> 00:19:15,670 หน้าไปยังอีกรวมทั้ง แก้ไขเชื่อมโยงหลายมิติ 360 00:19:15,670 --> 00:19:17,577 เพื่อแก้ไขเนื้อหาบนหน้าเว็บ 361 00:19:17,577 --> 00:19:20,160 โดยปกตินี้จะไม่เป็น ปัญหาตั้งแต่ผู้ใช้จะออกไปข้างนอก 362 00:19:20,160 --> 00:19:24,320 จำเป็นต้องใส่ชื่อและรหัสผ่าน แต่ระบบการตรวจสอบ CMS, 363 00:19:24,320 --> 00:19:27,520 ระบบเข้าสู่ระบบ ไม่ได้คำนึงถึง 364 00:19:27,520 --> 00:19:30,980 แฮ็คที่มีความซับซ้อน เทคนิคของ Google แมงมุม 365 00:19:30,980 --> 00:19:31,700 ขออภัย 366 00:19:31,700 --> 00:19:33,610 >> ในฐานะที่เป็นมันจะเปิดออกของ Google แมงมุมไม่ได้ใช้ 367 00:19:33,610 --> 00:19:36,950 คุกกี้ซึ่งหมายความว่ามันสามารถ สามารถหลีกเลี่ยงการตรวจสอบ 368 00:19:36,950 --> 00:19:39,840 ถูกบันทึกไว้บนชุดคุกกี้เป็นเท็จ 369 00:19:39,840 --> 00:19:42,620 นอกจากนี้ยังไม่ได้ให้ความสนใจกับ JavaScript ซึ่งตามปกติ 370 00:19:42,620 --> 00:19:45,170 และแจ้งให้เปลี่ยนเส้นทางผู้ใช้ ที่ไม่ได้เข้าสู่ระบบ 371 00:19:45,170 --> 00:19:48,610 แต่มันจะทำตามทุก เชื่อมโยงหลายมิติในหน้าพบทุก 372 00:19:48,610 --> 00:19:51,700 รวมทั้งผู้ที่มี ลบหน้าในชื่อเรื่อง 373 00:19:51,700 --> 00:19:52,650 ขออภัย 374 00:19:52,650 --> 00:19:56,070 >> ดังนั้นสิ่งนี้หมายความว่าใน เทคนิค แต่สามารถเข้าถึงได้อย่างเป็นธรรมคำ? 375 00:19:56,070 --> 00:19:58,340 มันก็หมายความว่า ตลอดทั้งเว็บไซต์ของพวกเขา 376 00:19:58,340 --> 00:20:02,287 พวกเขามี URL ที่ไม่ต่างจากคนนี้ว่า คุณอาจเห็นในปัญหาตั้งเจ็ด 377 00:20:02,287 --> 00:20:04,620 การเรียกคืนในปัญหาตั้งเจ็ด หรือรู้ในปัญหาตั้งเจ็ด 378 00:20:04,620 --> 00:20:06,411 ว่าคุณกำลังท้าทาย เหนือสิ่งอื่นใด 379 00:20:06,411 --> 00:20:08,570 ที่จะขายหุ้นในนามของผู้ใช้ 380 00:20:08,570 --> 00:20:14,010 แต่การดำเนินการลักษณะการทำงานโดยวิธีการที่ การได้รับผ่านทางเชื่อมโยงหลายมิติในผู้ใช้ของคุณ 381 00:20:14,010 --> 00:20:16,880 อินเตอร์เฟซที่อาจจะ ไม่ใช่ความคิดที่ฉลาด 382 00:20:16,880 --> 00:20:20,300 เพราะถ้าเว็บไซต์ของคุณเป็นอย่างใด สามารถเข้าถึงได้ทั้งโดยมนุษย์ 383 00:20:20,300 --> 00:20:23,577 ผู้ที่คลิกไปรอบ ๆ หรือซื้อ ธ ปทเช่น Google หรือแมงมุม 384 00:20:23,577 --> 00:20:26,160 ขณะที่พวกเขากำลังเรียกว่าเป็นเพียง ในการรวบรวมข้อมูลเว็บที่พยายามดัชนี 385 00:20:26,160 --> 00:20:29,060 เว็บเป็นเครื่องมือค้นหา, ที่พวกเขาได้อย่างง่ายดายมาก 386 00:20:29,060 --> 00:20:31,340 ตีผ่านได้รับชนิดของ URL นี้ 387 00:20:31,340 --> 00:20:33,770 และนั่นคือหน้าที่ เทียบเท่ากับในกรณีนี้ 388 00:20:33,770 --> 00:20:37,000 การขายหุ้นของ Google 389 00:20:37,000 --> 00:20:40,030 >> ตอนนี้ตรงไปตรงมาก็สมบูรณ์ โง่ที่ CMS 390 00:20:40,030 --> 00:20:43,240 ใช้ JavaScript และคุกกี้ ที่จะใช้ระบบการเข้าสู่ระบบของ 391 00:20:43,240 --> 00:20:47,100 และไม่ได้ทำฝั่งเซิร์ฟเวอร์ที่เป็น พวกคุณทำและจะอยู่ใน PSet 7-- 392 00:20:47,100 --> 00:20:49,940 มี login.php file-- เสมอเสมอ 393 00:20:49,940 --> 00:20:52,789 เสมอการรักษาความปลอดภัยที่ควรจะเป็น ทำในฝั่งเซิร์ฟเวอร์ 394 00:20:52,789 --> 00:20:56,080 ไม่ได้อยู่บนฝั่งไคลเอ็นต์เพราะเช่นนี้ บทความแนะนำและคุณอาจจะด้วยตัวคุณเอง 395 00:20:56,080 --> 00:20:59,600 เห็นในบางจุดมันเป็น เล็ก ๆ น้อย ๆ สำหรับผู้ใช้ดีหรือไม่ดี 396 00:20:59,600 --> 00:21:02,860 เพียงแค่ปิด JavaScript ไม่ต้องพูดถึงคุกกี้ 397 00:21:02,860 --> 00:21:06,020 เพื่อให้เป็น WTF ประจำวันของคุณ 398 00:21:06,020 --> 00:21:07,970 >> ยังมีอีกคนหนึ่งซึ่ง เป็นเพียงชนิดของน่ากลัว 399 00:21:07,970 --> 00:21:11,360 ดังนั้นฉันจะพูดถึงมันว่า เพียง แต่เป็นบทเรียนชีวิต 400 00:21:11,360 --> 00:21:14,850 เมื่อใดก็ตามที่คุณใช้โปรแกรมประยุกต์ เรียกว่าเหมือน Snapchat หรือชอบ 401 00:21:14,850 --> 00:21:19,380 ที่บอกว่าภาพเหล่านี้มีอายุการใช้งาน ห้าวินาทีสิบวินาทีหรือ whatnot 402 00:21:19,380 --> 00:21:21,680 พวกเขากำลังชั่วคราวนั่นคือ อย่างกรณีที่ไม่ 403 00:21:21,680 --> 00:21:25,670 เหมือนไม่มีทางที่เป็นดิจิตอล ที่จะใช้รูปแบบของวิดีโอบาง 404 00:21:25,670 --> 00:21:30,150 หรือภาพหรือข้อความดังกล่าวร่วมกัน ว่าผู้รับในส่วนอื่น ๆ 405 00:21:30,150 --> 00:21:31,660 ไม่สามารถบันทึกข้อมูลอย่างใด 406 00:21:31,660 --> 00:21:34,300 >> ในทางไร้เดียงสามากที่สุดคน อาจจะใช้โทรศัพท์ของพวกเขา 407 00:21:34,300 --> 00:21:36,850 และพวกเขามีหน้าต่าง 10 วินาที ในขณะที่กำลังมองหาที่บางสแนป 408 00:21:36,850 --> 00:21:39,410 เพียงแค่ใช้โทรศัพท์อื่น ๆ และถ่ายภาพมันเห็นได้ชัดว่า 409 00:21:39,410 --> 00:21:41,660 ดังนั้นคุณจึงสามารถรักษา บางสิ่งบางอย่างในระบบดิจิตอลด้วยวิธีการที่ 410 00:21:41,660 --> 00:21:44,620 บางส่วนของคุณรู้ว่าวิธีการใช้ ภาพหน้าจอมือถือของคุณ 411 00:21:44,620 --> 00:21:49,290 ในความเป็นจริงถ้าคุณไม่ทราบนี้ ตระหนักดีว่าอย่างน้อย Snapchat, 412 00:21:49,290 --> 00:21:51,040 และฉันคิดว่าคนอื่น ๆ การใช้งานวันนี้ 413 00:21:51,040 --> 00:21:53,720 อย่างน้อยบอกคุณว่า ผู้รับมีจริง 414 00:21:53,720 --> 00:21:55,310 ถ่ายภาพหน้าจอของภาพของคุณ 415 00:21:55,310 --> 00:22:00,870 >> แต่แย่ลงยังนี้เป็น snappening, เป็นคนบัญญัติศัพท์ว่าเมื่อเร็ว ๆ นี้ 416 00:22:00,870 --> 00:22:04,680 ที่บางส่วน 100,000 snaps ได้รับการปล่อยตัวออกมา 417 00:22:04,680 --> 00:22:09,310 ในสิ่งที่เรียกว่าไฟล์ฝนตกหนัก ในเว็บไซต์ต่างๆในท้ายที่สุด 418 00:22:09,310 --> 00:22:12,000 และสิ่งเหล่านี้มีทั้งกลุ่ม ข้อความส่วนตัวและการโพสต์ 419 00:22:12,000 --> 00:22:15,210 มันจะเปิดออกส่วนใหญ่ของพวกเขาใจดี จึงไม่ใช่สิ่งที่คุณอาจคาดหวัง 420 00:22:15,210 --> 00:22:17,580 แต่เป็นเพราะคนที่มี ใช้เว็บไซต์ของบุคคลที่สาม 421 00:22:17,580 --> 00:22:20,270 เข้าสู่ระบบด้วย Snapchat ของพวกเขา ชื่อผู้ใช้และรหัสผ่านแล้ว 422 00:22:20,270 --> 00:22:23,470 ประหยัดทั้งหมดของ snaps ของพวกเขา ในเว็บไซต์ของบุคคลที่สาม 423 00:22:23,470 --> 00:22:26,130 และมันก็เป็นบุคคลที่สามที่ เว็บไซต์ที่ถูกแฮ็ก 424 00:22:26,130 --> 00:22:30,710 ซึ่งคนที่มีความหมายเพียงแค่คิดวิธี จะได้รับทั้งหมด 100,000 บวกของภาพเหล่านั้น 425 00:22:30,710 --> 00:22:33,822 ลงในฮาร์ดไดรฟ์ของตัวเอง เพื่อใช้ร่วมกันในภายหลัง 426 00:22:33,822 --> 00:22:36,030 ตรงไปตรงมาที่นี่ด้วยก็จัดเรียง ของโง่ที่ Snapchat 427 00:22:36,030 --> 00:22:39,360 จะดำเนินการในลักษณะที่ บุคคลที่สามที่สามารถจัดเรียงของการสกัดกั้น 428 00:22:39,360 --> 00:22:43,310 ข้อมูลและว่ามันไม่ได้ผูกติดอยู่กับคุณ การประยุกต์ใช้ตัวเองทำงานอยู่บนโทรศัพท์ 429 00:22:43,310 --> 00:22:46,947 แต่ที่นี่ก็ตระหนักว่าสิ่งเหล่านี้ สิ่งที่ไม่ควรจะจับคุณด้วยความประหลาดใจ 430 00:22:46,947 --> 00:22:49,030 หรืออย่างน้อยก็ควรจะมี เป็นบทเรียนชีวิตที่นี่ 431 00:22:49,030 --> 00:22:52,220 หากคุณต้องการทางเทคนิค รายละเอียดให้ไปที่ URL ที่มี 432 00:22:52,220 --> 00:22:53,570 ที่อยู่ในสไลด์ของว​​ันนี้ 433 00:22:53,570 --> 00:23:00,960 สิทธิทั้งหมดคำถามใด ๆ เกี่ยวกับการ บทเรียนชีวิตของวันนี้ใน CS? 434 00:23:00,960 --> 00:23:02,710 เปิดที่ปิด 435 00:23:02,710 --> 00:23:04,970 อะไรที่ทั้งหมดหรือไม่ 436 00:23:04,970 --> 00:23:06,301 อะไรที่ทั้งหมดหรือไม่ 437 00:23:06,301 --> 00:23:09,050 ฉันมีคนจำนวนมากการตรวจสอบ Snapchat หรือสิ่งที่พวกเขาขณะนี้ 438 00:23:09,050 --> 00:23:11,690 >> ขวาทั้งหมดดังนั้น SQL, Structured Query Language 439 00:23:11,690 --> 00:23:12,509 ลองห่อนี้ 440 00:23:12,509 --> 00:23:14,300 และแม้ว่า เราเพียงแค่รอยขีดข่วน 441 00:23:14,300 --> 00:23:16,310 พื้นผิวของนี้ ภาษาเราจะให้คุณ 442 00:23:16,310 --> 00:23:18,930 พอของภาษา ในรูปแบบของ PSet 7 443 00:23:18,930 --> 00:23:22,140 เพื่อให้คุณสามารถแก้ไขปัญหาบางอย่าง การทำงานร่วมกันอย่างเป็นธรรม 444 00:23:22,140 --> 00:23:24,912 แต่ตระหนักถึงมีสอง สิ่งที่เราไม่ต้องการจากท่าน 445 00:23:24,912 --> 00:23:27,120 แต่พวกเขากำลังจะเป็น ที่สำคัญมาโครงการสุดท้าย 446 00:23:27,120 --> 00:23:30,760 และแน่นอนว่ามาทำให้เกิดขึ้นจริง เว็บไซต์ที่มีผู้ใช้จริง 447 00:23:30,760 --> 00:23:32,040 คือการตัดสินใจการออกแบบนี้ 448 00:23:32,040 --> 00:23:34,460 >> ปรากฎว่าใน ฐานข้อมูล MySQL, คุณ 449 00:23:34,460 --> 00:23:37,460 มีอัดแน่นของตัวเลือกเช่น ชนิดข้อมูลสำหรับคอลัมน์ของคุณ 450 00:23:37,460 --> 00:23:41,670 และสิ่งอื่น ๆ แต่คุณยังมี ทางเลือกของการจัดเก็บข้อมูลที่เรียกว่า 451 00:23:41,670 --> 00:23:44,570 เครื่องยนต์ทั้งหมดของข้อมูลของคุณ การจัดเรียงของระบบไฟล์ 452 00:23:44,570 --> 00:23:46,700 ถ้าคุณคุ้นเคย สำหรับข้อมูลทั้งหมดของคุณ 453 00:23:46,700 --> 00:23:48,830 รูปแบบมันเป็นอะไรที่สุดเก็บไว้ใน? 454 00:23:48,830 --> 00:23:53,300 และที่พบมากที่สุดอาจจะได้รับ MyISAM และ InnoDB ศัพท์เทคนิค 455 00:23:53,300 --> 00:23:56,060 ว่าเราจะดูแลเกี่ยวกับการเท่านั้น ในระดับหนึ่งที่มี 456 00:23:56,060 --> 00:23:58,500 และเป็นหนึ่งในไม่ได้ คุณลักษณะดังต่อไปนี้ 457 00:23:58,500 --> 00:24:00,390 >> สมมติว่าคุณมี ตู้เย็นหอพักเล็ก ๆ น้อย ๆ 458 00:24:00,390 --> 00:24:03,030 และคิดว่าคุณและ เพื่อนร่วมห้องที่แสดงตู้เย็นนี้ 459 00:24:03,030 --> 00:24:04,682 จริงๆรักนมพูด 460 00:24:04,682 --> 00:24:07,140 และนี่คือในความเป็นจริงว่า เรื่องที่มีคนบอกกับผมทางด้านหลัง 461 00:24:07,140 --> 00:24:10,890 ในวันที่ผมเอาแน่นอน เรียกว่า CS 161 ระบบปฏิบัติการซึ่ง 462 00:24:10,890 --> 00:24:12,580 ในทำนองเดียวกันการสำรวจหัวข้อนี้ 463 00:24:12,580 --> 00:24:13,760 ดังนั้นคุณมีตู้เย็นนี้ 464 00:24:13,760 --> 00:24:14,630 คุณออกจากนม 465 00:24:14,630 --> 00:24:17,000 และคุณมาที่บ้านเพื่อนร่วมห้องของคุณ ยังอยู่ในชั้นเรียนหรืออะไรก็ตาม 466 00:24:17,000 --> 00:24:19,208 และคุณตัดสินใจที่ฉันจะ ออกไปข้างนอกและได้รับนม 467 00:24:19,208 --> 00:24:22,630 ดังนั้นคุณปิดตู้เย็น, คุก ห้องพักหอพักไปฝั่งตรงข้ามถนน 468 00:24:22,630 --> 00:24:25,330 เพื่อ CVS หรือที่ใดก็ตามและได้รับ ในสายที่จะซื้อนม 469 00:24:25,330 --> 00:24:28,960 >> ในขณะที่เพื่อนร่วมห้องของคุณได้รับที่บ้าน จากชั้นเรียนได้รับในห้องพักหอพัก, 470 00:24:28,960 --> 00:24:31,802 เปิดตู้เย็นนอกจากนี้ยังตระหนักถึง ooph เราไม่ออกมาจากนม 471 00:24:31,802 --> 00:24:33,760 ดังนั้นเขาหรือเธอปิด ตู้เย็นแล้วจะเกิดอะไรขึ้น 472 00:24:33,760 --> 00:24:35,610 เพื่อไปที่อื่น ๆ CVS, ซึ่งเกิดขึ้นเป็น 473 00:24:35,610 --> 00:24:38,470 หนึ่งช่วงตึกห่างจาก CVS อื่น ๆ ในตารางและได้รับในสาย 474 00:24:38,470 --> 00:24:40,230 มีที่จะได้รับนม 475 00:24:40,230 --> 00:24:42,524 ตอนนี้แน่นอนเพียงไม่กี่นาที ภายหลังคุณทั้งสองได้รับกลับมา 476 00:24:42,524 --> 00:24:44,690 และที่เลวร้ายที่สุดของการเป็นไปได้ทั้งหมด ผลที่เกิดขึ้น 477 00:24:44,690 --> 00:24:45,792 ทั้งของคุณมีนม 478 00:24:45,792 --> 00:24:47,500 และคุณไม่ได้จริงๆ เช่นนมที่มาก 479 00:24:47,500 --> 00:24:49,625 ดังนั้นหนึ่งของพวกเขาเป็นเพียง จะเปรี้ยวในบางจุด 480 00:24:49,625 --> 00:24:55,941 ดังนั้นคุณจึงมีปริมาณที่มากเกินไป ของนมในตู้เย็นเพราะทำไม? 481 00:24:55,941 --> 00:24:57,072 >> [ไม่ได้ยิน] 482 00:24:57,072 --> 00:24:59,780 DAVID ลัน: ใช่คุณไม่ได้ อย่างใดในการติดต่อสื่อสารกับคนอื่น ๆ 483 00:24:59,780 --> 00:25:00,904 ที่คุณได้รับนม 484 00:25:00,904 --> 00:25:04,320 ดังนั้นในการที่ง่ายที่สุดของ วิธีการในโลกมนุษย์ 485 00:25:04,320 --> 00:25:08,390 วิธีการที่คุณอาจจะหลีกเลี่ยงโง่นี้ สถานการณ์ดังกล่าวเกิดขึ้น 486 00:25:08,390 --> 00:25:09,750 ว่าคุณจะจบลงด้วยหนึ่ง 487 00:25:09,750 --> 00:25:10,840 ข้อความที่พวกเขาใช่ดี 488 00:25:10,840 --> 00:25:12,877 แต่วิธีการอื่นใด 489 00:25:12,877 --> 00:25:13,460 โพสต์มันบันทึก 490 00:25:13,460 --> 00:25:14,626 DAVID ลัน: โพสต์มันบันทึก 491 00:25:14,626 --> 00:25:17,150 รูปแบบของการสื่อสารใด ๆ ที่บอกว่าเพื่อนร่วมห้องของคุณ 492 00:25:17,150 --> 00:25:18,670 อย่าเข้าไปในตู้เย็นสำหรับนม 493 00:25:18,670 --> 00:25:20,440 ฉันจะไปสต็อกของตัวเอง 494 00:25:20,440 --> 00:25:22,770 ดังนั้นคุณต้องอย่างใด เพื่อล็อคทรัพยากรนี้ 495 00:25:22,770 --> 00:25:27,180 ดังนั้นเราจึงสามารถทำให้เจ้านี่เราสามารถชนิดของ ทำลายเรื่องราวและกลายเป็นเรื่องราว CS 496 00:25:27,180 --> 00:25:30,360 โดยคิดเช่นนี้เป็นเพียงแค่ ตัวแปรที่เก็บค่าบางอย่าง 497 00:25:30,360 --> 00:25:32,570 และตอนนี้ คุณค่าจากน้ำนมเป็นศูนย์ 498 00:25:32,570 --> 00:25:35,410 ซึ่งคุณไม่ต้องการของคุณ เพื่อนร่วมห้องในการตรวจสอบตัวแปรที่ 499 00:25:35,410 --> 00:25:38,730 แล้วตัดสินใจเขาหรือตัวเอง ขึ้นอยู่กับสถานะของตัวแปรที่ 500 00:25:38,730 --> 00:25:42,430 ถ้าคุณอยู่ในขั้นตอนของการ เปลี่ยนสถานะของตัวแปรที่ 501 00:25:42,430 --> 00:25:46,140 >> ดังนั้นหนึ่งในสายของ SQL ที่เรา ให้คุณได้ใน 7 PSet ข้อกำหนด 502 00:25:46,140 --> 00:25:47,310 เป็นหนึ่งที่นี่ 503 00:25:47,310 --> 00:25:49,740 และเราจะไม่ใช้จ่ายมาก เวลาที่พูดคุยเกี่ยวกับเรื่องนี้ 504 00:25:49,740 --> 00:25:55,100 แต่มันจะเปิดออกถ้าคุณกำลังพยายาม ที่จะซื้อหุ้นบางส่วนในด้านการเงิน CS50 505 00:25:55,100 --> 00:25:58,000 ที่คุณมีอยู่แล้ว หุ้นของคุณบาง 506 00:25:58,000 --> 00:26:01,750 ต้องการที่จะสามารถที่จะทำจำนวน ในสิ่งที่ร่วมกันทันที 507 00:26:01,750 --> 00:26:04,360 คุณต้องการที่จะสามารถที่จะ ได้อย่างมีประสิทธิภาพในระดับสูง 508 00:26:04,360 --> 00:26:06,700 ตรวจสอบที่ถูกต้องทั้งหมดถ้าฉันต้องการ ที่จะซื้อหุ้นของฟรี, 509 00:26:06,700 --> 00:26:08,780 เราหุ้นเงิน พูดคุยเกี่ยวกับในสเป็ค, 510 00:26:08,780 --> 00:26:10,660 ผมต้องการที่จะตรวจสอบครั้งแรก จำนวนหุ้นที่ผมมี 511 00:26:10,660 --> 00:26:11,810 และคิดว่ามันเป็นห้า 512 00:26:11,810 --> 00:26:14,600 และคิดว่าฉันต้องการที่จะ ซื้อ 10 มากขึ้นฉันที่สุด 513 00:26:14,600 --> 00:26:17,069 ต้องการที่จะมี 15 หุ้นของหุ้น 514 00:26:17,069 --> 00:26:18,360 ดังนั้นผมจึงต้องถามคำถามที่สอง 515 00:26:18,360 --> 00:26:20,230 สิ่งที่รัฐของตัวแปร? 516 00:26:20,230 --> 00:26:21,470 สิ่งที่รัฐของแถว? 517 00:26:21,470 --> 00:26:22,970 ฉันไม่กี่หุ้นปัจจุบันมี? 518 00:26:22,970 --> 00:26:24,636 แล้วคุณต้องการที่จะไปข้างหน้าและปรับปรุงมัน 519 00:26:24,636 --> 00:26:27,720 เพื่อให้เป็นอะนาล็อกไป นมให้คุณตรวจสอบแถว 520 00:26:27,720 --> 00:26:30,730 แล้วคุณต้องการที่จะปรับปรุงมัน เพราะถ้าคุณต้องการที่จะซื้อ 10 หุ้น 521 00:26:30,730 --> 00:26:32,521 คุณไม่ต้องการที่จะเปลี่ยน แถวที่ 10 ถึงคุณ 522 00:26:32,521 --> 00:26:35,300 ต้องการที่จะเปลี่ยนเป็น 5 บวก 10 หรือแน่นอน 15 523 00:26:35,300 --> 00:26:40,030 >> บรรทัดของรหัสเพื่อให้แน่ใจว่า ทั้งสองความคิดแนวความคิด 524 00:26:40,030 --> 00:26:42,810 เกิดขึ้นด้วยกันหรือไม่ได้เลย 525 00:26:42,810 --> 00:26:46,920 ไม่มีใครรวมทั้งบางส่วนของผู้อื่น ผู้ที่เข้าสู่เว็บไซต์เดียวกัน 526 00:26:46,920 --> 00:26:49,900 อย่างใดสามารถขัดจังหวะ การตรวจสอบของแถว 527 00:26:49,900 --> 00:26:52,960 และการปรับปรุงแถว, เลือกและการปรับปรุงถ้าคุณจะ 528 00:26:52,960 --> 00:26:57,360 และไวยากรณ์ไม่สุดที่เห็นได้ชัด แต่หนึ่งบรรทัดยาวมันเป็น 529 00:26:57,360 --> 00:27:01,150 เพื่อให้แน่ใจว่าการดำเนินงานของทั้งสอง ตรวจสอบตัวแปรหรือตรวจสอบแถว 530 00:27:01,150 --> 00:27:04,660 และปรับปรุงแถวเกิดขึ้นอะตอม 531 00:27:04,660 --> 00:27:06,849 >> โอ้นี่เราไปอีกครั้ง 532 00:27:06,849 --> 00:27:07,890 ข้อความในโทรศัพท์ของฉัน 533 00:27:07,890 --> 00:27:09,954 ดังนั้นขอให้นี้ เล็ก ๆ น้อย ๆ ที่เป็นรูปธรรมมากขึ้น 534 00:27:09,954 --> 00:27:12,120 สมมติว่าคุณไม่ได้ การใช้ตู้เย็น 535 00:27:12,120 --> 00:27:16,400 และคุณไม่ได้ดำเนินการ PSet 7 แต่ธนาคารที่เกิดขึ้นจริง 536 00:27:16,400 --> 00:27:20,000 หรือตู้ ATM อัตโนมัติ Teller เครื่อง whereby คุณอย่างใด 537 00:27:20,000 --> 00:27:22,960 ต้องการที่จะสามารถที่จะช่วยให้ ผู้ใช้ในการโอนเงิน 538 00:27:22,960 --> 00:27:24,500 จากบัญชีหนึ่งไปยังอีก 539 00:27:24,500 --> 00:27:25,100 ตกลงแขวนบน 540 00:27:25,100 --> 00:27:26,683 ฉันจะปิดตอนนี้ขอขอบคุณ 541 00:27:26,683 --> 00:27:30,450 ดังนั้นเราจึงต้องการที่จะย้ายเงิน จากบัญชีหนึ่ง 542 00:27:30,450 --> 00:27:33,600 เข้าบัญชีที่แตกต่างกัน จำนวนเฉพาะ $ 100 543 00:27:33,600 --> 00:27:37,690 ดังนั้นนี่คือชนิดของพล ตัวอย่างเช่น whereby คุณ, ATM, 544 00:27:37,690 --> 00:27:41,060 อาจต้องการที่จะดำเนินการสอง SQL คำสั่งลบจากบัญชีหนึ่ง, 545 00:27:41,060 --> 00:27:42,430 และเพิ่มบัญชีอื่น ๆ 546 00:27:42,430 --> 00:27:46,766 แต่คุณต้องการให้แน่ใจว่าสิ่งเหล่านี้ สองเส้นทั้งสองเกิดขึ้นหรือไม่ 547 00:27:46,766 --> 00:27:48,640 คุณไม่ต้องการอะไรบางอย่าง การขัดจังหวะ 548 00:27:48,640 --> 00:27:51,440 คุณไม่ได้บางคนเลวสมาร์ท อย่างใดยืนอยู่ที่ธนาคารแห่งอเมริกา 549 00:27:51,440 --> 00:27:53,270 มีสองตู้เอทีเอ็มด้านหน้า ของเขาและอย่างใด 550 00:27:53,270 --> 00:27:55,270 การเรียงลำดับของการพิมพ์ใน คำสั่งในเวลาเดียวกัน, 551 00:27:55,270 --> 00:28:01,230 หวังว่าจะพยายามที่จะหักค่าใช้จ่าย $ 200 แทน ของ $ 100 และมีเพียง $ 100 เครดิต 552 00:28:01,230 --> 00:28:04,450 ในระยะสั้นที่คุณต้องการนี​​้ ประพฤติตรงตามที่คุณคาดหวัง 553 00:28:04,450 --> 00:28:06,540 >> และวิธีที่คุณทำ นี้ใน SQL ฐานข้อมูล 554 00:28:06,540 --> 00:28:09,350 คุณตัดมันในสิ่งที่ ที่เรียกว่าการทำธุรกรรม 555 00:28:09,350 --> 00:28:14,290 ตัวอักษรใน SQL คุณสามารถเรียก CS50 ของ ฟังก์ชั่นการค้นหาด้วยคำพูดเริ่มต้น unquote 556 00:28:14,290 --> 00:28:15,370 การซื้อขาย 557 00:28:15,370 --> 00:28:18,640 จากนั้นคุณสามารถดำเนินการจำนวนใด ๆ ของแบบสอบถาม SQL ต่อมา 558 00:28:18,640 --> 00:28:20,870 แต่ก็ไม่มีใครใช้ ผลกระทบในฐานข้อมูล 559 00:28:20,870 --> 00:28:25,880 จนกว่าคุณจะเรียกใช้แบบสอบถามอ้าง unquote กระทำถ้าอีกครั้งโดยใช้ PHP 560 00:28:25,880 --> 00:28:29,810 และด้วยวิธีนี้คุณสามารถมั่นใจได้ว่า แม้ว่าคุณจะมี 1,000 ผู้ใช้ทุกคน 561 00:28:29,810 --> 00:28:32,080 ตีฐานข้อมูลของคุณ ในเวลาเดียวกัน, SQL 562 00:28:32,080 --> 00:28:34,540 จะสัญญาว่าสิ่งเหล่านี้ สองคำสั่งจะเป็น 563 00:28:34,540 --> 00:28:36,740 ดำเนินการหนึ่งที่เหมาะสมหลังจากที่อื่น ๆ 564 00:28:36,740 --> 00:28:40,330 ดังนั้นคุณจะไม่สิ้นสุดกับส่วนเกินของ นมหรือจำนวนเงินที่ไม่ถูกต้องในที่สุด 565 00:28:40,330 --> 00:28:40,830 ของเงิน 566 00:28:40,830 --> 00:28:43,110 >> เพื่อให้ในใจ ไม่มากสำหรับ PSet 7 567 00:28:43,110 --> 00:28:45,250 แต่สำหรับโครงการสุดท้าย ถ้าคุณเป็นจริง 568 00:28:45,250 --> 00:28:49,690 พยายามที่จะย้ายข้อมูลไปรอบ ๆ ในตารางที่คุณอาจที่นี่ 569 00:28:49,690 --> 00:28:53,980 แต่บางทีอาจจะได้ง่ายและมากขึ้น ที่เห็นได้ชัดในการทำความเข้าใจกับตัวอย่าง 570 00:28:53,980 --> 00:28:54,860 เป็นหนึ่งที่นี่ 571 00:28:54,860 --> 00:28:57,760 และใครบางคนส่งเราเกี่ยวกับ นี้เพียงวันอื่น ๆ 572 00:28:57,760 --> 00:28:59,600 เมื่อเขาเห็นสิ่งที่คล้ายกันออนไลน์ 573 00:28:59,600 --> 00:29:03,480 >> ดังนั้นเพื่อความรู้ของฉันระบบพิน ไม่เสี่ยงต่อการโจมตีครั้งนี้ 574 00:29:03,480 --> 00:29:06,637 และผมมีความคิดว่าจะได้ใช้ ฐานข้อมูล SQL ใต้เครื่องดูดควัน 575 00:29:06,637 --> 00:29:08,470 แต่ขอใช้งานได้ ประโยชน์ของการสนทนา 576 00:29:08,470 --> 00:29:10,178 นี่คือหน้าจอที่ คนมีแนวโน้มที่ฮาร์วาร์ 577 00:29:10,178 --> 00:29:13,620 เพื่อดูว่าเมื่อเข้าสู่ระบบด้วยของพวกเขา ฮาร์วาร์หมายเลข ID และขาของพวกเขา 578 00:29:13,620 --> 00:29:19,020 และคิดว่าระบบพินได้ ดำเนินการใน PHP และ MySQL ด้วย 579 00:29:19,020 --> 00:29:22,000 ฐานข้อมูลรหัสที่ใครบางคน ปีที่อาจจะมีการเขียนที่ผ่านมา 580 00:29:22,000 --> 00:29:23,270 อาจจะมีลักษณะเช่นนี้ 581 00:29:23,270 --> 00:29:25,230 ครั้งแรกที่ประกาศ ชื่อผู้ใช้ที่เรียกว่าตัวแปร 582 00:29:25,230 --> 00:29:27,560 และเพิ่งได้รับจาก superglobal POST 583 00:29:27,560 --> 00:29:30,140 จากนั้นได้รับตัวแปรอื่น เรียกว่ารหัสผ่านและทำเช่นเดียวกัน 584 00:29:30,140 --> 00:29:33,080 แล้วก็ดำเนินการ คำนี้มานานแล้วที่นี่ 585 00:29:33,080 --> 00:29:36,690 เลือกดาวจากผู้ใช้ที่ ชื่อผู้ใช้เท่ากับดังกล่าวและเช่น 586 00:29:36,690 --> 00:29:38,510 และรหัสผ่านเท่ากับดังกล่าวและเช่น 587 00:29:38,510 --> 00:29:40,660 >> ขอให้สังเกตว่าหยิก วงเล็บที่ผมเคยใช้ที่นี่ 588 00:29:40,660 --> 00:29:42,880 เพียงหมายถึง PHP ไป ข้างหน้าและแทน 589 00:29:42,880 --> 00:29:45,400 ค่าของทั้งสอง ตัวแปรที่มีสิทธิ 590 00:29:45,400 --> 00:29:50,090 พวกเขาไม่จำเป็นอย่างเคร่งครัด แต่ พวกเขามีแนวโน้มที่จะหลีกเลี่ยงการผิดพลาดทางไวยากรณ์ที่ละเอียดอ่อน 591 00:29:50,090 --> 00:29:53,650 ดังนั้นนี้ดูสมบูรณ์ ที่ถูกต้องได้อย่างรวดเร็วก่อน 592 00:29:53,650 --> 00:29:54,240 และมันก็เป็น 593 00:29:54,240 --> 00:29:56,680 คุณสามารถใช้ ระบบพินด้วยวิธีนี้ 594 00:29:56,680 --> 00:30:00,460 >> แต่คิดว่าซุปเปอร์ นักศึกษาสมาร์ทและเป็นอันตราย 595 00:30:00,460 --> 00:30:03,020 ข้อมูลนี้เป็นขาของเขาหรือเธอ 596 00:30:03,020 --> 00:30:05,550 ดังนั้นผมจึงได้ออกกระสุน สัญญาณที่นี่ในจำลองขึ้น 597 00:30:05,550 --> 00:30:08,760 และฉันได้พบจริง สิ่งที่เขาหรือเธออาจจะพิมพ์ 598 00:30:08,760 --> 00:30:10,350 และมันก็แปลก ๆ 599 00:30:10,350 --> 00:30:13,850 แต่สิ่งที่กระโดดออกที่คุณที่อาจเกิดขึ้น น่าเป็นห่วงเกี่ยวกับการป้อนข้อมูลของผู้ใช้ 600 00:30:13,850 --> 00:30:16,450 แม้ว่าคุณจะมีความคิดว่า การโจมตีแบบ SQL injection หมายความว่า 601 00:30:16,450 --> 00:30:20,300 ทำไมนี้ดูคาวน้อย? 602 00:30:20,300 --> 00:30:21,050 มีอะไรที่? 603 00:30:21,050 --> 00:30:21,550 [ไม่ได้ยิน] 604 00:30:21,550 --> 00:30:24,260 DAVID ลัน: หรือ ที่น่าสงสัยเล็ก ๆ น้อย ๆ 605 00:30:24,260 --> 00:30:26,310 ในความเป็นจริงว่าเป็นคำจาก SQL 606 00:30:26,310 --> 00:30:28,105 ดังนั้นที่ไม่ได้เป็นลางดี 607 00:30:28,105 --> 00:30:29,980 ความจริงที่ว่ามี ทั้งหมดนี้ราคาเดียว 608 00:30:29,980 --> 00:30:32,646 ตรงนี้ในความเป็นจริงหนึ่งในที่ง่ายที่สุด วิธีที่จะทำลายฐานข้อมูลบางอย่าง 609 00:30:32,646 --> 00:30:35,880 โดยการพิมพ์ชื่อเช่นรีลลี่ ที่มีเครื่องหมายวรรคตอนในนั้น 610 00:30:35,880 --> 00:30:38,600 เพราะถ้ามนุษย์ผู้เขียน รหัสเบื้องหลัง 611 00:30:38,600 --> 00:30:41,570 ไม่ได้คำนึงถึงว่ามี อาจจะมีราคาเดียวในของผู้ใช้ 612 00:30:41,570 --> 00:30:45,060 การป้อนข้อมูลและเขาหรือเธอจะใช้ ราคาเดียวในรหัสของพวกเขา 613 00:30:45,060 --> 00:30:46,040 สิ่งที่ไม่ดีสามารถเกิดขึ้นได้ 614 00:30:46,040 --> 00:30:47,870 >> ในความเป็นจริงแย่ลงยังพิจารณาเรื่องนี้ 615 00:30:47,870 --> 00:30:50,600 ถ้าเรื่องนี้เป็นอีกครั้งรหัส ว่าคนที่ปีที่ฮาร์วาร์ 616 00:30:50,600 --> 00:30:53,100 ที่ผ่านมาเขียนขา ระบบการแจ้งให้ทราบว่ามีอะไร 617 00:30:53,100 --> 00:30:56,220 เกี่ยวกับการที่จะได้รับแทน ชื่อผู้ใช้และรหัสผ่าน 618 00:30:56,220 --> 00:30:59,780 ถ้าผู้ใช้อีกครั้ง skroob เป็นชื่อผู้ใช้ของพวกเขา 619 00:30:59,780 --> 00:31:03,960 แล้วหนึ่งสองสามสี่ห้า อ้างหรืออ้าง unquote หนึ่งเท่ากับ 620 00:31:03,960 --> 00:31:04,660 อ้างหนึ่ง 621 00:31:04,660 --> 00:31:07,220 และสังเกตเห็นสิ่งที่สำคัญ นี่คือผู้ใช้ไม่ได้ 622 00:31:07,220 --> 00:31:09,900 รหัสผ่านเริ่มต้นของพวกเขาหรือ ขาของพวกเขาโดยอ้างข้อความ 623 00:31:09,900 --> 00:31:12,610 และพวกเขายังไม่ได้มันจบลง โดยอ้างเพราะเขาหรือเธอ 624 00:31:12,610 --> 00:31:16,315 คือสมมติว่าถ้า โปรแกรมเมอร์ไม่คมชัดเช่นนั้น 625 00:31:16,315 --> 00:31:18,690 พวกเขากำลังจะมีผู้ที่ ราคาเดียวในรหัสของพวกเขา 626 00:31:18,690 --> 00:31:19,860 >> ดังนั้นนี่คือรหัส 627 00:31:19,860 --> 00:31:23,820 และทดแทนที่ ตอนนี้อาจจะเกิดขึ้นคือ 628 00:31:23,820 --> 00:31:26,350 และฉันได้ขีดเส้นใต้ว่า ผู้ใช้มีการพิมพ์ใน 629 00:31:26,350 --> 00:31:28,480 ดังนั้นก่อนที่หลังจาก 630 00:31:28,480 --> 00:31:33,330 และสังเกตเห็นสิ่งที่น่าเป็นห่วงอย่างอ่อนโยนขณะนี้ เกี่ยวกับครึ่งขวาของรหัส SQL นี้หรือไม่? 631 00:31:33,330 --> 00:31:36,300 มันเป็นเรื่องเล็ก ๆ น้อย ๆ ที่ซับซ้อนมากขึ้นเป็นที่ยอมรับ กว่าคำสั่งที่เราได้เห็น 632 00:31:36,300 --> 00:31:38,550 แต่ตอนนี้ไม่สามารถเป็นไปได้ เป็นสิ่งที่ดีถ้าคุณอยู่ 633 00:31:38,550 --> 00:31:42,240 บอกว่าเลือกดาวซึ่งคือการเลือก ทุกอย่างจากตารางของผู้ใช้ 634 00:31:42,240 --> 00:31:46,630 ชื่อผู้ใช้ที่เท่ากับ skroob และ รหัสผ่านเท่ากับหนึ่งสองสามสี่ 635 00:31:46,630 --> 00:31:49,610 ห้าหรือหนึ่งเท่ากับหนึ่ง 636 00:31:49,610 --> 00:31:53,860 อะไรคือความหมายตรรกะ จากการที่ข้อสันนิษฐานที่ผ่านมา? 637 00:31:53,860 --> 00:31:55,650 มันเป็นเพียงจริงเสมอ 638 00:31:55,650 --> 00:31:59,930 >> และเนื่องจากเราจะเดาได้จัดเรียงของ หรือคิดออกโดยการทดลองและข้อผิดพลาด 639 00:31:59,930 --> 00:32:02,760 ที่โปรแกรมเมอร์ที่ เขียนรหัสนี้ไม่ได้ 640 00:32:02,760 --> 00:32:07,250 คาดว่าจะเป็นคนที่มีมนุษย์หรือไม่ดี พิมพ์ในราคาเดียวเช่นกัน 641 00:32:07,250 --> 00:32:10,350 เราสามารถ syntactically เสร็จสมบูรณ์แบบสอบถาม SQL 642 00:32:10,350 --> 00:32:12,260 กับสิ่งที่ไร้สาระ แต่สิ่งที่ 643 00:32:12,260 --> 00:32:15,930 ไม่ถูกต้อง syntactically ที่มักประเมินความจริง 644 00:32:15,930 --> 00:32:19,130 ดังนั้นถ้ารหัสนี้จะถูกใช้ในการตอบ คำถามจริงหรือเท็จควร 645 00:32:19,130 --> 00:32:22,930 ผู้ใช้นี้ได้รับอนุญาตให้ผ่าน คำตอบอยู่เสมอเห็นได้ชัดไป 646 00:32:22,930 --> 00:32:26,930 ที่จะเป็นจริงเพราะเสมอไป เพื่อเลือกสิ่งที่จากฐานข้อมูล 647 00:32:26,930 --> 00:32:29,280 เพราะหนึ่งในหลักสูตรที่เสมอเท่ากับหนึ่ง 648 00:32:29,280 --> 00:32:30,360 >> ดังนั้นสิ่งที่แก้ปัญหาได้หรือไม่? 649 00:32:30,360 --> 00:32:33,290 ดีใน PSet 7 เราจริง หลีกเลี่ยงปัญหานี้ทั้งหมดเข้าด้วยกัน 650 00:32:33,290 --> 00:32:37,360 เราให้คุณฟังก์ชั่นการค้นหาและเรา ขอแนะนำให้คุณใช้เครื่องหมายคำถาม 651 00:32:37,360 --> 00:32:40,430 เป็นตัวยึดคล้าย ในจิตวิญญาณที่จะ printf ของ% s, 652 00:32:40,430 --> 00:32:43,710 แต่สิ่งที่สำคัญเกี่ยวกับเครื่องหมายคำถาม ที่นี่คือถ้าคุณอ่านจริงผ่าน 653 00:32:43,710 --> 00:32:46,950 functions.php ที่ของเรา ฟังก์ชั่นการค้นหาจะดำเนินการ 654 00:32:46,950 --> 00:32:52,780 เครื่องหมายคำถามเหล่านั้นจะหนี โดยสิ่งที่อาจเป็นอันตราย 655 00:32:52,780 --> 00:32:58,210 เช่นพูดเดียวที่เปิด เป็นคำพูดเดียวหนี 656 00:32:58,210 --> 00:33:00,590 >> ดังนั้นนี่คือสิ่งที่ จริงที่เกิดขึ้นถ้าคุณ 657 00:33:00,590 --> 00:33:04,850 ใช้ฟังก์ชันการค้นหา CS50 หรือตัวเลขใด ๆ ของห้องสมุดฟรีบุคคลที่สามที่ 658 00:33:04,850 --> 00:33:06,000 ทำเช่นเดียวกัน 659 00:33:06,000 --> 00:33:09,850 ไม่ว่าในกรณีนี้ในสีเขียว, หากผู้ใช้พิมพ์ลงในคำพูดเดียว 660 00:33:09,850 --> 00:33:12,070 เพราะแบบสอบถาม ฟังก์ชั่นที่เราเขียนเป็น 661 00:33:12,070 --> 00:33:15,120 จะเพิ่ม backslashes ก่อน อ้างใด ๆ ที่เป็นอันตรายเช่น 662 00:33:15,120 --> 00:33:17,360 ดังนั้นนี่คือไม่ได้ใน ความเป็นจริงจะเป็น Legit 663 00:33:17,360 --> 00:33:20,910 นี้เป็นเหมือนการพิมพ์ในบ้ามอง รหัสผ่านที่แน่นอนไม่ได้ไป 664 00:33:20,910 --> 00:33:23,490 จะเป็นรหัสผ่านที่เกิดขึ้นจริงของ skroob 665 00:33:23,490 --> 00:33:28,260 >> ดังนั้น Takeaway สำหรับ CS50 เป็นหนึ่ง, อย่างที่มักจะใช้บางสิ่งบางอย่าง 666 00:33:28,260 --> 00:33:30,860 เช่นฟังก์ชั่นการค้นหาของ CS50 หรือห้องสมุดพื้นฐาน 667 00:33:30,860 --> 00:33:32,560 ที่เกิดขึ้นจะเรียกว่า PDO 668 00:33:32,560 --> 00:33:35,880 แต่ไม่เคยไม่เคย ไม่เคยทำรหัสเช่นนี้ 669 00:33:35,880 --> 00:33:39,472 โดยไม่ต้องหลบหนีหรือขัดถู พวกเขากล่าวว่าปัจจัยการผลิตของคุณ 670 00:33:39,472 --> 00:33:42,430 และคุณจะได้ในบางจุดอาจจะ เจอเว็บไซต์บางเช่นนี้ 671 00:33:42,430 --> 00:33:46,060 ในความเป็นจริงก็น่าจะเป็นกรณี เช่นที่สนามบินและโรงแรมในสถานที่ 672 00:33:46,060 --> 00:33:48,880 ที่พวกเขามี Wi-Fi ฟรี การเข้าถึงที่คุณต้องเข้าสู่ระบบเพื่อ 673 00:33:48,880 --> 00:33:51,010 เว็บไซต์เหล่านี้อยู่เสมอ ดำเนินการอย่างน่ากลัว 674 00:33:51,010 --> 00:33:55,680 และเพื่อให้การจัดเรียงของความสนุกในการออกกำลังกายที่บ้าน ไม่ได้สำหรับวัตถุประสงค์ที่เป็นอันตรายหรือมากกว่า 675 00:33:55,680 --> 00:33:59,170 ความสนุกสนานบนถนน การออกกำลังกายคือการพิมพ์ 676 00:33:59,170 --> 00:34:02,850 เครื่องหมายวรรคตอน, คำพูดเดียว ลงในแบบฟอร์มในเว็บไซต์บาง 677 00:34:02,850 --> 00:34:03,810 และดูสิ่งที่เกิดขึ้น 678 00:34:03,810 --> 00:34:06,660 และถ้าเซิร์ฟเวอร์เกิดปัญหาหรือให้ คุณชนิดของข้อผิดพลาดบางอย่าง 679 00:34:06,660 --> 00:34:09,690 มันอาจจะดีว่า ใครบางคนที่ยังไม่ได้คาดการณ์ไว้นี้ 680 00:34:09,690 --> 00:34:15,239 แล้วคุณควรจะแจ้งเตือนที่เหมาะสม หน่วยงานและดำเนินการต่อไปไม่ 681 00:34:15,239 --> 00:34:20,843 >> ดังนั้นตอนนี้พวกคุณควรจะหวังว่า เข้าใจอารมณ์ขัน geek บิตเพิ่มเติมได้ที่นี่ 682 00:34:20,843 --> 00:34:24,120 >> [หัวเราะ] 683 00:34:24,120 --> 00:34:27,571 684 00:34:27,571 --> 00:34:29,070 DAVID ลัน: คุณรู้ว่าคุณ geek 685 00:34:29,070 --> 00:34:30,944 ต่อไปอีกหลาย ปีที่ผ่านมาคุณจะจำ 686 00:34:30,944 --> 00:34:33,520 ตารางที่บ๊อบบี้เล็ก ๆ น้อย ๆ เพราะการ์ตูนเรื่องนี้ที่นี่ 687 00:34:33,520 --> 00:34:36,760 เพื่อให้ทราบว่าในขณะที่เรา เปลี่ยนบริบทเป็นครั้งสุดท้าย 688 00:34:36,760 --> 00:34:38,770 ในวันนี้เพื่อใช้งาน JavaScript 689 00:34:38,770 --> 00:34:41,600 เราได้ใช้เวลาค่อนข้างน้อย เวลาในไวยากรณ์ของ PHP 690 00:34:41,600 --> 00:34:43,440 เพราะมันเป็นเรื่องจริง ซุปเปอร์คล้ายกับ C. 691 00:34:43,440 --> 00:34:47,300 และอย่างพอ JavaScript เกินไป เป็นซุปเปอร์คล้ายกับไวยากรณ์ซี 692 00:34:47,300 --> 00:34:49,639 เช่นเดียวกับที่เราจะเห็นใน เพียงแค่ชั่วครู่หนึ่งและในขณะที่เราจะ 693 00:34:49,639 --> 00:34:51,205 ได้เห็นต่อไปในสัปดาห์นี้โดยเฉพาะ 694 00:34:51,205 --> 00:34:54,080 คุณสามารถทำอะไรกับภาษานี้ แต่เป็นทั้งหมดมีประสิทธิภาพมากขึ้น 695 00:34:54,080 --> 00:34:55,790 โดยเฉพาะอย่างยิ่งกับ APIs 696 00:34:55,790 --> 00:34:56,960 >> แต่ก่อนการแนะนำอย่างรวดเร็ว 697 00:34:56,960 --> 00:35:00,450 ดังนั้นหนึ่งใน JavaScript มี ไม่มีฟังก์ชั่นหลักซึ่งเป็นสิ่งที่ดี 698 00:35:00,450 --> 00:35:02,650 เช่นเดียวกับ PHP, คุณก็สามารถเขียนโค้ด 699 00:35:02,650 --> 00:35:04,310 เงื่อนไขมีลักษณะเช่นนี้ 700 00:35:04,310 --> 00:35:07,100 และการแสดงออกอาจบูลีน ลักษณะเช่นนี้หรือเช่นนี้ 701 00:35:07,100 --> 00:35:09,530 สวิทช์ที่มีอยู่และพวกเขา อาจจะมีลักษณะเช่นนี้ 702 00:35:09,530 --> 00:35:10,970 สี่ลูปมีลักษณะเช่นนี้ 703 00:35:10,970 --> 00:35:12,390 ในขณะที่ลูปมีลักษณะเช่นนี้ 704 00:35:12,390 --> 00:35:14,160 ขณะเมื่อจะมีลักษณะเช่นนี้ 705 00:35:14,160 --> 00:35:16,850 แล้วอาร์เรย์มีลักษณะเหมือน นี้คล้ายกับ PHP 706 00:35:16,850 --> 00:35:20,740 แต่แจ้งให้ทราบว่าใน JavaScript คุณ ประกาศตัวแปรไม่ได้ด้วยเงินดอลลาร์ 707 00:35:20,740 --> 00:35:25,190 เข้าสู่ระบบไม่ได้กับชนิดข้อมูล แต่อย่างแท้จริง ด้วยการพูดว่า var ตัวแปรก่อนที่จะ 708 00:35:25,190 --> 00:35:27,900 มันก็จะพิมพ์อย่างอิสระ ในการที่จะมีประเภท 709 00:35:27,900 --> 00:35:29,729 แต่คุณไม่ประกาศแน่ชัดพวกเขา 710 00:35:29,729 --> 00:35:31,520 แล้วสตริงสำหรับ เช่นอาจมีลักษณะ 711 00:35:31,520 --> 00:35:34,350 เช่นนี้สตริงที่ ถูกเรียกว่าในกรณีนี้ 712 00:35:34,350 --> 00:35:35,410 แล้ววัตถุ 713 00:35:35,410 --> 00:35:37,010 และสิ่งเหล่านี้เราจะเห็นมากขึ้นก่อนที่จะยาว 714 00:35:37,010 --> 00:35:41,470 และวัตถุที่อาจจะเป็นหนึ่งใน เห็นมากที่สุดโครงสร้างข้อมูล 715 00:35:41,470 --> 00:35:44,050 ใน JavaScript ตาม โปรแกรมเพราะจะช่วยให้ 716 00:35:44,050 --> 00:35:46,680 คุณสามารถเชื่อมโยงโดยพลการ คู่ค่าที่สำคัญเพียง 717 00:35:46,680 --> 00:35:51,240 เช่น PHP ของเชื่อมโยงอาร์เรย์ และเช่นเดียวกับตารางแฮชของคุณเอง 718 00:35:51,240 --> 00:35:54,042 หรือพยายามที่เราดำเนินการ ไม่กี่สัปดาห์หลัง 719 00:35:54,042 --> 00:35:56,250 ดังนั้นเรามาดูสิ่งที่จริง เราสามารถทำกับ JavaScript 720 00:35:56,250 --> 00:35:59,410 และโดยเฉพาะอย่างยิ่งนี้ รายการซักผ้าของคุณสมบัติ 721 00:35:59,410 --> 00:36:02,300 เบราว์เซอร์ได้ว่า ช่วยให้เราสามารถขอ JavaScript 722 00:36:02,300 --> 00:36:05,470 ลงในเว็บไซต์ในลักษณะดังต่อไปนี้ 723 00:36:05,470 --> 00:36:09,340 JavaScript มักจะใช้เป็น ลูกค้าภาษาสคริปต์ฝั่ง 724 00:36:09,340 --> 00:36:10,130 มันไม่ได้รวบรวม 725 00:36:10,130 --> 00:36:11,370 มันก็คือการตีความ 726 00:36:11,370 --> 00:36:15,740 แต่แตกต่างจาก PHP, ซึ่งได้รับการทำงาน บนเซิร์ฟเวอร์เว็บเซิร์ฟเวอร์ 727 00:36:15,740 --> 00:36:18,220 หรือภายในลึก ลูกค้า, JavaScript 728 00:36:18,220 --> 00:36:22,190 จะแตกต่างกันในนั้นที่ มักจะทำงานในเบราว์เซอร์ 729 00:36:22,190 --> 00:36:26,060 >> ดังนั้นรหัส JavaScript ใด ๆ ที่คุณเริ่มต้นการเขียน สำหรับ PSet 8 หรือโครงการสุดท้ายของคุณ 730 00:36:26,060 --> 00:36:29,890 หรือในโลกแห่งความจริงโดยทั่วไปจะ จะถูกบันทึกไว้บนเซิร์ฟเวอร์อย่างแน่นอน 731 00:36:29,890 --> 00:36:33,110 ใน HTML จุดหรือจุด JS สำหรับแฟ้ม JavaScript 732 00:36:33,110 --> 00:36:35,770 แต่เบราว์เซอร์ที่เป็นไป ดาวน์โหลดที่ใช้งาน JavaScript 733 00:36:35,770 --> 00:36:39,530 รหัสตัวอย่างของคุณเองโครม หรือ IE หรือ Firefox หรืออะไรก็ตาม 734 00:36:39,530 --> 00:36:43,870 และรหัสที่เป็นจริงจะได้รับ ดำเนินการภายในของเบราว์เซอร์ของคุณเอง 735 00:36:43,870 --> 00:36:46,560 เพียงแค่จะทำให้เรื่องนี้เป็นจริงมากขึ้น เรามาดูนี้ในรูปแบบที่เป็นรูปธรรม 736 00:36:46,560 --> 00:36:50,120 >> เรามีความคิดว่ารหัสนี้จะไม่มี โดยไม่ได้จริงๆอ่านผ่านมัน 737 00:36:50,120 --> 00:36:52,670 แต่ให้ฉันไปที่ Facebook.com โดยไม่ต้องเข้า 738 00:36:52,670 --> 00:37:00,440 ผมขอไปตรวจสอบองค์ประกอบและไป, สมมุติว่า, เครือข่ายและโหลดหน้า 739 00:37:00,440 --> 00:37:04,150 และเราจะดูหน่อยให้ฉันเปลี่ยนโหลด หน้าจะได้รับคำขอทั้งหมดใหม่ 740 00:37:04,150 --> 00:37:08,850 และเป็นครั้งแรก ไฟล์ที่ฉันเห็นคือ CSS, CSS 741 00:37:08,850 --> 00:37:10,880 นี่เป็นครั้งแรก JavaScript ไฟล์และฉันมี 742 00:37:10,880 --> 00:37:14,600 ความคิดว่านี้ไม่ได้ แต่ที่นี่ เป็นบางส่วนของรหัส JavaScript 743 00:37:14,600 --> 00:37:16,180 ที่ไดรฟ์ที่ Facebook 744 00:37:16,180 --> 00:37:18,400 มันไม่ได้จริงๆว่า เผยให้เห็นเพื่อขยาย 745 00:37:18,400 --> 00:37:20,260 ก็ยังคงเป็นเช่นเดียวกับที่ไร้สาระ 746 00:37:20,260 --> 00:37:24,341 >> แต่คุณจะเห็นได้ลงมาด้านล่างมี มากยิ่งขึ้นจาก JavaScript ไฟล์เหล่านี้ 747 00:37:24,341 --> 00:37:24,840 ขออภัย 748 00:37:24,840 --> 00:37:25,440 นั่นคือปิง 749 00:37:25,440 --> 00:37:28,550 Let 's go ลงเล็กน้อย ต่อไปต่อไปต่อไป 750 00:37:28,550 --> 00:37:29,894 มีหนึ่ง 751 00:37:29,894 --> 00:37:31,238 มีหนึ่ง 752 00:37:31,238 --> 00:37:31,880 มีหนึ่ง 753 00:37:31,880 --> 00:37:35,820 >> ดังนั้นแม้ว่า Facebook, ที่อยู่เบื้องหลัง ฉากถูกเขียนขึ้นในส่วนหนึ่งใน PHP 754 00:37:35,820 --> 00:37:39,100 และตัวเองนั้นรุ่นของ Facebook, มีเป็นจำนวนมากของ JavaScript 755 00:37:39,100 --> 00:37:41,330 ในความเป็นจริงใด ๆ การพูดคุยที่คุณทำบน Facebook, 756 00:37:41,330 --> 00:37:45,520 ใด ๆ ของการปรับปรุงแบบอินไลน์เส้น ที่เกิดขึ้นในเวลาจริงทั้งหมดที่ 757 00:37:45,520 --> 00:37:47,944 คือการขับเคลื่อนด้วย JavaScript 758 00:37:47,944 --> 00:37:48,444 ใช่? 759 00:37:48,444 --> 00:37:50,235 >> ผู้ชม: ผมไม่แน่ใจว่า ถ้าเป็น Facebook, 760 00:37:50,235 --> 00:37:53,624 แต่ผมคิดว่า Facebook พัฒนา รหัสภาษาของตัวเองในบ้านของพวกเขา 761 00:37:53,624 --> 00:37:54,540 DAVID ลัน: พวกเขาทำ 762 00:37:54,540 --> 00:37:58,110 นั่นคือเหตุผลที่ผมบอกว่าความแปรปรวนของ PHP เรียกว่าฮิปฮ็อปที่พวกเขาเป็นจริง 763 00:37:58,110 --> 00:38:03,440 เพิ่มคุณสมบัติดังกล่าวว่าเมื่อ เครื่องหมายแรกที่นำมาใช้ Facebook, 764 00:38:03,440 --> 00:38:04,710 มันถูกเขียนใน PHP 765 00:38:04,710 --> 00:38:07,370 และการจัดเรียงของยังคงอยู่ การเรียงลำดับของภาษาที่ปลายด้านหน้า 766 00:38:07,370 --> 00:38:09,030 ที่พวกเขาใช้มาก ของการเข้ารหัสของพวกเขา แต่มัน 767 00:38:09,030 --> 00:38:11,870 ไม่ได้ภาษาที่ เครื่องชั่งน้ำหนักที่ดีโดยเฉพาะอย่างยิ่งพันล้าน 768 00:38:11,870 --> 00:38:12,630 คน 769 00:38:12,630 --> 00:38:15,300 และเพื่อให้พวกเขาได้เพิ่มของตัวเอง การปรับปรุงอยู่เบื้องหลัง 770 00:38:15,300 --> 00:38:17,049 และพวกเขาใช้ตัวเลขใด ๆ ภาษาอื่น ๆ 771 00:38:17,049 --> 00:38:19,170 สำหรับชิ้นส่วนต่างๆของ โครงสร้างพื้นฐานของตน 772 00:38:19,170 --> 00:38:24,080 ดังนั้นใช่มันเป็นความแปรปรวนของ สิ่งที่เรารู้ว่าเป็น PHP 773 00:38:24,080 --> 00:38:26,610 >> ดังนั้นลองมาดู ที่คู่ของตัวอย่าง 774 00:38:26,610 --> 00:38:28,890 ของวิธีการที่เราอาจจะใช้งานจาวาสคริปต์ที่นี่ 775 00:38:28,890 --> 00:38:32,530 ในรหัสที่มาในวันนี้เรามี พวงของไฟล์, ครั้งแรกของที่ 776 00:38:32,530 --> 00:38:34,090 ขอเรียกว่า DOM ศูนย์ 777 00:38:34,090 --> 00:38:36,770 ดังนั้น DOM ศูนย์มีลักษณะดังต่อไปนี้ 778 00:38:36,770 --> 00:38:40,730 ให้ฉันไปลงในไดเรกทอรีนี้ และเปิด domzero.html, 779 00:38:40,730 --> 00:38:44,970 ด้านบนของที่มีประเภทเอกสาร ประกาศว่าที่นี่มา HTML 5 780 00:38:44,970 --> 00:38:46,440 และตอนนี้ที่นี่เป็นแท็ก 781 00:38:46,440 --> 00:38:47,540 นี่คือแท็กหัว 782 00:38:47,540 --> 00:38:49,210 และนี่คือสิ่งที่ใหม่ในวันนี้ 783 00:38:49,210 --> 00:38:52,620 >> ขณะนี้เรามีแท็กสคริปต์ ภายในหัวของหน้า 784 00:38:52,620 --> 00:38:55,290 และเห็นได้ชัดว่า น้อยมาก แต่แจ้งให้ทราบล่วงหน้า 785 00:38:55,290 --> 00:38:58,410 ที่ผมได้กำหนดไว้ สคริปต์ JavaScript 786 00:38:58,410 --> 00:39:01,050 และเป็นกันตั้งแต่นี้ เป็นความเข้าใจผิดกัน 787 00:39:01,050 --> 00:39:05,220 ใช้งาน JavaScript มีอะไรอย่าง จะทำอย่างไรกับ Java, ภาษา 788 00:39:05,220 --> 00:39:08,010 ว่าบางส่วนของคุณอาจ ได้เรียนรู้ใน APCS 789 00:39:08,010 --> 00:39:10,480 มันเป็นมากขึ้นของการตลาด สิ่งกว่าสิ่งใด 790 00:39:10,480 --> 00:39:12,980 ขี่เสื้อของปีที่ผ่านมา Java 791 00:39:12,980 --> 00:39:17,300 แต่ JavaScript, ไม่มีอะไรจะทำอย่างไรกับ Java เพียงอย่างเดียวและ annoyingly, 792 00:39:17,300 --> 00:39:18,480 ชื่อพลุกพล่าน 793 00:39:18,480 --> 00:39:21,890 >> ดังนั้นนี่คือวิธีการที่คุณประกาศฟังก์ชัน ใน JavaScript อักษรบอกว่าฟังก์ชั่น 794 00:39:21,890 --> 00:39:24,556 แล้วชื่อของฟังก์ชั่น, แล้วข้อโต้แย้งใด ๆ มันอาจจะใช้เวลา 795 00:39:24,556 --> 00:39:25,530 เช่นเดียวกับใน PHP 796 00:39:25,530 --> 00:39:28,990 จะเปิดออกใน JavaScript, หนึ่งในที่สุด ฟังก์ชั่นที่น่ารำคาญที่มีอยู่คือการแจ้งเตือน 797 00:39:28,990 --> 00:39:31,392 นี้เป็นหน้าต่างเล็ก ๆ ที่ จะปรากฏขึ้นและแจ้งเตือนคุณ 798 00:39:31,392 --> 00:39:32,600 กับชิ้นส่วนของข้อมูลบางส่วน 799 00:39:32,600 --> 00:39:33,766 มันขมวดคิ้วทั่วไปเมื่อ 800 00:39:33,766 --> 00:39:35,980 แต่เราจะใช้มันเป็นของเรา ใช้สิทธิครั้งแรกที่นี่ 801 00:39:35,980 --> 00:39:37,900 >> ขอให้สังเกตคุณสมบัติบางของ JavaScript 802 00:39:37,900 --> 00:39:41,524 ราคาเดียวและราคาคู่ ไม่จริงสำคัญอีกต่อไป 803 00:39:41,524 --> 00:39:43,690 คำพูดเดี่ยวและคู่ ราคาสามารถ interchanged, 804 00:39:43,690 --> 00:39:46,220 ในขณะที่ C, คุณต้องใช้ คำพูดคู่สำหรับสตริง, 805 00:39:46,220 --> 00:39:48,150 และคุณมีสองซิงเกิ้ล ราคาสำหรับตัวอักษร 806 00:39:48,150 --> 00:39:51,150 ในโลกของ JavaScript, หลาย ๆ คนที่คนส่วนใหญ่ 807 00:39:51,150 --> 00:39:54,970 ใช้ราคาเดียวทั่วสตริง เพียงเพราะมันเป็นสิ่งที่โวหาร 808 00:39:54,970 --> 00:39:58,330 แต่เป็นสิ่งที่ผู้ประกอบการบวกที่นี่ ซึ่งเรายังไม่เคยเห็นมาก่อนหรือไม่ 809 00:39:58,330 --> 00:39:59,836 >> ผู้ชม: Concatenation 810 00:39:59,836 --> 00:40:00,960 DAVID ลัน: Concatenation 811 00:40:00,960 --> 00:40:02,450 ดังนั้น C ไม่ได้มีนี้ 812 00:40:02,450 --> 00:40:04,820 PHP มีผู้ประกอบการจุด, ที่ทำอย่างนี้ 813 00:40:04,820 --> 00:40:09,710 ใช้งาน JavaScript มีผู้ประกอบการบวก ซึ่งพลุกพล่านเป็นเช่นเดียวกับ Java 814 00:40:09,710 --> 00:40:11,440 ตอนนี้สิ่งที่เกิดขึ้นที่นี่? 815 00:40:11,440 --> 00:40:14,260 >> ดังนั้นนี่คือสิ่งที่พื้นฐาน ความเข้าใจในภาพที่ 816 00:40:14,260 --> 00:40:17,010 เราโยนขึ้นสอง วันที่ผ่านมาในการเล่น 817 00:40:17,010 --> 00:40:19,620 จำได้ว่าเมื่อเราได้ง่าย รุ่นของ HTM​​L Page-- 818 00:40:19,620 --> 00:40:20,830 มันก็กล่าวว่าสวัสดีชาวโลก 819 00:40:20,830 --> 00:40:22,770 แล้วเราดึงต้นไม้ ไปทางขวาซึ่ง 820 00:40:22,770 --> 00:40:27,320 มีพวงของรูปสี่เหลี่ยมและเส้น เชื่อมต่อพวกเขาเช่นต้นไม้ครอบครัว 821 00:40:27,320 --> 00:40:30,820 เพื่อให้เป็นที่เรียกว่า DOM หรือวัตถุเอกสารแบบ 822 00:40:30,820 --> 00:40:36,759 และมันจะเปิดออกที่คุณสามารถเข้าถึง รูปสี่เหลี่ยมในต้นไม้ที่มีไวยากรณ์ที่ 823 00:40:36,759 --> 00:40:37,550 เหมือนดังต่อไปนี้ 824 00:40:37,550 --> 00:40:41,370 คุณอักษรบอกว่าเอกสารซึ่งเป็น ตัวแปรทั่วโลกพิเศษใน JavaScript 825 00:40:41,370 --> 00:40:45,890 โปรแกรมที่มีฟังก์ชั่น ที่เกี่ยวข้องกับมันที่คุณสามารถเข้าถึง 826 00:40:45,890 --> 00:40:50,280 คล้ายกับ struct แต่คุณก็ บอกว่าจุดแล้วชื่อฟังก์ชันของ 827 00:40:50,280 --> 00:40:52,390 ได้รับองค์ประกอบตาม ID 828 00:40:52,390 --> 00:40:55,460 >> องค์ประกอบฉันต้องการที่จะได้รับเป็น เห็นได้ชัดอ้างชื่อ unquote 829 00:40:55,460 --> 00:40:57,150 แล้วฉันต้องการที่จะได้รับค่าของมัน 830 00:40:57,150 --> 00:40:58,330 ตอนนี้เรากำลังได้รับข้างหน้าของตัวเอง 831 00:40:58,330 --> 00:41:00,038 ฉันไม่แน่ใจว่าสิ่งที่ ทั้งหมดนี้เป็นเรื่องเกี่ยวกับ 832 00:41:00,038 --> 00:41:03,000 ลองไปข้างหน้าอย่างรวดเร็วเป็น HTML ใน หน้าซึ่งเป็นที่ง่ายสุด 833 00:41:03,000 --> 00:41:05,370 >> ขอให้สังเกตว่าผมได้กำหนด แบบฟอร์มลงที่นี่ 834 00:41:05,370 --> 00:41:07,940 แจ้งให้ทราบผมได้รับมันไม่ซ้ำกัน ID แม้ว่าเราไม่ได้ใช้ 835 00:41:07,940 --> 00:41:08,870 แอตทริบิวต์นี้ก่อน 836 00:41:08,870 --> 00:41:11,300 แต่ตอนนี้ที่มีอยู่ในรูปแบบ HTML 837 00:41:11,300 --> 00:41:15,570 คุณไม่ซ้ำกันสามารถระบุชิ้นบาง ของ HTM​​L ที่มีการระบุเช่นนี้ 838 00:41:15,570 --> 00:41:19,880 >> แจ้งให้ทราบตอนนี้เจ้านี่จะเปิดออก HTML สนับสนุนต่อรายการซักผ้าที่ 839 00:41:19,880 --> 00:41:22,490 ช่วงเวลาที่ผ่านมาทั้ง พวงของตัวจัดการเหตุการณ์ 840 00:41:22,490 --> 00:41:25,060 และจัดการเหตุการณ์นี้กล่าวในการส่ง 841 00:41:25,060 --> 00:41:28,730 ในการส่งผู้ใช้นี้ รูปแบบโทรรหัสต่อไปนี้ 842 00:41:28,730 --> 00:41:31,360 และรหัสที่เกิด ที่จะเรียกว่าหรือดำเนินการ 843 00:41:31,360 --> 00:41:35,260 อยู่ตรงนี้, กรีก ฟังก์ชั่นตามมาด้วยผลตอบแทนที่ผิดพลาด 844 00:41:35,260 --> 00:41:37,360 ทุกอย่างอื่นควร จะคุ้นเคยสวย 845 00:41:37,360 --> 00:41:42,050 >> นี่คือสัญญาณของการพิมพ์ข้อความที่มี ID, ในกรณีนี้เป็นไปได้ชื่อ 846 00:41:42,050 --> 00:41:45,430 เราไม่ได้มีแอตทริบิวต์ชื่อจริง time-- นี้และปุ่มส่ง 847 00:41:45,430 --> 00:41:48,330 ดังนั้นหน้าผลลักษณะเช่นนี้ 848 00:41:48,330 --> 00:41:52,890 และพฤติกรรมที่เกิด คุณจะเห็นลักษณะเช่นนี้ 849 00:41:52,890 --> 00:41:56,940 หน้ามันเป็นเจ้าภาพในท้องถิ่นกล่าวว่าสวัสดี เดวิดแทบจะไม่เป็นที่ชื่นชอบความสุนทรีย์ 850 00:41:56,940 --> 00:41:58,340 วิธีที่จะทักทายผู้ใช้ 851 00:41:58,340 --> 00:41:59,950 แต่สิ่งที่เป็นจริงที่เกิดขึ้น? 852 00:41:59,950 --> 00:42:01,360 >> ดีพิจารณาสิ่งนี้ 853 00:42:01,360 --> 00:42:02,310 นี่คือฟิลด์ข้อความ 854 00:42:02,310 --> 00:42:04,635 และเป็นไปตาม HTML ที่นี่ผมได้รับมัน 855 00:42:04,635 --> 00:42:07,350 ระบุที่ไม่ซ้ำ เรียกว่าอ้างชื่อ unquote 856 00:42:07,350 --> 00:42:09,770 ในขณะที่ฉันได้กล่าวว่าเมื่อ ผู้ใช้ส่งแบบฟอร์มนี้ 857 00:42:09,770 --> 00:42:13,820 โดยการกดปุ่ม Enter หรือคลิกส่ง ปุ่มเรียกใช้ฟังก์ชันที่เรียกว่าทักทาย 858 00:42:13,820 --> 00:42:15,410 แล้วกลับเท็จ 859 00:42:15,410 --> 00:42:16,870 ลองพิจารณาผู้ที่อยู่ในสิ่งที่ตรงกันข้าม 860 00:42:16,870 --> 00:42:20,590 แจ้งให้ทราบเมื่อฉันคลิกส่ง, URL ของหน้านี้ไม่เปลี่ยนแปลง 861 00:42:20,590 --> 00:42:22,420 ไอคอนเบราว์เซอร์ ไม่ได้เริ่มต้นการปั่น 862 00:42:22,420 --> 00:42:27,050 ผมไม่ได้ไปที่ใดก็ได้และที่ แท้จริงเพราะผมบอกว่ากลับเท็จ 863 00:42:27,050 --> 00:42:31,534 กลับลัดวงจรเท็จหรือหยุด การทำงานเริ่มต้นของฟอร์ม 864 00:42:31,534 --> 00:42:33,700 เพื่อให้แล้วทำให้เรามี นี้คำถามสุดท้าย 865 00:42:33,700 --> 00:42:34,764 สิ่งที่ไม่ทักทายทำอย่างไร 866 00:42:34,764 --> 00:42:36,680 ดี Greet เห็นได้ชัด เรียกฟังก์ชันที่เรียกว่า 867 00:42:36,680 --> 00:42:39,250 การแจ้งเตือนผ่านไปในหนึ่ง อาร์กิวเมนต์ยาวที่ 868 00:42:39,250 --> 00:42:43,950 ผลจากการเชื่อมโยงเข้าด้วยกัน พวงของสตริงสวัสดีเว้นวรรคจุลภาค 869 00:42:43,950 --> 00:42:45,810 แล้วผลตอบแทนสิ่งนี้ 870 00:42:45,810 --> 00:42:51,490 ดังนั้นเอกสารที่มีลักษณะคล้ายโลก ตัวแปรไปยังรากของต้นไม้ที่ว่า 871 00:42:51,490 --> 00:42:55,560 การเรียกฟังก์ชั่นพิเศษ บัดนี้เป็นที่รู้จักเป็นอย่างอื่นเป็นวิธีการ 872 00:42:55,560 --> 00:42:57,650 ฟังก์ชั่นที่ ภายในของตัวแปรเป็น 873 00:42:57,650 --> 00:42:59,640 ที่เรียกว่าวิธีการแทนการทำงานของ 874 00:42:59,640 --> 00:43:01,570 >> เพื่อให้ได้รับองค์ประกอบตาม ID 875 00:43:01,570 --> 00:43:03,940 อะไรองค์ประกอบที่คุณทำ ต้องการที่จะได้รับโดย ID หรือไม่? 876 00:43:03,940 --> 00:43:06,970 อ้างชื่อ unquote และ แล้วค่าเฉพาะ 877 00:43:06,970 --> 00:43:12,000 ดังนั้นในคำอื่น ๆ รหัสที่เพียง พบว่าช่องข้อความที่มี ID เป็นชื่อ 878 00:43:12,000 --> 00:43:13,380 และจากนั้นได้รับค่าของมัน 879 00:43:13,380 --> 00:43:16,460 ดังนั้นถ้าผมจะเปลี่ยนแปลงนี้ และพูดว่าดาวินแทนของดาวิด 880 00:43:16,460 --> 00:43:20,670 และคลิกส่งตอนนี้เรา มีอวยพร Davin 881 00:43:20,670 --> 00:43:22,890 >> สิทธิทั้งหมดดังนั้นสิ่งที่ดีและดี 882 00:43:22,890 --> 00:43:25,480 แต่ขอให้ดูว่าเราสามารถทำให้ นี้เล็ก ๆ น้อย ๆ ทำความสะอาดตั้งแต่เพียง 883 00:43:25,480 --> 00:43:28,190 เขียนรหัสเช่นนี้ โดยทั่วไปจะได้รับการขมวดคิ้ว 884 00:43:28,190 --> 00:43:30,060 นี้จะไปดูน่ากลัว 885 00:43:30,060 --> 00:43:32,330 แต่สิ่งที่เป็นครั้งแรก ความแตกต่างที่คุณต้องทราบที่นี่ 886 00:43:32,330 --> 00:43:35,970 ในรุ่นนี้นอกจาก ชื่อเปลี่ยน DOM หนึ่ง? 887 00:43:35,970 --> 00:43:41,110 สิ่งที่โครงสร้างมีลักษณะที่แตกต่างกัน เกี่ยวกับเรื่องนี้เมื่อเทียบกับคนอื่น ๆ ? 888 00:43:41,110 --> 00:43:41,932 ใช่? 889 00:43:41,932 --> 00:43:43,890 ผู้ชม: เป็นรูปแบบที่ ด้านบนของสคริปตอนนี้หรือไม่ 890 00:43:43,890 --> 00:43:46,570 DAVID ลัน: ใช่รูปแบบบน ของสคริปต์สำหรับเหตุผลที่อยากรู้อยากเห็นบางส่วน 891 00:43:46,570 --> 00:43:48,736 เพื่อให้เป็นสิ่งแรก ที่กระโดดออกมาที่ผมด้วย 892 00:43:48,736 --> 00:43:50,990 และโชคดีที่อย่างน้อย ในส่วนนี้เป็นเหมือนกัน 893 00:43:50,990 --> 00:43:53,470 ดังนั้นสิ่งเดียวที่ดูเหมือนว่า จะแตกต่างกันคือ 894 00:43:53,470 --> 00:43:55,296 >> ดังนั้นนี่คือสิ่งที่ประณีต เกี่ยวกับการใช้งาน JavaScript 2 895 00:43:55,296 --> 00:43:57,420 และก็จะทำให้มันยากที่จะ เข้าใจได้อย่างรวดเร็วก่อน 896 00:43:57,420 --> 00:44:00,670 โดยเฉพาะอย่างยิ่งสำหรับโครงการสุดท้ายถ้า คุณกำลังมองหาที่โค้ดตัวอย่างออนไลน์ 897 00:44:00,670 --> 00:44:04,200 แต่มันเดือดลงไปบางส่วน คุณสมบัติโครงสร้างพื้นฐาน 898 00:44:04,200 --> 00:44:06,230 ที่นี่อีกครั้งก็คือ เอกสารตัวแปรทั่วโลก 899 00:44:06,230 --> 00:44:09,540 ที่นี่อีกครั้งเป็นวิธีการที่หรือการทำงาน ที่ระบุว่าได้รับองค์ประกอบตาม ID 900 00:44:09,540 --> 00:44:11,570 เวลาที่ฉันต้องการที่จะนี้ ได้รับการสาธิตรหัสที่เรียกว่า 901 00:44:11,570 --> 00:44:12,490 ที่ว่าคืออะไร? 902 00:44:12,490 --> 00:44:15,400 ที่เหมาะสมเห็นได้ชัด ที่นี่รูปแบบของตัวเอง 903 00:44:15,400 --> 00:44:20,010 >> และตอนนี้สังเกตเห็นว่าเห็นได้ชัดว่าผม กลับโหนดจากต้นไม้นั้น 904 00:44:20,010 --> 00:44:22,940 แสดงให้เห็นถึงรูปแบบ ตัวเองไม่ได้ช่องข้อความ 905 00:44:22,940 --> 00:44:26,970 มันกลับกลายเป็นรูปแบบที่ว่า โหนดหรือสี่เหลี่ยมผืนผ้าจากต้นไม้ 906 00:44:26,970 --> 00:44:30,450 มีสิ่งที่เราจะเรียกทรัพย์สิน มากมากที่คล้ายกันมาก 907 00:44:30,450 --> 00:44:35,390 ในจิตวิญญาณที่จะ struct ในซีมันเป็นเพียง สมาชิกข้อมูลภายในของรูปสี่เหลี่ยมนี้ 908 00:44:35,390 --> 00:44:38,300 >> ดังนั้นผมจึงได้มีรูปแบบ ที่นี่และฉันติด, 909 00:44:38,300 --> 00:44:44,650 หรือฉันกำหนดให้ของที่ส่ง จัดการหรือมากกว่าในสถานที่ให้บริการส่ง 910 00:44:44,650 --> 00:44:45,740 ฟังก์ชั่นดังต่อไปนี้ 911 00:44:45,740 --> 00:44:49,000 และนี่คือโดยไกล craziest สิ่งป่านนี้ syntactically 912 00:44:49,000 --> 00:44:53,610 มันจะเปิดออกใน JavaScript และใน PHP และตรงไปตรงมาสำหรับเรื่องใน C ที่ 913 00:44:53,610 --> 00:44:58,990 แม้ว่าเราจะไม่ทำมันคุณสามารถ เพิ่มนิรนามไม่ระบุชื่อหรืออาคาแลมบ์ดา 914 00:44:58,990 --> 00:45:03,000 ฟังก์ชั่นที่ไม่ได้มีชื่อ แต่จะเรียกว่าอย่างไรก็ตาม 915 00:45:03,000 --> 00:45:07,050 >> ดังนั้นสิ่งที่ฉันทำที่นี่เป็นที่ที่ผมกำหนด นี้ On ส่งทรัพย์สินซึ่ง 916 00:45:07,050 --> 00:45:14,330 ที่อยู่ภายในของโหนดของต้นไม้ DOM ของฉันนี้ ฟังก์ชั่นตัวชี้ฟังก์ชันถ้าคุณจะ 917 00:45:14,330 --> 00:45:16,310 ฟังก์ชั่นที่ไม่มี ชื่อ แต่ที่ไม่ได้ 918 00:45:16,310 --> 00:45:19,110 สำคัญเพราะเราจะได้เห็น ในขณะที่วิธีการเรียกมันว่า 919 00:45:19,110 --> 00:45:21,780 เมื่อฟังก์ชันนี้จะเรียกว่า รหัสนี้ได้รับการดำเนินการแล้ว 920 00:45:21,780 --> 00:45:24,210 เท็จจะถูกส่งกลับเช่นเดียวกับก่อนที่จะ 921 00:45:24,210 --> 00:45:25,800 >> แต่สังเกตเห็นสิ่งที่ฉันได้ทำ 922 00:45:25,800 --> 00:45:27,830 ที่จุดในนี้ เรื่องที่ผมมีรูปแบบ 923 00:45:27,830 --> 00:45:30,190 มันมีรหัสเฉพาะที่เรียกว่าการสาธิต 924 00:45:30,190 --> 00:45:33,740 ลงที่นี่ผมมีแท็กสคริปต์ ที่รันโค้ดต่อไปนี้ 925 00:45:33,740 --> 00:45:37,720 มันยึดติดกับโหนดในที่ ต้นไม้กับมัน 's On ส่ง 926 00:45:37,720 --> 00:45:40,260 สถานที่ให้บริการฟังก์ชั่นนี้ได้ที่นี่ 927 00:45:40,260 --> 00:45:44,310 และเพียงแค่ลักษณะของวิธีการทำงานของเบราว์เซอร์ เมื่อตอนนี้ผมคลิกที่ส่งหรือกด Enter, 928 00:45:44,310 --> 00:45:45,889 ฟังก์ชั่นที่จะได้รับการเรียก 929 00:45:45,889 --> 00:45:48,680 มันไม่จำเป็นต้องชื่อที่เพราะ ห่าใส่ใจสิ่งที่มันเรียกว่า 930 00:45:48,680 --> 00:45:52,540 ครั้งเดียวที่มันเคยไปรับ เรียกว่าเมื่อฉันส่งแบบฟอร์ม 931 00:45:52,540 --> 00:45:55,130 ไม่มีความจำเป็นสำหรับฉันไม่ได้ นักพัฒนาของมนุษย์ 932 00:45:55,130 --> 00:45:57,330 ที่จริงเรียกว่าที่ใด 933 00:45:57,330 --> 00:46:00,720 >> ตอนนี้เพียงแค่เป็นทีเซอร์ราวกับว่า เขาไม่ได้คิดดัดพอ 934 00:46:00,720 --> 00:46:03,330 เรายังสามารถทำให้ ดูลึกลับขึ้นโดยใช้ 935 00:46:03,330 --> 00:46:05,850 ห้องสมุดที่นิยมสุดเรียกว่า jQuery 936 00:46:05,850 --> 00:46:08,760 ในความเป็นจริง jQuery และ JavaScript มักจะแฟทต์ 937 00:46:08,760 --> 00:46:12,790 และสิ่งที่เราจะทำในวันพุธที่เป็นจุดเริ่มต้น โดยใช้ภาษาและห้องสมุดเหล่านี้ 938 00:46:12,790 --> 00:46:16,030 ที่จะสร้างไม่ตรงกันมากขึ้น และการใช้งานแบบไดนามิก 939 00:46:16,030 --> 00:46:18,950 เช่นเดียวกับแผนที่ที่ได้รับ การใช้งานโปรแกรม 940 00:46:18,950 --> 00:46:22,360 ที่มีการปรับปรุงหน้าเว็บในแบบเรียล เวลามากเช่น Facebook หรือ Gchat 941 00:46:22,360 --> 00:46:27,130 ทำและไม่ได้ จำกัด ตัวเองเพื่อ โดนส่งโดยได้รับหรือโพสต์เพียง 942 00:46:27,130 --> 00:46:27,630 คนเดียว 943 00:46:27,630 --> 00:46:29,055 ดังนั้นผมจะเห็นคุณในวันพุธที่ 944 00:46:29,055 --> 00:46:31,805 945 00:46:31,805 --> 00:46:35,550 >> [เล่นเพลง] 946 00:46:35,550 --> 00:48:09,728