Anda di halaman 1dari 10

Login dengan menggunakan PHP dan MySQL

by prouthon.soul on Sep.10, 2008, under Pemrograman Web

Halaman web menurutku adalah suatu halaman rumah di dalam dunia maya, disini kita
dapat menampilkan tentang segala Inspirasi, Imajinasi, Mimpi maupun Uneg Uneg
sekalipun. Ibarat sebuah rumah yang mempunyai pintu dan kunci, suatu halaman web
juga dapat di amankan dengan menggunakan beberapa cara :

1.Menerapkan Login & Password dengan system .htaccess

2.Menerapkan Login & Password dengan menggunakan session PHP dan MySQL

3.Dll.

Untuk bagian pertama sangat sederhana, karena ini memanfaatkan kelebihan yang di
miliki oleh apache. Dalam tulisan kali ini saya akan mendokumentasikan hasil belajar
saya menggunakan session pada PHP dan MySQL. Mungkin pada tulisan kali ini sangat
newbies banget ya…(cos selama ini pegang PERL, bukan PHP he he he). Ada beberapa
hal yang harus kita perhatikan dalam membuat halaman login dengan menggunakan
session pada PHP dan MySQL, beberpa hal tersebut antara lain :1.Pastikan form login
adalah form dari server kita.

2.Amankan input text untuk user dan password,metoda dan format data.

3.Hindari penggunaan register global (untuk PHP v 4.2.0 keatas sdh disable).

4.Expired time dari login yang dilakukan.

5.Pastikan file yang tidak boleh diakses tidak dapat dipanggil secara langsung.

Berhubung udah mulai ngantuk, mungkin saya langsung to the point aja deh… Langkah-
langkahnya adalah sebagai berikut:

Jika anda mencoba dari komputer stand-alone, jalankan dulu webserver dan database
server anda. Untuk gampangnya, gunakan saja XAMPP

1. Database
Setiap user yang login akan dicek username dan passwordnya dari tabel user yang
terdapat pada database, dalam percobaan kali ini kita membuat database dengan
nama auth.

create database auth;

use auth;
create table users
(
id int auto_increment not null,
username varchar(20) not null,
password varchar(35) not null,
primary key(id)
);

Setelah itu isilah data pada tabel tbuser tersebut dengan username admin dan password
adminpass. Scriptnya adalah sebagai berikut.

insert into users values (’admin’,md5(’adminpass’));

Sekarang Anda sudah memiliki sebuah database db_test yang di dalamnya terdapat
sebuah tabel tbuser dan sudah ada satu row data dengan username = admin dan password
= adminpass dalam bentuk yang sudah di-hash dengan fungsi md5.

1. Setelah membuat database seperti langkah diatas, maka selanjutnya kita akan
mebuat tampilan halaman login dengan script HTML dibawah dengan
menggunkan metode post. Buat file login.html yang isinya sebagai berikut :
2. Setelah halaman login terbuat, saat nya kita membuat script PHP untuk
memproses hasil inputan pada halaman login. Sekarang mari kita buat script PHP
dengan nama lopro.php (lopro bukan sembarang nama, melainkan singkatan dari
login proses he… he… he…)

session_start();

$server = “localhost”; //ganti sesuai server Anda


$username = “root”; //ganti sesuai username Anda
$password = “”; //ganti sesuai password Anda
$db_name = “auth”; //ganti sesuatu nama database Anda

$db = mysql_connect($server,$username,$password) or DIE(”Connection to database


failed, perhaps the service is down !!”);
mysql_select_db($db_name) or DIE(”Database name not available !!”);

$login = mysql_query(”select * from users where (username = ‘” . $_POST[’username’] .


“‘) and (password = ‘” . md5($_POST[’password’]) . “‘)”,$db);
$rowcount = mysql_num_rows($login);
if ($rowcount == 1) {
$_SESSION[’username’] = $_POST[’username’];
header(”Location: securedpage.php”);
}
else
{
header(”Location: lopro.php”);
}
?>

