Menyimpan data POST dengan menggunakan SESSION dalam form pendaftaran

Pada saat merancang semuah form input, ada beberapa hal yang harus kita perhatikan guna memudahkan pengunjung dalam mengisi form input tersebut. Form input yang di maksud dapat kita ibaratkan seperti berikut :

  • Form Pendaftaran
  • Form pengisian Biodata
  • Dan Form lainnya yang mempunya banyak elemen form input

Permasalahan yang sering muncul dan harus kita perhatikan adalah ketika kita menerapkan beberapa aturan dalam pemngisian form, seperti :

  • Nama harus sesuai
  • Email harus valid
  • Semua form harus di isi
  • Harus menuliskan captcha
 

Berkenaan dengan ketentuan-ketentuan di atas, tentunya tidak semua pengunjung mengisi form dengan benar, sehingga mereka harus memperbaiki form isian sesuai dengan aturan yang kita tetapkan. Akan tetapi yang jadi permasalahan adalah ketika pengunjung menekan tombol Submit, Halaman akan di reload sehingga banyak data - data yang sudah dimasukkan oleh pengunjung akan hilang.

Yang harus kita rancang sekarang adalah Bagaimana caranya menyimpan data - data inputan tersebut ?

Permasalahan di atas bisa kita atasi dengan menggunakan SESSION. Silahkan perhatikan contoh - contoh simple di bawah :

<?php 
session_start(); //memulai session
?>
<html>
<head>
<title>Session POST</title>
<style type="text/css">
	label.txt{
		font:normal 12px Tahoma,Verdana;
		display:block;
		color:#666666;
		text-transform:uppercase;
	}
</style>
</head>
<body>
<?php
if(isset($_POST['btn'])):
	//membuat session array dengan variabel - variabel POST
	$_SESSION['pos']=$_POST;
endif;

if(isset($_SESSION['pos'])):
	$nama   =$_SESSION['pos']['nama'];
	$alamat =$_SESSION['pos']['alamat'];
	$telp	=$_SESSION['pos']['telp']; 
else:
	$nama   ='';
	$alamat ='';
	$telp	='';
endif;
?>
<form method="post" name="frm" action="">
	<label class="txt">Nama</label>
	<input type="text" name="nama" value="<?php echo $nama; ?>" />
	<label class="txt">Alamat</label>
	<textarea name="alamat"> <?php echo $alamat;?> </textarea>
	<label class="txt">Telp</label>
	<input type="text" name="telp" value="<?php echo $telp; ?>" />
	<br />
	<input type="submit" name="btn" value="Submit" />
</form>

</body>
</html>

Pada contoh diatas kita membuat session dengan menggunakan variabel - variabel POST yang dikirimkan pada saat pengunjung menekan tombol submit, sehingga data akan tetap tersimpan pada elemen form dan tentunya hal tersebut akan sangat berguna kalau kita terapkan pada form isian yang komplek, sehingga pengunjung hanya perlu mengganti bagian - bagian yang salah saja tanpa harus menulis ulang semua isian.

Selamat mencoba tutorial diatas, jika ada pertanyaan atau permasalahan seputar tulisan di atas, silahkan tuliskan pada form di bawah .

 

Salam Kreatif

 

 


Komentar pembaca

