Belajar PHP Membuat Aplikasi PHP Sertifikat Online

Belajar PHP Membuat Aplikasi PHP Sertifikat Online – Aplikasi dan tutorial ini saya buat berdasarkan permintaan teman yang sedang membuat sertifikat untuk sebuah acara internasional, semua peserta acara yang berjumlah sekitar 1000 orang  berhak mendapatkan sertifikat tersebut. Anda mungkin terbayang bagaimana membuat sertifikat satu per satu bahkan jika soft file pun tetap saja harus mengetik nama dan export/save as sertifikat satu per satu sesuai namanya.

Kemudian teman tersebut meminta bantuan apakah bisa membuat sertifikat online yang otomatis generate nama peserta dengan cara input nama atau nomor registrasinya.

Konsep dari aplikasi php sertifikat online ini cukup sederhana yaitu

  1. Peserta input nama atau nomor registrasi pada form
  2. Sertifikat otomatis muncul sesuai dengan nama peserta tersebut
  3. Sertifikat dapat di download dalam format gambar .jpg
  4. Jika nama atau nomor registrasi salah maka sertifikat tidak akan tampil/blank
  5. Jika ada yang mencoba bypass akses langsung file blanko sertifikat tidak akan tampil/blank

Let’s start

  • Membuat database

Buatlah database dengan tabel berisi kolom nomor registrasi dan nama, nama database saya adalah dbsertifikat dengan data sample list peserta

-- phpMyAdmin SQL Dump
-- version 4.0.10deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jan 16, 2017 at 08:59 PM
-- Server version: 5.5.53-0ubuntu0.14.04.1
-- PHP Version: 5.5.9-1ubuntu4.20

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Database: `dbsertifikat`
--

-- --------------------------------------------------------

--
-- Table structure for table `peserta`
--

CREATE TABLE IF NOT EXISTS `peserta` (
  `no_registrasi` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `nama` varchar(40) NOT NULL,
  PRIMARY KEY (`no_registrasi`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1238 ;

--
-- Dumping data for table `peserta`
--

INSERT INTO `peserta` (`no_registrasi`, `nama`) VALUES
(1234, 'Diego Costa'),
(1235, 'Eden Hazard'),
(1236, 'Cesc Fabregas'),
(1237, 'Matic');

 

  • Buat file index.php

File ini adalah halaman depan yang berisi dua form untuk mengisi nomor registrasi atau nama peserta. Form pertama berfungsi input nomor registrasi atau nama peserta, setelah di input dan tombol Check di klik data nomor registrasi atau nama peserta dicari pada database, jika ditemukan atau cocok maka nama peserta akan ditampilkan pada form kedua.

Form kedua berfungsi verifikasi, jika form kedua terisi otomatis oleh nama peserta maka sertifikat dapat dicetak dengan klik tombol Get Certificate Now, tapi jika form kosong maka sertifikat akan tampil blank.

Oh iya untuk desain tampilannya menggunakan Framework HTML Bootstrap agar lebih efisien dari sisi waktu dan code

<!DOCTYPE html>
<html>
<head>
	<title>Certificate World Culture Forum 2016</title>
	<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
</head>
<body>
	<div class="container">
		<div class="col-md-6 col-md-offset-3">
			<div class="panel panel-primary">
	  			<div class="panel-heading"><h2>Certificate World Culture Forum 2016</h2></div>
	 				<div class="panel-body">
						<div class="konten">

							<form action="index.php" method="post">
								<strong>Please enter your name</strong><br>
								<input type="text" class="form-control" name="id" placeholder="first name or last name" ></input>
								<input type="submit" class="btn btn-primary" value="Check" name="certificate"></input><br><br><br>
							</form>

<?php
	$getid = $_POST["id"];
	$host = "localhost";
	$user = "root";
	$pass = "";
	$db   = "dbsertifikat";
	//buat koneksi dan ambil database		
	$koneksi = mysql_connect($host, $user, $pass) or die("Koneksi error");
	$db = mysql_select_db($db) or die("database tidak ditemukan");
	//ambil POST dan sesuaikan dengan database
	$ambildb = mysql_query("SELECT nama FROM peserta WHERE no_registrasi LIKE '%$getid%' OR nama LIKE '%$getid%'");
	
	while ($row = mysql_fetch_assoc($ambildb)){
		$hasil = $row['nama'];
		
	}
?>
							<form action="certificate.php" method="post">
								<strong>It's your name?</strong><br>
								<input type="text" class="form-control" name="namadisable" disabled="yes" value="<?php
								if (!empty($getid)) { //berfungsi verifikasi, menampilkan nama hasil input saja tapi tidak dikirim ke untuk dicetak (certificate.php) karena status input tersebut disable
								 	echo "$hasil";
								 	}
								 	else {
								 	echo "your name will shown automatic";	
								 	} 
								   ?>" ></input>
								<input type="hidden" name="namacetak" value="<?php
								if (!empty($getid)) { //berfungsi mengirim nama yang telah diinput dan sesuai untuk di cetak ke (certificate.php)
								 	echo "$hasil";
								 	}
								 	else {
								 	echo "";	
								 	} 
								   ?>"></input>
								<input id="get" type="submit" class="btn btn-primary" value="Get Certificate Now" name="certificate"></input>
							</form>
							<br><h4><strong>Notes:</strong> After certificate generated please save as file.jpg</h4>
						</div>
					</div>
			</div>
		</div>
	</div>

</body>

</html>
  • Selanjutnya file inti yang menghasilkan sertifikat certificate.php

Pada file ini terdapat logika if, jika nama peserta kosong maka akan tampil blanko sertifikat yang kosong (putih blank) hal ini untuk menghindari pencurian blanko kosong sertifikatnya. Jika nama peserta terisi makan sertifikat akan tercetak dengan blanko yang asli. Selain itu file ini menggunakan fungsi pada php yaitu imagttftext.

<?php
	$nama = $_POST['namacetak'];
	if (empty($nama)) {
		$gambar = "./1.jpg";
	}
		else {
		$gambar = "./sertifikat.jpg";
	}
	$image = imagecreatefromjpeg($gambar);
	$white = imageColorAllocate($image, 255, 255, 255);
	$black = imageColorAllocate($image, 0, 0, 0);
	$font = "./QuinchoScript_PersonalUse.ttf";
	$size = 42;
	//definisikan lebar gambar agar posisi teks selalu ditengah berapapun jumlah hurufnya
	$image_width = imagesx($image);  
	//membuat textbox agar text centered
	$text_box = imagettfbbox($size,0,$font,$nama);
	$text_width = $text_box[2]-$text_box[0]; // lower right corner - lower left corner
	$text_height = $text_box[3]-$text_box[1];
	$x = ($image_width/2) - ($text_width/2);
	//generate sertifikat beserta namanya
	imagettftext($image, $size, 0, $x, 400, $black, $font, $nama);
	//tampilkan di browser
	header("Content-type:  image/jpeg");
	imagejpeg($image);
	imagedestroy($image);
?>

Demikianlah tutorial belajar php kali ini, memang aplikasi php ini sangat simple dan sederhana tapi manfaatnya cukup bagus, peserta seminar cukup diarahkan menuju web aplikasi untuk membuat sertifikatnya masing-masing.

membuat aplikasi php sertifikat online

Leave a Reply

Your email address will not be published. Required fields are marked *