Uniqid()返回浏览器历史记录时返回相同的值


Uniqid() returns same value when going back in browser history

我使用php函数uniqid((为每个订单创建唯一标识符。

<?php $order_id=uniqid(); ?>

以下表格:

<input type="hidden" name="ordercode" value="<?php echo $order_id; ?>">

提交表单后,所有数据都记录在mysql数据库中,用户被重定向到付款。工作正常,但是:如果我在浏览器中按下"返回"按钮并返回订单页面,输入的命名订单代码包含旧值!这是不需要的,因为"订单代码"在数据库中必须是唯一的,以便在客户付款时识别订单。如果我再次提交表格,数据库中将有2条记录具有相同的ID。我想这是由浏览器缓存引起的。如果是,有没有办法强制浏览器在返回时刷新页面?还是另有原因?有什么建议吗?

有一种简单的方法可以实现这一点,您可以从数据库中将此列顺序代码标记为uniqu

更改表table添加唯一(ordercode(;