说是万能,意思是他支持多种程序语言。而且调用方式也非常简单,当然官方也有例子
Recaptcha,这是一个验证码程序,其实真的很方便,如果你一天到晚还在为着验证码被别人破解而不停的改进自己的验证码时,你可以用它;如果你不会写验证码程序,你可以用它;如果你想支持语音验证,你也可以用它;如果你想有更多的功能,当然你一样可以用它。
使用方法比较简单,大致如下:
- Download the reCAPTCHA Library, unzip it, and copy recaptchalib.php to the directory where your forms live.先到reCAPTCHA下载PHP类库,解压拷到你的线上目录中
- If you haven't done so, sign up for an API key. 准备完后,你可以注册并申请一下API
- Now we're ready to start modifying your code. First, we'll add code to display the CAPTCHA:然后,我们开始修改代码。首先,我们先添加显示CAPTCHA验证码的代码
PHP代码
- require_once('recaptchalib.php');
- $publickey = "..."; ,这里就是你刚才申请的API KEY
- echo recaptcha_get_html($publickey);
4.In the code that processes the form submission, you need to add code to validate the CAPTCHA. Otherwise, the CAPTCHA will appear, but the answers won't be checked. The validation code looks like:在提交处理页,你需要添加CAPTCHA验证代码。否则,CAPTCHA并不会验证他们。验证代码大致如下:
PHP代码
- require_once('recaptchalib.php');
- $privatekey = "..."; //申请的API KEY
- $resp = recaptcha_check_answer ($privatekey,
- $_SERVER["REMOTE_ADDR"],
- $_POST["recaptcha_challenge_field"],
- $_POST["recaptcha_response_field"]);
-
- if (!$resp->is_valid) {
- die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
- "(reCAPTCHA said: " . $resp->error . ")");
- }
看起来是不是很简单?现在是不是不再犹豫了??
更多参考和参数可以查看这里:http://recaptcha.net/plugins/php/
本文来自lukin的博客。。。
Lukin,lazyCMS的作者,如果你用过,或许会知道。。。
以下是原文
我是从asp转向php的,asp里面提供了下面的方法
代码1:
ASP/Visual Basic代码
- on error remuse next
-
- on error goto 0
----------------------------------------------------华丽的分割线-------------------------------------------------
转向php之后,查了一些资料貌似php没有提供类似这样的语法
直接使用error_reporting(0);关闭所有错误是很不明智的。所以,考虑使用@来抑制错误的发生,但是往往不如意。
我使用的set_error_handler('myerror')监听了一个函数,直接写@抑制错误的发生那是办不到的,照样会跳到myerror函数里面进行处理,后来看WordPress的源码,发现她屏蔽错误的方法:
代码2:
PHP代码
- $error_reporting = error_reporting(0);
-
- error_reporting($error_reporting);
应用到我系统里面,发现此方法也不好用,照样会进入myerror函数进行错误处理。
继续狂翻php手册,仔细查看set_error_handler这个函数的说明,然后查看评论(一般看手册上的评论还是很有收获的),评论上的一段代码引起了我的注意:
代码3:
PHP代码
-
- if (error_reporting() == 0) {
- return;
- }
细想了一下,把这段代码加入到myerror里面,果然ok了!原来使用@的时候,error_reporting()会返回0
这样可以利用@屏蔽某个函数里面发生的错误了,也可以使用【代码2】的方法来进行分段屏蔽错误了。
--EOF--
我一般是用Set_error_handler的。。还有我记得Error_reporting是可以返回当前设置的等级的。先取回当前的等级,然后设置为0,解决完后再设置回去。其实也是就第二种了。。不过我觉得lukin应该是用这种的,即:
PHP代码
- <?php
- $old = error_reporting();
- error_reporting(0);
-
- error_reporting($old);
使用ThinkSNS进行管理里。发现后台可以对用户组进行权限设定。于是乎,设定了一些菜单的权限。而且设定功能感觉也很强劲,因为可以设定子菜单是否可以访问呢。然而让人郁闷的却是,系统根本没有调用过这些权限。也就是说,你全部白设定了。
靠。太让人郁闷了。没完成你别放出来嘛。。。心都凉了。
顺便再说一个小BUG,UserSearch里如果要加入新的元素,你必须是这个元素为4个值的数组,即下标从0~4,如果ONLY第2个元素,你根本插不进数据库。【不多解释,如果增加内容到UserSearch里的人一定会注意到这个小BUG。。。。】
thinkSNS在最近的一段时间开发中,发现了不少BUG。。。没办法,谁让要用他的呢?
1、blog删除后跳转代码为redirect('index'),i应该大写,否则会报页面不存在的错误。
2、一些widget放在<inlucde footer>[<-左侧是伪代码]后面,导致有时候不能解析。好奇怪。。。有时候能够解析。
3、后台权限管理不正常,明明只选了一些简单的权限,但却多了一些不该有的权限。【准备改了,个人站点应该遇不到。毕竟就一个管理员】
4、如果后台把游客查看博客的权限打开,在前台反而会出错,因为博客页有评论,而读取评论列表时需要登录 。
其他一些未知BUG随着开发会越来越多。。有时候发现,thinksns作者是不是有点太粗心了?
不过。期望能够看到小游戏插件。黑黑,对分数排名很喜欢。
这是一个尝试,其实在我的域名下已经有很多这样的实验性的代码了。不过都没有一一公布而己。
当然页面还没有做,提供的接口也仅仅是FOR PHPRPC的。【不是不想用hprose,实在没钱】
慢慢来吧。准备找个漂亮的页面抠回来写文档。呵呵
随记而己