WHAT'S NEW?
Loading...
Showing posts with label PHP. Show all posts
Showing posts with label PHP. Show all posts



Lagi santai upload project ke hosting, eh salah satu API yang dipakai cuma bisa diakses lewat SSL atau secure link :/ , Kali ini ane mau share cara mengubah semua permintaan link pada Laravel menjadi https.


Tambahkan kode berikut ke app/Providers/AppServiceProvider.php

(Sisipkan pada function boot)


\URL::forceSchema('https');


Dan, tara.. waktu di klik link apapun menjadi https:// :)



Semoga Bermanfaat.


Lama ga ngeblog, saking sibuknya hehe

Kali ini mau share pengalaman dari petualangan belajar Laravel, yaitu menggunakan time ago, kira-kira gimana, langsung aja diliat di bawah.

  1. Tambahkan code ini pada file Controller

    public static function time_elapsed_string($datetime, $full = false) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);
    
    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;
    
    $string = array(
         'y' => 'year',
         'm' => 'month',
         'w' => 'week',
         'd' => 'day',
         'h' => 'hour',
         'i' => 'minute',
         's' => 'second',
     );
     foreach ($string as $k => &$v) {
         if ($diff->$k) {
             $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
         } else {
             unset($string[$k]);
         }
     }
    
     if (!$full) $string = array_slice($string, 0, 1);
     return $string ? implode(', ', $string) . ' ago' : 'just now';
    }
  2. Taro code ini di view

    use App\Http\Controllers\FileController;
  3. Dan untuk memanggilnya

    {{ FileController::namaFunction(valueDatenya, true) }}
    untuk menampilkan hanya dalam hitungan harian, jaman, atau menitan saja gunakan 'false', dan untuk menampilkan full beserta jam, menit, detik gunakan 'true' pada parameternya.
  4. Jangan lupa tambahkan ini pada Controllernya, karena fungsinya menggunakan DateTime;

    use DateTime;
  5. Dan tara... jadi.

     

Maaf tulisan acak2, yang penting isinya :) 


Auto base_url ini berfungsi untuk otomatis membaca dimana web kita dibuka, semisal kita dapet operan project dan base_urlnya ga sesuai sama path folder kita atau kita pengen ngerunning di Android atau di laptop lain yang masih satu jaringan, tapi base_url masih di localhost atau juga kita mau ngehosting, nah script ini berfungsi banget nih jadi gak perlu ubah-ubah base_url lagi di config.php, langsung running aja :)


$root = "http://".$_SERVER['HTTP_HOST'];
$root .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
$config['base_url'] = $root;


Silahkan dicoba, dan semoga bermanfaat :)


Halo, kali ini gua akan membagikan bagaimana caranya mengecek jika ada email yang sudah terpakai pada database, dan langsung muncul notifikasi kalo email itu sudah terpakai.

Disini, gw menggunakan CodeIgniter dan untuk validasinya menggunakan jQuery + jQuery Validator, dan disini gw asumsikan pembaca sudah mengerti dasar dari PHP terutama OOP.

1. Buat database, config CodeIgniternya, bla bla bla ngerti lah ya
2. Langsung ke form, buatlah sebuah form bebas :

<html>
...
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"></script>
</head>
</body>
<form id="formvalidate"...>
...
<input type="text" id="email" name="email" placeholder="Email">
...
</form>


3. Dan untuk validasinya, seperti berikut :

<script type="text/javascript">
  $(document).ready(function() {
    $("#formvalidate").validate({
      rules: {
        email: {
          remote: {
            url: "<?=base_url()?>/namacontroller/validateEmailExist",
            type: "post",
            data: {
              email: function() {
                return $("#email").val();
              }
            }
          }
        }
     },
   messages: {
     email: {
      remote: "Email telah diambil"
     }
   }
 });
});
</script>

Untuk mengatur lokasi notifikasi error dapat menggunakan seperti berikut :


errorElement: 'span',
errorLabelContainer: '.error'

errorElement memberikan perintah untuk membaca element mana yang berfungsi untuk menampilkan error, pada contoh diatas menggunakan span, span dapat diganti sesuai kebutuhan

<span id="error"></span>

dan errorLabelContainer berguna untuk memberikan style pada error, contoh :

