使用PHP实现密保卡功能

   

  密保卡入库


  1. $this->load->model("admin/m_mibao"); 
  2.  
  3. $data = array();     
  4. //生成随机横坐标 
  5. $rand_str = $this->_rand_str(10); 
  6.  
  7. $arr   = array(); 
  8. for($k=0;$k<strlen($rand_str);$k++) 
  9.     for ($i = 1;$i < 9;$i++) 
  10.     {            
  11.         $rand = $this->_rand_num(3);  
  12.         //赋给所有code的容器 
  13.         $arr[$rand_str{$k} . $i] =  $rand; 
  14.     } 
  15.  
  16. $data["code"]     = serialize($arr); //序列化后将信息入库 
  17. $data["letter"]   = $rand_str; 
  18.  
  19. //避免重复序列号 
  20. while (TRUE) 
  21.         $data["card_num"] = $this->_rand_num(20); 
  22.         //判断序列号是否重复存在 
  23.     if($this->m_mibao->has_card_num($data["card_num"]) == 0) 
  24.     { 
  25.         break; 
  26.     } 
  27.  
  28. $data["add_time"] = TIME; 
  29. $data["user_id"]  = $uid; 
  30.            
  31. echo $this->mibao->insert($data); 

  密保卡图片生成


  1. //就是算坐标 
  2.        public function show($user_id) 
  3.     $this->load->model("admin/m_mibao"); 
  4.     $info = $this->m_mibao->get_by_uid($user_id); 
  5.     if(emptyempty($info)) 
  6.     { 
  7.         $this->msg("该用户无密保卡!","admin-index"); 
  8.     } 
  9.      
  10.     $codes = unserialize($info["code"]); 
  11.  
  12.     //图片初始值 
  13.      
  14.     $bit = 3;  //密保卡位数 
  15.      
  16.     $height = 332;    //图片高度 
  17.      
  18.     $width =  626;    //图片宽度 
  19.      
  20.     $im = imagecreatetruecolor($width,$height); 
  21.      
  22.     $linecolor = imagecolorallocate($im, 229,229,229); 
  23.      
  24.     $fontcolor = imagecolorallocate($im, 0, 0, 0); 
  25.      
  26.     $top_rectangle_color = imagecolorallocate($im,241,254,237); 
  27.      
  28.     $top_letter_color = imagecolorallocate($im,54,126,76); 
  29.      
  30.     $left_rectangle_color = imagecolorallocate($im,243,247,255); 
  31.      
  32.     $left_num_color = imagecolorallocate($im,4,68,192); 
  33.      
  34.     $logo_str_color = imagecolorallocate($im,0,0,0); 
  35.      
  36.     imagefill($im,0,0,imagecolorallocate($im,255,255,255));  //图片背景色 
  37.      
  38.     $font    = "./public/baomi/fonts/simsun.ttc";  //字体 
  39.      
  40.     $font_en = "./public/baomi/fonts/CONSOLA.TTF"; //英文字体 
  41.      
  42.     $font2   = "./public/baomi/fonts/simhei.ttf"; //密保卡上方黑体 
  43.      
  44.      
  45.     $dst = imagecreatefromjpeg("./public/baomi/120.jpg"); 
  46.      
  47.      
  48.      
  49.     imagecopymerge($im,$dst,120,15,0,0,193,55,100); 
  50.      
  51.     imageline($im,10,72,$width-10,72,$linecolor); 
  52.      
  53.     $ltext = "电子密保卡"; 
  54.      
  55.     if(!imagettftext($im,10,0,340,47,$logo_str_color,$font2,$ltext)) { 
  56.         exit("error");    
  57.     } 
  58.      
  59.     //写入卡号 
  60.      
  61.     $b = "1000" . $info["card_num"]; 
  62.      
  63.     for($i=0;$i<7;$i++){ 
  64.      
  65.         $p.= substr($b,3*$i,4). " "; 
  66.      
  67.     } 
  68.      
  69.     $x = 40; $y = 95; //序列号位置 
  70.      
  71.     imagettftext($im,10,0,$x,$y,$color,$font,"序列号"); 
  72.      
  73.     imagettftext($im,11,0,$x+50,$y,$color,$font_en,$p); 
  74.      
  75.     //颜色框 
  76.      
  77.     imagefilledrectangle($im,10,106,$width-10,128,$top_rectangle_color); 
  78.      
  79.     imagefilledrectangle($im,10,129,65,$height-10,$left_rectangle_color); 
  80.      
  81.     //写入最上排英文字母及竖线 
  82.      
  83.     for($i=1;$i<=10;$i++){ 
  84.      
  85.         $x = $i*55+35;      $y = 123;    $float_size = 11;   //字母位置参数                
  86.      
  87.         imagettftext($im,$float_size,0,$x,$y,$top_letter_color,$font_en,$info["letter"]{$i-1});//写入最上排英文字母 
  88.      
  89.     } 
  90.      
  91.     for($i=0;$i<=9;$i++){ 
  92.      
  93.         $linex = $i*55+65;    $liney = 105;    $liney2 = $height-10;  //竖线位置参数 
  94.      
  95.         imageline($im,$linex,$liney,$linex,$liney2,$linecolor);//划入竖线 
  96.      
  97.     } 
  98.      
  99.          
  100.      
  101.     //写入竖排数字及填入矩阵数据 划横线 
  102.      
  103.     for($j=0;$j<8;$j++){ 
  104.      
  105.         $jj=$j+1; 
  106.      
  107.         $x=35;  $y=($jj*24)+123; //左排数字及横线位置参数 
  108.      
  109.         imagettftext($im, $float_size, 0, $x, $y, $left_num_color, $font_en, $jj);//写入左排数字 
  110.      
  111.         for($i=1;$i<=10;$i++){ 
  112.      
  113.             $float_size2=11;  $x = $i*55+27;  $sy=$y;  //填入矩阵数据位置参数 
  114.      
  115.            $s = $info["letter"]{$i-1}; 
  116.            $s .= $j + 1; 
  117.            imagettftext($im,$float_size2,0,$x,$sy,$fontcolor,$font_en,$codes[$s]);//写入矩阵数据 
  118.      
  119.         } 
  120.     } 
  121.      
  122.     for($j=0;$j<10;$j++){ 
  123.      
  124.         $line_x=10; $line_x2=$width-10;$y=$j*24+105; //横线位置参数 y坐标数据同上 
  125.      
  126.         imageline($im,$line_x,$y,$line_x2,$y,$linecolor);//划入横线 
  127.      
  128.     } 
  129.      
  130.     //外框边线 
  131.      
  132.     imageline($im,10,10,$width-10,10,$linecolor);//横线 
  133.      
  134.     //imageline($im,10,$height-10,$width-10,$height-10,$linecolor); 
  135.      
  136.     imageline($im,10,10,10,$height-10,$linecolor);//竖线 
  137.      
  138.     imageline($im,$width-10,10,$width-10,$height-10,$linecolor); 
  139.      
  140.     //生成图片 
  141.      
  142.     ob_clean(); 
  143.     header("Content-type: image/jpeg"); 
  144.     imagejpeg($im,null,100); 
  145.     imagedestroy($im);       

  密保卡验证


  1. public function test1($uid) 
  2.  
  3.     $this->load->model("admin/m_users");         
  4.     $user = $this->m_users->sel($uid); 
  5.  
  6.     //post提交过来验证 
  7.     if($this->is_post()) 
  8.     { 
  9.         $codes = $this->m_mibao->get_codes_by_uid($uid); 
  10.         $codes = unserialize($codes); 
  11.  
  12.         $is_true = true; 
  13.         foreach($_SESSION["mibao"]["keys"] as $key) 
  14.         { 
  15.             if($codes[$key] != $_POST["values"][$key]) 
  16.             { 
  17.                 $is_true = false; 
  18.             } 
  19.         } 
  20.          
  21.         if($is_true) 
  22.         {            
  23.             die("正确"); 
  24.         } 
  25.         else  
  26.         { 
  27.              
  28.             die("错误"); 
  29.         } 
  30.     } 
  31.     else 
  32.     { 
  33.         //渲染视图 
  34.         $info = $this->m_mibao->get_by_uid($uid); 
  35.         $data = array(); 
  36.         $data["keys"] = $this->m_mibao->get_rand_keys($info["letter"]); 
  37.         $_SESSION["mibao"]["keys"] = $data["keys"]; 
  38.         $data["uid"] = $uid; 
  39.         $this->load->view("test1",$data); 
  40.     } 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, this
