You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter中实现先跳转到指定链接再重定向至主站的问题

在CodeIgniter中实现先重定向到指定链接再跳转主站的方案

首先得提一下你当前代码里的一个小问题:redirect($link,'refresh');之后的$data['list']=$_POST;永远不会执行,因为CodeIgniter的redirect()函数会发送HTTP重定向头,然后直接终止脚本运行,所以那行代码完全是无效的,建议删掉它。

回到你的需求:先跳转到generate_prn的链接,之后再跳转主网站。这里有两种最常用的实现方式,看你具体需求选:

方案一:在目标页面完成逻辑后直接重定向(无停留)

这是最直接的方案,既然你已经重定向到generate_prn/cin/xxx这个地址了,那就在这个地址对应的控制器方法里,完成你的PRN生成逻辑后,直接再加一次重定向到主站就行。

假设你的generate_prn对应的控制器是Generate_prn.php,处理cin参数的方法大概是这样:

class Generate_prn extends CI_Controller {
    public function __construct() {
        parent::__construct();
        // 加载需要的模型、库等
        $this->load->model('prn_model');
        $this->load->library('session');
    }

    public function cin($cin = null) {
        // 先处理你的PRN生成逻辑,比如根据传入的cin生成对应的PRN
        if ($cin) {
            $generated_prn = $this->prn_model->create_prn($cin);
            // 可以把生成的PRN存到session里,方便后续使用
            $this->session->set_userdata('latest_prn', $generated_prn);
        }

        // 逻辑完成后,直接重定向到主网站
        // base_url()是CodeIgniter的全局函数,返回你配置的主站根URL
        redirect(base_url(), 'refresh');
    }
}

这样用户的浏览器会先跳转到generate_prn/cin/xxx,控制器处理完逻辑后,立刻再跳转到主站,整个过程是自动的。

方案二:让中间页面停留后自动跳转(适合需要展示结果的场景)

如果你希望用户能看到PRN生成的结果,停留几秒后再跳转到主站,那可以在generate_prn的视图里添加HTML自动跳转的代码。

比如在你的cin_view.php视图文件中:

<div class="prn-result">
    <h3>PRN生成成功!</h3>
    <p>你的PRN编号:<?php echo $generated_prn; ?></p>
</div>

<!-- 设置5秒后自动跳转到主站,数字可以根据需要调整 -->
<meta http-equiv="refresh" content="5;url=<?php echo base_url(); ?>">
<p>页面将在5秒后自动返回首页,若未跳转请<a href="<?php echo base_url(); ?>">点击这里</a></p>

对应的控制器方法里,只需要把生成的PRN传递给视图,不用再加redirect:

public function cin($cin = null) {
    $data['generated_prn'] = '';
    if ($cin) {
        $data['generated_prn'] = $this->prn_model->create_prn($cin);
        $this->session->set_userdata('latest_prn', $data['generated_prn']);
    }

    // 加载视图展示结果,视图里的meta标签会自动处理跳转
    $this->load->view('cin_view', $data);
}

额外建议

  • 尽量用CodeIgniter提供的函数来处理URL,比如base_url()或者site_url(),不要硬写URL,这样后续修改配置更方便。
  • 处理POST数据时,你已经在用$this->input->post()了,这比直接用$_POST更安全,继续保持~

内容的提问来源于stack exchange,提问作者webdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:27:41