Sunday, May 5, 2013

Undefined Index - PHP

Halo sobat teens.
Sore - sore gini enaknya bagi - bagi ilmu lagi nih. hehehehe ...
Mudah - mudahan bermanfaat buat kalian ya :)

OK kita mulai.
Nih gua posting soalnya temen - temen banyak yang nanya nih termasuk di postingan Fungsi GET di PHP.

Seperti judul di atas yaitu "Undefined Index: ...". Nah kalian yang suka main-main sama PHP pasti sering nemuin error kayak gini kan ??
hmmm... biar gua jelasin dulu kenapa kok ada error kayak gitu.
Sebenernya sih itu bukan error, tapi itu sebuah notifikasi karena ada variable yang tidak terisi. Contohnya kalian membuat sebuah file index.php yang isinya seperti di bawah ini:
<!DOCTYPE HTML>
<html>
<head>
<title>Index</title>
<head>
<body>
<form method="post">
     First Name = <input type="text" name="first" /><br />
     Last Name = <input type="text" name="last" /><br />
     <input type="submit" name="submit" value="Submit" /><br />
</form>
</body>
</html>

Terus kalian punya file lagi untuk menampilkan, contohnya aja gua punya file tampil.php seperti di bawah ini:
<?php
   $first = $_POST['first'];
   $last = $_POST['last'];

   //untuk menampilkan
   echo "Nama depan anda = ".$first;
   echo "\nNama belakang anda = ".$last;
?>

Nahh ... sekarang kita mulai uji coba.
Sekarang coba aja kalian buka file-file kalian itu di browser alamat lokal kalian. Setelah masuk ke index.php, isi semua form. Lalu submit. Ga ada masalah kan ??

OK sekarang kita coba tidak mengisi salah satu form, contohnya aja yang ngga gua isi di sini yaitu form "First Name", terus yang gua isi cuman "Last Name". Lalu, tekan tombol submit. Gimana ?? Ada notifikasi "Undefined index: first", atau kalau kalian kosongi form Last Name akan ada notifikasi "Undefined index: last".

Hmmmm... by the way kalian tau kenapa itu ??
Yups... seperti yang dijelasin di atas, karena ada variable yang tidak terisi saat submit form. Terus solusinya bagaimana ??
Ada beberapa solusi nih sobat, silahkan kalian pilih yang mana yang kalian suka. hehehe
  1. Edit file php.ini, untuk mengedit file ini perlu ketelitian dan kehati-hatian karena file ini merupakan konfigurasi dari PHP sendiri, kalo ngga hati-hati software PHP kalian bisa berantakan . Caranya: cari file php.ini di dalam direktori PHP yang kalian install dan buka file tersebut, lalu cari dengan menekan tombol "Ctrl + F" konfigurasi yang bertuliskan error_reporting(E_ALL); dan ganti baris tersebut seperti ini error_reporting(E_ALL ^ E_NOTICE);
  2. Membuat filter saat submit. Nah cara ini salah satu cara favorit gua. Kita gunakkan aja contoh di atas. Pada file tampil.php, tambahin sedikit script seperti di bawah ini nih:
    <?php
    if (isset($_POST['submit'])){
         $first = "";
         $last = "";
         if ($_POST['first'] !== ""){
             $first = $_POST['first'];
         }else{
             $first = "";
         }
    
         if ($_POST['last'] !== ""){
            $last = $_POST['last'];
         }else{
            $last = "";
         }
    
         echo "Nama depan anda = ".$first;
         echo "\nNama belakang anda = ".$last;
    }?>

    <penjelasan-program>
    Kita dapat melihat pada program di atas ada fungsi PHP yaitu isset(), fungsi ini gunanya adalah memeriksa apakah sudah di-set variable yang di kirim yang berada di dalam kurung fungsi isset. Dalam hal ini variable yang dikirim adalah $_POST['submit'], seperti yang kita ketahui pada form index.php ada tombol bernama "submit", nah fungsi ini untuk memeriksa apakah tombol submit sudah ditekan.

    Apabila tombol sudah ditekan, maka sistim program akan menjalankan syntax yang ada di bawahnya, yaitu untuk membuat variable "first" dan "last" yang diset kosong.

    Lalu ada filtering lagi untuk mengisi variable-variable tersebut, dengan menambahkan fungsi "if". Dijelaskan apabila form text yang bernama "first" tidak kosong, maka akan diisi dengan isi yang telah diketik/diisi sebelumnya, apabila kosong maka variable "first" diisi kosong. Begitu pula dengan $_POST['last'];.

    Setelah memfilter semua input, maka program akan menampilkan dengan perintah echo untuk ditampilkan di halaman website. 
    </penjelasan-program>

  3. Menambahkan kode php.ini di dalam file php. Ini juga salah satu syntax style kesukaan gua nih. Caranya di file "tampil.php" di bagian atas setelah "<?php" tambahin sedikit script seperti ini:
    <?php
       error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
    
    Kode ini gunanya buat menyembunyikan seluruh pesan "Notice" dan "Warning"
  4. Dari ketiga cara di atas gua sih lebih merekomendasikan cara yang ke 2 dan ke 3, karena tidak perlu merubah sistem php.ini karena apabila terjadi sedikit kesalahan dalam konfigurasi file ini akan berakibat fatal.
Nah dari semua trik di atas, kalian bisa kembangin sendiri script kalian biar lebih POWERFUL hhahaha. OK sekian dulu postingan gua tentang Undefined Index. Untuk kalian yang masih ada kesulitan silahkan ditanyakan di bawah ini. Pasti gua jawab broooo.... Semoga bermanfaat and see u ...

No comments:

Post a Comment