63 pemikiran pada “Membuat halaman login dengan session

  1. Salam kenal,

    Mas kalo copy paste source code t4 masnya kok tanda kutipnya tdk dikenali y? Hrs dganti lg penulisan semua tanda petiknya

    Thx b4

  2. salam kenal balik, mm.. blogspot(.com) dan wordpress(.com) setahu saya tidak mendukung penulisan kode program sendiri, kecuali anda menggunakan CMS WordPress dimana kode program anda bisa buka..

  3. Ping balik: Session apakah tidak jalan lagi? « Muhammad Ali Faiq

  4. Oom ali, tu kayanya yg bagian index.php ada yg kurang tepat deh, tu yg bagian awalnya () harus diilangin. Tul ga sih..??

  5. Hallo mas,
    Saya ingin menanyakan, bagaimana cara membuat login, dengan menu.php nya berdasarkan nama loginnya.
    jadi jika user A login maka, ia hanya bisa masuk ke halaman menu A saja, demikian juga user B hanya bisa masuk ke menu B saja.

    salam

    • Anda bisa gunakan: if .. then .. else
      misalnya,

      if ($uname=='Budi')
      {
        ..isi halaman untuk Budi
      }
      else if ($uname=='Agus')
      {
        ..isi halaman untuk Agus
      }
      

      biar lebih ringkas isi halaman dibikin file tersendiri misalnya:

      if ($uname=='Budi')
      {
        include "budi.php";
      }
      else if ($uname=='Agus')
      {
        include "agus.php";
      }
      
  6. Pada dasarnya untuk melakukan update/edit data anda tinggal memanggil data yang akan di update/edit dengan query select lalu menampilkannya di form, lalu simpan kembali data tersebut menggunakan query update.

    Untuk update/edit dibuat halaman tersendiri misalnya cari.php dan kode programnya kurang lebih seperti ini:

    <form method='post' action='cari.php'>
      Cari nama :<input type='text' name='dcari' /> <input type='submit' value='Search' name='tcari' />
    </form>
    
    if ($_POST[tcari]=='Search')
    {
      $data=mysql_query("select id,nama,sandi from t_anggota where nama='$_POST[dcari]' ");
      list($id,$nama_lama,$sandi_lama)=mysql_fetch_array($data);
      
      if ($nama!='' and $sandi!='')
      {
        <form method='post' action='cari.php' />
          Pengguna : <input name='user_baru' type='text' value='$_POST[nama_lama]' />
          Sandi : <input name='sandi_baru' type='text' value='$_POST[sandi_lama]' />
          <input name='id_user' type='hidden' value='$_POST[id]' />
          <input name='tupdate' type='submit' value='Update' />
        </form>
      }
      else
      {
        echo "data tidak ditemukan";
      }
    }
    else if ($_POST[tupdate]=='Update')
    {
      mysql_query("update t_anggota set nama = '$_POST[nama_baru]', sandi = '$_POST[sandi_baru]' where id = '$_POST[id_user]' ");
    }
    

    Penjelasan:
    Data yang dicari melalui from pertama (form pencarian), kemudian data tersebut dicocokkan kedalam tabel t_anggota dan jika ditemukan data (id,nama dan sandi) tersebut ditampilkan kedalam form yang kedua untuk di edit. Perhatikan terdapat komponen input yang bertipe ‘hidden’, ini digunakan untuk kunci id data yang akan di ubah.

    Data akan disimpan menggunakan query update artinya data lama akan ditimpa dengan yang baru dan sebagai kuncinya adalah id_user.

  7. Mas,

    format password saya terlanjur dengan ekkripsi mysql password, bagaimana cara membuat otentikasinya ya?

    saya coba dengan fungsi

    password(‘password_asli’);

    tidak bisa , katanya “password function() is not declared”

    bagaimana mas?

    • Ada beberapa cara fungsi enkripsi data yang dapat dipakai, diantaranya: password(), md5(), encrypt(), sha1(), dll.

      Membuat otentikasi password (misalnya untuk form login) adalah dengan membandingkan data hasil enkripsi katasandi dari form login dengan data katasandi yang telah ada di tabel. Jika kedua data enkripsinya sama maka otentikasi berhasil jika tidak maka sebaliknya.

      Sebagai contoh: username “Devi” dengan password “ayambetutu”.

      $p = mysql_query (“select password(‘ayambetutu’)”);
      list($p1) = mysql_fetch_row($p);

      lalu pada tabel, cari password dengan username “Devi”.

      $a = mysql_query (“select nama,sandi from t_anggota where nama=’Devi’ limit 0,1”);
      list($a1,$a2) = mysql_fetch_row($a);

      variabel $p1 dan $a2 yang berisi data terenkripsi tadi kemudian dibandingkan:

      if ($p1==$a2)
      { echo “password sama, login berhasil”; }
      else { echo “password tidak sama, login gagal” }

  8. Thanks mas, sudah berhasil.

    Pakai query mysql dulu baru dibandingkan dengan skrip php .

    Tapi selectnya tidak cuma passwordnya tapi juga ditambahi username. Kalau hanya password nanti bisa bingung programnya kalau ada user yang mempunyai password yang sama.

    • hampir sama dengan pertanyaan sdr Agus diatas, anda bisa membagi halaman sesuai dengan nama angotanya atau anda menambahkan field untuk kode area (misalnya: admin, member, guest).

    • Halaman login pada intinya adalah mencocokkan data username dan password yang dimasukkan dengan data username dan password yang ada dalam tabel (database). Kalau data username dan password (bisa keduanya atau salah satu) yang ada pada tabel dienkripsi, maka pada halaman login juga harus diberi fungsi enkripsi yang sama nantinya ketika user melakukan login data yang dicocokkan adalah data enkripsi input dengan data enkripsi yang ada di tabel.

      Gunakan perintah SELECT MD5(‘katasandi’); untuk membuat enkripsi passwordnya.

    • ‘katasandi’ yang dimaksud adalah isi password yang akan dienkripsi.

      Misalnya: username ‘budi’ dan password ‘nasilemak’, password dienkripsi dengan MD5, melalui MySQL command sebagai berikut:

      >SELECT MD5(nasilemak)
      >5abce368a085ec6870d99d8575adda99

      >INSERT INTO t_anggota (nama,sandi) VALUES(‘budi’,’5abce368a085ec6870d99d8575adda99′);

  9. Assalamualaikum,
    Mas tanya donk aku lg buat skripsi nich dan aku coba gabung ke db yg aku bikin knp ga muncul bisa ya…
    maksud dari = header(“location:../”);
    kususnya ../ =apa

    makasih sebelumnya

    • pastikan pesan erornya di bagian mana, sedangkan header(“location:../”); untuk mengalihkan halaman ke direktori utama (yang dimaksud adalah halaman index.php) atau bisa juga di ganti dengan header(“location:index.php”);

  10. mas knpha ya saya salah di sininya ..

    suka muncul kalimat

    Notice: Undefined index: username in /opt/lampp/htdocs/web/home.php on line 3

  11. Untuk mas Rizal:
    kelihatannya eror yang muncul apabila menggunakan PHP versi 5 keatas :D.

    Berikut perbaikan kode program:
    sambung.php

    <?php 
    $link=mysql_connect('localhost','root','');
    if (!$link)
    { 
      die ('konesi mysql tidak dapat dihubungkan:' . mysql_error());   
    }
    
    $db_selected=mysql_select_db('cobadb',$link);
    if (!$db_selected)
    {
      die('database tidak bisa dipakai : ' . mysql_error());
    }
    ?> 
    

    login.php

    <?php
    include "sambung.php";  
    
    if (($_POST['user']<>"") && ($_POST['password']<>""))  
    {  
      $Q=mysql_query("select * from t_anggota where nama='$_POST[user]'"); 
      $R=mysql_fetch_array($Q);  
    
      if (($R==NULL) OR ($R['sandi']<>$_POST['password']))  
      {  
        header("location:index.php");  
      }  
      else 
      {  
        $user=$R['nama'];
        if (!isset($_SESSION['user'])) 
          $_SESSION['user'] = $user;
        header("location:menu.php");  
      }  
    }  
    else 
    {  
      header("location:index.php");  
    }  
    ?> 
    

    menu.php

    <?php
    session_start();  
    $uname=$_SESSION["user"];  
    include "cek_session.php";  
    ?>
    
    <html>
    <head>
    <title>Halaman Menu</title>
    </head>
    
    <body>  
    Halaman Menu<br>
    <?php echo"User : ".$uname; ?>
    </body>  
    </html>
    

    cek_session.php

    <?  
    if (!isset($_SESSION['user']))
    {  
      session_destroy();  
      header("Location:index.php");  
    }  
    ?> 
    
  12. mas saya mau tanya ad ga cari yang lebih singkat untuk membuat login setiap user, misal user A login hanya memunculkan data2 dari user itu sendiri, dan seterusnya sampe user A-Z… selain dengan cara membuat file itu sendiri 1-1..

    klo bisa dibilang sama sepeti user facebook..
    tapi yang paling sederhana saja..

    terimakasih.

    • sangat dimungkinkan mas, tidak perlu membuat file satu-persatu setiap user, kalo formmya sama nanti tinggal panggil data-data user sesuai dengan user loginnya mas.

    • jika menggunakan wordpress ataupun cms yang lain biasanya sudah menyertakan fitur manajemen user, tinggal di add/invite kemudian diatur hak aksesnya (sudah ada pilihannya)

  13. klw login dengan databasenya ada yg berperan sebagai super admin, admin, dan user. dimana=
    -super adminnya itu bisa menghentikkan hak acces dari admin dan user, dia bisa merubah data, memasukkan, dan menghapus data.

    -adminnya bisa menghentikkan hak acces dari user dan bisa merubah data, memasukkan, dan menghapus data.

    -usenya dapat melihat data dalam web tersebut tetapi hanya bisa memasukkan data, bisa merubah dan menghapus data yang ia masukkan sendiri dan tidak bisa mengubah data atau menghapus data orang lain

    mohon bantuannya untuk kode phpnya. terima kasih banyak sebelumnya.

  14. klw halaman login dengan databasenya/sistemnya ada yg berperan sebagai super admin, admin, dan user. dimana=
    -super adminnya itu bisa menghentikkan hak acces dari admin dan user, dia bisa merubah data, memasukkan, dan menghapus data.

    -adminnya bisa menghentikkan hak acces dari user dan bisa merubah data, memasukkan, dan menghapus data.

    -usenya dapat melihat data dalam web tersebut tetapi hanya bisa memasukkan data, bisa merubah dan menghapus data yang ia masukkan sendiri dan tidak bisa mengubah data atau menghapus data orang lain

    mohon bantuannya untuk kode phpnya. terima kasih banyak sebelumnya.

    • wah.. :D, logika algoritmanya seperti pohon (tree), pada posisi atas terdapat super admin, lalu dibawahnya ada admin, dan dibawah admin terdapat user.
      klu-nya sbb:
      1. pada tabel anggota perlu ditambahkan atribut hak akses, misalnya kode “1” untuk super admin, kode “2” untuk admin, dan kode “3” untuk user
      2. ditambahkan pula pada tabel anggota suatu attribut status gunanya untuk status blok (disable/enable) user
      3. ditambahkan aturan hak akses sebelum proses modifikasi data (seperti : tambah, ubah/edit, hapus data) dijalankan, seperti yang anda paparkan diatas
      4. pada halaman login ditambahkan filter untuk blok (disable/enable) user

    • pertama, cek kode program dan databasenya apakah sudah benar, yang kedua cek konfigurasi session (set on) di php.ini

  15. gan yang di file index.php waktu ane jalankan kok keluar error :
    Parse error: syntax error, unexpected ‘<' in E:\xampp\htdocs\TA\index.php on line 2
    brarti yg error di , ngomong2 yg bikin error apa tuh gan… ?
    trus uda ane cobak semua yg agan posting di atas, n ane juga uda nyobak perbaikan kode dari agan ke saudara Zhall, semua tetep kluar error kayak gitu gan…

    mohon bantuan nya buat agan, terima kasih… 🙂

  16. Parse error: syntax error, unexpected ‘<' in C:\AppServ\www\index.php on line 2

    udah coba di <?php sama aja gan.,.

    • untuk file index.php coba yang ini, (karena didalam tag php maka ditambahi echo) :

      <?php
      echo"
      <form method='post' action='login.php'>
      <label>Pengguna : <input name='user' type='text'></label>
      <label>Sandi : <input name='password' type='password'></label>
      <input name='Submit' type='submit' value='Login'>
      </form>
      ";
      ?>
      
  17. maaf kK saya mau tanya..gimna caranya supaya login admin keamanannya diperkuat intinya ga bisa di bobol…oleh user jahat atau seorang hacker…

    • ada beberapa langkah pengamanan halaman login, diantaranya adalah menggunakan enkripsi data, menambahkan input kode captcha dan filter karakter yang diinput. hal yang lain bisa juga menggunakan https.

    • maaf belum sempat bikin lagi, silahkan dibuat sederhana (seperti diatas) dulu lalu kemudian ditambah fitur security-nya

  18. ok deh..o y kaka script yng di atas keamanannya cukup kuat ngga… trs kalaw mau buka login >admin itu pindah new tabs baru lg ngga..apa tetap di halaman user…?

  19. Dari logika diatas kan (Pertanyaannya Agus) ada fungsi if, then dan ellse. Nah, bagaimana, kalau penyesuaiannya dengan user yang baru mendaftar dan otomatis dibuatkan halaman untuknya ?

    Terima Kasih

    • Sederhananya seperti yang saya jelaskan diatas (jawaban pertanyaan sdr agus), namun untuk lebih dinamis anda bisa mebuat manajemen user dan menu,

      Misalnya
      User A; memiliki menu: menu 1 (index1.php), menu 2 (index2.php), menu 3 (index3.php)
      User B: memiliki menu: menu 4 (index1.php), menu 5 (index5.php), menu 6 (index6.php)
      User C: memiliki menu: menu 1 (index1.php), menu 3 (index3.php)

      Nah, pembuatannya dalam database bisa dibuat seperti ini: Tabel User, Tabel Menu, dan Tabel Relasi_User_Menu

      bisa dipahami?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s