Вопрос: Как генерировать скидочный купон на PHP?

Лучший ответ:
Сделал как хотели)
Вид купона:JFCA-4304790701739
И так, generate.php создает купон.<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Проверка купона</title>
</head>
<body>
    <form action="generate.php" method="post">
        Купон до:
        <input type="number" max="31" style="width:5%;" placeholder="31" name="d">        <input type="number" max="12" style="width:5%;" placeholder="06" name="m">
        <input type="submit" value="Создать">
    </form>
    <br><br><br>
    <?php
if (!isset($_POST['m'])){
    } else {
                $kupon = $_POST['m'].$_POST['d'];
                $dr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
                $drr   = array( "A", "B", "C", "D", "E", "F", "G", "H", "I", "J");
                $data = str_replace($dr, $drr, $kupon);
                $kupon2 = $kupon * 79 * 89 * 99 * 99 * 99;
                $kupon2 = "$data-$kupon2";
                echo "Ваш купон: \"<b>$kupon2</b>\"";
};
?>
</body>
</html>
сохраняете код в виде generate.php .
Далее, proverka.php проверяет купон на действительность.<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Проверка купона</title>
</head>
<body>
    <form action="proverka.php" method="post">
        Введите купон:
        <input type="text" style="width:50%;" placeholder="88e3e18656d274a70518ecdcaf01aec5" name="kupon">
        <input type="submit" value="Проверить">
    </form>
    <br><br><br>
    <?php;
if (!isset($_POST['kupon'])){
    } else {
              $kupon = substr($_POST['kupon'], 0, 4);
              $date = date("md");
              $dr = array("1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
                $drr   = array( "A", "B", "C", "D", "E", "F", "G", "H", "I", "J");
                $data = str_replace($drr, $dr, $kupon);
                
              $kupon2 = $data * 79 * 89 * 99 * 99 * 99;
              $kupon2 = "$kupon-$kupon2";
              if ($_POST['kupon'] == $kupon2) {
                        if($data>=$date){
                                              echo "<h1>Действительный купон!</h1>";
                                              } else {
                                              echo "<h1>Недействительный купон!</h1>";
                        };
              } else {
              echo "<h1>Недействительный купон!</h1>";
              }
};
?>
</body>
</html>
сохраняете код в виде proverka.php .
Заливаете на сервер два файла.
Юзайте) Вопросы задавайте, отвечу)))Могу модифицировать как пожелаете))) Конечно, за небольшую яндекс.деньги) 
mail: marketing-kg@yandex.com

Худший ответ:
До того, как понял, что предложенный мной вариант мне немного не подходит, делал так...
Может кому пригодится...
1) Допустим, нужно сгенерировать купон типа 314420-ABG
2) Генерируем рандомно число от 65 до 90 (=65)
3) Генерируем первую букву из ascii (=А)
4) Отнимаем от кода буквы 64 (65-64=1)
5) Умножаем 1х2 = 2
6) Переводим это число в радианы: 2*пи/180 = 0,03 (с округлением)
7) Узнаем остаток этого числа после комы (=03)
8) Разбиваем число на две части: 0 и 3
9) Получаем первое (3) и последнее (0) число из числового набора
10) Умножаем эти числа и додаем 14 (результат всегда будет двузначным = 14)
11) Раскладываем это число на отдельные числа 1 и 4. Это будет второе (1) и четвертое (4) число из числового набора
12) Умножаем 1-е, 2-е и 4-е число (=12). Разбиваем на отдельные символы (1, 2). Узнаем кто из них больше (=2). Это и будет наше 5-е число из числового набора.
13) Генерируем случайно вторую букву (66=B)
14) Отнимаем 64 = 2
15) abs(cos(2)) = 0.41
16) узнаем первое число после комы (4)
17) Это и будет наше последнее, 3е число из числового ряда.
18) Последняя буква тоже генерируется рандомно. Но она для красоты :)
Проверяем код, в таком же порядке, как и генерировали. Если на каком-то этапе возникла ошибка, значит код недействительный.
Минус такой генерации купонов в том, что один купон можно использовать бесконечное количество раз. Это как лицензионный ключ.