Ehmmm biar lebih paham… mari kita bedah satu – satu script diatas, diawal script ada
session_start();.session_start() dimaksudkan untuk menginisialisasi suatu data session.
Dia akan membuat sebuah session baru atau melanjutkan session yang sudah ada
berdasarkan pada session yang sedang terjadi akibat dari pertukaran data session lewat
request GET, POST atau cookie. Setelah inisialisasi session terbentuk maka langkah
selanjutnya adalah melakukan koneksi dengan MySQL, jika koneksi dengan MySQL
sudah berhasil maka proses select ke table users untuk username dan password yang di
isikan pada halaman login.html

Jika username dan password dapat ditemukan lalu script akan mengarahkan user ke
halaman securedpage.php, sebaliknya jika username atau password salah maka user akan
diarahkan kembali ke halaman lopro.php.

Sekarang kita perlu membuat sebuah script atau dokumen lagi yaitu securedpage.php.
File securedpage.php adalah suatu halaman web yang merupakan halaman yang boleh
diakses atau dimasuki user yang sudah berhasil login dengan benar. Mengapa dinamakan
securedpage.php? Hal tersebut karena file securedpage.php nantinya tidak akan bisa
diakses langsung dari browser sebelum suatu user melakukan login dengan benar. Pada
halaman securedpage.php ini juga akan berisi link untuk logout sehingga session dari
user tersebut bisa hilang dan kemudian kembali ke halaman lopro.php. Berikut ini adalah
script dari file securedpage.php.

session_start();
if (!isset($_SESSION[’username’])) {
header(”Location: lopro.php”);
}
?>

secured page with session


logout

Simpan script di atas dengan nama securedpage.php. Kita lihat pada bagian atas dari
script terdapat suatu mekanisme untuk memeriksa apakah session yang bernama
‘username’ sudah ada atau belum. Jika belum ada maka secara otomatis user atau
pengunjung web tersebut akan diarahkan kembali ke halaman login di lopro.php.

Pada body halaman securedpage.php terdapat link untuk melakukan logout. Link tersebut
mengarah ke file logoutpage.php. Berikut ini adalah script untuk melakukan logout-nya.

unset($_SESSION[’username’]);
session_destroy();
header(”Location: lopro.php”);
?>
Simpan script di atas dengan nama logoutpage.php. Script tersebut digunakan untuk
menghapus atau menghancurkan data session Anda sehingga orang lain atau pengunjung
web lainnya tidak bisa melihat halaman securedpage.php yang sudah Anda akses dengan
username dan password Anda. Begitu session sudah di hapus dengan fungsi
session_destroy() maka langsung Anda akan diarahkan ke halaman login di lopro.php.

Letakkan semua file-file yang sudah Anda buat tadi pada folder yang menjadi root dari
web server Apache Anda dan kemudian Anda bisa coba script diatas untuk dijalankan
pada browser. Pastikan dulu semua service yang dibutuhkan sudah jalan terlebih dahulu,
yaitu service apache dan mysql. Untuk mencoba script-nya Anda bisa membuka browser
dan ketik http://localhost/lopro.php

http://tutor.web.id/artikel/login-dengan-menggunakan-php-dan-mysql/

Login, Session, dan Logout


December 17th, 2005 | Published in Web Programming | 2 Comments

Login dan logout merupakan proses yang hampir tiap kali kita temui sewaktu browsing.
Misalnya saja untuk cek e-mail atau masuk ke account di friendster, atau.. (saking
banyaknya, saya sampai tidak bisa menyebutkan satu persatu).

Sekarang saatnya kita mencoba membuat form login dan logout sendiri secara
sederhana. Menggunakan PHP & MySQL tentunya.

