welcome to my blog

welcome to my blog !! Enjoy :)

Minggu, 13 Januari 2013

Session pada login di CI

Listing


Listing Program


Controller Login.php
<?php
Class Login extends CI_Controller {
//constructor
public function __construct(){
parent::__construct();
$this->load->helper('url');
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session'); }
//index for showing the login form
function index() {
$this->load->view('login_view');}
//this function will do the login process
function proseslogin() {
$username = $this->input->post('username');
$password = $this->input->post('password');
$passwordx = md5($password);
//the query is to matching the username+password user with username+password from database
$q = $this->db->query("SELECT * FROM tb_user WHERE username='$username' AND userpass='$passwordx'");
if ($q->num_rows() == 1) {
// if the query is TRUE, then save the username into session and load the welcome view
$nama = $q->row()->username;
$this->session->set_userdata('username',$nama);
$data['welcome'] = "Welcome $nama";
$this->load->view('welcome_view', $data);}
else {
// query error
$data['error']='!! Wrong Username or Password !!';
$this->load->view('login_view', $data);}}
//to do logout process
function logout() {
$this->session->sess_destroy();
$data['logout'] = 'You have been logged out.';
$this->load->view('login_view', $data);}}
?>
Model akun.php
<?php
Class ModelAkun extends CI_Model {
function __construct() {
parent::__construct(); } f
function cekUserPass($username, $password) {
$this->db->where('username', $username);
$this->db->where('password', $password);
$query = $this->db->get('user');
return $query->num_rows() > 0;}
function isLogin() {
return $this->session->userdata('username');}}
?>
View login_view.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Login with CI</title>
<center>
<h2> <b> Login with CI </b> <h2>
<?php echo form_open('login/proseslogin'); ?>
<table border="0" align="center">
<tr>
<td> Username</td>
<td> <input name="username" type="text"> </td>
</tr>
<tr>
<td> Password</td>
<td> <input name="password" type="password"> </td>
</tr><tr>
<td> &nbsp; </td>
<td> <input name="submit" type="submit" value="login"> </td>
</tr>
</table>
</form>
<?php if(isset($error)) echo "<b><span style='color:red;'>$error</span></b>";
if(isset($logout)) echo "<b><span style='color:red;'>$logout</span></b>"; ?>
</center>
</body></html>
View  Welcome_view.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Login with CI</title>
<center>
<?php if(isset($welcome)) echo "<h2><span style='color:red;'>$welcome</span></h2>";
echo "<br/>";
echo anchor("login/logout", 'Logout') ?>
</center>
</body></html>

Database


Output















kali ini kita akan membuat session pada CI. Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru. Biasanya session akan hilang jika kamu menutup browser.
Sebelum kamu menggunakan fungsi – fungsi tentang session di CI kamu hrus memanggil library session terlebih dahulu dengan cara :
$this->load->library('session');
Selanjutnya cara kita membuat atau memasukan nilai ke variabel sementara atau session :
$this->session->set_userdata('some_name', 'some_value');
            Yang kita lakukan pertama kali adalah membuat database untuk  session in dahulu yang berguna untuk menyimpan nama admin yang dapat login ke dalah suatu halaman website. Kita menyimpannya ke dalam database login.  Dari database kita menggunakan tabel login dan kita isi field dengan id yang bertipa data integer dengan auto increment, nama dengan tipe data char dan password dengan tipe data char lalu di enkripsi dengan algoritma md5. Gunanya enkripsi ini adalah agar pihak lain tidak ada yang mengetahui password si admin ynang mendaftar selain  admin itu sendiri . Lalu, kita isi dengan nama admin yaitu user dan password risma.
            Setelah itu kita masuk ke pemrogramannya. Pertama kita akan masuk ke controller login.php. Didalam function index terdapat perintah $this->load->view(‘login_view’); yang berarti bahwa akan memanggil file login_view.php di folder view. Di dalam login view hanya terdapat tulisan Login With Ci dan form untuk username dan submit serta button login. Dan jika kita klik button login maka akan menuju ke <?php echo form_open('login/proseslogin'); ?> akan ke controller login dan function proses login.
            Di dalam function proseslogin terdapat $username = $this->input->post('username'); // untuk membaca isian dari database login dan tabel login dengan field username. $password = $this->input->post('password'); //untuk membaca isian dari database login dan tabel login dengan field password yang diisikan oleh user. $passwordx = md5($password); // perintah ini untuk mengganti $password menjadi enkripsi dengan algoritma MD5. $q = $this->db->query("SELECT * FROM tb_user WHERE username='$username' AND userpass='$passwordx'"); perintah ini untuk mencocokkan username dan password isian admin dengan record yang username dan password yang tersimpan di dalam database.if ($q->num_rows() == 1) { Jika query benar dan username tersimpan di dalam session kemudian akan memanggil welcome view. $nama = $q->row()->username; $this->session->set_userdata('username',$nama); $data['welcome'] = "Welcome $nama"; dengan nama Welcome dan nama admin. $this->load->view('welcome_view', $data); Peintah ini untuk memanggil welcome view.php di view else { jika data yang di masukkan tidak cocok maka akan ke perintah berikut $data['error']='!! Wrong Username or Password !!'; Menghasilkan tulisan !! Wrong Username or Password !!
            Setelah terpanggil, maka kita akan ke welcome_view. Di dlaam welcome view hanya aka nada tulisan Welcome nama admin. Dan logout yang jika di klik maka akan ke controller Login dan function logout. $this->session->sess_destroy(); session dimatikan $data['logout'] = 'You have been logged out.'; perintah ini akan memunculkan tulisan 'You have been logged out. $this->load->view('login_view', $data); Lalu, perintah ini untuk menampilkan login_view


Tidak ada komentar:

Posting Komentar