<style media="screen">
  .error {
    font-size: 12px;
    color: red;
  }
</style>

4. Prosesnya


  public function validateEmailExist() {
    if (array_key_exists('email', $_POST)) {
      if ($this->emailexist($this->input->post('email'))==TRUE) {
        echo json_encode(FALSE);
      } else {
        echo json_encode(TRUE);
      }
    }
  }

  private function emailexist($email) {
    $this->db->select('email');
    $this->db->where('email', $email);
    $query = $this->db->get('nama_table');
    $num = $query->num_rows();
    if ($num > 0) {
      return TRUE;
    } else {
      return FALSE;
    }
  }

Dan, jika berhasil maka tampilannya akan seperti ini



Semoga bermanfaat :)


Aplikasi ini dibuat dengan Framework PHP CodeIgniter, dengan fungsi untuk memonitoring barang yang masuk ke Lab dan barang yang keluar dari Lab pada Sekolah.

Fitur dari aplikasi ini, sebagai berikut :

- Daftar Barang, meliputi :

  1. Data Table, yang memungkinkan untuk memfilter/search barang, sorting data dari terbesar-terkecil ataupun dari terkecil-terbesar, dan mengatur berapa data yang ditampilkan setiap paging
  2. Edit, berfungsi untuk mengubah value dari data yang ada
  3. Hapus, berfungsi untuk menghapus data dari table
  4. Kurangi Stock, yang berfungsi untuk mengurangi barang yang ada di dalam Lab, dan akan otomatis barang yang keluar tersebut diinput ke daftar Barang Keluar
  5. Print/Cetak, berfungsi untuk membuat detail setiap barang dalam bentuk lembaran kertas, maupun PDF
  6. Export to Excel, berfungsi untuk mengeksport semua data ke dalam format Excel
  7. Checkbox dan Hapus Item Terpilih, berfungsi untuk menghapus barang yang di centang, untuk mempercepat penghapusan barang
  8. Pagination, pagination berfungsi untuk memperkecil data yang akan di tampilkan, supaya tidak bingung melihat data yang terlalu banyak nantinya

- Tambah Barang, meliputi :
  1. Untuk menginput barang yang masuk ke dalam Lab, terdapat 3 jenis Lab (Lab RPL, Lab MM, dan Lab TKJ)

- Daftar Barang Keluar

  1. Data Table, yang memungkinkan untuk memfilter/search barang, sorting data dari terbesar-terkecil ataupun dari terkecil-terbesar, dan mengatur berapa data yang ditampilkan setiap paging
  2. Edit, berfungsi untuk mengubah value dari data yang ada
  3. Hapus, berfungsi untuk menghapus data dari table
  4. Print/Cetak, berfungsi untuk membuat detail setiap barang dalam bentuk lembaran kertas, maupun PDF
  5. Export to Excel, berfungsi untuk mengeksport semua data ke dalam format Excel
  6. Checkbox dan Hapus Item Terpilih, berfungsi untuk menghapus barang yang di centang, untuk mempercepat penghapusan barang
  7. Pagination, pagination berfungsi untuk memperkecil data yang akan di tampilkan, supaya tidak bingung melihat data yang terlalu banyak nantinya


- Statistik, untuk menu ini belum berfungsi, mungkin ke depannya akan Saya lanjutkan

- Daftar Pengguna, di dropdown list ini menampilkan semua user yang terdaftar beserta nama dan jabatannya

- Account Setting, berfungsi untuk mengatur Nama, password, dan jabatan dari user


Aplikasi ini memiliki 3 level hak akses yaitu :

  1. Kepala Lab / Gudang
  2. Wakasapras
  3. Kepala Sekolah
Masing-masing level memiliki hak yang berbeda-beda, sebagai berikut :

- Untuk Kepala Lab, memiliki akses penuh dari sistem
- Untuk Wakasapras dan Kepala Sekolah, hanya dapat memonitor/melihat data masuk dan data keluar, dan juga membuat report dalam bentuk Excel.

Berikut beberapa screenshoot dari Aplikasi tersebut.












Yak, langsung saja
Disini saya asumsikan pembaca sudah paham basic dari CodeIgniter terutama konsep OOP


1. Buat tablenya

