Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter将数据添加到数据库,然后对其进行处理_Php_Codeigniter - Fatal编程技术网

Php Codeigniter将数据添加到数据库,然后对其进行处理

Php Codeigniter将数据添加到数据库,然后对其进行处理,php,codeigniter,Php,Codeigniter,我正在使用codeigniter建立一种在线商店。 我想创建一个processorder函数,以验证客户端提交的订单的详细信息 但是我被卡住了,因为在最后一页我有数据要提交,当我单击时,我进入主/进程顺序,在表中插入数据,然后使用curl与另一台服务器通信 我的问题是:当我点击submit,然后在process_order页面上停止时,如果我重新加载1000次,该表将填充相同的1000行,因此这可能是一个安全问题。另外,如果我创建一个函数将数据添加到db,然后重定向到process_order,

我正在使用codeigniter建立一种在线商店。 我想创建一个processorder函数,以验证客户端提交的订单的详细信息

但是我被卡住了,因为在最后一页我有数据要提交,当我单击时,我进入主/进程顺序,在表中插入数据,然后使用curl与另一台服务器通信

我的问题是:当我点击submit,然后在process_order页面上停止时,如果我重新加载1000次,该表将填充相同的1000行,因此这可能是一个安全问题。另外,如果我创建一个函数将数据添加到db,然后重定向到process_order,这将是另一个问题,因为我仍然需要发布的数据

解决这个问题的最好办法是什么。我希望我能尽可能清楚地说出来。 代码:


也许像这样的东西能帮上忙。在插入数据之前,检查用户ID和时间。您需要确保搜索唯一的数据库字段(除非时间字段是完整时间)

$data=array(
“userid”=>$userid,
“email”=>$email\u数据,
'phone'=>this->input->post('phone'),
“折扣”=>$this->input->post(“折扣”),
“价格”=>$this->input->post('price'),
“最终价格”=>this->input->post(“最终价格”),
“客户端数据”=>this->input->post(“客户端信息”),
'客户机ip'=>this->input->post('client\u ip'),
“时间”=>$date
);
如果()
{
$this->db->insert('orders\u temp',$data);
}

将数据保存到db后,检查是否存在相同的数据。数据保存到db后,页面仍在加载约2-3秒,任何人都可以停止并重新加载。所以它可以用相同的条目填充表格,也就是说,一旦表格有条目,你们就可以检查记录是否存在,不需要再次插入它。“这没关系,然后它得到刷新。”罗夏我通过ip检查。如果主要细节相同(数量、价格、项目等),我将不再写订单。如果同一ip有任何差异,我将覆盖订单。如果没有任何其他订单的ip,我会添加一个。这够了吗?好的,太好了,我希望没问题。谢谢,我允许未登录的用户购买,因此无法执行此操作。此外,时间也是全职的,不管怎样,如果只是一天、一个月、一年不好,如果他想订购任何其他东西,他只会有最初的订单。@AlexMuntean您可以将
get\u where
更改为您要检查的任何字段或任何条件。但从本质上讲,在将记录插入表中之前,您需要对一些独特的数据组合进行检查。是的,Donovan您是对的,我已经在这样做了,但不是使用get_,我使用if statement。无论如何,为了压缩代码,这可能很方便。谢谢你的好意。很高兴你把事情搞定了@AlexMuntean。如果这个答案对你有帮助,你能投赞成票或给它打正确的分数吗?如果没有,你能发布你自己的答案并将其标记为正确吗?谢谢
$data=array(        
        'userid' => $userid,
        'email' => $email_data,   
        'phone' => $this->input->post('phone'),
        'discount' => $this->input->post('discount'),       
        'price' => $this->input->post('price'),
        'final_price' => $this->input->post('final_price'),
        'client_data' => $this->input->post('client_info'),
        'client_ip' => $this->input->post('client_ip'),
        'time' => $date
        );

    $this->db->insert('orders_temp', $data); 
$data=array(        
    'userid' => $userid,
    'email' => $email_data,   
    'phone' => $this->input->post('phone'),
    'discount' => $this->input->post('discount'),       
    'price' => $this->input->post('price'),
    'final_price' => $this->input->post('final_price'),
    'client_data' => $this->input->post('client_info'),
    'client_ip' => $this->input->post('client_ip'),
    'time' => $date
 );

if (<!--CONDITIONAL STATEMENT-->)
{
    $this->db->insert('orders_temp', $data); 
}