ภาษา PHP เบื้องต้น (2) Form

Web Development 02 กรกฎาคม พ.ศ. 2566 308
Home / Articles / 55

ในบทความนี้ ผมจะเริ่มจากการรับค่า form ของ HTML ที่เราสามารถสร้างให้รับ input จากผู้ใช้มาดำเนินการบน PHP ได้ เช่น นำไปคำนวน, สร้างระบบจัดการข้อมูล หรือ ออกแบบระบบสมาชิก เป็นต้น ซึ่งในตัวอย่างแรกจะเป็น form ที่รับ ข้อมูลการสมัครสมาชิก โดยไม่ได้จำกัดเพียงแต่ระบบนี้ เราสามารถนำความรู้การใช้ form ไปออกแบบสร้างระบบอื่นๆ ได้

รับค่าจาก Form

การรับค่าจาก Form ก็คือการส่งค่าใน HTTP Request ไปมาระหว่าง Client และ Server ซึ่งหลักๆ จะมีอยู่ 2 ประเภทคือ แบบ GET และแบบ POST

GET Request หมายถึง ส่วนของข้อมูลที่ถูกส่งผ่าน URL เช่น ?username=abc&password=abc โดยที่เครื่องหมาย ? เรียกว่า Parameter หรืออีกชื่อหนึ่งคือ Query ซึ่งมี & เป็นตัวคั่นระหว่างชุดข้อมูล

POST Request หมายถึงข้อมูลจะถูกส่งไปผ่าน body ของ HTTP request โดยไม่โชว์ใน URL แบบ GET request

ตัวอย่าง html code form ที่รับ ชื่อผู้ใช้ รหัสผ่าน และอีเมล์

<form action="register.php" method="post">
    <input type="text" name="username" placeholder="โปรดกรอก Username">
    <input type="password" name="password" placeholder="โปรดกรอก Password">
    <input type="email" name="email" placeholder="โปรดกรอก Email">
    <input type="submit" name="submit_btn" value="ส่งข้อมูล">
</form>

หากจะให้อธิบานส่วนต่างๆ ของ code ข้างต้น action="register.php" คือที่อยู่ของไฟล์ php ที่ form จะส่งค่าไป ในตัวอย่างคือไฟล์ register.php โดยผ่าน HTTP method แบบ POST

จาก code ข้างบน มี input ที่ส่งไป 4 ชุด คือ username, password, email, submit โดยในฝั่งของ PHP เราจะอ้างอิงไปถึงค่าในนั้นได้ ผ่าน attribute ที่ชื่อว่า name ที่ผมได้ใส่ลงไปใน tag input

ในไฟล์ register.php

หากเราต้องการเข้าถึงข้อมูลที่ส่งมาจาก form และจะแสดงผลออกมา ก่อนอื่นเราจะดึงค่าออกมาจาก form มาเก็บไว้ในตัวแปรก่อน หาก method เป็น GET ก็จะใช้ $_GET หากเป็น method POST ก็จะใช้ $_POST ซึ่งในตัวอย่างของเราเป็น POST

$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];

โดยที่ $_POST['submit_btn'] เราจะใช้ยืนยันว่า form ถูกกดแล้วหรือไม่ เราก็จะสร้างเงื่อนไขมาครอบไว้ดังนี้

if(isset($_POST['submit_btn'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
}

โดยที่ isset() คือ function ที่เอาไว้ใช้สำหรับ เช็คว่ามีตัวแปรนี้เป็นค่าว่างหรือไม่ (หากกดปุ่ม submit ค่าของปุ่มนี้ที่ส่งไปจะเป็นค่าที่อยู่ใน value หากไม่ได้กดปุ่ม หรือไม่ได้ส่ง $_POST['submit_btn'] มาด้วย โปรแกรมส่วนนั้นก็จะไม่ทำงาน) จากนั้นเราจะ echo มันออกมาโดยใช้คำสั่ง echo

if(isset($_POST['submit_btn'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];

    echo $username;
    echo $password;
    echo $email;
}

นี่ก็เป็นตัวอย่างสำหรับการเข้าถึงค่าที่ถูกส่งมาจาก form โดยที่เราสามารถนำไปสร้างระบบได้มากมาย ตัวอย่างต่อไปคือการเชื่อมต่อกับฐานข้อมูล MySQL ซึ่งจำเป็นต้องใช้ความรู้เกี่ยวกับการใช้คำสั่งจัดการฐานข้อมูล MySQL

Profile Picture.
  • Name (Pen name): Sunny Jirakit (Sunny420x)
  • Study: Bachelor Degree of Computer Science from Chiang Mai Rajabhat University
  • Personality: Architect (INTJ-T)
  • Experience: JavaScript,  Angular.js, React.js, Next.js  Express.js, Unity C#, Socket.io