Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

Membuat Form Login PHP Itu Mudah!

Kita sering menemui fitur login pada beberapa website yang
menyediakan fitur lebih yang bisa diakses namun mengharuskan user untuk
terlebih dahulu login. Pada artikel kali ini, kita akan belajar membuat sebuah form login menggunakan php dan mysql untuk database.

Untuk latihan, buat terlebih dahulu sebuah tabel pada database dan
beri nama user, dengan field-field seperti pada gambar di bawah ini :

Tabel User Form login

Setelah membuat tabel user pada database, insert data yang akan kita pakai untuk verifikasi pada saat user login nanti.

Berikutnya buat sebuah file index.php dan masukan code html di bawah ini :

<pre lang="html">

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table border="1">
<tr>
<td>username</td>
<td>:
<label>
<input type="text" name="txtUsername" id="txtUsername" />
</label></td>
</tr>
<tr>
<td>password</td>
<td>:
<label>
<input type="text" name="txtPassword" id="txtPassword" />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" />
</label></td>
</tr>
</table>
</form>

</pre>

Pada code html di atas, kita bisa lihat method yang digunakan adalah post dan kemudian di arahkan ke file proses.php. Beberapa textfield yang akan kita panggil pada file proses.php nanti adalah txtUsername dan txtPassword.

Kemudian buat sebuah file proses.php dan masukan code di bawah ini :


<pre lang="php">
<?php
$koneksi = mysql_pconnect("localhost", "root", ""); /* server, username, dan password */
mysql_select_db("latihan", $koneksi); /* nama database */

$username = mysql_escape_string($_POST["txtUsername"]);
$password = mysql_escape_string($_POST["txtPassword"]);

$checkDB = mysql_query("SELECT * FROM user where username = '$username' AND password = '$password'"); /* check username dan password yang diinput user pada database */
$jumlahData = mysql_num_rows($checkDB); /* menyimpan jumlah data yang ditemukan pada query di atas*/

if($jumlahData > 0)
{
echo "anda berhasil login";
}
else {
echo "username dan password salah";
}
?>
</pre>

Selamat mencoba !

source : http://www.magpieweb.com/2011/12/membuat-form-login-php-itu-mudah/

