Mengatasi Masalah Undefined Index di PHP 5

undefined index
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.

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:



$_POST[‘mod’] ada isinya, maka $_POST['mod'] akan disalin ke $mod , jika tidak maka $mod akan berisi string kosong.

Tulisan ini adalah kategori baru yang ingin saya catat di blog, yaitu tentang troubleshooting (penyelesaian masalah) dalam pemrograman. Troubleshooting adalah salah satu aspek paling penting dalam mempelajari bahasa pemrograman apapun.

About Sibudi

Ubuntu user | Loves books | Blogger | Web Developer | Learn PHP, JavaScript, Ruby & Python the hard way

17. November 2011 by Sibudi
Categories: Troubleshooting | Tags: , | 77 comments

Comments (77)

  1. Informasi yang sangat menarik, hal ini saya jumpai… saat saya membackup website online ke offline dengan menggunakan xampp…. semula saya pikir ada kesalahan…. Weww ternyata setelah membaca artikel ini jadi mengerti… Trimks sudah share.. semoga bermanfaat…

  2. thanks info nya .. sangat membantu …

  3. Pingback: Menyingkat Kode PHP menggunakan Operator Ternary | Sibudi </>

  4. wah, makasih gan, jadi solved masalah 🙂

  5. thanks gan…problem solved

  6. ok gan thanks codink na sakti juga 3 hari gw cari solusina masuk ke blog ini baru jitu thank banget

  7. gan ane mo nanyak nie klo kita pke radio button mis : jurusan kita cek lis . trus kita kirim kok hasil na jadi jurusan on gimana thu solusina gan?

  8. Terima kasih banyak atas artikelnya, sangat bermanfaat!

  9. ty share nya nambah pengetahuan buat saya yang lagi belajar php otodidak….

  10. Pingback: Akses Database Menggunakan PDO pada PHP | Sibudi </>

  11. bang, itu kan kalo echo, kalo kita mau insert ke database kan di table nya jadi nambah string kosong di tiap barisnya pas kita refresh. itu gimana ya bang ya? thanks sebelumnya

  12. thanx om budi 😀

    akhirnya hasil dari saya berpikir sendiri php yang error undefined itu semakin diperjelas..

    sebenarnya php itu tidak lah sesulit yang dipikirkan, asal kita bisa menalar semuanya, walaupun beljar php scra otodidak seperti saya:

    seprti halnya diatas adala : undefined Variable bla bla bla : berarti Variable yang diesbutkan tidak didefiniskan atau salah pendifinisannya.
    biasanya adalah memanggil Variable tambahan atau fungsi seperti :

    $arg = $var -> post_content;
    dan seharusnya $var diatas sudah dijelaskan
    nilainya sebelumnya, apabila di Code sebelumnya memang tidak tertulis tapi scipt berjalan dengan baik , maka bisa ditulis :
    $var = ‘ ‘; //fungsi adalah noll / kosong
    $arg = $var -> post_content;

    atau var bisa dengan nilai NULL yaitu NULL adalah Kosong / Tidak punya nilai 😀

    makasih ya om

  13. Wah sangat bermanfaat sekali, saya langsung praktekkan dan eng ing eng notice undefined index bla bla bla jd ilang…tp ada satu permasalahan lagi yg blm selesai dan saya mohon pencerahannya karena sy org awam yg ingin belajara PHP, masih ada muncul:

    Deprecated: Function session_is_registered() is deprecated in C:\xampp\htdocs\penjualan2\admin\ubah_pass.php on line 3

    kalo ada hal seperti itu kira2 saya harus bagaimana ya gan? mohon pencerahan penyelesaiannya.. terima kasih atas perhatian dan bantuannya

    • Itu artinya fungsi session_is_registered() sudah akan ditinggalkan oleh PHP dan sebaiknya segera diganti dengan fungsi lain yg sejenis.

      Ganti dengan $_SESSION['nama_variable'], dan gunakan isset() untuk memeriksa apakah suatu variable sudah terdaftar ke dalam session.

      Contoh: if ( isset( $_SESSION['nama_variable'] ) )

  14. membantu kali ne artikelnya, kebetulan lagi upgrade wamp server :D, makasih tutonya

  15. Bang, thank’s beraaaat….

  16. mantap gan sangat membantu ane ne..

    sekalian nitip blog hehe : ronifisla.blogspot.com

    dapursn.blogspot.com

  17. saya memakai script

    tapi ga muncul, dulu muncul undefined tapi setelah menambah error_reporting(E_ALL ^ (E_NOTICE | E_WARNING)); udah ga muncul akan tetapi data jadi ga muncul
    akan tetpi script diatasnya

    bisa memunculkan datanya, kira 2 gimananya ya solusinya

    • ini script yang pertama
      $perintah = “SELECT * FROM setting WHERE id=’1′”;
      $dadi = mysql_query($perintah);
      $baris = mysql_fetch_array($dadi);
      echo $baris[‘instansi’];

      dan ini script yang berhasil
      $query = “SELECT * FROM admin WHERE username='”.$username.”‘ AND password='”.$password.”‘”;
      $hasil = mysql_query($query);
      $row=mysql_fetch_array($hasil);
      echo $row[‘username’];

    • Seperti yang sudah saya bilang di atas, menyembunyikan pesan kesalahan tidak akan menyelesaikan masalah 🙂

      Solusinya adalah pahami dengan baik dan selesaikan masalah satu persatu. Good luck 🙂

  18. gan kalo cara menyimpan form dengan metode one to many sperti apa ya codingnya..
    mohn pencerahannya…

  19. Behh… jitu… langsung berhasilll… mkasih gan ilmunya!

  20. terima kasih om….
    sangat membantu solve problemnya…..

  21. bang klw bgini pesan bagimana

    Notice: Use of undefined constant username – assumed ‘username’ in C:\xampp\htdocs\griya\griyagaya\adminweb\cek_login.php on line 9

    Notice: Use of undefined constant password – assumed ‘password’ in C:\xampp\htdocs\griya\griyagaya\adminweb\cek_login.php on line 10

    Fatal error: Call to undefined function session_register() in C:\xampp\htdocs\griya\griyagaya\adminweb\cek_login.php on line 19

  22. kalo skrip seperti ini bisa masuk ke database ga??

  23. gan, kalau ad di Artikel terkait ada tulisan Undefined gimana itu?

  24. Makasih mas dab artikelnya sangat membantu, urusan jadi kelar deh hehehhe

  25. Makasih banyak mas, akhirnya problemnya solved juga 😀

  26. Terimakasih buat infonya. Sangat membantu!

  27. makasih mas,, akhirnya hilang sudah kebuntuan selama ini,, di tunggu post berikutnya

  28. Pingback: Mengatasi Masalah Undefined Index di PHP 5 | sigitpurnomo7680

  29. punten mas, saya ada sedikit masalah nih dari tampilan muncul perintah seperti ini:

    Notice: Undefined index: name in C:\xampp\htdocs\hotel\admin\index.php on line 25

    Parse error: syntax error, unexpected ‘}’ in C:\xampp\htdocs\hotel\admin\order\index.php on line 135

    Warning: include(laporan/index.php): failed to open stream: No such file or directory in C:\xampp\htdocs\hotel\admin\index.php on line 31

    Warning: include(): Failed opening ‘laporan/index.php’ for inclusion (include_path=’.;C:\xampp\php\PEAR’) in C:\xampp\htdocs\hotel\admin\index.php on line

    Mohon pencerahan penyelesaiannya..
    sebelumnya terima kasih atas perhatian dan bantuannya

  30. Makasih Infonya gan…sangat membantu,, sukses trs buat agan..
    salam kenal

  31. gara-gara pakai xampp baru akhirnya nyampai kesini 😀
    nais pos gan, nanti bersih2 kode yang notice

  32. terimakasih mas artikelnya. soalnya artikel ini yang saya cari.

  33. makasih banyak mas . . . sangat membantu !

  34. Trima ksh. sangat membantu.

  35. GILAKK nice info gan..
    Sangat membantu, TerimaKasih sangat :*

  36. best tutorial

    save my day

    Thx a lot

  37. I read a lot of interesting content here.
    Probably you spend a lot of time writing, i know how to save you a lot of time, there is an online tool that creates unique, google friendly articles in seconds,
    just search in google – laranitas free content source

  38. * A sitemap to navigate your website is helpful for visitors to access main pages.
    Based on their experience, they could know how much is required before going into details.

    * Page SEO: Your page is optimized by various means which include, choosing
    the right keywords, placing them right, adding anchor text linking, adding
    call to action in various places on the page.

  39. Terimakasih admin membantu sekali 🙂

  40. mantap, sangat membantu,

    Terima kasih

  41. bermanfaat…. 😀

  42. Quality content is the important to attract the visitors to pay a quick visit the site, that’s
    what this web site is providing.

  43. makasi sangat kang , ane dulu udah pake isset jadi kalau variable gk keisi program gk jalan , tapi gk kepikiran kalo yang di isset langsung variablenya bukan aksinya

  44. terima kasih telah berbagi Mas, senang sekali rasanya membaca tulisan2 di blog ini, jadi tambah wawasan.. semoga selalu di beri kesehatan dan sukses selalu..

  45. makasih banyak gan..mbantu banget pas lagi urgent

  46. makaxi info kawan

  47. Problem solved.. makasi banyak..

  48. trimakasih boss infonya. sangat membantu sekali… barusan masalah saya terpecahkan GBU

  49. untuk penggunaan $_post menggunakan isset tapi kalo penggunaan $_get gmn mas ?
    kalo cmn nutupi pesan eror bsa jadi vuln web

  50. На представленном вебсайте составлены мнения врачей и фармацевтов о всевозможных лечебных препаратах, особенностях их употребления, взаимозаменяемости, потенциальных побочных эффектах, редких осложнениях, не указанных в инструкции. Эта информация будет существенным подспорьем для практикующих врачей, фармацевтов, студентов медицинских вузов. Пациенты сумеют найти здесь интересующие их данные о препаратах, использующихся для лечения болезней, однако, стоит учесть, что самолечение может привести к непоправимым последствиям, потому перед использованием того или иного средства необходимо проконсультироваться с врачом.

    Комплекс для похудения chokolate slim

  51. potingan nya bagus mas, namun saya mendapatkan notice yang berbeda. penampakannya seperti dibawah ini:
    Notice: Undefined index: input1 in C:\xampp\htdocs\kalkulatorphp\index.php on line 72

    mohon solusinya…

  52. Luar Biasa
    thanks Gan 🙂

  53. kalo keluar ginian?
    Fatal error: Call to undefined function session_unregister() in C:\xampp\htdocs\buatweb\sessunreg.php on line 6
    gimana ngatasinya?

  54. masih bingung

  55. Hi, just wanted to mention, I loved thhis article.

    It was helpful. Keep on posting!

  56. HI, I wanted to ask you how to solve the problem if the message “Parse error: syntax error, unexpected ‘}’ in C: \ xampp \ htdocs \ a \ selamat.php on line 30”

    please completion

  57. Aw, this was an extremely goood post. Finding the time and actual effort tto make a good article…
    but what can I say… I hesitate a whole lot and don’t
    manage to get nearly anything done.

  58. Thank you a bunch for sharing this with all folks you really realize what you’re speaking about!
    Bookmarked. Please additionally discuss with my web ssite =).
    We could have a hyperlink alternate contract among us

  59. gan saya erro bagian ini

    lalu peringatan ny seperti ini
    Notice: Undefined index: p in C:\xampp\htdocs\hotelfija\index.php on line 10
    ada solusi ndak gan

  60. Thank’s bro . sangat bermanfaat

  61. Makasih banyak ilmunya..

  62. terus solusinya gimana gan? apakah hanya menambahkan ini saja

    error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

    atau ada solusi untuk menghilangkan penyebab warning itu?

    mohon pencerahan gan…

  63. Itu namanya curang gan, bukan solusi, hehe

  64. makasih infonya, bermanfaat sekaliiiiiiiii

Leave a Reply

Required fields are marked *