Reputation: 29
So I have to profile in my view but, it won't change until I logout. Could anyone help me with this problem?.
Below is the my Login controller
public function login(){
$user = $this->input->post('username',true);
$pass = $this->input->post('password',true);
$cek= $this->M_Login->prosesLogin($user, $pass);
$hasil = count ($cek);
if($hasil >0){
$select =$this->db->get_where('usersystem',array('username'=>$user,'password'=>$pass))->row();
// $data = array('logged_in'=>true, 'loger'=>$select->username);*/
$this->session->set_userdata(array('username'=>$user,'idperson'=>$select->idperson,
'foto'=>$select->foto));
if($select->kdlevel=='klAd'){
redirect('C_Login/pageAdmin');
}elseif ($select->kdlevel=='klOr') {
redirect('C_Login/pageOrangtua');
}elseif ($select->kdlevel=='klG') {
redirect ('C_Guru/sikap');
}
}else{
$this->session->set_flashdata('err','username atau password salah');
redirect('C_Login/index');
}
}
Here my upload profile picture controller's method
public function do_upload()
{
$this->load->library('upload');
$this->upload->initialize($config);
if ( ! $this->upload->do_upload('userfile'))
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('uploadfoto', $error);
}
else
{
$person=$this->session->userdata('idperson');
$img=$this->upload->data();
$foto=$img['file_name'];
$data=array('foto'=>$foto);
$edit=$this->M_Upload->editData('usersystem', $data, $person);
// print_r($person);
if ($edit>0) {
$_SESSION['foto']=$edit;
redirect('upload/index');
}else{
echo "gagal";
}
}
}
Here is the my view to show the profile picture
<div class="profile-userpic">
<img class="nav-user-photo" src="<?php echo base_url('uploads/'.$this->session->userdata('foto')); ?>" />
</div>
Upvotes: 2
Views: 1837
Reputation: 9717
Hope this will help you :
Your have to first unset foto
session then set it again in your if condition
Your else
condition should be like this :
$person = $this->session->userdata('idperson');
$img = $this->upload->data();
$foto = $img['file_name'];
$data = array('foto'=>$foto);
$edit = $this->M_Upload->editData('usersystem', $data, $person);
if ($edit > 0)
{
$this->session->unset_userdata('foto');
$this->session->set_userdata('foto', $foto);
redirect('upload/index');
}
else
{
echo "gagal";
}
For more : https://www.codeigniter.com/user_guide/libraries/sessions.html#removing-session-data
Upvotes: 1
Reputation: 804
Try to update foto session variable.
Your code
if ($edit>0) {
$_SESSION['foto']=$edit;
redirect('upload/index');
}else{
echo "gagal";
}
Updated code
// Returns array of containing all of the data related to the file you uploaded.
$upload_data = $this->upload->data();
$file_name = $upload_data['foto'];
// modify session
$this->session->set_userdata('foto', $file_name );
Upvotes: 0