Login Dengan Username atau Email di PHP
Pada kesempatan sebelumnya Saya sudah membahas tentang bagaimana membuat halaman login multi user dimana pengguna/user yang ingin login harus menggunakan email dan password yang benar.
Lalu mungkin nantinya akan muncul pertanyaan – pertanyaan baru misalnya bagimana caranya pengguna bisa login dengan menggunakan email atau username ? Jadi jika ada pengguna menggunakan email ataupun username, mereka tetap bisa masuk.
Cara Mudah Membuat Login Dengan Username atau Email di PHP
Lalu mungkin nantinya akan muncul pertanyaan – pertanyaan baru misalnya bagimana caranya pengguna bisa login dengan menggunakan email atau username ? Jadi jika ada pengguna menggunakan email ataupun username, mereka tetap bisa masuk.
Cara Mudah Membuat Login Dengan Username atau Email di PHP
Untuk bisa membuat pengguna dapat login menggunakan username atau emailnya, caranya sebenarnya sangat mudah, kita bisa menggunakan operator logika php yaitu dengan menambahkan operator logika OR atau ||.
Operator or dan || akan mempunyai nilai yang benar jika salah satu dari nilai boolean bernilai benar, maka selain itu akan bernilai false. Jadi nanti Anda tinggal pilih apakah mau menggunakan OR atau ||
Sebelumnya Query untuk memeriksa username dan password didatabase adalah sebagai berikut :
Script login-proses.php
<?php
include('koneksi.php');
session_start();
if(isset($_POST['login'])){
$user = mysql_real_escape_string(htmlentities($_POST['email']));
$pass = mysql_real_escape_string(htmlentities(md5($_POST['password'])));
$sql = mysql_query("SELECT * FROM user WHERE email='$user' AND password='$pass'") or die(mysql_error()); //simpan variabel pilih user
if(mysql_num_rows($sql) == 0){ //jika tidak ditemukan
echo '<script language="javascript">alert("User tidak ada!"); document.location="index.php";</script>';
}else{ //jika ditemukan
$row = mysql_fetch_assoc($sql);
if($row['level'] == 1){ // admin berdasarkan level, jika level 1 berarti admin
$_SESSION['admin']=$user;
echo '<script language="javascript">alert("Anda berhasil Login Admin!"); document.location="admin/index.php";</script>';
}else{
if($row['level']==2){
$_SESSION['user']=$user; //berdasarkan kolom user
echo '<script language="javascript">alert("Anda berhasil Login Sebagai User!"); document.location="user/index.php";</script>';
}
}
}
}
?>
Maka nanti Anda rubah menjadi seperti berikut
Script login-proses.php
Kemudian bila nanti ingin menampilkan data usernya pun kita perlu menambahkan operator OR didalam query yang kita buat. Sebelumnya Query yang saya buat untuk menampilkan data user yang berhasil masuk adalah sebagai berikut
<?php
include('koneksi.php');
session_start();
if(isset($_POST['login'])){
$user = mysql_real_escape_string(htmlentities($_POST['email']));
$pass = mysql_real_escape_string(htmlentities(md5($_POST['password'])));
$perintah = "SELECT * FROM user WHERE (username='$user' OR email='$user') AND password='$pass'";
$sql=mysql_query($perintah) or die(mysql_error()); //simpan variabel pilih user
if(mysql_num_rows($sql) == 0){ //jika tidak ditemukan
echo '<script language="javascript">alert("User tidak ada!"); document.location="index.php";</script>';
}else{ //jika ditemukan
$row = mysql_fetch_assoc($sql);
if($row['level'] == 1){ // admin berdasarkan level, jika level 1 berarti admin
$_SESSION['admin']=$user;
echo '<script language="javascript">alert("Anda berhasil Login Admin!"); document.location="admin/index.php";</script>';
}else{
if($row['level']==2){
$_SESSION['user']=$user; //berdasarkan kolom user
echo '<script language="javascript">alert("Anda berhasil Login Sebagai User!"); document.location="user/index.php";</script>';
}
}
}
}
?>
Kemudian bila nanti ingin menampilkan data usernya pun kita perlu menambahkan operator OR didalam query yang kita buat. Sebelumnya Query yang saya buat untuk menampilkan data user yang berhasil masuk adalah sebagai berikut
<?php include('sesi-user.php'); ?>
<html>
<head>
<title>Area User | root93.co.id</title>
</head>
<body>
<div style="text-align:center">
<h2>User Area</h2>
<p><a href="index.php">Home</a> / <a href="../logout.php">Logout</a></p>
<p>Anda login sebagai <?php echo $_SESSION['user']; ?></p>
</div>
<?php
//testing query
include('../koneksi.php');
$user=$_SESSION['user'];
$perintah="SELECT * FROM user where email='$user'"; //pilih berdasarkan login emailnya
$query=@mysql_query($perintah,$koneksi); //buart query
$data=mysql_fetch_array($query); //pecah datanya
echo "Nama Saya: <b>$data[nama] </b>";
echo "<br/>Email Saya: <b>$data[email] </b>";
echo "<br/>Username Saya: <b>$data[username]</b>";
echo "<br/>level Saya: <b>$data[level] </b>";
echo "<br/>password Saya: <b> $data[password]</b>";
?>
</body>
</html>
Nanti Scriptnya diatas Anda rubah, nanti di filter berdasarkan username atau email, sehingga bila nanti pengguna menggunakan username atau email datanya akan ditampilkan, jika misal kita filter hanya berdasarkan data yang terdapat pada kolom email saja, maka kalau ada pengguna yang login dengan username datanya tidak akan ditampilkan
Maka nanti rubah menjadi seperti ini
<?php include('sesi-user.php'); ?>
<html>
<head>
<title>Area User | root93.co.id</title>
</head>
<body>
<div style="text-align:center">
<h2>User Area</h2>
<p><a href="index.php">Home</a> / <a href="../logout.php">Logout</a></p>
<p>Anda login sebagai <?php echo $_SESSION['user']; ?></p>
</div>
<?php
//testing query
include('../koneksi.php');
$user=$_SESSION['user'];
$perintah="SELECT * FROM user where (username='$user' OR email='$user')";
//pilih berdasarkan login emailnya
$query=@mysql_query($perintah,$koneksi); //buart query
$data=mysql_fetch_array($query); //pecah datanya
echo "Nama Saya: <b>$data[nama] </b>";
echo "<br/>Email Saya: <b>$data[email] </b>";
echo "<br/>Username Saya: <b>$data[username]</b>";
echo "<br/>level Saya: <b>$data[level] </b>";
echo "<br/>password Saya: <b> $data[password]</b>";
?>
</body>
</html>
Jadi kesimpulannya untuk dapat membuat login dengan menggunakan username atau password, maka nanti Anda cukup tambahkan username OR/|| email pada query yang bertugas untuk memeriksa username yang tersimpan di database
Wuduh .. Php ngerik.
ReplyDeleteNunpang lewat aja deh mas sambil nunhgu buka puasa :)
Mencoba belajar dengan perlahan nih PHP ini. Aku lagi belajar juga mas, masih pemula. Ajarin dong mas :)
ReplyDelete