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

avatar Mantofani
@Mantofani

60 Kontribusi 3 Poin

Diperbarui 4 tahun yang lalu

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

avatar driyan
@driyan

193 Kontribusi 109 Poin

Dipost 4 tahun yang lalu

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-&gt;num_rows &gt; 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>

avatar driyan
@driyan

193 Kontribusi 109 Poin

Dipost 4 tahun yang lalu

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> &lt;?php session_start(); include'../../model/db_connection.php';

$username = mysql_real_escape_string(trim($_POST[&#039;username&#039;]));
$password = mysql_real_escape_string(trim($_POST[&#039;password&#039;]));

$result = mysql_query(&quot;select * from userlogin where username = &#039;{$username}&#039;&quot;, $db_local);
$row = mysql_fetch_array($result);	
$jml = mysql_num_rows($result);
$id_user = $row[&#039;id&#039;];
$statusnya = $row[&#039;aktif&#039;];	
$nama = $row[&#039;nama&#039;];
$lastlogin = $row[&#039;lastlogin&#039;];
$hakakses = $row[&#039;hakakses&#039;];
$grup = $row[&#039;grup&#039;];

$ip = getRealIpAddr();

function getRealIpAddr()
{
	if (!empty($_SERVER[&#039;HTTP_CLIENT_IP&#039;]))   //check ip from share internet
	{
	  $ip=$_SERVER[&#039;HTTP_CLIENT_IP&#039;];
	}
	elseif (!empty($_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;]))   //to check ip is pass from proxy
	{
	  $ip=$_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;];
	}
	else
	{
	  $ip=$_SERVER[&#039;REMOTE_ADDR&#039;];
	}
	return $ip;
}

	
if ( $password == $row[&#039;password&#039;] &amp;&amp; $password != &quot; &quot; &amp;&amp; !empty($password))
{			
    $today = date(&quot;Y-m-d H:i:s&quot;);
	$login_us = $user;
	$hak_akses = $akses_groups;
	$_SESSION[&#039;id_s&#039;] = $id_user;
	$_SESSION[&#039;user_s&#039;] = $username;		
	$_SESSION[&#039;nama_s&#039;] = $nama;
	$_SESSION[&#039;lastlogin_s&#039;] = $lastlogin;
	$_SESSION[&#039;hakakses_s&#039;] = $hakakses;
	$_SESSION[&#039;status_s&#039;] = 1;
	$_SESSION[&#039;LAST_ACTIVITY_s&#039;] = time();
	$session_id = md5(round(microtime(true)));
	$_SESSION[&#039;sess_id&#039;] = $session_id;
	//query update data user
	//mysql_unbuffered_query(&quot;UPDATE userlogin SET status=1, lastlogin=&#039;$today&#039;, lastactivity = &#039;$today&#039; WHERE id=$id_user&quot;, $db_local);
	
	if($row[&#039;status&#039;] == &quot;1&quot;){
		mysql_query(&quot;UPDATE userlogin_history SET wkt_out=&#039;$today&#039;, ket=&#039;reLogin&#039; WHERE session_id=&#039;&quot;.$row[&#039;session_id&#039;].&quot;&#039; and session_id is not null&quot;);
	}
	
	
	mysql_unbuffered_query(&quot;INSERT INTO userlogin_history (session_id,user,ip,tanggal) VALUES (&#039;$session_id&#039;,&#039;$username&#039;,&#039;$ip&#039;,&#039;$today&#039;)&quot;, $db_local);
	//fifo
	if(1)
	{
		//query sequensial sekarang,berdasarkan alokasi urutan
		$query_fifo = &quot;SELECT max(`alokasi_urutan`) max FROM userlogin WHERE grup = &#039;$grup&#039; AND status = 1 &quot;;
		$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[&#039;max&#039;];
				$max_number_current = $max_number + 1;
			}
		}
		else
		{
			$max_number_current = 1;
		}
		mysql_unbuffered_query(&quot;UPDATE userlogin SET status=1, lastlogin=&#039;$today&#039;, lastactivity = &#039;$today&#039;, alokasi_urutan = &#039;$max_number_current&#039;, session_id=&#039;$session_id&#039; WHERE id=$id_user&quot;, $db_local);
	}
	//echo &quot;UPDATE userlogin SET status=1, lastlogin=&#039;$today&#039; WHERE id=$id_user&quot;;
	//session_register(&#039;$username&#039;);
	//print_r($_SESSION);
	//header(&quot;location:../dashboard/netbro2.php&quot;);	
	//header(&quot;location:../dashboard/netbro.php&quot;);
	header(&quot;location:../../view/dashboard/dashboard.php&quot;);
			
}
elseif( $statusnya != &#039;1&#039;)
{
	echo &quot;&amp;lt;script&amp;gt;alert(&#039;I&#039;m Sorry !! Contact Administrator&#039;);
	history.go(-1);
	&amp;lt;/script&amp;gt;&quot;;
}
else {
	echo &quot;&amp;lt;script&amp;gt;alert(&#039;Login Failed...Please Cek Your Username and Password&#039;);
	history.go(-1);
	&amp;lt;/script&amp;gt;&quot;;
}

?&gt; </pre>

avatar Mantofani
@Mantofani

60 Kontribusi 3 Poin

Dipost 4 tahun yang lalu

<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

avatar driyan
@driyan

193 Kontribusi 109 Poin

Dipost 4 tahun yang lalu

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

avatar driyan
@driyan

193 Kontribusi 109 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban