网站开发日志

2009年4月19日星期日

分享家:Addthis中国

PHP实用代码系列 - Ajax密码强度检测

PHP和Ajax搭配真的不是什么新的东西,Google一下,你可以找到很多介绍它们的文章。正是因为它们的流行、简单、强大,所以我觉得在PHP实用代码系列文章里一定不可以少了它们。

在jQuery没出来以前,我都是通过GetXmlHttpObject()函数来实现Ajax。现在好了,jQuery把所有这些繁琐的步骤都包含在它的库文件里,我们只要通过它的接口函数,就可以轻松实现Ajax。在这些接口函数里最简单的应该要算load()。下面我就要开始介绍,PHP+Ajax(通过jQuery的load函数)的小运用 - 密码强度检测

首先是PHP代码(pass_test.php):

<?php
$password = isset($_POST['pass']) ? $_POST['pass'] : "";
if (!$password) echo "";
else{
   $strength = 0;
   // 小写字母
   if(preg_match("/([a-z]+)/", $password)) {
    $strength++;
   }
   // 大写字母
   if(preg_match("/([A-Z]+)/", $password)) {
       $strength++;
   }
   // 数字
   if(preg_match("/([0-9]+)/", $password)) {
       $strength++;
   }
   // 非任意(文字和数字)字母和下滑线的字符
   if(preg_match("/(\W+)/", $password)) {
       $strength++;
   }
   // 密码的长度
   if (strlen($password) < 7) $strength--;
   else $strength++;
   switch($strength) {
       case 0:
       case 1:
           echo '密码强度太弱';
       break;
       case 2:
           echo '密码强度弱';
       break;
       case 3:
           echo '密码强度高';
       break;
       case 4:
       case 5:
           echo '密码强度很高';
       break;
   }
}
?>

上面的PHP代码很简单,它只是通过一些自定义的规则来判断密码的强度。通常认为高强度的密码必须包含大小写字母、数字、和特殊字符,而且密码长度应该不小于6位。

接下来是HTML代码:

<label>请输入密码:</label>
<input id="pass" type="password" name="password" />&nbsp;
<div id="passwd_strength"></div> <!--这个div用来显示提示信息-->

最后是jQuery代码:

<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript">
   $(document).ready(function(){
      $("#pass").keyup(function(){
         $("#passwd_strength").load("pass_test.php", {"pass" : $(this).val()});
      });
   });
</script>
演示

标签: ,

相关文章:

1 条评论:

  • 这个完全可以将验证规则写入到JS中,为什么非得用AJAX来增加访问服务器次数,增加通信数呢。

    作者 Anonymous 匿名, 时间 2009年5月29日 上午12:47  

发表评论

指向此帖子的链接: