博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 验证码
阅读量:6004 次
发布时间:2019-06-20

本文共 2244 字,大约阅读时间需要 7 分钟。

1.

<!DOCTYPE html>

<html>
<head>
<title>留言页面</title>
</head>
<body>
<form method="post" action="">
验证码:<input type="text" size="10" name="check">
<img src="EX5_10_image.php">
<input type="submit" name="ok" value="提交">
</form>
</body>
</html>
<?php
session_start(); //启动session
if(isset($_POST['ok']))
{
$checkstr=$_SESSION['string']; //使用$_SESSION变量获取EX5_10_image.php页面上的验证码
$str=$_POST['check']; //用户输入的字符串
if(strcasecmp($str,$checkstr)==0) //不区分大小写进行比较
echo "<script>alert('验证码输入正确!');</script>";
else
echo "<script>alert('输入错误!');</script>";
}
?>

 

 

2.

<?php

session_start(); //启动session
header('Content-type: image/gif'); //输出头信息
$image_w=100; //验证码图形的宽
$image_h=25; //验证码图形的高
$number=range(0,9); //定义一个成员为数字的数组
$character=range("Z","A"); //定义一个成员为大写字母的数组
$result=array_merge($number,$character); //合并两个数组
$string=""; //初始化
$len=count($result); //新数组的长
for($i=0;$i<4;$i++)
{
$new_number[$i]=$result[rand(0,$len-1)]; //在$result数组中随机取出4个字符
$string=$string.$new_number[$i]; //生成验证码字符串
}
$_SESSION['string']=$string; //使用$_SESSION变量传值
$check_image=imagecreatetruecolor($image_w,$image_h); //创建图片对象
$white=imagecolorallocate($check_image, 255, 255, 255);
$black=imagecolorallocate($check_image, 0, 0, 0);
imagefill($check_image,0,0,$white); //设置背景颜色为白色
for($i=0;$i<100;$i++) //加入100个干扰的黑点
{
imagesetpixel($check_image, rand(0,$image_w), rand(0,$image_h),$black);
}
for($i=0;$i<count($new_number);$i++) //在背景图片中循环输出4位验证码
{
$x=mt_rand(1,8)+$image_w*$i/4; //设定字符所在位置X坐标
$y=mt_rand(1,$image_h/4); //设定字符所在位置Y坐标
//随机设定字符颜色
$color=imagecolorallocate($check_image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200));
//输入字符到图片中
imagestring($check_image,5,$x,$y,$new_number[$i],$color);
}
imagepng($check_image);
imagedestroy($check_image);
?>

 

 

3.

 

array_merge()函数可以将一个或多个数组合并,一个数组中的值附加在前一个数组的后面,返回作为结果的数组。语法格式如下:

array array_merge(array $array1 [, array $array2 [, array $... ]])
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前面的一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。例如:
<?php
$array1=array("color"=>"red",2,4);
$array2=array("a","color" => "green",4);
$result=array_merge($array1, $array2); //合并两个数组
print_r($result);
//输出:Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => 4 )
?>

 

转载于:https://www.cnblogs.com/feiyun8616/p/6489956.html

你可能感兴趣的文章
IE6 7下绝对定位引发浮动元素神秘消失
查看>>
android - ADT本地配置、sdk配置
查看>>
I.MX6 dhcpcd 需要指定网卡
查看>>
前端自动化构建之Gulp的使用(学习笔记)
查看>>
js递归原理之return
查看>>
浏览器的回流和重绘及其优化方式
查看>>
centos配置ssh免密码登录后,仍提示输入密码
查看>>
gulp+browser-sync实现前端自动化刷新
查看>>
python学习笔记 --- 来看看 random_state 这个参数
查看>>
基于angular2实现用户登录并信息持久化的一些理解(三)
查看>>
新框架 - 收藏集 - 掘金
查看>>
JQuery坑,说说哪些大家都踩过的坑
查看>>
高性能迷你React框架anu在低版本IE的实践
查看>>
windows中用cmd 删除文件夹以及文件夹里面的所有内容
查看>>
中国在两年内赶超美国AI?李开复:不一定
查看>>
2018年OpenStack用户调查报告出炉:Kubernetes仍居首
查看>>
Eclipse基金会发布Eclipse Photon IDE
查看>>
纯css实现左右横线,文字自适应居中效果
查看>>
唯品会HDFS性能挑战和优化实践
查看>>
JavaScript 设计模式
查看>>