[เล่นเพลง] DAVID ลัน: นี่คือ CS 50, และ นี่คือจุดเริ่มต้นของสัปดาห์ที่เก้า และสิ่งที่เราคิดว่าเราจะทำในวันนี้ไม่ได้ เพียงปิดบทในสัปดาห์ที่ผ่านมา วัสดุที่เรามุ่งเน้นไปที่เซิร์ฟเวอร์ การเขียนโปรแกรมเว็บด้านกับ PHP และ SQL, สิ่งที่ฐานข้อมูลบางส่วน เราจะพูดคุยเกี่ยวกับบิตของ วันนี้การรักษาความปลอดภัยแล้ว การเปลี่ยนแปลงที่จะเขียนโปรแกรมฝั่งไคลเอ็นต์ ภาษาที่รู้จักกันเป็น JavaScript แต่ก่อนการไถ่ถอนบางส่วน คุณอาจจะจำได้ว่าเมื่อวันที่ วันพุธที่ฉันออก ในการเขียนเว็บไซต์ที่ เอาในการป้อนข้อมูลของผู้ใช้ โดยรูปแบบ HTML ที่เก็บไว้แล้ว ว่าชื่อผู้ใช้ป้อนข้อมูลโทรศัพท์ ตัวเลขและโทรศัพท์มือถือ ผู้ให้บริการในฐานข้อมูล แล้วผมก็มีคำสั่งเล็ก ๆ น้อย ๆ สคริปต์เส้นเขียนใน PHP ที่ควรจะย้ำ กว่าแถวในฐานข้อมูล และส่งออกข้อความ แม้จะมีหลายหลายครั้งเรา ไม่ได้รับการทำงานว่าภายในสิ้น ดังนั้นผมจึงใช้เวลาทั้งสัปดาห์ทำงานนี้ ในรหัสที่ได้รับเราผ่านจุด ที่เราออกมาโดยทั้งหมด ผมได้รับในตอนท้ายของวันพุธ เป็นข้อความนี้ จาก Margo ที่ฉันพยายาม, ตามมาด้วยการส่งข้อความจากที่อื่น เพื่อนร่วมชั้นของคุณได้มีดาวิด ตามมาด้วยคนนี้ ให้กำลังใจอย่างน่าพิศวง เก็บไว้บนไปกำลังใจมาก ฉันเกือบจะได้มันจนกว่า then-- และ ที่ทราบเราสิ้นสุดในวันพุธที่ แล้วจริงอาจจะเป็นที่ชื่นชอบ สักครู่ต่อมานี้เดินเข้ามาใน สตรีมสดแช่ง ดังนั้นวันนี้เราจะแก้ไขปัญหานี้ด้วยความรวดเร็ว มองไปที่สิ่งที่ฉันได้ทำมาตั้งแต่ ดังนั้นทั้งหมดของรหัสนี้สามารถใช้ได้ ออนไลน์จากสัปดาห์สุดท้ายของสัปดาห์ที่แปด รหัสแหล่งที่มา และคุณจะเห็นว่าผมผ่านไป และฉันทำความสะอาดขึ้นจริงสิ่งเล็กน้อย ผมแนะนำคู่อื่น ๆ คุณสมบัติของฐานข้อมูล SQL ยกตัวอย่างเช่นมากกว่า เพียงแค่ให้บริการของ var ถ่าน ที่ฉันคิดว่าฉันไม่ได้ทันทีในสัปดาห์ที่ผ่านมา ฉันแทนกำหนดไว้ว่าเป็น สิ่งที่เรียกว่า enum และบางส่วนของคุณอาจจะได้เห็นนี้ ในขณะที่เราสำรวจ C. Enum เป็นจริง คุณลักษณะของ C ที่คุณสามารถ ระบุทั้งกลุ่มของค่าคงที่ และกำหนดให้ค่าอัตโนมัติ เช่นหนึ่งสองสามสี่ โดยไม่ต้องหมายเลขรหัสที่ยาก ดังนั้น SQL สนับสนุนเดียวกันด้วยเหตุนี้ถ้า คุณมีข้อมูลฐานข้อมูลที่คุณเท่านั้น ต้องการที่จะใช้ในหนึ่งแน่นอน ค่าคุณอักษรสามารถระบุว่า เป็นฉันได้ทำที่นั่นสี่ เป็นที่นิยมของสหรัฐผู้ให้บริการโทรศัพท์มือถือ ดังนั้นฉันไม่ว่า และฉันทำให้จำนวนของการเปลี่ยนแปลงเป็น ดีที่สำคัญที่สุดที่ คือการได้รับอีเมลการทำงานเพราะการเรียกคืน ว่าโปรแกรมนี้เป็นที่พึ่งที่ เรียกว่าอีเมลไปยัง เกตเวย์ SMS ซึ่งเป็นเพียง วิธีแฟนซีที่บอกว่า Verizon, และ AT & T และคนอื่น ๆ ที่สนับสนุนเซิร์ฟเวอร์ โดยหากได้รับ อีเมลจะแปลงมันเป็น SMS และส่งออกข้อความ ข้อความไปยังโทรศัพท์ของใครบางคน ดังนั้นถ้าผมทำอย่างนี้อย่างถูกต้อง ที่นี่เป็นรูปแบบใหม่และปรับปรุง ที่จะพูดคุยกับ ใหม่และปรับปรุงรหัสที่ คุณสามารถเล่นกับออนไลน์ และก็หวังว่าจะทำให้ฉัน เสียงโทรศัพท์ในเวลาเพียงสักครู่ ดังนั้นครั้งแรกที่ผมจะพิมพ์ในนามของเรา ประการที่สองฉันจะไม่ การทำเช่นนี้ในเวลานี้ ฉันจะไม่ตรวจสอบธาตุ และนี่เป็นเพียง สิ่งเล็ก ๆ น้อย ๆ ที่ผมทำไม่ได้ สร้างชั่วโมงของการผลิตโพสต์ ทำงานเป็นที่ผมทำครั้งสุดท้าย ขณะนี้เป็นหมายเลขโทรศัพท์ของฉัน ฉันจะเลือก Verizon และที่นี่ให้เปิดไมโครโฟนนี้ ที่นี่และมีจุดมุ่งหมายที่นี้ไปที่โทรศัพท์ของฉันที่นี่ ฉันจะคลิกลงทะเบียน ซึ่งควรจะหวังว่า ใส่ลงในฐานข้อมูล ตอนนี้ผมกำลังจะไป โปรแกรมบรรทัดคำสั่งที่ จำถูกเรียกว่าจุดเฉือน ข้อความและข้ามนิ้วมือข​​องคุณ ไปเลย [DINGS โทรศัพท์] [APPLAUSE] DAVID ลันดังนั้นความสนุกสนานมากขึ้นกว่าที่เจ้านี่ มันสนุกแน่นอนถ้าฉันได้รับเป็นมัน แต่มันก็สนุกมากขึ้นผมคิดว่าถ้าเรา สร้างหนึ่งในบรรดาช่วงเวลาที่ภาพยนตร์ ที่สิ่งที่ต้องการจริงๆ ที่ไม่ดีที่เกิดขึ้นในโลก และเช่นเดียวกับเอ็นเอสเอของผู้คน โทรศัพท์มือถือเริ่มต้น beeping ที่มีข้อความ การแจ้งเตือนให้พวกเขาความจริงนี้ ดังนั้นผมคิดว่าเราจะพยายาม เพื่อสร้างเดียวกันที่นี่ โดยไม่ได้ใช้ฐานข้อมูล ฉันแทนล่วงหน้า เขียนโปรแกรมที่มีลักษณะเช่นนี้ นี้เป็น index.php-- และฉันใส่รหัสนี้ออนไลน์ เป็นที่เห็นได้ชัดสวยหน่อย เพียงแค่วาทกรรม form.php, โดยใช้กระบวนทัศน์แบบ MVC ที่เรา พูดถึงในรายละเอียดในการตั้งปัญหา เจ็ด รูปแบบที่สวยเรียบง่าย มันจะส่งไปยัง แฟ้มที่เรียกว่า here.php ผ่านโพสต์ และมันก็เห็นได้ชัดว่าจะถาม สำหรับชื่อและหมายเลขโทรศัพท์ แล้วผ่านที่เรียกว่า เลือกเมนูก็ จะให้คุณอย่างน้อยสี่ เป็นที่นิยมของสหรัฐผู้ให้บริการโทรศัพท์มือถือ, แล้วช่วยให้คุณได้อย่างมีประสิทธิภาพ จะเข้าร่วมประชุมโดยคลิกที่นี่ และที่นี่ในขณะเดียวกันเป็นไปได้ ยืมบางส่วนของรหัสจากครั้งล่าสุด และถ้าคุณเพียงแค่หางนี้ คุณจะเห็นว่ามี ทั้งกลุ่มของการตรวจสอบข้อผิดพลาด แต่ความงามในตอนท้ายว่า เราไม่ได้เขียนไปยังฐานข้อมูลวันนี้ เรากำลังทำให้มันง่ายและ เพียงแค่การส่งออกหวังว่า ข้อความที่ผ่านการทำงานของผม เขียนในช่วงสายไม่กี่วันที่ผ่านมา ข้อความที่อยู่ในฟังก์ชั่น PHP, ที่สามารถใช้ได้ออนไลน์อีกครั้ง ดังนั้นถ้าคุณต้องการที่จะมีส่วนร่วมในครั้งนี้ เราไม่ได้จะได้รับการจัดเก็บอะไร ไปที่ URL นี้ที่นี่ในเวลาจริง อย่าส่งมันก็ยัง แต่ขอ ดูว่าเราสามารถมีหนึ่งของภาพยนตร์เหล่านี้ ช่วงเวลาที่โทรศัพท์มือถือของทุกคน เริ่ม beeping หวังเพียง ครั้งเดียวในปีนี้แตกต่างจากในปี 2011 ที่นี้ไปเป๋อย่างน่ากลัว และเมื่อคุณไปที่ที่อยู่นั้น คุณจะเห็นรูปแบบที่ง่ายสุด ว่าถ้าคุณมีชื่อโทรศัพท์มือถือ จำนวนและผู้ให้บริการโทรศัพท์มือถือที่ ตรงกับรายชื่อที่นั่นไป ข้างหน้าและกรอกแบบฟอร์ม แต่ไม่ได้ตีส่งเพียง แต่ รูปแบบจะมีลักษณะเช่นนี้ ไปข้างหน้าและพิมพ์ ชื่อหมายเลขโทรศัพท์ของคุณ oop, ใครบางคนจะไปข้างหน้าของเส้นโค้ง ก็ OK ตกลงทุกคนกรอกแบบฟอร์ม นี้ควรจะทำงานใน โทรศัพท์เกินไปถ้าคุณต้องการ สิทธิทั้งหมดในเครื่องหมายของคุณได้รับการตั้งค่าไป ตีที่นี่ อะไร? เลขที่ ฉันสาบานกับพระเจ้าที่ผมทดสอบ นี้หลายครั้งวันนี้ ที่คุณได้รับมันได้หรือไม่ [interposing VOICES] DAVID ลัน: ตกลงข้อผิดพลาดของผู้ใช้อาจจะ นั่นเป็นสอง จะทำงานให้ทั้งสองออกจาก ไม่กี่ร้อยสามสี่ ตกลงที่ดี สี่ห้าสำหรับ วิธีการเกี่ยวกับความถูกต้อง ดังนั้นสิ่งที่เพิ่งเกิดขึ้น? ดังนั้นน่าจะไม่เห็นคุณ หน้าจอทำไมมันอาจได้ errored? มันอาจจะเป็นว่าเราเป็นเพียงแค่ พยายามที่จะทำให้การเชื่อมต่อมากเกินไป ไปยังเซิร์ฟเวอร์อีเมลฮาร์วาร์ทั้งหมดใน ครั้งเดียวจากที่อยู่เดียวกัน ฉันแค่คาดเดาตั้งแต่ฉันไม่ได้ มีความหรูหราของการทดสอบ รหัสนี้กับบาง 300 คนล่วงหน้า แต่ตอนนี้รู้ว่า ว่าอย่างน้อยควร มีอากาศงานที่ทำได้ในเวลานี้ สิทธิทั้งหมดดังนั้นทำไมเป็นแบบนี้ทั้งหมด เพิ่มเติมชิดกับสิ่งที่เกิดขึ้น? อย่างแรกอย่างรวดเร็ว คู่ของประกาศ ดังนั้นหนึ่งถ้าคุณต้องการที่จะเข้าร่วมช้างและ นิคและอื่น ๆ ที่รับประทานอาหารกลางวันวันศุกร์นี้, ทำ RSVP ที่ URL ปกติมี ถ้าคุณกำลังคิดที่จะมุ่งเน้น หรือทำในมัธยมใน CS, ไม่ว่าคุณจะปีหรือน้อง หรือแม้กระทั่งจูเนียร์หรืออาวุโสที่จุดนี้ และยังสามารถบีบในหลักสูตร ตระหนักดีว่าโรงเรียนวิศวกรรม จะรวบรวมฟรีเบนและ ไอศครีมเจอร์และคำแนะนำ วันพุธนี้ไม่นานหลังเลิกเรียน ที่ 04:00 ในอาคาร CS ที่แมกซ์เวลดวอร์คิ ถ้าเป็นการเร็วเกินไป บนหน้าจอเพียงแค่ไป เพื่อ cs50.harvard.edu สำหรับ เชื่อมโยงไปยังเหตุการณ์ที่ Facebook ที่คุณสามารถดูรายละเอียดเพิ่มเติม ในขณะที่ฉันคิดว่าฉันจะแก้ไขให้ถูกต้อง สิ่งอื่น ๆ หนึ่งที่ผม goofed ในวันพุธที่ ปรากฎว่า ID มาร์ค บน Facebook ก็ไม่สาม มันเป็นสี่ กลับกลายเป็นว่าเขามีการทดสอบมากขึ้น บัญชีกว่าที่ฉันจำ แต่สิ่งนี้รู้สึกเหมือนโอกาส จะทำคือการดึง URL เช่นนี้ ดังนั้นจึงปรากฎว่า Facebook มี API, Application Programming Interface, ซึ่งเป็นกลไก whereby คุณ สามารถขอข้อมูลโปรแกรม ที่ Facebook และรับกลับเครื่อง ข้อมูลที่อ่านได้ไม่หน้าเว็บ แต่ข้อความดิบเพียงแค่บางสิ่งบางอย่าง เรียกว่า Object สัญลักษณ์ JavaScript และในความเป็นจริงถ้าฉันไปนี้ URL, และซูมเข้าโดยค่าเริ่มต้น นี่คือมาร์คสาธารณชน เข้าถึงข้อมูล และรายละเอียดที่น่าสนใจ นี่เป็นเพียงว่า ID ของเขา เป็นที่แน่นอน, บ้านเลขที่สี่ซึ่งผม รู้ทันทีที่ฉันทำอย่างนี้ คุณสามารถทำได้ด้วยตัวคุณเองถ้าคุณรู้ว่า ชื่อผู้ใช้ Facebook ของคุณถ้าคุณมีหนึ่ง เพียงแค่พิมพ์มันขึ้นมาด้านบนมี และไม่มีการนี​​้มีความเป็นส่วนตัว ฉันแค่ทำเช่นนี้ได้ ในโหมดไม่ระบุตัวตน ดังนั้นฉันไม่ได้เข้าสู่แม้ใน และคุณเห็นฉันว่า เห็นได้ชัดว่าจำนวนผู้ใช้ 6,454 บน Facebook ซึ่งไม่ เลวร้ายเกินไปวันนี้ ดังนั้น แต่อย่างใดนอกจากนี้คุณยังจะเห็น ข้อมูลเพิ่มเติมมี และด้านที่มีประโยชน์ ของที่มีอยู่ที่คุณ สามารถเขียนซอฟแวร์ของคุณเองที่ อย่างใดรวมข้อมูลเช่นนี้ ลงในใบสมัครของคุณเอง คุณสามารถช่วยให้ผู้ใช้สามารถ เข้าสู่เว็บไซต์ของคุณ ไม่ได้ใช้ชื่อผู้ใช้ที่กำหนดเองของตัวเองและ รหัสผ่าน แต่อาจจะเข้าสู่ระบบของพวกเขา Facebook และได้รับข้อมูลได้ เกี่ยวกับเพื่อนของพวกเขา หากพวกเขาอนุมัติดังกล่าวหรือที่คล้ายกัน ดังนั้น CS50 ทราบว่าเกินไป มีบางส่วนของ API ของตัวเอง หนึ่งสำหรับข้อมูลแคตตาล็อกแน่นอน บางอย่างสำหรับเมนูกอดในการรับประทานอาหาร ห้องโถงทั้งหมด อาคารและสถานที่ ในมหาวิทยาลัยเรามี API สำหรับเช่นกัน ที่คุณสามารถสอบถามในทำนองเดียวกันและได้รับ ข้อมูลต้นฉบับกลับที่คุณสามารถบูรณาการ เป็น PHP หรือ JavaScript หรือแม้กระทั่ง แม้ว่าจะน้อยกว่าปกติ, โครงการสุดท้าย C ตาม อันที่จริงก่อนสุดท้าย โครงการมีความคืบหน้าเพียงไม่กี่ คุณได้รับอีเมลจากเราไปวัน ๆ ตระหนักดีว่าข้อเสนอของ เนื่องจากมาจันทร์นี้ มันไม่จำเป็นต้องมีผลผูกพัน แต่คุณ จะต้องได้รับการเรียนการสอนเพื่อนของคุณ ได้รับการอนุมัติก่อนที่จะทำ การเปลี่ยนแปลงใด ๆ นั้นไม่นาน แล้วข้างหน้าเป็น จำนวนของเหตุการณ์สำคัญอื่น ๆ เพื่อที่จะแซวคุณเกินไป กับความเป็นไปบางอย่าง เรามีพวงของ เหล่านี้หลอดไฟสี และบางส่วนของพวกคุณตอนนี้มีบางส่วน เหล่านี้ในห้องพักหอพักของคุณได้เป็นอย่างดี และพวกเขาก็มี API ดังนั้นจำเหล่านั้นสัปดาห์ที่หลอดไฟไบนารี ที่ผ่านมาว่าแดนแบรดลีย์และธานเซล ดัฟฟ์สร้างขึ้นสำหรับเรา พวกเขาใช้อินเตอร์เฟซซอฟแวร์ที่จะ หลอดไฟนี้ซึ่งในขณะนี้ เสียบเข้ากับกระแสไฟฟ้า แล้วผ่านแบบไร้สาย เชื่อมต่อกับสิ่งเล็ก ๆ น้อย ๆ เรียกว่าสะพานลงที่นี่ เหมือนเป็นกรรมสิทธิ์ของเราเตอร์เล็ก ๆ น้อย ๆ ไปยังอุปกรณ์นี้โดยเฉพาะ แต่มันกลับกลายเป็นว่าฉันรู้วิธีการ ส่งข้อความ HTTP, ที่เราทุกคนตอนนี้ทำ ฉันสามารถส่งข้อความเช่นนี้จะ หลอดไฟนี้จะเปิดหรือปิด หรือทำจำนวนใด ๆ ดำเนินการอื่น ๆ เกี่ยวกับมัน ขอให้สังเกตว่ามันไม่ได้รับก็ไม่ได้โพสต์ มีอีกใส่หนึ่งที่เรียกว่าเป็น มีจริงไม่กี่คำกริยาอื่น ๆ เช่นเป็น แต่สังเกตเห็นว่ามีเส้นทางที่นั่น เฉือน API, เฉือนพัฒนาใหม่ เฉือนเบาเฉือนหนึ่งเฉือนรัฐ ที่เห็นได้ชัดเพียง เส้นทางที่ บริษัท ฟิลิปส์ ตัดสินใจที่คุณต้องตี ที่มีการร้องขอ HTTP ถ้าคุณต้องการที่จะเปลี่ยนสถานะ หลอดไฟใช้ HTTP 1.1 จากนั้นสังเกตเห็นบรรทัดว่าง และแล้วในที่สุดสิ่งที่ดูเหมือนว่า ชนิดของอาร์เรย์ของการจัดเรียงบาง, นี้อีกครั้งเป็นไปได้เรียกว่า JavaScript Object สัญลักษณ์หรือเจสัน และสิ่งที่คุณเห็นว่านี่คือ มีสามคู่ค่าที่สำคัญ หนึ่งที่สำคัญคือการเรียกร้องให้ และค่าของมันเห็นได้ชัด เป็นไปได้จริง ความสว่างเท่ากับ 128 ซึ่ง เป็นชนิดของ int บาง และแล้วเวลาการเปลี่ยนแปลงเป็น ศูนย์ซึ่งเป็นที่เห็นได้ชัด นานแค่ไหนก็จะ ใช้เวลาในการเปิดสิ่งนี้ ดังนั้นตอนนี้หลอดไฟนี้จะปิด แต่ถ้าผมทำตรงเจ้านี่ให้ ฉันไปที่แผ่นโกงเล็ก ๆ น้อย ๆ ว่าแดนจัดตั้งขึ้นใน advance-- และฉันจะ ไปข้างหน้าและคัดลอก คำสั่งต่อไป ขดเป็นบางส่วนของคุณ อาจจะมีการรวบรวมใน CS50 พูดคุยเป็นสาธารณูปโภคเช่น Telnet ดังกล่าว ที่คุณสามารถจำลองการร้องขอ HTTP, โดยเฉพาะทำให้ ฉันสามารถส่งข้อมูลนี้ โดยเฉพาะสิ่งที่เราเพียงแค่ เห็นช่วงเวลาที่ผ่านมาโดยเฉพาะ ไปยัง URL นี้ไปที่นี่ แล้ว Curl จะไปจัดการ ทั้งหมดของส่วนหัวที่จำเป็น และมีการแยกของ ดังนั้นทั้งหมดที่ฉันต้องทำคือการคัดลอกนี้ใน หน้าต่าง terminal แล้วกด Enter และหลอดไฟไปที่ และนี่คือทั้งหมดจะผ่าน คอมพิวเตอร์ของฉันแบบไร้สาย อย่างใดลงไปที่สะพานซึ่ง จากนั้นมีการพูดคุยกับหลอดไฟนี้ ฉันจะทำอย่างอื่น ฉันจะทำให้สิ่งนี้ ไปสีแดงเช่น ฉันสามารถทำเช่น สิ่งที่ไปสีเขียวนี้ ฉันจะทำให้มันไปสีฟ้า และแจ้งให้ทราบในแต่ละเหล่านี้ กรณีทั้งหมดที่ฉันเปลี่ยน เป็นค่าสีที่เรียกว่าการ จริงให้มันบางสี เพื่อให้ฉันวางอันนี้เป็นอย่างดี ตอนนี้มันเป็นสีฟ้า และคุณสามารถทำแม้แต่นักเล่น สิ่ง where-- ขอไปเป็นสีเขียว และฉันจะทำเช่นนี้ของ แน่นอนด้วยรหัสของตัวเอง แต่แม้ API ตัวเอง สนับสนุนการดำเนินงานขี้ขลาด เช่นนี้ซึ่งขณะนี้จะรำคาญ เราต่อไปอีก 30 วินาที เพื่อให้เป็นหนึ่งในรสชาติของสิ่งที่คุณอาจ ทำอย่างไรกับ API หนึ่งนี้ที่เกี่ยวข้องกับ หลอดไฟ โปรดทราบว่า CS50 มีคู่ คู่ของ Google แก้วหากคุณต้องการ ชอบที่จะแก้ไขปัญหาสิ่งที่ตาม เส้นเหล่านั้น Arduino Unos ซึ่ง เป็นคอมพิวเตอร์เล็ก ๆ น้อย ๆ เล็ก ๆ เป็นหลักในแผงวงจรเล็ก ๆ น้อย ๆ ที่คุณสามารถเชื่อมต่อ สายไฟและสิ่งอื่น ๆ และการควบคุมจริง สภาพแวดล้อมของโลกที่แท้จริง แล้วมีคู่ ของเล่นใหม่ที่เรามี หนึ่งนี้อย่างแท้จริงเพิ่งมาถึง วันอื่น ๆ ทางไปรษณีย์ Myo สายรัดแขน และฉันคิดว่าเป็นวิธีที่จะ ได้รับคุณตื่นเต้นเกี่ยวกับโครงการ ที่คุณอาจใช้กับ ฮาร์ดแวร์นี้จะ จะมีการเล่นคลิปสั้น ๆ นี้ ที่พวกเขาใช้ในการแซวคน ว่าตอนนี้เราอยู่ในอนาคต [เล่นเพลง] DAVID ลัน: ดังนั้นในเวลาเพียงไม่กี่สัปดาห์คุณ ก็สามารถจะเย็นที่เป็นธรรม CS50 ว่า อุปกรณ์อื่นที่เรา มีพวงของการที่เราเป็น ความสุขที่จะกู้เงินจากโครงการ เรียกว่าการควบคุมการเคลื่อนไหว นี่คืออุปกรณ์ USB เล็ก ๆ น้อย ๆ คุณเชื่อมต่อกับคอมพิวเตอร์ที่ ช่วยให้คุณสามารถโต้ตอบกับ แล็ปท็อปของคุณ, Mac หรือ PC, ราวกับว่าคุณมีเช่น Xbox Kinect และจริงทำให้การเคลื่อนไหวร่างกายมาก เหมือนที่เราเห็นในนี้ วิสัยทัศน์ของอนาคต [เล่นเพลง] DAVID ลัน: ดังนั้นแม้ว่าคุณจะมี คิดไม่ออกว่าสิ่งที่ต้องการที่ อาจจะคิดค้นหรือทำงาน ในระดับฮาร์ดแวร์ไม่ว่า แม้หลังจากที่เพียงไม่กี่เดือนของ CS50, และความเข้าใจในการเขียนโปรแกรม โดยทั่วไปและการเขียนโปรแกรมเว็บมากขึ้น เมื่อเร็ว ๆ นี้และจากนั้นยัง APIs และ HTTP, คุณจะสามารถเข้าถึงได้ผ่านทาง API สำหรับซอฟแวร์ถ้าคุณ ไม่ต้องการที่จะยืมหนึ่งในจำนวนนี้ อุปกรณ์จริงพูดคุยกับมัน และไม่ต้องกังวลเกี่ยวกับ การใช้งานพื้นฐาน รายละเอียดที่สมบูรณ์ สอดคล้องกับความคิดของชั้นนี้ นามธรรมที่เราได้ เห็นตลอดภาคการศึกษา ดังนั้นยังสัปดาห์ที่ผ่านมา เห็นชิ้นคู่ของข่าว ไปครั้งแรกไปสัมมนาถ้าคุณ ต้องการที่จะเรียนรู้บางสิ่งบางอย่าง ขึ้นอยู่กับจำนวนของหัวข้อใด ๆ ดู URL ที่มี และหนึ่งนี้ถูกส่งไป ฉันโดยช้างที่คุณรู้ว่า ผู้ที่พิมพ์กองทัพของเราของช้าง และมันก็เป็นหัวข้อดังต่อไปนี้ ฉันกลัวทีวีใหม่ของฉัน ทำไมฉันกลัวที่จะเปิดการทำงานนี้ สิ่งที่คุณต้องการและจะเกินไป ดังนั้นเราตอนนี้ ชี้ไปในภาคการศึกษา เกินไปที่แม้ว่าคุณจะมี น้อยที่สุดของความเข้าใจ ของวิธีเว็บทำงานและ HTTP, และการรักษาความปลอดภัยสิ่งเช่นนี้ ควรเริ่มต้นที่จะจับสายตาของคุณ แต่ยังคุณจะเข้าใจ ไม่ว่าสิ่งเหล่านี้หรือไม่ ภัยคุกคามที่เกิดขึ้นจริง ดังนั้นฉันเอาตัดตอนไม่กี่ จากบทความนี้ที่นี่ และเรื่องดังต่อไปนี้ ฉันตอนนี้เจ้าของ ทีวีสมาร์ทใหม่ซึ่ง สัญญาส่งมอบสตรีมมิ่ง เนื้อหามัลติมีเดีย, เกมส์, แอพพลิเค, สื่อสังคมและอินเทอร์เน็ต เรียกดูโอ้และทีวีเกินไป ปัญหาเดียวก็คือฉันตอนนี้ กลัวที่จะใช้มัน, ผู้เขียนกล่าวว่า คุณจะเหมือนกันถ้าคุณอ่านผ่านทาง นโยบายความเป็นส่วนตัว 46 หน้าสำหรับโทรทัศน์ของคุณ ปริมาณของข้อมูลนี้ เก็บรวบรวมสิ่งที่จะส่าย มันล็อกที่ไหนเมื่อใดอย่างไรและ สำหรับวิธีการระยะเวลาที่คุณใช้ TV มันทำให้การติดตามคุกกี้ ที่เราได้พูดคุย และสัญญาณการออกแบบ ในการตรวจสอบเมื่อคุณมี โดยเฉพาะอย่างยิ่งเนื้อหาดูหรือ ข้อความอีเมลโดยเฉพาะอย่างยิ่ง ถ้าคุณต้องการที่จะตรวจสอบอีเมลบนทีวีของคุณ มันบันทึกปพลิเคชันที่คุณ ใช้เว็บไซต์ที่คุณเยี่ยมชม และวิธีการที่คุณโต้ตอบกับเนื้อหา ทำทุกที่ผ่านทางสมาร์ททีวีของคุณ นอกจากนี้ยัง, yet-- ปล่อยเอ็มวี ที่ addition-- ของฉัน ได้ในตัวกล้อง ด้วยการจดจำใบหน้า มีวัตถุประสงค์เพื่อให้ การควบคุมด้วยท่าทางโทรทัศน์ และช่วยให้คุณสามารถเข้าสู่ระบบ บัญชีส่วนบุคคลโดยใช้ใบหน้าของคุณ กลับหัวกลับหาง, ภาพที่มี บันทึกไว้ในทีวีแทนการอัปโหลด ไปยังเซิร์ฟเวอร์ของ บริษัท ใน downside, อินเทอร์เน็ต การเชื่อมต่อที่ทำให้ทีวีทั้ง ช่องโหว่ให้แฮกเกอร์ที่ ได้แสดงให้เห็นความสามารถในการ ที่จะใช้การควบคุมที่สมบูรณ์ของเครื่อง หนักใจมากขึ้นเช่นหากที่ไม่ สมาร์ทพอเป็นไมโครโฟน ทีวีแห่งเสียง คุณสมบัติการจดจำ ที่ช่วยให้ผู้ชมที่จะควบคุม หน้าจอที่มีคำสั่งเสียง แต่บริการที่มาพร้อมกับ คำเตือนเป็นลางไม่ดี โปรดทราบว่าถ้า คำพูดของคุณรวมถึง ส่วนบุคคลหรืออื่น ๆ ที่มีความสำคัญ ข้อมูลว่าข้อมูล จะอยู่ในหมู่ข้อมูลที่ถูกจับ และส่งไปยังบุคคลที่สาม ได้ที่? อย่าพูดว่าส่วนบุคคลหรือไว สิ่งที่อยู่หน้าทีวีของคุณ ดังนั้นนี้เป็นจริงจริง และมันยากที่จะไม่ดูว่าคุณ ไปที่ Best Buy หรือเช่นสำหรับทีวี วันนี้ พวกเขากำลังทั้งหมดมาร์ทในทางใดทางหนึ่ง และพวกเขาจะได้รับ อย่างชาญฉลาดและปล่อยเอ็มวี และพวกเขากำลังเพียงแค่การเก็บรวบรวมข้อมูล ในรูปแบบที่เราได้พูดคุยเกี่ยวกับ แล้วอัปโหลดผ่านทาง HTTP หรือ บางโปรโตคอลอื่น ๆ ไปยังเซิร์ฟเวอร์บาง ดังนั้นนี่เป็นบทความที่สนุก ในเว็บไซต์ออนไลน์นี้ ที่นี่ซึ่งพูดคุยเกี่ยวกับ โดยเฉพาะอย่างยิ่งข้อผิดพลาดหรือรหัสผิด ที่จริงเราสามารถผูก ในการอภิปรายเมื่อสัปดาห์ที่แล้ว ดังนั้นพาดหัวนี้เป็น ต่อไปนี้เรื่องที่จะไปที่นี่ จอช Breckman ทำงาน บริษัท ที่เป็นเจ้าของที่ดินในสัญญา ในการพัฒนาการจัดการเนื้อหา ระบบหรือ CMS ที่พวกเขากำลังเรียกว่า สำหรับเว็บไซต์ของรัฐบาลที่ค่อนข้างใหญ่ มากของโครงการที่เกี่ยวข้อง การพัฒนาระบบการจัดการเนื้อหา เพื่อให้พนักงานที่จะเป็น สามารถที่จะสร้างและรักษา เคยเปลี่ยน เนื้อหาสำหรับเว็บไซต์ของพวกเขา สิ่งที่ไปสวยดีสำหรับ ไม่กี่วันหลังจากนั้นจะมีชีวิตอยู่ แต่ในวันที่หก, สิ่งที่ไม่ได้ไปให้ดี เนื้อหาทั้งหมดที่เกี่ยวกับ เว็บไซต์ก็หายไปอย่างสมบูรณ์ และทุกหน้านำไปสู่​​การเริ่มต้น กรุณาใส่หน้าเว็บเนื้อหา ขออภัย จอชได้รับการเรียกตัวไป ตรวจสอบและสังเกตเห็น ว่าหนึ่งลำบากโดยเฉพาะอย่างยิ่ง ที่อยู่ IP ภายนอกได้ หายไปและถูกลบออกทั้งหมด เนื้อหาในระบบ ที่อยู่ IP ไม่ได้เป็น บางงอของแฮ็กเกอร์ต่างประเทศ ทำลายประโยชน์ ข้อมูลรัฐบาล มีมติ googlebot.com, การรวบรวมข้อมูลเว็บของตัวเองมากไปเดอร์ของ Google ขออภัย หลังจากที่บิตของการวิจัยและ scrambling รอบ ๆ เพื่อหาสำรอง noncorrupt, จอชพบปัญหา ผู้ใช้ที่ได้คัดลอกและ วางเนื้อหาบางส่วนจากที่หนึ่ง หน้าไปยังอีกรวมทั้ง แก้ไขเชื่อมโยงหลายมิติ เพื่อแก้ไขเนื้อหาบนหน้าเว็บ โดยปกตินี้จะไม่เป็น ปัญหาตั้งแต่ผู้ใช้จะออกไปข้างนอก จำเป็นต้องใส่ชื่อและรหัสผ่าน แต่ระบบการตรวจสอบ CMS, ระบบเข้าสู่ระบบ ไม่ได้คำนึงถึง แฮ็คที่มีความซับซ้อน เทคนิคของ Google แมงมุม ขออภัย ในฐานะที่เป็นมันจะเปิดออกของ Google แมงมุมไม่ได้ใช้ คุกกี้ซึ่งหมายความว่ามันสามารถ สามารถหลีกเลี่ยงการตรวจสอบ ถูกบันทึกไว้บนชุดคุกกี้เป็นเท็จ นอกจากนี้ยังไม่ได้ให้ความสนใจกับ JavaScript ซึ่งตามปกติ และแจ้งให้เปลี่ยนเส้นทางผู้ใช้ ที่ไม่ได้เข้าสู่ระบบ แต่มันจะทำตามทุก เชื่อมโยงหลายมิติในหน้าพบทุก รวมทั้งผู้ที่มี ลบหน้าในชื่อเรื่อง ขออภัย ดังนั้นสิ่งนี้หมายความว่าใน เทคนิค แต่สามารถเข้าถึงได้อย่างเป็นธรรมคำ? มันก็หมายความว่า ตลอดทั้งเว็บไซต์ของพวกเขา พวกเขามี URL ที่ไม่ต่างจากคนนี้ว่า คุณอาจเห็นในปัญหาตั้งเจ็ด การเรียกคืนในปัญหาตั้งเจ็ด หรือรู้ในปัญหาตั้งเจ็ด ว่าคุณกำลังท้าทาย เหนือสิ่งอื่นใด ที่จะขายหุ้นในนามของผู้ใช้ แต่การดำเนินการลักษณะการทำงานโดยวิธีการที่ การได้รับผ่านทางเชื่อมโยงหลายมิติในผู้ใช้ของคุณ อินเตอร์เฟซที่อาจจะ ไม่ใช่ความคิดที่ฉลาด เพราะถ้าเว็บไซต์ของคุณเป็นอย่างใด สามารถเข้าถึงได้ทั้งโดยมนุษย์ ผู้ที่คลิกไปรอบ ๆ หรือซื้อ ธ ปทเช่น Google หรือแมงมุม ขณะที่พวกเขากำลังเรียกว่าเป็นเพียง ในการรวบรวมข้อมูลเว็บที่พยายามดัชนี เว็บเป็นเครื่องมือค้นหา, ที่พวกเขาได้อย่างง่ายดายมาก ตีผ่านได้รับชนิดของ URL นี้ และนั่นคือหน้าที่ เทียบเท่ากับในกรณีนี้ การขายหุ้นของ Google ตอนนี้ตรงไปตรงมาก็สมบูรณ์ โง่ที่ CMS ใช้ JavaScript และคุกกี้ ที่จะใช้ระบบการเข้าสู่ระบบของ และไม่ได้ทำฝั่งเซิร์ฟเวอร์ที่เป็น พวกคุณทำและจะอยู่ใน PSet 7-- มี login.php file-- เสมอเสมอ เสมอการรักษาความปลอดภัยที่ควรจะเป็น ทำในฝั่งเซิร์ฟเวอร์ ไม่ได้อยู่บนฝั่งไคลเอ็นต์เพราะเช่นนี้ บทความแนะนำและคุณอาจจะด้วยตัวคุณเอง เห็นในบางจุดมันเป็น เล็ก ๆ น้อย ๆ สำหรับผู้ใช้ดีหรือไม่ดี เพียงแค่ปิด JavaScript ไม่ต้องพูดถึงคุกกี้ เพื่อให้เป็น WTF ประจำวันของคุณ ยังมีอีกคนหนึ่งซึ่ง เป็นเพียงชนิดของน่ากลัว ดังนั้นฉันจะพูดถึงมันว่า เพียง แต่เป็นบทเรียนชีวิต เมื่อใดก็ตามที่คุณใช้โปรแกรมประยุกต์ เรียกว่าเหมือน Snapchat หรือชอบ ที่บอกว่าภาพเหล่านี้มีอายุการใช้งาน ห้าวินาทีสิบวินาทีหรือ whatnot พวกเขากำลังชั่วคราวนั่นคือ อย่างกรณีที่ไม่ เหมือนไม่มีทางที่เป็นดิจิตอล ที่จะใช้รูปแบบของวิดีโอบาง หรือภาพหรือข้อความดังกล่าวร่วมกัน ว่าผู้รับในส่วนอื่น ๆ ไม่สามารถบันทึกข้อมูลอย่างใด ในทางไร้เดียงสามากที่สุดคน อาจจะใช้โทรศัพท์ของพวกเขา และพวกเขามีหน้าต่าง 10 วินาที ในขณะที่กำลังมองหาที่บางสแนป เพียงแค่ใช้โทรศัพท์อื่น ๆ และถ่ายภาพมันเห็นได้ชัดว่า ดังนั้นคุณจึงสามารถรักษา บางสิ่งบางอย่างในระบบดิจิตอลด้วยวิธีการที่ บางส่วนของคุณรู้ว่าวิธีการใช้ ภาพหน้าจอมือถือของคุณ ในความเป็นจริงถ้าคุณไม่ทราบนี้ ตระหนักดีว่าอย่างน้อย Snapchat, และฉันคิดว่าคนอื่น ๆ การใช้งานวันนี้ อย่างน้อยบอกคุณว่า ผู้รับมีจริง ถ่ายภาพหน้าจอของภาพของคุณ แต่แย่ลงยังนี้เป็น snappening, เป็นคนบัญญัติศัพท์ว่าเมื่อเร็ว ๆ นี้ ที่บางส่วน 100,000 snaps ได้รับการปล่อยตัวออกมา ในสิ่งที่เรียกว่าไฟล์ฝนตกหนัก ในเว็บไซต์ต่างๆในท้ายที่สุด และสิ่งเหล่านี้มีทั้งกลุ่ม ข้อความส่วนตัวและการโพสต์ มันจะเปิดออกส่วนใหญ่ของพวกเขาใจดี จึงไม่ใช่สิ่งที่คุณอาจคาดหวัง แต่เป็นเพราะคนที่มี ใช้เว็บไซต์ของบุคคลที่สาม เข้าสู่ระบบด้วย Snapchat ของพวกเขา ชื่อผู้ใช้และรหัสผ่านแล้ว ประหยัดทั้งหมดของ snaps ของพวกเขา ในเว็บไซต์ของบุคคลที่สาม และมันก็เป็นบุคคลที่สามที่ เว็บไซต์ที่ถูกแฮ็ก ซึ่งคนที่มีความหมายเพียงแค่คิดวิธี จะได้รับทั้งหมด 100,000 บวกของภาพเหล่านั้น ลงในฮาร์ดไดรฟ์ของตัวเอง เพื่อใช้ร่วมกันในภายหลัง ตรงไปตรงมาที่นี่ด้วยก็จัดเรียง ของโง่ที่ Snapchat จะดำเนินการในลักษณะที่ บุคคลที่สามที่สามารถจัดเรียงของการสกัดกั้น ข้อมูลและว่ามันไม่ได้ผูกติดอยู่กับคุณ การประยุกต์ใช้ตัวเองทำงานอยู่บนโทรศัพท์ แต่ที่นี่ก็ตระหนักว่าสิ่งเหล่านี้ สิ่งที่ไม่ควรจะจับคุณด้วยความประหลาดใจ หรืออย่างน้อยก็ควรจะมี เป็นบทเรียนชีวิตที่นี่ หากคุณต้องการทางเทคนิค รายละเอียดให้ไปที่ URL ที่มี ที่อยู่ในสไลด์ของว​​ันนี้ สิทธิทั้งหมดคำถามใด ๆ เกี่ยวกับการ บทเรียนชีวิตของวันนี้ใน CS? เปิดที่ปิด อะไรที่ทั้งหมดหรือไม่ อะไรที่ทั้งหมดหรือไม่ ฉันมีคนจำนวนมากการตรวจสอบ Snapchat หรือสิ่งที่พวกเขาขณะนี้ ขวาทั้งหมดดังนั้น SQL, Structured Query Language ลองห่อนี้ และแม้ว่า เราเพียงแค่รอยขีดข่วน พื้นผิวของนี้ ภาษาเราจะให้คุณ พอของภาษา ในรูปแบบของ PSet 7 เพื่อให้คุณสามารถแก้ไขปัญหาบางอย่าง การทำงานร่วมกันอย่างเป็นธรรม แต่ตระหนักถึงมีสอง สิ่งที่เราไม่ต้องการจากท่าน แต่พวกเขากำลังจะเป็น ที่สำคัญมาโครงการสุดท้าย และแน่นอนว่ามาทำให้เกิดขึ้นจริง เว็บไซต์ที่มีผู้ใช้จริง คือการตัดสินใจการออกแบบนี้ ปรากฎว่าใน ฐานข้อมูล MySQL, คุณ มีอัดแน่นของตัวเลือกเช่น ชนิดข้อมูลสำหรับคอลัมน์ของคุณ และสิ่งอื่น ๆ แต่คุณยังมี ทางเลือกของการจัดเก็บข้อมูลที่เรียกว่า เครื่องยนต์ทั้งหมดของข้อมูลของคุณ การจัดเรียงของระบบไฟล์ ถ้าคุณคุ้นเคย สำหรับข้อมูลทั้งหมดของคุณ รูปแบบมันเป็นอะไรที่สุดเก็บไว้ใน? และที่พบมากที่สุดอาจจะได้รับ MyISAM และ InnoDB ศัพท์เทคนิค ว่าเราจะดูแลเกี่ยวกับการเท่านั้น ในระดับหนึ่งที่มี และเป็นหนึ่งในไม่ได้ คุณลักษณะดังต่อไปนี้ สมมติว่าคุณมี ตู้เย็นหอพักเล็ก ๆ น้อย ๆ และคิดว่าคุณและ เพื่อนร่วมห้องที่แสดงตู้เย็นนี้ จริงๆรักนมพูด และนี่คือในความเป็นจริงว่า เรื่องที่มีคนบอกกับผมทางด้านหลัง ในวันที่ผมเอาแน่นอน เรียกว่า CS 161 ระบบปฏิบัติการซึ่ง ในทำนองเดียวกันการสำรวจหัวข้อนี้ ดังนั้นคุณมีตู้เย็นนี้ คุณออกจากนม และคุณมาที่บ้านเพื่อนร่วมห้องของคุณ ยังอยู่ในชั้นเรียนหรืออะไรก็ตาม และคุณตัดสินใจที่ฉันจะ ออกไปข้างนอกและได้รับนม ดังนั้นคุณปิดตู้เย็น, คุก ห้องพักหอพักไปฝั่งตรงข้ามถนน เพื่อ CVS หรือที่ใดก็ตามและได้รับ ในสายที่จะซื้อนม ในขณะที่เพื่อนร่วมห้องของคุณได้รับที่บ้าน จากชั้นเรียนได้รับในห้องพักหอพัก, เปิดตู้เย็นนอกจากนี้ยังตระหนักถึง ooph เราไม่ออกมาจากนม ดังนั้นเขาหรือเธอปิด ตู้เย็นแล้วจะเกิดอะไรขึ้น เพื่อไปที่อื่น ๆ CVS, ซึ่งเกิดขึ้นเป็น หนึ่งช่วงตึกห่างจาก CVS อื่น ๆ ในตารางและได้รับในสาย มีที่จะได้รับนม ตอนนี้แน่นอนเพียงไม่กี่นาที ภายหลังคุณทั้งสองได้รับกลับมา และที่เลวร้ายที่สุดของการเป็นไปได้ทั้งหมด ผลที่เกิดขึ้น ทั้งของคุณมีนม และคุณไม่ได้จริงๆ เช่นนมที่มาก ดังนั้นหนึ่งของพวกเขาเป็นเพียง จะเปรี้ยวในบางจุด ดังนั้นคุณจึงมีปริมาณที่มากเกินไป ของนมในตู้เย็นเพราะทำไม? [ไม่ได้ยิน] DAVID ลัน: ใช่คุณไม่ได้ อย่างใดในการติดต่อสื่อสารกับคนอื่น ๆ ที่คุณได้รับนม ดังนั้นในการที่ง่ายที่สุดของ วิธีการในโลกมนุษย์ วิธีการที่คุณอาจจะหลีกเลี่ยงโง่นี้ สถานการณ์ดังกล่าวเกิดขึ้น ว่าคุณจะจบลงด้วยหนึ่ง ข้อความที่พวกเขาใช่ดี แต่วิธีการอื่นใด โพสต์มันบันทึก DAVID ลัน: โพสต์มันบันทึก รูปแบบของการสื่อสารใด ๆ ที่บอกว่าเพื่อนร่วมห้องของคุณ อย่าเข้าไปในตู้เย็นสำหรับนม ฉันจะไปสต็อกของตัวเอง ดังนั้นคุณต้องอย่างใด เพื่อล็อคทรัพยากรนี้ ดังนั้นเราจึงสามารถทำให้เจ้านี่เราสามารถชนิดของ ทำลายเรื่องราวและกลายเป็นเรื่องราว CS โดยคิดเช่นนี้เป็นเพียงแค่ ตัวแปรที่เก็บค่าบางอย่าง และตอนนี้ คุณค่าจากน้ำนมเป็นศูนย์ ซึ่งคุณไม่ต้องการของคุณ เพื่อนร่วมห้องในการตรวจสอบตัวแปรที่ แล้วตัดสินใจเขาหรือตัวเอง ขึ้นอยู่กับสถานะของตัวแปรที่ ถ้าคุณอยู่ในขั้นตอนของการ เปลี่ยนสถานะของตัวแปรที่ ดังนั้นหนึ่งในสายของ SQL ที่เรา ให้คุณได้ใน 7 PSet ข้อกำหนด เป็นหนึ่งที่นี่ และเราจะไม่ใช้จ่ายมาก เวลาที่พูดคุยเกี่ยวกับเรื่องนี้ แต่มันจะเปิดออกถ้าคุณกำลังพยายาม ที่จะซื้อหุ้นบางส่วนในด้านการเงิน CS50 ที่คุณมีอยู่แล้ว หุ้นของคุณบาง ต้องการที่จะสามารถที่จะทำจำนวน ในสิ่งที่ร่วมกันทันที คุณต้องการที่จะสามารถที่จะ ได้อย่างมีประสิทธิภาพในระดับสูง ตรวจสอบที่ถูกต้องทั้งหมดถ้าฉันต้องการ ที่จะซื้อหุ้นของฟรี, เราหุ้นเงิน พูดคุยเกี่ยวกับในสเป็ค, ผมต้องการที่จะตรวจสอบครั้งแรก จำนวนหุ้นที่ผมมี และคิดว่ามันเป็นห้า และคิดว่าฉันต้องการที่จะ ซื้อ 10 มากขึ้นฉันที่สุด ต้องการที่จะมี 15 หุ้นของหุ้น ดังนั้นผมจึงต้องถามคำถามที่สอง สิ่งที่รัฐของตัวแปร? สิ่งที่รัฐของแถว? ฉันไม่กี่หุ้นปัจจุบันมี? แล้วคุณต้องการที่จะไปข้างหน้าและปรับปรุงมัน เพื่อให้เป็นอะนาล็อกไป นมให้คุณตรวจสอบแถว แล้วคุณต้องการที่จะปรับปรุงมัน เพราะถ้าคุณต้องการที่จะซื้อ 10 หุ้น คุณไม่ต้องการที่จะเปลี่ยน แถวที่ 10 ถึงคุณ ต้องการที่จะเปลี่ยนเป็น 5 บวก 10 หรือแน่นอน 15 บรรทัดของรหัสเพื่อให้แน่ใจว่า ทั้งสองความคิดแนวความคิด เกิดขึ้นด้วยกันหรือไม่ได้เลย ไม่มีใครรวมทั้งบางส่วนของผู้อื่น ผู้ที่เข้าสู่เว็บไซต์เดียวกัน อย่างใดสามารถขัดจังหวะ การตรวจสอบของแถว และการปรับปรุงแถว, เลือกและการปรับปรุงถ้าคุณจะ และไวยากรณ์ไม่สุดที่เห็นได้ชัด แต่หนึ่งบรรทัดยาวมันเป็น เพื่อให้แน่ใจว่าการดำเนินงานของทั้งสอง ตรวจสอบตัวแปรหรือตรวจสอบแถว และปรับปรุงแถวเกิดขึ้นอะตอม โอ้นี่เราไปอีกครั้ง ข้อความในโทรศัพท์ของฉัน ดังนั้นขอให้นี้ เล็ก ๆ น้อย ๆ ที่เป็นรูปธรรมมากขึ้น สมมติว่าคุณไม่ได้ การใช้ตู้เย็น และคุณไม่ได้ดำเนินการ PSet 7 แต่ธนาคารที่เกิดขึ้นจริง หรือตู้ ATM อัตโนมัติ Teller เครื่อง whereby คุณอย่างใด ต้องการที่จะสามารถที่จะช่วยให้ ผู้ใช้ในการโอนเงิน จากบัญชีหนึ่งไปยังอีก ตกลงแขวนบน ฉันจะปิดตอนนี้ขอขอบคุณ ดังนั้นเราจึงต้องการที่จะย้ายเงิน จากบัญชีหนึ่ง เข้าบัญชีที่แตกต่างกัน จำนวนเฉพาะ $ 100 ดังนั้นนี่คือชนิดของพล ตัวอย่างเช่น whereby คุณ, ATM, อาจต้องการที่จะดำเนินการสอง SQL คำสั่งลบจากบัญชีหนึ่ง, และเพิ่มบัญชีอื่น ๆ แต่คุณต้องการให้แน่ใจว่าสิ่งเหล่านี้ สองเส้นทั้งสองเกิดขึ้นหรือไม่ คุณไม่ต้องการอะไรบางอย่าง การขัดจังหวะ คุณไม่ได้บางคนเลวสมาร์ท อย่างใดยืนอยู่ที่ธนาคารแห่งอเมริกา มีสองตู้เอทีเอ็มด้านหน้า ของเขาและอย่างใด การเรียงลำดับของการพิมพ์ใน คำสั่งในเวลาเดียวกัน, หวังว่าจะพยายามที่จะหักค่าใช้จ่าย $ 200 แทน ของ $ 100 และมีเพียง $ 100 เครดิต ในระยะสั้นที่คุณต้องการนี​​้ ประพฤติตรงตามที่คุณคาดหวัง และวิธีที่คุณทำ นี้ใน SQL ฐานข้อมูล คุณตัดมันในสิ่งที่ ที่เรียกว่าการทำธุรกรรม ตัวอักษรใน SQL คุณสามารถเรียก CS50 ของ ฟังก์ชั่นการค้นหาด้วยคำพูดเริ่มต้น unquote การซื้อขาย จากนั้นคุณสามารถดำเนินการจำนวนใด ๆ ของแบบสอบถาม SQL ต่อมา แต่ก็ไม่มีใครใช้ ผลกระทบในฐานข้อมูล จนกว่าคุณจะเรียกใช้แบบสอบถามอ้าง unquote กระทำถ้าอีกครั้งโดยใช้ PHP และด้วยวิธีนี้คุณสามารถมั่นใจได้ว่า แม้ว่าคุณจะมี 1,000 ผู้ใช้ทุกคน ตีฐานข้อมูลของคุณ ในเวลาเดียวกัน, SQL จะสัญญาว่าสิ่งเหล่านี้ สองคำสั่งจะเป็น ดำเนินการหนึ่งที่เหมาะสมหลังจากที่อื่น ๆ ดังนั้นคุณจะไม่สิ้นสุดกับส่วนเกินของ นมหรือจำนวนเงินที่ไม่ถูกต้องในที่สุด ของเงิน เพื่อให้ในใจ ไม่มากสำหรับ PSet 7 แต่สำหรับโครงการสุดท้าย ถ้าคุณเป็นจริง พยายามที่จะย้ายข้อมูลไปรอบ ๆ ในตารางที่คุณอาจที่นี่ แต่บางทีอาจจะได้ง่ายและมากขึ้น ที่เห็นได้ชัดในการทำความเข้าใจกับตัวอย่าง เป็นหนึ่งที่นี่ และใครบางคนส่งเราเกี่ยวกับ นี้เพียงวันอื่น ๆ เมื่อเขาเห็นสิ่งที่คล้ายกันออนไลน์ ดังนั้นเพื่อความรู้ของฉันระบบพิน ไม่เสี่ยงต่อการโจมตีครั้งนี้ และผมมีความคิดว่าจะได้ใช้ ฐานข้อมูล SQL ใต้เครื่องดูดควัน แต่ขอใช้งานได้ ประโยชน์ของการสนทนา นี่คือหน้าจอที่ คนมีแนวโน้มที่ฮาร์วาร์ เพื่อดูว่าเมื่อเข้าสู่ระบบด้วยของพวกเขา ฮาร์วาร์หมายเลข ID และขาของพวกเขา และคิดว่าระบบพินได้ ดำเนินการใน PHP และ MySQL ด้วย ฐานข้อมูลรหัสที่ใครบางคน ปีที่อาจจะมีการเขียนที่ผ่านมา อาจจะมีลักษณะเช่นนี้ ครั้งแรกที่ประกาศ ชื่อผู้ใช้ที่เรียกว่าตัวแปร และเพิ่งได้รับจาก superglobal POST จากนั้นได้รับตัวแปรอื่น เรียกว่ารหัสผ่านและทำเช่นเดียวกัน แล้วก็ดำเนินการ คำนี้มานานแล้วที่นี่ เลือกดาวจากผู้ใช้ที่ ชื่อผู้ใช้เท่ากับดังกล่าวและเช่น และรหัสผ่านเท่ากับดังกล่าวและเช่น ขอให้สังเกตว่าหยิก วงเล็บที่ผมเคยใช้ที่นี่ เพียงหมายถึง PHP ไป ข้างหน้าและแทน ค่าของทั้งสอง ตัวแปรที่มีสิทธิ พวกเขาไม่จำเป็นอย่างเคร่งครัด แต่ พวกเขามีแนวโน้มที่จะหลีกเลี่ยงการผิดพลาดทางไวยากรณ์ที่ละเอียดอ่อน ดังนั้นนี้ดูสมบูรณ์ ที่ถูกต้องได้อย่างรวดเร็วก่อน และมันก็เป็น คุณสามารถใช้ ระบบพินด้วยวิธีนี้ แต่คิดว่าซุปเปอร์ นักศึกษาสมาร์ทและเป็นอันตราย ข้อมูลนี้เป็นขาของเขาหรือเธอ ดังนั้นผมจึงได้ออกกระสุน สัญญาณที่นี่ในจำลองขึ้น และฉันได้พบจริง สิ่งที่เขาหรือเธออาจจะพิมพ์ และมันก็แปลก ๆ แต่สิ่งที่กระโดดออกที่คุณที่อาจเกิดขึ้น น่าเป็นห่วงเกี่ยวกับการป้อนข้อมูลของผู้ใช้ แม้ว่าคุณจะมีความคิดว่า การโจมตีแบบ SQL injection หมายความว่า ทำไมนี้ดูคาวน้อย? มีอะไรที่? [ไม่ได้ยิน] DAVID ลัน: หรือ ที่น่าสงสัยเล็ก ๆ น้อย ๆ ในความเป็นจริงว่าเป็นคำจาก SQL ดังนั้นที่ไม่ได้เป็นลางดี ความจริงที่ว่ามี ทั้งหมดนี้ราคาเดียว ตรงนี้ในความเป็นจริงหนึ่งในที่ง่ายที่สุด วิธีที่จะทำลายฐานข้อมูลบางอย่าง โดยการพิมพ์ชื่อเช่นรีลลี่ ที่มีเครื่องหมายวรรคตอนในนั้น เพราะถ้ามนุษย์ผู้เขียน รหัสเบื้องหลัง ไม่ได้คำนึงถึงว่ามี อาจจะมีราคาเดียวในของผู้ใช้ การป้อนข้อมูลและเขาหรือเธอจะใช้ ราคาเดียวในรหัสของพวกเขา สิ่งที่ไม่ดีสามารถเกิดขึ้นได้ ในความเป็นจริงแย่ลงยังพิจารณาเรื่องนี้ ถ้าเรื่องนี้เป็นอีกครั้งรหัส ว่าคนที่ปีที่ฮาร์วาร์ ที่ผ่านมาเขียนขา ระบบการแจ้งให้ทราบว่ามีอะไร เกี่ยวกับการที่จะได้รับแทน ชื่อผู้ใช้และรหัสผ่าน ถ้าผู้ใช้อีกครั้ง skroob เป็นชื่อผู้ใช้ของพวกเขา แล้วหนึ่งสองสามสี่ห้า อ้างหรืออ้าง unquote หนึ่งเท่ากับ อ้างหนึ่ง และสังเกตเห็นสิ่งที่สำคัญ นี่คือผู้ใช้ไม่ได้ รหัสผ่านเริ่มต้นของพวกเขาหรือ ขาของพวกเขาโดยอ้างข้อความ และพวกเขายังไม่ได้มันจบลง โดยอ้างเพราะเขาหรือเธอ คือสมมติว่าถ้า โปรแกรมเมอร์ไม่คมชัดเช่นนั้น พวกเขากำลังจะมีผู้ที่ ราคาเดียวในรหัสของพวกเขา ดังนั้นนี่คือรหัส และทดแทนที่ ตอนนี้อาจจะเกิดขึ้นคือ และฉันได้ขีดเส้นใต้ว่า ผู้ใช้มีการพิมพ์ใน ดังนั้นก่อนที่หลังจาก และสังเกตเห็นสิ่งที่น่าเป็นห่วงอย่างอ่อนโยนขณะนี้ เกี่ยวกับครึ่งขวาของรหัส SQL นี้หรือไม่? มันเป็นเรื่องเล็ก ๆ น้อย ๆ ที่ซับซ้อนมากขึ้นเป็นที่ยอมรับ กว่าคำสั่งที่เราได้เห็น แต่ตอนนี้ไม่สามารถเป็นไปได้ เป็นสิ่งที่ดีถ้าคุณอยู่ บอกว่าเลือกดาวซึ่งคือการเลือก ทุกอย่างจากตารางของผู้ใช้ ชื่อผู้ใช้ที่เท่ากับ skroob และ รหัสผ่านเท่ากับหนึ่งสองสามสี่ ห้าหรือหนึ่งเท่ากับหนึ่ง อะไรคือความหมายตรรกะ จากการที่ข้อสันนิษฐานที่ผ่านมา? มันเป็นเพียงจริงเสมอ และเนื่องจากเราจะเดาได้จัดเรียงของ หรือคิดออกโดยการทดลองและข้อผิดพลาด ที่โปรแกรมเมอร์ที่ เขียนรหัสนี้ไม่ได้ คาดว่าจะเป็นคนที่มีมนุษย์หรือไม่ดี พิมพ์ในราคาเดียวเช่นกัน เราสามารถ syntactically เสร็จสมบูรณ์แบบสอบถาม SQL กับสิ่งที่ไร้สาระ แต่สิ่งที่ ไม่ถูกต้อง syntactically ที่มักประเมินความจริง ดังนั้นถ้ารหัสนี้จะถูกใช้ในการตอบ คำถามจริงหรือเท็จควร ผู้ใช้นี้ได้รับอนุญาตให้ผ่าน คำตอบอยู่เสมอเห็นได้ชัดไป ที่จะเป็นจริงเพราะเสมอไป เพื่อเลือกสิ่งที่จากฐานข้อมูล เพราะหนึ่งในหลักสูตรที่เสมอเท่ากับหนึ่ง ดังนั้นสิ่งที่แก้ปัญหาได้หรือไม่? ดีใน PSet 7 เราจริง หลีกเลี่ยงปัญหานี้ทั้งหมดเข้าด้วยกัน เราให้คุณฟังก์ชั่นการค้นหาและเรา ขอแนะนำให้คุณใช้เครื่องหมายคำถาม เป็นตัวยึดคล้าย ในจิตวิญญาณที่จะ printf ของ% s, แต่สิ่งที่สำคัญเกี่ยวกับเครื่องหมายคำถาม ที่นี่คือถ้าคุณอ่านจริงผ่าน functions.php ที่ของเรา ฟังก์ชั่นการค้นหาจะดำเนินการ เครื่องหมายคำถามเหล่านั้นจะหนี โดยสิ่งที่อาจเป็นอันตราย เช่นพูดเดียวที่เปิด เป็นคำพูดเดียวหนี ดังนั้นนี่คือสิ่งที่ จริงที่เกิดขึ้นถ้าคุณ ใช้ฟังก์ชันการค้นหา CS50 หรือตัวเลขใด ๆ ของห้องสมุดฟรีบุคคลที่สามที่ ทำเช่นเดียวกัน ไม่ว่าในกรณีนี้ในสีเขียว, หากผู้ใช้พิมพ์ลงในคำพูดเดียว เพราะแบบสอบถาม ฟังก์ชั่นที่เราเขียนเป็น จะเพิ่ม backslashes ก่อน อ้างใด ๆ ที่เป็นอันตรายเช่น ดังนั้นนี่คือไม่ได้ใน ความเป็นจริงจะเป็น Legit นี้เป็นเหมือนการพิมพ์ในบ้ามอง รหัสผ่านที่แน่นอนไม่ได้ไป จะเป็นรหัสผ่านที่เกิดขึ้นจริงของ skroob ดังนั้น Takeaway สำหรับ CS50 เป็นหนึ่ง, อย่างที่มักจะใช้บางสิ่งบางอย่าง เช่นฟังก์ชั่นการค้นหาของ CS50 หรือห้องสมุดพื้นฐาน ที่เกิดขึ้นจะเรียกว่า PDO แต่ไม่เคยไม่เคย ไม่เคยทำรหัสเช่นนี้ โดยไม่ต้องหลบหนีหรือขัดถู พวกเขากล่าวว่าปัจจัยการผลิตของคุณ และคุณจะได้ในบางจุดอาจจะ เจอเว็บไซต์บางเช่นนี้ ในความเป็นจริงก็น่าจะเป็นกรณี เช่นที่สนามบินและโรงแรมในสถานที่ ที่พวกเขามี Wi-Fi ฟรี การเข้าถึงที่คุณต้องเข้าสู่ระบบเพื่อ เว็บไซต์เหล่านี้อยู่เสมอ ดำเนินการอย่างน่ากลัว และเพื่อให้การจัดเรียงของความสนุกในการออกกำลังกายที่บ้าน ไม่ได้สำหรับวัตถุประสงค์ที่เป็นอันตรายหรือมากกว่า ความสนุกสนานบนถนน การออกกำลังกายคือการพิมพ์ เครื่องหมายวรรคตอน, คำพูดเดียว ลงในแบบฟอร์มในเว็บไซต์บาง และดูสิ่งที่เกิดขึ้น และถ้าเซิร์ฟเวอร์เกิดปัญหาหรือให้ คุณชนิดของข้อผิดพลาดบางอย่าง มันอาจจะดีว่า ใครบางคนที่ยังไม่ได้คาดการณ์ไว้นี้ แล้วคุณควรจะแจ้งเตือนที่เหมาะสม หน่วยงานและดำเนินการต่อไปไม่ ดังนั้นตอนนี้พวกคุณควรจะหวังว่า เข้าใจอารมณ์ขัน geek บิตเพิ่มเติมได้ที่นี่ [หัวเราะ] DAVID ลัน: คุณรู้ว่าคุณ geek ต่อไปอีกหลาย ปีที่ผ่านมาคุณจะจำ ตารางที่บ๊อบบี้เล็ก ๆ น้อย ๆ เพราะการ์ตูนเรื่องนี้ที่นี่ เพื่อให้ทราบว่าในขณะที่เรา เปลี่ยนบริบทเป็นครั้งสุดท้าย ในวันนี้เพื่อใช้งาน JavaScript เราได้ใช้เวลาค่อนข้างน้อย เวลาในไวยากรณ์ของ PHP เพราะมันเป็นเรื่องจริง ซุปเปอร์คล้ายกับ C. และอย่างพอ JavaScript เกินไป เป็นซุปเปอร์คล้ายกับไวยากรณ์ซี เช่นเดียวกับที่เราจะเห็นใน เพียงแค่ชั่วครู่หนึ่งและในขณะที่เราจะ ได้เห็นต่อไปในสัปดาห์นี้โดยเฉพาะ คุณสามารถทำอะไรกับภาษานี้ แต่เป็นทั้งหมดมีประสิทธิภาพมากขึ้น โดยเฉพาะอย่างยิ่งกับ APIs แต่ก่อนการแนะนำอย่างรวดเร็ว ดังนั้นหนึ่งใน JavaScript มี ไม่มีฟังก์ชั่นหลักซึ่งเป็นสิ่งที่ดี เช่นเดียวกับ PHP, คุณก็สามารถเขียนโค้ด เงื่อนไขมีลักษณะเช่นนี้ และการแสดงออกอาจบูลีน ลักษณะเช่นนี้หรือเช่นนี้ สวิทช์ที่มีอยู่และพวกเขา อาจจะมีลักษณะเช่นนี้ สี่ลูปมีลักษณะเช่นนี้ ในขณะที่ลูปมีลักษณะเช่นนี้ ขณะเมื่อจะมีลักษณะเช่นนี้ แล้วอาร์เรย์มีลักษณะเหมือน นี้คล้ายกับ PHP แต่แจ้งให้ทราบว่าใน JavaScript คุณ ประกาศตัวแปรไม่ได้ด้วยเงินดอลลาร์ เข้าสู่ระบบไม่ได้กับชนิดข้อมูล แต่อย่างแท้จริง ด้วยการพูดว่า var ตัวแปรก่อนที่จะ มันก็จะพิมพ์อย่างอิสระ ในการที่จะมีประเภท แต่คุณไม่ประกาศแน่ชัดพวกเขา แล้วสตริงสำหรับ เช่นอาจมีลักษณะ เช่นนี้สตริงที่ ถูกเรียกว่าในกรณีนี้ แล้ววัตถุ และสิ่งเหล่านี้เราจะเห็นมากขึ้นก่อนที่จะยาว และวัตถุที่อาจจะเป็นหนึ่งใน เห็นมากที่สุดโครงสร้างข้อมูล ใน JavaScript ตาม โปรแกรมเพราะจะช่วยให้ คุณสามารถเชื่อมโยงโดยพลการ คู่ค่าที่สำคัญเพียง เช่น PHP ของเชื่อมโยงอาร์เรย์ และเช่นเดียวกับตารางแฮชของคุณเอง หรือพยายามที่เราดำเนินการ ไม่กี่สัปดาห์หลัง ดังนั้นเรามาดูสิ่งที่จริง เราสามารถทำกับ JavaScript และโดยเฉพาะอย่างยิ่งนี้ รายการซักผ้าของคุณสมบัติ เบราว์เซอร์ได้ว่า ช่วยให้เราสามารถขอ JavaScript ลงในเว็บไซต์ในลักษณะดังต่อไปนี้ JavaScript มักจะใช้เป็น ลูกค้าภาษาสคริปต์ฝั่ง มันไม่ได้รวบรวม มันก็คือการตีความ แต่แตกต่างจาก PHP, ซึ่งได้รับการทำงาน บนเซิร์ฟเวอร์เว็บเซิร์ฟเวอร์ หรือภายในลึก ลูกค้า, JavaScript จะแตกต่างกันในนั้นที่ มักจะทำงานในเบราว์เซอร์ ดังนั้นรหัส JavaScript ใด ๆ ที่คุณเริ่มต้นการเขียน สำหรับ PSet 8 หรือโครงการสุดท้ายของคุณ หรือในโลกแห่งความจริงโดยทั่วไปจะ จะถูกบันทึกไว้บนเซิร์ฟเวอร์อย่างแน่นอน ใน HTML จุดหรือจุด JS สำหรับแฟ้ม JavaScript แต่เบราว์เซอร์ที่เป็นไป ดาวน์โหลดที่ใช้งาน JavaScript รหัสตัวอย่างของคุณเองโครม หรือ IE หรือ Firefox หรืออะไรก็ตาม และรหัสที่เป็นจริงจะได้รับ ดำเนินการภายในของเบราว์เซอร์ของคุณเอง เพียงแค่จะทำให้เรื่องนี้เป็นจริงมากขึ้น เรามาดูนี้ในรูปแบบที่เป็นรูปธรรม เรามีความคิดว่ารหัสนี้จะไม่มี โดยไม่ได้จริงๆอ่านผ่านมัน แต่ให้ฉันไปที่ Facebook.com โดยไม่ต้องเข้า ผมขอไปตรวจสอบองค์ประกอบและไป, สมมุติว่า, เครือข่ายและโหลดหน้า และเราจะดูหน่อยให้ฉันเปลี่ยนโหลด หน้าจะได้รับคำขอทั้งหมดใหม่ และเป็นครั้งแรก ไฟล์ที่ฉันเห็นคือ CSS, CSS นี่เป็นครั้งแรก JavaScript ไฟล์และฉันมี ความคิดว่านี้ไม่ได้ แต่ที่นี่ เป็นบางส่วนของรหัส JavaScript ที่ไดรฟ์ที่ Facebook มันไม่ได้จริงๆว่า เผยให้เห็นเพื่อขยาย ก็ยังคงเป็นเช่นเดียวกับที่ไร้สาระ แต่คุณจะเห็นได้ลงมาด้านล่างมี มากยิ่งขึ้นจาก JavaScript ไฟล์เหล่านี้ ขออภัย นั่นคือปิง Let 's go ลงเล็กน้อย ต่อไปต่อไปต่อไป มีหนึ่ง มีหนึ่ง มีหนึ่ง ดังนั้นแม้ว่า Facebook, ที่อยู่เบื้องหลัง ฉากถูกเขียนขึ้นในส่วนหนึ่งใน PHP และตัวเองนั้นรุ่นของ Facebook, มีเป็นจำนวนมากของ JavaScript ในความเป็นจริงใด ๆ การพูดคุยที่คุณทำบน Facebook, ใด ๆ ของการปรับปรุงแบบอินไลน์เส้น ที่เกิดขึ้นในเวลาจริงทั้งหมดที่ คือการขับเคลื่อนด้วย JavaScript ใช่? ผู้ชม: ผมไม่แน่ใจว่า ถ้าเป็น Facebook, แต่ผมคิดว่า Facebook พัฒนา รหัสภาษาของตัวเองในบ้านของพวกเขา DAVID ลัน: พวกเขาทำ นั่นคือเหตุผลที่ผมบอกว่าความแปรปรวนของ PHP เรียกว่าฮิปฮ็อปที่พวกเขาเป็นจริง เพิ่มคุณสมบัติดังกล่าวว่าเมื่อ เครื่องหมายแรกที่นำมาใช้ Facebook, มันถูกเขียนใน PHP และการจัดเรียงของยังคงอยู่ การเรียงลำดับของภาษาที่ปลายด้านหน้า ที่พวกเขาใช้มาก ของการเข้ารหัสของพวกเขา แต่มัน ไม่ได้ภาษาที่ เครื่องชั่งน้ำหนักที่ดีโดยเฉพาะอย่างยิ่งพันล้าน คน และเพื่อให้พวกเขาได้เพิ่มของตัวเอง การปรับปรุงอยู่เบื้องหลัง และพวกเขาใช้ตัวเลขใด ๆ ภาษาอื่น ๆ สำหรับชิ้นส่วนต่างๆของ โครงสร้างพื้นฐานของตน ดังนั้นใช่มันเป็นความแปรปรวนของ สิ่งที่เรารู้ว่าเป็น PHP ดังนั้นลองมาดู ที่คู่ของตัวอย่าง ของวิธีการที่เราอาจจะใช้งานจาวาสคริปต์ที่นี่ ในรหัสที่มาในวันนี้เรามี พวงของไฟล์, ครั้งแรกของที่ ขอเรียกว่า DOM ศูนย์ ดังนั้น DOM ศูนย์มีลักษณะดังต่อไปนี้ ให้ฉันไปลงในไดเรกทอรีนี้ และเปิด domzero.html, ด้านบนของที่มีประเภทเอกสาร ประกาศว่าที่นี่มา HTML 5 และตอนนี้ที่นี่เป็นแท็ก นี่คือแท็กหัว และนี่คือสิ่งที่ใหม่ในวันนี้ ขณะนี้เรามีแท็กสคริปต์ ภายในหัวของหน้า และเห็นได้ชัดว่า น้อยมาก แต่แจ้งให้ทราบล่วงหน้า ที่ผมได้กำหนดไว้ สคริปต์ JavaScript และเป็นกันตั้งแต่นี้ เป็นความเข้าใจผิดกัน ใช้งาน JavaScript มีอะไรอย่าง จะทำอย่างไรกับ Java, ภาษา ว่าบางส่วนของคุณอาจ ได้เรียนรู้ใน APCS มันเป็นมากขึ้นของการตลาด สิ่งกว่าสิ่งใด ขี่เสื้อของปีที่ผ่านมา Java แต่ JavaScript, ไม่มีอะไรจะทำอย่างไรกับ Java เพียงอย่างเดียวและ annoyingly, ชื่อพลุกพล่าน ดังนั้นนี่คือวิธีการที่คุณประกาศฟังก์ชัน ใน JavaScript อักษรบอกว่าฟังก์ชั่น แล้วชื่อของฟังก์ชั่น, แล้วข้อโต้แย้งใด ๆ มันอาจจะใช้เวลา เช่นเดียวกับใน PHP จะเปิดออกใน JavaScript, หนึ่งในที่สุด ฟังก์ชั่นที่น่ารำคาญที่มีอยู่คือการแจ้งเตือน นี้เป็นหน้าต่างเล็ก ๆ ที่ จะปรากฏขึ้นและแจ้งเตือนคุณ กับชิ้นส่วนของข้อมูลบางส่วน มันขมวดคิ้วทั่วไปเมื่อ แต่เราจะใช้มันเป็นของเรา ใช้สิทธิครั้งแรกที่นี่ ขอให้สังเกตคุณสมบัติบางของ JavaScript ราคาเดียวและราคาคู่ ไม่จริงสำคัญอีกต่อไป คำพูดเดี่ยวและคู่ ราคาสามารถ interchanged, ในขณะที่ C, คุณต้องใช้ คำพูดคู่สำหรับสตริง, และคุณมีสองซิงเกิ้ล ราคาสำหรับตัวอักษร ในโลกของ JavaScript, หลาย ๆ คนที่คนส่วนใหญ่ ใช้ราคาเดียวทั่วสตริง เพียงเพราะมันเป็นสิ่งที่โวหาร แต่เป็นสิ่งที่ผู้ประกอบการบวกที่นี่ ซึ่งเรายังไม่เคยเห็นมาก่อนหรือไม่ ผู้ชม: Concatenation DAVID ลัน: Concatenation ดังนั้น C ไม่ได้มีนี้ PHP มีผู้ประกอบการจุด, ที่ทำอย่างนี้ ใช้งาน JavaScript มีผู้ประกอบการบวก ซึ่งพลุกพล่านเป็นเช่นเดียวกับ Java ตอนนี้สิ่งที่เกิดขึ้นที่นี่? ดังนั้นนี่คือสิ่งที่พื้นฐาน ความเข้าใจในภาพที่ เราโยนขึ้นสอง วันที่ผ่านมาในการเล่น จำได้ว่าเมื่อเราได้ง่าย รุ่นของ HTM​​L Page-- มันก็กล่าวว่าสวัสดีชาวโลก แล้วเราดึงต้นไม้ ไปทางขวาซึ่ง มีพวงของรูปสี่เหลี่ยมและเส้น เชื่อมต่อพวกเขาเช่นต้นไม้ครอบครัว เพื่อให้เป็นที่เรียกว่า DOM หรือวัตถุเอกสารแบบ และมันจะเปิดออกที่คุณสามารถเข้าถึง รูปสี่เหลี่ยมในต้นไม้ที่มีไวยากรณ์ที่ เหมือนดังต่อไปนี้ คุณอักษรบอกว่าเอกสารซึ่งเป็น ตัวแปรทั่วโลกพิเศษใน JavaScript โปรแกรมที่มีฟังก์ชั่น ที่เกี่ยวข้องกับมันที่คุณสามารถเข้าถึง คล้ายกับ struct แต่คุณก็ บอกว่าจุดแล้วชื่อฟังก์ชันของ ได้รับองค์ประกอบตาม ID องค์ประกอบฉันต้องการที่จะได้รับเป็น เห็นได้ชัดอ้างชื่อ unquote แล้วฉันต้องการที่จะได้รับค่าของมัน ตอนนี้เรากำลังได้รับข้างหน้าของตัวเอง ฉันไม่แน่ใจว่าสิ่งที่ ทั้งหมดนี้เป็นเรื่องเกี่ยวกับ ลองไปข้างหน้าอย่างรวดเร็วเป็น HTML ใน หน้าซึ่งเป็นที่ง่ายสุด ขอให้สังเกตว่าผมได้กำหนด แบบฟอร์มลงที่นี่ แจ้งให้ทราบผมได้รับมันไม่ซ้ำกัน ID แม้ว่าเราไม่ได้ใช้ แอตทริบิวต์นี้ก่อน แต่ตอนนี้ที่มีอยู่ในรูปแบบ HTML คุณไม่ซ้ำกันสามารถระบุชิ้นบาง ของ HTM​​L ที่มีการระบุเช่นนี้ แจ้งให้ทราบตอนนี้เจ้านี่จะเปิดออก HTML สนับสนุนต่อรายการซักผ้าที่ ช่วงเวลาที่ผ่านมาทั้ง พวงของตัวจัดการเหตุการณ์ และจัดการเหตุการณ์นี้กล่าวในการส่ง ในการส่งผู้ใช้นี้ รูปแบบโทรรหัสต่อไปนี้ และรหัสที่เกิด ที่จะเรียกว่าหรือดำเนินการ อยู่ตรงนี้, กรีก ฟังก์ชั่นตามมาด้วยผลตอบแทนที่ผิดพลาด ทุกอย่างอื่นควร จะคุ้นเคยสวย นี่คือสัญญาณของการพิมพ์ข้อความที่มี ID, ในกรณีนี้เป็นไปได้ชื่อ เราไม่ได้มีแอตทริบิวต์ชื่อจริง time-- นี้และปุ่มส่ง ดังนั้นหน้าผลลักษณะเช่นนี้ และพฤติกรรมที่เกิด คุณจะเห็นลักษณะเช่นนี้ หน้ามันเป็นเจ้าภาพในท้องถิ่นกล่าวว่าสวัสดี เดวิดแทบจะไม่เป็นที่ชื่นชอบความสุนทรีย์ วิธีที่จะทักทายผู้ใช้ แต่สิ่งที่เป็นจริงที่เกิดขึ้น? ดีพิจารณาสิ่งนี้ นี่คือฟิลด์ข้อความ และเป็นไปตาม HTML ที่นี่ผมได้รับมัน ระบุที่ไม่ซ้ำ เรียกว่าอ้างชื่อ unquote ในขณะที่ฉันได้กล่าวว่าเมื่อ ผู้ใช้ส่งแบบฟอร์มนี้ โดยการกดปุ่ม Enter หรือคลิกส่ง ปุ่มเรียกใช้ฟังก์ชันที่เรียกว่าทักทาย แล้วกลับเท็จ ลองพิจารณาผู้ที่อยู่ในสิ่งที่ตรงกันข้าม แจ้งให้ทราบเมื่อฉันคลิกส่ง, URL ของหน้านี้ไม่เปลี่ยนแปลง ไอคอนเบราว์เซอร์ ไม่ได้เริ่มต้นการปั่น ผมไม่ได้ไปที่ใดก็ได้และที่ แท้จริงเพราะผมบอกว่ากลับเท็จ กลับลัดวงจรเท็จหรือหยุด การทำงานเริ่มต้นของฟอร์ม เพื่อให้แล้วทำให้เรามี นี้คำถามสุดท้าย สิ่งที่ไม่ทักทายทำอย่างไร ดี Greet เห็นได้ชัด เรียกฟังก์ชันที่เรียกว่า การแจ้งเตือนผ่านไปในหนึ่ง อาร์กิวเมนต์ยาวที่ ผลจากการเชื่อมโยงเข้าด้วยกัน พวงของสตริงสวัสดีเว้นวรรคจุลภาค แล้วผลตอบแทนสิ่งนี้ ดังนั้นเอกสารที่มีลักษณะคล้ายโลก ตัวแปรไปยังรากของต้นไม้ที่ว่า การเรียกฟังก์ชั่นพิเศษ บัดนี้เป็นที่รู้จักเป็นอย่างอื่นเป็นวิธีการ ฟังก์ชั่นที่ ภายในของตัวแปรเป็น ที่เรียกว่าวิธีการแทนการทำงานของ เพื่อให้ได้รับองค์ประกอบตาม ID อะไรองค์ประกอบที่คุณทำ ต้องการที่จะได้รับโดย ID หรือไม่? อ้างชื่อ unquote และ แล้วค่าเฉพาะ ดังนั้นในคำอื่น ๆ รหัสที่เพียง พบว่าช่องข้อความที่มี ID เป็นชื่อ และจากนั้นได้รับค่าของมัน ดังนั้นถ้าผมจะเปลี่ยนแปลงนี้ และพูดว่าดาวินแทนของดาวิด และคลิกส่งตอนนี้เรา มีอวยพร Davin สิทธิทั้งหมดดังนั้นสิ่งที่ดีและดี แต่ขอให้ดูว่าเราสามารถทำให้ นี้เล็ก ๆ น้อย ๆ ทำความสะอาดตั้งแต่เพียง เขียนรหัสเช่นนี้ โดยทั่วไปจะได้รับการขมวดคิ้ว นี้จะไปดูน่ากลัว แต่สิ่งที่เป็นครั้งแรก ความแตกต่างที่คุณต้องทราบที่นี่ ในรุ่นนี้นอกจาก ชื่อเปลี่ยน DOM หนึ่ง? สิ่งที่โครงสร้างมีลักษณะที่แตกต่างกัน เกี่ยวกับเรื่องนี้เมื่อเทียบกับคนอื่น ๆ ? ใช่? ผู้ชม: เป็นรูปแบบที่ ด้านบนของสคริปตอนนี้หรือไม่ DAVID ลัน: ใช่รูปแบบบน ของสคริปต์สำหรับเหตุผลที่อยากรู้อยากเห็นบางส่วน เพื่อให้เป็นสิ่งแรก ที่กระโดดออกมาที่ผมด้วย และโชคดีที่อย่างน้อย ในส่วนนี้เป็นเหมือนกัน ดังนั้นสิ่งเดียวที่ดูเหมือนว่า จะแตกต่างกันคือ ดังนั้นนี่คือสิ่งที่ประณีต เกี่ยวกับการใช้งาน JavaScript 2 และก็จะทำให้มันยากที่จะ เข้าใจได้อย่างรวดเร็วก่อน โดยเฉพาะอย่างยิ่งสำหรับโครงการสุดท้ายถ้า คุณกำลังมองหาที่โค้ดตัวอย่างออนไลน์ แต่มันเดือดลงไปบางส่วน คุณสมบัติโครงสร้างพื้นฐาน ที่นี่อีกครั้งก็คือ เอกสารตัวแปรทั่วโลก ที่นี่อีกครั้งเป็นวิธีการที่หรือการทำงาน ที่ระบุว่าได้รับองค์ประกอบตาม ID เวลาที่ฉันต้องการที่จะนี้ ได้รับการสาธิตรหัสที่เรียกว่า ที่ว่าคืออะไร? ที่เหมาะสมเห็นได้ชัด ที่นี่รูปแบบของตัวเอง และตอนนี้สังเกตเห็นว่าเห็นได้ชัดว่าผม กลับโหนดจากต้นไม้นั้น แสดงให้เห็นถึงรูปแบบ ตัวเองไม่ได้ช่องข้อความ มันกลับกลายเป็นรูปแบบที่ว่า โหนดหรือสี่เหลี่ยมผืนผ้าจากต้นไม้ มีสิ่งที่เราจะเรียกทรัพย์สิน มากมากที่คล้ายกันมาก ในจิตวิญญาณที่จะ struct ในซีมันเป็นเพียง สมาชิกข้อมูลภายในของรูปสี่เหลี่ยมนี้ ดังนั้นผมจึงได้มีรูปแบบ ที่นี่และฉันติด, หรือฉันกำหนดให้ของที่ส่ง จัดการหรือมากกว่าในสถานที่ให้บริการส่ง ฟังก์ชั่นดังต่อไปนี้ และนี่คือโดยไกล craziest สิ่งป่านนี้ syntactically มันจะเปิดออกใน JavaScript และใน PHP และตรงไปตรงมาสำหรับเรื่องใน C ที่ แม้ว่าเราจะไม่ทำมันคุณสามารถ เพิ่มนิรนามไม่ระบุชื่อหรืออาคาแลมบ์ดา ฟังก์ชั่นที่ไม่ได้มีชื่อ แต่จะเรียกว่าอย่างไรก็ตาม ดังนั้นสิ่งที่ฉันทำที่นี่เป็นที่ที่ผมกำหนด นี้ On ส่งทรัพย์สินซึ่ง ที่อยู่ภายในของโหนดของต้นไม้ DOM ของฉันนี้ ฟังก์ชั่นตัวชี้ฟังก์ชันถ้าคุณจะ ฟังก์ชั่นที่ไม่มี ชื่อ แต่ที่ไม่ได้ สำคัญเพราะเราจะได้เห็น ในขณะที่วิธีการเรียกมันว่า เมื่อฟังก์ชันนี้จะเรียกว่า รหัสนี้ได้รับการดำเนินการแล้ว เท็จจะถูกส่งกลับเช่นเดียวกับก่อนที่จะ แต่สังเกตเห็นสิ่งที่ฉันได้ทำ ที่จุดในนี้ เรื่องที่ผมมีรูปแบบ มันมีรหัสเฉพาะที่เรียกว่าการสาธิต ลงที่นี่ผมมีแท็กสคริปต์ ที่รันโค้ดต่อไปนี้ มันยึดติดกับโหนดในที่ ต้นไม้กับมัน 's On ส่ง สถานที่ให้บริการฟังก์ชั่นนี้ได้ที่นี่ และเพียงแค่ลักษณะของวิธีการทำงานของเบราว์เซอร์ เมื่อตอนนี้ผมคลิกที่ส่งหรือกด Enter, ฟังก์ชั่นที่จะได้รับการเรียก มันไม่จำเป็นต้องชื่อที่เพราะ ห่าใส่ใจสิ่งที่มันเรียกว่า ครั้งเดียวที่มันเคยไปรับ เรียกว่าเมื่อฉันส่งแบบฟอร์ม ไม่มีความจำเป็นสำหรับฉันไม่ได้ นักพัฒนาของมนุษย์ ที่จริงเรียกว่าที่ใด ตอนนี้เพียงแค่เป็นทีเซอร์ราวกับว่า เขาไม่ได้คิดดัดพอ เรายังสามารถทำให้ ดูลึกลับขึ้นโดยใช้ ห้องสมุดที่นิยมสุดเรียกว่า jQuery ในความเป็นจริง jQuery และ JavaScript มักจะแฟทต์ และสิ่งที่เราจะทำในวันพุธที่เป็นจุดเริ่มต้น โดยใช้ภาษาและห้องสมุดเหล่านี้ ที่จะสร้างไม่ตรงกันมากขึ้น และการใช้งานแบบไดนามิก เช่นเดียวกับแผนที่ที่ได้รับ การใช้งานโปรแกรม ที่มีการปรับปรุงหน้าเว็บในแบบเรียล เวลามากเช่น Facebook หรือ Gchat ทำและไม่ได้ จำกัด ตัวเองเพื่อ โดนส่งโดยได้รับหรือโพสต์เพียง คนเดียว ดังนั้นผมจะเห็นคุณในวันพุธที่ [เล่นเพลง]