Kamis, 11 Agustus 2011

Cara Membuat Halaman Login Dengan PHP



Dalam membuat sebuah halaman admin perlu adanya proses autentifikasi yaitu suatu proses mencocokan data yang dimasukan oleh user dengan data yang ada di dalam database agar user tersebut bisa mendapatkan akses untuk masuk ke halaman admin. dalam membuat halaman login kita menggunakan fungsi session yaitu suatu fungsi di PHP yang berguna untuk menyimpan nilai variable akan bisa di gunakan di halaman yang lain. session ini di simpan di sisi server.
Untuk membuat halaman login ini, kita membutuhkan 4 (empat) buah file yaitu :

  1. conn.php digunakan untuk melakukan koneksi ke database.
  2. login.php berupa tampilan form yang berisi textbox untuk memasukan nama dan username serta memproses data yang di input oleh user.
  3. home.php digunakan untuk halaman utama admin.
  4. logout.php digunakan untuk menghapus session yang telah di buat.
Form Login


DONWLOAD

http://www.4shared.com/file/122653384/d7da91cc/login.html
http://www.4shared.com/file/_oU-B0uc/pendaftaran.html

DEMO

http://labhouse.co.cc/index.php?page=login

Adapun logika dari pembuatan aplikasi login ini adalah :
1) User memasukan username dan password.
2) Program mengecek data yang ada didalam database, apakah username dan password cocok. kita menggunakan syntax
$login=mysql_db_query($db,”select * from admin where user=’$user_name’ and password=’$password’”,$koneksi);
3) Jika cocok, maka program akan buat session dengan nilai yang ada di variable ‘id’ dan ‘user_name’
session_register(‘id’);
session_register(‘user_name’);
4)  Jika tidak, maka akan ada tanda peringatan
?><script language=”javascript”>
alert(“Maaf, Password Anda salah!!”);
document.location=”login.php”;
</script>
<?
setelah berhasil login, maka user akan masuk ke halaman ‘home.php’.
5)  Di halaman home.php ada script pengecekan session. dengan syntax.
<? session_start();
if (session_is_registered(‘id’))
{
yang artinya jika ada user yang masuk ke halaman home.php tanpa membawa nilai session (tanpa login), maka akan ada tanda peringatan.
6)  Di halaman home.php (halaman admin) ada link ‘logout’ yang digunakan jika user akan keluar dari halaman admin. sedangkan syntax logoutnya adalah
session_unregister(“id”);
session_unregister(“user_name”);
?><script language=”javascript”>
alert(“Anda Berhasil logout.”);
document.location=”login.php”;
</script><?
CATATAN

Bila teman-teman yang gagal LOGIN, setelah saya lihat kembali script programnya dan saya jalankan pada xampp versi 1.6.  ternyata bisa berjalan dengan baik. mungkin masalahnya ada pada versi PHP yang digunakan saat aplikasi tokoonline ini dibuat yaitu masih PHP versi 4. dimana salah satu perbedaan mendasarnya adalah pada tag pembuka PHP yang mengalami perubahan dari <? (php 4) menjadi <?php (php 5). sehingga solusinya ganti (find and replace) semua tag lama <? menjadi tag baru <?php
ALTERNATIF

