CodeIgniter 3重定向功能不起作用

Map*_*ard 3 php redirect codeigniter

我正在重新编码和更新我的CMS我已经在CI2工作到CI3,而在我的生活中我无法让我的重定向功能在CI3上为我工作.

除了重新设计我的模型之外,我的代码到目前为止与我的CI2代码完全相同.最初我怀疑我的布局钩子是罪魁祸首,但我完全禁用了他,我仍然没有到达任何地方.

public function login ()
{
    //var_dump(logged_in());
    //if (logged_in())
        redirect('/user/');
}
Run Code Online (Sandbox Code Playgroud)

以上是我的用户控制器当前登录功能的全部内容.为了找出这个问题,我已经删除了所有其他代码.我甚至评论过这个if声明,认为它甚至可能是罪魁祸首.不.

我的logged_in()函数返回TRUE或FALSE,具体取决于我的用户会话中设置的某些内容.这似乎运作正常.据我所知,我的配置设置看起来不错.我有自动加载的URI帮助程序,其他URI帮助程序方法正常运行.

现在为了奇怪的部分.当我访问/ user/login时,不仅我的页面没有重定向,如果我var_dump()在重定向之前取消注释(返回true),并重新评论它,页面不会更新,我bool(true)在屏幕上而不管.如果var_dump被注释,我打开一个新选项卡,users/login它只是不加载任何东西,它只是作为一个新选项卡挂起.

编辑:我忘了提到当我使用'refresh'标志(redirect('/user/', 'refresh');)时,这只是带我到about:空白页面.

编辑#2:我已经将CI3文件复制到一个新的"项目"中,甚至那些不会使用内置的Welcome_Message视图/控制器组合重定向.

Sam*_*ghe 6

添加 ob_start(); 到控制器

<?php
ob_start();
defined('BASEPATH') OR exit('No direct script access allowed');

class Cart extends CI_Controller {
 // code here

}
Run Code Online (Sandbox Code Playgroud)


Map*_*ard 5

通过大量的反复试验,我发现了自己的问题.当我表演时,var_dump(base_url)我发现我是$_SERVER['SERVER_ADDR'],而且因为我在当地工作,那就是:: 1.我学到的是base_url不像CI2那样工作.Sadpanda.

Base_url配置变量设置不正确.在config/config.php我的base_url使用单引号设置.允许CI3猜测协议,它将默认为$_SERVER['SERVER_ADDR'],::1因为我在本地工作将返回.此外,当我将变量设置为时'http://localhost/supersecretname',使用单引号会弹出与使用auto时完全相同的问题SERVER_ADDR

通过一些睡眠剥夺的奇迹,我在这里尝试了许多不同的值,并且在某些时候我从单引号切换到双引号.

因此,找到了解决方案.

$config['base_url'] = "http://localhost/supersecretname";