我的config.php设置
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
根据文档的工作正常,会话在浏览器关闭时到期。 但是,如果我想举行为期1年的会议(请记住我的功能)。
我试图覆盖设置以便记住我。但失败了
$new_expiration = (60*60*24*365); //A year milliseconds
$this->config->set_item('sess_expiration', $new_expiration);
$this->config->set_item('sess_expire_on_close', FALSE);
$this->session->sess_expiration = $new_expiration;
$this->session->sess_expire_on_close = FALSE;
$this->session->set_userdata('name','virat');
检查另一个文件上的代码
echo $this->session->userdata('name');
print_r($this->session->userdata());
有没有办法通过忽略默认设置来保持会话? 我做错了什么? 版本:CI3
更新 - >> 我仍在努力实现这一目标。我想我找到了一个解决方法。 每次阅读会话时,CI都会更新会话cookie文件。
另一个问题是CI没有简单地通过$ this更新config.php值。
所以
public function __construct()
{
parent::__construct();
$this->CI = & get_instance();
$this->CI->config->set_item('sess_expiration', 1253);
}
直接调用CI本身的工作原理。它更新了config.php变量。 另一点是你需要在每个控制器中执行此操作“没有config.php覆盖的单个读取”将擦除cookie值和会话值。您也可以将它包含在MY_controller可选中。
答案 0 :(得分:0)
好吧 - 我试着根据你的问题和那些评论来解释我会做什么
我假设您的复选框名称是“自动登录”,如
if(workoutPlan.isVisible()==true){
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("Client Workout Plans.csv"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
String line = "";
String cvsSplitBy = ",";
String fullName = null;
StringBuilder sb = new StringBuilder();
br = new BufferedReader(new FileReader("Clients.csv"));
boolean complete = false;
while(complete!=true){
try {
line = br.readLine();
String[] data = line.split(cvsSplitBy);
String Name = existingClient.getFirst()+" "+existingClient.getLast();
int fullNameLength = Name.length();
if((data.length>0)&&((data[0].substring(0, fullNameLength)).equals(Name))){
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
如果有人检查“记住我”并在提交凭据后,在您的登录控制器或模型中,您应该执行以下操作:
<input type="checkbox" name="autologin" value="1" />
之后 - 您需要更改的唯一内容是配置文件。
这样的事情,应该做的伎俩
$this->load->helper("cookie");
$autoLogin = $this->input->post("autologin",true);
if ($autoLogin == 1)
{
$cookie = array(
'name' => 'autologin',
'value' => '1',
'expire' => '31536000',
'path' => '/'
);
$this->input->set_cookie($cookie);
}
else
{
delete_cookie("autologin");
}