Facebook Ilmuwebsite

Tutorial PHP : Post+Session = Agar Isi Form Submit Tidak Hilang

Wah... lama sekali tidak kita bahas tutorial PHP. Baiklah kita langsung saja, tutorial ini dipersembahkan untuk Anda yang sedang dalam perjalanan mempelajari PHP. Bukan untuk tingkatan mahir, tapi lebih ke pemula menuju menengah. Sebelum masuk ke dalam inti pembahasan saya akan terlebih dahulu menjelaskan mengapa kita mempelajari teknik yang satu ini.

Berawal dari pertanyaan-pertanyaan, "Bagaimana caranya agar inputan yang telah disubmit oleh user tidak hilang ketika mendapatkan validasi? Sehingga user bisa menginputkan yang benar dalam form inputan".

Saya perjelas maksudnya begini, misalkan Anda dihadapkan dalam form registrasi member, di mana di dalamnya ada input text nama lengkap, input text email, input text username, kemudian inputan untuk password, dan tombol submit. Nah ketika melakukan submit ternyata email yang diinputkan sudah ada dalam database. Sehingga halaman di redirect menuju form registrasi, sehingga user bisa menggunakan email yang belum ada di database. Sepertinya jelas ya?

Baiklah kita akan mulai masuk ke dalam teknisnya. Pertama-tama kita siapkan terlebih dahulu form registrasi membernya. berikan nama filenya form.php

<!DOCTYPE html>
<html>
 <head>
  <title>Form Registrasi Member Ilmuwebsite.com</title>
  <style type="text/css">label{display:inline-block;width:120px;margin:5px 0 5px 0;}</style>
 </head>
 <body>
  <h1>Form Registrasi Member</h1>
  <form action="reg.php" method="POST">   
   <label for="nama_lengkap">Nama Lengkap</label> <input type="text" id="nama_lengkap"  name="nama_lengkap" /><br />
   <label for="email">Email</label> <input type="text" id="email" name="email" /><br />
   <label for="username">Username</label> <input type="text" id="username"  name="username" /><br />
   <label for="password">Password</label> <input type="password" id="password" name="password" /><br /><br />
   <input type="submit" name="submit" value="Registrasi!" />
  </form>
 </body>
</html>

Kode HTML tersebut akan menghasilkan Form seperti pada gambar di bawah ini ...



Lalu kita buat database yang menampung database berisi data user/member, sehingga nantinya kita bisa langsung memvalidasi, apakah email yang akan diregistrasi itu tersedia, atau tidak tersedia (karena sudah ada didatabase).  Silahkan dengan phpmyadmin, buatlah terlebih dahulu database dengan nama 'db' (tanpa tanda kutip). Lalu silahkan buat table dan masukkan sebuah record, silahkan import saja SQLnya di bawah ini

CREATE TABLE IF NOT EXISTS `tbl_member` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `fullname` varchar(255) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `tbl_member` (`id`, `fullname`, `username`, `password`, `email`) VALUES
(1, 'Admin Ilmuwebsite', 'admin', '89e495e7941cf9e40e6980d14a16bf023ccd4c91', 'admin@ilmuwebsite.com');

Setelah itu kita siapkan koneksi PHP dan MySQL-nya terlebih dahulu ... Beri nama filenya adalah config.php

<?php
 /* konekkan antara PHP dan MySQLnya */
 $connect = mysql_connect("localhost","root","");
 
 /* pilih database db */
 $db_select = mysql_select_db("db", $connect) or Die('Not Working');
?>

Dan yang terakhir yang paling utama adalah kita buat terlebih dahulu file untuk validasi ketika akan registrasi, dengan poin utama adalah, apabila email yang akan digunakan untuk registrasi member sudah ada dalam database (tidak tersedia) maka user akan di redirect ke halaman form, untuk mengisikan email yang lain. Beri nama filenya reg.php

 <?php
 session_start();
 require_once "config.php";
 
 /* tangkap variable yang dikirimkan oleh POST Input */
 $post = $_POST;
 
 /* pengecekan apakah email untuk registrasi tersedia, atau sudah ada dalam database (tidak tersedia) */
 $email_exist = mysql_query("select * from tbl_member where email = '".$post['email']."'");
 
 /* jika emailnya sudah ada di database...*/
 if(mysql_num_rows($email_exist) > 0){
  /* konversi dari post ke dalam session, sehingga bisa di akses di form sebelumnya */
  $_SESSION = $post;
  
  /* lakukan redirect ke halaman sebelumnya */
  header("location: ".$_SERVER['HTTP_REFERER']);
 }
 
 /* jika emailnya belum digunakan */
 else{
  echo 'EMAIL TERSEDIA';
 }
 
 ?>
 

Dan tahap terakhir untuk memberikan notifikasi agar user mengetahui bahwa Ada semacam keterangan, jika emailnya sudah ada (tidak tersedia / sudah digunakan), maka gunakan email yang lain. Di masukkan ulang ke dalam form.php

<?php 
 session_start();
 /* tanda @ digunakan untuk menghilangkan error pada baris kode php */
?>
<!DOCTYPE html>
<html>
 <head>
  <title>Form Registrasi Member Ilmuwebsite.com</title>
  <style type="text/css">label{display:inline-block;width:120px;margin:5px 0 5px 0;}</style>
 </head>
 <body>
  <h1>Form Registrasi Member</h1>
  <form action="reg.php" method="POST">
   <?php (!empty($_SESSION))? $notif = '<p>Email Tidak Tersedia, Silahkan gunakan email lain</p>' : $notif = ''; ?>
   <?php echo $notif;?>
   <label for="nama_lengkap">Nama Lengkap</label> <input type="text" id="nama_lengkap" value="<?php echo @$_SESSION['nama_lengkap'];?>" name="nama_lengkap" /><br />
   <label for="email">Email</label> <input type="text" id="email" value="<?php echo @$_SESSION['email'];?>" name="email" /><br />
   <label for="username">Username</label> <input type="text" id="username" value="<?php echo @$_SESSION['username'];?>" name="username" /><br />
   <label for="password">Password</label> <input type="password" id="password" name="password" /><br /><br />
   <input type="submit" name="submit" value="Registrasi!" />
  </form>
 </body>
</html>

Langkah terakhir silahkan uji coba, buka localhost Anda di browser lalu akses file form.php.

Untuk demonya Anda bisa akses URL ini http://www.ilmuwebsite.com/tutorial/php/postsession/form.php

Untuk mencobanya Anda bisa mengisikan bagian email dengan admin@ilmuwebsite.com

Semoga bermanfaat.

Admin ilmuwebsite.com
Founder kaffah.biz

Posting Komentar

2 Komentar