DOUG LLOYD: ดังนั้นในของเรา วิดีโอเกี่ยวกับไวยากรณ์ PHP, เราพูดคุยกันมากเกี่ยวกับวิธี PHP สามารถนำมาใช้ในบรรทัดคำสั่ง รันโปรแกรมในลักษณะที่ เราคุ้นเคยกับสวยจากซี แต่ที่ผมยังกล่าวถึง ในวิดีโอที่ PHP ได้รับการพัฒนาในขั้นต้น ใช้การเขียนโปรแกรมเว็บเว็บไซต์ และในวิดีโอนี้เรา จะพูดคุยเกี่ยวกับวิธีการที่เรา ใช้ PHP ในบริบทการพัฒนาเว็บ เรารู้อยู่แล้วจาก วิดีโอของเราใน HTML, ว่าเว็บไซต์ที่ถูกสร้างขึ้น ออกจากชุดของแท็กของ HTM​​L ที่เป็น ความหมายที่กำหนด โครงสร้างของหน้าเว็บ แต่เว็บไซต์ที่ สร้างขึ้นด้วยความบริสุทธิ์ HTML ต้องทนทุกข์ทรมานจากการมาก ข้อ จำกัด ที่ร้ายแรงมาก และแสดงให้เห็นถึงข้อ จำกัด นี้ ให้พิจารณาต่อไปนี้ ดังนั้นตอนนี้ฉันต้องการที่จะสร้างหน้าเว็บ ว่าทุกครั้งที่ผู้ใช้เข้าชมได้ มันทำให้ฉันปัจจุบัน เวลาในเคมบริดจ์, Mass. แสดงให้นาทีล่าสุด ถ้าผมทำนี้ในขณะนี้ ผมอาจจะพูดอะไรบางอย่างเช่นนี้ เวลาปัจจุบันใน Cambridge-- เพื่อให้ฉันมี แท็ก, แท็กหัว, แท็กชื่อ ร่างกาย tags-- ปัจจุบัน เวลาในเคมบริดจ์เป็น 14:08, เวลาพิมพ์ออกทางทหาร ที่เกิดขึ้นถ้ามันเป็นสิ่งที่ตอนนี้ 02:09, 14:09? ดีเพื่อให้ห่างไกลกับ HTML ฉันมี ที่จะไปในและเปลี่ยนเป็น 14:09 และจากนั้นหนึ่งนาทีต่อมา ฉันต้องเปลี่ยนอีกครั้ง และจากนั้นหนึ่งนาทีต่อมา ฉันต้องเปลี่ยนอีกครั้ง และในขณะที่คุณสามารถจินตนาการว่า อาจจะเป็นงานที่เลวร้ายที่สุดที่เคย คุณเว็บมาสเตอร์สำหรับหน้าเว็บ และทุกนาทีตลอด 24 ชั่วโมงต่อวัน คุณจำเป็นต้องปรับปรุงเวลาปัจจุบันโดย ตนเองเปิด time.html และการเปลี่ยนแปลง เพียงตัวอย่างของรหัสที่จะพูด เวลาปัจจุบันในชั่วโมงและนาที ที่อาจไม่มาก ใช้ประโยชน์จากทรัพยากรของเรา ทั้งมนุษย์และการคำนวณ เว็บไซต์ที่มีทั้งหมด HTML จะคงสมบูรณ์ วิธีเดียวที่คุณสามารถปรับปรุง เนื้อหาที่เราได้เห็นเพียงแค่ คือการด้วยตนเองเปิดแหล่งที่มาเหล่านั้น ไฟล์ที่แก้ไขได้และช่วยให้พวกเขา และจากนั้นเมื่อผู้ใช้ รีเฟรชหน้า หรือเข้าชมหน้าสำหรับครั้งแรก เวลาที่พวกเขาจะได้รับเนื้อหาล่าสุด แต่เพียงเพราะเราได้ มันแก้ไขได้ด้วยตนเอง ถ้าเราเริ่มต้นในการผสมบาง PHP ในนั้น รหัสของเราจะได้รับจำนวนมากที่มีความยืดหยุ่นมากขึ้น และเราสามารถมีวิธีสำหรับหน้าเว็บของเรา จะเป็นแบบไดนามิกหรือปรับปรุงตัวเอง โดยไม่ต้องมีที่ไม่ดีของเรา เว็บมาสเตอร์ในตัวอย่างก่อนหน้า ที่จะได้รับการปรับปรุงสิ่งที่ตนเอง พวกเขาสามารถทำมันได้โดยอัตโนมัติ เราไม่ได้มีที่จะเข้าไปแทรกแซง เราจะได้รับการนอนหลับบาง ซึ่งอาจจะเป็นสิ่งที่ดีถ้า คุณกำลังทำมากของการเขียนโปรแกรมเว็บ ดังนั้นใน CS50 IDE เราเรียกใช้ เว็บเซิร์ฟเวอร์ที่เรียกว่าอาปาเช่ มันเป็นที่นิยมใช้มาก เปิดแหล่งที่มาของระบบเว็บเซิร์ฟเวอร์ ระบบนี้มี ความสามารถในการตีความ PHP ซึ่งจะเป็นประโยชน์ในกรณีที่ คุณต้องการที่จะทำโปรแกรม PHP ใด ๆ และใน IDE CS50 เรามีคำสั่ง จะทำให้นี้ง่ายมากที่จะทำ เริ่มต้น apache50 และแล้วเฉือนที่ เส้นทางที่จะเฉือนเฉือน ผบว่าเป็นเพียงวิธีการทั่วไปจริงๆ แสดงให้เห็นว่าสิ่งที่คุณได้ระบุไว้ที่นี่ เป็นเส้นทางไปโดยเฉพาะอย่างยิ่ง ไดเรกทอรีที่คุณ ต้องการที่จะเป็นราก เว็บไซต์หรือหน้าราก หรือโฟลเดอร์ที่เว็บเซิร์ฟเวอร์ของคุณ จะเริ่มต้นการตรวจสอบไฟล์และให้บริการ พวกเขาขึ้นให้กับลูกค้าที่ขอให้พวกเขา ดังนั้นขอ pop ไป CS50 IDE เพียงเพื่อ แสดงให้คุณได้อย่างรวดเร็วจริงๆวิธีการทำงานนี้ ดังนั้นที่นี่ใน IDE CS50 ผมใน ไดเรกทอรีที่เรียกว่าสัปดาห์ที่ศูนย์เก้า และฉันมี two-- ฉันมี ดำเนินการคำสั่ง LS เพียง ดังกล่าวข้างต้นที่จะแสดงให้คุณเห็นว่าฉันมี สองไดเรกทอรีที่นี่, PHP, ซึ่งเป็นชุดของแฟ้มที่ผมใช้ในการ วิดีโอไวยากรณ์ PHP แล้ว PHP-เว็บ ซึ่งเป็นชุดของแฟ้มที่ฉัน ต้องการที่จะใช้ในวิดีโอนี้ และฉันต้องการที่จะเริ่มต้น เช่นเว็บเซิร์ฟเวอร์ กับเนื้อหาของโฟลเดอร์ PHP-เว็บ เป็นไฟล์ที่ถูกเสิร์ฟ ดังนั้นสิ่งที่ฉันจะทำอย่างไร ฉันจะพิมพ์พื้นที่ apache50 เริ่มต้นพื้นที่ PHP, เว็บเส้นประ นั่นคือเส้นทางไปยังไดเรกทอรี จากที่ฉันกำลัง am จากนั้นผมก็กด Enter มันจะทำ นิด ๆ หน่อย ๆ ของสิ่งที่นี่ และจากนั้นก็จะพูดว่า อาปาเช่เริ่มต้นที่ประสบความสำเร็จ เว็บไซต์ของคุณอยู่ในขณะนี้และ at-- แล้วมี URL สำหรับเว็บไซต์ ดังนั้นสิ่งที่ฉันจะทำอย่างไร ฉันจะคัดลอกได้อย่างรวดเร็วนี้ และฉันจะเปิด up-- และ ฉันจะซูมออกนิด ๆ หน่อย ๆ here-- ฉันจะเปิดขึ้น แท็บใหม่ใน Chrome และฉันจะไปเยี่ยมชม URL ที่ ฉันจะกด Enter มันจะโหลด และฉันจะซูมออกมาอีกครั้ง และเราสามารถดูที่นี่เป็น เนื้อหาของไดเรกทอรีเว็บ PHP ของฉัน ดังนั้นตอนนี้สิ่งที่เกิดขึ้นโดยทั่วไป นี่คือตัวอย่างของฉัน CS50 IDE คือการให้บริการไฟล์เหล่านี้ไป ใครที่พวกเขาร้องขอ และในช่วงของ วิดีโอนี้เราจะเรียงลำดับของ ดูที่พวงของเหล่านี้เป็น ไฟล์ที่แตกต่างกันในบริบท เพื่อทดสอบว่าอาปาเช่ของคุณ เซิร์ฟเวอร์ทำงาน ซึ่งโดยทั่วไปจะ จะเป็นกรณีที่ใน CS50 IDE, แต่ถ้าคุณทำเช่นนี้มากขึ้นโดยทั่วไป และคุณเริ่มต้นสร้างเว็บของคุณเอง เซิร์ฟเวอร์มีจริงๆ การจัดเรียงที่พบบ่อยของอะนาล็อกไป "สวัสดีชาวโลก" ที่มักจะ ใช้สำหรับ PHP การพัฒนาเว็บ ซึ่งก็คือการมีไฟล์ ประกอบด้วยเพียง code-- นี้ คั่น PHP ตั้งด้วยข้อมูล PHP, วงเล็บอัฒภาคในระหว่าง ซึ่งเป็นพื้นพิเศษ ฟังก์ชั่น PHP ที่จะบอกคุณ สิ่งที่รุ่นของ PHP ที่คุณกำลังทำงาน ดังนั้นใน CS50 IDE ฉันมี ไฟล์ที่มีอยู่ที่เพียงแค่ ที่จะแสดงให้คุณเห็นสิ่งนี้จะมีลักษณะ ดังนั้นผมจึงกำลังมองหาที่ดัชนีของฉัน จากตัวอย่างเช่น PHP ของฉัน เช่น Apache ของฉันทำงานอยู่ เนื้อหาของ PHP เว็บ และฉันมีไฟล์ที่เรียกว่าที่นี่ info.php ฉันจะคลิกมันซูมออก นี่คือสิ่งที่คุณกำลังจะ เพื่อดูสวยมาก นี้เป็นเพียงการบอกฉันว่า เซิร์ฟเวอร์ Apache ของฉันคือการทำงาน และนี่คือเห็นได้ชัดที่ รุ่นของ PHP ที่ผมทำงาน นี้เป็นอะนาล็อกของฉันไป "สวัสดีโลก." ดังนั้นผมจึงรู้ว่าสิ่งที่มีการดำเนินงาน ดังนั้นเราจึงจะดีไป เราสามารถดำเนินการต่อไปจากที่นี่ ดังนั้นขอให้ทบทวนว่า ตัวอย่างเช่นเวลาที่เรามี พูดคุยเกี่ยวกับเว็บมาสเตอร์ยากจนของเรา ที่มีการปรับปรุงอย่างต่อเนื่องหน้า นี้อาจจะมีการแก้ไขสำหรับวิธีการที่ ฉันจะใช้สิ่งที่ เพื่อให้เว็บมาสเตอร์ไม่ได้ ต้องให้ปรับปรุงเวลา มันจะเป็นเพียงแค่การจัดเรียงของ เกิดขึ้นโดยอัตโนมัติ ลงด้านล่าง HTM​​L ก็ ที่คล้ายกันสวยด้วยการยกเว้น แต่ที่นี่ฉันมีบาง PHP ที่ด้านบน ฉันได้เห็นได้ชัดว่านี้เรียกว่า ฟังก์ชั่น date_default_timezone_set และเราไม่ได้พูดคุยเกี่ยวกับทุก ฟังก์ชั่นเหล่านี้ใน CS50, เพราะ PHP มีอาจจะ นับหมื่น ที่อาจจะมีบิตของ พูดเกินจริง แต่มันอาจจะไม่ได้ ก็มีจำนวนมากที่มีฟังก์ชั่นที่สร้างขึ้นใน และเพื่อให้เป็นฟังก์ชั่นที่เห็นได้ชัด กำหนดเขตเวลาของฉันเป็นสหรัฐ / ตะวันออก ซึ่งเป็นโซนเวลาที่ฉัน ปัจจุบันในการทำวิดีโอนี้ จากนั้นผมก็โทรไป ฟังก์ชั่นที่เรียกว่าวัน และเห็นได้ชัดว่าผมจัดเก็บ เขาของสิ่งที่เรียกว่าเวลา ดังนั้นสิ่งที่เกิดขึ้นที่นี่? ดีโดยทั่วไปสิ่งที่เป็น สิ่งที่เกิดขึ้นคือฉันทำสาย ไปยังเซิร์ฟเวอร์บางอย่างที่เป็นไปได้ บอกฉันว่าเวลาปัจจุบัน และฉันแปลงเป็นรูปแบบที่ ชั่วโมงนาทีวินาที และเหตุผลที่มันเป็น H ทุนนี้ เป็นไปเพื่อให้ฉันเวลา 24 ชั่วโมงไม่ได้ 12 เวลาชั่วโมงซึ่งจะเป็นตัวพิมพ์เล็กชั่วโมง และฉันเพียงแค่การจัดเก็บที่ ในตัวแปรที่เรียกว่าเวลา เพื่อให้บรรทัดที่สองของ PHP มีการเรียกร้องให้ฟังก์ชั่น วันที่เป็นเพียงการ บางเชือกซึ่งเป็น จะให้ฉันวันที่และ เวลาและพวงของข้อมูลอื่น ๆ และอาร์กิวเมนต์แรกที่นั่นเขา เป็นเพียงการแยกส่วนที่สำคัญ ที่ฉันดูแลเกี่ยวกับการเช่นนี้ ซึ่งเป็นชั่วโมงนาทีและสอง นั่นคือทั้งหมดที่เกิดขึ้น ดังนั้นผมจึงเก็บที่ในเวลาตัวแปร $ และจากนั้นก็ลงมาที่ ด้านล่างสุดมีฉัน มีชวเลขที่ พิมพ์ออกเวลาปัจจุบัน ดังนั้นฉันแค่จะพิมพ์ สิ่งที่เวลาปัจจุบัน ดังนั้นลองมาดูที่นี้ใน IDE CS50 และดูว่าเราอยู่ในขณะนี้ ประหยัดเว็บมาสเตอร์ที่ปัญหามาก สิทธิทั้งหมดเพื่อให้ที่นี่ผมอีกครั้ง กลับไปที่ไดเรกทอรีราก ของตัวอย่าง Apache ของฉัน และฉันมีไฟล์ที่เรียกว่าที่นี่ time.php ฉันแค่จะคลิกไปที่ว่า และฉันจะเลื่อนขึ้นเพราะ เรากำลังซูมสวยไกล เวลาปัจจุบัน 14:20:34 ดังนั้นฉันทำมันชั่วโมง นาทีและวินาที และฉันสามารถฟื้นฟู หน้าและได้รับเวลาใหม่ --41 ฉันจะรีเฟรชหน้าเว็บ และได้รับเวลาใหม่, 44, 46, 47 ดังนั้นผมไม่ชัดเจน การเปลี่ยนแปลงอะไรที่ตัวเอง ฉันนี่รีเฟรชหน้าเว็บ ดังนั้นผมจึงไม่สามารถที่จะกลับไปที่นั่นการแก้ไข และผมสัญญากับคุณฉันทำไม่ได้ มีภาคใด ๆ ที่มีการแก้ไขไฟล์ ในนามของฉันที่ด้านข้าง ฉันเพียงแค่ใช้ฟังก์ชั่นที่ PHP, เวลาในการสร้างเวลาสำหรับฉัน อัตโนมัติ เพื่อให้แม้ว่าฉันหลับ และเว็บเซิร์ฟเวอร์ของฉันทำงานอยู่ ผู้ใช้ที่เข้ารับการตรวจที่หน้ายังคงเป็น จะได้รับตรงเวลาปัจจุบัน เพื่อให้เป็นที่ดีงาม ผมได้ทำเว็บไซต์ของฉันแบบไดนามิกมากขึ้น ด้วยรหัส PHP ไม่มากเกินไป มันเป็นเพียงแค่สองบรรทัดของรหัสแล้ว นิด ๆ หน่อย ๆ ของคำสั่งการพิมพ์ และแล้วฉันมี เว็บไซต์แบบไดนามิกมากขึ้น กว่าตัวอย่างแรกที่เราเห็น ที่จุดเริ่มต้นของวิดีโอ ดังนั้นจำจากวิดีโอเกี่ยวกับไวยากรณ์ของ PHP ว่าเมื่อล่าม PHP ทำงาน โปรแกรมของเราก็ไม่สนใจทุกอย่าง ที่ไม่ได้อยู่ในตัวคั่น PHP, คายมันออกมา ในตัวอย่างที่สิ่งสิ่ง ว่ามันคายออก HTML ได้ และนี่หมายความว่าฉันสามารถในขณะนี้ กระจาย HTML และ PHP ร่วมกัน เพราะล่ามจะเพียง ไม่สนใจ HTML และการส่งออกที่แท้จริงมัน ซึ่งเป็นสิ่งที่ดีใช่มั้ย? เพราะสมมุติ ในตอนท้ายของวัน, ฉันต้องการเว็บไซต์ของฉันไป ถูกสร้างขึ้นจาก HTML เพื่อให้เว็บเบราเซอร์ใด ๆ ที่สามารถตีความ หรือเข้าใจ HTML ในหน้า และทำให้มันเป็นสิ่งที่เรา จริงสามารถเข้าใจเป็นมนุษย์ และฉันสามารถใช้ PHP สำหรับชิ้นส่วนของเว็บไซต์ของฉัน ต้องมีพลวัตที่ต้องให้ฉัน ที่จะมีสิ่งที่ปรับปรุงอย่างต่อเนื่อง ข้อมูลแบบคงที่ สามารถอยู่เหมือนกัน ตกลงดังนั้นที่ดี แต่ทำไมฉันจะทำเช่นนี้? ทำไมฉันจะผสม HTML และ PHP? ฉันสามารถพิมพ์ออกมาทั้งหมด HTML โดยใช้ฟังก์ชั่นการพิมพ์ PHP ฉันไม่ได้ทำอย่างนั้นทำไม? คิดเกี่ยวกับมันเป็นครั้งที่สอง ทำไมเมื่อฉันสามารถพิมพ์ out-- ฉัน อาจจะมีสายของ PHP ที่เพียงแค่พูดว่า แท็กพิมพ์หัวพิมพ์ ฉันไม่ได้ทำอย่างนั้นทำไม? ทำไมฉันผสม PHP และ HTML ได้ไหม? ดีถ้าคุณคิด เกี่ยวกับเรื่องนี้เป็นครั้งที่สอง PHP, ล่ามมี ในการตีความสิ่งที่เห็น และดังนั้นจึงจะมี ในการดำเนินการบรรทัดของรหัส พิมพ์ออก HTML พิมพ์แท็กหัวเปิด พิมพ์แท็กชื่อเปิด มันเป็นไปได้ที่จะ ดำเนินการและตีความ ว่าทุกข​​ั้นตอนเดียวของวิธีการ ทำไมไม่เพียงให้ ล่ามเพียงปัดสวะ สิ่งที่มันไม่เข้าใจ และทำมันโดยอัตโนมัติ? มันจะช่วยฉันมากเวลา การผสม HTML และ PHP ของฉันด้วยกัน และนั่นเป็นเหตุผลที่เราทำไม่ได้ เพียงแค่มีตัวคั่น PHP เปิด แล้วก็พิมพ์ออกมาทั้งหมด เนื้อหาของหน้าเว็บของเราเป็นหนึ่งในยักษ์ PHP เรียกร้องให้ฟังก์ชั่นพิมพ์แล้ว คั่นใกล้ PHP และที่เรากำลังทำ ดังนั้นที่ว่าทำไมเราผสมให้เข้ากัน จนถึงขณะนี้เรายังไม่ได้เห็นมากเกินไป แตกต่างจากไวยากรณ์ PHP ทั่วไป มันเป็นตรงไปตรงสวย เราได้เห็นแล้ว เครื่องหมายคำถามเท่ากับ เราเห็นคู่ของสายฟังก์ชั่นใหม่ แต่จริงๆไม่มีอะไรแฟนซีที่เกิดขึ้น อาจจะลองทำในสิ่งที่ นักเล่นเล็ก ๆ น้อย ๆ เกิดอะไรขึ้นถ้าเราต้องการที่จะส่งผ่านข้อมูล ระหว่างไฟล์ PHP ที่แตกต่างกัน เพื่อให้ผู้ใช้อาจจะสามารถ ส่งข้อมูลมาให้ฉัน แล้วฉันจะทำอะไรบางอย่าง กับมันในหน้าอื่น ดังนั้น PHP มีการสนับสนุน สิ่งที่เรียกว่าซูเปอร์ทั่วโลก ตัวแปรซึ่งเสียงน่ากลัวสวย พวกเขากำลังจริงๆเพียงแค่ เชื่อมโยงอาร์เรย์ยักษ์ ที่ช่วยดำเนินการนี​​้ ผ่านการทำงานของ ข้อมูลระหว่างไฟล์ PHP ที่ มีอยู่บนเว็บเซิร์ฟเวอร์ของเรา ครั้งแรกของซุปเปอร์เหล่านี้ Globals เรียกว่า $ _GET และมันก็น่าจะเป็น ง่ายที่สุดที่จะเข้าใจ ที่เกิดขึ้นกับ $ _GET อะไร? ดีโดยทั่วไปผู้ใช้ จะพิมพ์ข้อมูลเพิ่มเติม ในตอนท้ายของ URL ของเรา และสิ่งที่พวกเขาพิมพ์สมมติ มันเป็นรูปแบบในทางหนึ่ง เรียกว่าสตริงแบบสอบถามซึ่งเป็นเพียง ชุดของคู่ค่าคีย์แยกออกจากกัน โดยเครื่องหมาย บรรดาคู่ค่าที่สำคัญจะเป็น เก็บไว้ใน $ _GET อาเรย์ และจากวิดีโอของเรา ไวยากรณ์ PHP เรารู้ วิธีการทำงานกับ เชื่อมโยงอาร์เรย์แล้ว ดังนั้นนี่คือตัวอย่างของ บาง PHP ที่บางทีฉัน สกัดทุกคู่ค่าที่สำคัญ ว่าผู้ใช้ที่ให้มาใน URL ดังนั้นผมจึงมีตัวคั่น PHP ของฉันเปิด ฉันมีห่วง foreach ฉันทำซ้ำในซูเปอร์ อาร์เรย์ทั่วโลกที่เรียกว่า $ _GET และฉันต้องการที่จะสามารถที่จะอ้าง ทั้งที่สำคัญและความคุ้มค่า และฉันเพียงแค่พิมพ์ ออกมาแต่ละคนในที่เห็นได้ชัด แท็กวรรคของตัวเองที่นี่ ผมพิมพ์ออกบาง HTM​​L และ interpolating ค่า ของคีย์และค่าลงในคำสั่งที่ ดังนั้นลองมาดูที่วิธีการนี​​้ จริงจะทำงานใน IDE ของเรา และอาจจะนี้จะช่วยให้ แสดงให้เห็นนิด ๆ หน่อย ๆ ของสิ่งที่ได้รับเป็นจริงทำ ดังนั้นฉันกลับมาที่นี่ในรากเว็บของฉัน และฉันจะซูมใน นิด ๆ หน่อย ๆ ที่จะแสดงให้คุณเห็น ที่ฉันมีไฟล์ที่เรียกว่า, get1.php ดังนั้นลองคลิกที่ get1.php และฉันไม่ได้เห็นเนื้อหาใด ๆ ที่แปลกใช่มั้ย? ดีไม่จริงจริง เพราะผมไม่ได้จัดหา อะไรใน URL ฉันจะ get1.php แต่ฉัน ไม่จัดหาคู่ค่าปุ่มใด ๆ เป็นส่วนหนึ่งของสตริงแบบสอบถามของฉัน ดังนั้นขอเพิ่มสตริงแบบสอบถาม และดูสิ่งที่ไฟล์นี้สามารถทำได้ เพื่อเริ่มต้นสตริงแบบสอบถามคุณ เพียงแค่พิมพ์เครื่องหมายคำถาม แล้วบางทีฉันอาจจะพูดชื่อ = ดั๊กและปี = 2015 แล้วฉันจะกด Enter ตอนนี้สังเกตเห็นสิ่งที่เกิดขึ้น ฉันยังคงอยู่ใน get1.php แต่ตอนนี้ผมเคยจัดมา คู่ค่าที่สำคัญและฉัน พิมพ์ออกเอง ชื่อ paragraph-- ปี Doug-- 2015 ที่ว่ารหัสที่เราเพิ่ง เห็นในสไลด์ช่วงเวลาที่ผ่านมา และถ้าผมต้องการที่จะอาจจะเพิ่มอีก คู่ค่าคีย์และ class = CS50 ตอนนี้ฉันมีค่าคีย์อีก คู่ที่พิมพ์ออกมา เมื่อฉันกลับมายัง URL อีกครั้ง ตอนนี้อาจจะเป็นไม่ได้ รูปแบบที่ดีชะมัด ดังนั้นผมจึงมีรุ่นของ get.php อื่น มัน get2.php ความแตกต่างในครั้งนี้ หนึ่งคือผมมีไฟล์ CSS, และรูปแบบสิ่งที่ เล็ก ๆ น้อย ๆ อย่างสำหรับฉัน มันอาจจะไม่ได้มากที่สุด CSS ที่สวยงามที่สุดในโลก แต่มันก็เป็นเพียงวิธีการทำมันอีก ดังนั้นผมจึงยังคงสามารถได้รับการเข้าถึง ตัวแปรของฉันโดยใช้ $ _GET และในกรณีนี้ผมเพียงแค่ชนิดของ ทำให้ CSS น้อยแฟนซีมากขึ้น และถ้าเราไปปรากฏ IDE ของฉันเป็นครั้งที่สอง ฉันจะแสดงในเว็บ PHP ของฉัน ไดเรกทอรีที่นี่ get2.php เราจะเปิดขึ้น, HTML บางอย่างที่นี่ เห็นได้ชัดว่าฉันเชื่อมโยงในการที่ ไฟล์ CSS ที่ผมพูดถึง ฉันเปิดแท็กตาราง และแล้วที่นี่เป็นห่วง foreach ของฉัน นี่คือสิ่งที่ฉัน แสดงให้เห็นบนภาพนิ่งก่อน ความแตกต่างเพียงอย่างเดียวคือผม มีคีย์นี้และค่า CSS จัดแต่งทรงผมที่ผมใช้มัน แต่นั่นคือทั้งหมดที่ผมทำคือผม วนทั่ว $ _GET จะได้รับทั้งหมด ของคู่ค่าคีย์ และฉันพิมพ์ออกมาเป็นตาราง และเห็นได้ชัดว่าผมจัดรูปแบบกุญแจ ในทางเดียวกับ <ระดับ td = "ที่สำคัญ" ดังนั้นเห็นได้ชัดที่ใช้กับบาง เลือกเรียนในไฟล์ CSS ของฉัน GET.CSS และเห็นได้ชัดว่าผมพิมพ์ออก ค่าของฉันวิธีที่แตกต่างกันโดยสิ้นเชิง ซึ่งเป็นที่สวยมาก สิ่งที่เราเห็นที่นี่ที่ ค่านิยมของเราถูกพิมพ์ ที่มีพื้นหลังสีฟ้า และปุ่มพิมพ์ของเราได้ กับพื้นหลังสีเหลือง เพื่อให้เป็นวิธีที่ฉันได้รับ ผู้สไตล์ที่แตกต่าง เพราะฉันใช้คลาส CSS ที่แตกต่างกัน แต่ที่มันสวยมากสำหรับ GET เช่นเดียวกับฉันแค่สกัดข้อมูล และในกรณีนี้ฉันแค่ พิมพ์หน้าจอ ฉันได้รับมันออกมาจาก URL ที่ และนั่นคือสิ่ง GET ไม่สำหรับเรา คุณเห็นที่เป็นไปได้ ปัญหาที่เกิดขึ้นที่นี่ แต่? ทำไมเราอาจจะ ไม่ต้องการที่จะใช้ $ _GET? เกิดอะไรขึ้นถ้าบางทีผมทำแบบสอบถามนี้? --to get3.php ซึ่งผม ไม่ได้มีใน IDE ของฉัน มันเป็นเพียงไฟล์สมมุติ แต่สังเกตเห็นที่นี่เห็นได้ชัดว่า ผ่านรห​​ัสผ่านของฉันใน และอาจจะใช้รหัสผ่านของฉันเป็นที่น่าอาย หรือบางทีฉันไม่ต้องการคนที่จะ รู้ว่าสิ่งที่รหัสผ่านของฉันคือขวา ถ้าฉันผ่านมัน though-- ถ้าฉันใช้ วิธี $ _GET สิ่งที่เกิดขึ้นคือ ที่เป็นไปได้ใน URL ดังนั้นบางคนอาจจะใช้ที่เป็นอันตราย จะสามารถมองเห็นสิ่งที่ฉันทำ ฉันอาจจะผ่านพวกเขา ข้อมูลที่สำคัญ หรืออาจจะเป็นไม่ได้ใช้ที่เป็นอันตราย อาจจะเป็นเพียงเพื่อนของคุณที่ ยืนอยู่บนไหล่ของคุณ และตอนนี้พวกเขารู้ว่ารหัสผ่าน ไปยังบัญชี Facebook ของคุณ และบางทีพวกเขาจะไม่ ทำอะไรกับมัน แต่ถ้าเป็นรหัสผ่านของคุณ ส่งผ่าน $ _GET ไปยัง Facebook, ตอนนี้พวกเขาทราบรหัสผ่าน Facebook ของคุณ เพราะมันมีสิทธิใน URL เมื่อคุณได้ทำส่งข้อมูล และอื่น ๆ ที่อาจจะไม่ดีที่สุด วิธีการที่จะส่งผ่านข้อมูลที่สำคัญ มันเป็นวิธีที่ดีในการส่งผ่านข้อมูล ที่เราทำไม่ได้โดยเฉพาะอย่างยิ่ง เกี่ยวกับการดูแลในฐานะที่เป็นความละเอียดอ่อนเกินไป เพราะ GET เป็นไปอย่างรวดเร็วสวย เทียบกับ Globals ซุปเปอร์อื่น ๆ ที่เรากำลังจะพูดคุยเกี่ยวกับ แต่อาจจะไม่ได้เครื่องมือที่ดีที่สุด สำหรับข้อมูลที่สำคัญ เพื่อที่เราอาจต้องการที่จะ ใช้สิ่งที่เรียกว่า $ _POST, ซึ่งเป็นอีกหนึ่งตัวแปรซูเปอร์ทั่วโลก มันเป็นอาเรย์อีก ดังนั้นการทำงานสวยมาก เหมือนกับ GET ยกเว้นแทนการสกัด ข้อมูลจาก URL ที่ บางสิ่งบางอย่างที่มันไม่ผ่านส่วนหัว HTTP ดังนั้นจำจากเรา วิดีโอบน HTTP, เราได้พูดคุย เกี่ยวกับวิธีการเบราว์เซอร์เซิร์ฟเวอร์ และลูกค้าในการติดต่อสื่อสาร และข้อมูลจะถูกส่งกลับ มาในส่วนหัว HTTP ด้วย $ _POST ข้อมูลเป็นปกติ ที่ส่งผ่านส่วนหัว HTTP เหล่านั้น และเราส่วนใหญ่มักจะเห็น $ _POST ใน บริบทของการส่งรูปแบบ HTML คุณยังสามารถใช้รูปแบบ HTML ที่จะส่งสิ่งที่จะได้รับ แต่พวกเขากำลังมักจะใช้ ในบริบทของการโพสต์ ดังนั้นนี่คือตัวอย่างของรูปแบบ HTML ที่เป็นนักการ ตอนนี้เราได้เห็นเหล่านี้ก่อน แต่เรามี ไม่ได้เห็นในส่วนนี้, การกระทำ = "post.php" ดังนั้นเมื่อเราพูดคุยเกี่ยวกับรูปแบบใน บริบทของ HTM​​L, ฉันมีปุ่ม Submit และถ้าคุณจำผมคลิกส่ง แล้วหน้าฟื้นฟูเพียง ไม่ได้ทำอะไร ในกรณีนี้ผมส่ง สิ่งที่ฉันพิมพ์ในรูปแบบนี้ เพื่อไฟล์ PHP ที่เรียกว่า post.php และเห็นได้ชัดว่าวิธีการที่ผมทำแบบนั้น ในรูปแบบนี้จะใช้วิธีการโพสต์ ดังนั้นทุกชิ้นของข้อมูล ที่ผมพิมพ์ลงในแบบฟอร์มนี้ จะถูกส่ง ผ่านส่วนหัว HTTP มันจะสามารถเข้าถึงได้ใน post.php, เพราะนั่นคือการกระทำของรูปแบบของฉัน มันจะสามารถเข้าถึงได้ โดยไปที่ $ _POST และเห็นได้ชัดวิธีการที่ผมสามารถทำได้ ได้รับในแต่ละองค์ประกอบของแต่ละบุคคล กับอาเรย์ เป็นที่มีคุณลักษณะนี้ แอตทริบิวต์ชื่อของแท็กป้อนข้อมูลของเรา ดังนั้นเห็นได้ชัดว่าผมสามารถพูดได้ $ _POST ตาราง วงเล็บชื่อที่จะได้รับสิ่งที่ผู้ใช้ พิมพ์ลงในเขตข้อมูลแรก และ $ _POST รหัสผ่านของ PW ค่อนข้าง ที่จะได้รับสิ่งที่ผู้ใช้พิมพ์ ในด้านที่สอง ดังนั้นลองมาดูที่ มากกว่าใน CS50 IDE นี้ ดังนั้นที่นี่เรามีและฉันจะ ซูมเข้าเป็นครั้งที่สอง และเรามีไฟล์ที่เรียกว่า post.html ฉันคลิกที่ post.html ที่ด้านบนมากที่นี่ผมมี รูปแบบเว็บที่ง่ายมาก มันเป็นรูปแบบที่เราเพิ่งเห็น บนภาพนิ่งที่สองที่ผ่านมา ฉันสามารถพิมพ์ดั๊กและฉันสามารถ พิมพ์รหัสผ่านของฉันซึ่งเราทุกคน ทราบว่าเป็น squadgoals และเราจะส่งตี และเห็นได้ชัดว่า ส่งไป post.php และฉันเห็นได้ชัดว่าการพิมพ์ ดังนั้นฉันได้รับการกำจัดของทุกการรักษาความปลอดภัย ที่โพสต์ให้ฉันโดยเพียงแค่พิมพ์ออก ชื่อผู้ใช้และรหัสผ่าน ชื่อผู้ใช้คือดั๊ก รหัสผ่านของผู้ใช้เป็น squadgoals ผมไม่ทำเช่นนี้ได้อย่างไร? ดี pop ไป IDE อีกครั้งเป็นครั้งที่สอง เราจะเลื่อนลงไปใช้ ดูที่ post.php ซึ่งเป็น การดำเนินการที่ผมใช้ในการส่งที่นี่ นั่นคือการกระทำของรูปแบบ HTML ของฉัน และนั่นคือทั้งหมดที่ฉันทำ ชื่อผู้ใช้เป็นและฉันพิมพ์ ออกเนื้อหาของ $ _POST "ชื่อที่" และแล้วรหัสผ่านของผู้ใช้ เป็น $ _POST "รหัสผ่าน" ดังนั้นผมจึงได้รับข้อมูลว่า โดยกรอกแบบฟอร์มการ html และตอนนี้ผมสามารถแยกได้โดยใช้ $ _POST เนื่องจากวิธีการที่ผมใช้ในการส่ง ข้อมูลที่มีรูปแบบที่เป็นวิธีการ POST ตอนนี้ก็อาจจะไม่ได้ ดังนั้น great-- ฉันจะ ที่จะกลับไปเป็นครั้งที่สอง ชุดของเรา here-- มันอาจจะไม่ดีดังนั้นถ้าฉัน ส่งข้อมูลที่มีการโพสต์ ซึ่งเป็นความปลอดภัยมากขึ้นอย่างเห็นได้ชัด มันอาจจะไม่ดีดังนั้น ถ้าฉันทำอย่างนั้นแล้ว พิมพ์รหัสผ่านของผู้ใช้ มันควรจะเป็นความปลอดภัยมากขึ้น ตกลง แต่ก็ไม่ได้ทั้งที่มีความปลอดภัย และในน้อยนี้ ข้อมูลโค้ดที่นี่ฉันต้องการ เพียงแค่ดึงความสนใจของคุณบาง ความกังวลเกี่ยวกับความปลอดภัยของข้อมูลเพียงบางสิ่งบางอย่าง ที่จะคิดเกี่ยวกับการเป็นคุณ การทำงานหรือการใช้อินเทอร์เน็ต นี่เป็นเพียงบางสิ่งบางอย่างที่จะต้องพิจารณา ฉันบอกคุณว่าข้อมูล ส่งผ่านทางส่วนหัว HTTP เมื่อคุณใช้วิธีการโพสต์ ซึ่งหมายความว่าพวกเขาไม่ได้มีความปลอดภัยทั้งหมด พวกเขายากที่จะหากว่า โดยใช้วิธีการ GET ที่ มันเป็นเพียงแค่สิทธิใน URL แต่ยังคงมีวิธีที่จะพบว่า และฉันเพียงแค่ต้องการที่จะแสดง คุณนี้เพื่อให้คุณอาจจะ เริ่มคิดเกี่ยวกับเรื่องนี้ ในขณะที่คุณกำลังทำงานหรือการใช้ เว็บไซต์และส่ง รหัสผ่านและอาจใช้ รหัสผ่านเดียวกันใน จำนวนมากที่แตกต่างกัน รู้ว่ายังคงเป็นจริงสวย ง่ายที่จะหารหัสผ่านของใครบางคน ดังนั้นที่นี่ฉันจะ จะไป post2.html และความแตกต่างกับ post2.html และ post2.php บอบบางสวย ความแตกต่างเป็นเพียง ที่ฉันไม่พิมพ์ออกมา รหัสผ่านเมื่อฉันส่งแบบฟอร์ม ดังนั้นผมจะพิมพ์ในดั๊ก และฉันจะพิมพ์ ใน squadgoals แม้ แต่เรารู้ว่าเป็นรหัสผ่าน ก่อนที่ผมจะส่ง รูปแบบแม้ว่าฉันจะ ที่จะเปิดเครื่องมือสำหรับนักพัฒนาเพียงเพื่อ แสดงให้คุณเห็นสิ่งที่จะเกิดขึ้นที่นี่ ดังนั้นใน Chrome ฉันแค่จะตี F12 และที่กำลังจะเปิดขึ้นของฉัน เครื่องมือสำหรับนักพัฒนาบนด้านขวามือ ฉันยังไม่ได้ส่งแบบฟอร์มยัง ตอนนี้ฉันจะไปตีส่งในรูปแบบของฉัน และเห็นได้ชัดผมทำ โทรไปหรือฉันทำคำขอ เพื่อ post2.php ซึ่งจะทำให้ความรู้สึก ฉันจะไปคลิกที่ แล้วนี่ฉันจะ คลิกที่ส่วนหัว มีจำนวนมากของสิ่งที่เกิดขึ้นที่นี่ แต่ถ้าผมเลื่อนลงไปมาก ด้านล่างที่ถูกต้องแจ้งให้ทราบล่วงหน้า there-- ปฏิทินของฉัน ได้ปิดกั้นมันสำหรับสิทธิ second-- มีที่มุมด้านล่างมาก name-- ดั๊ก pw-- squadgoals ดังนั้นแม้ว่าฉันใช้การโพสต์ วิธีการซึ่งมีความปลอดภัยมากขึ้น เพียงทราบว่าเมื่อคุณทำเช่นนั้น คุณยังคงส่งข้อมูล ผ่าน HTTP และมันก็ยังคงเป็น พบโดยฝ่ายตรงข้าม มันเป็นเพียงแค่สิ่งที่เรากำลังจะ ที่จะมีการจัดการกับจริงๆ อาจจะมีวิธีการบางอย่างในการเข้ารหัสของเรา รหัสผ่านก่อนที่เราจะส่งพวกเขาไป ซึ่งจะเป็นที่ดีกว่า ที่ฉันไม่ได้ทำอะไรที่นี่ แต่ทราบว่าการโพสต์ วิธีการมีข้อ จำกัด มากเกินไป มันปรับปรุงกว่า GET ใน แง่ของความเห็นได้ทันที แต่มันไม่ได้แก้ไขเสร็จสมบูรณ์ ดังนั้นนี่คือตัวอย่างของ ได้อย่างรวดเร็วที่ออกกำลังกายที่บ้าน ที่คุณสามารถใช้เพื่อให้ได้บาง ฝึกการทำงานร่วมกับ PHP สร้างคู่ต่อไปนี้ของหน้าเว็บ ครั้งแรกก็ควรจะเป็นเรื่องง่ายมาก ในรูปแบบที่มีสาขาเดียวและส่ง ปุ่ม. ดังนั้นลักษณะคล้ายกันมากกับสิ่งที่เรา ก็ไม่ได้มี post.html และแล้วที่สอง ไฟล์ที่คุณควรสร้าง เป็นไฟล์ไฟล์ PHP ที่ คาดว่าการป้อนข้อมูลผ่านทางโพสต์ และขึ้นอยู่กับสิ่งที่ผู้ใช้พิมพ์ที่ คุณสามารถสันนิษฐานได้ว่าจะเป็นจำนวนเต็ม คุณไม่จำเป็นต้องดำเนินการใด ๆ การตรวจสอบข้อผิดพลาดหรือชอบ คุณสามารถสันนิษฐานได้ว่าผู้ใช้ จะพิมพ์ค่าจำนวนเต็ม หรือสิ่งที่ต้องการตีความโดย PHP เป็นจำนวนเต็มลงในแบบฟอร์มที่ คุณเพียงแค่ต้องการสร้าง n โดย n ตารางสูตรคูณ ดังนั้นหากผู้ใช้ส่ง 10 เราต้องการที่จะ มี 10 สูตรคูณ 10 หากผู้ใช้ส่ง 12 เราต้องการ 12 12 ตารางสูตรคูณ เพียงเพื่อให้คุณสามารถมองเห็นสิ่ง เรากำลังขับรถที่นี่ เราจะดูที่ แฟ้มนี้ใน IDE ของฉัน ดังนั้นที่นี่ใน IDE ผมมี mult_form.html ฉันจะคลิก ทั้งหมดที่ฉันต้องการจะทำคือการส่งค่า พิมพ์ 10 ส่งตี และเห็นได้ชัดว่า mult_table.php ซึ่ง เราสามารถดูที่ด้านบนมีใน URL, ฉันกำลังสร้าง 10 10 สูตรคูณ ถ้าผมพิมพ์ 15 และกดส่งตอนนี้ฉัน มี 15 สูตรคูณ 15 ฉันแน่นอนไม่ได้ไปแสดง คุณเนื้อหาของ mult_table.php ที่ เพราะที่จะนำความสนุกสนาน ออกจากนี้ที่ออกกำลังกายที่บ้าน แต่มันก็เป็นวิธีที่ดีที่จะได้รับบางส่วน ฝึกการทำงานร่วมกับลูป PHP และโพสต์ที่ง่ายมากหวังว่า ความเครียดเช่นฟรีเพียง ที่จะทำนิด ๆ หน่อย ๆ ของการปฏิบัติ และฉันมี CSS เล็ก ๆ น้อย ๆ ที่เกิดขึ้น ที่นี่เพื่อที่จะทำให้ตารางของแต่ละบุคคลของฉัน เซลล์เพียงชนิดของ pop ออก นิด ๆ หน่อย ๆ และมองเล็ก ๆ น้อย ๆ เช่นตารางสูตรคูณที่ ไม่ใช่แค่เพียงข้อความ ชนิดของการนั่งอยู่ที่นั่น สุดท้ายสุดทั่วโลกเราจะพูดคุยเกี่ยวกับ ในวิดีโอนี้คือสิ่งที่เรียกว่า $ _SESSION และบางทีนี้เป็นจริง ตัวอย่างที่ดีที่สุดของบางสิ่งบางอย่าง เราจะพิจารณาระดับโลก มันเป็นอาเรย์อีก มันเป็นอาเรย์อีก แต่มันสามารถเข้าถึงได้ผ่านทุก ไฟล์ PHP ที่มีอยู่ในระบบของเรา เราไม่ได้มีการส่ง ข้อมูลหนึ่งหน้าในเวลา เหมือนที่เราทำกับ GET และ POST ก็มักจะมี และเพื่อให้เป็นที่ดีสำหรับหน้า ที่คุณจะถูกบันทึกไว้ในยกตัวอย่างเช่น และคุณต้องการข้อมูลเข้าสู่ระบบของคุณ ยังคงมีอยู่จากหน้าไปยังหน้าไปยังหน้า คุณก็สามารถเริ่มต้นเซสชันแล้ว ใช้ $ _SESSION ที่จะบันทึกสิ่งที่ต้องการ ชื่อผู้ใช้หรือผู้ใช้ ข้อมูล ID และอื่น ๆ และข้อมูลที่จะยังคงอยู่ใน $ _SESSION จนกว่าคุณจะทำลายเซสชั่น นิด ๆ หน่อย ๆ ในภายหลัง การเขียนเว็บไซต์แบบไดนามิกที่มี PHP ทำให้พวกเขาดีขึ้นมาก เว็บไซต์ของคุณเป็นอย่างมาก แบบไดนามิกและคุณทำไม่ได้ ต้องทำมากเกินไปกว่าสิ่งที่ คุณมิฉะนั้นจะได้ทำเพียงแค่ ทำมันด้วย HTML แต่ต้องปฏิบัติ จำนวนมากของการปฏิบัติ แล้วคุณจะรู้ว่าวิธีการทำงานกับซี และเพื่อให้กระโดดไป PHP ไม่ได้เป็นเรื่องยุ่งยากเกินไป อะไรคือสิ่งที่อาจจะเล็ก ๆ น้อย ๆ บิตหากินคือการทำงาน กับความคิดใหม่นี้ของแถมและการโพสต์ และอาจผสม HTML และ PHP ของคุณ ด้วยกัน. แต่ยังต้องตระหนักว่าอินเทอร์เน็ต เป็นพื้นที่เก็บข้อมูลมากมายของข้อมูล และเอกสารของ PHP สามารถใช้ได้ ในหลายสถานที่ แต่บางทีอาจจะมากที่สุด canonically ที่ php.net และคุณสามารถหาที่นั่น จำนวนมากฟังก์ชั่นที่แตกต่างกัน และกรณีการใช้งานและตัวอย่าง เมื่อตัวอย่างตามตัวอย่าง ซึ่งถ้าคุณต้องการที่จะลองและตัวเลข วิธีการทำบางสิ่งบางอย่างราคาถูก, ใครบางคนอาจจะทำก่อนที่จะ และคุณสามารถใช้พวกเขาเป็น แรงบันดาลใจในการดำเนินการใด ๆ ก็ตาม มันเป็นสิ่งที่คุณกำลังพยายามที่จะใช้มากเกินไป ฉันลอยด์ดั๊ก นี่คือ CS50