CREATE TABLE IF NOT EXISTS tbl_user
(
    id_user INT(11) NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(id_user),
    email VARCHAR (30),
    username VARCHAR(12),
    password VARCHAR(32),
    status ENUM ('Aktif','Tidak Aktif') DEFAULT 'Tidak Aktif'
);


2. Load library email
$autoload['libraries'] = array('email');
atau bisa langsung di controller atau modelnya dengan "$this->load->library('email');"


3. Controller

public function simpanUser() {
    $data = array(
      'email'  => $this->input->post('email'),
      'username'  => $this->input->post('username'),
      'password'  => md5($this->input->post('password'))
    );

    if ($this->nuroaki->_simpanUser($data)) {
      if ($this->nuroaki->send($this->input->post('email'),$this->input->post('username'))) {
        $this->session->set_flashdata(md5('sukses'), "Anda berhasil melakukan registrasi, silahkan periksa pesan masuk email Anda untuk mengaktifkan akun yang baru Anda buat");
        // redirect ke halaman login
        redirect('/url/login'); 
      } else {
        $this->session->set_flashdata(md5('gagal'), "Terjadi kesalahan dalam melakukan registrasi, silahkan coba lagi!");
        // redirect ke halaman register, untuk melakukan register ulang
        redirect('/url/register');
      }
    }
  }

public function verify($hash=NULL) {
    if ($this->nuroaki->verifyEmail($hash)) {
      $this->session->set_flashdata(md5('sukses'), "Email sukses diverifikasi!");
      redirect('/url/login');
    } else {
      $this->session->set_flashdata(md5('notification'), "Email gagal terverifikasi");
      redirect('/url/register');
    }
  }


4. Model

public function _simpanUser($data) {
    // gunakan return untuk mengembalikan nilai ke controller yang nantinya akan dioper lagi ke proses email
    return $this->db->insert('tbl_user', $data);
  } 

public function sendMail($email,$username) {
    
    $from_email = 'ahmad.uji1902@gmail.com'; // ganti dengan email kalian
    $subject = 'Verify Your Email Address';
    $message = 'Dear '. $username .',<br /><br />
                Please click on the below activation link to verify your email address.<br /><br />
                http://urlwebsitenya/action/verify/' . md5($email) . '<br /><br /><br />
                Thanks<br />
                Nuroaki';

    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'ssl://smtp.gmail.com'; // sesuaikan dengan host email
    $config['smtp_timeout'] = '7';
    $config['smtp_port'] = '465'; // sesuaikan
    $config['smtp_user'] = $from_email;
    $config['smtp_pass'] = 'password'; // ganti dengan password email
    $config['mailtype'] = 'html';
    $config['charset'] = 'iso-8859-1';
    $config['wordwrap'] = TRUE;
    $config['newline'] = "\r\n";
    $config['crlf'] = "\r\n";
    $this->email->initialize($config);

    $this->email->from($from_email, 'Nuroaki');
    $this->email->to($email);
    $this->email->subject($subject);
    $this->email->message($message);
    // gunakan return untuk mengembalikan nilai yang akan selanjutnya diproses ke verifikasi email
    return $this->email->send();
  }

  public function verify($key) {
    // nilai dari status yang berawal dari Tidak Aktif akan diubah menjadi Aktif disini
    $data = array('status' => "Aktif");
    $this->db->where('md5(email)', $key);
    return $this->db->update('tbl_user', $data);
  }


5. Routes

Link untuk ke verifikasi, action adalah nama controller, dan verify methodnya

$route['verify/(:any)'] = "/action/verify/$1";


Semoga membantu :)



Untuk mengatasi error tersebut yang lebih jelasnya seperti berikut "Your requirements could not be resolved to an installable set of packages. PHP extension dom is missing from your system." berikut langkah-langkahnya.


1. Cek PHP module yang sudah terinstall, dengan cara mengetikkan "php -m" pada Terminal
Lalu cek apakah terdapat module dom atau tidak, bisa dilakukan dengan grep pada terminal jika mencari satu-satu itu ribet.


2. Jika tidak tersedia
Ketikkan perintah berikut "sudo apt-get install libapache2-mod-php7.0" pada Terminal


3. Install module mbstring
Ketikkan perintah berikut "sudo apt-get install php7.0-dom" pada Terminal


