Notice: Undefined index PHP คือ Message หรือข้อความแจ้งเตือน (Warning) ในส่วนของความปลอดภัยในระดับของ NOTICE (ข้อสังเกต) ของภาษา PHP ซึ่งจริง ๆ แล้วปัญหานี้จะเกิดขึ้นในกรณีที่ Web Server นั้น ๆ มีการเปิด E_NOTICE หรือเปิดการแจ้งเตือนข้อสังเกตในการประมวลผลของ Web Server เอาไว้ (PHP Version ใหม่ ๆ จะมีการเปิดตรงจุดนี้เอาไว้เป็นค่า Default)
Notice: Undefined index PHP คือ
1. เป็นการแจ้งเตือนเกี่ยวกับความปลอดภัย (ข้อสังเกต) ของภาษา PHP เกี่ยวกับการไม่สามารถระบุค่า หรือ index ที่ต้องการได้
2. ความหมายของ index ตามข้อความแจ้งเตือนนั้นอันจะหมายถึง ค่าตัวแปร (Variable value) ทุกชนิดทั้งที่เป็นแบบ ค่าตัวแปรแบบส่งผ่าน Form หรือการประกาศตัวแปรขึ้นมา แล้วไม่มีการกำหนดค่าเริ่มต้น
วิธีแก้ไข Notice: Undefined index PHP
1. การใช้คำสั่ง isset() ในการตรวจสอบว่าตัวแปรดังกล่าวมีค่าข้อมูลอยู่รึเปล่า
2. การใช้ custom error handler ในการส่ง error ดังกล่าวออกไปยัง logfile หรือ target ต่าง ๆ ที่ต้องการ
3. การปิด E_NOTICE หรือการปิดการแจ้งเตือนของภาษา PHP
ตัวอย่าง Code ที่ทำให้เกิด Notice: Undefined index PHP
<?PHP
$name = $_REQUEST['name']
echo $name;
?>
- จาก Code ข้างบนทำให้เกิด Notice: Undefined index เพราะ ตัวแปร name ที่ส่งผ่าน Form เข้ามานั้นไม่มีค่าข้อมูล
วิธีแก้ไข Notice: Undefined index PHP แบบ Coding
1. แบบใช้คำสั่ง isset() * แนะนำแบบนี้ครับ เนื่องจากเราไม่ต้องไปปรับระดับความปลอดภัยของ PHP ครับ
<?PHP
isset($_REQUEST['name']) ? $name = $_REQUEST['name'] : $name = '';
echo $name;
?>
2. แบบปิด E_NOTICE (Security Level)
<?PHP
error_reporting( error_reporting() & ~E_NOTICE );
$name = $_REQUEST['name'];
echo $name;
?>