PHP JS CSS session实现验证码功能

PHP JS CSS session实现验证码功能

页面
<?php
//校验验证码
if (isset($_POST["authcode"])) {
session_start();

    if (strtolower($_POST["authcode"]) == $_SESSION["authcode"]) {
        echo "<font color=‘#0000cc‘>输入正确</font>";
    } else {
        echo "<font color=‘#cc0000‘>输入错误</font>";
    }
    exit();
}

?>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>确认验证码</title>
<script type="text/javascript"></script>
</head>
<body>
<form action="test.php" method="post">
<p>验证码图片:<img id="captcha_img" border="1" src="1.php?r=<?php echo rand();?>" width="100px" height="30"</p>
<a href="javascript:void(0)" onclick="document.getElementById(‘captcha_img‘).src=‘1.php?r=‘+Math.random()">换一个?</a>
<p>请输入图片中的内容:<input type="text" name="authcode" value="" /></p>
<p><input type="submit" value="提交" style="padding:6px 20px";></p>
</form>
</body>
</html>

后端php处理生成验证码
<?php

session_start();

header("content-type: image/png");

//生成白色底图
$image = imagecreatetruecolor(100, 30);
$bgcolor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgcolor);

//在白色底图上生成4个彩色随机字符
/*1.生成4个数字
for($i=0;$i<4;$i++) {
    $fontsize = 6;
    $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));
    $fontcontent = rand(0, 9);

    $x = ($i*100/4) + rand(5, 10);
    $y = rand(5, 10);

    imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}*/

//2.生成随机字母数字
$captch_code = "";//将生成的验证码存入该变量中

for($i=0;$i<4;$i++) {
    $fontsize = 6;
    $fontcolor = imagecolorallocate($image, rand(0, 120), rand(0, 120), rand(0, 120));

    //随机截取字母数字
    $data = "abcdefghijkmnopqrstuvwxyz23456789";
    $fontcontent = substr($data,rand(0,strlen($data)),1);
    $captch_code.= $fontcontent;//追加到验证码存放

    $x = ($i*100/4) + rand(5, 10);
    $y = rand(5, 10);

    imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);
}

$_SESSION["authcode"] = $captch_code;//保存到session中

//在白色底图上生成随机点(干扰元素)
for($i=0;$i<200;$i++) {
    $pointcolor = imagecolorallocate($image, rand(50, 200), rand(50, 200), rand(50, 200));
    imagesetpixel($image, rand(1, 29), rand(1, 29), $pointcolor);
}
//在白色底图上生成随机线(干扰元素)
for($i=0;$i<3;$i++) {
    $linecolor = imagecolorallocate($image, rand(80, 220), rand(80, 220), rand(80, 220));
    imageline($image, rand(1, 99), rand(1, 29), rand(1, 99), rand(1, 29), $linecolor);
}

imagepng($image);

imagedestroy($image);

?>``

原文地址:http://blog.51cto.com/anfishr/2136878

时间: 2024-11-08 06:23:30

PHP JS CSS session实现验证码功能的相关文章

JS实现的一个验证码,可以在前端验证后在提交action

js实现的一个验证码功能,可以在前端判断验证码输入是否正确 输入的邮箱格式是否正确 验证成功后才提交action到后台 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/

使用JS来实现验证码功能

最近想为自己的Django博客添加验证码功能,本来想使用第三方库来实现的,不过考虑到添加第三方库对性能的影响,以及第三方库是否安全可靠的问题,还是用自己的代码来实现吧.反正用JS来实现验证码功能又不是很难. 简单来说,用一个create_code()方法在页面中生成验证码,然后control_submit()方法检测验证码文本框(id="user_input_code")的键盘输入事件,当文本框输入了超过4个字符后,调用verify_code ()检测输入的字符与生成的验证码是否一致,

ASP.NET MVC 4 RC的JS/CSS打包压缩功能 Scripts.Render和Styles.Render

打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS文件案中空白.批注及修改JavaScript内部函数.变量名称的压缩手法,能有效缩小文件案体积,提高传输效率,提供使用者更流畅的浏览体验. 在ASP.NET MVC 4中可以使用BundleTable捆绑多个css文件和js文件,以提高网络加载速度和页面解析速度.更为重要的是通过捆绑可以解决IE浏览

Lining.js - 为CSS提供 ::nth-Line 选择器功能

在CSS中,我们使用 ::first-line 选择器来给元素第一行内容应用样式.但目前还没有像 ::nth-line.::nth-last-line 甚至 ::last-line 这样的选择器.实际上这期选择器在某些情况下是非常有用的,Lining.js 提供了这样的功能. 在线演示      插件下载 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果[附源码] 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发

MVC基本登陆与验证码功能实现

一.基本登陆实现与验证码功能实现,该功能是和spring.net功能集合使用的,因为后面要用到验证是否处于登陆状态 1. 先构建一个登陆页面 1 @{ 2 Layout = null; 3 } 4 <!DOCTYPE html> 5 <html> 6 <head> 7 <title>XX商城后台管理系统登录</title> 8 <script type="text/javascript"> 9 if (window

Php实现验证码功能

验证码这样的功能可以说是无处不在了,接下来使用php来实现验证码这样的功能,这里我是将验证码实现抽取到一个类中独立开来,那么后面如果再使用到验证码功能,直接引入该类文件并创建该类的实例,就可以使用验证码了,代码如下: 验证码类文件vcode.class.php <?php /** *验证码类 */ class Vcode{ private $width;//图片宽度 private $height;//图片高度 private $num;//验证码个数 private $img;//图片资源 p

简单 验证码 功能

在贴代码之前首先简述一下验证验证码原理:随机获取验证码的值,把这个值存到session中,其作用可想而知就是要拿来跟前台数据作比较,通过Graphics将值进行模糊处理之后传到前台页面展示. 1 package com.skss.util; 2 3 4 import java.awt.Color; 5 import java.awt.Font; 6 import java.awt.Graphics; 7 import java.awt.image.BufferedImage; 8 import

IIS7.5 不能加载外部引用的第三方JS,CSS,img等一系列静态文件

做了一个mvc的项目,今天放iis上跑样式和功能进行调试,由于之前机子是新装的,所以IIS没有装.装iis是小事几分钟,但测试的过程中,一直是只能显示本页面的html标签和写在本页面的css和js.外部的第三方引用都不能用,实在纳闷.iis重装了几次,最后发现有个iis默认值处有问. 如下-->在打开或关闭window功能中的Internet信息服务里的万维网服务=>常见HTTP功能=>静态内容  .注意,这里默认是不勾选的. IIS7.5 不能加载外部引用的第三方JS,CSS,img等

ASP.NET MVC 4使用Bundle的打包压缩JS/CSS

打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS文件案中空白.批注及修改JavaScript内部函数.变量名称的压缩手法,能有效缩小文件案体积,提高传输效率,提供使用者更流畅的浏览体验. 在ASP.NET MVC 4中可以使用BundleTable捆绑多个css文件和js文件,以提高网络加载速度和页面解析速度.更为重要的是通过捆绑可以解决IE浏览