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

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

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

Post Reply
User avatar
jamepiyawat
PHP VIP Members
PHP VIP Members
Posts: 1469
Joined: 21/05/2019 10:45 am

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

Post by jamepiyawat » 28/05/2019 5:56 pm

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

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

Code: Select all

<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 ด้วยนะครับ

Code: Select all

<?php

    $uname = $_GET["username"];
    
    
    $pwd = $_GET["pass"];
    
    echo $uname;
    echo '<br>';
    echo $pwd;
แล้วเราลองกรอกข้อมูลดูแล้วกดส่งไปครับ
Selection_449.png
Selection_449.png (11.57 KiB) Viewed 280 times
จะเห็นได้ว่าตรง URL จะแสดง username และ password ของเราด้วย
Selection_450.png
Selection_450.png (9.8 KiB) Viewed 280 times
แล้วถ้าเป็นการส่งข้อมูลแบบ POST ละจะเป็นยังไง ไปดูกัน

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

Code: Select all

<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

Code: Select all

<?php

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

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



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

Post Reply

Return to “PHP Knowledge”

Users browsing this forum: No registered users and 4 guests