我目前正在与一些 friend 一起参与一个非常古老的项目,该项目已经好几个月没用了。我将它托管在我的提供商的免费托管服务上,因为没有人愿意为域和托管付费。
这就是问题所在:我有一个联系表,我想用 Google 的 reCaptcha 来保护它。我知道如何让它发挥作用,我以前做过。不幸的是,我的提供商禁止调用任何外部资源...
此外,我无法访问服务器,所以我无法添加任何库或编辑设置(这太容易了......)。该主机上的 PHP 版本是 5.1.3(请不要大喊大叫,我知道...)。
那么问题来了:有没有不依赖外部资源、不需要安装库的验证码方案?
谢谢!
最佳答案
你可以使用 simple-php-captcha
它允许使用自定义图案和字体,使用起来非常简单:
Demo 和使用可以在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
));
关于javascript - 无需外部 API 调用的验证码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30241176/