Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.87 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Login extends CI_Controller {
  5.     public function __construct(){
  6.         parent::__construct();
  7.     }
  8.  
  9.     public function index(){
  10.         // validasi email dan password
  11.         $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email',[
  12.             'required'=>'Email Harus Diisi',
  13.             'valid_email'=>'Email Tidak Valid']);
  14.         $this->form_validation->set_rules('password', 'Password', 'trim|required',[
  15.             'required'=>'Password Harus Diisi']);
  16.  
  17.         // email atau password kosong atau email tidak valid maka jalankan
  18.         if ($this->form_validation->run()==false) {
  19.             $this->load->view('login');
  20.         } else {
  21.             // jika validasi berhasil
  22.             $this->_login();
  23.         }
  24.     }
  25.  
  26.     private function _login(){
  27.         // mengambil email dan password yang diisikan user
  28.         $email = $this->input->post('email');
  29.         $password = $this->input->post('password');
  30.  
  31.         $user = $this->db->get_where('user', ['username' => $email])->row_array();
  32.  
  33.         if ($user) {
  34.             // usernya ada
  35.             if (password_verify($password, $user['password'])) {
  36.                 // simpan data di session
  37.                 $data = [
  38.                     'username'=>$user['username']
  39.                 ];
  40.  
  41.                 $this->session->set_userdata($data);
  42.                 redirect('user');
  43.             } else {
  44.                     // jika password salah
  45.                 $this->session->set_flashdata('message','<div class="pesan pesan-error" role="alert">Password Salah</div>');
  46.                 redirect('login');
  47.             }
  48.         } else {
  49.                 // tidak ada user dengan email tersebut
  50.             $this->session->set_flashdata('message','<div class="pesan pesan-error" role="alert">Email Belum Terdaftar</div>');
  51.             redirect('login');
  52.         }
  53.     }
  54.  
  55.     public function register(){
  56.         $this->form_validation->set_rules('nama', 'Nama', 'required|trim');
  57.         $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[user.username]',[
  58.             'valid_email'=>'Email Tidak Valid',
  59.             'required'=>'Email Tidak Boleh Kosong',
  60.             'is_unique'=>'email sudah terdaftar']);
  61.  
  62.         $this->form_validation->set_rules('pass1', 'Password', 'required|trim|min_length[3]|matches[pass2]',[
  63.             'matches'=>'Password Harus Sama',
  64.             'min_length'=>'Minimal 3 Carakter']);
  65.  
  66.         $this->form_validation->set_rules('pass2', 'Password', 'required|trim|matches[pass1]');
  67.  
  68.         // jika validasi salah maka
  69.         if ($this->form_validation->run()==false) {
  70.             $data['title']='Registrasi User';
  71.             $this->load->view('register',$data);
  72.         } else {
  73.             // jika sukses maka simpan kedalam database
  74.             $data = [
  75.                 'nama'=>htmlspecialchars($this->input->post('nama',true)),
  76.                 'username'=>htmlspecialchars($this->input->post('email',true)),
  77.                 'password'=>password_hash($this->input->post('pass1'),PASSWORD_DEFAULT)
  78.             ];
  79.  
  80.             $this->db->insert('user', $data);
  81.             $this->session->set_flashdata('message','<div class="pesan pesan-berhasil" role="alert">Selamat! akun anda sudah dibuat. Silahkan login</div>');
  82.             redirect('login');
  83.         }
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement