Mengatasi Notice: Undefined index: page in C:\xampp\htdocs\website\index.php on line 92


Bismillahirrohmanirrohim..

Bagi teman-teman pemrogram PHP, mungkin pernah mengalami permasalahan yang mirip seperti ini “Notice: Undefined index: page in C:\xampp\htdocs\website\index.php on line ….”, apakah itu mungkin ketika teman-teman migrasi dari emulator webserver (xampp, wamp, dsb) versi lama ke versi yang lebih tinggi atau ketika website selesai di upload ke hosting atau bahkan setelah menginstall emulator webserver terbaru dan mulai membuat program. Hal ini terjadi biasanya pada PHP versi terbaru (versi 5 keatas) ketika kita mendefinisikan sebuah variabel untuk menampung sebuah data menggunakan perintah $_GET[nama_variabel]. Kesalahan bukan pada versi PHP nya, tetapi sintax program yang teman-teman buat sudah tidak kompatible dengan PHP versi terbaru.

“Notice: Undefined index: page in C:\xampp\htdocs\website\index.php on line 92”, ini berarti PHP tidak dapat mendefinisikan sebuah index yang bernama page didalam file index.php pada baris ke 92. Ingat, angka 92 ini bukan nomor error, melainkan penunjuk pada baris berapa sintax itu error, jadi bisa saja teman-teman menemukan pesan seperti diatas pada baris ke 2, 120 atau pada baris berapapun.

Berikut akan saya contohkan sintax yang dapat berjalan dengan baik pada PHP versi lama tetapi error pada PHP versi terbaru.

<?php
//nama file: index.php
$page = $_GET['page'];

switch($page){
    default:
    case "beranda":
        echo "Ini adalah halaman beranda";
    break;


    case "profil":
        echo "Ini adalah halaman profil";
    break;


    case "bukutamu":
        echo "Ini adalah halaman buku tamu";
    break;
}
?>

Ketika program diatas dijalankan, maka akan muncul pesan notice seperti pada judul postingan ini. Ini karena kita telah mendefinikan sebuah variabel $page dengan nilai yang diambil dari variabel $_GET[‘page’]. Sementara nilai dari $_GET[‘page’] tidak di set, maka muncullah notice tadi.

Untuk memperbaiki notice diatas, teman-teman bisa memanfaatkan sebuah operator ternary. Operator ternary fungsinya hampir sama dengan struktur kendali IF, hanya saja statement yang bisa dijalankan tak sebanyak pada struktur kendali IF (lihat pembahasan sebelumnya tentang struktur kendali IF).

Berikut cara memperbaiki notice diatas:

<?php
//nama file: index.php
$page = isset($_GET['page']) ? $_GET['page'] : null;
//atau:
//$page = isset($_GET['page']) ? $_GET['page'] : false;
//atau bisa juga dengan:
//$page = isset($_GET['page']) ? $_GET['page'] : "";

switch($page){
    default:
    case "beranda":
        echo "Ini adalah halaman beranda";
    break;


    case "profil":
        echo "Ini adalah halaman profil";
    break;


    case "bukutamu":
        echo "Ini adalah halaman buku tamu";
    break;
}
?>

Nah, akhirnya pembahasan kita kali ini tentang “Notice undefined index” sudah selesai. Mudah-mudahan tulisan singkat saya ini bisa bermanfaat buat kita semua. Aamiin.. ๐Ÿ™‚

24 thoughts on “Mengatasi Notice: Undefined index: page in C:\xampp\htdocs\website\index.php on line 92

  1. Hayat

    Tanya mas terkait dengan masalah PHP Undefined Offsett : 1. Studi kasus seperti ini
    /var/www/simrenbangda/protected/controllers/RkaMainController.php(191)

    179 $lv3 = $_POST[โ€˜Lv3โ€ฒ];
    180 for ($i = 0; $i findByPk($lv2[โ€˜idโ€™][$i]);
    183 else {
    184 $model = new RkaAnggaranLv2;
    185 $model->lv1_id = $lv1_id;
    186 $model->uraian = $lv2[โ€˜uraianโ€™][$i];
    187 $model->perubahan = 0;
    188 $model->save();
    189 }
    190 $lv2_id = $model->id;
    191 for ($j = 0; $j findByPk($lv3[$i + 1][โ€˜idโ€™][$j]);
    194 else
    195 $model = new RkaAnggaranLv3;
    196 $model->lv2_id = $lv2_id;
    197 $model->uraian = $lv3[$i + 1][โ€˜uraianโ€™][$j];
    198 $model->volume = $lv3[$i + 1][โ€˜volumeโ€™][$j];
    199 $model->satuan = $lv3[$i + 1][โ€˜satuanโ€™][$j];
    200 $model->harga = $lv3[$i + 1][โ€˜hargaโ€™][$j];
    201 $total += ($model->volume * $model->harga);
    202 $model->save();
    203
    Bagaimana cara mengatasinya. Terima kasih sebelumnya

    Like

    Reply
    1. Mas Riyanto Post author

      Pada dasarnya sama aja mas, notice itu muncul karena kita memanggil suatu variabel yg nilainya belum ada (belum di set).

      Jadi solusinya ialah beri nilainya terlebih dahulu, kemudian panggil.

      Atau jika tidak ada nilainya, beri ia nilai default (seperti yg ada di tutorial ini).

      Liked by 1 person

      Reply

Tinggalkan Komentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.