« Posts under Web|PHP|MySQL|jQuery

在Ubuntu下配置Apache基于AD的Kerberos验证

kerberosloginwindow
前段时间因为项目需要在Ubuntu+Apache的环境下配置了基本Active Directory的Kerberos验证, 主要为了实现WEB应用基于AD的单点登陆SSO(即SingleSignOn).

下面将配置过程做简单记录:
0. 先说一下我的环境
Ubuntu9.04 + Apache2.2x + Win2k8 & AD

1.    因为Apache本身是不支持Kerberos的, 所以我们第一步是安装Kerberos Module for Apache即Mod_auth_kerb , 关于这个mod的文档资料和下载可以在官网找到. 在Ubuntu下不需要编译安装, 执行下面的apt-get搞定mod的安装. 安装后Apache的配置中会自动加载mod_auth_kerb.so, 不需要手工修改配置文件.

LINUX
# sudo apt-get install libapache2-mod-auth-kerb

2. 装好Mod_auth_kerb后, 我们来对Kerberos进行配置, 编辑/etc/krb5.conf, 这里建议将原配置文件备份(cp /etc/krb5.conf /etc/krb5_bak.conf), 然后清空原配置文件内容, 贴入如下配置信息并按实际需求进行相应修改(default_realm, kdc, example.com).
»Read More

杯具,被Google给ban了

刚才写了个脚本,从google页面读取汇率,60秒更新一次,结果没更新几次就取不到数据了,开始也没想太多,但我回头再用google搜东西时杯具发生了,如下图…..

我还兴致勃勃的给旁边的同事看, 结果更悲剧, 他说他刚才google的时候也这情况, 不知原因……

额~~~~~~~~~~~~莫非公司内网都被影响了? 咳咳~~~~~低调处理~~~~~

googleban

下面是谷歌中国的截图

»Read More

jQuery Ajax Submit(Ajax提交表单),加入表单验证

不需要修改html,但验证的时候需要写正则,已经提供了常用的正则表达式,只是写的不太严谨,演示在下面

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//ajax submit by Leon
//正则写的并不严谨,各位可以根据需要自己改一下
function ajaxSubmit(){
    $('.errinfo').remove();//移除上一次的验证提示信息
    var params = {};
    $("input:checked, :text, :hidden, :password,select, textarea").map(function() { 
        if($(this).attr('name')=='name' && $.trim($(this).val())==''){ //验证是否为空
            $(this).parent().append('<span class="errinfo">此项不能为空</span>');
        }else if($(this).attr('name')=='email' && !/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test($(this).val())){ //验证email
            $(this).parent().append('<span class="errinfo">电子邮件格式不正确</span>');
        }else if($(this).attr('name')=='tel' && !/^(1\d{10})$/.test($(this).val())){  //验证手机号
            $(this).parent().append('<span class="errinfo">手机号码格式不正确</span>');
        }else if($(this).attr('name')=='date' && !/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/.test($(this).val())){  //验证日期格式yyyy-mm-dd
            $(this).parent().append('<span class="errinfo">日期格式不正确</span>');
        }
        params[$(this).attr('name')] = $(this).val();
    }); 
    if($('.errinfo').size()==0){
        $.ajax({
            type:"POST", url:"submit.php", data:params, dataType:"json",
             success: function(data){
                //提交成功后要进行的操作
             },
             error:function(){
                alert('err');
             }
        });
    }
}

»Read More

MySQL随机查询方法一则

MySQL SQL
SELECT * FROM `tablename` ORDER BY RAND() LIMIT 5

通常需要做随机查询的时候我都会想到MySQL的Rand()函数, 即上面的方法, 但很少用, 今天试了一下, 效率超低, 根本没法满足需求, 所以只好求助Google大神了(我喜欢Google的新style^^), 最后于老蒋处学了一招, 别说, 还真挺管用的

MySQL SQL
SELECT *
FROM `table` AS t1
JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2
WHERE t1.id &gt;= t2.id
ORDER BY t1.id LIMIT 1;

Nginx下配置WordPress的固定链接

即配置nginx的rewrite,编辑nginx.conf,找到目标Server的location /项, 在括号内添加如下代码:

CONF
1
2
3
4
5
6
7
8
9
if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
    rewrite (.*) /index.php;
}

保存后重启nginx立即生效.
我的Permalink设置为/%post_id%.html ,本来打算用postname的,但考到路径中的中文最后放弃了.

jQuery Ajax submit(Ajax 提交表单)

简单,但应该挺实用的.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//leon.nerr@gmail.com 
//leon.nerr@gmail.com 
function update(){
    var params = {};
    $("input:checked, :text, :hidden, :password,select, textarea").map(function() {
        params[$(this).attr('name')] = $(this).val();
    });
    $.ajax({
        type:"POST", url:"submit.php", data:params, dataType:"json",
        success: function(data){
            //
        },
        error:function(){
            alert('err');
        }
    });
}