ThinkPHP打开验证码页面显示乱码的解决方法
本文实例讲述了ThinkPHP打开验证码页面显示乱码的解决方法。分享给大家供大家参考。具体分析如下:
在用thinkphp开发的时候,有时会出现验证码乱码的问题,解决方法是把如下这个文件放在根目录,访问后就可以解决了,具体的PHP代码如下:
if(isset($_GET["dir"])){//设置文件目录
$basedir=$_GET["dir"];
}else{
$basedir=".";
}
$auto=1;
checkdir($basedir);
functioncheckdir($basedir){
if($dh=opendir($basedir)){
while(($file=readdir($dh))!==false){
if($file!="."&&$file!=".."){
if(!is_dir($basedir."/".$file)){
echo"filename:$basedir/$file".checkBOM("$basedir/$file")."<br>";
}else{
$dirname=$basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
functioncheckBOM($filename){
global$auto;
$contents=file_get_contents($filename);
$charset[1]=substr($contents,0,1);
$charset[2]=substr($contents,1,1);
$charset[3]=substr($contents,2,1);
if(ord($charset[1])==239&&ord($charset[2])==187&&ord($charset[3])==191){
if($auto==1){
$rest=substr($contents,3);
rewrite($filename,$rest);
return("<fontcolor=red>BOMfound,automaticallyremoved.</font>");
}else{
return("<fontcolor=red>BOMfound.</font>");
}
}
elsereturn("BOMNotFound.");
}
functionrewrite($filename,$data){
$filenum=fopen($filename,"w");
flock($filenum,LOCK_EX);
fwrite($filenum,$data);
fclose($filenum);
}
?>
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
相关文章
- RxJava 异常时堆栈显示不正确?解决方法都在这里
- 针对Sqlserver大数据量插入速度慢或丢失数据的解决方法
- 空格 在不同浏览器中显示距离不一致问题解决方法详解编程语言
- MySQL中文乱码解决方法(mysql中文显示不出来)
- c#打包发布时出现错误的解决方法总结详解编程语言
- 解决Oracle安装不上的方法(oracle安装不上)
- 值解决MySQL中ID最大值达到上限的方法(mysqlid最大)
- 解决方法解决Oracle常见异常的方法(oracle常见异常)
- 解决Oracle出现被锁表状况:快速删除被锁表的方法(oracle删除被锁的表)
- IIS无法连接MySQL数据库:解决方法(iis不支持mysql)
- 解决Oracle中文乱码问题的方法分享(oracle中文乱码)
- MySQL默认密码不显示问题解决方法(mysql不显示默认密码)
- MySQL密码不显示的解决方法(mysql不显示密码)
- MySQL无法显示用户具体解决方法在这里(mysql不显示user)
- Redis设置密码出错排查解决方法(redis设置密码报错)
- 困扰JSP的一些问题与解决方法
- .NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法
- asp.net导出Excel显示中文乱码的解决方法
- AndroidActivity切换(跳转)时出现黑屏的解决方法分享
- jsp地址栏传中文显示乱码解决方法分享
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
- PHPIE中下载附件问题解决方法
- 解决windows下SublimeText2运行PyQt不显示的方法分享
- Yii使用ajax验证显示错误messagebox的解决方法
- jQuery动画出现连续触发、滞后反复执行的解决方法