Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Menampilkan data user login seperti nama lengkap dihalaman beranda setelah log in
Bagaimana coding Menampilkan data user login seperti nama lengkap bukan username? kalo pke session cuma muncur username aja, mohon pencerahan nya gan. Model
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_account extends CI_Model{
function daftar($data){
$this->db->insert('users',$data);
}
function tampil_data($data){
return $this->db->get('users',$data);
}
}
controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Template extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('m_account');
$this->load->helper('url');
}
public function index() {
$data['user'] = $this->m_account->tampil_data()->result();
$this->load->view('template/header',$data);
}
}
}
18 Jawaban:
Jawaban Terpilih
jika memang yang disimpan session user_id / username, bisa get data lagi ke model dengan where user_id / username dari session
//controller
public function index() {
$data['user'] = $this->m_account->tampil_data($this->session->userdata('user_id'));
$this->load->view('template/header',$data);
}
//model
function tampil_data($user_id){
$this->db->where('user_id',$user_id);
$query = $this->db->get('users');
$query->row();
}
atau saat login, set session
function do_login($username, $password){
$this->db->where('username', $username);
$this->db->where('password', md5($password));
$query = $this->db->get('users');
if($query->num_rows() > 0){
$row = $query->row();
$data = array(
'user_id' => $row->id,
'user_avatar' => $row->avatar,
'user_name' => $row->username,
'full_name' => $row->fullname,
'logged_in' => TRUE,
);
$this->session->set_userdata($data);
return true;
}else{
return false;
}
}
di view bisa langsung :
<?php echo $this->session->userdata('nama_lengkap'); ?>
terimakasih atas jawaban nya gan sangat membantu :)
public function login($username, $password) {
//cek username dan password
$query = $this->CI->db->get_where('users',array('username'=>$username,'password' => md5($password)));
if($query->num_rows() == 1) {
//ambil data user berdasar username
$row = $this->CI->db->query('SELECT id_user FROM users where username = "'.$username.'"');
$admin = $row->row();
$id = $admin->id_user;
//set session user
$this->CI->session->set_userdata('username', $username);
$this->CI->session->set_userdata('id_login', uniqid(rand()));
$this->CI->session->set_userdata('id', $id);
$this->CI->session->set_userdata('nama', $name);
//redirect ke halaman dashboard
redirect(site_url('dashboard'));
}else{
//jika tidak ada, set notifikasi dalam flashdata.
$this->CI->session->set_flashdata('sukses','Username atau password anda salah, silakan coba lagi.. ');
//redirect ke halaman login
redirect(site_url('login'));
}
return false;
}
sebelumnya saya udh set session gini? tp tetap ga muncul untuk nama nya pada view?
$this->CI->session->set_userdata('nama', $name);
variable name itu di inisiasi / isi nya apa?
isinya nama lengkap setelah kita register gan, seharusnya gmna gan? saya masih newbie gan
1. saya belum nyoba berjalan baik atau engga penggunaan ' $this->CI-> ' klo menurut saya coba hanya ' $this-> ', kecuali
$CI =& get_instance();
//contoh
$CI->session
$CI->db
2. pada query yg di select hanya id_user
//ambil data user berdasar username
$row = $this->CI->db->query('SELECT id_user FROM users where username = "'.$username.'"');
$admin = $row->row();
$id = $admin->id_user;
jadi hasil yg akan di tampilkan dari row(); hanya id_user, coba select all, dengan 'SELECT *' atau 'SELECT id_user, nama'.. coba
//ambil data user berdasar username
$query = $this->db->query('SELECT * FROM users where username = "'.$username.'"');
$row = $query->row();
dan
.....
$this->session->set_userdata('id', $row->id_user);
$this->session->set_userdata('nama', $row->nama);
.....
pada $this->session->set_userdata('nama', $nama); sebelumnya, memang tidak akan menyimpan session nama, karna saya liat $nama itu undefinied, karna tidak di deklarasikan sebelmnya misal
$nama = 'budi'; $this->session->set_userdata('nama', $nama);
maka session akan menyimpan 'nama' dengan value 'budi',
iya gan sudah pakai itu
var $CI = NULL;
public function __construct() {
$this->CI =& get_instance();
}
di controller / model, menurut saya gausah pake juga gapapa langsung aja $this-> , tpi gamasalah sih sebenrnya, di coba coba aja :) karna yg jadi masalah nya cuma di query get nya aja ..
kalo di controller /model emang ga pakai bang, untuk username bisa aja, solusi nya gmna ya gan?
solusi di query getnya bang, itu dia ga bisa manggil nama kan?
script yang post sebelumnya udah di coba belum? apakah masih ada masalah? yang..
.....
//ambil data user berdasar username
$query = $this->db->query('SELECT * FROM users where username = "'.$username.'"');
$row = $query->row();
.....
.....
$this->session->set_userdata('id', $row->id_user);
$this->session->set_userdata('nama', $row->nama);
.....