Пример #1
0
 /** 
  * 输出验证码并把验证码的值保存的session中 
  * 验证码保存到session的格式为: $_SESSION[self::$seKey] = array('code' => '验证码值', 'time' => '验证码创建时间'); 
  */
 public static function entry()
 {
     // 图片宽(px)
     self::$imageL || (self::$imageL = self::$length * self::$fontSize * 1.5 + self::$fontSize * 1.5);
     // 图片高(px)
     self::$imageH || (self::$imageH = self::$fontSize * 2);
     // 建立一幅 self::$imageL x self::$imageH 的图像
     self::$_image = imagecreate(self::$imageL, self::$imageH);
     // 设置背景
     imagecolorallocate(self::$_image, self::$bg[0], self::$bg[1], self::$bg[2]);
     // 验证码字体随机颜色
     self::$_color = imagecolorallocate(self::$_image, mt_rand(1, 120), mt_rand(1, 120), mt_rand(1, 120));
     // 验证码使用随机字体
     //$ttf = dirname(__FILE__) . '/ttfs/' . mt_rand(1, 20) . '.ttf';  4
     $ttf = dirname(__FILE__) . '/fonts/4.ttf';
     if (self::$useNoise) {
         // 绘杂点
         self::_writeNoise();
     }
     if (self::$useCurve) {
         // 绘干扰线
         self::_writeCurve();
     }
     // 绘验证码
     $code = array();
     // 验证码
     $codeNX = 0;
     // 验证码第N个字符的左边距
     for ($i = 0; $i < self::$length; $i++) {
         $code[$i] = self::$codeSet[mt_rand(0, 27)];
         $codeNX += mt_rand(self::$fontSize * 1.2, self::$fontSize * 1.6);
         // 写一个验证码字符
         imagettftext(self::$_image, self::$fontSize, mt_rand(0, 30), $codeNX, self::$fontSize * 1.5, self::$_color, $ttf, $code[$i]);
     }
     // 保存验证码
     isset($_SESSION) || session_start();
     $_SESSION[self::$seKey]['code'] = join('', $code);
     // 把校验码保存到session
     $_SESSION[self::$seKey]['time'] = time();
     // 验证码创建时间
     header('Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate');
     header('Cache-Control: post-check=0, pre-check=0', false);
     header('Pragma: no-cache');
     header("content-type: image/png");
     // 输出图像
     imagepng(self::$_image);
     imagedestroy(self::$_image);
 }
Пример #2
0
 /**  
  * 输出验证码并把验证码的值保存的session中  
  */
 public static function entry()
 {
     // 图片宽(px)
     self::$imageL || (self::$imageL = self::$length * self::$fontSize * 1.5 + self::$fontSize * 1.5);
     // 图片高(px)
     self::$imageH || (self::$imageH = self::$fontSize * 2);
     // 建立一幅 self::$imageL x self::$imageH 的图像
     self::$_image = imagecreate(self::$imageL, self::$imageH);
     // 设置背景
     imagecolorallocate(self::$_image, self::$bg[0], self::$bg[1], self::$bg[2]);
     // 验证码字体随机颜色
     self::$_color = imagecolorallocate(self::$_image, mt_rand(1, 120), mt_rand(1, 120), mt_rand(1, 120));
     // 验证码使用随机字体,保证目录下有这些字体集
     $ttf = dirname(__FILE__) . '/ttfs/t' . mt_rand(1, 10) . '.ttf';
     if (self::$useNoise) {
         // 绘杂点
         self::_writeNoise();
     }
     if (self::$useCurve) {
         // 绘干扰线
         self::_writeCurve();
     }
     // 绘验证码
     $code = array();
     // 验证码
     $codeNX = 0;
     // 验证码第N个字符的左边距
     for ($i = 0; $i < self::$length; $i++) {
         $code[$i] = self::$codeSet[mt_rand(0, 28)];
         $codeNX += mt_rand(self::$fontSize * 1.2, self::$fontSize * 1.6);
         // 写一个验证码字符
         imagettftext(self::$_image, self::$fontSize, mt_rand(-40, 70), $codeNX, self::$fontSize * 1.5, self::$_color, $ttf, $code[$i]);
     }
     // 保存验证码
     isset($_SESSION) || session_start();
     $_SESSION[self::$seKey]['code'] = join('', $code);
     // 把验证码保存到session, 验证时注意是大写
     $_SESSION[self::$seKey]['time'] = time();
     // 验证码创建时间
     header('Pragma: no-cache');
     header("content-type: image/JPEG");
     // 输出图像
     imageJPEG(self::$_image);
     imagedestroy(self::$_image);
 }
Пример #3
0
 /**  
  * 输出验证码并把验证码的值保存的session中  
  */
 public static function entry()
 {
     // 图片宽(px)
     self::$imageL || (self::$imageL = self::$length * self::$fontSize * 1.5 + self::$fontSize * 1.5);
     // 图片高(px)
     self::$imageH || (self::$imageH = self::$fontSize * 2);
     // 建立一幅 self::$imageL x self::$imageH 的图像
     self::$_image = imagecreate(self::$imageL, self::$imageH);
     // 设置背景
     imagecolorallocate(self::$_image, self::$bg[0], self::$bg[1], self::$bg[2]);
     // 验证码字体随机颜色
     self::$_color = imagecolorallocate(self::$_image, mt_rand(1, 120), mt_rand(1, 120), mt_rand(1, 120));
     // 验证码使用随机字体,保证目录下有这些字体集
     $ttf = dirname(__FILE__) . '/ttfs/t' . mt_rand(1, 3) . '.ttf';
     if (self::$useNoise) {
         // 绘杂点
         self::_writeNoise();
     }
     if (self::$useCurve) {
         // 绘干扰线
         self::_writeCurve();
     }
     // 绘验证码
     $code = array();
     // 验证码
     $codeNX = 0;
     // 验证码第N个字符的左边距
     for ($i = 0; $i < self::$length; $i++) {
         $code[$i] = self::$codeSet[mt_rand(0, 28)];
         $codeNX += mt_rand(self::$fontSize * 1.2, self::$fontSize * 1.6);
         imagettftext(self::$_image, self::$fontSize, mt_rand(-40, 40), $codeNX, self::$fontSize * 1.5, self::$_color, $ttf, $code[$i]);
     }
     self::$code = join('', $code);
     // 输出图像
     imageJPEG(self::$_image);
     imagedestroy(self::$_image);
 }
Пример #4
0
<?php

session_start();
require 'secoder.class.php';
$vcode = new YL_Security_Secoder();
$vcode->entry();
?>
   
Пример #5
0
<?php

session_start();
require 'secoder.class.php';
//先把类包含进来,实际路径根据实际情况进行修改。
$vcode = new YL_Security_Secoder();
//实例化一个对象
$code = $_POST['code'];
if ($vcode->check($code) == false) {
    echo iconv("GB2312", "UTF-8", '验证码错误');
    exit;
}
$username = strtoupper($_POST["account"]);
$psw = strtoupper($_POST["password"]);
$email = strtoupper($_POST["email"]);
//echo 'username'.$username.'|||';
//echo 'psw'.$psw.'|||';
//echo 'email'.$email.'|||';
if (strlen($username) > 16) {
    echo iconv("GB2312", "UTF-8", '用户名太长');
    //echo 1111;
    exit;
}
if ($username == "" || $psw == "" || $email == "") {
    echo iconv("GB2312", "UTF-8", '请确认信息完整性');
    //echo 2222;
    exit;
} else {
    //连接数据库
    $con = mysql_connect("localhost", "root", "yt03080301");
    if (!$con) {