Postingan lainnya
sistem login dengan OOP - # membuat system login error
hallo, mohon bantuan nya saya sedang belajar mengenai system login dengan OOP nah pada materi "Membuat system Login" pada akhir materi melakukan password_verify nah saat melakukan ini kenapa sepertinya saya tidak bisa terverify ya ?
karena saat melakukan test dengan Mengambil data dari database berhasil data keluar, akan tetapi saat di lakukan langsung selalu Gagal Login.
berikut kode di :
login.php
<?php
require_once "core/init.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->login_user( Input::get('namaUser'), Input::get('passwordUser') ) )
{
session::set('namaUser', Input::get('namaUser'));
header('Location: profile.php');
} else {
$errors[] = 'Login Gagal!!';
}
} else {
// die('Ada Masalah Dengan Form Input!!!');
$errors = $validation->errors();
}
}
require_once "templates/header.php";
?>
<h2>Formulir Pendaftaran Pengguna Baru </h2>
<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";
?>
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;
}
}
?>
ini function login_user di database.php
<?php
public function get_info($table, $column, $value)
{
if( !is_int($value) )
$value = "'" . $value . "'";
$query = "SELECT * FROM $table WHERE $column = $value";
$result = $this->mysqli->query($query);
while($row = $result->fetch_assoc() ) {
return $row;
}
}
?>
terima kasih
1 Jawaban:
Problem Solve ......
setelah google mengenai password_verify() Jika menggunakan password hash pada saat meregister password.
Password akan di hash menjadi 60char, dan saat saya membuat Length/Values di structur hanya 50char, setelah saya rubah menjadi 255 bisa di gunakan.
mohon koreksi jika salah.
terima kasih