コード例 #1
0
ファイル: captcha.php プロジェクト: ruoL/fun-x
 public function output($length = 4)
 {
     $rand = random((int) $length);
     $data = array('captcha' => md5(strtolower($rand)));
     $this->session->set_userdata($data);
     return build_verify($rand);
 }
コード例 #2
0
ファイル: BlogAction.class.php プロジェクト: zjstage/ThinkPHP
 public function _before_add()
 {
     $verify = build_verify(8);
     $_SESSION['attach_verify'] = $verify;
     $this->assign('verify', $verify);
 }
コード例 #3
0
 /**
 +----------------------------------------------------------
 * 生成图像验证码
 +----------------------------------------------------------
 * @static
 * @access public 
 +----------------------------------------------------------
 * @param string $length  位数
 * @param string $mode  类型
 * @param string $type 图像格式
 * @param string $width  宽度
 * @param string $height  高度
 +----------------------------------------------------------
 * @return string
 +----------------------------------------------------------
 * @throws ThinkExecption
 +----------------------------------------------------------
 */
 static function buildImageVerify($length = 4, $mode = 1, $type = 'png', $width = 48, $height = 22, $verifyName = 'verify')
 {
     $randval = build_verify($length, $mode);
     $_SESSION[$verifyName] = md5($randval);
     $width = $length * 9 + 10 > $width ? $length * 9 + 10 : $width;
     if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
         $im = @imagecreatetruecolor($width, $height);
     } else {
         $im = @imagecreate($width, $height);
     }
     $r = array(225, 255, 255, 223);
     $g = array(225, 236, 237, 255);
     $b = array(225, 236, 166, 125);
     $key = mt_rand(0, 3);
     $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]);
     //背景色(随机)
     $borderColor = imagecolorallocate($im, 100, 100, 100);
     //边框色
     $pointColor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
     //点颜色
     @imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
     @imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
     $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
     // 干扰
     for ($i = 0; $i < 10; $i++) {
         $fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
         imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $fontcolor);
     }
     for ($i = 0; $i < 25; $i++) {
         $fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
         imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pointColor);
     }
     @imagestring($im, 5, 5, 3, $randval, $stringColor);
     Image::output($im, $type);
 }