Я использую функцию php uniqid () для создания уникального идентификатора для каждого заказа.
<?php $order_id=uniqid(); ?>
И ниже по форме:
<input type="hidden" name="ordercode" value="<?php echo $order_id; ?>">
После отправки формы все данные заносятся в базу данных mysql, и пользователь перенаправляется на оплату. Работает нормально, но:
Если я нажму кнопку «Назад» в браузере и вернусь на страницу заказа, ввод с именем codecode содержит старое значение! Это нежелательно, потому что «код заказа» должен быть уникальным в базе данных, чтобы распознавать заказ, когда клиент будет производить оплату. Если я снова отправлю форму, в базе данных будет 2 записи с одинаковым идентификатором.
Я думаю, это связано с кешем браузера. Если так, есть ли способ заставить браузер обновлять страницу при возвращении? Или есть другая причина? Какие-либо предложения?
Есть простой способ добиться этого, вы можете пометить этот столбец код заказа как уникальный из базы данных
ALTER TABLE table
ДОБАВИТЬ УНИКАЛЬНЫЙ (ordercode
);
Других решений пока нет …