>> [เล่นเพลง]
>> 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
ทำและไม่ได้ จำกัด ตัวเองเพื่อ โดนส่งโดยได้รับหรือโพสต์เพียง
คนเดียว
ดังนั้นผมจะเห็นคุณในวันพุธที่
>> [เล่นเพลง]