1. $_GET จะส่งค่าผ่าน URL เราจะเห็นพารามิเตอร์ที่ส่งไปต่อท้าย URL ของหน้านั้นๆ
2. $_POST จะส่งแบบไม่แสดงพารามิเตอร์ให้เห็น
3. $_REQUEST จะเป็นตัวแปรที่ใช้รับค่าทั้งที่ส่งมาแบบ $_GET และ $_POST
สำหรับขั้นตอนการค้นหาข้อมูลเพื่อนำมาทดสอบ เราจะใช้คีย์เวิร์ดดังนี้
เข้าไปที่เว็บไซต์ www.google.co.th แล้วค้นหาคำว่า "php การรับค่า ฟอร์ม"
จากนั้นก็ลองนำซอร์สโค๊ดตัวอย่างมาทดลองดูว่าได้ผลอย่างไรบ้างและแตกต่างกันอย่างไร
form.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <title>ทดสอบ การรับค่าผ่านฟอร์ม คำนวณพื้นที่สี่เหลี่ยม</title> </head> <body> <form action="test.php?id=5" method="post" name="frm_data"> <table width="500"> <caption><h3>ทดสอบ การรับ-ส่งค่าผ่านฟอร์ม</h3></caption> <tr> <td align="right">ชื่อเล่น :</td><td><input name="nickname" type="text"/></td> </tr> <tr> <td align="right"> เบอร์โทร :</td><td><input name="telephone"type="text" /></td> </tr> <tr> </td><td><td><input name="but_submit" type="submit" value="ส่งค่า" /></td> </tr> </form></body></html> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?phpecho '<div style="font-size:14px">';echo '--------------------------------------------------------------------';echo '<pre>';echo '<b>แสดงค่าตัวแปร id</b>', "\n";echo '$_GET[\'id\'] = ', $_GET['id'], "\n";echo '$_POST[\'id\'] = ', $_POST['id'], "\n";echo '$_REQUEST[\'id\'] = ', $_REQUEST['id'], "\n";echo '</pre>';echo '--------------------------------------------------------------------';echo '<pre>';echo '<b>แสดงค่าตัวแปร nickname</b>', "\n";echo '$_GET[\'nickname\'] = ', $_GET['nickname'], "\n";echo '$_POST[\'nickname\'] = ', $_POST['nickname'], "\n";echo '$_REQUEST[\'nickname\'] = ', $_REQUEST['nickname'], "\n";echo '</pre>';echo '--------------------------------------------------------------------';echo '<pre>';echo '<b>แสดงค่าตัวแปร telephone</b>', "\n";echo '$_GET[\'telephone\'] = ', $_GET['telephone'], "\n";echo '$_POST[\'telephone\'] = ', $_POST['telephone'], "\n";echo '$_REQUEST[\'telephone\'] = ', $_REQUEST['telephone'], "\n";echo '</pre>';echo '--------------------------------------------------------------------';echo '</div>';?> |

1. สังเกตว่า test.php?id=5 มีการส่งค่าแปร id ที่อยู่ต่อท้ายเครื่องหมาย ? มาด้วย ซึ่งข้อมูลหลังเครื่องหมายนี้จะรับค่าเป็นตัวแปร $_GET
2. ส่วนข้อมูลในแบบฟอร์มที่ให้กรอก เรากำหนดให้ METHOD ของ FORM เป็นแบบ POST ดังนั้นค่าที่ส่งมาจึงไม่ปรากฏใน URL ด้านหลัง ?
3. สำหรับตัวแปรที่ 3 $_REQUEST สามารถรับค่าได้ทั้งแบบส่งมาแบบ GET และ POST