<?php
/* Функция для генерации купона */
function generateCoupon() {
return (object)[
'id' => uniqid(),
'code' => random_int(100000, 999999)
];
}
/* Для примера сохранять будем в сессию, а для этого первым делом убедимся что она запущена */
if (!session_id()) {
session_start();
}
/* Обрабатываем отправку пользователем формы - генерируем и сохраняем купон */
if ($_SERVER['REQUEST_METHOD'] === "POST") {
$_SESSION['coupon'] = generateCoupon();
/*
* После успешного сохранения перенаправляем пользователя на эту же страницу
* В данном конкретном примере у нас одна страница и без этого шага при обновлении страницы браузер предпримет попытку перепослать форму при обновлении страницы
* В более реальном коде сохранением будет заниматься отдельный обработчик и подобный код поможет вернуть пользователя обратно на страницу с формой/данными купона
*/
header("Location: {$_SERVER['REQUEST_URI']}");
die();
}
/* Вытаскиваем сохранённый купон, если таковой имеется */
$coupon = $_SESSION['coupon'] ?? null;
?>
<?php if (empty($coupon)) { ?>
<form method="POST">
<button>Сгенерировать купон</button>
</form>
<?php } else { ?>
<span>Ваш купон: "<b><?= $coupon->code ?>"</b> успешно добавлен, его ID = <?= $coupon->id ?>
<?php } ?>