Cara Membuat Form Daftar, Login dan Logout dengan PHP MySQL – Dalam pembuatan website tentunya memerlukan sebuah form, baik untuk menentukan member atau admin.

Membuat Database MySQL dengan phpMyAdmin

Terlebih dahulu buatlah database, dalam contoh ini saya menggunakan phpMyAdmin.

  • Buat database dengan nama latihan”.
    Cara Membuat Form Daftar, Login dan Logout dengan PHP MySQL
  • Buat tabel dengan nama “user” dan isikan 3 untuk jumlah kolom yang akan dibuat.
    Cara Membuat Form Daftar, Login dan Logout dengan PHP MySQL
  • Kemudian isikan ke 3 kolom yang telah dibuat tadi seperti berikut :
    Gambar Cara Membuat Form Daftar, Login dan Logout dengan PHP MySQL

  • Jika sudah silahkan tekan tombol save untuk menyimpan field yang telah kita isikan.

Apabila langkah diatas telah dilalui berati database telah selesai dibuat dan siap digunakan. Langkah berikutnya adalah membuat form dan proses PHP ke database MySQL.
Disini diperlukan beberapa file yang harus dibuat.

  1. koneksi.php
  2. index.php
  3. daftar.php
  4. prosesdaftar.php
  5. login.php
  6. proseslogin.php
  7. logout.php

Sebelum ke pembuatan form daftar dan login saya minta untuk membuat file koneksi.php untuk menghubungkan ke database, dengan kode dibawah ini.

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "latihan";
$konek = mysql_connect($host, $user, $pass) or die('Koneksi Gagal! ');
mysql_select_db($db);
?>

Pertama buatlah file dengan nama index.php dimana file ini akan ditampilkan ketika login sukses, isikan dengan kode dibawah :

<?php 
session_start();
if (!isset($_SESSION['username'])) {
	header('location:login.php');
} else {
	$username = $_SESSION['username'];
}
require_once("koneksi.php");
$query = mysql_query("SELECT * FROM user WHERE username = '$username'");
$hasil = mysql_fetch_array($query);
?>
<center>
	<?php echo "<h2>Selamat Datang, $username</h2>"; ?><a href="logout.php"><b>Logout</b></a>
</center>

Buatlah file dengan nama daftar.php dan isikan dengan code dibawah ini.

<?php 
session_start();
if (isset($_SESSION['username'])) {
	header('location:index.php');
}
?>
<center>
	<form action="prosesdaftar.php" method="post">
		<table>
			<tbody>
				<tr>
					<td colspan="2" align="center">
						<h1>Daftar Baru</h1>
					</td>
				</tr>
				<tr>
					<td>Username</td>
					<td>: <input name="username" type="text" /></td>
				</tr>
				<tr>
					<td>Password</td>
					<td>: <input name="password" type="password" /></td>
				</tr>
				<tr>
					<td colspan="2" align="right"><input type="submit" value="Daftar" /> <input type="reset"
							value="Batal" /></td>
				</tr>
				<tr>
					<td colspan="2" align="center">Sudah Punya akun ? <a href="login.php"><b>Login</b></a></td>
				</tr>
			</tbody>
		</table>
	</form>
</center>

Sekarang buat file prosesdaftar.php untuk melakukan proses yang diminta pada file daftar.php.

<?php
require_once("koneksi.php");
$username = $_POST['username'];
$pass = $_POST['password'];
$cekuser = mysql_query("SELECT * FROM user WHERE username = '$username'");
if (mysql_num_rows($cekuser) <> 0) {
	echo "Username Sudah Terdaftar!";
	echo "<a href='daftar.php'>&amp;laquo; Back</a>";
} else {
	if (!$username || !$pass) {
		echo "Masih ada data yang kosong!";
		echo "<a href='daftar.php'>&amp;laquo; Back</a>";
	} else {
		$simpan = mysql_query("INSERT INTO user(username, password) VALUES('$username','$pass')");
		if ($simpan) {
			echo "Pendaftaran Sukses, Silahkan <a href='login.php'>Login</a>";
		} else {
			echo "Proses Gagal!";
		}
	}
}
?>

Selanjutnya adalah membuat file login.php dengan kode dibawah.