Langkah-langkahnya:
Jika anda mencoba dari komputer stand-alone, jalankan dulu webserver dan database
server anda. Untuk gampangnya, gunakan saja phptriad.
1. Database
Setiap user yang login akan dicek username dan passwordnya dari tabel user yang
terdapat pada database. Kita buat dulu databasenya:
Perintah yang digunakan:

• create database coba;


• use coba;
• create table users
(
id int auto_increment not null,
username varchar(20) not null,
password varchar(35) not null,
primary key(id)
);

jika sudah selesai, ketikkan perintah

• desc users;

maka akan tampil seperti berikut ini:

setelah itu, ketik perintah ini:

• INSERT INTO users (username, password) VALUES (‘test’,


md5(‘test’));

Perintah diatas digunakan untuk memasukkan nilai pada field username dan password,
untuk memastikannya, ketik perintah berikut:

• select * from users;

maka akan tampil:

password yang dimasukkan, menggunakan enkripsi md5. tulisan ‘test’ pada


password, diubah menjadi 32 character string.

2. login.html
Digunakan sebagai form login untuk user. Script-nya:

<html>
<head>
<title>Login </title>
</head>
<body>
<form method=”POST” action=”login.php”>
Username: <input type=”text” name=”username” size=”20″>
Password: <input type=”password” name=”password” size=”20″>
<input type=”submit” value=”Login” name=”login”>
</form>
</body>
</html>

3. login.php
file ini digunakan untuk memeriksa apakah username dan password yang dimasukkan
benar atau tidak.

