Postingan lainnya
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";
?>
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
Hallo ada kah yg bisa bantu? admin? anyone?
hallo,
bisa di bantu masalah ini ? admin? moderator? anyone?
hallo apa tidak ada yg menggunakan OOP ini ??
salam
Up up .... ada admin yg tau masalah ini penyelesaian nya bagaimana saya sudah keliling diforum belum menemukan jawaban thx