当前位置:首页 » 编程语言 » php验证码怎么做

php验证码怎么做

发布时间: 2022-08-18 07:52:07

‘壹’ php中发送短信验证码的步骤和方法是怎么样的

生成随机字符串-》插入到数据库(数据库表应该有发送到短信手机号码,随机字符串,失效时间,添加时间等字段)-》发送随机字符串短信到手机号码上(根据短信接口实现php一般用webservice)-》ajax比较用户填写的验证码与数据库保存的是否一样

‘贰’ PHP制作注册页面验证码

使用view-source:查看源码会有错误提示,所以导致图片无法正常输出

‘叁’ php的验证码提示怎样制作

一般制作验证码会按照下面的几步走:
一:创建出来一个图片,通常我们成为源,可以用imagecreatetruecolor()这个函数搞定
二:给这个源 添加背景色,同时设置文本显示的颜色,GD库函数为我们提供了imagecolorallocate()函数
三:材料弄好了,我们要给它添点内容了,就是我们随机生成的数字或者字母,甚至可以是它们的组合,这里我们可以选择两个函数 imagettftext()、imagesrting(),这两个函数的不同,我们会在后面讲解。
例:
<?php
session_start();//开启session,用来记录获得的验证码,这个函数要写在程序的开头,不然会出现错误
header(“Content-type :image/gif”);//把文件的返回类型设为image/gif格式,这个格式可以输出图片
$codelen=4;//设置你要让用户输入字符的个数,一般为4,过长用户体验不好。
$charset =”ABCDEFGHKLMNPRSTUVWYZ23456789″;//我们可以尽量把一些难以辨认的字符去掉,比如阿拉伯数字0和字母o,这也是提高用户体验的一种方法。
$code =”;
for($i=0;$i<$codelen;$i++){//用for循环得到4个随机的字符,在这里用到了mt_rand,这个函数比rand的效率要高的多,建议大家用这个
$code .=$charset{mt_rand(0,strlen($charset)-1)};
}
$_SESSION['code']=$code;//下篇关于session验证的文章将会用到
$width = 80;
$height = 40;
$im = imagecreatetruecolor($width,$height);//用imagecreatetruecolor()函数来建立一个新的图片,里面的两个数值分别是宽度和高度,这是制作验证码的第一步
$bg = imagecolorallocate($im,255,255,0); //图片背景的颜色,这里是第二步
$textcolor = imagecolorallocate($im,255,0,0);//文字的颜色
imagefill($im,0,0,$bg);//给图片填充背景色
//好了上面的铺垫任务做的差不多了,现在关键就是让字符显示在图片上,这里有两种方法我们一一介绍。
$font =”ggbi.ttf”;//如果你有字体的话 就填上字体的相对路径,如果没有就留空。下面的两个用法我会一一讲解。
if($font!==”"){
for($num=0;$num<4;$num++){
imagettftext($im,mt_rand(12,16),(mt_rand(0,75)+330)%360,5+15*$num,20+mt_rand(2,5),$textcolor,$font,$code[$num]);//这里是第三步
}
}
else{
for($num=0;$num<4;$num++){
imagestring($im,5,10+15*$num,10+mt_rand(0,5),$code[$num],$textcolor);
}
}
header(“Content-type: image/jpeg”);
imagejpeg($im);
?>

‘肆’ 怎样制作PHP验证码

