บทช่วยสอนPHP

PHP HOME แนะนำ PHP การติดตั้ง PHP PHP ไวยากรณ์ ความคิดเห็น PHP ตัวแปร PHP PHP Echo / พิมพ์ ประเภทข้อมูล PHP PHP Strings หมายเลข PHP PHP คณิตศาสตร์ ค่าคงที่ PHP ตัวดำเนินการ PHP PHP If...Else...Elseif PHP Switch PHP Loops ฟังก์ชัน PHP PHP Arrays PHP Superglobals PHP RegEx

แบบฟอร์มPHP

การจัดการแบบฟอร์ม PHP การตรวจสอบแบบฟอร์ม PHP ต้องใช้แบบฟอร์ม PHP URL แบบฟอร์ม PHP/อีเมล แบบฟอร์ม PHP เสร็จสมบูรณ์

PHPขั้นสูง

วันที่และเวลา PHP รวม PHP การจัดการไฟล์ PHP ไฟล์ PHP เปิด/อ่าน สร้าง/เขียนไฟล์ PHP อัพโหลดไฟล์ PHP คุกกี้ PHP PHP Sessions ตัวกรอง PHP ตัวกรอง PHP ขั้นสูง ฟังก์ชันเรียกกลับของ PHP PHP JSON ข้อยกเว้น PHP

PHP OOP

PHP OOP คืออะไร คลาส PHP/วัตถุ ตัวสร้าง PHP PHP Destructor PHP Access Modifiers PHP Inheritance ค่าคงที่ PHP PHP Abstract Classes อินเทอร์เฟซ PHP PHP ลักษณะ PHP Static Methods PHP คุณสมบัติคงที่ PHP เนมสเปซ PHP Iterables

ฐานข้อมูลMySQL

ฐานข้อมูล MySQL MySQL Connect MySQL สร้าง DB MySQL สร้างตาราง MySQL แทรกข้อมูล MySQL รับ ID ล่าสุด MySQL แทรกหลายรายการ MySQL ที่เตรียมไว้ MySQL Select Data MySQL Where MySQL สั่งซื้อโดย MySQL ลบข้อมูล ข้อมูลอัพเดต MySQL MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - รับ PHP XML Expat PHP XML DOM

PHP - AJAX

บทนำ AJAX AJAX PHP ฐานข้อมูล AJAX AJAX XML AJAX ค้นหาสด AJAX โพล

ตัวอย่างPHP

ตัวอย่าง PHP PHP คอมไพเลอร์ แบบทดสอบ PHP แบบฝึกหัด PHP ใบรับรอง PHP

ข้อมูลอ้างอิงPHP

ภาพรวม PHP PHP Array ปฏิทิน PHP PHP วันที่ ไดเรกทอรี PHP ข้อผิดพลาด PHP ข้อยกเว้น PHP ระบบไฟล์ PHP ตัวกรอง PHP PHP FTP PHP JSON คีย์เวิร์ด PHP PHP Libxml PHP Mail PHP คณิตศาสตร์ PHP เบ็ดเตล็ด PHP MySQLi เครือข่าย PHP การควบคุมเอาต์พุต PHP PHP RegEx PHP SimpleXML PHP Stream PHP String การจัดการตัวแปร PHP PHP XML Parser PHP Zip เขตเวลา PHP

การจัดการแบบฟอร์ม PHP


PHP superglobals $_GET และ $_POST ใช้เพื่อรวบรวมข้อมูลแบบฟอร์ม


PHP - แบบฟอร์ม HTML อย่างง่าย

ตัวอย่างด้านล่างแสดงแบบฟอร์ม HTML อย่างง่ายที่มีช่องป้อนข้อมูลสองช่องและปุ่มส่ง:

ตัวอย่าง

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

เมื่อผู้ใช้กรอกแบบฟอร์มด้านบนและคลิกปุ่มส่ง ข้อมูลในแบบฟอร์มจะถูกส่งไปยังไฟล์ PHP ชื่อ "welcome.php" ข้อมูลแบบฟอร์มถูกส่งด้วยวิธี HTTP POST

ในการแสดงข้อมูลที่ส่งมา คุณสามารถสะท้อนตัวแปรทั้งหมดได้ "welcome.php" มีลักษณะดังนี้:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

ผลลัพธ์อาจเป็นดังนี้:

Welcome John
Your email address is [email protected]

ผลลัพธ์เดียวกันสามารถทำได้โดยใช้วิธี HTTP GET:

ตัวอย่าง

<html>
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

