Jazzy 发布的文章

PHP判断SQL语句是否存在写操作


可用于的场景:
1.读写分离
2.给用户一个sql查询窗口时,略微安全一点

注:片段来自CI3.0

public function is_write_type($sql) {
  return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql);
}

鼠标单击变双击测试工具


最近鼠标貌似坏了,单击有时候会变成双击,为了验证下了写了小工具

在线测试地址

测试结果展示
testResult.jpg

代码如下,精度写了120毫秒,即两次点击间隔小于120毫秒视为双击了,我这个鼠标快速手动点击间隔都在160毫秒以上。

<input type='button' onclick='testMouse();' value='双击测试'/>
<p></p>
<div></div>
<script src="http://ajax.useso.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
var i=0;
var lastClick=0;
var ok=0;
var error=0;
function testMouse(){
    i++;
    nowTime = Math.round(new Date().getTime());
    clickTime = lastClick==0?0:(nowTime-lastClick);
    lastClick = nowTime;
    if(clickTime<120&&clickTime>0){
        is_doubleClick = "疑似双击";
        error++;
    }else{
        is_doubleClick = "正常";
        ok++;
    }
    $("div").prepend("点击第"+i+"次 间隔时间:"+clickTime+"毫秒 "+is_doubleClick+"<br/>");
    $("p").html("正常"+ok+"次 双击"+error+"次 错误率"+Math.round(error/ok*10000)/100+"%");
}
</script>

php mail函数发邮件标题和发件人乱码问题解决办法


使用mail方法发信时,如果标题或发件人含有中文就会造成乱码,而正文不会。解决办法如下

首先在报文头加入声明

//如果你的网站是GBK,下面将utf-8改为gbk
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

然后在需要使用中文的地方将中文进行如下转移

//如果你的网站是GBK,下面将utf-8改为gb2312
//例如标题
$subject = "新密码通知信";
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
//例如发件人
$headers .= 'From: =?UTF-8?B?'.base64_encode("某某网站").'?=<service@apieye.com>' . "\r\n";

点击按钮button异常提交表单的原因


如果表单中含有按钮用作它用而非submit,点击时也会提交表单,是因为

在Internet Explorer 的默认类型是 "button",而其他浏览器中(包括 W3C 规范)的默认值是 "submit"。

解决办法:
1、放弃使用button标签,改用input type='button'.
2、继续使用button标签,但是指定其 type为 button.