Monday, October 15, 2012

Fungsi GET di PHP

Selamat siang semua Sobat Teens,
Gimana nih kabarnya ??
Pasti baik - baik aja kan ?

Posting pertama tentang PHP nih buat yang mau belajar website dinamis. Terutama yang pengen belajar PHP.

Get Function PHP


Di sini gue mau jelasin salah satu fungsi dasar di PHP yaitu fungsi "GET". Ada yang pernah tau ngga apa fungsi dari "GET" ini ??
Di dalam sebuah website, pasti ada timbal balik antara server dan client. Interaksi ini terjadi untuk mengirim atau mendapatkan informasi yang dibutuhkan.

PHP menyediakan berbagai cara untuk mengirim dan menerima informasi dengan fungsi - fungsi standard yang telah disediakan. Contohnya yang kita bahas sekarang, yaitu fungsi "GET" yang dalam penulisan PHP seperti yang tergambar di atas "$_GET[]".

Fungsi ini berguna untuk menyimpan data yang akan dikirim melalui perantara URL.
Ngerti ngga maksudnya ?? hhe :p
Daripada bingung mending gue gambarin aja ya, jadi seperti ini contoh URL yang dapet fungsi GET:
http://www.website.com/index.php?id=1&show=true
Pada URL di atas yang merupakan variabel untuk GET adalah yang dicetak dengan warna merah.
Gimana ?? udah ngerti ??
Yang dimaksud mendapat fungsi GET pada URL di atas adalah karena setelah file index.php terdapat variabel beberapa variabel seperti id dan show, dari variabel di atas memiliki value atau isi masing - masing. Pada contoh di atas isi dari variabel id adalah angka 1, sedangkan isi dari variabel show adalah true.

Mengerti ?? Mengapa setelah index.php terdapat tanda tanya "?", hhe :D ini gue kurang ngerti sobat, mungkin aja karena untuk mendeklarasikan variabel yang dikirim.

Alamat seperti di atas sudah otomatis harus diambil mengunakkan fungsi "GET" untuk mengambil atau menampilkan data yang tersedia.
Sebagai contoh gue punya form html yang bernama index.php seperti di bawah ini:
<!DOCTYPE HTML>
<html>
<head>
<title>GET PHP</title>
</head>

<body>
<form method="get" action="get.php">
   First Name: <input type="text" name="fname" /></br />
   Last Name: <input type="text name="lname" /><br />
   <input type="submit" value="Submit" />
</form>
</body>
</html>
<penejelasan-program>
Pada kode html di atas langsung saja kita lihat pada tag <form>. Di situ bisa kita lihat bahwa ada parameter method yang isinya berupa "GET", disini kita bisa mengetahui bahwa form ini akan mengirimkan ke server atau ke sebuah file PHP dengan nama "post.php" yang diisikan pada parameter action. Nah fungsi parameter action ini digunakkan untuk memberi tahu pada form agar semua isian form akan dikirim ke server dengan tujuan file "get.php". Udah ngerti kan ??Terus kita tuliskan lagi tag HTML text sesuai kebutuhan untuk pengisian form dan kita tambahkan tombol yang bertype submit.
</penejelasan-program>

Ngerti kan maksdu dari HTML dan pengertiannya di atas ? :)
Gue asumsi Sobat Teens semua pada ngerti tuh dari DOCTYPE sampai tag HTML yang terakhir, karena udah gue penejelasan panjang lebar di atas ya :D

Lanjuttt...
Seperti yang dijelaskan sebelumnya, di dalam tag Form terdapat attribut - atribut yang harus dipenuhi antara lain attribut method dan attribut action. Pada attribut method kita gunakkan method "GET" dan pada action kita masukkan nama file yang akan dituju, mislanya saja post.php.
Contoh isi dari get.php adalah sebagai berikut:
<!DOCTYPE HTML>
<html>
<head>
<title>Get PHP</title>
</head>