<?php 
session_start();
if (isset($_SESSION['username'])) {
	header('location:index.php');
}
require_once("koneksi.php");
?>
<center>
	<form action="proseslogin.php" method="post">
		<h1>Masuk</h1>
		<table>
			<tbody>
				<tr>
					<td>Username</td>
					<td>: <input name="username" type="text" /></td>
				</tr>
				<tr>
					<td>Password</td>
					<td>: <input name="password" type="password" /></td>
				</tr>
				<tr>
					<td colspan="2" align="right"><input type="submit" value="Login" /> <input type="reset"
							value="Batal" /></td>
				</tr>
				<tr>
					<td colspan="2" align="center">Belum Punya akun ? <a href="daftar.php"><b>Daftar</b></a></td>
				</tr>
			</tbody>
		</table>
	</form>
</center>

Agar file login dapat berjalan buatlah file proseslogin.php dengan kode dibawah.

<?php 
session_start();
require_once("koneksi.php");
$username = $_POST['username'];
$pass = $_POST['password'];
$cekuser = mysql_query("SELECT * FROM user WHERE username = '$username'");
$jumlah = mysql_num_rows($cekuser);
$hasil = mysql_fetch_array($cekuser);
if ($jumlah == 0) {
	echo "Username Belum Terdaftar!";
	echo "<a href='login.php'>? Back</a>";
} else {
	if ($pass <=> $hasil['password']) {
		echo "Password Salah!
";
		echo "<a href='login.php'>&amp;laquo; Back</a>";
	} else {
		$_SESSION['username'] = $hasil['username'];
		header('location:index.php');
	}
}
?>

Dan yang terakhir adalah membuat file logout.php untuk menghapus session yang telah digunakan, isi dengan kode dibawah.

<?php
session_start();
unset($_SESSION['username']);
?>
<h2>Anda telah berhasil logout..</h2>
Silahkan klik <b>disini</b> untuk login kembali

Pada Cara Membuat Form Daftar, Login dan Logout dengan PHP MySQL ini digunakan fungsi session dan method POST. Baca juga Fungsi dan Perbedaan Method POST dan GET pada PHP.