, im
, data
, public
, error code 255
, info
密保卡
php 直播功能如何实现、php 秒杀功能实现过程、php购物车功能实现、php签到功能实现、php收藏功能实现,以便于您获取更多的相关知识。

时间: 2024-11-03 14:43:28

使用PHP实现密保卡功能的相关文章

使用PHP实现密保卡功能实现代码&amp;amp;lt;打包下载直接运行&amp;amp;gt;_php技巧

效果图:密保卡入库 复制代码 代码如下: $this->load->model('admin/m_mibao'); $data = array(); //生成随机横坐标 $rand_str = $this->_rand_str(10); $arr = array(); for($k=0;$k<strlen($rand_str);$k++) { for ($i = 1;$i < 9;$i++) { $rand = $this->_rand_num(3); //赋给所有co

link环境下制作一款《订餐软件》,定时配送的功能怎么实现?使用定时器还是什么?

问题描述 link环境下制作一款<订餐软件>,定时配送的功能怎么实现?使用定时器还是什么? link环境下制作一款<订餐软件>,定时配送的功能怎么实现?使用定时器还是什么? 解决方案 这个可以使用quartz.net http://blog.csdn.net/gavin_luo/article/details/12758973

路由器QOS功能原理和工作方式

设置路由器时,大多会用到路由器的安全机制,也就常说的QOS功能,QOS功能可以保护整个网络的安全,本篇带你了解其具体的原理和工作的方式. 一.QOS用来解决带宽解决网络延迟和阻塞等问题的一种技术,一般里面包含优先级别.弹性带宽管理等等,主要用来解决各种网络的攻击和病毒,保护网络的正常运行,它主要有以下几个方面的功能: 1.端口优先:可针对源端口.目的端口进行设置优先的级别,一般来说如果是玩游戏为主.那么我可以针对一些主流游戏的端口.优先这些游戏的带宽. 2.IP/网段优先:可针对源IP.目的IP