<body>
First name = <?php echo $_GET['fname'];?></br />
Last name = <?php echo $_GET['lname'];?><br />
</body>
</html>
<penjelasan-program>
Nah di sini tempat kita nanti bermain dengan method $_GET.
Di dalam tag <body> kita membuat script php setelah "First Name" kita tuliskan script:
<?php echo $_GET['fname'];?>
Seperti yang udah gue jelasin di atas kita menggunakkan fungsi GET ini untuk mengambil data. Pada bagian "Last Name" pun juga sama, tinggal menambahkan seperti sebelumnya.
Di dalam method $_GET[] "First Name" ini di dalam kurung siku kita isi dengan nama komponen yang terdapat pada index.php tadi. Yaitu komponen input text dengan nama "fname" dan itu yang akan kita gunakkan. Apabila di dokumen kalian ditulis dengan nama lain yaa tinggal mengikuti aja :)
Setelah itu kita tulis dengan perintah "echo" diikuti fungsi Get tadi.
Maka akan tertulis di halaman web kalian apa yang kalian tulis di form sebelumnya. 

</penejelasan-program>

Coba isi First name dengan nama depan dan Last name dengan nama akhir kalian.
Nanti kalo udah di "Submit" coba liat deh yang terjadi di URL kalian, ini contoh di browser gue. Gua yakin yang tertulis di situ adalah (kalo misalnya pake localhost dan contoh ini pakai nama gua):
localhost/get/post.php?fname=agung&lname=yudha
Dan hasil di halaman browser pasti akan seperti ini:
First name = agung
Last name = yudha
hhe :D
Simple kan ???? :p

Nah selain dari penjelasan di atas, ada beberapa kelemahan dari method GET dari PHP nih sobat. Karena kita menggunakkan method GET di atas langsung tanpa merubah struktur URLnya itu sangat berbahaya sob, contohnya kita kan punya url http://localhost/get/post.php?fname=agung&lname=yudha nah biasanya para Black Hacker memanfaatkan celah ini sob. karena dia udah tau tujuan file dan parameter apa aja yang harus diisi. Mereka bisa mengisi form tanpa harus membuka file index.php kalian. Dengan cara langsung mengetikkan kode URL seperti di atas, dan mengisi fname dan lname dengan sesuka mereka.
Selain itu, Black Hacker memanfaatkan ini untuk membobol database kalian dengan SQL Injection. Yaitu dengan menuliskan kode atau syntax - syntax SQL di URL website kalian.
Wuuuhhhh... bahaya juga ya.
Nah kalian harus hati - hati nih sobat. Namun, ada kok cara menangani hal ini, dengan cara merekayasa struktur URL dengan bantuan file yang bernama .htaccess atau menggunakkan method POST sebagai pengganti method GET tadi.

Untuk pembahasan menggunakkan .htaccess dan method POST kita akan lanjutkan lain waktu sobat. Jadi tunggu ya post gue selanjutnya.

Sekian tutorial PHP yang gue share. Mudah - mudahan berguna buat Sobat Teens semua. InsyaAllah ke depannya akan gue post lagi tentang script PHP yang lain :)

Mungkin ada yang kesulitan dan mau bertanya ?
Silahkan kirimkan pertanyaan kalian di form bawah ini ya :D