supandithanks gan atas tutornya.. sangat membantu..posting pada :2012-05-29 17:04:18
JOJOMakasih gan infonya. Lumaya bantu :Dposting pada :2012-10-30 18:12:47
randimas , sya mau nyak . misalkan sya pnya tabel admin yg isinya id, nama, pass. jdi saat admin login dan menginput data pendaftaran maka secara otomatis id admin ug ada di tabel jga lgsung msuk ke tabel pendftaran. mhon pencharan mas.. newbie bget posting pada :2013-04-16 19:15:03
AdminSdr Randi, untuk mengatasi masalah itu kita cukup bermain dengan session. Pada script login kan kita punya query select * from tbladmin where username dst gitu, nah hasil dari query itu kita keluarkan dan kita jadikan session, jadi sessionnya tidak hanya username dan password, tapi dengan id admin juga. Kemudian pada saat mengisi pendaftaran, kita tinggal menambahkan session admin tersebut dalam proses insert datanya.posting pada :2013-04-16 21:02:31
randimas admin tlongin dong ksih conth program ny. biar lbih ngerti.. maklum mas bru belajar.. posting pada :2013-04-18 00:13:13
randimas admin udh sya cba. trus wktu insert ny mncul kya gini mas coloumn count doesnt match value count match at row.... gmn ngtsin ny masposting pada :2013-04-18 10:29:58
RandiSdr Randi, Permasalahan coloum count doesnt match merupakan kesalahan dalam pemrosesan ke database, dimana jumlah valua yang akan dimasukkan lebih besar dari jumlah kolom yang terdapat dalam tabel. Contoh :
$query = "insert into tbl_data (kolom1,kolom2,kolom3) values ('isi 1','isi 2','isi 3', 'isi 4')";
Pada contoh diatas, jumlah kolomnya hanya 3, tetapi kita mencoba memasukkan 4 value. Untuk contoh script login dengan session id admin, silahkan download contoh scriptnya pada alamat berikut : Download script login admin dengan session
posting pada :2013-04-18 18:51:16
bethmw tanya mas kalau baris kode yg ini if(isset($_POST['btn'])): 'btn' dari mana ya mas??? thanksposting pada :2013-11-21 12:44:38
AdminMaksud dari perintah tersebut kalo kita logika kan secara sederhana adalah seperti berikut : Jika ada kiriman variabel btn yang dikirim dengan method post. Btn sendiri merupakan nama dari tombol submit, silahkan di cek pada form terdapat tag htm <input type=submit name=btn dst. Jadi logika sederhananya sekarang bisa kita artikan : Jika tombol dengan nama btn di click.posting pada :2013-11-21 13:27:54
nuranymaaf saya ingin menanyakan : saya buat database dengan nama datamhs tabel : tg_mhs, tb_perpustakaan, tb_bayar nah untuk input dan save sudah ok saya buat report melalui php dengan maksud apabila data di save maka data otomatis bisa di print sesuai report (report antara lain report biodata, report penjanjian pinjam buku, dll) yang dengan maksud apabila sudah di save bisa langsung cetak beberapa report tersebut dan tersimpan di database. sampai save sudah bisa pada saat click btn print datanya tidak masuk bagaimana penyelesaiannya. terima kasih bantuannya ynnrny@yahooo.composting pada :2014-02-13 09:11:54
yumengbagaimana ya kalau z bikin form pendaftaran baru nantinya sebelum masuk ke database bisa diview dulu yaposting pada :2014-05-18 20:15:32
hamscamaaf gan, ane bingung nih,. berarti setiap buka halaman yang sama nilai session'y ada terus donk ? terus kalau mau di tambahin koding save mulai dari mana yah ? maklum gan, baru belajar heeeeeposting pada :2014-06-10 17:48:26
AdminSdr Yumeng, proses viewnya menggunakan SESSION akan lebih mudah. Jadi pada saat ditekan tombol daftar dibuat SESSION data POST, kemudian redirect ke halaman review. Selanjutnya jika data sudah dianggap benar, dilakukan pemrosesan data berdasarkan SESSION data POST yang sudah dibuat sebelumnya. Sdr Hamsca, Session akan tetap tersimpan selama kita masih berada pada server / alamat domain yang sama. Pada contoh diatas, jika hendak melakukan save data, kita bisa mulai pada baris ke 20. Lakukan pengecekan terlebih dahulu, jika semua data input sudah dianggap benar, mulailah membuat query untuk menyimpan data ke databaseposting pada :2014-06-12 02:12:36
afinimas admin, sya mau tanya kalau anggota input data lewat akunnya (session) gmn ya!!! maslhnya sya uda bwt tp hasil kurang maxsimal yg sya inginkan hsilnya : =| id_reguler | id_anggota | isi | ket| | $id_reguler | $id_anggota | $isi | $ket| tp yg msuk di dbase : =| id_reguler | id_anggota | isi | ket| | $id_reguler | $kd_anggota | $isi | $ket| solusinya gmn ya !!!posting pada :2014-09-29 16:11:44
RiyanGan mohon solusinya, karena method form sebelumnya kan action="" karena session masih dalam 1 file , tetapi saya ganti menjadi action="insert.php" karena script update berada di file insert.php, agar history input tetep berfungsi gmn caranya ya gan? terimakasihposting pada :2014-12-13 17:46:26
AdminSdr Riyan, sederhana saja caranya, kita tinggal pasang script pembuat session di file insertnya, yaitu :
if(isset($_POST['btn'])):
	//membuat session array dengan variabel - variabel POST
	$_SESSION['pos']=$_POST;
