Cara Membuat Captcha dengan CodeIgniter

Cara Membuat Captcha dengan CodeIgniter

Captcha atau Completely Automated Public Turing test to tell Computers and Humans Apart adalah jenis konfirmasi visual yang digunakan di situs web untuk memastikan pengiriman entri tidak dilakukan secara otomatis oleh komputer atau bot.

Pada dasarnya captcha adalah gambar dengan teks yang ditampilkan di atasnya, dimana pengguna harus mengetik karakter yang sama dengan yang ada di gambar untuk memverifikasi bahwa dia adalah manusia.

Captcha sering digunakan di kontak dan pendaftaran untuk mencegah entri dari robot spam. Intinya, Captcha adalah sebuah teknologi untuk bisa membedakan manusia dan robot.

Pada artikel kali ini saya akan memberikan tutorial bagaimana cara membuat captcha dengan codeigniter.

Langkah pertama buka file autoload.php pada folder application/config lalu cari script $autoload['libraries'] lalu load libraries form_validation dan session seperti dibawah ini.

$autoload['libraries'] = array('session', 'form_validation');

Selanjutnya, masih di file autoload.php cari script $autoload['helper'] dan load libraries url dan captcha seperti dibawah ini.

$autoload['helper'] = array('url', 'captcha');

Langkah kedua buka folder application/controller dan buat file baru bernama Captcha.php dan masukan kode seperti dibawah ini.

Buat class dengan nama Captcha terlebih dahulu atau sesuaikan dengan nama Controller yang sudah dibuat.

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

class Captcha extends CI_Controller
{

}

Setelah class controller sudah dibuat, tambahkan fungsi create_captcha() untuk konfigurasi dan membuat captcha.

function create_captcha()
{
    $data = array(
        'img_path' => './captcha',
        'img_url' => base_url('captcha'),
        'img_width' => '150',
        'img_height' => '30',
        'expiration' => 7200
    );

    $captcha = create_captcha($data);
    $image = $captcha['image'];

    $this->session->set_userdata('captchaword', $captcha['word']);

    return $image;
}

Selanjutnya buatlah fungsi check_captcha() yang akan kita gunakan untuk mengecek apakah captcha yang di input oleh pengguna benar atau salah.

function check_captcha()
{
    if(this->input->post('captcha') == $this->session->userdata('captchaword')) {

        return true;
    
    } else {

        $this->form_validation->set_message('check_captcha', 'Captcha tidak sama');

        return false;
    }
}

Masih di dalam controller Captcha.php tambahkan fungsi index() yang akan kita gunakan untuk menampilkan view dari captcha yang sudah dibuat.

function index()
{
    $this->form_validation->set_rules('captcha', 'Captcha', 'trim|callback_check_captcha|required');

    if($this->form_validation->run() == false) {

        $data = array(
            'captcha' => $this->create_captcha(),
        );

        $this->load->view('captcha',$data);

    } else {

        echo "Captcha telah sesuai";
    }
}

Langkah terakhir, buatlah file view dengan nama captcha.php pada folder application/view dan masukkan script dibawah ini.

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Captcha CodeIgniter</title>
</head>
<body>
    <?php if(validation_errors()) { echo validation_errors(); }?>
    <form action="<?php echo base_url('captcha/check_captcha');?>" method="post">
        <?php echo $captcha;?>
        Masukan kode captcha
        <input type="text" name="captcha">
        <button type="submit">Submit</button>
    </form>
</body>
</html>

Mungkin cukup sekian tutorial tentang Cara Membuat Captcha dengan CodeIgniter, jika bermanfaat silahkan share keteman-teman kalian supaya mereka tau apa yang kalian tau. Jika ada kesulitan silahkan tinggalkan komentar.

Baca Juga:

Gagas Sangga Pratama   Gagas Sangga Pratama Selasa, 06 April 2021 6.881 View CodeIgniter

FF
Fatih
Jumat, 10 Maret 2023

Ka terimakasih pencerahannya, sudah sy ikuti langkah-langkahnya cuman muncul eror ini apa ya;

Severity: Notice

Message: Trying to access array offset on value of type bool

Filename: controllers/Captcha.php

Line Number: 18

Komentar
grinLOLcheesesmilewinksmirkrolleyesbig surprise
tongue laughohhgrrroh ohdownerred facesickshut eye
hmmmmadangrykisscool smirkcool mad