8 comments:

  1. bos ane mau tanya !!! sy punya script php spt ii :
    0){
    echo "Berhasil disimpan.";
    }
    }else if($command=="list"){
    //Mendapatkan list dari data
    header("Content-type: application/xml");
    echo "\n";
    $result = mysql_query("SELECT id, name, max( score ) as score FROM tabel_highscore GROUP BY name ORDER BY max( score ) DESC LIMIT 0 , 10");
    //echo "Result : ".$result;
    while(($val = mysql_fetch_array($result,MYSQL_BOTH))!=NULL){
    $id = $val['id'];
    $name = $val['name'];
    $score = $val['score'];
    echo " \n";
    }
    echo "";
    }

    mysql_close($conn);
    ?>
    tp setelah di run ada error di :
    $name = $_GET['name'];
    $score = $_GET['score'];
    $command = $_GET['command'];
    dengan argumen error : Undefined index: name !!!
    mohon Pencerahannya 'gan !!

    ReplyDelete
    Replies
    1. Undifened index: name
      itu bukan error gan, tapi itu merupakan sebuah notice
      dan itu ngga berpengaruh pada sistem error web anda

      Undefined index hanya menampilkan variable index misalnya yang tidak digunakkan atau tidak disebutkan di URL GETnya tadi
      mungkin di website anda seperti ini
      http://foo.com/index.php?score=90&command=xxxx
      nah contoh di atas kan ngga ada get buat "name" kan ??
      nah itu sama php dibaca tidak didefinisikan "Undefined index"

      jadi untuk mengatasi itu gunakkan fungsi php isset()
      atau di bagian awal (atas sendir) file misalnya index beri script seperti ini
      error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));
      insyaAllah normal bro :)

      teima kasih udah berkunjung
      semoga bermanfaat

      Delete
  2. mas, saya awam banget tentang php dan baru mulai belajar dasar2 aja..
    gimana caranya menampilkan hasil dari
    print("Selamat belajar PHP : ") .$_POST["pemakai"];
    agar nama pemakai bercetak tebal (bold)
    saya sudah tambahi dengan pada script .$_POST["pemakai"]; tapi gak bisa2 . .

    ReplyDelete
    Replies
    1. tidak bisa gimana mas ?

      coba pake script saya:
      echo "Selamat belajar PHP : <strong>".$_POST["pemakai"]."</strong>";

      semoga membantu :)

      Delete
  3. gan mau nanya nih saya puya error kaya ini nah itu krna aa ya Notice: Undefined index: txtcari in C:\xampp\htdocs\neida\laporandata.php on line 61 nah di line 61 satu itu berupa script $txtcari=$_GET['txtcari']; nah kira2 itu knpa ya makasih gan sebelum nya

    ReplyDelete
  4. mas saya awan dengna php. terutaam ttg get. saya buat porgram artikel. ada dua tabel satu t_jurnal, satu lagi t_jurnal_kategori,,di t_jurnal ada satu record. id (primary) = 1, field jurnal isinya jurnal ekonomi,,di t_jurnal_kategori ada field id dan penulis,,isi nya id = 1, penulis hedi dan id=2 penulis devi. nah saya ingin pas klik jurnal ekonomi muncul dua nama penulis itu,,scripnya if($_GET['jurnal'] == jp)
    {
    include "config/koneksi.php";
    $sql = mysql_query("SELECT * FROM t_jurnal ");
    while($data=mysql_fetch_array($sql)) {
    $ID = $data["id"];
    echo "".$data['jurnal']."
    ";
    }
    }

    if($_GET['jurnal'] == jp2)
    {
    $query = "SELECT * FROM $t_jurnal_kategori where id_category = $_GET[id]";
    opendb();
    $hasil = querydb($query);
    closedb();
    $data = mysql_fetch_array($hasil);
    $ID = $data["id"];
    $PENULIS = $data["penulis"];
    echo "$PENULIS";
    }

    errornya sepertinya di if($_GET['jurnal'] == jp2),ada yang salah mas ??
    terima kaish

    ReplyDelete
    Replies
    1. maaf mas bisa diceritakan salahnya gimana ?

      menurut saya untuk query
      $query = "SELECT * FROM $t_jurnal_kategori where id_category = $_GET[id]";
      ganti dengan
      $query = "SELECT * FROM t_jurnal_kategori where id_category = $_GET[id]";

      lalu untuk method closedb() jangan diletakkan di bawah hasil, coba diletakkan di akhir file.
      ada yang perlu di tanyakan lagi mas ?
      soalnya saya masih belum ngerti salahnya dimana.

      Delete