คลังเก็บป้ายกำกับ: คอมพิวเตอร์

การจัดการข้อมูลจากฟอร์มทางด้านเซิร์ฟเวอร์ โดย PHP

โดยปกติแล้วข้อมูลที่รับผ่านแบบฟอร์มที่ถูกต้องมานั้น จะต้องถูกส่งไปประมวลผลด้วย PHP อีกทีที่เซิร์ฟเวอร์ เพื่อผลลัพธ์ที่ถูกต้อง ดังนั้นแล้วเราต้องเขียนโค้ดในการรันข้อมูลจากฟอร์มหน้าเบราว์เซอร์ส่งไปประมวลผลแบบ PHP อีกครั้ง ซึ่งเราต้องใช้ property “method” ในการดูว่าข้อมูลที่ส่งมานั้นเป็นแบบใด เพื่อนำไปประมวลผลได้ถูกต้อง โดย method หลักๆ จะมี “POST” และ “GET” ดังรายละเอียดนี้

การอ่านข้อมูลที่ส่งมาด้วย method “GET”

ถ้าข้อมูลที่ส่งมานั้นเป็นเมธอด “GET” เราจะอ่านข้อมูลด้านเซิฟเวอร์ด้วยตัวแปร $_GET ซึ่งเขียนดังนี้ $_GET[‘name’] โดยที่ ‘name’ คือชื่ออินพุด หรือ property/attribute ของอินพุตที่เราต้องการอ่านข้อมูล เช่น หากในฟอร์มนั้นๆเรากำหนดชื่อ input เป็น “Keyword” การอ่านข้อมูลก็ต้องไป get keyword ดังนี้ $_GET[‘Keyword’]; อย่างไรก็ตามหากเราลืม หรือในฟอร์มไม่มีการระบุ method เอาไว้ ตัวเบราเซอร์จะเลือก method GET ไว้ให้อัตโนมัติ เป็นค่าดีฟอลต์

การอ่านข้อมูลที่ส่งเป็น method “POST”

หากข้อมูลที่ส่งเข้ามานั้นเป็น POST เราจะอ่านข้อมูลทางด้านเซิฟเวอร์ด้วย $_POST ในรูปแบบ $_POST[‘ชื่ออินพุด’] เหมือนๆกันกับ GET เช่น หากเป็นอินพุด “login” ก็จะอ่านโดย $_POST[‘login’]; แบบนี้

อย่างไรก็ดี ในบางครั้งเราอาจจะไม่รู้ว่า method ที่ส่งข้อมูลมานั้นเป็น method ใด รวมไปถึงเป็นการทำงานแบบไดนามิกที่ไม่อาจกำหนด method ล่วงหน้าได้ว่าจะส่งข้อมูลแบบ method ใดมา จึงต้องมีตัวแปรช่วยในการเช็ค ตรวจสอบเมธอด ดังนี้

$method = $_SERVER[‘REQUEST_METHOD’];

if($method == “GET”) {

$x = $_GET[‘x’];

} else if ($method == “POST”){

$x = $_POST[‘x’];

}

การอ่านข้อมูลจากอินพุตชนิดข้อความ

อินพุตประเภทข้อความมีหลากหลายแบบ เช่น text, password, textarea, hidden เป็นต้น ซึ่งล้วนแล้วแต่เป็น input ที่สำคัญ การอ่านข้อมูลจากอินพุตเหล่านี้ จะอ่านจาก $_GET หรือ $_POST ตามแต่ method ที่ได้รับเข้ามา และจะได้ผลลัพธ์เป็นข้อมูลที่ใส่ลงไปใน input โดยหากเป็น hidden ก็จะเป็นข้อมูลที่เรากำหนดให้แก่ property value แทน

ตัวอย่าง

code ใน form แสดงผลฝั่ง browser

<input type=”text” name=”login” />

<input type=”password” name=”pswd” />

<textarea name=”msg” cols=”30″ rows=”2″></textarea>

<input type=”hidden” name=”code” value=”123″ />

ทีนี้ฝั่งเซิฟเวอร์ก็จะอ่านข้อมูลเป็นอย่างไร เรามาดูกัน หากสมมุติว่าเป็นการส่งข้อมูลด้วย method POST

$login = $_POST[‘login’];

$password = $_POST[‘pswd’];

$password_memo = $_POST[‘msg’];

$code = $_POST[‘code’];