>> 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