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
| <? php echo '<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