{"id":51764,"date":"2024-12-12T16:18:15","date_gmt":"2024-12-12T09:18:15","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=51764"},"modified":"2024-12-12T16:18:17","modified_gmt":"2024-12-12T09:18:17","slug":"cara-menambahkan-recaptcha-di-codeigniter-4","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/cara-menambahkan-recaptcha-di-codeigniter-4\/","title":{"rendered":"Cara Menambahkan reCaptcha di Contact Form CodeIgniter 4"},"content":{"rendered":"\n<p>Pada panduan sebelumnya, kita telah mempelajari cara <a href=\"https:\/\/www.rumahweb.com\/journal\/cara-membuat-contact-form-di-codeigniter-4\/\" target=\"_blank\" rel=\"noopener\" title=\"membuat contact form Codeigniter\">membuat contact form<\/a> di CodeIgniter 4. Dalam artikel ini, kita akan melanjutkan langkah tersebut dengan menambahkan reCaptcha di contact form CodeIgniter 4. <\/p>\n\n\n\n\n\n<p>Pada panduan sebelumnya, kita hanya mempelajari cara membuat formulir kontak sederhana. Namun, tanpa perlindungan tambahan, kotak masuk email Anda rentan terhadap serangan SPAM. Untuk mengatasinya, Anda dapat menggunakan reCaptcha sebagai solusi efektif.<\/p>\n\n\n\n<p>Dalam panduan ini, kita akan mempelajari cara menambahkan reCaptcha di contact form CodeIgniter 4 dengan menggunakan Cloudflare Turnstile. Pastikan Anda mengikuti panduan ini hingga selesai, agar reCaptcha dapat berfungsi dengan optimal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu Cloudflare Turnstile?<\/h2>\n\n\n\n<p>Cloudflare Turnstile adalah tool untuk memvalidasi pengunjung yang akan mengakses situs Anda, dengan menentukan apakah pengunjung tersebut adalah manusia atau robot melalui <em>challenge<\/em>.<\/p>\n\n\n\n<p>Untuk menggunakan Cloudflare Turnstile, Anda perlu membuat <em>sitekey <\/em>dan <em>secret key<\/em> yang kemudian akan diintegrasikan dengan aplikasi web Anda.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Generate Key Cloudflare Turnstile<\/h2>\n\n\n\n<p>Pastikan Anda memiliki akun Cloudflare, jika belum maka silahkan daftar terlebih dulu. Kemudian ikuti langkah-langkahnya dibawah:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Login akun <a href=\"https:\/\/dash.cloudflare.com\" target=\"_blank\" rel=\"noopener\" title=\"\">Cloudflare<\/a> Anda.<\/li>\n\n\n\n<li>Masuk ke menu <strong>Turnstile<\/strong>.<\/li>\n\n\n\n<li>Klik <strong>Add Widget<\/strong>, selanjutnya masukan nama dan klik <strong>Add Hostnames<\/strong>.<\/li>\n\n\n\n<li>Centang nama domain yang telah terdaftar di Cloudflare dan klik <strong>Add<\/strong>, kemudian klik <strong>Add <\/strong>kembali di menu <strong>Add Hostnames<\/strong>.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"546\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-1024x546.png\" alt=\"Generate Key Cloudflare Turnstile\" class=\"wp-image-51970\" style=\"width:600px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-1024x546.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-300x160.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-768x409.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-370x197.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-270x144.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-570x304.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1-740x394.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile-rumahweb-1.png 1105w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Dalam menu Turnstile, Anda bisa melanjutkan penyetingan dan menentukan mode <em>widget <\/em>dalam melakukan <em>challenge<\/em>.<\/p>\n\n\n\n<p>Jika semua persiapan sudah ditentukan, silahkan klik tombol Create agar <span style=\"text-decoration: underline;\">sitekey<\/span> dan <span style=\"text-decoration: underline;\">secret key<\/span> muncul.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-1024x396.png\" alt=\"menentukan mode widget challenge. \" class=\"wp-image-51967\" style=\"width:600px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-1024x396.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-300x116.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-768x297.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-370x143.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-270x104.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-570x220.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb-740x286.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_mode-rumahweb.png 1037w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Menambahkan reCaptcha di Contact Form CodeIgniter<\/h2>\n\n\n\n<p>Untuk menambahkan Cloudflare Turnstile pada kode yang sudah ada <a href=\"https:\/\/www.rumahweb.com\/journal\/cara-membuat-contact-form-di-codeigniter-4\/\" target=\"_blank\" rel=\"noopener\" title=\"\">disini<\/a>, kami akan memberikan bagian yang penting di bawah ini.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Edit Controller Contact<\/h3>\n\n\n\n<p>Edit file <strong>Contact.php<\/strong> yang berada dalam folder <strong>Controllers <\/strong>dan ubah menjadi <em>script <\/em>berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Contact extends Controller\n{ \n    public function index()\n    {\n        \/\/ site key - Cloudflare Turnstile \n        $data&#091;'site_key'] = 'xxxxxxxxxxxx'; \n        return view('contact_form', $data);\n    }\n\n    public function send()\n    {\n        \/\/ secret key - Cloudflare Turnstile \n        $secret_key = 'xxxxxxxxxxxxx'; \n\n        \/\/ Respon validasi Turnstile\n        $response = $this-&gt;request-&gt;getPost('cf-turnstile-response');\n        $verification = $this-&gt;verify_turnstile($secret_key, $response);\n\n        if (!$verification-&gt;success) {\n            \/\/ Jika gagal verifikasi, tampil error\n            return redirect()-&gt;to('\/contact')-&gt;with('error', 'Turnstile verification failed.');\n        }\n\n        $email = \\Config\\Services::email();\n...<\/code><\/pre>\n\n\n\n<p>Masih di file yang sama, tambahkan function <em>private <\/em>berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>...\n    private function verify_turnstile($secret_key, $response)\n    {\n        $url = 'https:\/\/challenges.cloudflare.com\/turnstile\/v0\/siteverify';\n\n        $data = &#091;\n            'secret' =&gt; $secret_key,\n            'response' =&gt; $response,\n        ];\n\n        $ch = curl_init($url);\n        curl_setopt($ch, CURLOPT_POST, true);\n        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));\n        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\n        $result = curl_exec($ch);\n        curl_close($ch);\n\n        return json_decode($result);\n    }\n}<\/code><\/pre>\n\n\n\n<p>Full script bisa Anda klik <a href=\"https:\/\/paste.fredriclesomar.my.id\/?4dc1247c210f89de#CmxURvaaZ4zYQFtyqRrPMkosCZ2VcAwM1EP9UE47fhz9\" target=\"_blank\" rel=\"noopener nofollow\" title=\"\">disini<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Edit View Contact<\/h3>\n\n\n\n<p>Pada bagian ini, Anda perlu menambahkan <em>widget <\/em>Cloudflare Turnstile. Silahkan edit file <strong>contact_form.php<\/strong> yang ada di folder <strong>Views<\/strong> dan tambahkan script widget dibawah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>        &lt;!-- Turnstile widget --&gt;\n        <strong>&lt;div class=\"cf-turnstile\" data-sitekey=\"&lt;?= $site_key ?&gt;\"&gt;&lt;\/div&gt;<\/strong><\/code><\/pre>\n\n\n\n<p>Hasilnya seperti form dibawah:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;form action=\"&lt;?= base_url('contact') ?&gt;\" method=\"post\"&gt;\n        &lt;label for=\"name\"&gt;Name:&lt;\/label&gt;\n        &lt;input type=\"text\" id=\"name\" name=\"name\" required&gt;\n        &lt;br&gt;\n\n        &lt;label for=\"email\"&gt;Email:&lt;\/label&gt;\n        &lt;input type=\"email\" id=\"email\" name=\"email\" required&gt;\n        &lt;br&gt;\n\n        &lt;label for=\"telp\"&gt;Phone:&lt;\/label&gt;\n        &lt;input type=\"text\" id=\"telp\" name=\"telp\" required&gt;\n        &lt;br&gt;\n\n        &lt;label for=\"message\"&gt;Message:&lt;\/label&gt;\n        &lt;textarea id=\"message\" name=\"message\" required&gt;&lt;\/textarea&gt;\n        &lt;br&gt;\n\n        &lt;!-- Turnstile widget --&gt;\n        <strong>&lt;div class=\"cf-turnstile\" data-sitekey=\"&lt;?= $site_key ?&gt;\"&gt;&lt;\/div&gt;<\/strong>\n        &lt;br&gt;\n\n        &lt;button type=\"submit\"&gt;Send&lt;\/button&gt;\n    &lt;\/form&gt;<\/code><\/pre>\n\n\n\n<p>Jika semua step sudah dilakukan dengan benar, Anda akan menemukan <em>widget capcha <\/em>milik Cloudflare seperti gambar dibawah.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb.png\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"600\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb.png\" alt=\"menambahkan reCaptcha di contact form CodeIgniter 4 telah berhasil\" class=\"wp-image-51989\" style=\"width:569px;height:auto\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb.png 938w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-300x192.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-768x491.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-370x237.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-270x173.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-470x300.png 470w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-570x365.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/12\/Turnstile_contactform_rumahweb-740x473.png 740w\" sizes=\"auto, (max-width: 938px) 100vw, 938px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Agar dapat digunakan dengan baik, pastikan Anda sudah menggunakan <em>site <\/em>dan <em>secret key <\/em>sesuai nama domainnya.<\/p>\n\n\n\n<p>Demikian panduan kami tentang cara menambahkan reCaptcha di form contact CodeIgniter 4, semoga bermanfaat!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada panduan sebelumnya, kita telah mempelajari cara membuat contact form di CodeIgniter 4. Dalam artikel ini, kita akan melanjutkan langkah tersebut dengan menambahkan reCaptcha di contact form CodeIgniter 4. Pada panduan sebelumnya, kita hanya mempelajari cara membuat formulir kontak sederhana. Namun, tanpa perlindungan tambahan, kotak masuk email Anda rentan terhadap serangan SPAM. Untuk mengatasinya, Anda [&hellip;]<\/p>\n","protected":false},"author":338,"featured_media":52147,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[543,726,564],"class_list":{"0":"post-51764","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-codeigniter","9":"tag-contact-form","10":"tag-recaptcha"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/51764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/338"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=51764"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/51764\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/52147"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=51764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=51764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=51764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}