Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Membangun Captcha dan formulir kontak Anda sendiri

by
Difficulty:IntermediateLength:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Muhammad Hakim Almadani (you can also view the original English article)

Pernah mendapatkan hit dengan spam melalui formulir kontak di situs pribadi Anda? Nah, di sini adalah tutorial singkat tentang cara untuk membangun sebuah captcha kustom untuk menjaga orang jahat keluar.

Langkah 1: captcha.php dan sesi

Pertama kita perlu untuk membangun Halaman PHP baru dan Simpan sebagai captcha.php. Kemudian, di luar script baru, membuka sesi server dengan menggunakan perintah session_start(). Juga, kode variabel kosong bernama "string". Kami akan menggunakan variabel ini kemudian terus teks captcha dihasilkan secara acak.

Langkah 2: String acak

Selanjutnya, kita harus menulis untuk loop yang akan menghasilkan string acak. Kita kemudian akan mengambil string acak ini dan mengaturnya dalam sebuah variabel sesi yang disebut "random_code".

Ini untuk loop, Anda akan melihat, menambahkan karakter ascii huruf, yang menggunakan fungsi chr(), ke variabel $string kami pada setiap lulus. Contoh saya menghasilkan 5 karakter, tetapi Anda dapat menyesuaikan jumlah itu dengan mengubah "$i

Langkah 3: Folder penyimpanan dan warna

Ini adalah mana tutorial mendapat sedikit lebih rumit. Selanjutnya kita perlu menentukan folder penyimpanan untuk font yang kita akan menggunakan, membangun gambar captcha dasar, dan mendefinisikan warna yang kita akan gunakan untuk mengisi gambar kami. Ini adalah semua kode yang sederhana, tapi mereka fungsi yang tidak digunakan sering oleh pengembang.

Pada awalnya, aku hanya mendefinisikan folder font yang menyimpan dalam variabel $dir. Variabel $image, yang mana kita menggunakan fungsi imagecreatetruecolor() adalah uang yang tempat. Ini adalah di mana gambar captcha dasar dibangun menggunakan PHP. Fungsi imagecreatetruecolor() mengembalikan pengidentifikasi gambar yang mewakili sebuah gambar hitam ukuran tertentu. Seperti yang Anda lihat, saya membuat gambar saya 170px lebar x 60 piksel tinggi.

Akhirnya, pada langkah ini, saya mendefinisikan beberapa warna kita dapat menggunakan dalam gambar akhir kami. Angka-angka yang dikirimkan ke fungsi imagecolorallocate() adalah nilai-nilai RGB.

Langkah 4: Membangun gambar

Selanjutnya, kita akan mengisi gambar dengan persegi panjang putih, yang akan bertindak sebagai gambar latar belakang, dan kemudian menambahkan string acak teks kami untuk gambar.

Fungsi imagefilledrectangle() menarik persegi panjang di gambar tertentu. Empat nomor berlalu dalam fungsi mewakili koordinat untuk sudut persegi panjang. Pastikan persegi panjang Anda menggambar di sini lebih besar dari gambar dasar. Anda akan melihat persegi panjang saya adalah lebar 200px dan tinggi 100px.

Imagettftext() Mari kita menambahkan teks ke gambar menggunakan benar jenis font. Dan Anda akan melihat bahwa fungsi yang dapat menangani beberapa parameter. Saya ingin menyorot semua parameter yang berbeda dalam fungsi ini, tapi Anda hanya perlu mengingat beberapa.

Setelah Anda membandingkan saya contoh kode segera di atas, Anda akan melihat bahwa nilai-nilai yang dilewatkan ke fungsi imagettftext() mudah untuk memahami. Pertama adalah sudut gambar, maka ukuran font, teks, x dan y koordinat teks (mulai dengan sudut kiri atas), warna teks, lokasi dari font file, dan akhirnya teks (string acak kami).

Langkah 5: Gambar Final

Selanjutnya, dengan script kami, kita perlu memberitahu browser kita apa jenis gambar kami menggunakan, dengan fungsi header(), dan membangun gambar akhir. Ini fungsi sangat lurus ke depan, tidak banyak yang dapat menjelaskan tentang mereka. Juga, jangan lupa untuk menutup skrip PHP.

Setelah melihat pratinjau di browser, skrip Anda harus menghasilkan gambar png yang berisi beberapa teks. Jika Anda menerima kesalahan, pastikan skrip Anda dapat link ke file font .ttf Anda, dan bahwa Anda telah menciptakan variabel kosong $string dari sebelumnya dalam tutorial.

Ini adalah kode akhir halaman captcha.php apa yang akan terlihat seperti:

Langkah 6: contact.php

Membangun halaman kontak PHP baru dan Simpan sebagai contact.php. Halaman ini akan berisi formulir kontak yang akan memvalidasi menggunakan captcha kami.

Langkah 7: HTML & CSS

Mari kita tambahkan sebuah form HTML untuk halaman contact.php kami. Memberi perhatian khusus terhadap sumber gambar yang kita gunakan untuk teks acak.

Anda juga dapat menambahkan sedikit berikut CSS ke halaman Anda untuk membuatnya terlihat lebih baik daripada default.

Langkah 8: Memvalidasi dengan PHP

Sekarang bahwa pesanan kami dibangun dan kami memiliki keluar menampilkan gambar captcha, kita perlu lakukan sekarang adalah memvalidasi formulir, pastikan untuk menyertakan beberapa aturan validasi untuk keluar captcha.

Berikut adalah apa validasi akhir PHP akan terlihat seperti. Dua fitur penting yang diperlukan untuk proses validasi ini adalah session_start(); dan elemen if($_POST ['kode'] == $_SESSION['rand_code']) . Ini memungkinkan kita untuk mengakses keluar variabel sesi dan memeriksa terhadap teks seseorang menulis di bidang kode formulir kami. Tanpa ini, captcha kami akan tidak berguna.

Jika Anda tahu banyak tentang PHP, sisa validasi ini harus mudah untuk memahami. Kami pada dasarnya mencari untuk memastikan tidak ada kolom formulir kami kosong. Jika mereka kosong, kesalahan yang dilemparkan untuk memastikan informasi input pengguna kami. Anda juga akan melihat aku tidak memvalidasi Apakah email juga terbentuk, yang merupakan sesuatu yang Anda harus harus mencakup. Email validasi dilakukan menggunakan string biasa.

Berikut adalah apa yang file contact.php akhir Anda akan terlihat seperti. Aku termasuk CSS, yang Anda mungkin ingin drop di file CSS-nya sendiri.

Anda sudah selesai

Setelah validasi Anda bekerja, formulir kontak captcha Anda harus bekerja hebat. Apa yang pikiran Anda? Terima kasih banyak untuk membaca.


Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.