Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果用户在过去60天内未登录codeigniter,则重定向至重置密码页面_Php_Mysql_Sql_Database_Codeigniter - Fatal编程技术网

Php 如果用户在过去60天内未登录codeigniter,则重定向至重置密码页面

Php 如果用户在过去60天内未登录codeigniter,则重定向至重置密码页面,php,mysql,sql,database,codeigniter,Php,Mysql,Sql,Database,Codeigniter,我有一个users表,其中我将用户登录时间存储在一个timestamp列中,数据类型为int(11)。我试图检查哪些用户在过去60天内没有登录,并将他们重定向到重置密码页面。有人能帮我怎么做吗 这是我的控制器: public function login_user() { $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean', 'required'); $

我有一个users表,其中我将用户登录时间存储在一个timestamp列中,数据类型为
int(11)
。我试图检查哪些用户在过去60天内没有登录,并将他们重定向到重置密码页面。有人能帮我怎么做吗

这是我的控制器:

public function login_user() {
    $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean', 'required');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean', 'required');
    if ($this->form_validation->run() == FALSE) {
        $this->load->view('login_view');
    } else {
        $data = array(
            'username' => $this->input->post('username'),
            'password' => $this->input->post('password')
        );
        $result = $this->Login_model->login($data);
        $sessionres = $this->Login_model->sessionStore($data);

        if ($result == 1) {
            $userData = $this->Login_model->getUserData($data);
            $sessionArray = array(
                'is_logged' => TRUE,
                'user_name' => $data['username'],
                'first_name' => $userData['firstname'],
                'last_name' => $userData['lastname'],
                'userlevel' => $userData['userlevel'],
                'organisation_id' => $userData['organisation_id'],
                'user_id' => $userData['id'],
                'lastip' => $userData['lastip']

            );
            $this->session->set_userdata($sessionArray);
            redirect('dashboard');
        } else if ($result == 2) {
            $this->session->set_flashdata('message', 'Password seems to be wrong!');
            $this->load->view('login_view', $data);
        } else if ($result == 4) {
            $this->session->set_flashdata('message', 'Username is not active!');
            $this->load->view('login_view', $data);
        }else {
            $this->session->set_flashdata('message', 'Username not found!');
            $this->load->view('login_view', $data);
        }

    }
}

好的,如果你有用户最后一次登录的时间戳,那么你可以检查它是否在过去两个月内,如果不是,将用户重定向到密码重置页面

假设您在
$userData['timestamp']
中有用户的上次登录时间,然后就在
重定向(“仪表板”)之前您可以添加如下内容:

$this->session->set_userdata($sessionArray);

if ($userData['timestamp'] > strtotime('-2 months')){
    redirect('dashboard');
    die();
}else{
    redirect('reset-password');
    die();
}
我假设
'reset-password'
是通往密码重置页面的路径,并且
$userData['timestamp']
包含用户上次登录的时间


希望能有帮助

上面的代码都与时间戳无关,也不包含任何似乎与处理该案例有关的代码。你到底试过什么?我看不出有什么企图。你到底面临什么问题?什么让你困惑?我还没有尝试过什么,我不知道该怎么做。我已经发布了我的登录码。你能给我一些建议吗?嗯,很明显,你需要从数据库中检索字段值,阅读它,并检查它是否是60多天前的。如果是这样,则重定向它们。所有这些听起来都不是很难,尤其是在查看您已经发布的代码时,您似乎已经知道如何完成大部分任务(尽管使用其他字段)。再说一次,你在坚持什么?我们不是免费的“编写我的代码”服务,我们将帮助您修复错误。我们是志愿者,这是我们的空闲时间和努力。如果我们能看到您先花了一些时间,我们将花我们的时间。用户上次登录的时间是在哪一列?为什么时间戳有int数据类型?太棒了@user200!您好,我正在存储时间戳数据类型为int(11)会出现问题吗?因为我有一个用户的时间戳日期是今天的日期,但他仍然无法登录,他正在重定向到重置密码页此条件无法正常工作。不知道确切原因“无法正常工作”是什么意思?你能举个例子吗?