4. Cek kembali module-module dengan perintah "php-m"


Sekian tutorial cara mengatasi permasalahan tersebut. Semoga membantu :)




Untuk mengatasi error tersebut yang lebih jelasnya seperti berikut "Your requirements could not be resolved to an installable set of packages. PHP extension mbstring is missing from your system." berikut langkah-langkahnya.


1. Cek PHP module yang sudah terinstall, dengan cara mengetikkan "php -m" pada Terminal
Lalu cek apakah terdapat module mbstring atau tidak, bisa dilakukan dengan grep pada terminal jika mencari satu-satu itu ribet.


2. Jika tidak tersedia
Ketikkan perintah berikut "sudo apt-get install libapache2-mod-php7.0" pada Terminal


3. Install module mbstring
Ketikkan perintah berikut "sudo apt-get install php7.0-mbstring" pada Terminal


4. Cek kembali module-module dengan perintah "php-m"

Sekian tutorial cara mengatasi permasalahan tersebut. Semoga membantu :)


Orang indonesia males baca, jadi langsung aja.

Beberapa screenshoot

Dashboard Page



Detail Page 



Edit Page




Download di : https://github.com/UjiAhmadFauzi/ap-mhs

Tutorial instalasi sudah ada di readme repositorynya. Semangat Belajar! :)



(Postingan ini berasal dari https://noricdotpxc.wordpress.com , karna sudah tidak aktif wordpress lagi, maka post telah saya pindahkan ke sini, kalau gambar kurang jelas buka link berikut : Klik Link)



Di tutorial kali ini ane mau ngeshare cara install Composer Laravel untuk OS Windows
Compose Install
1. Download Composernya dulu ke : https://getcomposer.org/download/
2. Kalo udah jalankan aplikasinya

3. Klik “Next” – dan pilih “Install Shell Menus” dan “Next


4. Kemudian Browse file php.exe di local server yang agan gunakan dan klik “Next” dan “Install


5. Proses penginstalan harus terhubung ke internet ya, gan 

6. Kalau sudah klik “Finish

Kini Composer sudah selesai terinstall di di komputer agan :D
Nah selanjutnya kita mau ngecompose project, download dulu framework laravelnya di https://github.com/laravel/laravel/archive/master.zip

Compose Project
1. Kalau sudah exstract ke file C:/xampp/htdocs
2. Masuk ke dalam folder master dan klik kanan “composer.json” -> “Composer Install” ( butuh koneksi internet gan :) )
3. Tunggu sampai selesai. Kalau tidak berjalan atau error di command prompnya, klik kanan -> “Composer Option” ->”Run as admin ( install / update )
4. Tunggu sampai prosesnya selesai
5. kalau sudah silahkan ke http://localhost/master , lalu ke direktori /public
6. dan kalau berhasil kaya gini gan, dan siap untuk di coding gan
:D 
Terima Kasih
Source Code Aplikasi Inventaris Barang Material

(Postingan ini berasal dari https://noricdotpxc.wordpress.com , karna sudah tidak aktif wordpress lagi, maka post telah saya pindahkan ke sini)

Selamat Pagi :)
Ane punya aplikasi waktu magang sekolah dulu, yang jadi bahan buat laporan prakerin sekolah, "Aplikasi Inventory Material", emang belum sempurna sih aplikasinya. Daripada mejeng doang di disk ane ga kepake, mending ane share aja, barangkali ada yang membutuhkan.
Edit Data belum ane bikin, udah males ngotak-atik ntu aplikasi
Aplikasi ini dibuat menggunakan Framework CodeIgniter 2.1.4
Preview Aplikasi ( monggo diliat-liat, Gan ) :

Login

Homepage

Daftar Stok

Material Masuk

Material Keluar

Input Barang

Configure Stok

Login Sample :
Username : zura
Password : cakra

Bagi yang mau download atau mempelajari silahkan klik link dibawah :
Firedrive : http://www.firedrive.com/file/EFB22653AFBC1652
Kalo mau ngeshare silahkan gan, asal ada creditnya dari http://noricdotpxc.wordpress.com dan http://noric-poltektugu.blogspot.co.id/

Terima Kasih, Semoga Bermanfaat :)