ความแตกต่างของmethod GET กับ POST ในภาษา PHP

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jamepiyawat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 672
ลงทะเบียนเมื่อ: 21/05/2019 10:45 am

ความแตกต่างของmethod GET กับ POST ในภาษา PHP

โพสต์โดย jamepiyawat » 28/05/2019 5:56 pm

method GET กับ POST นั้นสามารถส่งข้อมูลไปได้เหมือนกันมีความแตกต่างกันยังไงไปดูกันครับ

อันอับแรกให้เราสร้างหน้ากรอกข้อมูลขึ้นมาก่อนให้เป็นการส่งข้อมูลแบบ method="GET"

โค้ด: เลือกทั้งหมด

<html>
    <head>
        <title></title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form name ='forml' method="GET" action="post.php">
            username : <input type='text'name='username' value=""><br>
            password : <input type="password"name='pass' value=''><br>
            <input type="submit"value='ตกลง'>
            <input type="reset"value='ยกเลิก'>
        </form>
    </body>
</html>


จากนั้นก็สร้างหน้าที่จะรับข้อมูลอย่าลืมให้รับเป็น $_GET ด้วยนะครับ

โค้ด: เลือกทั้งหมด

<?php

    $uname = $_GET["username"];
   
   
    $pwd = $_GET["pass"];
   
    echo $uname;
    echo '<br>';
    echo $pwd;


แล้วเราลองกรอกข้อมูลดูแล้วกดส่งไปครับ

Selection_449.png
Selection_449.png (11.57 KiB) เปิดดู 176 ครั้ง


จะเห็นได้ว่าตรง URL จะแสดง username และ password ของเราด้วย

Selection_450.png
Selection_450.png (9.8 KiB) เปิดดู 176 ครั้ง


แล้วถ้าเป็นการส่งข้อมูลแบบ POST ละจะเป็นยังไง ไปดูกัน

ให้เราสร้างหน้ากรอกข้อมูลขึ้นมาเหมือกับ GET เลยก็ได้แต่เราจะเปลี่ยนเป็น method="POST"

โค้ด: เลือกทั้งหมด

<html>
    <head>
        <title></title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <form name ='forml' method="POST" action="post1.php">
            username : <input type='text'name='username' value=""><br>
            password : <input type="password"name='pass' value=''><br>
            <input type="submit"value='ตกลง'>
            <input type="reset"value='ยกเลิก'>
        </form>
    </body>
</html>


แล้วเราก็สร้างหน้ารับข้อมูลของเราเหมือนเดิมอย่่าลืมตั้งชื้อไฟล์ให้ตรงกับ code ด้วยนะครับใน code นี้ผมตั้งชื่อไฟล์รับข้อมูลว่า post1.php

โค้ด: เลือกทั้งหมด

<?php

    $uname = $_POST["username"];
    $pwd = $_POST["pass"];
   
    echo $uname;
    echo '<br>';
    echo $pwd;

       


แล้วเรามาลองดูผลลัพกัน

Selection_452.png
Selection_452.png (7.25 KiB) เปิดดู 176 ครั้ง


จะเห็นได้ว่า method="POST" จะไม่มีข้อมูลที่เรากรอกไปแสดงที่ URL เพราะว่าเป็นการส่งโดยตรงโดยไม่ได้ผ่าน URL นั้นเองนั้นก็หมายความว่าการสั่งแบบให้ method เป็นรูปแบบ POST นั้นมีความปลดภัยกว่านั้นเองเพราะเราจะไม่เห็นข้อมูลที่เรากรอกไปผ่าน URL นั้นเองหวังว่าผู้ที่เข้ามาหาความรู้ในบทความนี้จะได้ประโยชน์ไปบ้างไม่มากก็น้อยนะ ครับ



ศึกษาข้อมูลเพิ่มเติมได้ที่
วิธีการแสดงเวลาให้ตรงกับเวลาในไทย
คำสั่ง Loop ภาษา php
ความรู้ทั่วไป
ถาม - ตอบ คอมพิวเตอร์
[Tip] Function แสดงเวลา แบบไทย

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 18 และ บุคคลทั่วไป 0 ท่าน