我的代码实际上并未删除。我正在检查$ user_id变量是true还是false。如果为true,则用户已登录并重定向,如果为false,则创建闪存数据,显示未登录。
问题是一旦创建的闪存数据没有消失,我将在$ user_id变量中从模型返回行数
$user_id = $this->login_model->login($email,$password);
if($user_id == true){
$user_data = array("user_id"=>$user_id,"email"=>$email,"loggedin"=>true);
$this->session->set_userdata($user_data);
$this->session->set_flashdata('login_success','You Are Now Logged In');
redirect('dashboard');
}else{
$this->session->set_flashdata('login_failed','Email Or Password Is Incorrect');
}
这是我的模型代码:
$query =$this->db->where('email',$email);
$query =$this->db->where('password',$password);
$result = $this->db->get('users');
if($result->num_rows() == 1){
return $result->row(0)->id;
}else{
return false;
}
答案 0 :(得分:0)
要使push.splitlines()
消失 或淡出,您需要为此创建一个脚本。
使用它来消失您的 flash_data 。
flash_data
设置时间间隔,然后在您的 html代码中执行此操作...
setInterval(function()
{
$('#flash_data').fadeOut('slow');
}, 3000);
希望有帮助:)
答案 1 :(得分:0)
步骤01
在模型中,您正在传递return $result->row(0)->id;
并检查if($user_id == true){
。它永远不会进入功能 boolen!= Intiger 。
替换此
if($user_id == true){
对此
if($user_id != false){
步骤02
在控制器if and
其他. Only one defined with
重定向中,您有两种方法
if($user_id == true){ # Must change accroding to step 01
$this->session->set_flashdata('login_success','You Are Now Logged In');
redirect('dashboard');
}else{
$this->session->set_flashdata('login_failed','Email Or Password Is Incorrect');
# missing ??? Maybe redirect('login');
}
将redirect
添加到login
路由中,这将起作用。
答案 2 :(得分:0)
使用jQuery消失数据。
<script>
setTimeout(function () {
$("#div_id").hide();
}, 4000);
</script>
答案 3 :(得分:0)
如果仍然找到解决方案,可以尝试我的解决方案
在您的身体上添加onload js函数
<body onload="clearme();">
在底部添加js脚本
<script type="text/javascript">
function clearme() {
<?php
if (isset($_SESSION['msg_success'])):
unset($_SESSION['msg_success']);
elseif (isset($_SESSION['msg_error'])):
unset($_SESSION['msg_error']);
endif;
?>
}
</script>
每次加载新控制器时,它将清除您的flashdata会话。这对我有用,因为您的问题以前也对我来说是噩梦。