了解360极速浏览器如何关闭保存网页密码此功能

点击地址栏后的按钮,进入"选项" – "个人资料"-"密码",选择"一律不保存密码"即可关闭此功能. 若之前已经保存过密码,则可点击"管理已保存密码",在弹出的对话框中将其删除即可.

PhotoShop CS5的增强3D功能详细教程

很多初学者都对Photoshop CS5中3D效果功能很感兴趣,来信询问我该功能的使用方法,在此专门为大家开发了这篇教程,供大家讨论学习. 平时我们所看到的一些立体感.质感超强的3D图像,在Photoshop CS5中也可轻松的实现.Photoshop CS5在菜单栏中新增了"3D"菜单,同时还配备了"3D"调板,使用户可以使用材质进行贴图,制作出质感逼真的3D图像,进一步推进了2D和3D的完美结合. 该教程精心为大家安排了一组3D图像,通过整个操作过程能熟练的掌握

jQuery基于图层模仿五星星评价功能的方法

  这篇文章主要介绍了jQuery基于图层模仿五星星评价功能的方法,使用jQuery动态修改元素背景色的方法实现星评功能,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//

Win7资源管理器丰富功能轻松方便

  资源管理器是大家熟悉和常用的Windows文件查看和管理工具,和之前的Windows版本相比,Win7的资源管理器提供了更加丰富和方便的功能,比如高效搜索框.库功能.灵活地址栏.丰富视图模式切换.预览窗格等等,可以有效帮助我们轻松提高文件操作效率. 按下快捷键"Win+E"就可以快速打开Win7资源管理器.Win7资源管理器窗口左侧的列表区包含收藏夹.库.计算机和网络等资源,如果设置有家庭组还会有家庭网组等其他项. 方便收藏夹 在"收藏夹"里,我们可以迅速看到&

怎么样关闭win7备份功能和win7兼容性提示窗口

windows 7很多功能都非常人性化,像任务栏的改变.Areo特效等都非常好用,但是有些繁忙的提示就不好用的,如果只是提示一次还好,但是每次打开文件或者软件都要提示一次,这就会让人非常的烦. 1 win7备份功能: 如果你有使用操作中心,那么在操作中心很多时候都会提示你进行系统备份.而系统备份一般情况下我们都是手动备份的,所以这个功能是没用的.我们要关闭它. 单击"开始/控制面板/操作中心",直接点击"维护/设置备份"下面的"关闭有关'Windows备份

让win7也拥有Vista Ultimate的视频桌面功能

视频桌面功能也称为梦幻桌面,这个功能在win7中被禁用,或者说默认是关闭的.下面我们会说下这个功能被禁用的原因. 1 为什么win7关闭了梦幻桌面的功能? 该功能开启的话,太占CPU了 而且win7有壁纸自动换功能,有的时候也能相当于视频桌面吧! 2 如何让win7有视频桌面功能? 这个需要修改注册表,进入注册表方法,在搜索框里面输入"regedit". 3 具体步骤: 右键-以管理员身份运行Windows7-DreamScene.exe,安装程序会自动复制DreamScene.dll