Discuz7.2 IE9兼容性–杜工完全修补方案0+

29,500 views / 2011.04.22 / 6:06 下午
现象:
1. IE9快速发帖不跳转
2. IE9管理员处理帖子失败
3. IE9登录不跳转,需要手动刷新
原因:
1. AJAXPOST函数判断out了
2. 动态创建iframe时各浏览器处理方式不同
解决方法:
1. 修改templates/header.htm
<meta http-equiv=”x-ua-compatible” content=”ie=7″ />
替换为
<!–[if lte IE 8]>
 <meta http-equiv=”x-ua-compatible” content=”ie=7″ /> <![endif]–>
<!–[if IE 9]>
<meta http-equiv=”x-ua-compatible” content=”ie=9″ />
<![endif]–>
2.修改include/js/common.js
把ajaxpost函数替换为:
function ajaxpost(formid, showid, waitid, showidclass, submitbtn, recall) {
 var waitid = typeof waitid == 'undefined' || waitid === null ? showid : (waitid !== '' ? waitid : '');
 var showidclass = !showidclass ? '' : showidclass;
 var ajaxframeid = 'ajaxframe';
 var ajaxframe = $(ajaxframeid);
 var formtarget = $(formid).target;
 
var handleResult = function() {
 var s = '';
 var evaled = false;
 
showloading('none');
 try {
 s = $(ajaxframeid).contentWindow.document.XMLDocument.text;
 } catch(e) {
 try {
 s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.wholeText;
 } catch(e) {
 try {
 s = $(ajaxframeid).contentWindow.document.documentElement.firstChild.nodeValue;
 } catch(e) {
 s = '内部错误,无法显示此内容';
 }
 }
 }
 
if(s != '' && s.indexOf('ajaxerror') != -1) {
 evalscript(s);
 evaled = true;
 }
 if(showidclass) {
 $(showid).className = showidclass;
 if(submitbtn) {
 submitbtn.disabled = false;
 }
 }
 if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) {
 ajaxinnerhtml($(showid), s);
 }
 ajaxerror = null;
 if($(formid)) $(formid).target = formtarget;
 if(typeof recall == 'function') {
 recall();
 } else {
 eval(recall);
 }
 if(!evaled) evalscript(s);
 ajaxframe.loading = 0;
 $('append_parent').removeChild(ajaxframe);
 };
 if(!ajaxframe) {
 try{
 ajaxframe = document.createElement('<iframe name="' + ajaxframeid + '" id="' + ajaxframeid + '"></iframe>');
 }catch(e){
 ajaxframe = document.createElement('iframe');
 ajaxframe.name = ajaxframeid;
 ajaxframe.id = ajaxframeid;
 }
 ajaxframe.style.display = 'none';
 ajaxframe.loading = 1;
 $('append_parent').appendChild(ajaxframe);
 } else if(ajaxframe.loading) {
 return false;
 }
 
_attachEvent(ajaxframe, 'load', handleResult);
 
showloading();
 $(formid).target = ajaxframeid;
 $(formid).action += '&inajax=1';
 $(formid).submit();
 return false;
}
后台刷新缓存,搞定。
Categories: 感悟 Tags: ,

CentOS或者redhad下用yum或者rpm安装了 mysql 及 mysql-server , 在编译安装php时用 –with-mysql 选项出现错误

Note that the MySQL client library is not bundled anymore.

首先使用命令find / -name ‘mysql.h’ 查找路径,如果找到就给with-mysql=赋上路径,如果找不到,那就是缺少了 mysql-devel 安装包,用yum或者rpm安装上,即可解决问题

Categories: 感悟 Tags: ,

推荐本站使用的免备案高性价比美国VPS0+

12,722 views / 2011.03.30 / 5:05 下午

近来总是有朋友询问购买服务器是事情,又担心备案周期长,很是恼火。杜工正好推荐本站长期使用的VPS–DiaHosting。
DiaHosting旨在为广大中国站长提供自主管理的美国优质VPS,所有VPS均采用Xen虚拟技术,保证了VPS的质量,同时也是国内首家提供Xen-Shell管理平台的VPS供应商,加上二次开发的重装系统功能,Xen-Shell完全可以满足用户需求,本站使用的VPS就是一款拥有最高管理权限完全自主的产品。
大家可以看下DiaHosting的数据中心,顺便选个适合自己的线路:

