sistem login dengan OOP - Saat Menggunakan Session Bermasalah

hallo, saya ada pertanyaan ..

saat ini saya proses mengikuti tutorial Login dengan OOP nah saat di bagian session setelah saya selesai semua dan saya test menggunakan user1 ini bisa login dengan baik dan di redirect ke profile.php dengan sukses menampilkan HAI User1.

Tapi saat user2 login harus beberapa kalo pencet login dan kemudian berhasil masuk tapi di halama profile.php nya terbuka HAI User1.

seakan session user1 ikut di saat saya login menggunakan user2, dan jika user1 logout user2 tadi juga ikut logout dan kembali ke halaman register.php.

dan satu lagi saat di diamkan beberapa saat semua pc yang login saat refresh kembali kehalaman register.php.

mohon bantuannya terima kasih.

file user.php

<?php

class user {
	private $_db;

	public function __construct() {
		$this->_db = database::getInstance();
	}

	//register user
	public function register_user($fields = array())
	{
		if( $this->_db->insert('user', $fields) ) return true;
		else return false;
	}

	//Login User Class
	public function login_user($namaUser, $passwordUser)
	{
		$data = $this->_db->get_info('user', 'namaUser', $namaUser);

//		print_r($data);
//		die();
//
		if(	password_verify($passwordUser, $data['passwordUser']) )
		return true;
		else return false;
	}


// Cek Nama User
	public function cek_nama($namaUser) {
		$data = $this->_db->get_info('user', 'namaUser', $namaUser);
		if(empty($data)) return false ;
			else return true;
	}

// IS LOgIn User
	public function is_login() {
		if(session::exists('namaUser') ) return true;
			else return false;
	}





}

?>

file login.php

<?php
require_once "core/init.php";

if($user->is_login()) {
	header('Location: profile.php');
}

// Error note
	$errors = array();

//Validasi User
if( input::get('submit') ) {


// 1. Memanggil objek validasi
	$validation = new validation();


// 2. Metode Check
	$validation = $validation->check(array(
		'namaUser' => array ( 'required' 	=> true),
		'passwordUser' => array ('required' => true )

	));

// 3. Lolos Pengujian
	if ($validation->passed() ) {

		if($user->cek_nama(input::get('namaUser') ) ) {
			if( $user->login_user( input::get('namaUser'), input::get('passwordUser') ) )
			{
			session::set('namaUser', Input::get('namaUser'));
			header('Location: profile.php');
			} else {
				$errors[] = 'Login Gagal!!';
			}
		} else {
			$errors[] = 'Nama Belum Terdaftar!!';
		}

	} else {
//		die('Ada Masalah Dengan Form Input!!!');
		$errors = $validation->errors();
	}
}

require_once "templates/header.php";
?>

<h2>Login to BIS </h2>
<br>

<form action="login.php" method="post">

	<label>Nama User</label>
	<input	type="text" name="namaUser"><br>

	<label>Password User</label>
	<input type="password" name="passwordUser"><br>

<!--
	<label>Nomer Handphone</label>
	<input type="text" name="nomerHP"><br>
-->


	<!-- Hidden Input -->
	<input type="hidden" name="levelUser" value="5"><br>
	<input type="hidden" name="tglRegister" value="<?php echo  date("Y/m/d"); ?>"><br>
	<input type="hidden" name="catatan" value="New User"><br>


	<input type="submit" name="submit" value="Login User">

	<?php if(!empty($errors) ) { ?>
		<div id="errors">
			<?php foreach($errors as $error ) { ?>
				<li> <?php echo $error;  ?>  </li>
			<?php } ?>
		</div>
	<?php } ?>

</form>

<?php
require_once "templates/footer.php";

?>

file profile.php

<?php
require_once "core/init.php";

//die(session::get('namaUser'));
if(!$user->is_login()) {
	header('Location: register.php');
}

require_once 'templates/header.php';

?>

<h2> Hai <?php echo session::get('namaUser');  ?></h2>

<?php
	require_once 'templates/footer.php';
?>

file register.php

<?php
require_once "core/init.php";

if($user->is_login()) {
	header('Location: profile.php');
}

// Error note
	$errors = array();

//Validasi User
if( input::get('submit') ) {


// 1. Memanggil objek validasi
	$validation = new validation();


// 2. Metode Check
	$validation = $validation->check(array(
		'namaUser' => array (
			'required' 	=> true,
			'min'		=> 3,
		),
		'passwordUser' => array (
			'required' 	=> true,
			'min'		=> 3,
		),

		'catatan' => array (
			'required' 	=> true,
			'min'		=> 5,
		)

	));


	if($user->cek_nama(Input::get('namaUser'))) {
		$errors[] = 'Nama Sudah Terdaftar';
	}else {

// 3. Lolos Pengujian
	if ($validation->passed() ) {

	//	die( input::get('namaUser') );
		$user->register_user(array(
			'namaUser' 			=> Input::get('namaUser'),
			'passwordUser' 		=> password_hash(input::get('passwordUser'), PASSWORD_DEFAULT),
			'nomerHP' 			=> Input::get('nomerHP'),
			'levelUser'			=> Input::get('levelUser'),
			'tglRegister' 		=> Input::get('tglRegister'),
			'catatan'			=> Input::get('catatan')
		));

			session::set('namaUser', Input::get('namaUser'));
			header('Location: profile.php');

		} else {
	//		die('Ada Masalah Dengan Form Input!!!');
			$errors = $validation->errors();
		}
	}
}

require_once "templates/header.php";
?>

<h2>Formulir Pendaftaran Pengguna Baru </h2>
<br>

<form action="register.php" method="post">

	<label>Nama User</label>
	<input	type="text" name="namaUser"><br>

	<label>Password User</label>
	<input type="password" name="passwordUser"><br>

	<label>Nomer Handphone</label>
	<input type="text" name="nomerHP"><br>


	<!-- Hidden Input -->
	<input type="hidden" name="levelUser" value="5"><br>
	<input type="hidden" name="tglRegister" value="<?php echo  date("Y/m/d"); ?>"><br>
	<input type="hidden" name="catatan" value="New User"><br>


	<input type="submit" name="submit" value="New User Register">

	<?php if(!empty($errors) ) { ?>
		<div id="errors">
			<?php foreach($errors as $error ) { ?>
				<li> <?php echo $error;  ?>  </li>
			<?php } ?>
		</div>
	<?php } ?>

</form>

<?php
require_once "templates/footer.php";

?>

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

6 Jawaban:

Update, sudah menggunakan persis code dari tutorial yg saya download hasil nya sama.

saat login dengan user1 di alihkan ke profile.php dan menampilkan Hai User1 akan tetapi jika ada user2 yang login dari pc lain atau handphone beberapa detik setelah user1 maka akan menampilkan Hai user1 di halaman profile user2.

adakah yang mengetahui ini kenapa ?

salam

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

hallo,

ada yg bisa bantu masalah ini ??

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Tanggapan

hallo, ada yg mengalami ini dan bisa melakukan perbaikan ?

thx

Hallo ada kah yg bisa bantu? admin? anyone?

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

hallo,

bisa di bantu masalah ini ? admin? moderator? anyone?

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

hallo apa tidak ada yg menggunakan OOP ini ??

salam

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Up up .... ada admin yg tau masalah ini penyelesaian nya bagaimana saya sudah keliling diforum belum menemukan jawaban thx

avatar davadut
@davadut

16 Kontribusi 0 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban