Mengatasi Error : Undefine Index di PHP 5

Bagi yang beralih dari PHP 4.x ke PHP 5.x mungkin pernah menjumpai peringatan seperti ini:

Notice: Use of undefined constant mod – assumed ‘mod’ in /var/www/blogsaya/index.php on line 7

atau seperti ini:

Notice: Undefined index: mod in /var/www/blogsaya/index.php on line 7

atau seperti ini:

Notice: Undefined variable: mod in /var/www/blogsaya/index.php on line 8

Ketiganya hanyalah pesan peringatan (notice), bukan kesalahan (error). Namun nampak tidak elegan jika pesan seperti itu muncul di halaman website kita. Untuk menyembunyikan pesan peringatan tersebut cukup dengan menambahkan sebaris kode berikut di bagian paling awal kode PHP.

1
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

Kode tersebut hanya akan menyembunyikan semua pesan peringatan level Notice dan Warning yang muncul, pesan kesalahan yang lain, misal error, tetap muncul.

Namun tentu saja menyembunyikan pesan peringatan bukan solusi yang baik. Notice message tersebut muncul karena penanganan register global di PHP 5.x yang sedikit berbeda dengan PHP 4.x, dan juga ada variable atau konstanta yang tidak diinisialisasi sebelum digunakan. Pelanggaran yang umum dalam bahasa pemrograman PHP tetapi penegakan hukumnya kurang ketat.

Perhatikan contoh berikut:

1
2
3
4
5
6
7
8
<form action = "" method="post">
  <input type="text" name="mod"/>
  <input type="submit"
</form>
<?php
  echo $_POST[mod];
  echo $mod;

Kedua pesan pertama muncul karena penggunaan register global yang kurang tepat, seperti pada contoh di atas pada baris ke-7, seharusnya ditulis seperti berikut:

7
echo $_POST['mod'];

Begitu kesalahan pertama diperbaiki, pesan yang pertama hilang namun yang kedua tidak. Itu terjadi karena variable global $_POST belum diinisialisasi. Jadi kode baris ke-7 seharusnya seperti berikut:

7
8
if (isset($_POST['mod']))
  echo $_POST['mod'];

Lalu yang terakhir mudah saja kita selesaikan, tinggal kita inisialisasi saja variable $mod dengan string kosong seperti berikut:

9
10
$mod = '';
echo $mod;

Atau saya lebih suka menggunakan operator ternary (bukan operator tersier) seperti berikut:

7
$mod = isset($_POST['mod']) ? $_POST['mod'] : '';

Dengan menggunakan operator ternary ini lebih saya sukai karena bisa sekaligus menyelesaikan ketiga permasalahan di atas. Operator ternary adalah operator yang memiliki tiga buah argumen atau operasi matematika, yang dipisahkan dengan tanda “?:”. Pernyataan di atas berarti: jika variable global $_POST['mod'] ada isinya, maka$_POST['mod'] akan disalin ke $mod , jika tidak maka $mod akan berisi string kosong.

Sumber http://blog.sibudi.net

2 Responses to Mengatasi Error : Undefine Index di PHP 5

  1. Ping-balik: jershamned

  2. Summer IT mengatakan:

    I know this if off topic but I’m looking into starting my own weblog and was wondering what all is required to get set up?

    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very web savvy so I’m not 100% sure. Any suggestions or advice would be greatly appreciated.
    Appreciate it

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: