当id为null时,使用codeigniter 3.0将会话重定向到主页


Session redirect to home when id is null with codeigniter 3.0

这是我在控制器中的代码:

$newdata = array(
   'uid' => $usern,
   'ou' => $filter
);
$this->session->set_userdata($newdata);                             
$this->masterpage->view('User/homeuser');

这是我的代码视图:

<?php
   $user = $this->session->all_userdata();
   if ($this->session->userdata('uid')=='') {
      redirect('main/main', 'refresh'); 
   }
?>

但是,当我键入链接时:http://localhost/[system_name]/index.php/[controller_name]/index

(当uid为空时显示的链接,页面应重定向到主)

只显示空白页。它似乎没有重定向到主页面。有人能帮我吗?谢谢

您不能在视图中进行重定向。为此使用控制器,因此将检查会话数据的逻辑从视图移动到控制器。

视图是在请求的最后呈现的,所以如果有一些输出,php不会将您重定向到任何地方。你看到空白页面可能是因为你关闭了错误显示,但我相信如果你检查php错误日志,你会看到一个错误"无法修改标题"左右

如果您非常想在视图中进行重定向,请使用Javascript。

这是我做过的最愚蠢的事情。我只是忘了从图书馆导入会话。在我的公共职能中,我应该把这个职能放进去。

$this->load->library('session');

当你试图同时构建两个系统时,就会发生这种情况。无论如何,谢谢你的回复,并试图为我解决它。