sievr/rotate-captcha

简单旋转验证码

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/sievr/rotate-captcha

dev-main 2025-06-21 12:37 UTC

This package is auto-updated.

Last update: 2025-12-21 14:06:41 UTC


README

简介

本 Composer 包为简单旋转验证码功能,提供简单易用的旋转验证码实现方案,适用于 PHP 8.0 及以上版本。

项目信息

  • 名称: sievr/rotate-captcha
  • 版本: 1.0.0
  • 许可证: MIT
  • 作者: sievr (x-sievr@qq.com)

安装

1. 使用 Composer 安装

在项目根目录下执行以下命令:

composer require sievr/rotate-captcha

2. 手动安装

将本包下载到项目中,并在 composer.json 中添加以下内容:

{
    "require": {
        "sievr/rotate-captcha": "1.0.0"
    }
}

然后执行 composer install

3. 简单安装

将本包下载到项目后执行 composer install

使用方法

示例代码

以下是一个简单的使用示例(example.php):

<?php
// 确保会话在使用前已启动
session_start();
require_once __DIR__ . '/vendor/autoload.php';

use sievr\RotateCaptcha\RotateCaptcha;

// 替换为实际的图片路径
$backgroundImagePath = './background.png';
$blockImagePath = './block.png';

// 检查文件是否存在
if (!file_exists($backgroundImagePath)) {
    echo json_encode(['success' => false, 'message' => '背景图片文件不存在']);
    exit;
}
if (!file_exists($blockImagePath)) {
    echo json_encode(['success' => false, 'message' => '滑块图片文件不存在']);
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 检查 userDegree 是否存在
    if (isset($_POST['userDegree'])) {
        $userDegree = (int)$_POST['userDegree'];
    } else {
        echo json_encode(['success' => false, 'message' => '缺少必要参数']);
        exit;
    }
    // session_start(); 移除重复调用
    $captcha = new RotateCaptcha($backgroundImagePath, $blockImagePath);
    $captcha->setCorrectDegree($_SESSION['correct_degree']);
    
    if ($captcha->verify($userDegree)) {
        echo json_encode(['success' => true]);
    } else {
        echo json_encode(['success' => false]);
    }
    exit;
}

$captcha = new RotateCaptcha($backgroundImagePath, $blockImagePath);
$result = $captcha->generate();

// 存储正确角度到 session
// session_start(); 移除重复调用
$_SESSION['correct_degree'] = $result['correct_degree'];
?>

<!DOCTYPE html>
<html>
<head>
    <title>旋转验证码验证示例</title>
    <!-- 样式代码 -->
</head>
<body>
    <div class="captcha-container">
        <img id="captchaImage" src="data:image/png;base64,<?php echo $result['image']; ?>" alt="验证码">
        <br>
        <div class="slider-container">
            <input type="range" id="slider" min="0" max="360" value="0">
        </div>
        
        <div id="result"></div>
    </div>
    <script>
        // JavaScript 代码
    </script>
</body>
</html>

步骤说明

  1. 初始化会话:使用 session_start() 启动会话。
  2. 引入类库:通过 require_once __DIR__ . '/vendor/autoload.php'; 引入 Composer 自动加载文件。
  3. 创建验证码实例$captcha = new RotateCaptcha($backgroundImagePath, $blockImagePath);
  4. 生成验证码:调用 $captcha->generate() 生成验证码图片和正确角度。
  5. 验证用户输入:调用 $captcha->verify($userDegree) 验证用户输入的旋转角度。

依赖说明

本包依赖于 PHP 8.0 及以上版本。

{
    "require": {
        "php": "^8.0"
    }
}

项目结构

.
├── background.png  # 旋转验证码的背景图片文件
├── block.png  # 旋转验证码的滑块图片文件
├── composer.json  # Composer 包管理配置文件
├── example.php  # 旋转验证码的简单使用示例文件
├── example_alert.php  # 可能为带提示功能的验证码示例文件
├── README.md  # 项目说明文档
└── src/  # 项目源代码目录
    └── RotateCaptcha.php  # 旋转验证码核心功能实现类文件

贡献指南

代码贡献

暂无

问题反馈

如果发现任何问题或有改进建议,请在 Issues 中提交。

许可证

本项目采用 MIT 许可证