Tanggapan

  • Cuman melakukan pengecekan ya. Kalo bisa ditambahkan juga penyimpanan beberapa data penting pada session.
  • Betul kk ini cuma pengecekan pada database.. 

    Untuk menyimpan data pada session : 
    tambahkan 

    session_start();

    kemudian pada kondisi true tambahkan : 

    $_SESSION["username"] = $arrayDbKamu["username"];
  • Kalau form biasa tanpa upload tidak perlu encypte
  • edited December 2011

  • Kalau bisa sih di encrypt passwordnya (lebih baik one way encryption), pengalaman saya kalau sampai auditor IT ketemu password tidak di encrypt, langsung dijadikan finding ke manajemen. Biasanya sih jadi rusuh waktu meeting dengan manajemen :P
  • yonscun = yonscun lie kah ?
  • Yep, the same poor guy who lost his account.....damn.... :((
  • @atas,,,


    bruakakakaka,,, mana itu character warcraft lu,,, 
    :))
  • oh begitu ya terimakasih
  • kalau ditambah grup jadi multi user.. bukane lebih aman ??

    selain itu kalo pakai mysql injection itu masih bisa bobol apa ya ??
  • klo nampilkan data setelah login sesuai username n password d halaman web gimana?
    mohon ilmu ny
  • Setelah login umumnya sebuah variabel session akan dibuat (diatas ada dibahas dikit).

    nah dari session ini ketahuan kan user yang login (User ID). Beberapa data spesifik seperti nama user yang login dapat ditampilkan. Btw sebelum lanjut, yang dimaksud dengan "data" itu mau tampilkan apa saja?
  • kalo dari datatbase paling ya

    $username=$_SEESION['nama_var_username'];
    $passsword=$_Session['Nama_var_pswd'];
    mysql-query( "select * from nama_table where username='$username ' and password=''$password");

    kurang lebihnya gitu. kalo udah belajar aharuse paham.. 


    :))
  • mantapsss gan :D
  • <pre lang="html"> gan ini fungsinya buat apa? hehe
  • itu buat nulis script... yang ingin ditampilkan..
    dicoba aja langsung.. jadi tau bedanga...

    tulis <b>tebal</b>

    sama 

    <pre lang="html">
    <b>tebal</b>
    </pre>
  • ohhh iyya2 sorry gue newbie hehe
  • klo ditambahin retype password giman kodingnya???
  • kan dah login tu,, teruss halaman nya ditutupp...

    kemudian dibuka lagi indeknya..
    bagaimana caranya supaya gk login lagi dari awal..
    begitu di msukan halamn indek langsung masuk ke halaman tujuan
    soalnya kan dah login tadi...
  • di page indexnya kasih aja seleksi session atau bisa juga dengan cookie.

    if(!isset($_session['username']) && !isset($_session['password']))  
    {
    echo "anda harus login";
    exit;
    }
    #untested.

    jika false maka index bakal meluncur ke tujuan.
    jika true maka akan minta login dulu. 


  • kalau indeknya 1 tapi tujuan halamannya banyak..
    misal tujuannya.
    halaman manager.
    halaman kasir.
    halaman pegawai.
    dll.

    kalau cuma username dan password saja yang di cek.
    berarti bebas dongk masuk ke halaman lain.
    hanya dengan mengetik url tujuan sudah bisa masuk.


    bagaimana cara membentenginya..
    agar pemilik halaman kasir tidak bisa masuk ke halaman manager.
    begitu juga seterusnya.
  • Lebih baik menggunakan code multi user agar lebih aman, untuk codenya saya masih belajar :D
  • koikoi
    edited May 2012
    maksudnya ?

    lha yg diatas kan emang multi user ...
    daftar user nya disimpan di database ...

    kepriben laa kamsutna ... :))
  • haha,,, udah.. belajar php sama datatbase myql dulu. ntar mudah deh. hehe.. :-)
  • edited May 2012
    maaf kk" ane new bee,,, ane pernah buat yang seperti ini...
    just share... semoga bisa bermanfaat....

    <pre lang=''php">
    <html>
    <head></head>
    <body bgcolor='white'>
    <?

    $username=strip_tags($_POST['username']);


    $password=md5(strip_tags($_POST['password']));



    if($username&&$password)
    {
    $koneksi=mysql_connect("localhost","root","")or die ("Couldn't connect");
    $pilih_db=mysql_select_db("db_anggota")or die ("Couldn't FIND DB");
    $query="SELECT * FROM tbl_anggota WHERE username='$username' and password='$password'";
    $mysql_query=mysql_query($query);
    $numrows=mysql_num_rows($mysql_query);

    if($numrows !=0)
    {
    while($baris=mysql_fetch_assoc($mysql_query)){
    $dbusername=$baris['username'];
    $dbpassowrd=$baris['password'];
    }
    if($username==$dbusername&&$password==$dbpassowrd)
    {
    //login here
    echo "<center><h3><font color='yellow'>Selamat datang ... <div id='welcomeuser'>".$username." !</div> Anda berhasil login !!!<br> Silahkan 
    klik <a href='index.php?file=network'><div id='welcomenet'>Network</div></a> untuk masuk ke halaman forum alumni <br>
    Terimakasih !<font></h3</center>";
    $_SESSION['username']=$username;

    }
    else
    echo "<font color='yellow' size='20'>username ini tidak aktif, atau periksa capslock loe broo....</font>";
    }
    else
    die ("<font color='yellow' size='20'>Periksa lagi username dan password loe bro!</font>");
    }

    else
    {
    if($_SESSION['username'])
    {
    echo '<center><h1><br><br><br><font color=\'yellow\'>Loe udah login Bro....</font></h1></center>';
    }
    else
    echo '<center><h1><br><br><br><font color=\'yellow\'>Gak boleh ada kolom yang kosong Bro....</font></h1></center>';
    }

    ?>
    </body>
    </html>
    </pre>

    oiya apakah ini aman dari serangan sql injection kk?
    mohon pencerahan...
    livenya bisa di lihat disini.....


    :)>-
  • koikoi
    edited May 2012
    $password=md5(strip_tags($_POST['password'])); ... kelewat paranoid + useless

    bertele-tele ... (gw kagak bisa menemukan sinonim yg pas)
  • edited May 2012
    @koi...
    iya itu saya lagi coba padahal bisa hanya menggunakan
    $password=md5($_POST['password']);
    itu aja kan yah?
    maaf maklum baru belajar alias new bi..
    hehehe...
    jadi aku gabung"in aja deh ckckckck...
    tapi thanks buat komentnya ,,,
    sinonim itu juga bagus mas...

    :D
  • kalau udah berhasil login itu kemana lagii..??????????
  • Ninbrung ya,,

    Kalo berhasil log in kan ada proses simpen session.
    Di session kita simpan data-data yang berhubungan dengan user misal : kode user, posisi/jabatan, kode area, dll
    Dari data-data itu kita bisa mem-filter data yang ditampilkan, action yang boleh dilakukan, link-link yang dimunculkan.
    Tentunya ada tabel tambahan untu mengatur 'user-user bisa ngapain aja"

    Gimana kalo user mengakses halaman dengan ngetik url nya?
    Setiap halaman harus ada proses cek security, pertama baca session, kalo session belum ada arahkan ke halaman login. Kalo udah ada ya tinggal cek bandingkan data user di session dengan tabel security,
    apakah user punya akses, apakah  ada action yang boleh dilakukan, apakah ada link yang bisa diakses dll...

    Lam kenal,

  • Gan mau nanya nih, gunanya mysql_escape_string buat apa ya ?
  • <tr>
    <td><label for="nama_lengkap">Nama Lengkap</label></td>
    <td><input id="nama_lengkap" type="text" /></td>
    </tr>
    klu bikin form pake script ini,,, label for untuk apa ya?
    mohon bantuannya
  • edited December 2012
    berhubung banyak pertanyaan yg semestinya tidak ditanyakan di thread ini,
    dan semestinya ditanyakan dengan membuat topik baru sendiri
    maka thread ini saya kunci

    silakan kalau ada yg mau bertanya membuat topik baru di kamar :

    http://www.diskusiweb.com/categories/tanya-jawab
This discussion has been closed.