【原生】验证码的生成

<?php
   //设置session,必须处于脚本最顶部
  session_start();

  $image = imagecreatetruecolor(100, 30);    //1>设置验证码图片大小的函数
  //设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);
  $bgcolor = imagecolorallocate($image,255,255,255); //#ffffff
  //区域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的区域着色,col 表示欲涂上的颜色
  imagefill($image, 0, 0, $bgcolor);
  //设置变量
  $captcha_code = "";
  //生成随机数字
  for($i=0;$i<4;$i++){
    //设置字体大小
    $fontsize = 6;
    //设置字体颜色,随机颜色
    $fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120));      //0-120深颜色
    //设置数字
    $fontcontent = rand(0,9);
    //连续定义变量
    $captcha_code .= $fontcontent;
    //设置坐标
    $x = ($i*100/4)+rand(5,10);
    $y = rand(5,10);

    imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
  }
  //存到session
  $_SESSION[‘authcode‘] = $captcha_code;
  //增加干扰元素,设置雪花点
  for($i=0;$i<200;$i++){
    //设置点的颜色,50-200颜色比数字浅,不干扰阅读
    $pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200));
    //imagesetpixel — 画一个单一像素
    imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
  }
  //增加干扰元素,设置横线
  for($i=0;$i<4;$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);
  }

  //设置头部,image/png
  header(‘Content-Type: image/png‘);
  //imagepng() 建立png图形函数
  imagepng($image);
  //imagedestroy() 结束图形函数 销毁$image
  imagedestroy($image);

form.php提交的表单

<?php
  header("Content-Type:text/html;charset=utf-8");      //设置头部信息
  //isset()检测变量是否设置
  if(isset($_REQUEST[‘authcode‘])){
    session_start();
    //strtolower()小写函数
    if(strtolower($_REQUEST[‘authcode‘])== $_SESSION[‘authcode‘]){
      //跳转页面
      echo "<script language=\"javascript\">";
      echo "document.location=\"./form.php\"";
      echo "</script>";
    }else{
      //提示以及跳转页面
      echo "<script language=\"javascript\">";
      echo "alert(‘输入错误!‘);";
      echo "document.location=\"./zhuce.html\"";
      echo "</script>";
    }
    exit();
  }

时间: 2024-12-27 19:05:28

【原生】验证码的生成的相关文章

ImageUtil(验证码数据生成工具类)

登录界面时,常常会使用到验证码图片生成,程序如下: package util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.

Android开发中验证码的生成

近期在做电商金融类的项目,验证码的生成方法不可缺少.先学习了一种.经过測试好用.从别处学习的代码,稍修改了一下可选择是否支持识别大写和小写.直接上代码. import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.wid

thinkphp3.2 验证码的生成和校验,以及遇到的一些问题

已经自学了三个月的php了,感觉好像什么都了解了一点,又还是什么都不会.归根结底还是不怎么总结和做记录的原因吧   每天都会遇到问题,有时候折腾个半天一天的就解决了,时间一久又会忘记,碰到相同的问题又是懵比. 相比起学习新的知识,对于之前学过的用过的东西总结我想更为的重要一些吧. 最近利用thinkphp做了一个简单的后台内容管理程序,可以对数据库进行数据的增删改查,可以将midi文件上传,将下载链接保存到数据库中.将数据库中表数据读取生成xml文件 以供 app开发人员调用. 下面是我在做后台

ASP.NET中登陆验证码的生成和输入验证码的验证

一:验证码的生成实现代码 protected void Page_Load(object sender, EventArgs e)    {        string validateCode = CreateValidateCode();//生成验证码         Bitmap bitmap = new Bitmap(imgWidth, imgHeight);//生成Bitmap图像         DisturbBitmap(bitmap); //图像背景         DrewVa

web开发(八)之验证码的生成

验证码的生成: public class CheckImg extends ActionSupport{ @Override public String execute() throws Exception { // TODO Auto-generated method stub int width = 120; int height = 30; // 步骤一 绘制一张内存中图片 BufferedImage bufferedImage = new BufferedImage(width, hei

轻松学会网页中验证码的生成(JAVA)

验证码生成的基本流程 1.验证码的生成,我们能够看到是用Graphics对象画出来的.对象我们必须要获得Graphics对象 1-1,Graphics对象的获取,要通过BufferedImage获得 <span style="font-size:18px;">int width=100;//确定框框的大小 int height=40; BufferedImage bfi =new BufferedImage(width, height, BufferedImage.TYPE

struts2中验证码的生成和使用

第一步生产字符串: package com.yancode.demo; import java.util.Arrays; /* * 一步一步来,要生成验证码图片,首先要有验证码,然后才能在画在图片上.为了能够灵活控制验证码, * 特别编写了SecurityCode类,它向外提供随机字符串.并且可以控制字符串的长度和难度. * SecurityCode类中提供的验证码分三个难度,易(全数字).中(数字+小写英文).难(数字+大小写英文). * 难度使用枚举SecurityCodeLevle表示,避

汉字验证码的生成与使用

首先新建一个生成随机汉字验证码的servet DrawImage.class package xwcms.net.service; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Ran

随机图片验证码的生成

Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 from PIL import Image img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))   # 在图片查看器中打开 # img.show()   # 保存在本地 with open('code.png','wb') as f:     img.s

验证码画布生成以及点击图片切换验证码

//这个验证码画布生成是师兄写的,不是本人写的 1 package com.didinx.common; 2 3 import javax.imageio.ImageIO; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpSer