没有外部API调用的Captcha

时间:2015-05-14 15:26:33

标签: javascript php html captcha

我目前正在与一些几个月来一直无法使用的朋友进行一个非常古老的项目。我将其托管在我的提供商的免费托管服务上,因为没有人愿意为域名和托管付费。

问题在于:我有一个联系表单,我想用Google的reCaptcha保护。我知道如何让它发挥作用,我以前做过。不幸的是,我的提供商禁止任何外部资源调用......

此外,我无法访问服务器,因此我无法添加任何库或编辑设置(这太简单了......)。这个主机上的PHP版本是5.1.3(请不要大喊,我知道......)。

所以问题是:是否有一个不依赖于外部资源的验证码解决方案,并且不需要安装库?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用simple-php-captcha

它允许使用自定义模式和字体,使用它非常简单:

可以找到演示和使用情况here。以下是直接来自上述链接的摘要:

<?php
session_start();
include("simple-php-captcha.php");
$_SESSION['captcha'] = simple_php_captcha();
?>

显示CAPTCHA 图片,请使用<img>作为$_SESSION['captcha']['image_src']属性创建HTML src

要在下一页加载(或在AJAX请求中)验证CAPTCHA 值,请针对$_SESSION['captcha']['code']进行测试。您可以使用strtolower()strtoupper()执行不区分大小写的匹配。

<强>配置:

$_SESSION['captcha'] = simple_php_captcha( array(
    'min_length' => 5,
    'max_length' => 5,
    'backgrounds' => array(image.png', ...),
    'fonts' => array('font.ttf', ...),
    'characters' => 'ABCDEFGHJKLMNPRSTUVWXYZabcdefghjkmnprstuvwxyz23456789',
    'min_font_size' => 28,
    'max_font_size' => 28,
    'color' => '#666',
    'angle_min' => 0,
    'angle_max' => 10,
    'shadow' => true,
    'shadow_color' => '#fff',
    'shadow_offset_x' => -1,
    'shadow_offset_y' => 1
));