<?PHP
//periksa apakah file ini tidak dipanggil secara langsung, jika dipanggil secara langsung
//maka user akan di kembalikan ke login.thml
if (!isset($username) || !isset($password)) {
header( “Location: http://domainanda/login.html” );
}
//melihat apakah form telah diisi semua atau tidak. Jika tidak, user akan dikembalikan ke
//halaman login.html
elseif (empty($username) || empty($password)) {
header( “Location: http://domainanda/login.html” );
}
else{
//mengubah username dan password yang telah dimasukkan menjadi sebuah variabel dan
meng-enkripsi password ke md5
$user = addslashes($_POST['username']);
$pass = md5($_POST['password']);

//variabel untuk koneksi ke database


$dbHost = “localhost”;
$dbUser = “databaseusernameanda”; //user yang akan digunakan pada database.
$dbPass = “passworddatabase”; //password dari username untuk database.
$dbDatabase = “coba”; //dari database yang dibuat tadi

//Melakukan koneksi ke database

$db = mysql_connect(”$dbHost”, “$dbUser”, “$dbPass”) or die (”koneksi gagal nih, cek


apakah variabel sudah benar apa belum”);

//memilih database
mysql_select_db(”$dbDatabase”, $db) or die (”Gagal memilih database”);

$result=mysql_query(”select * from users where username=’$user’ AND


password=’$pass’”, $db);
//melihat apakah username dan password yang dimasukkan benar
$rowCheck = mysql_num_rows($result);

//jika benar maka


if($rowCheck > 0){
while($row = mysql_fetch_array($result)){

//mulai session dan register variabelnya


session_start();
session_register(’username’);

//Memberitahu jika login sukses


echo ‘login berhasil..!!’;

//redirect ke halaman lain untuk lebih memastikan


header( “Location: loginok.php” );

}
else {

//jika $rowCheck = 0, berarti username atau password salah, atau tidak terdaftar di
database

echo ‘Invalid username or password, coba lagi deh.. ‘;


}
}
?>

4. loginok.php
Nama filenya agak aneh? Sebenernya gabungan dari dua kata, login dan ok. Artinya file
ini cuma akan diakses begitu username dan password telah valid dan session telah di
register.
Scriptnya kurang lebih:

<?php

//mulai session
session_start();

//cek lagi apakah session telah terdaftar untuk username tersebut


if(session_is_registered(’username’)){
//dan jika terdaftar
echo ‘Selamat Datang, session anda telah terdaftar. Dan hanya akan terhapus jika anda
melakukan logout.’;

}
else{

//jika tidak terdaftar, kembalikan user ke login.html


header( “Location: http://domainanda/login.html” );
}

?>

function session_start() tidak hanya digunakan untuk memulai session, tapi juga untuk
memastikan session itu berlanjut terus (tetap aktif). Session_start() dan
“if(session_is_registered()){…” harus diletakkan paling atas pada kode yang
dibuat, untuk mencegah user dikembalikan pada halaman login.

5. logout.php

<?php
//function start lagi
session_start();

//cek apakah session terdaftar


if(session_is_registered(’username’)){

//session terdaftar, saatnya logout


session_unset();
session_destroy();
}
else{

//variabel session salah, user tidak seharusnya ada dihalaman ini. Kembalikan ke login
header( “Location: http://domainanda/login.html” );
}
?>

karena session terdaftar, maka pada proses logout, kita perlu menghapus variabel pada
session tersebut dengan menggunakan function session_unset(). Dan untuk melengkapi
penghapusan data yang berkaitan dengan session tadi, gunakan session_destroy()

Gampang kan? Silahkan dicoba..!!


5. Autentikasi dengan Session
1. Pendahuluan
2. Cara Membuat atau Register Session
3. Cara Mengecek Session Telah Teregister
4. Cara Un-Register Session (Log Out)
5. Contoh Sederhana Session

1. Pendahuluan

Autentikasi adalah suatu mekanisme untuk mengatur hak akses suatu halaman web,
biasanya diawali dengan adanya proses login. Dimana user diminta menginput user id
dan password. Jika berhasil login anda berhak masuk ke suatu halaman, jika tidak..anda
tidak akan bisa masuk ke halaman tersebut

Session adalah sebuah varibel sementara yang diletakkan di server. Di mana PHP bisa
mengambil nilai yang tersimpan di server walaupun kita membuka halaman baru.
Biasanya session akan hilang jika anda menutup browser.

2. Cara Membuat atau Register Session

Cara membuat session adalah sebagai berikut :

1. Deklarasi awal kalau kita menggunakan session, yaitu menggunakan fungsi


session_start()
2. Set suatu nilai ke variabel $_SESSION

Contoh :

halaman1.php

<?php
session_start();

$_SESSION['namauser'] = "Desrizal";

echo $_SESSION['namauser'];

echo "<a href='halaman2.php'>Ke Halaman 2</a>";


?>

Catatan :

Kode session_start() harus diletakkan sebelum ada output apapun walaupun hanya spasi,
jadi sebaikanya selalu letakkan di bagian paling atas
3. Cara Mengecek Session Telah Teregister

Setelah kita me-registerkan variabel $_SESSION, maka untuk mengecek apakah session
telah diregister adalah dengan menggunakan fungsi isset().

Pada contoh di atas (halaman1.php), setelah kita me-register $_SESSION['namauser'],


kita akan ke halaman2.php

Di halaman2.php kita akan cek apakah variabel session telah di register, jika belum kita
stop membuka isi halaman2.php

halaman2.php

<?php
session_start();

if(!isset($_SESSION['namauser'])){
//jika session belum di set/register
die("Anda belum register kan session");
}

//jika sudah register kita lanjut


?>
<h2>Selamat Datang</h2>

<?php
echo $_SESSION['namauser'];
?>

Untuk melihat efeknya antara variabel $_SESSION sudah diregister atau belum, coba
anda tutup browser, lalu buka lagi browsernya, langsung buka halaman halaman2.php.
Tanpa membuka halaman1.php terlebih dahulu

4. Cara Un-Register Session (Log Out)

Setelah kita belajar me-register session, maka cara un-register session adalah dengan
menggunakan fungsi unset()

logout.php

<?php
session_start();

unset($_SESSION['namauser']);
?>