Создать код купона - PullRequest
       15

Создать код купона

0 голосов
/ 15 октября 2011

Я разрабатываю торговый сайт без использования коллективных «решений», готов.Я хочу, чтобы клиент получил ваучер по почте с вашей учетной записи и в панель его учетной записи, у него есть купон, доступный для печати.Каждый купон, который происходит, у вас должен быть уникальный код для каждого клиента.У кого-нибудь есть идеи как это сделать?

Ответы [ 4 ]

2 голосов
/ 15 октября 2011

Я использую этот код

while (true) {
    $ccode = "CP" . strtoupper ( dechex ( rand ( 1000000000, 9999999999) ) ) . strtoupper ( chr( rand( 65, 90 ) ) ) . chr(rand(65, 90));
    $check = mysql_query("SELECT coupon_code FROM item_coupons WHERE coupon_code = '$ccode'");
    if (mysql_num_rows($check) != 0) {
        //duplicate
    } else {
        break 1;
    }
}
1 голос
/ 15 октября 2011

Хэш его идентификатора электронной почты может быть использован в качестве кода купона. Также сохраните его в базе данных, чтобы избежать мошенничества.

0 голосов
/ 15 октября 2011

Прежде всего, вы можете создать таблицу coupon в своей базе данных следующим образом:

create table `coupon`(
    `code` char(32) primary key,
    `email` varchar(255),
    `used` tinyint(1) default 0
) ENGINE=MYISAM;

Теперь вы можете создать абсолютно случайный купон, а затем сохранить его в таблице для последующей проверки:

function generate_coupon_for($email)
{
    do
    {
        $cpn = md5(rand());
        if(mysql_query("insert into `coupons`(`code`, `email`) values('$cpn', '$email');"))
        {
            return $cpn;
        }
    }while(mysql_errno() == 1062);
    //We had an error while trying to insert the coupon
}

И, таким образом, вы можете проверить купон:

function check_coupon($code, $email)
{
    $q = mysql_query("update `coupons` set `used` = 1 where `email`='$email' and `code`='$code' and `used`=0;");
    return mysql_affected_rows() > 0;
}

Он вернет истину или ложь ...

Надеюсь, это поможет вам ...

0 голосов
/ 15 октября 2011

Используйте php-мейкер, вот что я бы сделал

...