定制 captchaforce/recaptcha 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

captchaforce/recaptcha

最新稳定版本:1.0.0

Composer 安装命令:

composer require captchaforce/recaptcha

包简介

Simple recaptcha package

README 文档

README

Paket ini menyediakan layanan untuk menghasilkan dan memverifikasi CAPTCHA berbasis teks dan angka. Anda dapat menggunakan paket ini untuk melindungi formulir dan halaman web Anda dari bot dan skrip otomatis.

Fitur

  • Menghasilkan CAPTCHA berbasis teks alfanumerik (huruf dan angka).
  • Menghasilkan CAPTCHA berbasis angka.
  • Memverifikasi CAPTCHA yang dimasukkan oleh pengguna.
  • Menyimpan CAPTCHA dalam sesi untuk memverifikasi input pengguna.

Instalasi

  1. Unduh atau Salin Kode: Pastikan Anda memiliki kode sumber paket ini di dalam proyek Anda. Anda bisa mengunduhnya atau menyalin folder Recaptcha ke dalam proyek Anda.

  2. Autoloading (Opsional, jika menggunakan Composer): Jika Anda menggunakan Composer untuk autoloading, pastikan kelas Recaptcha dapat ditemukan dengan menambahkan namespace-nya di composer.json.

    "autoload": {
        "psr-4": {
            "Recaptcha\\": "path/to/recaptcha/"
        }
    }

1. Jika Menggunakan Composer (Dari Packagist)

Anda bisa menambahkannya sebagai dependensi:

composer require captchaforce/recaptcha

Implementation Recaptcha

Screenshot

  • CaptchaType Text
use Recaptcha\Recaptcha;
use Recaptcha\CaptchaType;

Recaptcha::setCaptcha(5);
Recaptcha::captchaImage(Recaptcha::getCaptcha(CaptchaType::TEXT));
  • CaptchaType Number
use Recaptcha\Recaptcha;
use Recaptcha\CaptchaType;

Recaptcha::setCaptcha(5);
Recaptcha::captchaImage(Recaptcha::getCaptcha(CaptchaType::NUMBER));
  • Change length Captcha
Recaptcha::setCaptcha(8);
  • Verify Captcha
use Recaptcha\Recaptcha;

$result = Recaptcha::verifyCaptcha($text_inputan_user);
echo $result ? "Captcha valid" : "Captcha tidak valid !";

Run Samples

php -S localhost:8080 -t samples

Implementation Recaptcha ( CodeIgniter 3 )

  • Login.php (Controllers)
<?php
defined('BASEPATH') or exit('No direct script access allowed');

use Recaptcha\Recaptcha;

class Login extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        Recaptcha::setCaptcha(5); // Bagian terpenting
    }
    
    public function index()
    {
        $this->load->view('dashboard/login');
    }
}
  • Captchaimg.php (Controllers)
<?php
defined('BASEPATH') or exit('No direct script access allowed');

use Recaptcha\Recaptcha;
use Recaptcha\CaptchaType;

class Captchaimg extends CI_Controller
{   
    public function index()
    {
        Recaptcha::captchaImage(Recaptcha::getCaptcha(CaptchaType::NUMBER)); // Bagian terpenting
    }
}
  • Auth.php ( Controllers )
public function login()
{
    if ($this->input->post()) {
        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');
        $this->form_validation->set_rules('captcha', 'Captcha', 'required');

        if ($this->form_validation->run() === TRUE) {
            $username = $this->input->post('username');
            $password = $this->input->post('password');
            $captcha = $this->input->post('captcha');

            if(Recaptcha::verifyCaptcha($captcha)) { // Bagian terpenting
                $user = $this->user->login($username, $password);

                if ($user) {
                $this->session->set_userdata('user', $user);
                
                redirect('dashboard');
                } else {
                    $data['error'] = 'Username atau password salah.';
                }
            }else{
                $data['error'] = 'Captcha salah';
            }
        } else {
            $data['error'] = validation_errors();
        }
    }

    $this->load->view('login');
}
  • login.php (Views)
<form action="<?php echo site_url('auth/login'); ?>" method="post">
    <div class="form-wrapper">
        <input type="text" name="username"  placeholder="Username" class="form-control" required>
        <i class="zmdi zmdi-account"></i>
    </div>
    <div class="form-wrapper">
        <input type="password" name="password" placeholder="Password" class="form-control" autocomplete required>
        <i class="zmdi zmdi-lock"></i>
    </div>

    <div class="form-wrapper">
        <div class="row">
            <div class="col">
                <img src="<?= base_url("captchaimg"); ?>" alt="Gambar Captcha"> <!-- Bagian terpenting -->
            </div>
            <div class="col">
                <input type="text" name="captcha" placeholder="Type Captcha" class="form-control" required>
                <i class="zmdi zmdi-lock"></i>
            </div>
        </div>
    </div>
    <button type="submit" id="loginBtn">Masuk
        <i class="zmdi zmdi-arrow-right"></i>
    </button>
</form>

Test Code

MacOs

./vendor/bin/phpunit --testdox tests

Windows

php ./vendor/bin/phpunit --testdox tests

统计信息

  • 总下载量: 38
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-01-07