php – 在CodeIgniter中重复插入数据
我只是在pastebin
http://pastebin.com/KBtqrAkZ的codeigniter控制器部分插入数据
public function add_product() { $this->lang->load('log_in','english'); log_in_check($this->lang->line('log_in_authentication_error'),'admin/log_in'); $this->lang->load('common','english'); $data['title'] = $this->lang->line('admin_index_title'); $this->load->view('admin_template/header',$data); $this->load->view('admin_template/left_menu'); $data['error_msg'] = ''; if ($this->form_validation->run('add_product') === TRUE) { $this->admin_model->add_product($this->input->post()); $this->session->set_flashdata('status_msg',$this->lang->line('add_product_success')); redirect(uri_string(),'refresh'); exit ; $data['error_msg'] = $this->lang->line('add_product_invalid_data'); } $this->load->view('admin/add_product'); //$this->load->view('admin_template/notification'); $this->load->view('admin_template/footer'); } 比我的模型部分简单添加在pastebin http://pastebin.com/WiLHV2sr public function add_product($data = array()) { $this->db->insert('ishop_product',$data); return $this->db->insert_id(); } 我的问题是在重定向后如果我按ctrl F5或F5而不是数据插入.我是codeigniter的新手.请帮帮我.任何帮助将不胜感激. 解决方法
这是双重提交问题.
有几种方法可以解决它: > The Post / Redirect / Get pattern:打破后退按钮,它不会让您的用户回到远远不能再次提交.不处理多次点击. – 我喜欢唯一的事务id方法.它的工作原理如下: >生成一个随机的transaction_id并将其放入您的Web表单中.当用户点击提交时,它会继续. 您还应该搜索[double-submit-prevention]以查看是否可以找到更好的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |