Все же ваш вариант лучше. Один недостаток варианта, который предложил я - человек однажды получив код, сможет многократно им воспользоваться. Так что всем спасибо, проблема решена. Ничего лучшего, чем использование БД нет
Причина банальная - лень. Я не хочу подключать SQL к проекту. Из-за маленькой функции генерации купонов, придется подключать БД. С датой - оригинальная идея. Так и сделаю, спасибо
Такой вариант немного не подходит, потому что он все равно работает с файловой БД. Нужно каждый раз открывать файл и проверять действительный ли купон. Мне нужно было что-нибудь проще.
Сегодня пришла в голову идея генерировать купон так:
1) генерируем случайно одно число
2) делаем с этим числом математические преобразования и подстановки
3) получилось уже два числа кода. Берем последнее и вновь подставляем его в какую-нибудь математическую функцию. Уже три числа
...
4) и так далее. Буквы генерируем аналогично.
Для декодирования производим все по аналогии, но в обратном порядке.
Не думаю, что кому-нибудь захочется тратить время на подбор ключей или алгоритмов в виду того, что скидки маленькие. А если даже подберут код, то это даже плюс, так как в следствии захотят сделать заказ.
SELECT id FROM events WHERE start_date <= 2014-05-31 AND end_date >= 2014-05-01;
А уже потом средствами php проверить входит ли каждый отдельный день месяца в выбранный массив значений. Если входит, значит делаем ссылку, если нет, оставляем просто число.
Спасибо. Я тоже долго думал над красивым решением проблемы, но видимо, придется делать как описано выше. Может что-то еще найду, постараюсь выложить ответ. Спасибо