Untuk membuat session jika tidak bisa dengan syntax 1 gunakan syntax yang lainnya.
session_register(‘username’); >> $_SESSION['username']=$username
Untuk redirect jika tidak bisa mnggunakan systax 1. gunakan 1 lagi
header(location:home.php) >> <code><script language=javascript>document.location.href="home.php"</script><code>
Jika cek session tidak bisa dengan menggunakan syntax 1, gunakan syntax 1 lagi
if (session_is_registered(‘username’)){ >> if(isset($_SESSION['username'])){

Semoga tutorial ini dapat berguna untuk teman-teman anda semua yang sedang belajar PHP
»»  read more

Membuat Script PHP Pengolah Password dengan MD5


Setiap password pengguna aplikasi hendaknya dienkripsi untuk keperluan faktor keamanan. Mengapa password harus dienkripsi? atau apa sih enkripsi itu? OK… enkripsi adalah teknik penyandian pesan, yang semula pesan tersebut dapat dibaca dan bermakna, setelah dienkripsi menjadi tidak terbaca dan tidak bermakna. Lantas… mengapa password harus dienkripsi? Pertanyaan tersebut saya balik, bagaimana jika password tidak dienkripsi? Apabila password tidak dienkripsi, maka dapat dengan mudah dibaca, dan digunakan oleh orang lain yang tidak berhak untuk masuk ke dalam sistem atau aplikasi.

Dalam PHP, tentu kita tidak asing dengan perintah atau function md5(). Function ini sering digunakan para programmer untuk mengenkripsi password sebelum hasil enkripsi tersebut disimpan dalam database sistem, ketika registrasi user baru. Hasil enkripsi md5() berupa suatu string acak dengan panjang 32 karakter (256 bit). Sudah amankah penggunaan md5()? Artikel ini akan membahasnya, serta memberikan tips bagaimana cara membuat script PHP yang baik untuk mengolah password.


Nah… biasanya, struktur code untuk mengenkripsi password dengan md5 dan menyimpannya ke dalam database (pada registrasi user baru) adalah sebagai berikut:
01.<?php
02. 
03.// input username baru
04.// input password asli baru ($passAsli)
05. 
06.$passEnkrip = md5($passAsli);
07. 
08./* procedure simpan data username
09.dan password hasil md5() ke db */
10. 
11.?>
Sedangkan struktur code untuk loginnya adalah
01.<?php
02. 
03.// input login username
04.// input login password asli ($passAsli)
05. 
06.if (md5($passAsli) == $passEnkrip)
07.{
08.   // login sukses
09.   // procedure jika login sukses
10.}
11.else {
12.   // login gagal
13.   // procedure jika login gagal
14.}
15. 
16.?>
Lantas… benar-benar sudah amankah penggunaan md5() dengan struktur code di atas?
Beberapa periode yang lalu, mungkin penggunaan struktur seperti di atas sudah dirasa aman. Namun saat ini tidak aman lagi, karena sudah banyak tool untuk mendekripsi hasil enkripsi md5(). Salah satu toolnya seperti yang ada di situs http://md5.rednoize.com. Apa akibatnya jika password ini didekripsi? wah bahaya… bisa-bisa password aslinya ketahuan.
So… gimana donk? apakah md5() tidak usah digunakan lagi? Tidak usah khawatir, kita tetap bisa menggunakan md5() namun perlu sedikit kreatif. Maksudnya adalah bahwa kita perlu mengkombinasikan penggunaan md5() dengan pengacak, misalnya kita gunakan md5() berulangkali, atau menggabungkan password asli dengan suatu string tertentu lalu dienkripsi.
Berikut ini contoh struktur code untuk menyimpan password terenkripsi menggunakan pengacak
01.<?php
02. 
03.// input username baru
04.// input password baru  ($passAsli)
05. 
06.$pengacak = "AJWKXLAJSCLWLW";
07.$passEnkrip = md5($pengacak . md5($passAsli) . $pengacak );
08. 
09./* procedure simpan data username
10.   dan password $passEnkrip ke db */
11. 
12.?>
Sedangkan berikut ini adalah struktur untuk loginnya
01.<?php
02. 
03.// input login username
04.// input login password asli ($passAsli)
05. 
06.$pengacak = "AJWKXLAJSCLWLW";
07. 
08.if (md5($pengacak . md5($passAsli) . $pengacak) == $passEnkrip)
09.{
10.   // login sukses
11.   // procedure jika login sukses
12.}
13.else {
14.   // login gagal
15.   // procedure jika login gagal
16.}
17.?>
Anda dapat mengubah isi pengacak atau mungkin mengubah format enkripsinya menjadi model lain, misalnya menggabungkan 3 atau lebih md5() dalam enkripsi. Dalam hal ini, hanya kita yang tahu format enkripsi atau pengacaknya. Intinya adalah jangan mengenkripsi password menggunakan md5() secara langsung, karena hal ini rawan untuk dihack pada saat ini.
Mudah-mudahan artikel ini membantu…
»»  read more