การส่งข้อมูลแบบ Postback คือ การสร้าง form และ PHP script ที่ใช้ในการจัดการ form ไว้ในเพจเดียวกัน
เพจที่สร้างจะต้องรองรับทั้งกรณีการเปิดเพจแบบปกติ และการเปิดเพจจากการโฟสข้อมูลกลับ
การสร้างเพจที่รองรับการส่งข้อมูลแบบ Postback
1) การตวจสอบว่าเพจถูกเรียกจากการโพสข้อมูลเข้ามาหรือไม่
วิธีแรก เลือกอินพุทสักหนึ่งที่อยู่ในฟอร์มมาตรวจสอบ แต่ไม่ครวจเลือกอินพุทชนิด Checkbox หรือ Radio เพราะถ้าผู้ใช้ไม่เลือกอินพุทนั้น ข้อมูลของอินพุทนั้นก็ไม่ถูกส่ง
ตัวอย่าง สมมติในฟอร์มมีอินพุทชื่อ login ก็อาจตรวจสอบจากฟังก์ชัน isset() ดังนี้
if (isset( $_POST[ 'login' ]) ) {
//ถ้ามีแปลว่าเป็นการ Postback ก็กำหนดการประมวลผลข้อมูลที่ส่งเข้ามาที่นี่
}
วิธีที่สอง (cool!!!) ตรวจสอบว่ามีการสร้างตัวแปร $_POST ขึ้นมาหรือไม่ ถ้ามี (true) แสดงว่ามีการโพสข้อมูลกลับเข้ามา ถ้าไม่มี (fale) ก็แสดงว่าเป็นการเปิดเพจตามปกติ
if ($_POST) {
//ถ้ามีการสร้างตัวแปร $_POST แสดงว่าเป็นการ Postback
}
2) ต่อแจากส่วนของ PHP script ก็จะเป็น form ซึ่งข้อกำหนดที่สำคัญคือ พร็อปเพอร์ตี้ action ของ form ต้องกำหนดเป็นชื่อเดียวกับเพจนั้น หรือถ้าไม่ใช้วิธีกำหนดไว้ตายตัวอาจนำตัวแปรของ PHP มาใช้ ก็คือ $_SERVER[ 'PHP_SELF' ] ซึ่งใช้ในการอ้างถึงชื่อของเพจนั้น
ตัวอย่าง ลักษณะแนวทางของโค้ดโดยรวม
<?php
$errmsg = "";
if ( $_POST ) {
$login = $_POST[ 'login' ];
if ($login == "abcd") {
header("Location : member.php"); //ถ้า Login ถูกต้องย้ายการทำงานที่เพจอื่น
}
else {
$errmsg = "Login ไม่ถูกต้อง";
}
}
?>
<!DOCTYPE html . . . >
<html . . . >
<head>
.
.
.
</head>
<body>
<?php
if ($errmsg="") {
echo "<font size=5 color=red>$errmsg</font>";
}
?>
.
.
<form method="post"
action="<?php ech $_SERVER['PHP_SELF']; ?>">
<input type="text" name="login" />
.
.
</form>
</body>
</html>