<?php
//验证码:文本类型为图像
header("content-type:image/png");
define('TYPE',3);//1.字母 2.字母数字 3.数字 4.逻辑 5.汉字
session_start();
//创建画布
$img = imagecreatetruecolor(90,33);
//创建颜色
//$bgcolor = imagecolorallocate($img,rand(200,255),rand(200,255),rand(200,255));
$bgcolor = imagecolorallocate($img,255,255,255);
$textcolor = imagecolorallocate($img,rand(0,100),rand(0,100),rand(0,100));
//填充颜色到画布
imagefill($img,0,0,$bgcolor);
//创建但像素的点为干扰项
//for($i=0;$i<100;$i++){
// $pixelcolor = imagecolorallocate($img,rand(150,200),rand(150,200),rand(150,200));
// imagesetpixel($img,rand(0,70),rand(0,30),$pixelcolor);
//}
//
////划线
//$linecolor = imagecolorallocate($img,255,0,0);
//imageline($img,0,0,70,30,$linecolor);
//
////多边形
// $col_poly = imagecolorallocate ( $img , 0 , 255 , 0 );
// imagepolygon ( $img ,
// array (
// 5 , 5,
// 5, 15 ,
// 20,15,
// 20,5
// ),
// 4 ,
// $col_poly );
////弧线
//$arcColor = imagecolorallocate ( $img , 0 , 0 , 255 );
//imagearc($img,35,15,30,30,0,360,$arcColor);

//创建验证码的内容
//#字母
$letter = range('A','Z');
$letterStr = $letter[rand(0,25)].$letter[rand(0,25)].$letter[rand(0,25)].$letter[rand(0,25)];
//数字字母
$num = range(0,9);
$numberAndLetter = array_merge($letter,$num);
$nal = $numberAndLetter[rand(0,35)].$numberAndLetter[rand(0,35)].$numberAndLetter[rand(0,35)].$numberAndLetter[rand(0,35)];
//#数字
$number = rand(1000,9999);
//#逻辑
$x = rand(1,9);
$y = rand(1,9);
$expression = $x."+".$y."=?";
$sum = $x+$y;
//#汉字
$CH = array('恭喜发财','财源滚滚','财源广进','才高八斗','学富五车','抬头见喜');
$chstr = $CH[rand(0,count($CH)-1)];
switch(TYPE){
case 1 : imagettftext($img,14,0,7,23,$textcolor,'MSYH.TTF',$letterStr);$_SESSION['code']=$letterStr;break;
case 2 : imagettftext($img,14,0,7,23,$textcolor,'MSYH.TTF',$nal);$_SESSION['code']=$nal;break;
case 3 : imagettftext($img,14,0,13,23,$textcolor,'MSYH.TTF',$number);$_SESSION['code']=$number;break;
case 4 : imagettftext($img,14,0,7,23,$textcolor,'MSYH.TTF',$expression);$_SESSION['code']=$sum;break;
case 5 : imagettftext($img,11,0,6,21,$textcolor,'MSYHBD.TTF',$chstr);$_SESSION['code']=$chstr;break;
}
//输入图像到浏览器
imagepng($img);
?>

‘伍’ 我的php代码中登陆界面加一个验证码,如何实现

php登陆页面+验证码的实现,参考如下:

1、首先新建一个php站点;

‘陆’ php怎么编写手机短信验证码功能

以前在远标做过你的应用应该是这样吧,用户输入手机号码,点击发送短信,用户收到验证码,输入对应的验证码 判断是否正确。

需要:
申请一个短信接口,就是点击发送验证码的时候,提交到接口给该号码下发验证码。

技术方面的实现:
1、点击获取验证码
2、程序ajax post提交到短信接口
3、短信接口服务商 接口判断用户和口令,正确后,下发短信给该号码。
4、用户输入号码,程序判断验证码是否一致。

‘柒’ php验证码怎么使用

把以上代码保存成code.php,上传到相应目录,如网站根目录 调用的时候 <img src="code.php"> 即可

‘捌’ PHP 验证码怎样设置

补充:

验证码可以同cookie或者session的方式传递数据,
不用有特别的设置,不过要安装GD库,否则不能显示图片.

随便放在哪里都可以,

显示是以图片方式显示,

例如验证码的程序文件是ck.php

那么显示就是
<img src = "ck.php">

验证码有很多种编写方式,当然是众说纷纭,
凡是程序都不会有一个统一的格式,只有统一的思路.

‘玖’ 如何实现php手机短信验证功能

现在网站在建设网站时为了保证用户信息的真实性,往往会选择发短信给用户手机发验证码信息,只有通过验证的用户才可以注册,这样保证了用户的联系信息资料的100%的准确性。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >

<html xmlns>

<head>

<title></title>

<script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>

<script type="text/javascript">

/*-------------------------------------------*/

var InterValObj; //timer变量,控制时间

var count = 60; //间隔函数,1秒执行

var curCount;//当前剩余秒数

var code = ""; //验证码

var codeLength = 6;//验证码长度

function sendMessage() {

curCount = count;

var dealType; //验证方式

tel = $(’#tel’).val();

if(tel!=’’){

//验证手机有效性

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+d{8})$/;

if(!myreg.test($(’#tel’).val()))

{

alert(’请输入有效的手机号码!’);

return false;

}

tel = $(’#tel’).val();

//产生验证码

for (var i = 0; i < codeLength; i++) {

code += parseInt(Math.random() * 9).toString();

}

//设置button效果,开始计时

$("#btnSendCode").attr("disabled", "true");

$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次

//向后台发送处理数据

$.ajax({

type: "POST", //用POST方式传输

dataType: "text", //数据格式:JSON

url: ’yanzhengma.php’, //目标地址(根据实际地址)

data: "&tel=" + tel + "&code=" + code,

error: function (XMLHttpRequest, textStatus, errorThrown) { },

success: function (msg){ }

});

}else{

alert(’请填写手机号码’);

}

}

//timer处理函数

function SetRemainTime() {

if (curCount == 0) {

window.clearInterval(InterValObj);//停止计时器

$("#btnSendCode").removeAttr("disabled");//启用按钮

$("#btnSendCode").val("重新发送验证码");

code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效

}

else {

curCount--;

$("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

}

}

</script>

</head>

<body>

<input name="tel" id=tel type="text" />

<input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" /></p>

</body>

</html>


第三、调用短信服务器短信接口

整理的页面是yanzhengma.php(具体根据服务商提供信息)

<?php //提交短信

$post_data = array();

$post_data[’userid’] =短信服务商提供ID;

$post_data[’account’] = ’短信服务商提供用户名’;

$post_data[’password’] = ’短信服务商提供密码’;

// Session保存路径

$sessSavePath = dirname(__FILE__)."/../data/sessions/";

if(is_writeable($sessSavePath) && is_readable($sessSavePath)){

session_save_path($sessSavePath);

}

session_register(’mobliecode’);

$_SESSION[’mobilecode’] = $_POST["code"];

$content=’短信验证码:’.$_POST["code"].’【短信验证】’;

$post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信内容需要用urlencode编码下

$post_data[’mobile’] = $_POST["tel"];

$post_data[’sendtime’] = ’’; //不定时发送,值为0,定时发送,输入格式YYYYMMDDHHmmss的日期值

$url=’http://IP:8888/sms.aspx?action=send’;

$o=’’;

foreach ($post_data as $k=>$v)

{

$o.="$k=".$v.’&’;

}

$post_data=substr($o,0,-1);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。

$result = curl_exec($ch);

?>


第四:提交表单信息时对短信验证码验证

//手机验证码开始

session_start();

$svalitel = $_SESSION[’mobilecode’];

$vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));

if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)

{

ResetVdValue();

//echo "Pageviews=".$vdcodetel;

ShowMsg("手机验证码错误!", ’-1’);

exit();

}

热点内容
java接口及实现方法 发布:2024-05-04 11:05:08 浏览:565
iphone怎么清理应用缓存 发布:2024-05-04 11:05:02 浏览:408
rest上传文件 发布:2024-05-04 11:03:19 浏览:280
情侣玩游戏解压视频 发布:2024-05-04 11:00:57 浏览:777
c文件夹大小 发布:2024-05-04 10:54:35 浏览:676
回忆源码 发布:2024-05-04 10:28:20 浏览:235
mmm源码 发布:2024-05-04 09:57:29 浏览:262
清除后台缓存的软件 发布:2024-05-04 09:57:22 浏览:833
梦幻西游有什么脚本 发布:2024-05-04 09:33:43 浏览:717
I编程视频 发布:2024-05-04 09:33:31 浏览:378