และ "welcome_get.php" จะมีลักษณะดังนี้:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

รหัสด้านบนค่อนข้างง่าย อย่างไรก็ตาม สิ่งที่สำคัญที่สุดขาดหายไป คุณต้องตรวจสอบข้อมูลในแบบฟอร์มเพื่อป้องกันสคริปต์ของคุณจากโค้ดที่เป็นอันตราย

คิดว่าการรักษาความปลอดภัยเมื่อประมวลผลแบบฟอร์ม PHP!

หน้านี้ไม่มีการตรวจสอบความถูกต้องของแบบฟอร์ม แต่จะแสดงวิธีการส่งและเรียกข้อมูลในแบบฟอร์ม

อย่างไรก็ตาม หน้าถัดไปจะแสดงวิธีดำเนินการกับแบบฟอร์ม PHP โดยคำนึงถึงความปลอดภัย! การตรวจสอบข้อมูลแบบฟอร์มอย่างเหมาะสมเป็นสิ่งสำคัญในการปกป้องแบบฟอร์มของคุณจากแฮกเกอร์และนักส่งสแปม!



GET เทียบกับ POST

ทั้ง GET และ POST สร้างอาร์เรย์ (เช่น array( key1 => value1, key2 => value2, key3 => value3, ...)) อาร์เรย์นี้เก็บคู่คีย์/ค่า โดยที่คีย์คือชื่อของตัวควบคุมฟอร์ม และค่าเป็นข้อมูลอินพุตจากผู้ใช้

ทั้ง GET และ POST ถือเป็น $_GET และ $_POST สิ่งเหล่านี้คือ superglobal ซึ่งหมายความว่าสามารถเข้าถึงได้เสมอโดยไม่คำนึงถึงขอบเขต และคุณสามารถเข้าถึงได้จากฟังก์ชัน คลาส หรือไฟล์ใดๆ โดยไม่ต้องทำอะไรเป็นพิเศษ

$_GET คืออาร์เรย์ของตัวแปรที่ส่งผ่านไปยังสคริปต์ปัจจุบันผ่านพารามิเตอร์ URL

$_POST คืออาร์เรย์ของตัวแปรที่ส่งผ่านไปยังสคริปต์ปัจจุบันผ่านเมธอด HTTP POST


ควรใช้ GET เมื่อใด

ข้อมูลที่ส่งจากแบบฟอร์มด้วยเมธอด GET จะปรากฏแก่ทุกคน (ชื่อตัวแปรและค่าทั้งหมดจะแสดงใน URL) GET ยังมีข้อจำกัดเกี่ยวกับปริมาณข้อมูลที่จะส่ง ข้อจำกัดคือประมาณ 2,000 อักขระ อย่างไรก็ตาม เนื่องจากตัวแปรแสดงอยู่ใน URL จึงสามารถคั่นหน้าได้ อาจมีประโยชน์ในบางกรณี

GET อาจใช้เพื่อส่งข้อมูลที่ไม่ละเอียดอ่อน

หมายเหตุ:ไม่ควรใช้ GET เพื่อส่งรหัสผ่านหรือข้อมูลที่ละเอียดอ่อนอื่น ๆ !


ควรใช้ POST เมื่อใด

ข้อมูลที่ส่งจากแบบฟอร์มด้วยวิธี POST จะไม่ปรากฏแก่ผู้อื่น (ชื่อ/ค่าทั้งหมดถูกฝังอยู่ภายในเนื้อหาของคำขอ HTTP) และไม่จำกัดจำนวนข้อมูลที่จะส่ง

นอกจากนี้ POST ยังรองรับการทำงานขั้นสูง เช่น รองรับอินพุตไบนารีหลายส่วนขณะอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์

อย่างไรก็ตาม เนื่องจากตัวแปรไม่แสดงใน URL จึงไม่สามารถบุ๊กมาร์กหน้าได้

นักพัฒนาต้องการ POST สำหรับการส่งข้อมูลแบบฟอร์ม

ต่อไป มาดูกันว่าเราจะสามารถประมวลผล PHP ในรูปแบบที่ปลอดภัยได้อย่างไร!


แบบฝึกหัด PHP

ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

หากแบบฟอร์มในส่วนสีขาวด้านล่างถูกส่ง คุณจะส่งออกค่าจากฟิลด์ "ชื่อ" ใน welcome.php ได้อย่างไร

<form action="welcome.php" method="get"> First name: <input type="text" name="fname"> </form>
<html> <body> Welcome <?php echo ; ?> </body> </html>