首页 / PHP / php – 优惠券系统的随机码生成器
php – 优惠券系统的随机码生成器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 优惠券系统的随机码生成器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1584字,纯文字阅读大概需要3分钟。
内容图文
![php – 优惠券系统的随机码生成器](/upload/InfoBanner/zyjiaocheng/776/13713e85a7ed4ecbbc038bb53fc14925.jpg)
这对于随机优惠券代码生成器来说是否足够好?在制作新代码时,我应该检查并查看代码是否已被使用?这会重复的几率是多少?
$coupon_code = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 7);
编辑 – 这是我的实际代码:
$coupon_code = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 7);
$numrows = mysql_num_rows(mysql_query("SELECT id FROM generatedcoupons WHERE coupon_code='$coupon_code' LIMIT 1"));
if($numrows>0){
$coupon_code = substr(base_convert(sha1(uniqid(rand())), 16, 36), 0, 7);
$numrows = mysql_num_rows(mysql_query("SELECT id FROM generatedcoupons WHERE coupon_code='$coupon_code' LIMIT 1"));
if($numrows>0)
//error, show link to retry
}
解决方法:
这是一个优惠券系统,不仅可以保证唯一的代码,而且在查找时非常有效:
// assuming MySQL table with (id, code, effect)
mysql_query( "insert into `coupons` set `effect`='".$effect."'");
// "effect" will be some keyword to identify what the coupon does
$id = mysql_insert_id();
$code = $id."F";
$codelen = 32; // change as needed
for( $i=strlen($code); $i<$codelen; $i++) {
$code .= dechex(rand(0,15));
}
mysql_query( "update `coupons` set `code`='".$code."' where `id`=".$id);
// now, when you are given a code to redeem, say $_POST['code']
list($code,$effect) = mysql_fetch_row( mysql_query( "select `code`, `effect` from `coupons` where `id`='".((int) $_POST['code'])."'"));
if( $code != $_POST['code']) die("Code not valid");
else {
// do something based on $effect
}
如您所见,它从AUTO_INCREMENT获取ID,附加F,然后使用随机十六进制字符填充.您可以根据需要制作$codelen,但32应该足够(即使在第100万张优惠券之后也可以提供大约16 ** 26种组合).
内容总结
以上是互联网集市为您收集整理的php – 优惠券系统的随机码生成器全部内容,希望文章能够帮你解决php – 优惠券系统的随机码生成器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。