php - PHP Codeigniter 中的重定向

标签 php codeigniter redirect

我在使用 Code Igniter 时遇到了一些问题,我觉得有些东西我不明白,因为我无法让我的重定向和 header 正常工作。情况如下:

进入站点后,将调用默认的“home” Controller 。

    public function initialize()
{
    printf("CONSTRUCTION OF HOME CONTROLLER - \n");
     //   print_r($_SESSION);
        //TODO : CONSIDER CREATING A LIBRARY TO AVOID WRITING THIS OFTEN. NOT

    // SESSION TROLLING DETECTION
        if( isset($_SESSION['banana']))
        {
            echo "SPLITTING THE TRUTH";
        }   

   // GETTING AS SERIOUS AS GREG     
        if( !isset($_SESSION['username']))
        {
            printf("USERNAME IS NOT SET. SETTING UP THE LOGIN PAGE. \n");
            redirect('home_invite');
        }
        else
        {
            $this->load->view('welcome_message');
        }
}

public function index()
{
    //INITIALIZING THE PATH USED FOR THIS NAVIGATION
    printf("TROLLING THE BEGINNING OF THIS CONTROLLER HOME - ");
     $this->initialize();
     printf("TROLLING THE END OF THIS CONTROLLER  HOME - ");
   //TODO : CONSIDER CREATING A LIBRARY TO AVOID WRITING THIS OFTEN
}

索引调用初始化谁验证用户是否已经有一个包含用户名的 session 变量。如果是这种情况,我们将继续检查他的权限级别等,并加载相应的 View 。这不是问题所在。

如果 session 未启动,我想加载“登录” View ,此处称为“home_invite”。我想将他重定向到该页面。但如果我使用这段代码,页面将显示 404 错误。

如果我使用 $this->load->view('home_invite'),它可以工作,但我不明白,我觉得这不是我想要的。

为什么重定向在这种情况下不起作用?

最佳答案

使用 redirect() 方法重定向到 URL。因此,您需要向其传递一个完整的 URL(因为它使用 header() 函数,根据 HTTP1.1 的 RFC 需要一个完整的 URL。

这意味着您可以使用

redirect(site_url('home_invite'));

这会将您的用户重定向到 http://www.yoursite.com/home_invite

这意味着您必须有一个名为 home_invite 的 Controller 可用,因为您无法从 URL 加载 View 。同样,您可以在现有 Controller 中创建一个方法,并使用 paths.php 文件将/your_controller/home_invite 伪装为/home_invite

site_url() 函数也是您已包含以使用 redirect() 的 URL 帮助程序的一部分。

如果您不想使用 site_url(),您也可以像这样对 URL 进行硬编码

redirect('http://www.yoursite.com/home_invite');

关于php - PHP Codeigniter 中的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073484/

相关文章:

php - 如何在codeigniter 4中使用ajax

php - CodeIgniter - 如何在特定时间后自动删除数据库值?

php - MySQL EAV 查询返回所有条目

php - PayPal IPN - 发送到 ipn.php 的是什么?

php - 如何通过 codeigniter 中的关键字段更新所有设置字段?

javascript - HTML5 : preload page and then redirect to it

cordova - Ionic 4 oauth 重定向连接被拒绝

php - 使用 MySQL 创建一个 php 变量

javascript - 使用 jQuery session 或其他可能的方式在下一页上显示数据?

apache - .htaccess 301 重定向无法正常工作。需要强制HTTPS