endif;
Kemudian pada script yang memuat form, kita buat pengecekan session, seperti contoh berikut ini:
if(isset($_SESSION['pos'])):
	$nama   =$_SESSION['pos']['nama'];
	$alamat =$_SESSION['pos']['alamat'];
	$telp	=$_SESSION['pos']['telp']; 
else:
	$nama   ='';
	$alamat ='';
	$telp	='';
endif;
Selanjutnya kita tinggal echo masing - masing variable pada value masing - masing form
posting pada :2014-12-14 21:37:41
HasbiMakasih gan mbantu banget...posting pada :2015-01-18 14:35:04
leoBro, bikin kan buat aku form input data utang piutang bro. Yang simpel aja. Klo bisa transaksi lewat e-mail aja. Klo bisa nanti saya kirim pulsa 100 rb. Aku jujur, klo saya bohong berarti saya ga punya TUHAN. Tks broposting pada :2015-03-30 22:56:46
leoBro, bikin kan buat aku form input data utang piutang bro. Yang simpel aja. Klo bisa transaksi lewat e-mail aja. Klo bisa nanti saya kirim pulsa 100 rb. Aku jujur, klo saya bohong berarti saya ga punya TUHAN. Tks bro 081251191414posting pada :2015-03-31 01:51:49
Maulana SyamsuriKlooo Cara Hilangin Isinya Gimana?? Solanya Saat Kita Kembali Ke halaman Itu Valuenya Tetap Tidak mau Hilang???posting pada :2015-08-04 14:23:44
AdminSdr maulana, untuk menghilangkan valuenya, jangan.lupa unset sessionnya setelah proses pendaftaran selesaiposting pada :2015-08-05 07:05:21
Kaichabagaimana cara membuat tombol "bayar" hilang otomatis saat keterangan sudah menunjukkan "lunas" di PHP dengan tema pembayaran??posting pada :2015-09-07 10:17:30
ramadhancara hapus salah satu data yang sudah disimpan pada session gmna ganposting pada :2015-11-17 21:47:31
sintaTerimakasih, tutorialnya bermanfaat banget âposting pada :2016-01-08 15:36:17
Henric//melakukan koneksi ke database $conn=mysqli_connect("localhost", "root", ""); mysql_select_db("input_db"); mau nanya min udah di tulis seperti itu tetapi yg keluar Call to undefined function mysql_select_db() mohon pencerahannyaposting pada :2016-06-13 10:05:38
BaimMas , kalo mau ngasih variabel tgl hari ini gmn? saya biasa pakai yang seperti ini $tgl_masuk = date("Y-m-d"); kalo dirubah ke $tgl_masuk =$_SESSION['pos']date['Y-m-d']; tapi muncul pesan di dreamewer saya sintak error penulisan yang bener gmn ya ? mohon bantuannyaposting pada :2016-07-19 08:56:12
adiitu menyimpanya di mana yaposting pada :2016-08-22 12:11:22
alfitriHalooooposting pada :2017-05-18 11:28:40
Andimas, pos dan btn itu apa ya ? bisa kasih contohnya gakposting pada :2017-08-03 01:05:29
Annisamas, klo saya mau kasih session tapi buat combobox gimana ya ?posting pada :2018-05-16 09:11:39
YasmiraTerima kasih atas tutorialnya masposting pada :2019-07-04 11:30:54
Paisal adodiBingung ni min baru kali ini liat2 ni kode2 programposting pada :2019-11-04 00:46:47