captchaforce / recaptcha
Simple recaptcha package
1.0.0
2025-01-12 03:48 UTC
Requires (Dev)
- phpunit/phpunit: 11.5.x-dev
This package is auto-updated.
Last update: 2025-07-14 14:43:45 UTC
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
-
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. -
Autoloading (Opsional, jika menggunakan Composer): Jika Anda menggunakan Composer untuk autoloading, pastikan kelas
Recaptcha
dapat ditemukan dengan menambahkan namespace-nya dicomposer.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
- 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