Diary Studio | IT | The Best Solution

Selasa, 29 Januari 2013

  • Codeigniter PHP : Cara instalasi CodeIgniter serta Cara Membuat Akses Database

    Halo semua sahabat setia Belajar Pintar PHP , kali ini saya ingin share mengenai cara instalasi codeigniter serta cara membuat configurasi pengaksesan database berbasis codeigniter. Oke langsung saja ke TKP...!!! 

    Yang Kita Perlukan :
    Paket Webserver (AppServXAMPPEasyPHP, dll) & Code Igniter 
    Codeigniter (CI) merupakan sebuah PHP framework, katakanlah, untuk orang yang inginmembangun website dengan menggunakan PHP. Dengan menggunakan arsitektur model-view-controller yang memisahkan antara bagian logic dan tampilan dari program, CI cukup “menyenangkan” untuk digunakan. Tidak sulit apalagi anda sudah menguasai prinsip dasar OOP pada PHP

    Langkah 1 : Proses Instalasi CI
    1. Ekstrak  CodeIgniter yang telah anda download dalam direktori root web server anda. sebagai contoh ke C:\Xampp\Htdocs\.... (Bagi yang mengunakan Xampp).
    2. Selanjutnya masuk ke dalam folder system-application.
    3. OK.. bagian dalam folder application inilah yang akan sering anda utak-atik nantinya.
    Langkah 2 : Konfigurasi CI 
    1. Buka file config.php yang berada dalam folder system-application-config-config.php
    2. Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an tadi). Contoh : Folder CI anda berada dalam folder www/ci maka ubah baris$config['base_url']="http://example.com/";
      dengan
      $config['base_url'] = "http://localhost/ci/";
      Mengapa localhost? Karena dalam tutorial ini kita akan membangun CI dalam server lokal kita
    3. Setting database. Buka file database.php yang berada dalam folder yang sama dengan config.php. Ubah hostnameusernamepassword, dan nama database (database akan kita buat entar, untuk sementara siapkan namanya dulu saja) sesuaikan dengan pengaturan mysql anda. Contoh :
      $db['default']['hostname'] = "localhost";
      $db['default']['username'] = "root";
      $db['default']['password'] = "";
      $db['default']['database'] = "db_ci";
    Selesai dengan instalasi dan konfigurasi, next step siapkan database yang akan kita gunakan dalam praktikum kali ini.

    Langkah 3 : Siapkan database
    1. Buat database dengan nama db_ci melalui phpmyadmin anda (saya asumsikan anda sudah terbiasa menggunakan tool hebat ini).
    2. Siapkan tabel dengan nama tb_buku (field : id_buku, judul_buku, stok_buku).
      CREATE TABLE IF NOT EXISTS `tb_buku` (
      `id_buku` varchar(10) NOT NULL,
      `judul_buku` varchar(50) DEFAULT NULL,
      `stok_buku` year(4) DEFAULT NULL,
      PRIMARY KEY (`id_buku`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    3. Insert-kan beberapa sample data ke dalam tb_buku.
      INSERT INTO `tb_buku` (`id_buku`, `judul_buku`, `stok_buku`) VALUES
      ('1', 'Mencari Tombol Tab', 2003),
      ('2', 'Guna Guna dari Raja', 2033);
    4. Ok, we’re done with database !
    Langkah 4 : Bekerja dengan CI
    1. Membuat model. Ketikkan script berikut ini
      <?php
      class Buku_model extends Model {
      function Buku_model()
      {
      parent::Model();
      }
      db->select('*');
      $this->db->from('tb_buku');
      $this->db->order_by('id_buku','DESC');
      $data = $this->db->get('');
      return $data;
      }
      }
      ?>
    2. Simpan dengan nama buku_model.php. Simpan dalam folder system-application-models
    3. Membuat Controller. Ketikkan script berikut ini,
      <?php
      class Buku_con extends Controller {


      public function Buku_con()
      {
      parent::__construct();
      $this->load->model('buku_model');
      }

      public function getBuku () {
      $data['title'] = 'menampilkan isi buku';
      $data['detail'] = $this->buku_model->getBuku();
      $this->load->view('buku_view', $data);
      }
      }
      ?>
    4. Simpan dengan nama buku_con.php. Simpan dalam folder system-application-controller
    5. Membuat View. Ketikkan script,
      <h4>Data Buku</h4>
      <?php foreach($detail->result() as $rows) :
      echo $rows->id_buku; echo "<br>";
      echo $rows->judul_buku; echo "<br>";
      echo $rows->stok_buku; echo "<br>";
      endforeach
      ?>
    6. Simpan dengan nama buku_view.php. Simpan dalam folder system-application-view
    7. Nah. Kita sudah membuat sebuah fungsi untuk menampilkan data dari database dengan controller, model, dan view. Sekarang masuk ke browser anda.
    8. Ketikkan http://localhost/ci/buku_con/getBuku/. dan hasilnya akan tampak seperti dibawah ini :

      Data Buku dari Database 

      Sekian Totorial CodeIgniter kali ini, Selamat mencoba dan mengembangkannya masing-masing, Jangan lupa like dan Komentarnya, oke ...!!!
  • Senin, 28 Januari 2013

  • script php sistem login multi user




    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.

    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 usernamekata 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_idusernamepassword,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 penerapanAUTO_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 MYSQLterlebih 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');
        }
        
    elseecho "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,usernamepassword, 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:


    logout.php


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



  • Copyright @ 2014 Diary Studio | The Best Solution | Jasa Pembuatan Website.

    Designed by Diary | TechTabloids