วันเสาร์ที่ 6 ธันวาคม พ.ศ. 2557

การส่ง และรับค่าแบบ Get และ Post

4. การส่ง และรับค่าแบบ Get และ Post
- Get มักใช้กับข้อมูลที่ไม่เป็นความลับ หรือต้องการตรวจสอบ
- Post มักใช้กับข้อมูลที่เป็นความลับ

ex.401

zz401.htm
ฟอร์มส่งค่าแบบ get
<form action=zz402.php method=get>
<input name=a value=5><br>
<input name=b value=6><br>
<input type=submit>
</form>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# default method คือ get
# ถ้าไม่กำหนด method ค่าที่กำหนดให้ก็คือ get
# โปรแกรมนี้ชื่อ zz401.htm ส่งข้อมูลให้ zz402.php ไปใช้
# ไม่กำหนด value ค่าเริ่มต้นก็จะไม่มี
# <! ... > คือ Tag สำหรับหมายเหตุ หรือ Comment ของ HTML

ex.402

zz402.php
รับค่าจากฟอร์มมาประมวลผล
<?
echo $_GET["a"];
echo $_GET["b"];
echo $_GET["a"] + $_GET["b"];
?>
ตัวอย่างผลลัพธ์ หรืออธิบาย
5611
# รับค่าจาก zz401.htm มาแสดงผล และคำนวณ
# URL ที่แสดงในช่อง Address จะพบ zz402.php?a=5&b=6

ex.403

zz403.htm
ฟอร์มส่งค่าแบบ post
<form action=zz404.php method=post>
<input name=c value=7><br>
<input name=d value=8><br>
<input type=submit>
</form>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# post ทำให้ค่าที่ส่งไป ไม่แสดงค่าใน URL
# โปรแกรมนี้ชื่อ zz403.htm เพราะไม่มี php จึงมีสกุล .htm ได้

ex.404

zz404.php
รับค่าจากฟอร์มมาประมวลผล
<?
echo $_POST["c"];
echo $_POST["d"];
echo $_POST["c"] * $_POST["d"];
echo $_REQUEST["c"] , $_REQUEST["d"];
?>
ตัวอย่างผลลัพธ์ หรืออธิบาย
785678
# รับค่าจาก zz403.htm มาแสดงผล และคำนวณ
# URL ที่แสดงในช่อง Address จะพบเฉพาะ zz404.php
# REQUEST ถูกใช้แทน POST หรือ GET ได้

ex.405

zz405.htm
ฟอร์มส่งค่าแบบ post
<form action=zz405.htm method=post>
<input type=text name=a value="boy"><br>
<input type=checkbox name=b checked><br>
<input type=radio name=c value="A"><br>
<input type=radio name=c value="B"><br>
<input type=radio name=c value="C"
checked><br>
<select name=d size=4>
<option value=th>Thailand
<option value=us selected>United State
<option value=jp>Japan
</select><br>
<textarea name=e rows=4 cols=20>
hello
</textarea>
<input type=submit name=f value=click>
</form>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ฟอร์มส่งค่า กำหนดได้หลายแบบ ตัวอย่างนี้มี 6 แบบ
# ได้แก่ text, checkbox, radio, select, textarea, submit

ex.406

zz406.php
รับค่าจากฟอร์ม ที่ส่งมาในรูปแบบต่าง ๆ
<?
echo $_POST["a"]."<br>";
echo $_POST["b"]."<br>";
echo $_POST["c"]."<br>";
echo $_POST["d"]."<br>";
echo $_POST["e"]."<br>";
echo $_POST["f"]."<br>";
?>
ตัวอย่างผลลัพธ์ หรืออธิบาย
boy
on
C
us
hello
click
# ทั้ง 6 ค่าเปลี่ยนได้ ถ้าเปลี่ยนใน zz405.htm หรือ zz406.php

ex.407

zz407.php
รวมฟอร์มส่งค่า และรับมาประมวลผล
<form action=zz407.php>
<input name=n value=3>
<input type=submit>
</form>
<?
if (isset($_GET["n"])) {
  for ($i=1;$i<=$_GET["n"];$i++){
    echo $i."<br>";
  }
}
?>
ตัวอย่างผลลัพธ์ หรืออธิบาย
1
2
3
# isset คือ ตรวจสอบว่ามีตัวแปร $_GET["n"] หรือไม่
# ตัวอย่างนี้รวมทั้งส่วนส่งค่า และรับค่าเข้าด้วยกัน
# ประหยัดจำนวนแฟ้ม จาก 2 แฟ้ม เหลือ 1 แฟ้ม


ex.408

zz408.php
ฟอร์มส่ง และรับที่ใช้ while และ request
<form action=zz408.php method=post>
<input name=n1 value=15>
<input name=n2 value=18>
<input type=submit>
</form><pre>
<?
if (isset($_REQUEST["n1"])) {
  $n = $_REQUEST["n1"];
  while ($n <= $_REQUEST["n2"]) {
    echo $n."\n";
    $n++;
  }
}
?>
ตัวอย่างผลลัพธ์ หรืออธิบาย
15
16
17
18
# isset คือ ตรวจสอบว่ามีตัวแปร $_REQUEST["n1"] หรือไม่
# รับค่ามาใช้ใน while แล้วพิมพ์ตั้งแต่ n1 ถึง n2