Postingan lainnya
Tidak bisa login di pc lain atau browser yang berbeda dengan username dan password yang sama
Halo kak/master mau nanya, saya ada web dan proses login ketika saya sudah login di browser A (Mozilla) dan saya login lagi di browser B (Chrome) Menggunakan Username dan Password yang sama bisa, bagaimana cara agar proses tersbut tidak bisa ketika udah login dan login lagi di tempat lain. Terima kasih
5 Jawaban:
saat login buat role baru, misal pas login insert ke table is_login = true, saat logout ganti jadi false, saat login di pc lain, check apakah is_login itu true atau false, jika is_login nya true, berarti gk bisa login di pc lain
Tanggapan
Boleh minta liat contoh scriptnya kak? aku udah buatin di tabel status ketika login nilainya =1 dan ketika logout nilainya= 0 cman belum berhasil. terima kasih
<pre> // cuma contoh ya, habisnya ane gk tau kodingan agan kaya gimane // biasanya pas mau login di cek dulu apakah si username ama si password itu ada di table user atau gk + dia udh login atau blom $query = mysqli_query($koneksi, "SELECT * from user where username = $username AND password =$password AND login_status=0"); if($query->num_rows > 0){ // jika data ada; // kodingan buat session // disini tambahin update login_status ke table $query = mysqli_query($koneksi, "UPDATE users set login_status=1 where username = '$username' and password = '$password'"); }else{ // redirect biasanya } </pre>
Tanggapan
gan itu ada codinganku mohon di koreksi gan, agar tidak bisa login di tempat lain. terima kasih banyak atas bantuannya
itu script login aku gan
<pre> <?php session_start(); include'../../model/db_connection.php';
$username = mysql_real_escape_string(trim($_POST['username']));
$password = mysql_real_escape_string(trim($_POST['password']));
$result = mysql_query("select * from userlogin where username = '{$username}'", $db_local);
$row = mysql_fetch_array($result);
$jml = mysql_num_rows($result);
$id_user = $row['id'];
$statusnya = $row['aktif'];
$nama = $row['nama'];
$lastlogin = $row['lastlogin'];
$hakakses = $row['hakakses'];
$grup = $row['grup'];
$ip = getRealIpAddr();
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
if ( $password == $row['password'] && $password != " " && !empty($password))
{
$today = date("Y-m-d H:i:s");
$login_us = $user;
$hak_akses = $akses_groups;
$_SESSION['id_s'] = $id_user;
$_SESSION['user_s'] = $username;
$_SESSION['nama_s'] = $nama;
$_SESSION['lastlogin_s'] = $lastlogin;
$_SESSION['hakakses_s'] = $hakakses;
$_SESSION['status_s'] = 1;
$_SESSION['LAST_ACTIVITY_s'] = time();
$session_id = md5(round(microtime(true)));
$_SESSION['sess_id'] = $session_id;
//query update data user
//mysql_unbuffered_query("UPDATE userlogin SET status=1, lastlogin='$today', lastactivity = '$today' WHERE id=$id_user", $db_local);
if($row['status'] == "1"){
mysql_query("UPDATE userlogin_history SET wkt_out='$today', ket='reLogin' WHERE session_id='".$row['session_id']."' and session_id is not null");
}
mysql_unbuffered_query("INSERT INTO userlogin_history (session_id,user,ip,tanggal) VALUES ('$session_id','$username','$ip','$today')", $db_local);
//fifo
if(1)
{
//query sequensial sekarang,berdasarkan alokasi urutan
$query_fifo = "SELECT max(`alokasi_urutan`) max FROM userlogin WHERE grup = '$grup' AND status = 1 ";
$eksekusi_fifo = mysql_query($query_fifo, $db_local);
if(mysql_num_rows($eksekusi_fifo))
{
while($data_fifo = mysql_fetch_array($eksekusi_fifo, MYSQL_ASSOC))
{
$max_number = $data_fifo['max'];
$max_number_current = $max_number + 1;
}
}
else
{
$max_number_current = 1;
}
mysql_unbuffered_query("UPDATE userlogin SET status=1, lastlogin='$today', lastactivity = '$today', alokasi_urutan = '$max_number_current', session_id='$session_id' WHERE id=$id_user", $db_local);
}
//echo "UPDATE userlogin SET status=1, lastlogin='$today' WHERE id=$id_user";
//session_register('$username');
//print_r($_SESSION);
//header("location:../dashboard/netbro2.php");
//header("location:../dashboard/netbro.php");
header("location:../../view/dashboard/dashboard.php");
}
elseif( $statusnya != '1')
{
echo "&lt;script&gt;alert('I'm Sorry !! Contact Administrator');
history.go(-1);
&lt;/script&gt;";
}
else {
echo "&lt;script&gt;alert('Login Failed...Please Cek Your Username and Password');
history.go(-1);
&lt;/script&gt;";
}
?> </pre>
<pre> if ( $password == $row['password'] && $password != " " && !empty($password)) </pre> harusnya ditambahin lagi jadi <pre> if ( $password == $row['password'] && $password != " " && !empty($password) && $row['status'] == 0) </pre> jadi si user status loginnya harus 0 (sedang tidak login) agar bisa login
Tanggapan
Solved gan terima kasih banyak, maaf gan mau nanya lagi. case tadi udah solved tapi ketika udah login statsunya=1 terus tiba2 browser yg di gunakan di pakai tiba2 close atau pc mati. dan status msih 1 brarti dia tetap ga bisa login gan, terima kasih
itu gimana ya gan solusinya?
kalo mau juga sessionnya di simpen di cookie, jadi walaupun pc mati, browser ke close, session loginnya masih ada di cookie
jadi mau gk mau si user harus logout dengan baik dan benar, itu cara gampangnya
cara membuat agar sessionnya tersimpan di cookie gimana ya mas?
mohon bantuannya mas
baca baca ajh disini https://www.w3schools.com/php/php_cookies.asp || pelajari konsep cookie kaya gimana, kalo buat pertama kali emang agak pusing sih
kalau di implementasikan ke scriptku yg diatas gimana tuh gan? terima kasih banyak mau meluangkan waktunya gas
setor $_SESSION ganti jadi cookies ajh make metode setcookies, buat check session ganti make $_COOKIE['nama_sessionnya']
Kalo udh selesai baca bacanya coba liet <a href='https://github.com/hendri18/Very-Simple-Login-PHP-Cookies/blob/master/index.php'>ini</a> , itu ane yg buat, kalo ada yg gk ngerti comment ajh