Tutorial Login & Register Full Chapter 5 (Register User, Protecting Pages)
Yoo minna mohon maaf dalam memposting tutorial yang saya berikan membutuhkan waktu yang lama karena kesibukan saya sehari-hari sehingga selalu terhambat. tapi kali ini saya bisa memposting tutorial kembali kepada minna.
setelah kemarin kita selesai di chapter ke 4 yaitu
register form validation, nah sekarang kita akan melakukan pengkodingan untuk
registrasi user nya. Buka register.php
nya kemudian ganti kodenya menjadi seperti ini :
<?php
include 'core/init.php' ;
include 'includes/overall/header.php' ;
if (empty($_POST) === false ) {
$required_fields = array('username', 'password', 'password_again', 'first_name', 'email');
foreach ($_POST as $key => $value) {
if (empty($value) && in_array($key, $required_fields) === true) {
$errors[] = 'Fields marked with an asterisk are required' ;
break 1;
}
}
if (empty($errors) === true) {
if (user_exists($_POST['username']) === true) {
$errors[] = 'Sorry, the username \'' . $_POST['username'] . '\' is already exist.';
}
if (preg_match("/\\s/", $_POST['username']) == true) {
$errors[] = 'Your Username must not contain any spaces!' ;
}
if (strlen($_POST['password']) < 6 ) {
$errors[] = 'Your Password must be at least 6 character' ;
}
if ($_POST['password'] !== $_POST['password_again']) {
$errors[] = 'Your Password do not match !' ;
}
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
$errors[] = 'A vaild email address is required !' ;
}
if (email_exists($_POST['email']) === true) {
$errors[] = 'Sorry, the email address \'' . $_POST['email'] . '\' is already in use' ;
}
}
}
?>
<h1>Register</h1>
<?php
if (isset($_GET['success']) && empty($_GET['success'])){
echo 'Congratulation You\'ve been Registered Successfully' ;
} else {
if (empty($_POST) === false && empty ($errors) === true) {
$register_data = array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'first_name' => $_POST['first_name'],
'last_name' => $_POST['last_name'],
'email' => $_POST['email'],
);
register_user($register_data);
header('Location: register.php?success');
exit();
} else if (empty($errors) === false) {
echo output_errors($errors);
}
?>
<form action="register.php" method="POST">
<ul>
<li>
Username*:<br>
<input type="text" name="username" placeholder="Username">
</li>
<li>
Password*:<br>
<input type="password" name="password" placeholder="Password">
</li>
<li>
Re-type Password*:<br>
<input type="password" name="password_again" placeholder="Re-type Password">
</li>
<li>
First Name*:<br>
<input type="text" name="first_name" placeholder="First Name">
</li>
<li>
Last Name:<br>
<input type="text" name="last_name" placeholder="Last Name">
</li>
<li>
Email*:<br>
<input type="text" name="email" placeholder="Email">
</li>
<li>
<input type="submit" value="Register"></input>
</li>
</ul>
</form>
<?php
}
include 'includes/overall/footer.php' ; ?>
bisa di lihat diatas ada function baru yang belum
kita buat yaitu register_user, supaya register tersebut bisa berjalan, kita
akan membuat function baru untuk mengeksekusi register form diatas. Buka
users.php kemudian tambahkan function baru, berikut kode nya :
Sekarang kita buka general.php, dan tambahkan
function dibawah ini :
function register_user($register_data) {
array_walk($register_data, 'array_sanitize');
$register_data['password'] = md5($register_data['password']) ;
$fields = '`' . implode('`, `', array_keys($register_data)) . '`' ;
$data = '\'' . implode('\', \'', $register_data) . '\'' ;
mysql_query("INSERT INTO users ($fields) VALUES ($data)") ;
}
function array_sanitize(&$item) {
$item = mysql_real_escape_string($item);
}
Coba minna tes register nya, maka akan berhasil
melakukan register dengan adanya notice berhasil melakukan registrasi.
Tampilannya seperti ini :
Bisa di liat kan disitu ada
notifikasi congratulation bla bla bla yang artinya kita berhasil melakukan
registrasi dan data nya pun akan muncul pada database kita. Coba saja cek
database nya maka record di dalam tabe user akan bertambah datanya.
Setelah kita selesai membuat
registrasi, nah sekarang kita akan melakukan protecting page kita akan
melakukan beberapa logic untuk memprotect suatu page. Singkatnya gini aja
halaman tertentu tidak bisa di akses ketika kita belum melakukan login.
Sekarang kita buat dulu beberapa
halaman, diantaranya downloads.php , forum.php dan contact.php . nah halaman
yang akan kita protect yaitu bagian halaman downloads.php dan forum.php jadi
halaman tersebut tidak bisa di akses jika kita belum login. Buat file
downloads.php nya :
<?php
include 'core/init.php' ;
include 'includes/overall/header.php' ;
?>
<h2>Download</h2>
<p>Ini adalah konten Download</p>
<?php
include 'includes/overall/footer.php' ; ?>
Buat juga 2 file lagi yaitu forum.php dan
contact.php. untuk kodenya sama kan saja dengan yang diatas.
Agar tujuan kita untuk memprotect halam tersebut
tercapai heheh kita buat file baru bernama protected.php, berikut kode nya :
<?php
include 'core/init.php' ;
include 'includes/overall/header.php' ;
?>
<h2>Access Denied</h2>
<p>Harap login untuk mengakses halaman ini</p>
<?php
include 'includes/overall/footer.php' ; ?>
Jangan lupa save file-file tersebut diatas di
folder project kita ingat jangan di folder core atau pun include ataupun
lainnya tapi cukup di folder project kita. Nah halaman protected sudah kita
buat sekarang kita akan memulai proteksi nya. Buka general.php kemudian buat
sebuah function baru :
function protect_page(){
if (logged_in() === false) {
header('Location: protected.php');
exit();
}
}
Dengan begitu jika kita menanamkan function ini
pada halaman yang akan kita proteksi, maka user tidak akan bisa mengakses nya
ketika dia belum melakukan login dan akan di timpahkan ke halaman protected
yang sudah kita buat tadi. Nah sekarang kita hanya perlu menambahkan function
ini kedalam halaman yang akan kita proteksi yaitu halaman downloads.php dan
forum.php. tambahkan kode “Protect_page()
;“ tanpa tanda kutip tepat di bawah kode include 'core/init.php'; setelah itu save. Dan coba running
hasilnya maka ketika mengklik halaman download atau forum sebelum melakukan
login akan seperti ini :
Sebaliknya jika kita sudah login, maka halaman yang
akan ditampilkan adalah halaman yang sebenarnya.
Nah sekarang kita akan sedikit-sedikit memperbaiki
kesalahan project yang kita buat. Coba di cek ketika kita sudah melakukan
login, terus kita masuk kehalaman register dan hasilnya form register nya
muncul tapi kita sudah melakukan login. Tentu hal itu tidak mengenakan sekali
kan. Sekarang kita akan memperbaiki nya. Buka lagi general.php dan tambahkan
function baru :
function logged_in_redirect(){
if (logged_in() === true) {
header('Location: index.php');
exit();
}
}
Kemudian tanamkan function nya di halaman
register.php. tambahkan kode logged_in_redirect();
dibawah kode include 'core/init.php';
. Maka ketika kita sudah login dan mengakses halaman register.php kita akan
dikembalikan ke halaman index.php. dan juga lakukan hal yang serupa pada
halaman login.php agar ketika kita sudah melakukan login dan kita ingin
mengakses halaman login.php maka kita tidak akan melakukan login kembali dan
akan ditimpahkan ke halaman index.php.
Sekian untuk postingan kali ini, mohon maaf bila
terdapat kesalahan kata, penjelasan dan lainnya.
Jaa nee Minna...
Langganan:
Posting Komentar
(
Atom
)
Tidak ada komentar :
Posting Komentar