Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Silakan untuk menjalankan built-in server anda dan ujilah setiap halaman pada boilerplate.
Tampilan homepage FruitShop disajikan pada Gambar 1.
1 https://github.com/mattboldt/typed.js/
Setelah proses instalasi selesai, semua library yang dipasang akan disimpan pada direktori
vendor (Gambar 3). Untuk dapat menggunakan library, silakan import file autoload.php.
2 https://medoo.in/doc
3 https://twig.symfony.com/doc/2.x/
Selanjutnya, untuk setiap halaman anda perlu mengembangkan template-nya. Sebagai contoh,
untuk halaman index.php, anda akan menggunakan template index.html dan navigation.html.
Pindahkan seluruh isi dari index.php ke template index.html. dengan bagian navigation menu
diganti dengan kode berikut.
{{ include("navigation.html") }}
echo $template->render();
Silakan untuk menjalankan built-in server anda dan menguji halaman index.php yang telah
menggunakan template engine.
Tugas anda berikutnya adalah mengkonversi semua halaman yang ada pada boilerplate sehingga
menjadi template. Setelah anda menyelesaikan bagian ini, anda akan memiliki enam page
templates.
Subtugas 5. Register
Pada bagian ini anda akan menggunakan Medoo untuk berinteraksi dengan basis data. Fitur
pertama yang dikembangkan adalah registrasi penguna baru melalui halaman register.php.
Pada saat melakukan registrasi, password yang diberikan akan melalui proses hashing. Hasil dari
namespace web;
class Security
{
// to generate a secure random string
public static function random($length = 64)
{
$bytes = random_bytes($length / 2);
return (bin2hex($bytes));
}
// to verify password
public static function verifyPassword($password, $hash)
{
return (password_verify($password, $hash));
}
}
Kelas web\Security harus terlebih dahulu diimpor sebelum digunakan. Berikut ini adalah kode
yang digunakan untuk mengimpor kelas.
include_once('classes/Security.php');
use web\Security;
Formulir registrasi akan ditangani oleh berkas action_register.php. Berikut ini adalah kode dari
action_register.php.
<?php
include_once('vendor/autoload.php');
include_once('classes/Security.php');
include_once('config/database.php');
use web\Security;
use Medoo\Medoo;
// see config/database.php
$database = new Medoo($database_config);
$nextPage = "register.php";
$message = "";
4 https://github.com/P-H-C/phc-winner-argon2
// email is required.
if(!strlen($message) && !strlen($account["email"])){
$message .= "Email is required.";
}
// password is required.
if(!strlen($message) && !strlen($_POST["password"])){
$message .= "Password is required.";
}
$uploaded = move_uploaded_file(
$_FILES["image"]["tmp_name"],
$imagePath
);
Subtugas 6. Voting
TBD
Subtugas 7. Status
TBD
-EOF-