用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2750|回复: 6
收起左侧

[已解决] 严重BUG!!!控制器被连续执行二次

[复制链接]
发表于 2015-1-17 09:56:42 | 显示全部楼层 |阅读模式
本帖最后由 635265428 于 2015-1-17 10:21 编辑

问题是这样的,发一份注册激活邮件到用户邮箱,点击邮件是的激活链接,结果,控制器被连续执行二次,把链接手动复制到地址栏回车,就正常执行一次,好奇怪呀:
/**
     * 邮箱激活
     */
    public function active_user(){
        file_put_contents('active.txt', '测试邮箱', FILE_APPEND);
        die;
}
结果active.txt里面出现:测试邮箱测试邮箱,即被连续执行了二次,求解释???
后面经过测试发现,只要是点邮件里面的链接就会被执行二次
发表于 2015-1-18 11:02:48 | 显示全部楼层
这种问题不觉得该自己找自己原因吗?

莫什么都归咎于BUG
发表于 2015-1-17 10:54:48 | 显示全部楼层
本帖最后由 Closer 于 2015-1-17 14:42 编辑


不要用 die(); 來做程式碼的一部份
這是不正確的

我沒遇過...所以只能跟你說替代方案
你只要簡單做到一點就能避免
用 GET
PHP复制代码
 
$this->load->model('mds'); //載入模型
$test = $this->input->get('test', TRUE); //取得 GET 值
if($test){ //檢查 GET 有值
  $test_ok = $this->mds->get_test($test); //檢查此 GET 資料的某欄位是否記錄為 1
  if($test_ok=='nodata'){ //如果無記錄
    $this->mds->add_test($test); //執行記錄
    /* 執行你要執行的事 */
  }else{
    return;
  }
}else{
  return;
}
 
复制代码

 
发表于 2015-1-17 16:58:24 | 显示全部楼层
active.txt一开始为空吗?
发表于 2015-1-18 21:33:35 | 显示全部楼层
没有遇到过你说的“严重BUG”!!!!!!
发表于 2015-1-19 10:41:22 | 显示全部楼层
贴代码 明显就是你的逻辑错了 调用的时候调用两次了
 楼主| 发表于 2015-3-10 15:26:49 | 显示全部楼层
可以确定,不是我逻辑问题,也不是代码或框架问题,是火狐的问题,其他浏览器不会出现这种情况,只要url带get参数就会执行二次,我的解决办法是,把url改成pathinfo模式就不会执行二次了

本版积分规则