Unsecured debt consolidation loan


Friday, 19 February 2010

Metode $_GET V.S Metode $_POST

Di dalam bahasa php, terdapat dua macam cara atau metode untuk mengirimkan data melalui form. Metode yang pertama adalah metode $_POST, dan yang kedua adalah metode $_GET. Keduanya tentu memiliki keunggulan dan kekurangannya masing-masing.


Jika kita menggunakan metode $_GET, maka media pengiriman datanya adalah melalui alamat URL, contohnya adalah URL affilite. Sedangkan jika kita menggunakan metode $_POST, maka secara otomatis data akan terkirim tanpa menggunakan alamat URL sebagai media penyimpanannya. Contoh penggunaan $_POST adalah form kontak, yang pernah saya tulis di artikel sebelumnya.



Agar, pemahaman anda tentang perbedaan $_GET dan $_POST semakin mantab. Kita akan coba edit form kontak yang pernah saya tulis pada artikel sebelumnya, dengan menggunakan $_GET. Jadi perbedaannya akan semakin jelas.


========================================
Menggunakan metode $_POST (sama seperti artikel sebelumnya)
File "post.html"


<html>
<head>
<title>FORM KONTAK</title>
</head>
<body>
<form action='post.php' method='post'>
<table border=0 cellpadding=4>
<tr><td>Nama:</td><td><input type='text' name='nama'></td></tr>
<tr><td>Email: </td><td><input type='text' name='email'></td></tr>
<tr><td>Subjek:</td><td><input type='text' name='subjek'></td></tr>
<tr><td>Pesan: </td><td><textarea name='pesan' cols='10' rows='5'></textarea></td></tr>
<tr><td colspan=2><input type='submit' value='KIRIM'></td></tr>
</table>
</form>
</body>
</html>

File "post.php"
<?php
//dapatkan data
$nama=$_POST['nama'];
$email=$_POST['email'];
$subjek=$_POST['subjek'];
$pesan=$_POST['pesan'];


$tujuan="wilianto.indra@gmail.com"; //ganti dengan email anda
$header="From: $email";


//kirim
mail($tujuan, $subjek, $pesan, $header);
echo "Pesan anda sudah berhasil terkirim";
?>
========================================
Kode di atas, sama persis dengan kode form kontak pada artikel sebelumnya, hanya saja kita mengganti nama filenya, agar tidak tertukar dengan file yang menggunakan metode $_GET. Sekarang kita akan coba membuat form kontak dengan menggunakan metode $_GET.


========================================
Menggunakan metode $_GET
File "get.html"


<html>
<head>
<title>FORM KONTAK</title>
</head>
<body>
<form action='get.php' method='get'>
<table border=0 cellpadding=4>
<tr><td>Nama:</td><td><input type='text' name='nama'></td></tr>
<tr><td>Email: </td><td><input type='text' name='email'></td></tr>
<tr><td>Subjek:</td><td><input type='text' name='subjek'></td></tr>
<tr><td>Pesan: </td><td><textarea name='pesan' cols='10' rows='5'></textarea></td></tr>
<tr><td colspan=2><input type='submit' value='KIRIM'></td></tr>
</table>
</form>
</body>
</html>


File "get.php"
<?php
//dapatkan data
$nama=$_GET['nama'];
$email=$_GET['email'];
$subjek=$_GET['subjek'];
$pesan=$_GET['pesan'];


$tujuan="wilianto.indra@gmail.com"; //ganti dengan email anda
$header="From: $email";


//kirim
mail($tujuan, $subjek, $pesan, $header);
echo "Pesan anda sudah berhasil terkirim";
?>
========================================


Simpan seluruh file, lalu coba jalankan dari browser. Hasilnya akan sama saja, namun coba perhatikan alamat URL nya. Kalau file yang menggunakan metode $_POST, maka alamat URL nya tidak akan berubah, tapi jika anda menggunakan file $_GET, maka URLnya akan berubah.


Dari segi keamanan, mungkin $_POST unggul dari beberapa khasus, contohnya pada khasus ini. Namun dalam beberapa hal juga seperti URL affiliate atau hasil pencarian, $_GET lebih aman dan praktis.


Jadi silakan gunakan kedua metode sesuai dengan kebutuhannya.

12 comments:

iye keren nih artikelnya.. seenggaknya nambah ilmu ...

bagus niehh artikelnya..trus blog'a juga enak diliat..

mantap nih, bisa jadi tempat mengingat ilmu yang ampir pudar...

mantap nih...ternyata bisa begini juga...
keren''

btw..ada postingan baru nih..dukung'' yah

terimaksih ilmu yg di berikan ya. saya senang dengan metode yang Anda berikan. simpl tidak rumit. thanks ya....

Pak, infonya bagus sekali. Namun ada kendala yang yang saya hadapi, saya coba menggunakan metode Post seperti yang diatas bapak tulis,saat saya coba tekan tombol kirim yang keluar pesan :Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\post.php on line 14
Pesan anda sudah berhasil terkirim
apa yang harus saya lakukan pak?

@sopian: masama pa..
@Anonymous : itu sudah benar kok. mungkin agan mencobanya masih di server localhost jd muncul error begitu.. Tapi klo di hosting beneran, ga akan kluar tuh error..

solusinya coba tambahkan tanda [at] @ pada fungsi mailnya, jadi seperti berikut:

@ mail($tujuan, $subjek, $pesan, $header);

Post a Comment

Enter your email address:

Delivered by FeedBurner