我正在开发一个与核心php网站集成的codeigniter网站。问题是当我注销会话没有被破坏或未设置时,如果用户单击后退按钮,他/她可以返回内部页面,也不允许其他用户登录,因为会话已经在运行。
我已经尝试使用corephp取消设置并销毁会话但没有运气,请提出建议。
这是我的退出代码
function logout()
{
session_start();
$this->session->set_userdata('user_id','');
$this->session->set_userdata('user_name','');
$this->session->set_userdata('business_id','');
$this->session->set_userdata('email','');
$this->session->set_userdata('user_type','');
$this->session->set_userdata('activation_status','');
unset($_SESSION);
$this->session->sess_destroy();
session_destroy();
header('location:'.base_url().'Login');
}
编辑:它适用于私人浏览器,但不适用于普通浏览器
答案 0 :(得分:2)
Try something like this
$data = array(
'user_id' => '',
'user_name' => '',
'business_id' => '',
'email' => '',
'user_type' => '',
'activation_status' => '',
);
$this->session->set_userdata('my_session',$data);
To Destroy Session
$this->session->sess_destroy('my_session');
答案 1 :(得分:0)
使用codeigniter会话库,它应该像
一样简单function logout(){
$this->session->sess_destroy();
redirect('/');
}
确保在此控制器中加载了会话库(或自动加载)
$this->load->library('session');
此外,您可以在会话中取消设置单个项目,而不是在会话中设置空白用户数据
$this->session->unset_userdata('user_id');
答案 2 :(得分:0)
试试这个
private void intialiseMap() {
try {
if (dialog == null)
dialog = ProgressDialog.show(ProfileActivity1.this, "",
getString(R.string.getting_location), true, true);
}catch(Exception e) {
Log.e("eybaba",""+e);
}
try {
if (googlemap == null) {
googlemap = ((MapFragment) getFragmentManager()
.findFragmentById(R.id.mapfragment)).getMap();
googlemap.setInfoWindowAdapter(new CustomInfowindow(context));
// check if map is created successfully or not
if (googlemap == null) {
Toast.makeText(getApplicationContext(),
R.string.maps_create_error, Toast.LENGTH_SHORT)
.show();
}
}
} catch (Exception e) {
}
}