CI_中使用自定义的验证码
来源:互联网 发布:宏业软件公司地址 编辑:程序博客网 时间:2024/06/16 15:48
注意点:
1.base_url()并不能调用views中的文件。
2.后台接收session的时候必须先用session_start()开启会话。
步骤一:复制以下代码,并保存为check.php文件,存放于static目录中(这个是DIY的验证码文件)
<?php
header("Content-Type:image/png");//include_once("../../include/common.php");
#shuffle the charactors
// ASCII转字符
function strtoascii($start,$range){
$str='';
for($i=$start;$i<=($start+$range);$i++){
$str.=chr($i);
}
return $str;
}
//随机数
function randstr(){
$chars=strtoascii(65,25).strtoascii(48,9).strtoascii(97,25);
$chars=trim($chars);
$res = str_shuffle($chars);
$str = substr($res,0,5);
//return strtolower($str);
return $str;
}
//画布
$width=100;$height=20;$paint = imagecreatetruecolor($width,$height);
//背景色source,RGB
$backgroundcolor=imagecolorallocate($paint,64,128,255);
//前景色source,RGB
$frontcolor=imagecolorallocate($paint,255,255,255);
//矩形
imagefilledrectangle($paint,0,0,$width,$height,$backgroundcolor);
//生成随机字符
$get_code= randstr();
//写入随机字符
imagestring($paint,20,20,1,$get_code,$frontcolor);
//生成随机像素点
for($i=0;$i<=200;$i++){
$x = mt_rand(0,$width);
$y = mt_rand(0,$height);
imagesetpixel($paint,$x,$y,imagecolorallocate($paint,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
}
//会话开启-***必须开启,不然会失败****_
session_start();
//把随机字符存入会话
$_SESSION['bug']=$get_code;
imagepng($paint); //在浏览器上面输出一张png图片
?>
步骤二:把下面代码复制到需要显示验证码的地方(也就是views里面的需要验证码的文件)
<img src="<?php echo base_url('static/check.php');?>" onclick='_refresh(this);' />
<!--验证码刷新的js-->
<script type="text/javascript">
function _refresh(el){
_value=el.getAttribute('src');
el.setAttribute('src',_value+"?");
}
</script>
步骤三:在后台接受并验证session
public function captcha(){
session_start();//必须开启session,不然会报错
//var_dump($_SESSION['bug']);exit;
$yz = $this->input->post('yz')?$this->input->post('yz'):NULL;
if($yz == $_SESSION['bug']){
exit($yz);
}
else{
exit("please input the captcha!!!");
}
}
- CI_中使用自定义的验证码
- CI_我的学习笔记
- cakephp中使用自定义验证码
- ASP.NET中使用自定义验证控件
- ASP.NET中使用自定义验证控件
- WCF中使用自定义“用户名/密码”验证
- 使用自定义ui的ShareSDK短信验证码功能
- JSP中验证码的使用
- PHP中验证码的使用
- Yii Framework中验证码的使用
- struts2中使用的验证码
- YII- FRAMEWORK- 中验证码的使用
- .NET中验证码的使用
- thinkphp中验证码的使用
- ECshop中验证码的使用
- Laravel框架中验证码的使用
- Django中使用验证码的方式
- java中登录验证码的使用
- CCFastTMXTiledMap解析
- android 学习,强制下线功能实现
- svg的transform属性
- 比较运算符
- 在play中如何查看h2 数据库中的数据
- CI_中使用自定义的验证码
- Python爬虫学习记录(0)——Python 爬虫抓站 记录(虾米,百度,豆瓣,新浪微博)
- Notification
- HUST 1347 Reverse Number(哈理工 亚洲区选拔赛前练习赛)
- 软件测试基础_零基础学测试
- 在服务器上排除问题的头五分钟
- 图的常用存储结构
- LeetCode之Median of Two Sorted Arrays
- Java开发 环境变量设定