洛杉矶数据中心

100MB 下载速度测试
测试IP: 67.215.238.117

拉斯维加斯数据中心

50MB 下载速度测试
测试IP: 208.64.24.6

西雅图SoftLayer数据中心

100MB 下载速度测试
测试IP: 67.228.118.21

达拉斯SoftLayer数据中心

100MB 下载速度测试
测试IP: 66.228.118.51

温馨提示,这家支持优惠码的哦。

最新优惠码 (二选一):

优惠码: 10%OFF 终身10%优惠

优惠码: FREEDA 适用于X360或X360以上型号, 免费DirectAdmin控制面板

预付优惠:

季付即可获得额外 5% 的折扣
半年付即可获得额外 10% 的折扣
年付即可获得额外 15% 的折扣

推荐理由:中文客服/支持中文支付/中国访问速度很好/口碑不错/性价比高

购买地址:链接>>

Categories: 感悟 Tags:

CyberGhost VPN 是一个快速、可信赖的 VPN(Virtual Private Network)代理伺服器服务,位于德国,提供 128-bit SSL 高加密性的安全连线环境。而 CyberGhost VPN 提供的软体相当简单易用,几乎不用额外的专业设定,只需要一次点击就可以透过 CyberGhost 提供的 IP 位址连线并提升你的隐私。

目前 CyberGhost VPN 正免费提供一年份的白金帐户(Premium Account),价值 €79.99 欧元(折合台币约 3200 元),透过白金帐户连线将有更快、更稳定的连线速度,保证速率至少为 2Mbps,且可以免费使用 2GB 的加密网路硬碟。

备注:透过 CyberGhost VPN 连线是为了确保资料传输的安全性,或是提高个人隐私。所有的动作都有记录,所以请不要使用 VPN 作为非法或是不当用途。

注册地址:http://cyberghostvpn.com/page/registration.php

注册完成需要下载软件登录:https://cyberghostvpn.com/en/product/download.html

Categories: 分享 Tags:

验证码识别方法详细揭秘0+

11,273 views / 2011.02.25 / 12:12 上午

目前各种论坛投票微博在我们发表内容时都需要输入验证码,有时候为了满足客户的特殊需求,又能节省人力,我们需要使用验证码识别功能。百度一下“验证码识别”,全是卖软件的,没有详细的技术介绍.(这就是技术人员不用百度的原因之一吧?:)。杜工对各个软件做了详细研究,发现识别的流程千篇一律。

1. 生成识别库文件。这个是验证码识别准确率的决定性步骤。要把图片经过各种滤镜祛除杂点,斜线等,然后把字符分割出来,然后挨个人工识别输入。这一步也叫做“学习”。最后等识别准确率非常高时,可发布生成一个tc文件.

2. 编程。核心思想就是有个写好的dll库,我们要用各种语言,如delphi, C#, 易语言等,把dll库和上一步生成的特征文件引进来,然后编程。下面是我写的一个delphi示例。

//加载特征库
 
function loadcode(a:integer;b:integer;c:string;d:string):integer;stdcall;
external 'ycode.dll';
 
//Recognitiond
function Recognitiond(a:integer;b:integer;c:integer;d:string;e:string):PChar;stdcall;
external 'ycode.dll';
 
begin
   S:=Trim(ParamStr(1));//接收图片路径
   if S <>'' then
     begin
      loadcode(0,0,'gou.fc','');//这是第一步生成的特征库
      Writeln(Recognitiond (1,0,0,'', S));//把识别结果输出来
      end
    else
       begin
      Writeln('false');
      end
  { TODO -oUser -cConsole Main : Insert code here }
end.
 

3. 应用。第2步骤可编译生成可执行文件。如f.exe , 我们可以用php方便调用:

echo exec("f.exe C:\\images\\code.png");

至此,验证码识别工作完成。

Ps.  NND,这个流程只能在windows环境下才能跑通,我想了各种办法想在linux下完成全过程,都不尽理想。

Categories: 感悟 Tags: