Membuat sistem login multi user dengan penggunaan sessions dalam php

Assalamu alaikum wr. wb...?

Pada kesempatan kali ini saya akan mencoba kembali menulis tutorial mengenai PHP, dan kali ini yang akan kita bahas adalah bagaimana caranya membuat sistem login multi user dalam penggunaan SESSIONS yang tersimpan.

IKLAN:


Mungkin masih ada yang bertanya, Apa itu Sessions...? Pengertian menurut saya mengenai Sessions adalah informasi Website yang tersimpan di Server yang terkait dengan Browser yang kita gunakan, dan sessions ini banyak di gunakan dalam proses Login dan Logout pada Applikasi Website.


Lalu informasi seperti apakah yang tersimpan itu...? 
Tergantung dari si pembuat applikasi tersebut, informasi seperti apakah yang ingin di simpan nya, dan biasanya ini di gunakan untuk menyimpan informasi username, kata sandi dan informasi-informasi lain yang di perlukanya untuk mengakses website tersebut.

Langsung menuju praktek nya...!
Dalam contoh ini saya akan membuat sebuah applikasi website yang memiliki 3 golongan user dengan hak akses yang berbeda untuk login ke website tersebut, dan satu di antaranya memiliki akses sebagai Admin website.

Mari kita buat sebuah database nya terlebih dahulu, misalkan bernama login_user



Setelah database baru bernama login_user di buat, kemudian buatlah  sebuah table pada database tersebut, misalkan bernama tab_user dan nama-nama kolom nya adalah user_id, username, password, user_nama, dan user_akses.

Silahkan gunakan phpMyAdmin untuk membuat nya, dan jangan lupa untuk kolom user_id gunakan sebagai INDEXS database dengan jenis PRIMARY, dan jenis kolom nya dibuat INT dengan penerapan AUTO_INCREMENT supaya nomor urut nya otomatis pada saat menambahkan user baru.

Untuk membedakan hak akses user...!
Pada kolom user_akses dibuat dengan type ENUM  dengan isian nilainya misalkan "gratis","premium","admin" hal ini dimaksudkan untuk membedakan hak akses user tersebut saat login ke website, dan nantinya akan kita simpan pada sessions.

Jika masih bingung dengan pembuatan table database di atas, silahkan copy kan struktur table database di bawah ini, kemudian paste pada database bernama login_user yang telah anda buat pada phpMyAdmin.


Untuk phpMyAdmin dengan InnoDB:
--
-- Struktur dari tabel `tab_user`
--

CREATE TABLE IF NOT EXISTS `tab_user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `user_nama` varchar(50) NOT NULL,
  `user_akses` enum('gratis','premium','admin') NOT NULL DEFAULT 'gratis',
  UNIQUE KEY `user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Untuk phpMyAdmin Dengan MyISAM:
--
-- Table structure for table `tab_user`
--
CREATE TABLE `tab_user` (
  `user_id` int(11) NOT NULL auto_increment,
  `username` varchar(50) collate latin1_general_ci NOT NULL,
  `password` varchar(50) collate latin1_general_ci NOT NULL,
  `user_nama` varchar(50) collate latin1_general_ci NOT NULL,
  `user_akses` enum('gratis','premium','admin') collate latin1_general_ci NOT NULL default 'gratis',
  PRIMARY KEY  (`user_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1;



Kemudian setelah selesai membuat struktur database dan kolom-kolom nya, insert kan beberapa contoh user pada database tersebut, misalkan seperti contoh di bawah ini:


user_id username password user_nama user_akses
1 andi 1234 Andi Doang gratis
2 toto 1234 Toto Kuncoro premium
3 calim 1234 Calim Weh admin
4 widia 1234 Widia Yatin gratis


Jika masih bingung untuk membuat contoh user nya, silahkan masukan 4 data user di bawah ini kepada struktur tabel tab_user yang telah di buat:


--
-- Dumping data untuk tabel `tab_user`
--

INSERT INTO `tab_user` (`user_id`, `username`, `password`, `user_nama`, `user_akses`) VALUES
(1, 'andi', '1234', 'Andi Doang', 'gratis'),
(2, 'toto', '1234', 'Toto Kuncoro', 'premium'),
(3, 'calim', '1234', 'Calim Weh', 'admin'),
(4, 'widia', '1234', 'Widia Yatin', 'gratis');


Sekarang kita saat nya membuat script php untuk table 'tab_user' yang telah di buat pada database tersebut, dimulai dari pertama user login menggunakan form login, dan proses penyimpanan sessions apabila user tersebut memiliki akses dan sudah ada pada database tersebut.

Untuk pembuatan applikasi nya, pertama-tama buatlah sebuah script PHP sebagai koneksi ke MYSQL terlebih dahulu, yang nantinya akan kita include kan ke script php untuk pemrosesan login user, kurang lebih seperti ini :


koneksi.php

<?php
$server = "localhost";
$username = "root";
$password = "passwordya";
$database = "login_user";

// Koneksi dan memilih database di server
mysql_connect($server,$username,$password) or die("Koneksi gagal");
mysql_select_db($database) or die("Database tidak bisa dibuka");
?>

Kemudian buat lah sebuah formulir untuk login user nya, misalkan pada form.php

<form name='login' action='proses.php' method='post'>
<table>
<tr>
<td>Username</td>
<td>:</td>
<td><input type='text' name='username' value='username' /></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input type='password' name='password' value='password' /></td>
</tr>
</table>
<input type='submit' name='submit' value="Login!" />
</form>   

Script form PHP di atas di include kan pada file index.php.
Apabila seorang user akan login dengan mengisi form pada form.php di atas, maka akan di proses oleh script proses.php seperti ini :


proses.php

<?php
    include "koneksi.php";
    $username = $_POST['username'];
    $password = $_POST['password'];
   
    $login = mysql_query("SELECT * FROM tab_user WHERE username='$username' AND password='$password'");
    $hasil = mysql_num_rows($login);
    $r = mysql_fetch_array($login);
   
    if ($hasil > 0)
    {
      session_start();
      session_register("user_id");
      session_register("username");
      session_register("password");
      session_register("user_akses");
      $_SESSION[user_id]     = $r[user_id];
      $_SESSION[username]     = $r[username];
      $_SESSION[password]     = $r[password];
      $_SESSION[user_akses]    = $r[user_akses];
      header('location:index.php');
    }
    else{ echo "LOGIN GAGAL! <br> <a href='index.php'><< Kembali</a>"; }
?>

Proses di atas, jika user terdapat pada database, maka akan menyimpan 4 sessions yaitu user_id, username, password, dan user_akses. kemudian mengarah kanya kepada script index.php dan jika user tidak ada pada database, maka akan menghasil kan string LOGIN GAGAL!

Coba anda perhatikan SESSIONS yang di register pada script di atas, bahwa kolom user_nama tidak di register kan pada sessions, padahal kolom user_nama di buat pada database di atas...! Sengaja saya buat demikian, karena untuk pembuatan applikasi website tentunya memerlukan detail user yang lebih lengkap, seperti alamat user, email user, nomor hp dan sebagai nya, dan jika kita register kan semua pada sessions, maka proses exsekusi script akan menjadi tambah berat untuk loading data nya.

Untuk menghindari kekurangan di atas, maka di gunakan query_mysql untuk memproses pengambilan data-data yang lain pada database, seperti user_nama, dan data-data user lainya apabila ada dan di perlukan untuk applikasi tersebut, lihat pada script index.php.

index.php

<?php
session_start();
include "koneksi.php";
error_reporting(0);

if (empty($_SESSION['username']) AND empty($_SESSION['password'])){include "form.php";}
else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login Multi User!</title>
</head>
<body>

<?php
$sql = mysql_query("SELECT * FROM tab_user WHERE user_id = '$_SESSION[user_id]'");
while ($data = mysql_fetch_array($sql))
{
 $user_nama = $data['user_nama'];
}
?>
<h2>Selamat Datang <?php echo "$user_nama"; ?>!</h2>
<?php
if ($_SESSION[user_akses] == "gratis") { echo "Kamu login sebagai user Gratis! <a href='logout.php' title='Keluar!'>Keluar</a>"; }
if ($_SESSION[user_akses] == "premium"){echo "Kamu login sebagai user Premium! <a href='logout.php' title='Keluar!'>Keluar</a>";}
if ($_SESSION[user_akses] == "admin"){echo "Kamu login sebagai user Admin! <a href='logout.php' title='Keluar!'>Keluar</a>";}
if ($_SESSION[user_akses] == ""){echo "Kamu tidak memiliki akses kesini!";}
?>

</body>
</html>
<?php } ?>

Untuk menghapus SESSIONS yang tersimpan gunakan fungsi perintah  session_destroy() Lihat pada script logout.php di bawah ini:

IKLAN:


logout.php
<?php
  session_start();
  session_destroy();
  echo "<script>document.write('Kamu sudah keluar dari halaman member!'); window.location = 'index.php'</script>";
?>

Jika anda masih bingung dengan tutorilal di atas, silahkan Download Script Contoh Sistem Login Multi User yang sudah saya buat, dan jangan lupa komentar anda...!

Posting Komentar

95 Komentar

  1. ane dah keliling blog ente omz,,, i like u'r blog!!!

    kbetualan ane lgi ada tugas, ane bole req gk omz,,
    aplikasi website sistem pakar kerusakan pada motor..
    dmna ada admin & user...

    ane tunggu ya omz ,,,thanks
    ery.zero@yahoo.com

    BalasHapus
  2. Th3'MZ CybeR >> Tutor di atas it memang buat applikasi web yang di dalam nya memiliki beberapa user, yang setiap user memiliki hak akses yang berbeda2 setelah login ke admin panel nya, terserah... mau di jadikan apa, User apa Admin...

    Trus klo untuk Request mas Th3'MZ CybeR, tentang (Aplikasi website sistem pakar kerusakan pada motor) metode di atas itu memang cocok di jadikan panduan untuk pembuatan applikasi tersebut.

    Terimakasih sudah mengunjungi blog sy........!

    BalasHapus
  3. Mas kok error ia...

    Warning: session_register() [function.session-register]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\xampp\htdocs\multiuser\proses.php:1) in C:\Program Files\xampp\htdocs\multiuser\proses.php on line 13

    Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\multiuser\proses.php:1) in C:\Program Files\xampp\htdocs\multiuser\proses.php on line 21

    dah di otak atik tetep aja gitu...
    solusi nya dunk mas...

    makasih sebelumnya..

    BalasHapus
  4. animashie >> Maf, baru baca koment nya... Kalo untuk sample kode yg di Download, udah sy cek,, N ternyata Error nya di bagian proses.php ada spasi di atas kode :

    ...[spasi disini]... <?php kode ?>

    spasi nya di hapus saja, atau kode nya di rapatkan saja ke atas...! hal yang kecil berakibat Fatal, karena di dalam nya terdapat Fungsi session_start();


    Link Download Update Script:
    [1] http://adf.ly/AeXXs
    [2] http://www.ziddu.com/download/19902757/multiuser_update.zip.html
    (Pilih salah satu nya)


    Maf sebelum nya, N thank's sudah ngasih tau saya, smoga membantu...

    BalasHapus
  5. Nice sager mas ,
    Mau nanya mas ?? Bukannya sessions itu tersimpan diServer mas yang tersimpan di Browser itu bukannya cookies .. itu menurut yg saya baca2 mas :) Benar 0r salah ya mas .. !! mohon npencerahannya :)

    BalasHapus
  6. To Fikiwan >> Sebelum nya terimakasih mas sudah baca artikel nya yg merinci, itu yg sy harapkan.... ya, memang betul mas, Sessions itu tersimpan di server, sedangkan yg tersimpan di browser it adalah Cookie,, Agar tidak ada kesalahan, nanti akan sy Update artikel nya. Thank's.

    BalasHapus
  7. mas begini lowh, saya membuat sebuah form dan isi e menggunakan bnyak tombol link, dan saya ingin tombol link itu hnya bsa di klik oleh admin saja tapi user tidak, bagaimana caranya ya? mohon bantuannya makasih sbelumnya

    BalasHapus
  8. Scout >> Buat sistem login seperti metode di atas, kemudian buat tombol pada form nya seperti ini, contoh nya :

    <form name="namaform" action="actiontujuan" method="post">

    <input type="text" name="isidata"><br>

    <input type='submit' name='submit' <?php if ($_SESSION[user_akses] == "admin")

    {echo "disabled='no'";}else{echo "disabled='disabled'";} ?> value='Tombol Disini'>

    </form>

    Kalo bs jelaskan form nya buat apa? mudah2an saya bs buatkan contoh nya...

    Thank's atas kunjungan nya.

    BalasHapus
  9. saya masih bingung.
    oh iya mohon bantuannya,saya sedang mengerjakan tugas akhir website tentang kesehatan gigi. tapi pas pad bagian ruang lingkup bab 1,dosen pembimbing saya suruh tambahkan yang ada pd back-end, yakni yang ada diruang admin.maksudnya apa ya?terimakasih sebelumnya....mohon bantuannya.....

    BalasHapus
  10. Juli >> Maf jul sy blm paham pertanyaan nya, barangkali yg di maksud back-end(Kembali Berakhir) itu untuk proses logout nya...?!

    session_destroy();

    Silahkan minta di perjelas sj sm dosen nya, atau mungkin bs tanya sm yg lebih berpengalaman......

    BalasHapus
  11. kok masih error yah
    Fatal error: Call to undefined function SESSION_REGISTER() in C:\xampp\htdocs\multiuser\proses.php on line 13,,
    tolong d bantu ya..

    BalasHapus
    Balasan
    1. Pastikan Fungsi Sessions di aktifkan pada server nya, periksa file ( php.ini ) pada file konfigurasi php nya, kalo menggunakan XAMPP ada pada C:\xampp\php\php.ini

      Kemudian pastikan sebelum baris dibawah ini tidak ada tanda titik koma (;)

      [Session]
      session.save_handler = files
      session.save_path ="D:\LocalServer/Temp"
      session.use_cookies = 1
      session.name = PHPSESSID
      session.auto_start = 0
      session.cookie_lifetime = 0
      session.cookie_path = /
      session.cookie_domain =
      session.serialize_handler = php
      session.gc_probability = 1
      session.gc_divisor = 100
      session.gc_maxlifetime = 1440
      session.bug_compat_42 = 1
      session.bug_compat_warn = 1
      session.referer_check =
      session.entropy_length = 0
      session.entropy_file =
      session.cache_limiter = nocache
      session.cache_expire = 180
      session.use_trans_sid = 0
      session.hash_function = 0
      session.hash_bits_per_character = 4
      url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

      Jika itu sudah benar dan masih tetap Error, coba hilangkan perintah ( session_start(); ) pada file ( proses.php ) pada applikasi sistem login di atas, kemudian coba kembali.

      PENTING!
      Dan yang paling penting untuk menjalankan Sessions pada php, jangan sampai ada output html sebelum perintah ( session_start(); ) walaupun hanya sekedar Spasi saja.

      Coba di cek kembali file ( proses.php ) pastikan tidak ada Spasi sebelum kode <?php

      Thank's

      Hapus
    2. masalahnya sama
      dah d coba solusinya tapi tetep error

      Hapus
    3. Coba hilangkan aj bag ini:

      session_register("user_id");
      session_register("username");
      session_register("password");
      session_register("user_akses");

      Maf br bs bls.

      Hapus
  12. om kan itu ada 4 jenis akun nya... nah pasti kan setiap jenis akun nya lain2 halaman nya misal di login akun admin tampilan nya halaman admin, untuk akun premium tampilan nya halaman user dengan sedikit fitur yang lebih,.. dan lain nya... nah bagaimana cara mengarahkan nya biar ke halaman sesuai dengan jenis akun nya, lalu bagaimana cara nya halaman yang bukan halaman si yang punya akun tidak dapat di akses misal saya login user free, tidak bisa akses ke halaman user premium,
    pertanyaan bonus ni om, ane masih bingung session login facebook,.. kan klw kita belum login facebook kita berada di domain facebook.com dan setelah kita login kita juga berada di domain yang sama, namun tampilan nya beda... tolong di jelaskan donk om... mohon kirim link artikel penjelasan nya ke email saya fernan.situmorang@gmail.com

    terimakasi om saya lagi belajar PHP ni om mohon bantuan nya, dan mohon maaf kalau merepotkan semoga sukses om

    BalasHapus
    Balasan
    1. Dalam script di atas sudah dijelaskan bahwa setiap akun memiliki akses yg berbeda2, jadi klo kita login dengan user_akses gratis, maka kita akan diarahkan ke halaman user gratis

      Coba perhatikan script sederhana yg terdapat pada tutor diatas:

      if ($_SESSION[user_akses] == "gratis") { }
      if ($_SESSION[user_akses] == "premium"){ }
      if ($_SESSION[user_akses] == "admin"){ }

      Anda juga bisa menjadikanya seperti ini, agar tertuju ke satu sessions saja, dengan menambahkan else if:

      if ($_SESSION[user_akses] == "gratis") { }
      elseif ($_SESSION[user_akses] == "premium"){ }
      elseif ($_SESSION[user_akses] == "admin"){ }

      Contoh dengan metode nya seperti ini:

      //jika sessions username dan password kosong maka perlihatkan form login
      if(empty($_SESSION['username']) AND empty($_SESSION['password'])){
      //sesuaikan halaman Form login disini
      }
      //jika sessions username dan password ada maka sesuaikan halamanya
      else{
      if($_SESSION[user_akses] == "gratis"){
      //sesuaikan halaman user GRATIS disini, misalhkan include "gratis.php";
      }
      elseif($_SESSION[user_akses] == "premium"){ //sesuaikan halaman user PREMIUM disini.
      }
      elseif($_SESSION[user_akses] == "admin"){
      //sesuaikan halaman user ADMIN disini.
      }
      }

      Sedangkan untuk penyesuaian halamanya, seperti ini contohnya, misalkan untuk halaman gratis:

      if($_SESSION[user_akses] == "gratis"){
      //sesuaikan halaman user GRATIS disini
      echo "
      <html>
      <head><title>Judul halaman</title></head>
      <body>
      Sesuaikan halaman, ambil dari database dengan acuan username seperti nama, alamat, photo, data teman, dll...
      </body>
      </html>
      ";
      }
      else{
      //sesuaikan halaman peringatan tidak memiliki akses kesini
      }

      Untuk lebih mudah dalam pembuatanya, buat script php nya secara terpisah didalam satu file php, halaman user_akses gratis diatas hanyalah contoh saja...

      Sedangkan untuk halaman facebook, metode nya juga seperti di atas, hanya saja facebook menggunakan cookie, silahkan membacanya disini:

      http://www.tutorialwebgratis.com/2012/12/membuat-sistem-login-multi-user-menggunakan-cookie.html

      Jika masih kurang jelas, silahkan isi komentarnya kembali...

      Thank's

      Hapus
  13. Mas,
    saya dapat tugas dari kantor untuk bikin program kecil,
    karena usernya banyak dengan banyak level beserta role nya,
    apa mas punya contoh program yang ketika user biasa login, tampilan halaman dia hanya nongol menu program/link web yang sudah kita tentukan di database, menu dinamis lah.
    trus 1 lg, misal dalam halaman master barang, tombol add, edit, delete, view bisa kita atur enable dan disable sesuai role usernya dan lagi-lagi diambil dari database.
    mohon maaf jika banyak tanya dan terima kasih

    superherix@gmail.com

    BalasHapus
    Balasan
    1. Metode diatas bisa dijadikan sebagai panduan untuk membuat program seperti itu,, kalo memang dibutuhkan banyak berbagai hak akses/level terhadap user2 ke database, tinggal tambahkan saja field baru pada table user_akses, misalnya userbiasa, dll:

      enum('gratis','premium','admin','userbiasa')

      Sedangkan untuk jumlah usernya bs ribuan atau lebih, bebas...

      Disinilah gunanya membuat perbedaan hak akses setiap user, bisa juga digunakan untuk membuat perbedaan halaman, menu halaman, mendisable dan enable tombol, dll...

      Contoh tombol Hapus, dan hanya user admin saja yg boleh menggunakanya:

      <input type="submit" name="hapus" value="Hapus" disabled="<?php if($_SESSION[user_akses] == "admin"){ echo "no"; }else{ echo "disabled"; }?>" />

      Penggunaanya: untuk akses user lainya sebaiknya hilangkan saja tombol hapus ini beserta pemrosesanya, dan hanya admin saja yg boleh menggunakannya.

      Untuk membuatkan contohnya, sy harus meluangkan waktu untuk membuatnya, mungkin mas Ad bs ingatkan sy nanti....

      Thank's

      Hapus
    2. Thanks mas,
      responnya cepet,
      saya coba-coba dulu.

      Hapus
    3. iya mas seperti itu ada tidak buat tugas ane ??

      kalau ada kirim ke email saya Tegarkurniawan145@gmail.com

      maaf ya mas ngerepotin :D

      Hapus
  14. pak,gimana pas kita login di pake list/menu pas list/menuya ada mahasiswa dan dosen ,pas kita masuk dosen jdi ntrya ada peringaan maap dosen tidak dikenal,gimanah tuk pak

    BalasHapus
    Balasan
    1. Silahkan perhatikan script pada bagian ini:

      if($_SESSION[user_akses] == ""){echo "Kamu tidak memiliki akses kesini!";}

      Pengertianya:
      Jika sessions user_akses kosong, maka user akan diarahkan ke halaman peringatan: Kamu tidak memiliki akses kesini!


      Jadi konsep nya sama saja Junz...

      Contohnya:
      Buat dua hak akses berbeda, misalkan akses dosen, dan mahasiswa:

      enum('dosen','mahasiswa')

      Kemudian buat semua user bisa login, setelah login, misalkan dihadapkan ke sebuah halaman, yg mana ada menu pilihan dosen dan mahasiswa:

      <select name="menu">
      <option value="" selected="selected">Menu Pilihan</option>
      <option value="dosen" onClick="<? if($_SESSION[user_akses]=="dosen"){echo"window.location='lokasi-halaman-dosen';";}else{echo "alert('Anda tidak memiliki akses kesini');";} ?>">Dosen</option>
      <option value="mahasiswa" onClick="<? if($_SESSION[user_akses]=="mahasiswa"){echo"window.location='lokasi-halaman-mahasiswa';";}else{echo "alert('Anda tidak memiliki akses kesini');";} ?>">Mahasiswa</option>
      </select>

      Smoga ga slh pengertian, thank's...

      Hapus
  15. Gan, ko ga bisa login malah keluar kaya gini :
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ayo\proses.php on line 7

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ayo\proses.php on line 8
    LOGIN GAGAL!
    << Kembali

    BalasHapus
    Balasan
    1. Coba gunakan selain xampp gan... bs dengan appserv atau lainya... atau upload ke hosting untuk mencoba nya, dan jngn lupa untuk hosting yg gratisan tambahkan perintah <? exit; ?> di akhir baris kode pada script index.php dan proses.php

      Thank's

      Hapus
  16. pak form pada web bisa ga eksport atau import file dari excel???
    makasi

    BalasHapus
    Balasan
    1. caranya gmn t import dan export file excel d web, trus file excel it bsa d edit di web...
      mhon pncerahannya

      Hapus
  17. Mau nanya pak, saya punya kasus dimana id login masing-masing user ini punya batasan karakter misal : login siswa 6 karakter, login guru 4 karakter dan kepala sekolah 3 karakter dan halaman utamanya saya bikin 1 saja dengan pilihan menu yang berbeda untuk setiap levelnya, gimana cara bikinnya pak ... Makasi

    BalasHapus
    Balasan
    1. //Ini hanya contoh saja,,
      //Untuk batasan Karakter
      $username = strlen($_POST['username']);
      if($username == 4){
      //Proses disini untuk yg 4 karakter....
      }

      //Untuk menu halaman setelah login, Contoh: index.php?halaman=guru
      if($_GET['halaman'] == "siswa"){include "halamansiswa.php";}
      elseif($_GET['halaman'] == "guru"){include "halamanguru.php";}
      else{include "beranda.php";}

      //Semoga gak slh pengertian...
      //Thank's

      Hapus
  18. izin Nyimak gan,Makasi bener udah berbagi Ilmunya,semoga dibales sama Allah SWT gan,,Amin,..:)

    BalasHapus
  19. ni om kodenya tapi ko masih salah ya.. tolong tuk dikoreksi
    0)
    {
    session_start();
    session_register("id");
    session_register("username");
    session_register("password");
    session_register("akses");
    $_SESSION[id] = $r[id];
    $_SESSION[username] = $r[username];
    $_SESSION[password] = $r[password];
    $_SESSION[akses] = $r[akses];
    header('location:dashboard.php');
    }
    else{ echo "LOGIN GAGAL!
    << Kembali";
    }
    ?>

    BalasHapus
    Balasan
    1. Untuk php 5.4 ke atas,, coba tambahkan tanda petik pada:

      $_SESSION[id] = $r[id];
      $_SESSION[username] = $r[username];
      $_SESSION[password] = $r[password];
      $_SESSION[akses] = $r[akses];

      Menjadi:

      $_SESSION['id'] = $r['id'];
      $_SESSION['username'] = $r['username'];
      $_SESSION['password'] = $r['password'];
      $_SESSION['akses'] = $r['akses'];

      Jangan lupa sebelum perintah session_start(); pastikan ga ada spasi atau baris kosong tanpa tertutup oleh <?php

      Lihat juga file yg di include sebelum baris perintah session_start(); seperti file koneksi.php, pastikan ga ada spasi sbelum <?php didalamnya....

      Thank's

      Hapus
  20. Agan Cara Buat DatabaseNya Gimana Pake phpMyAdmin ,Aku Uda Download Itu Tpi G Ada Instal Nya Bantu Min :)

    BalasHapus
    Balasan
    1. Coba gunakan ini Hand:
      http://source.tutorialwebgratis.com/localserver/

      Hapus
  21. saya klik http://localhost/webmaster/sessions/

    ada pesan error

    Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\xampp\htdocs\webmaster\sessions\koneksi.php on line 7
    Koneksi gagal

    saya masukan sesuai database di notepad dan download zip lalu ekstrak langsung dgn ke htdocs

    //dgn script di koneksi.php password=""; bukan password="1234"; saya pakai xampp

    saat buka degn browser ada pesan error koneksi line 7

    http://localhost/webmaster/sessions/

    BalasHapus
    Balasan
    1. Coba periksa file koneksi nya baris ke 7,,
      Ganti dengan:

      mysql_connect($server,$username) or die("Koneksi gagal");

      Thank's

      Hapus
  22. kk gw mau buat pendaftaran member,reseller,dan admin gimana caranya kk pliss share dong / kirimkan ke fb aku www.facebook.com/agus.agennsx
    pliss ya kk

    BalasHapus
  23. gan...
    itu syntax bisa buat 1 user 1 LogIn gak?

    misal user "ade" sudah Login dikomputer 1, berarti tidak bisa Login di komputer 2.

    terima kasih

    BalasHapus
    Balasan
    1. Untuk syntax di atas belum dibuat seperti itu, karena proses nya ga membaca user yg sedang online.... silahkan gunakan metode pada tutor dibawah ini untuk membaca status user yg sedang online:

      http://www.tutorialwebgratis.com/2012/08/cara-membuat-status-user-online-dan.html

      Silahkan kembangkan kedua medote tersebut...

      Hapus
  24. Ijin coba dulu sob :)

    BalasHapus
  25. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
    Balasan
    1. pak saya menemukan error pas sudah login
      eror nya
      Fatal error: Call to undefined function session_register() in C:\wamp\www\sessions\proses.php on line 11
      ini file proses.php nya pak
      0)
      {
      session_start();
      session_register("user_id");
      session_register("username");
      session_register("password");
      session_register("user_akses");
      $_SESSION['user_id']= $r['user_id'];
      $_SESSION['username']= $r['username'];
      $_SESSION['password']= $r['password'];
      $_SESSION['user_akses']= $r['user_akses'];
      header('location:index.php');
      }
      else
      {
      echo "LOGIN GAGAL!
      << Kembali";
      }
      ?>
      mohon pencerahan pak

      Hapus
    2. Coba hilangkan bag ini:

      session_register("user_id");
      session_register("username");
      session_register("password");
      session_register("user_akses");

      Thank's

      Hapus
  26. Saya mendapatkan error pada bagian ini om
    Fatal error: Call to undefined function session_register() in C:\xampp\htdocs\multi-login\proses.php on line 13

    dan ini screenshoot scrip php yg saya tulis di http://vvcap.net/db/uIhZLgTRYqg7aAQt6UN1.htp

    BalasHapus
    Balasan
    1. Mohon pencerahannya om :)

      Hapus
    2. Coba hilangkan bag ini:

      session_register("user_id");
      session_register("username");
      session_register("password");
      session_register("user_akses");

      Untk php v.5.xx ke atas coba tambahkan tanda petik pada bag ini:

      $_SESSION[user_id] = $r[user_id];
      $_SESSION[username] = $r[username];
      $_SESSION[password] = $r[password];
      $_SESSION[user_akses] = $r[user_akses];

      Menjadi:

      $_SESSION['user_id'] = $r['user_id'];
      $_SESSION['username'] = $r['username'];
      $_SESSION['password'] = $r['password'];
      $_SESSION['user_akses'] = $r['user_akses'];

      Maf, br bs bls.

      Hapus
  27. gan bagaimana caranya jika kita login sebagai mahasiswa yang pada saat kita login dengan nim kita yang keluar adalah seluruh data data kita...
    trus data data itu juga bisa di edit nantinya..
    mohon pencerahannya gan..

    BalasHapus
    Balasan
    1. Script di atas bs dijadikan panduan Mei.... Silahkan sesuaikan database nya...

      Hapus
  28. Thanks u Gan, ats tutor.a.... slm knal z..

    BalasHapus
  29. mas,saya mau tanya..
    Saya sedang mengerjakan tugas akhir tentang pembangunan administrasi online siswa..
    saya buat 3 halaman pada web saya yaitu halaman home, administrasi dan contact, tetapi karna temanya administrasi online, sehingga akun masing2 siswa harus berbeda di halaman administrasinya,
    nah, bagaimana agar ketika user login, halaman index dan contact yg dituju akan sama dengan user lain, tetapi yang berbeda pada tampilan halaman administrasi yang menampilkan administrasi dari masing2 siswa..
    seperti contohnya pada facebook, halaman pengaturan dan beranda dari tiap2 user kan sama, tetapi halaman profil dari masing2 user berbeda..

    untuk masalah enum nya, apakah menggunakan nama siswa kah ???
    karna disini tidak ada hak akses, hanya nama saja yg dijadikan hak akses,

    mohon bantuannya mas..
    trims

    BalasHapus
    Balasan
    1. Kalo seperti itu ga perlu menambahkan hak_akses user, karena setiap user login, halaman nya udh pasti berbeda2, sperti tampilan nama, poto, tgl lahir, nama ibu, dll
      Yg ditutuhkan hanyalah desain web dari halaman administrator nya sj....

      Maf klo sy blm paham sm pertanyaan ny, silahkan kirim kode nya ke email sj mba, biar sy lihat dlu...

      Thank's

      Hapus
    2. contohnya gini mas.
      saya buat user dengan nama andi dan irman...
      ketika andi dan irman login mereka akan ditujukan pada halaman index yang sama, tetapi ketika mereka menuju halaman administrasi akan memunculkan tampilan administrasi mereka masing2 yang pastinya berbeda seperti contoh pada halaman administrasi andi akan muncul Rp.500.000 tetapi pada halaman edministrasi irman akn mncul Rp.1.000.000..

      Apakah bisa ???

      Kalo tidak pakai hak akses bagaimana untuk menujukan masing2 user pada halaman yang berbeda ???

      Hapus
    3. Inti nya sama saja dengan tutorial di atas mba,,
      silahkan tambahkan username kedalam variable session saat login,
      kemudian didalam halaman Administrator cocokan data session tersebut
      dengan data username yg ada pada database, Jika data session sama dengan
      data username yg ada pada database maka proses akan dilanjutkan,
      seperti mengedit nama, merubah poto, menambahkan nilai, dll
      Jika demikian, maka halaman Administrator trsebut udh pasti berbeda2
      dari setiap masing2 user nya....

      Contoh:
      Misalkan didalam database terdapat data nilai yg isi nya berbeda2 dari setiap user nya
      Kemudian data nilai tersebut dipake untuk membedakan warna latar belakang halaman Administrator
      Jika nilai diatas 1000 maka latar belakang akan berwarna biru,
      dan jika dibawah atau sama dengan 1000, maka latar belakang akan berwarna merah

      Perhatikan kode berikut:

      <?php
      if($_SESSION['username'] == $data['username']){
      if($data['nilai'] > 1000){
      echo "<body bgcolor='blue'> Nilai kamu adalah: $data[nilai]</body>";
      }
      elseif($data['nilai'] <= 1000){
      echo "<body bgcolor='red'> Nilai kamu adalah: $data[nilai]</body>";
      }
      }else{
      echo "Tidak ada session username yg cocok, maka kamu didak boleh kesini!";
      }
      ?>

      Ini hanyalah contoh kecil saja,
      dan username bukan jadi patokan untuk menjadikan metode trsebut,
      bisa juga dari email, id, dll...
      Yg penting ada satu variable session yg di ambil dari table user
      yg nantinya session trsebut dijadikan sebagai kunci untuk mengambil data yg lain
      dari tiap2 user yg ada sesuai dengan session.

      Thank's

      Hapus
  30. mas kan ada tugas administrator dan user biasa pengen beda kan kalo administrator mah bisa menguasai semua tapi user biasa cuman bisa lihat gmna scrip cara membedakan nya !!!
    sebelumnya mohon maaf nanya masih awam belum terlalu paham ??
    makasih sebelumnya !!!

    BalasHapus
    Balasan
    1. Ya, script di atas memang seperti itu,, silahkan membacanya lebih seksama lg...

      Contoh untuk membedakan nya:

      if ($_SESSION[user] == "admin"){
      PROSES DISINI UNTUK AKSES USER ADMIN SAJA
      }
      elseif ($_SESSION[user] == "biasa"){
      PROSES DISINI UNTUK AKSES USER BIASA SAJA
      }
      else{
      PROSES DISINI JIKA BUKAN KEDUA NYA / BERI PERINGATAN TIDAK MEMILIKI AKSES
      }

      Untuk proses nya bisa buat apa saja, seperti menghapus data, dll...


      Thank's

      Hapus
  31. udh di coba tutorial di atas tetap gk bisa mas..
    ad cara yg lain gk ???
    trus 1 lgi mas, gmn cra na file excel di web it bsa d edit kmudian di download..??
    mhon pncerahannya mas.. ^_^

    BalasHapus
  32. Mas saya menambahkan di page index
    tapi kug tulisannya Parse error: syntax error, unexpected $end in C:\xampp\htdocs\pakarjantung\index.php on line 50
    kenapa ya mas >?

    BalasHapus
  33. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  34. linknya mati mas update lagi dong

    BalasHapus
  35. Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\belajarlogin\koneksi.php on line 8
    Koneksi gagal
    udah ikutin cara diatas..line 8 :
    mysql_select_db($database) or die("Database tidak bisa dibuka");
    ?>

    BalasHapus
    Balasan
    1. maaf batal..udah dapat hehe sory...kesalahannya pada koneksi.php
      $pasword= "paswordnya"; diganti sama
      $pasword= "";
      krn gak pake pasword
      sekali lagi maaf mas...

      Hapus
  36. om ini php adminnya letaknya dimana yah ??

    BalasHapus
  37. maaf mas mau tanya, kondisinya gini, si user A sudah login terus menginputkan data tanpa perlu dia menginputkan namanya, namanya sudah otomatis tampil(ada data pengentrynya). . tapi kalau user lain lihat data tersebut koo nama user A tdk terlihat, malah yang kebaca dan yang jd pengentry datanya si user B itu gimana mas nyimpen data session user Anya. .
    Terima kasihh

    BalasHapus
    Balasan
    1. Mungkin yg di tampilkan itu sessions nya mas bukannya data yg di ambil dari database,, si pengentry harus ikut di entry kan ke database saat menambahkan data, dan jangan di buat sessions...

      Hapus
  38. Bos numpang tanya :D
    pas pemanggilan halaman(misal koleksi.php) dari file index.php kok muncul
    kyak begini ya :
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\TA\koleksi.php on line 36
    halaman:[1]

    tapi klo sya panggil secara manual dalam artian pemanggilannya tidak melalu index.php dia baru mau running, kira2 kenapa ya bos..?:D mhon penjelasnnya trimaksih sbleumnya

    BalasHapus
    Balasan
    1. itu biasanya karena koneksi ke mysql nya ga berhasil mas,, silahkan di cek kembali nama server, nama database, dan password nya, udh bner ap blm...?

      klo di panggil melalui file index.php ternyata berhasil, silahkan di cek kembali kode nya, mungkin kelengkapan koneksi nya sebagian ada di file index.php


      pastikan koneksi ke database sperti ini:

      mysql_connect('Alamat-Server','Username-Server','Password-Server');
      mysql_select_db('Nama-Database');


      Thank's

      Hapus
  39. ""mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\TA\koleksi.php on line 36
    halaman:[1] """

    itu ada kesalahan pada nama table di database, misalkan di file php menulis table "user" tapi di table database "users"... itu bisa di deteksi pada syntax "SELECT user WHERE blablablabla....."

    BalasHapus
  40. logout.php saya juga error :

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\7\wap\main.php:3) in C:\xampp\htdocs\7\wap\logout.php on line 2

    BalasHapus
  41. izin sedot gan .. artikel.a keren banget :D

    BalasHapus
  42. thanks gan makasii sangat, sangat berguna....

    BalasHapus
  43. saya juga lg bikin session start mas.. saya mau tanya... kalo kita udah login menggunakan username terus mau tampiliin data usernya untuk ubah data, itu listingannya kayak gmana yah??
    soalnya saya udah pake session start tapi data muncul tapi gak menurut username... tolong... :-) makasih

    BalasHapus
  44. Mantab sob. menambah ilmu buat saya yg masih agak sedikit gaptep ini. ijin mencoba sob

    BalasHapus
  45. Mantap lah sob.. sayang bukan yg multi menu ya... jadi yg bisa kasih menu terserah kita pada user id nya...


    jual sprei katun jepang

    BalasHapus
  46. mas-ter..,,, saya mau tanya..,,,
    cara membuat 10,50,100 tabel dengan select(list/menu) gimana ya caranya,,..
    dan didalam tabel itu ada 1 checklist 4 kolom berisi textfield disable , gimana cara meng-enablekan dengan cheklist tsb/... mohon dibantu ya masss...ter........
    maklum masih pemula.... hehehe :D

    BalasHapus
  47. maaf gan boleh minta pencerahan? saya masih newbie dalam pemrograman.
    masalah:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\sp\cekdulu.php on line 18
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\sp\cekdulu.php on line 19

    code:
    // pastikan username dan password adalah berupa huruf atau angka.
    if (!ctype_alnum($username) OR !ctype_alnum($pass)){
    echo "Sekarang loginnya tidak bisa di injeksi lho.";
    }
    else{
    $login=mysql_query("SELECT * FROM users WHERE username='$username' AND password='$pass' AND blokir='N'");
    $ketemu=mysql_num_rows($login);
    $r=mysql_fetch_array($login);

    // Apabila username dan password ditemukan
    if ($ketemu > 0){
    session_start();

    BalasHapus
    Balasan
    1. Tegar: coba di isi dulu database nya...

      Maf sy udh lama g update blog ini.

      Hapus
  48. Assalamualaikum wr wb

    Pak Ujang, mohon bantuannya.
    Kalau saya ingin buat form daftar agar user bisa menentukan username dan passwordnya sendiri dan juga punya data diri yang hanya bisa di ubah oleh orang yang login itu sendiri bagaimana ya...

    BalasHapus
  49. thanks infonya gan
    www.gedeetika.com

    BalasHapus
  50. thanks infonya gan
    www.gedeetika.com

    BalasHapus
  51. Tanks gan,, maaf banyak komentar yg ga ke jawab, soalnya sy udh lama ngga update blog ini lg, mudah2an kedepan nya sy ad waktu buat update lg....

    BalasHapus
  52. gan, error gini gimana ya?


    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\xampp\htdocs\coba_web\koneksi.php:8 Stack trace: #0 C:\xampp\htdocs\coba_web\index.php(3): include() #1 {main} thrown in C:\xampp\htdocs\coba_web\koneksi.php on line 8

    BalasHapus
    Balasan
    1. di cek lagi kode script nya yg agan tulis... periksa bag koneksi nya ke database,, ini sy tulis thn 2012 php versi lama... silhkn baca komentar2 lain sebelumnya. Tks

      Hapus
  53. terima kasih tutonya mas, saya maunya apa ada tutorial seperti multi user buklapak... ?

    BalasHapus
    Balasan
    1. terimakasih komentar nya gan,, maaf sy blm mngert sm prtanyaan agan, intinya sama sj gan trgantung kita mau mengaplikasikan nya sperti apa!!

      Hapus
  54. gan gimana ya cara nampilin sama ngedit data yang tipe datanya enum.. aku lupa.. :(

    BalasHapus
    Balasan
    1. untuk merubah type table menjadi enum pd database mysql,, silahkan isi kolom type/jenis dengan contoh format sprt ini:

      enum('pilihan1', 'pilihan2','pilihan3','dll')

      kemudian jika mau secara otomatis menambahkan slah satu isian nya, pada setiap menambhkan data baru, maka silahkan pilih slh satu isi dari enum() tersebut,dan tulis pada kolom Default, misalkan "pilihan2" yg akan di jadikan default nya untuk setiap menambhakan data baru, maka tulis "pilihan2" pada kolom Default, atau silhkn kosongkan sj jika tdk ada default nya,,

      dan untuk cara menampilkn nya sm sj dengan data2 yg lain nya,,

      tks, smoga nyambung dngn pertanyaan!!

      Hapus
  55. Balasan
    1. iy, tks udh mengingatkan,, untk smentara silhkn copas aj y,,

      Hapus
  56. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
    Balasan
    1. iy gan,, ini code versi php yg lama, lumayan buat nambah2 wawasan,, tks y sdh membaca ny,,

      Hapus