<?php /** * 验证图片 * 在网上下的,经过阿亮修改 * 834114969@qq.com * http://liuzhiliang.com/ */ require_once(dirname(__FILE__)."/common.inc.php"); //Session保存路径 $sessSavePath = DEDEDATA."/sessions/"; if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ session_save_path($sessSavePath); } if(!empty($cfg_domain_cookie)) session_set_cookie_params(0,'/',$cfg_domain_cookie); session_start(); //获取随机字符 $rndstring = ''; //$ch_h = chr(($num,0,2)+160); // $ch_l = chr(substr($num,2,2)+160); function c2ch($num){ $ch_h = chr(substr($num,0,2)+160); $ch_l = chr(substr($num,2,2)+160); return $ch_h.$ch_l; } function num_rand(){ mt_srand((double)microtime() * 1000000); $d= mt_rand(16,36); $n= mt_rand(1,19); return c2ch($d*100+$n); } for($i=0; $i<4; $i++) $rndstring .= gb2utf8(num_rand()); //如果支持GD,则绘图 if(function_exists("imagecreate")) { //Firefox部份情况会多次请求的问题,5秒内刷新页面将不改变session $ntime = time(); if(empty($_SESSION['securimage_code_value_last']) || empty($_SESSION['securimage_code_value']) || ($ntime - $_SESSION['securimage_code_value_last'] > 1)) { $_SESSION['securimage_code_value'] = strtolower($rndstring); $_SESSION['securimage_code_value_last'] = $ntime; } $rndstring = $_SESSION['securimage_code_value']; //创建图片,并设置背景色 $x_size=80; $y_size=25; $font='simhei.ttf'; $im=imagecreate($x_size,$y_size); $background_color = imagecolorallocate ($im, 255, 255, 255); // 随机颜色 $fontColor[] = imagecolorallocate($im, 0x15, 0x15, 0x15); $fontColor[] = imagecolorallocate($im, 0x95, 0x1e, 0x04); $fontColor[] = imagecolorallocate($im, 0x93, 0x14, 0xa9); $fontColor[] = imagecolorallocate($im, 0x12, 0x81, 0x0a); $fontColor[] = imagecolorallocate($im, 0x06, 0x3a, 0xd5); $c_fontColor = $fontColor[mt_rand(0,4)]; imagettftext($im,15,mt_rand(-8,8),6,mt_rand(19,22),$c_fontColor,$font,substr($rndstring,0,3)); imagettftext($im,15,mt_rand(-8,8),37,20,$c_fontColor,$font,substr($rndstring,6,3)); imagettftext($im,mt_rand(15,17),mt_rand(-8,8),22,20,$c_fontColor,$font,substr($rndstring,3,3)); imagettftext($im,mt_rand(15,17),mt_rand(-8,8),54,mt_rand(19,22),$c_fontColor,$font,substr($rndstring,9,3)); imagerectangle($im, 0, 0, $x_size - 1, $y_size - 1,$black); header("Pragma:no-cachern"); header("Cache-Control:no-cachern"); header("Expires:0rn"); //输出特定类型的图片格式,优先级为 gif -> jpg ->png if(function_exists("imagejpeg")) { header("content-type:image/jpegrn"); imagejpeg($im); } else { header("content-type:image/pngrn"); imagepng($im); } ImageDestroy($im); exit(); } else { //不支持GD,只输出字母 ABCD $_SESSION['securimage_code_value'] = "abcd"; $_SESSION['securimage_code_value_last'] = ''; header("content-type:image/jpegrn"); header("Pragma:no-cachern"); header("Cache-Control:no-cachern"); header("Expires:0rn"); $fp = ("data/vdcode.jpg","r"); echo fread($fp,filesize("data/vdcode.jpg")); fclose($fp); exit(); } ?> |