392 COMMENTS

  1. mas di proses login yang
    nggak bisa
    jadinya
    Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:XAMPPhtdocsadminproseslogin.php on line 7
    Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:XAMPPhtdocsadminproseslogin.php on line 8
    Username Belum Terdaftar!
    &laquo; Back

  2. Warning: mysql_connect(): Access denied for user ‘root’@’localhost’ (using password: NO) in /home/u462929255/public_html/koneksi.php on line 6 Koneksi Gagal!
    kesalahan di koneksi.php kenapa tuh gan ?
    nih isi line 6 nya
    $konek = mysql_connect($host, $user, $pass) or die (‘Koneksi Gagal! ‘);

  3. Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/u851260121/public_html/prosesdaftar.php on line 6 Proses Gagal!

    • Kesalahan terjadi karena script tidak bisa menemukan isi tabel dari database.
      Kemungkinan:
      1. Salah script, perhatikan sebelum baris ke 6, syarat dari isi tabel yang mau diambil. Perhatikan juga penulisan field2 pada tabel.
      2. Jika script telah dicoba dan berjalan lancar di localhost, tetapi bermaslaah di hosting, perhatikan versi PHP dari server local dg versi PHP di server hosting

        • $host = “localhost”; <- hostnamenya, $user = "root"; <- username mysql, $pass = ""; <- password mysql, $db = "latihan"; <- nama databasenya, $konek = mysql_connect($host, $user, $pass) or die ('Koneksi Gagal! '); <- untuk menghubungkan php ke database, jika gagak maka yang akan tampil adalah "Koneksi Gagal!", mysql_select_db($db); <- ini perintah untuk memilih database yang digunakan.

  4. Apabila langkah diatas telah dilalui berati database telah selesai dibuat dan siap digunakan. Langkah berikutnya adalah membuat form dan proses PHP ke database MySQL.
    maksud ny apa??
    kolom ane udh jdi tpi kg tau link ny -_-
    tolong penjelasan ny gan di mana taro
    koneksi.php
    index.php
    daftar.php
    prosesdaftar.php
    login.php
    proseslogin.php
    logout.php

  5. kok seperti ini yah pas di klick index.phpnya ?
    Warning: mysql_connect(): Access denied for user ‘marve’@’localhost’ (using password: YES) in /home/u843027118/public_html/koneksi.php on line 6 Koneksi Gagal!

  6. Warning: mysql_connect(): Access denied for user ‘root’@’localhost’ (using password: NO) in /home/u691054298/public_html/koneksi.php on line 6 Koneksi Gagal!

  7. Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/u691054298/public_html/proseslogin.php on line 7 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u691054298/public_html/proseslogin.php on line 8 Username Belum Terdaftar!
    &laquo; Back
    jadi gini

    • Mantab jQuery nya. Untuk CSS nya bisa disesuaikan sendiri. Itu lupa harusnya di logout.php di kasih header redirect ke home login lagi, biar otomatis setelah logut kembali ke home.

  8. bang? ini kok begini ya :/
    Warning: mysql_connect(): Access denied for user ‘root’@’localhost’ (using password: NO) in /home/u868095046/public_html/koneksi.php on line 6 Koneksi Gagal!
    ——–
    Itu kenapa bang 🙁

  9. Parse error: syntax error, unexpected T_LNUMBER in /home/u857966335/public_html/prosesdaftar.php on line 6
    Kenapa boz ??
    Punya akun FB gak ??
    atau contoh hasilnya ??

  10. kenapa pas prosesdaftar.php dijalankan hasilnya:
    0) { echo “Username Sudah Terdaftar!
    “; echo “&laquo; Back”; } else { if(!$username || !$pass) { echo “Masih ada data yang kosong!
    “; echo “&laquo; Back”; } else { $simpan = mysql_query(“INSERT INTO user(username, password) VALUES(‘$username’,’$pass’)”); if($simpan) { echo “Pendaftaran Sukses, Silahkan Login”; } else { echo “Proses Gagal!”; } } } ?>

  11. Warning: require_once(koneksi.php): failed to open stream: No such file
    or directory in /home/u457371970/public_html/latihan/login.php on line 5
    Fatal error: require_once(): Failed opening required ‘koneksi.php’
    (include_path=’.:/usr/lib/php’) in
    /home/u457371970/public_html/latihan/login.php on line 5
    itu kenapa

  12. Warning: require_once(koneksi.php): failed to open stream: No such file
    or directory in /home/u457371970/public_html/latihan/login.php on line 5
    Fatal error: require_once(): Failed opening required ‘koneksi.php’
    (include_path=’.:/usr/lib/php’) in
    /home/u457371970/public_html/latihan/login.php on line 5 kenapa broooooo

  13. Kalau melihat web.agan tertarik banget gan. pengen buat form registrasi, login, n logout. tapi jadi persoalan sy tidak tahu menahu persoalan web. saya sudah beli hosting dan domain. saya masih bingung untuk membuat ke7 file diatas (tidak tahu lokasi dimana saya membuat file tersebut) saya pake CMS WP. di hosting pilih file manager > …. ? bingung apakah saya buat folder baru atau buat di folder di public_html ? mohon jawabannya ya min. kemudian jika semua langkah diatas selesai bagaimana cara menampilkannya di website saya. sebagai contoh lihat di sudut kanan atas di web ini (http://id.forums.wordpress.org/topic/tanya-cara-membuat-form-login-dan-register-pada-forum) ? Mohon pencerahannya ya, Maklum pertanyaannya Nuwbi sekali karena memang saya masih Nuwbi gan. 😀

  14. Kalo Ini Kenapa Bang :
    Warning: mysql_connect(): Access denied for user ‘shola’@’localhost’ (using password: YES) in /home/u914945844/public_html/koneksi.php on line 6 Koneksi Gagal!

  15. Anda Ingin Bebas Finansial..??
    Ingin Uang Mengalir Terus ke Rekening Anda..?? Apakah Anda
    Ingin Memiliki Penghasilan Tanpa Batas..?? Ingin Merubah Hidup Anda Saat ini
    Juga..??
    INILAH SOLUSI TEPAT UNTUK ANDA, Memperkenalkan SOFTWARE
    PENAMBAH SALDO REKENING
    Temukan Info Selengkapnya Disini :
    http://goo.gl/nh8Y47
    081273339299
    Terimakasih

  16. Mas kenapa ko proses loginnya gak mau langsung redirect ke file yang dituju ? salah dimana ya mas ? ketika login terus langsug kosong layarnya, gak otomatis ke file yg dituju,

  17. Warning: mysql_connect(): Access denied for user ‘shola’@’localhost’ (using password: YES) in /home/u750238856/public_html/koneksi.php on line 6 Koneksi Gagal!
    Knp Ya?

  18. Warning: mysql_num_rows() expects parameter 1 to be resource, boolean
    given in /home/u608065732/public_html/prosesdaftar.php on line 6
    Proses Gagal!
    Gimana caranya tuh!!

  19. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:xampphtdocsAL-AMANprosesdaftar.php on line 6
    Proses Gagal!
    past daftar gtu terus gan

    • maaf y, pengen share dikit, kalau pada saat daftra gagal terus itu cuba di cek lagi panggalan code pada proses daftarnya, pasti ada yang salah atau kurang ataupun kelebihan dalam penulisan. 🙂

  20. mas bro,, ko gagal trus pas mau loginnya. keluar sintak begini
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:xampphtdocslatihanindex.php on line 9
    Selamat Datang, admin Logout
    mhon pencerahanya mas bro,,,

  21. “Sebelum ke pembuatan form daftar dan login saya minta untuk membuat file koneksi.php untuk menghubungkan ke database, dengan kode dibawah ini.
    #code#PiZsdDs/cGhwPGJyIC8+CiRob3N0ID0gImxvY2FsaG9zdCI7PGJyIC8+CiR1c2VyID0gInJvb3QiO”
    mau di suruh ganti user atau password database yang benar ya nggak bakal nemu 😛 masalahnya kode koneksi.php yang di kasih di encrypt 😛 cara ganti nya gemana dong kalo di encrypt 😛

  22. $host = “localhost”;
    $user = “root”;
    $pass = “”;
    $db = “demo”;
    $konek = mysql_connect($host, $user, $pass) or die (‘Koneksi Gagal! ‘);
    mysql_select_db($db);

  23. Parse error: syntax error, unexpected ‘logout’ (T_STRING), expecting ‘,’ or ‘;’ in C:xampphtdocsbelajar_phpindex.php on line 20
    Begitu errornya.
    Terus itu kode koneksi.php seperti itukah?

  24. mau tanya kalau membuat supaya kalo mau ngeakses koneksi, logout, dll itu gimana yak? kecuali register. jadi orang lain cuman bisa ngeakses yang register..

  25. ijin kenyot gan.. hahaayy, bytheway, artikel ente membantu banget, apalagi buat orang newbie.. thank u so much

  26. gan ini error kenap ya ? Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:xampphtdocstugasprosesdaftar.php on line 6
    Proses Gagal!

  27. mau tanya gan ,kenapa pada saat log in ,password salah terus , padahal email dan password sudah terdaftar dan sudah masuk database, mohon pencerahan 🙂

  28. bos,,kalo field nya banyak harus saya pake berarti di phpmyadminnya harus saya sesuaikan ya ?dan di file lain harus saya tambahkan sesuai dengan kebutuhan ya ?

  29. prosesdaftar.php dan proseslogin.php penulisan nya ada yang salah gak?
    kok ada peringatan ada salah penulisan saat di di jalankan?
    padahal sudah di ketikan sesuai dengan postingan di atas..
    beri penjelasan ya!!

  30. bos… klo kayak gini gmana?
    “Cannot modify header information – headers already sent by (output started at C:xampphtdocskpproseslogin.php:9) in C:xampphtdocskpproseslogin.php on line 28”

  31. Koneksi dengan MySQL berhasil
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:xampphtdocscrmotentifikasi.php on line 8
    Login Berhasil. Kalau begini bagaimana gan..??????????

  32. Parse error: syntax error, unexpected ‘;’ in /home/silentchild/public_html/admin/prosesdaftar.php on line 5
    kenapa gan?

  33. Bang, ini membantu sekali ya tapi masih ada satu kekurangan, ini nih -> if(mysql_num_rows($cekuser) <> 0) { di line 5 prosesdaftar.php kira2 kenapa ya? Mohon bantuannya ya.
    Btw amazing post, very like it tbh.

      • proseslogin.php & prosesdaftar.php bang yang nggak bisa padahal udah step by step sama persis sama nama database, field tabel dll 🙁
        proseslogin.php errornya gini Parse error: syntax error, unexpected ‘login’ (T_STRING), expecting ‘,’ or ‘;’ in C:xampphtdocscustomerproseslogin.php on line 10
        prosesdaftar.php yang ini -> if(mysql_num_rows($cekuser) 0) { di line 5
        Makasih banyak bang ditunggu answernya 🙂

      • om, pas daftar error begini
        Parse error: syntax error, unexpected ‘;’ in C:xampphtdocslatihanprosesdaftar.php on line 5

    • untuk buat file php bisa pakai dreamweaver atau pun notepad++ tapi ketika penyimpanan ekstensi filenya harus diberi .php contohnya nama file nya index.php

  34. nih error gan
    Parse error: syntax error, unexpected ‘;’ in C:xampphtdocsPerpusmultiprosesdaftar.php on line 5
    mohon bantuannya donk….

  35. mas cara meletakkan file
    koneksi.php
    index.php
    daftar.php
    prosesdaftar.php
    login.php
    proseslogin.php
    logout.php
    nya dimana ya mohon bantuannya mas?

  36. kalau program database nya kayak gini
    } else {
    echo “Proses Gagal!”;
    }
    }
    }
    ?>
    ni cuman bisa simpan 1 user di database phpmyadmin…??

  37. ini knapa kak
    Fatal error: Call to undefined function mysql_connect() in D:xamppinhtdocstbkoneksi.php on line 6

  38. gan, itu satu baris kode yg diatas tulisan “Buatlah file dengan nama daftar.php dan isikan dengan code dibawah ini.” jd satu file dgn index.php ?

  39. Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:xampphtdocsformloginkoneksi.php:6 Stack trace: #0 C:xampphtdocsformloginlogin.php(4): require_once() #1 {main} thrown in C:xampphtdocsformloginkoneksi.php on line 6
    kalo seperti ini, gmn bang?

  40. proses loginnya error um muncul kaya gini
    Parse error: parse error, expecting `’,” or `’;” in C:xampphtdocsdinamisAdminNew folderproseslogin.php on line 10

  41. kalo kaya di bawah ini salah apa nya yaa.
    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:xampphtdocslatihankoneksi.php:5
    Stack trace:
    #0 C:xampphtdocslatihanindex.php(5): require_once()
    #1 {main}
    thrown in C:xampphtdocslatihankoneksi.php on line 5

  42. masnya kenapa waktu login ngisi username dan password waktu di klik login malah muncul password salah?padalan sudah cocok dengan data yang saya buat dan cocok dengan databaase saya?
    mohon bantuanya dan terimakasih sebelumnya atur nuhun…

    • coba buka file proseslogin.php. pada baris 12 ganti ” dengan ‘!=’. Hilangkan petik satunya. semoga berhasil

  43. mas mau tanya kenapa muncul error seperti ini ya :
    Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:xampphtdocsloginkoneksi.php:1 Stack trace: #0 C:xampphtdocsloginlogin.php(4): require_once() #1 {main} thrown in C:xampphtdocsloginkoneksi.php on line 1

  44. gan ini salah di mana ?
    if($pass $hasil[‘password’])
    Parse error: syntax error, unexpected ‘>’ in C:xampphtdocsLoginproseslogin.php on line 15

  45. Mas kenapa saya login gak bisa ? padahal saya gak isi passwordnya kenapa gak bisa login ya ? mohon pencerahanya mastah.
    Terus database nya disaya kok gaada ya saya cari di locahhost.phpmyadmin malah adanya tulisan phpmyadmin yah ?

  46. Mas ini dimana ya error nya
    Parse error: syntax error, unexpected’daftar'(T_STRING), expecting’,’ or ‘;’ in C:xampp9htdocsaprosesdaftar.php on line 7

  47. saya adalah laki-laki tulen normal tertarik juga dengan lawan jenis,saya tertarik dengan php,html,css,java script maupun java dan saya pun penyanyang.saya sering mandi,makan sering,saya pun tidur siang dan malam…

  48. Satu masalh lagi sya punya login kok tdk bisa padahal saya punya username dan pswrd saya isinya admin tapi tidak konek eh malah alert tidak lodin ke admisiatrator

LEAVE A REPLY

Please enter your comment!
Please enter your name here