Home > Backend Development > PHP Tutorial > Use PHP to implement the secret card function implementation code <package, download and run directly>_PHP tutorial

Use PHP to implement the secret card function implementation code <package, download and run directly>_PHP tutorial

WBOY
Release: 2016-07-21 15:24:07
Original
1032 people have browsed it

Rendering:
Use PHP to implement the secret card function implementation code <package, download and run directly>_PHP tutorial
Security card storage

Copy code The code is as follows:

$ this->load->model('admin/m_mibao');
$data = array();
//Generate random abscissa
$rand_str = $this->_rand_str(10 );
$arr = array();
for($k=0;$k{
for ($i = 1;$i < 9;$i++)
{
$rand = $this->_rand_num(3);
//Container assigned to all codes
$arr[$rand_str{$k} . $i] = $rand;
}
}
$data['code'] = serialize($arr); //Put the information into the database after serialization
$data['letter '] = $rand_str;
//Avoid repeating sequence numbers
while (TRUE)
{
$data['card_num'] = $this->_rand_num(20);
//Determine whether the serial number is repeated
if($this->m_mibao->has_card_num($data['card_num']) == 0)
{
break;
}
}
$data['add_time'] = TIME;
$data['user_id'] = $uid;
echo $this->mibao->insert($data);

Security card image generation
Copy code The code is as follows:

//It is to calculate the coordinates
public function show($user_id)
{
$this->load->model('admin/m_mibao');
$info = $this->m_mibao-> get_by_uid($user_id);
if(emptyempty($info))
{
$this->msg('This user has no password!','admin-index');
}
$codes = unserialize($info['code']);
//Initial value of image
$bit = 3; //Security card digits
$height = 332; //Image height
$width = 626; //Image width
$im = imagecreatetruecolor($width,$height);
$linecolor = imagecolorallocate($im, 229,229,229);
$fontcolor = imagecolorallocate($im, 0, 0, 0);
$top_rectangle_color = imagecolorallocate($im,241,254,237);
$top_letter_color = imagecolorallocate($im,54,126,76);
$left_rectangle_color = imagecolorallocate ($im,243,247,255);
$left_num_color = imagecolorallocate($im,4,68,192);
$logo_str_color = imagecolorallocate($im,0,0,0);
imagefill($im,0 ,0,imagecolorallocate($im,255,255,255)); //Picture background color
$font = './public/baomi/fonts/simsun.ttc'; //Font
$font_en = './public /baomi/fonts/CONSOLA.TTF'; //English font
$font2 = './public/baomi/fonts/simhei.ttf'; //Bold font above the security card
$dst = imagecreatefromjpeg(" ./public/baomi/120.jpg");
imagecopymerge($im,$dst,120,15,0,0,193,55,100);
imageline($im,10,72,$width-10 ,72,$linecolor);
$ltext = "Electronic Security Card";
if(!imagettftext($im,10,0,340,47,$logo_str_color,$font2,$ltext)) {
exit('error');
}
//Write the card number
$b = '1000' . $info['card_num'];
for($i=0;$i< ;7;$i++){
$p.= substr($b,3*$i,4). ' ';
}
$x = 40; $y = 95; //Sequence Number position
imagettftext($im,10,0,$x,$y,$color,$font,'serial number');
imagettftext($im,11,0,$x+50,$ y,$color,$font_en,$p);
//Color box
imagefilledrectangle($im,10,106,$width-10,128,$top_rectangle_color);
imagefilledrectangle($im,10,129,65, $height-10,$left_rectangle_color);
//Write the top row of English letters and vertical bars
for($i=1;$i<=10;$i++){
$x = $ i*55+35; $y = 123; $float_size = 11; //Letter position parameters
imagettftext($im,$float_size,0,$x,$y,$top_letter_color,$font_en,$info[' letter']{$i-1});//Write the top English letter
}
for($i=0;$i<=9;$i++){
$linex = $ i*55+65; $liney = 105; $liney2 = $height-10; //Vertical line position parameters
imageline($im,$linex,$liney,$linex,$liney2,$linecolor);/ /Draw vertical lines
}
//Write vertical numbers and fill in matrix data and draw horizontal lines
for($j=0;$j<8;$j++){
$ jj=$j+1;
$x=35; $y=($jj*24)+123; //Left row of numbers and horizontal line position parameters
imagettftext($im, $float_size, 0, $x, $y, $left_num_color, $font_en, $jj);//Write the numbers in the left row
for($i=1;$i<=10;$i++){
$float_size2=11 ; $x = $i*55+27; $sy=$y; //Fill in the matrix data position parameters
$s = $info['letter']{$i-1};
$s .= $j + 1;
imagettftext($im,$float_size2,0,$x,$sy,$fontcolor,$font_en,$codes[$s]);//Write matrix data
}
}
for($j=0;$j<10;$j++){
$line_x=10; $line_x2=$width-10;$y=$j*24+105; / /Horizontal line position parameter y coordinate data is the same as above
imageline($im,$line_x,$y,$line_x2,$y,$linecolor);//Draw in the horizontal line
}
//Outer frame Side line
imageline($im,10,10,$width-10,10,$linecolor);//Horizontal line
//imageline($im,10,$height-10,$width-10, $height-10,$linecolor);
imageline($im,10,10,10,$height-10,$linecolor);//Vertical line
imageline($im,$width-10,10 ,$width-10,$height-10,$linecolor);
//Generate image
ob_clean();
header("Content-type: image/jpeg");
imagejpeg( $im,null,100);
imagedestroy($im);
}

Security card verification
Copy code The code is as follows:

public function test1($uid)
{
$this->load->model('admin/m_users');
$user = $this->m_users->sel($uid);
//Submit post Verification
if($this->is_post())
{
$codes = $this->m_mibao->get_codes_by_uid($uid);
$codes = unserialize($codes );
$is_true = true;
foreach($_SESSION['mibao']['keys'] as $key)
{
if($codes[$key] != $_POST ['values'][$key])
{
$is_true = false;
}
}
if($is_true)
{
die('correct' );
}
else
{
die('error');
}
}
else
{
//Render view
$info = $this->m_mibao->get_by_uid($uid);
$data = array();
$data['keys'] = $this->m_mibao->get_rand_keys( $info['letter']);
$_SESSION['mibao']['keys'] = $data['keys'];
$data['uid'] = $uid;
$this->load->view('test1',$data);
}

Script House package download

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/324365.htmlTechArticleRendering: Password card storage copy code The code is as follows: $this-load-model('admin/m_mibao '); $data = array(); //Generate random abscissa $rand_str = $this-_rand_str(10); $arr = array(); fo...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template