Notice: Undefined index: ...atau
Notice: Undefined variable: ...terutama bagi Anda yang menggunakan versi PHP di atas 5.3.1.
Sebenarnya pesan tersebut bukan syntax error (kesalahan sintaks) yang mengakibatkan script tidak bisa berjalan, namun hanya sekedar peringatan saja yang seharusnya dihindari.
Dalam artikel saya yang lain, pernah dikupas sedikit mengenai cara menghilangkannya yaitu dengan memodifikasi sedikit konfigurasi di php.ini. Namun solusi tersebut tidak terkait dengan teknik scripting yang baik yang seharusnya dilakukan oleh programmer PHP. Solusi dengan memodifikasi php.ini tersebut pastinya akan sulit dilakukan jika script PHP yang muncul peringatan tersebut berada di server hosting, karena hanya pihak admin saja yang bisa memodifikasinya.
OK. Sebelum penjelasan bagaimana teknik scripting PHP yang baik supaya bisa pesan di atas tidak muncul, terlebih dahulu saya jelaskan penyebabnya. Munculnya peringatan tersebut disebabkan karena adanya suatu variabel atau index array yang sebelumnya belum diassign oleh suatu nilai, namun digunakan dalam suatu proses.
Perhatikan contoh script PHP berikut ini
01.<?php02. 03.if ($a == 2)04.{05.echo "Nilai variabel a adalah 2";06.}07.else echo "Nilai variabel a adalah bukan 2";08. 09.?>Lalu solusinya bagaimana? solusinya adalah coba kenalkan dahulu variabel $a nya dan beri nilai sembarang yang sifatnya default, misalnya 0 (jika $a ini adalah suatu variabel yang nantinya akan diassign dengan bilangan), atau blank character ” jika $a ini nantinya akan diassign dengan suatu string atau karakter. Sehingga script yang baik dari contoh di atas adalah sbb:
01.<?php02. 03.$a = 0;04.if ($a == 2)05.{06.echo "Nilai variabel a adalah 2";07.}08.else echo "Nilai variabel a adalah bukan 2";09. 10.?>contoh.php
01.<?php02. 03.if ($_GET['op'] == 'edit')04.{05.echo "ini adalah proses edit";06.}07.else if ($_GET['op'] == 'hapus')08.{09.echo "ini adalah proses hapus";10.}11.else12.{13.echo "ini bukan proses manapun";14.}15. 16.?>contoh.php
01.<?php02. 03.if (isset($_GET['op']))04.{05.if ($_GET['op'] == 'edit')06.{07.echo "ini adalah proses edit";08.}09.else if ($_GET['op'] == 'hapus')10.{11.echo "ini adalah proses hapus";12.}13.}14.else15.{16.echo "ini bukan proses manapun";17.}18.?>isset() adalah untuk mengecek apakah $_GET['op'] ini sudah diset atau belum, dalam arti mengecek apakah di GET method melalui URL nya memuat parameter ?op=... atau tidak. Jika tidak ada parameternya, maka nilai isset($_GET['op']) ini menghasilkan FALSE sehingga pengecekan IF($_GET['op'] = '..') ini tidak akan dieksekusi. Solusi ini juga bisa diterapkan pada kasus POST method (request via form).Semoga tips singkat ini bisa membantu, selamat berkoding
No comments:
Post a Comment