/** * 输出验证码并把验证码的值保存的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); }
/** * 输出验证码并把验证码的值保存的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); }
/** * 输出验证码并把验证码的值保存的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); }
<?php session_start(); require 'secoder.class.php'; $vcode = new YL_Security_Secoder(); $vcode->entry(); ?>
<?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) {